aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2010-05-24 12:24:00 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2010-05-24 12:24:00 +0000
commitb748fbd6b981877caad2c6da42974610cdb53e01 (patch)
treea28ad2044f7bcf9c49f937d0bae49e03138a02f9 /gcc/function.h
parent9888e9cf854267265d6c59e3b01d15fe5cef5a35 (diff)
downloadgcc-b748fbd6b981877caad2c6da42974610cdb53e01.zip
gcc-b748fbd6b981877caad2c6da42974610cdb53e01.tar.gz
gcc-b748fbd6b981877caad2c6da42974610cdb53e01.tar.bz2
gengtype-lex.l: Add HARD_REG_SET.
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. From-SVN: r159776
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/function.h b/gcc/function.h
index 6e15092..072da58 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)