aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2013-10-16 11:36:18 +0000
committerYvan Roux <yroux@gcc.gnu.org>2013-10-16 11:36:18 +0000
commitc281bf268eb88e26a4d1e7e55f012296c44c9fea (patch)
tree21ec4a926acaa3a67ce1618caca52f61184d6c91
parent32a8974d80a82799233167395b5567978875881d (diff)
downloadgcc-c281bf268eb88e26a4d1e7e55f012296c44c9fea.zip
gcc-c281bf268eb88e26a4d1e7e55f012296c44c9fea.tar.gz
gcc-c281bf268eb88e26a4d1e7e55f012296c44c9fea.tar.bz2
arm.opt (mlra): New option.
2013-10-16 Yvan Roux <yvan.roux@linaro.org> * config/arm/arm.opt (mlra): New option. * config/arm/arm.c (arm_lra_p): New function. (TARGET_LRA_P): Define. From-SVN: r203698
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c10
-rw-r--r--gcc/config/arm/arm.opt4
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8fcc0b9..ebaa3e0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-16 Yvan Roux <yvan.roux@linaro.org>
+
+ * config/arm/arm.opt (mlra): New option.
+ * config/arm/arm.c (arm_lra_p): New function.
+ (TARGET_LRA_P): Define.
+
2013-10-16 Paulo Matos <pmatos@broadcom.com>
* tree-core.h (tree_code_name): Remove.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 1247854..4cdac60 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -68,6 +68,7 @@ struct four_ints
};
/* Forward function declarations. */
+static bool arm_lra_p (void);
static bool arm_needs_doubleword_align (enum machine_mode, const_tree);
static int arm_compute_static_chain_stack_bytes (void);
static arm_stack_offsets *arm_get_frame_offsets (void);
@@ -338,6 +339,9 @@ static const struct attribute_spec arm_attribute_table[] =
#undef TARGET_LEGITIMIZE_ADDRESS
#define TARGET_LEGITIMIZE_ADDRESS arm_legitimize_address
+#undef TARGET_LRA_P
+#define TARGET_LRA_P arm_lra_p
+
#undef TARGET_ATTRIBUTE_TABLE
#define TARGET_ATTRIBUTE_TABLE arm_attribute_table
@@ -5184,6 +5188,12 @@ arm_init_cumulative_args (CUMULATIVE_ARGS *pcum, tree fntype,
}
}
+/* Return true if we use LRA instead of reload pass. */
+static bool
+arm_lra_p (void)
+{
+ return arm_lra_flag;
+}
/* Return true if mode/type need doubleword alignment. */
static bool
diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
index 66e128e..9b74038 100644
--- a/gcc/config/arm/arm.opt
+++ b/gcc/config/arm/arm.opt
@@ -143,6 +143,10 @@ mfpu=
Target RejectNegative Joined Enum(arm_fpu) Var(arm_fpu_index)
Specify the name of the target floating point hardware/format
+mlra
+Target Report Var(arm_lra_flag) Init(0) Save
+Use LRA instead of reload (transitional)
+
mhard-float
Target RejectNegative Alias(mfloat-abi=, hard) Undocumented