summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-10-26 04:52:09 -0700
committerH.J. Lu <hjl.tools@gmail.com>2013-11-27 11:01:54 -0800
commit5ccfe0491fb7c267f9be7199ac54ac1853f895ef (patch)
tree2c3151dfd215207b831732fc71b075085598a7ef
parent2d83f118485d2ab2a50ffa91adda253b28fd2a6e (diff)
downloadgcc-hjl/lra.tar.gz
Add -mno-lra to x86 backendhjl/lra
-rw-r--r--gcc/config/i386/i386.c9
-rw-r--r--gcc/config/i386/i386.opt3
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 6d2fd69350d..22b28c92478 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -34526,6 +34526,13 @@ ix86_free_from_memory (enum machine_mode mode)
}
}
+/* Return true if we use LRA instead of reload pass. */
+static bool
+ix86_lra_p (void)
+{
+ return ix86_no_lra == 0 && true;
+}
+
/* Return a register priority for hard reg REGNO. */
static int
ix86_register_priority (int hard_regno)
@@ -44322,7 +44329,7 @@ ix86_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update)
#define TARGET_LEGITIMATE_ADDRESS_P ix86_legitimate_address_p
#undef TARGET_LRA_P
-#define TARGET_LRA_P hook_bool_void_true
+#define TARGET_LRA_P ix86_lra_p
#undef TARGET_REGISTER_PRIORITY
#define TARGET_REGISTER_PRIORITY ix86_register_priority
diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index c4f9c8cb28e..ccfd869f9ba 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -637,6 +637,9 @@ msse2avx
Target Report Var(ix86_sse2avx)
Encode SSE instructions with VEX prefix
+mno-lra
+Target RejectNegative Var(ix86_no_lra) Undocumented
+
mfsgsbase
Target Report Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
Support FSGSBASE built-in functions and code generation