diff options
author | Yvan Roux <yvan.roux@linaro.org> | 2013-09-26 09:09:30 +0000 |
---|---|---|
committer | Yvan Roux <yroux@gcc.gnu.org> | 2013-09-26 09:09:30 +0000 |
commit | 38e8f66392205d315970363059813572a89f1b8f (patch) | |
tree | 061cea780d6391b6a5c2c41ccc85424065c7dc95 | |
parent | 4167e8d415ff7708a2f9a23542245e24a6ee3632 (diff) | |
download | gcc-38e8f66392205d315970363059813572a89f1b8f.zip gcc-38e8f66392205d315970363059813572a89f1b8f.tar.gz gcc-38e8f66392205d315970363059813572a89f1b8f.tar.bz2 |
aarch64.opt (mlra): New option.
2013-09-26 Yvan Roux <yvan.roux@linaro.org>
* config/aarch64/aarch64.opt (mlra): New option.
* config/aarch64/aarch64.c (aarch64_lra_p): New function.
(TARGET_LRA_P): Define.
From-SVN: r202940
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 11 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.opt | 4 |
3 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 549fb9f..f5162aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-09-26 Yvan Roux <yvan.roux@linaro.org> + + * config/aarch64/aarch64.opt (mlra): New option. + * config/aarch64/aarch64.c (aarch64_lra_p): New function. + (TARGET_LRA_P): Define. + 2013-09-26 Eric Botcazou <ebotcazou@adacore.com> * expr.c (expand_assignment): Remove obsolete comment. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 6f4fe36..1558183 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -109,6 +109,7 @@ enum aarch64_code_model aarch64_cmodel; #define TARGET_HAVE_TLS 1 #endif +static bool aarch64_lra_p (void); static bool aarch64_composite_type_p (const_tree, enum machine_mode); static bool aarch64_vfp_is_call_or_return_candidate (enum machine_mode, const_tree, @@ -6092,6 +6093,13 @@ aapcs_vfp_sub_candidate (const_tree type, enum machine_mode *modep) return -1; } +/* Return true if we use LRA instead of reload pass. */ +static bool +aarch64_lra_p (void) +{ + return aarch64_lra_flag; +} + /* Return TRUE if the type, as described by TYPE and MODE, is a composite type as described in AAPCS64 \S 4.3. This includes aggregate, union and array types. The C99 floating-point complex types are also considered @@ -8268,6 +8276,9 @@ aarch64_vectorize_vec_perm_const_ok (enum machine_mode vmode, #undef TARGET_LIBGCC_CMP_RETURN_MODE #define TARGET_LIBGCC_CMP_RETURN_MODE aarch64_libgcc_cmp_return_mode +#undef TARGET_LRA_P +#define TARGET_LRA_P aarch64_lra_p + #undef TARGET_MANGLE_TYPE #define TARGET_MANGLE_TYPE aarch64_mangle_type diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt index 8ff6ca1..3b3e6c3 100644 --- a/gcc/config/aarch64/aarch64.opt +++ b/gcc/config/aarch64/aarch64.opt @@ -103,6 +103,10 @@ mabi= Target RejectNegative Joined Enum(aarch64_abi) Var(aarch64_abi) Init(AARCH64_ABI_DEFAULT) -mabi=ABI Generate code that conforms to the specified ABI +mlra +Target Report Var(aarch64_lra_flag) Init(1) Save +Use LRA instead of reload (transitional) + Enum Name(aarch64_abi) Type(int) Known AArch64 ABIs (for use with the -mabi= option): |