aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim@codesourcery.com>2010-07-27 19:50:08 +0000
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>2010-07-27 19:50:08 +0000
commitec3728adb8ae667a4507d70e2eecdb38278ece20 (patch)
tree43bec683adf7f106c395e58bf98b836099d131e6
parentcad9aa150ba3ff8c1dc34bf428fc7146dce463b0 (diff)
downloadgcc-ec3728adb8ae667a4507d70e2eecdb38278ece20.zip
gcc-ec3728adb8ae667a4507d70e2eecdb38278ece20.tar.gz
gcc-ec3728adb8ae667a4507d70e2eecdb38278ece20.tar.bz2
arm.c (params.h): Include.
* config/arm/arm.c (params.h): Include. (arm_override_options): Tune gcse-unrestricted-cost. * config/arm/t-arm (arm.o): Define dependencies. From-SVN: r162598
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c9
-rw-r--r--gcc/config/arm/t-arm9
3 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c7db8f..b4c3041 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
+ * config/arm/arm.c (params.h): Include.
+ (arm_override_options): Tune gcse-unrestricted-cost.
+ * config/arm/t-arm (arm.o): Define dependencies.
+
+2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
+
PR target/42495
PR middle-end/42574
* basic-block.h (get_dominated_to_depth): Declare.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 9f00416..b5cc3ed 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -56,6 +56,7 @@
#include "df.h"
#include "intl.h"
#include "libfuncs.h"
+#include "params.h"
/* Forward definitions of types. */
typedef struct minipool_node Mnode;
@@ -1872,6 +1873,14 @@ arm_override_options (void)
flag_reorder_blocks = 1;
}
+ if (!PARAM_SET_P (PARAM_GCSE_UNRESTRICTED_COST)
+ && flag_pic)
+ /* Hoisting PIC address calculations more aggressively provides a small,
+ but measurable, size reduction for PIC code. Therefore, we decrease
+ the bar for unrestricted expression hoisting to the cost of PIC address
+ calculation, which is 2 instructions. */
+ set_param_value ("gcse-unrestricted-cost", 2);
+
/* Register global variables with the garbage collector. */
arm_add_gc_roots ();
}
diff --git a/gcc/config/arm/t-arm b/gcc/config/arm/t-arm
index de2bbc4..4879211 100644
--- a/gcc/config/arm/t-arm
+++ b/gcc/config/arm/t-arm
@@ -45,6 +45,15 @@ $(srcdir)/config/arm/arm-tune.md: $(srcdir)/config/arm/gentune.sh \
$(srcdir)/config/arm/arm-cores.def > \
$(srcdir)/config/arm/arm-tune.md
+arm.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+ $(RTL_H) $(TREE_H) $(OBSTACK_H) $(REGS_H) hard-reg-set.h \
+ insn-config.h conditions.h output.h \
+ $(INSN_ATTR_H) $(FLAGS_H) reload.h $(FUNCTION_H) \
+ $(EXPR_H) $(OPTABS_H) toplev.h $(RECOG_H) $(CGRAPH_H) \
+ $(GGC_H) except.h $(C_PRAGMA_H) $(INTEGRATE_H) $(TM_P_H) \
+ $(TARGET_H) $(TARGET_DEF_H) debug.h langhooks.h $(DF_H) \
+ intl.h libfuncs.h $(PARAMS_H)
+
arm-c.o: $(srcdir)/config/arm/arm-c.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TM_H) $(TREE_H) output.h $(C_COMMON_H)
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \