r243109 - in /branches/gcc-6-branch/gcc: Change...
ktkachov@gcc.gnu.org
ktkachov@gcc.gnu.org
Thu Dec 1 13:47:00 GMT 2016
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.tkachov@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
More information about the Gcc-cvs
mailing list