diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-07-27 09:53:33 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-07-27 09:53:33 +0200 |
commit | 036ea39917b0ef6f07a7c3c3c06002c73fd238f5 (patch) | |
tree | a35982ffc34baaebfbff808b7c0ae77b320f7b36 /gcc/final.c | |
parent | 2443509ba815ae9acc5303846661c409fa63436a (diff) | |
download | gcc-036ea39917b0ef6f07a7c3c3c06002c73fd238f5.zip gcc-036ea39917b0ef6f07a7c3c3c06002c73fd238f5.tar.gz gcc-036ea39917b0ef6f07a7c3c3c06002c73fd238f5.tar.bz2 |
attribs.c (decl_attributes): Imply noinline, noclone and no_icf attributes for noipa attribute.
* attribs.c (decl_attributes): Imply noinline, noclone and no_icf
attributes for noipa attribute. For naked attribute use
lookup_attribute first before lookup_attribute_spec.
* final.c (rest_of_handle_final): Disable IPA RA for functions with
noipa attribute.
* ipa-visibility.c (non_local_p): Fix comment typos. Return true
for functions with noipa attribute.
(cgraph_externally_visible_p): Return true for functions with noipa
attribute.
* cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
for functions with noipa attribute.
* doc/extend.texi: Document noipa function attribute.
* tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
also for functions with noipa attribute.
(ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
c-family/
* c-attribs.c (c_common_attribute_table): Add noipa attribute.
(handle_noipa_attribute): New function.
testsuite/
* gcc.dg/attr-noipa.c: New test.
* gcc.dg/ipa/ipa-pta-18.c: New test.
* gcc.dg/ipa/ipa-sra-11.c: New test.
From-SVN: r250607
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/final.c b/gcc/final.c index 356c923..2a24f4f 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -4492,7 +4492,8 @@ rest_of_handle_final (void) assemble_start_function (current_function_decl, fnname); final_start_function (get_insns (), asm_out_file, optimize); final (get_insns (), asm_out_file, optimize); - if (flag_ipa_ra) + if (flag_ipa_ra + && !lookup_attribute ("noipa", DECL_ATTRIBUTES (current_function_decl))) collect_fn_hard_reg_usage (); final_end_function (); |