[Bug ipa/87624] New: improve interprocedural clean up of null pointer checks
amonakov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 16 15:53:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87624
Bug ID: 87624
Summary: improve interprocedural clean up of null pointer
checks
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: amonakov at gcc dot gnu.org
CC: marxin at gcc dot gnu.org
Target Milestone: ---
On the following example the 'p' argument in 'f' can be proven to be nonnull.
In practice this should help to clean up null pointer checks that become
redundant in LTO mode.
Is that something IPA-VRP could handle? I think currently it doesn't work
because there isn't a separate SSA name under the check that can be recorded to
be non-null?
void g(void);
__attribute__((noinline))
static void f(void *p)
{
if (!p)
g();
}
void h(void *p1, void *p2)
{
if (p1)
f(p1);
if (p2)
f(p2);
}
More information about the Gcc-bugs
mailing list