C provenance semantics proposal
Ralf Jung
jung@mpi-sws.org
Thu May 9 11:26:00 GMT 2019
Hi all,
>>> if (a == b)
>>> ...
>>>
>>> # c = PHI <a, b>
>>>
>>> where we'd lose eliding such a conditional. IMHO that's bad
>>> and very undesirable.
>> But if we only suppress this optimization for pointers is it that terrible?
>
> I've at least seen a lot of cases with c = PHI <a, 0> for null pointer
> checks. It's just we're going to chase a lot of cases down even
> knowing RTL will fuck up later big times.
Even if pointer substitution based on "==" is not possible in general, it can
still be possible (depending on other choices in the IR semantics) to do
substitution for "== NULL" pointer tests. This is the conclusion we came to
when studying similar questions for LLVM IR in
<https://people.mpi-sws.org/~jung/twinsem/twinsem.pdf>.
Kind regards,
Ralf
More information about the Gcc
mailing list