[llvm-bugs] [Bug 31895] New: LVI should use PredicateInfo, ideally

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Feb 7 13:45:45 PST 2017


            Bug ID: 31895
           Summary: LVI should use PredicateInfo, ideally
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: dberlin at dberlin.org
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

LVI currently has issues where it tries to determine per-block values because
the value has the same name everywhere.

These are all examples of what predicateinfo solves, and using it, if possible,
would greatly simplify and speedup LVI.

For example, LVI currently requires the overdefined cache be per-block, so it
can try to evaluate the value in each block.  With predicateinfo, each block
value that matters to LVI has a different name in that block, so you don't need
to do this.

In practice, overdefined anywhere should be overdefined everywhere, and having
it per-block just makes certain testcases hundreds of times slower as they try
to propagate overdefined info.

So changing this,for example, speeds up LVI by 10x in some cases.

Currently it's fast enough that i'm putting this to the side, but ...

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170207/3a2c5dab/attachment.html>

More information about the llvm-bugs mailing list