This is the mail archive of the
mailing list for the GCC project.
Re: SRA: don't drop clobbers
- From: Jeff Law <law at redhat dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>, Marc Glisse <marc dot glisse at inria dot fr>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 07 Jul 2014 10:59:40 -0600
- Subject: Re: SRA: don't drop clobbers
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot DEB dot 2 dot 02 dot 1406282350110 dot 31815 at stedding dot saclay dot inria dot fr> <alpine dot DEB dot 2 dot 02 dot 1406300119080 dot 8326 at stedding dot saclay dot inria dot fr> <CAFiYyc3VuRhVBOhELM=_X5YYBuL3X5CRdPt0WC3M+DzOaDe4nQ at mail dot gmail dot com>
On 07/07/14 02:56, Richard Biener wrote:
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.
On Mon, Jun 30, 2014 at 1:38 AM, Marc Glisse <email@example.com> wrote:
with this patch on top of
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?
It's very similar to what's already happening in tree-into-ssa, he's
just handling it in another place.