This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: SRA: don't drop clobbers


On 07/07/14 02:56, Richard Biener wrote:
On Mon, Jun 30, 2014 at 1:38 AM, Marc Glisse <marc.glisse@inria.fr> wrote:
Hello,

with this patch on top of
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02315.html
we finally warn for the testcase of PR 60517.

The new function is copied from init_subtree_with_zero right above. I guess
it might be possible to merge them into a single function, if desired. I
don't understand the debug stuff, but hopefully by keeping the functions
similar enough it shouldn't be too broken.

When we see a clobber during scalarization, instead of dropping it, we add a
clobber to the new variable, which the previous patch turns into an SSA_NAME
with a default def. Then either we reach uninit and warn, or the variable
appears in a PHI and CCP optimizes.

What's the point of a clobber of sth that was scalarized away?  So ...
can you please explain in more detail?
Marc is trying to exploit the "undefinedness" of the object that exists after the CLOBBER. When we scalaraize, we are losing the undefinedness quality of the object.

It's very similar to what's already happening in tree-into-ssa, he's just handling it in another place.

Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]