aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2016-03-10 21:17:13 +1030
committerAlan Modra <amodra@gcc.gnu.org>2016-03-10 21:17:13 +1030
commitba52669fc5861ec7ae9d38ea007340fc6cef83ea (patch)
tree0fb488f6de57ef8b4dcf655f1d976f3492816539 /gcc/tree.c
parent27742332348988c735f3a9eb9fa24bce57bec7a6 (diff)
downloadgcc-ba52669fc5861ec7ae9d38ea007340fc6cef83ea.zip
gcc-ba52669fc5861ec7ae9d38ea007340fc6cef83ea.tar.gz
gcc-ba52669fc5861ec7ae9d38ea007340fc6cef83ea.tar.bz2
PR69195, Reload confused by invalid reg_equiv
Optimizing indirect jumps to direct jumps, and deleting dead insns can lead to changes in register lifetimes, which in turn can result in bad reg_equiv info being passed to reload. So do these tasks before calculating reg_equiv info. gcc/ PR rtl-optimization/69195 PR rtl-optimization/47992 * ira.c (recorded_label_ref): Delete. (update_equiv_regs): Return void. (indirect_jump_optimize): New function. (ira): Call indirect_jump_optimize and delete_trivially_dead_insns before regstat_compute_ri. Don't rebuild_jump_labels here. Delete update_regstat. gcc/testsuite/ * gcc.dg/pr69195.c: New. * gcc.dg/pr69238.c: New. From-SVN: r234101
Diffstat (limited to 'gcc/tree.c')
0 files changed, 0 insertions, 0 deletions