diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2011-01-03 23:14:18 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2011-01-03 23:14:18 +0000 |
commit | aa474365da82462b86cfd0b9de56f254f1af3055 (patch) | |
tree | c34e21a03ea2d8a2ac41c24f3bf86e4bccc439df /gcc | |
parent | 4ce99a208b535d4c5e0293657c3792e46a9d5b80 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/spu/spu.c | 14 |
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 (); } |