[llvm-commits] [llvm] r150885 - /llvm/trunk/lib/Analysis/ScalarEvolutionExpander.cpp
Chris Lattner
clattner at apple.com
Fri Feb 24 19:44:40 PST 2012
I haven't been following the whole thread, but dominators provides one specific invariant: unreachable code does not show up, so it never returns true for dominance relations. DomTrer also had an isReachable predicate. This system has worked quite well so far.
-Chris
On Feb 24, 2012, at 7:18 PM, Andrew Trick <atrick at apple.com> wrote:
>
> On Feb 24, 2012, at 1:35 PM, Rafael EspĂndola <rafael.espindola at gmail.com> wrote:
>> New version of the patches.
>>
>> I have tweaked the definition of dominates(Inst, BB) to simplify the
>> implementation of dominates(Inst, Inst). Thanks a lot to Andy for
>> pointing out that the loop over the predecessors when handling a phi
>> was not necessary.
>>
>> To test this I have reenabled the assert in
>> ScalarEvolutionExpander.cpp, bootstrapped clang and ran the
>> test-suite.
>>
>> Cheers,
>> Rafael
>> <0001-Fix-the-implementation.patch><0002-Use-the-DT-dominate-function-in-the-verifier.patch>
>
> LGTM!
>
> We do need to resolve FIXMEs. I don't really understand why they occur where they do. It seems to me that dominates() has always made a fundamental assumption about reachability. For example, we've always said that two phis in the same block do not "dominate" each other. So maybe we should add a function level comment explaining that assumption. If we're not planning to change it, let's not add FIXMEs. Are there any specific cases you're concerned about?
>
> Do you think you've tested the verifier well enough? Is there any value in running with -verify-each in this case?
>
> -Andy
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list