This is an archive of the discontinued LLVM Phabricator instance.

Improve BasicAA Pass Using zext Information
ClosedPublic

Authored by njw45 on Oct 4 2014, 12:45 PM.

Details

Reviewers
hfinkel
Summary
  1. Fixes a bug when calculating the offset in GetLinearExpression. The code previously used zext to extend the offset, so negative offsets were converted to large positive ones.
  2. Enhance aliasGEP to deduce that, if the difference between two GEP allocations is positive and all the variables that govern the offset are also positive (i.e. the offset is strictly after the higher base pointer), then allocations that fit in the gap between the two base pointers are NoAlias.

Diff Detail

Event Timeline

njw45 updated this revision to Diff 14429.Oct 4 2014, 12:45 PM
njw45 retitled this revision from to Improve BasicAA Pass Using zext Information.
njw45 updated this object.
njw45 edited the test plan for this revision. (Show Details)
njw45 added a reviewer: hfinkel.
njw45 added a subscriber: Unknown Object (MLST).Oct 4 2014, 12:46 PM
hfinkel accepted this revision.Oct 6 2014, 10:40 AM
hfinkel edited edge metadata.

Alright, let's try this again.

This revision is now accepted and ready to land.Oct 6 2014, 10:40 AM
hfinkel closed this revision.Oct 6 2014, 11:48 AM

I added an early exit from the loop to avoid unnecessary, but expensive, functions call. r219135.