diff options
author | Martin Liska <mliska@suse.cz> | 2015-03-22 23:50:00 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2015-03-22 22:50:00 +0000 |
commit | ff2362eb3542969c01b94890b5442932eea8ec88 (patch) | |
tree | d50393c051ebdb9637a893f752a3e08fa006f3cb | |
parent | 3ab933594942029c75a9f966ba949c8a0ead1de8 (diff) | |
download | gcc-ff2362eb3542969c01b94890b5442932eea8ec88.zip gcc-ff2362eb3542969c01b94890b5442932eea8ec88.tar.gz gcc-ff2362eb3542969c01b94890b5442932eea8ec88.tar.bz2 |
Speed-up def_builtin_const (ix86_valid_target_attribute).
* config/i386/i386.c (def_builtin): Set deferred_isa_values for
masks that can potentially include a builtin.
(ix86_add_new_builtins): Introduce fast filter for isa values
that cannot trigger builtin inclusion.
From-SVN: r221577
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 11 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 36c88ee..7e05b81 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 2015-03-22 Martin Liska <mliska@suse.cz> + Jakub Jelinek <jakub@redhat.com> + + * config/i386/i386.c (def_builtin): Set deferred_isa_values for + masks that can potentially include a builtin. + (ix86_add_new_builtins): Introduce fast filter for isa values + that cannot trigger builtin inclusion. + +2015-03-22 Martin Liska <mliska@suse.cz> + * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function. (sem_item::update_hash_by_local_refs): Likewise. (sem_variable::get_hash): Empty line is fixed. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 47deda7..82a4848 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -30588,6 +30588,8 @@ struct builtin_isa { static struct builtin_isa ix86_builtins_isa[(int) IX86_BUILTIN_MAX]; +/* Bits that can still enable any inclusion of a builtin. */ +static HOST_WIDE_INT deferred_isa_values = 0; /* Add an ix86 target builtin function with CODE, NAME and TYPE. Save the MASK of which isa_flags to use in the ix86_builtins_isa array. Stores the @@ -30631,6 +30633,9 @@ def_builtin (HOST_WIDE_INT mask, const char *name, } else { + /* Just a MASK where set_and_not_built_p == true can potentially + include a builtin. */ + deferred_isa_values |= mask; ix86_builtins[(int) code] = NULL_TREE; ix86_builtins_isa[(int) code].tcode = tcode; ix86_builtins_isa[(int) code].name = name; @@ -30666,6 +30671,12 @@ def_builtin_const (HOST_WIDE_INT mask, const char *name, static void ix86_add_new_builtins (HOST_WIDE_INT isa) { + if ((isa & deferred_isa_values) == 0) + return; + + /* Bits in ISA value can be removed from potential isa values. */ + deferred_isa_values &= ~isa; + int i; tree saved_current_target_pragma = current_target_pragma; current_target_pragma = NULL_TREE; |