diff options
author | Paul Brook <paul@codesourcery.com> | 2010-05-24 12:24:00 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2010-05-24 12:24:00 +0000 |
commit | faf1c9192cd4a57f8aa5460881bca6486bb647a2 (patch) | |
tree | a28ad2044f7bcf9c49f937d0bae49e03138a02f9 /gcc/function.h | |
parent | c141fff1aa5077e6781bf37cdb7e6631cc83e0c3 (diff) |
2010-05-25 Paul Brook <paul@codesourcery.com>
gcc/
* gengtype-lex.l: Add HARD_REG_SET.
* expr.c (expand_expr_real_1): Record writes to hard registers.
* function.c (rtl_data): Add asm_clobbers.
* ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
(ira_setup_eliminable_regset): Remove regs_asm_clobbered.
Use crtl->asm_clobbers.
gcc/testsuite/
* gcc.target/arm/frame-pointer-1.c: New test.
* gcc.target/i386/pr9771-1.c: Move code out of main to allow frame
pointer elimination.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@159776 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/function.h b/gcc/function.h index 6e150921f78..072da580550 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "hashtab.h" #include "vecprim.h" #include "tm.h" /* For CUMULATIVE_ARGS. */ +#include "hard-reg-set.h" /* Stack of pending (incomplete) sequences saved by `start_sequence'. Each element describes one pending sequence. @@ -437,6 +438,12 @@ struct GTY(()) rtl_data { TREE_NOTHROW (current_function_decl) it is set even for overwritable function where currently compiled version of it is nothrow. */ bool nothrow; + + /* Like regs_ever_live, but 1 if a reg is set or clobbered from an + asm. Unlike regs_ever_live, elements of this array corresponding + to eliminable regs (like the frame pointer) are set if an asm + sets them. */ + HARD_REG_SET asm_clobbers; }; #define return_label (crtl->x_return_label) |