[PATCH] fwprop: Avoid volatile defines to be propagated
Jeff Law
jeffreyalaw@gmail.com
Sun Mar 3 22:02:59 GMT 2024
On 2/25/24 20:30, HAO CHEN GUI wrote:
> Hi,
> This patch tries to fix a potential problem which is raised by the patch
> for PR111267. The volatile asm operand tries to be propagated to a single
> set insn with the patch for PR111267. It has potential risk as the behavior
> is wrong. Currently set_src_cost comparison can reject such propagation.
> But the propagation might be taken after replacing set_src_cost with insn
> cost. Actually I found the problem in testing my patch which replacing
> et_src_cost with insn cost for fwprop.
>
> Bootstrapped and tested on x86 and powerpc64-linux BE and LE with no
> regressions. Is it OK for the trunk?
>
> Thanks
> Gui Haochen
>
> ChangeLog
> fwprop: Avoid volatile defines to be propagated
>
> The patch for PR111267 (commit id 86de9b66480b710202a2898cf513db105d8c432f)
> which introduces an exception for propagation on single set insn. The
> propagation which might not be profitable (checked by profitable_p) is still
> allowed to be propagated to single set insn. It has a potential problem
> that a volatile asm operand will try to be propagated to a single set insn.
> The volatile asm operand is originally banned in profitable_p. This patch
> fixes the problem by skipping volatile set source in define set finding.
>
> gcc/
> * fwprop.cc (forward_propagate_into): Return false for volatile set
> source.
>
> gcc/testsuite/
> * gcc.target/powerpc/fwprop-1.c: New.
Why specifically are you worried here? Propagation of a volatile
shouldn't in and of itself cause a problem. We're not changing the
number of volatile accesses or anything like that -- we're just moving
them around a bit.
Jeff
More information about the Gcc-patches
mailing list