https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48863
--- Comment #8 from ktkachov at gcc dot gnu.org --- Author: ktkachov Date: Thu Dec 1 13:47:13 2016 New Revision: 243109 URL: https://gcc.gnu.org/viewcvs?rev=243109&root=gcc&view=rev Log: [TER] PR target/48863: Don't replace expressions across local register variable definitions Backport from mainline 2016-11-24 Kyrylo Tkachov <kyrylo.tkac...@arm.com> PR target/48863 PR inline-asm/70184 * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field. (new_temp_expr_table): Initialise reg_vars_cnt. (free_temp_expr_table): Release reg_vars_cnt. (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt field of TAB. (find_replaceable_in_bb): Use the above to record register variable write occurrences and cancel replacement across them. * gcc.target/arm/pr48863.c: New test. Added: branches/gcc-6-branch/gcc/testsuite/gcc.target/arm/pr48863.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/tree-ssa-ter.c