Jiong Wang
2014-09-29 18:12:18 UTC
it's exposed by linux kernel for x86.
the root cause is current "single_set" will ignore CLOBBER & USE,
while we need to take them into account when handling shrink-wrap.
this patch add one parameter to single_set_2 to support return
NULL_RTX if we want to remove any side-effect. add a new helper function
"single_set_no_clobber_use" added.
pass x86-64 bootstrap & check-gcc/g++, also manually checked ths issue
reported at 63404 is gone away.
also no regression on aarch64-none-elf regression test.
comments?
thanks.
2014-09-26 Jiong Wang <***@arm.com>
* rtl.h (single_set_no_clobber_use): New function.
(single_set_2): New parameter "fail_on_clobber_use".
(single_set): Likewise.
* config/ia64/ia64.c (ia64_single_set): Likewise.
* rtlanal.c (single_set_2): Return NULL_RTX if fail_on_clobber_use be true.
* shrink-wrap.c (move_insn_for_shrink_wrap): Use single_set_no_clobber_use.
the root cause is current "single_set" will ignore CLOBBER & USE,
while we need to take them into account when handling shrink-wrap.
this patch add one parameter to single_set_2 to support return
NULL_RTX if we want to remove any side-effect. add a new helper function
"single_set_no_clobber_use" added.
pass x86-64 bootstrap & check-gcc/g++, also manually checked ths issue
reported at 63404 is gone away.
also no regression on aarch64-none-elf regression test.
comments?
thanks.
2014-09-26 Jiong Wang <***@arm.com>
* rtl.h (single_set_no_clobber_use): New function.
(single_set_2): New parameter "fail_on_clobber_use".
(single_set): Likewise.
* config/ia64/ia64.c (ia64_single_set): Likewise.
* rtlanal.c (single_set_2): Return NULL_RTX if fail_on_clobber_use be true.
* shrink-wrap.c (move_insn_for_shrink_wrap): Use single_set_no_clobber_use.