aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2011-01-03 23:14:18 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2011-01-03 23:14:18 +0000
commitaa474365da82462b86cfd0b9de56f254f1af3055 (patch)
treec34e21a03ea2d8a2ac41c24f3bf86e4bccc439df /gcc
parent4ce99a208b535d4c5e0293657c3792e46a9d5b80 (diff)
downloadgcc-aa474365da82462b86cfd0b9de56f254f1af3055.zip
gcc-aa474365da82462b86cfd0b9de56f254f1af3055.tar.gz
gcc-aa474365da82462b86cfd0b9de56f254f1af3055.tar.bz2
spu.c (asm_file_start): Only reset flag_var_tracking if branch-hint optimization will be performed.
* config/spu/spu.c (asm_file_start): Only reset flag_var_tracking if branch-hint optimization will be performed. From-SVN: r168444
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/spu/spu.c14
2 files changed, 16 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3c26a9a..261affd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
+ if branch-hint optimization will be performed.
+
2011-01-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/47148
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 045fc87..db17570 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -7014,9 +7014,17 @@ static void
asm_file_start (void)
{
/* Variable tracking should be run after all optimizations which
- change order of insns. It also needs a valid CFG. */
- spu_flag_var_tracking = flag_var_tracking;
- flag_var_tracking = 0;
+ change order of insns. It also needs a valid CFG. Therefore,
+ *if* we make nontrivial changes in machine-dependent reorg,
+ run variable tracking after those. However, if we do not run
+ our machine-dependent reorg pass, we must still run the normal
+ variable tracking pass (or else we will ICE in final since
+ debug insns have not been removed). */
+ if (TARGET_BRANCH_HINTS && optimize)
+ {
+ spu_flag_var_tracking = flag_var_tracking;
+ flag_var_tracking = 0;
+ }
default_file_start ();
}