public inbox for gcc-cvs@sourceware.org help / color / mirror / Atom feed
From: Alexandre Oliva <aoliva@gcc.gnu.org> To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/aoliva/heads/testme)] strub: cope with identifier GCing Date: Thu, 5 Oct 2023 06:12:58 +0000 (GMT) [thread overview] Message-ID: <20231005061258.B7414385770A@sourceware.org> (raw) https://gcc.gnu.org/g:2eb3fe8889474502275348304dad8ed5de76b505 commit 2eb3fe8889474502275348304dad8ed5de76b505 Author: Alexandre Oliva <oliva@gnu.org> Date: Thu Oct 5 02:32:15 2023 -0300 strub: cope with identifier GCing Diff: --- gcc/Makefile.in | 1 + gcc/gengtype-lex.l | 3 +++ gcc/ipa-strub.cc | 31 ++++++++++++++++++------------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 93b7ff2a502..987a6a769ec 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -2846,6 +2846,7 @@ GTFILES = $(CPPLIB_H) $(srcdir)/input.h $(srcdir)/coretypes.h \ $(srcdir)/sanopt.cc \ $(srcdir)/sancov.cc \ $(srcdir)/ipa-devirt.cc \ + $(srcdir)/ipa-strub.cc \ $(srcdir)/internal-fn.h \ $(srcdir)/calls.cc \ $(srcdir)/omp-general.h \ diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l index 34837d9dc9a..e6c18412e06 100644 --- a/gcc/gengtype-lex.l +++ b/gcc/gengtype-lex.l @@ -165,6 +165,9 @@ CXX_KEYWORD inline|public:|private:|protected:|template|operator|friend|static|m [(){},*:<>;=%/|+\!\?\.-] { return yytext[0]; } /* ignore pp-directives */ +^{HWS}"#"{HWS}[a-z_]+([^\n]*"\\"\n)*[^\n]*\n { + update_lineno (yytext, yyleng); +} ^{HWS}"#"{HWS}[a-z_]+[^\n]*\n {lexer_line.line++;} . { diff --git a/gcc/ipa-strub.cc b/gcc/ipa-strub.cc index 861cd0cffa0..52f5761aa61 100644 --- a/gcc/ipa-strub.cc +++ b/gcc/ipa-strub.cc @@ -170,29 +170,32 @@ get_strub_attr_from_decl (tree decl) return get_strub_attr_from_type (TREE_TYPE (decl)); } +/* Keep the strub mode identifiers from being GC'd. */ +static GTY(()) tree strub_ids[8]; + /* Define a function to cache identifier ID, to be used as a strub attribute parameter for a strub mode named after NAME. */ -#define DEF_STRUB_IDS(NAME, ID) \ +#define DEF_STRUB_IDS(IDX, NAME, ID) \ static inline tree get_strub_mode_id_ ## NAME () { \ - static tree identifier = NULL_TREE; \ + tree identifier = strub_ids[IDX]; \ if (!identifier) \ - identifier = get_identifier (ID); \ + strub_ids[IDX] = identifier = get_identifier (ID); \ return identifier; \ } /* Same as DEF_STRUB_IDS, but use the string expansion of NAME as ID. */ -#define DEF_STRUB_ID(NAME) \ -DEF_STRUB_IDS (NAME, #NAME) +#define DEF_STRUB_ID(IDX, NAME) \ + DEF_STRUB_IDS (IDX, NAME, #NAME) /* Define functions for each of the strub mode identifiers. Expose dashes rather than underscores. */ -DEF_STRUB_ID (disabled) -DEF_STRUB_IDS (at_calls, "at-calls") -DEF_STRUB_ID (internal) -DEF_STRUB_ID (callable) -DEF_STRUB_ID (wrapped) -DEF_STRUB_ID (wrapper) -DEF_STRUB_ID (inlinable) -DEF_STRUB_IDS (at_calls_opt, "at-calls-opt") +DEF_STRUB_ID (0, disabled) +DEF_STRUB_IDS (1, at_calls, "at-calls") +DEF_STRUB_ID (2, internal) +DEF_STRUB_ID (3, callable) +DEF_STRUB_ID (4, wrapped) +DEF_STRUB_ID (5, wrapper) +DEF_STRUB_ID (6, inlinable) +DEF_STRUB_IDS (7, at_calls_opt, "at-calls-opt") /* Release the temporary macro names. */ #undef DEF_STRUB_IDS @@ -3452,3 +3455,5 @@ make_pass_ipa_strub (gcc::context *ctxt) { return new pass_ipa_strub (ctxt); } + +#include "gt-ipa-strub.h"
next reply other threads:[~2023-10-05 6:12 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-10-05 6:12 Alexandre Oliva [this message] -- strict thread matches above, loose matches on Subject: below -- 2023-10-20 3:48 Alexandre Oliva 2023-10-06 4:33 Alexandre Oliva 2023-10-06 4:29 Alexandre Oliva 2023-10-05 6:15 Alexandre Oliva 2023-10-05 5:37 Alexandre Oliva 2023-10-05 5:33 Alexandre Oliva
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231005061258.B7414385770A@sourceware.org \ --to=aoliva@gcc.gnu.org \ --cc=gcc-cvs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).