From: Yao Qi Date: Thu, 9 Dec 2010 05:32:05 +0000 (+0000) Subject: arm.c (arm_preferred_rename_class): Implement targethook PREFERRED_RENAME_CLASS. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=74e3207697e4e9b5824024825cd295ca0de7f7d1;p=gcc.git arm.c (arm_preferred_rename_class): Implement targethook PREFERRED_RENAME_CLASS. 2010-12-09 Yao Qi * config/arm/arm.c (arm_preferred_rename_class): Implement targethook PREFERRED_RENAME_CLASS. From-SVN: r167626 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5def5bdf7fe..2a7df9e9bba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-12-09 Yao Qi + + * config/arm/arm.c (arm_preferred_rename_class): Implement targethook + PREFERRED_RENAME_CLASS. + 2010-12-08 Ian Lance Taylor * doc/sourcebuild.texi (Front End): Remove reference to diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 9d2c6dd1273..ac253655dbe 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -248,6 +248,7 @@ static bool arm_builtin_support_vector_misalignment (enum machine_mode mode, int misalignment, bool is_packed); static void arm_conditional_register_usage (void); +static reg_class_t arm_preferred_rename_class (reg_class_t class); /* Table of machine attributes. */ @@ -585,6 +586,10 @@ static const struct default_options arm_option_optimization_table[] = #define TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT \ arm_builtin_support_vector_misalignment +#undef TARGET_PREFERRED_RENAME_CLASS +#define TARGET_PREFERRED_RENAME_CLASS \ + arm_preferred_rename_class + struct gcc_target targetm = TARGET_INITIALIZER; /* Obstack for minipool constant handling. */ @@ -23467,4 +23472,16 @@ arm_conditional_register_usage (void) SUBTARGET_CONDITIONAL_REGISTER_USAGE } +static reg_class_t +arm_preferred_rename_class (reg_class_t class) +{ + /* Thumb-2 instructions using LO_REGS may be smaller than instructions + using GENERIC_REGS. During register rename pass, we prefer LO_REGS, + and code size can be reduced. */ + if (TARGET_THUMB2 && class == GENERAL_REGS) + return LO_REGS; + else + return NO_REGS; +} + #include "gt-arm.h"