[llvm-commits] [PATCH] Make SimplifyCFGPass preserve the dominator tree
Chandler Carruth
chandlerc at google.com
Fri Jun 8 15:07:23 PDT 2012
On Fri, Jun 8, 2012 at 3:04 PM, Peter Cooper <peter_cooper at apple.com> wrote:
>
> On Jun 8, 2012, at 3:00 PM, Chandler Carruth wrote:
>
> On Fri, Jun 8, 2012 at 10:47 AM, Peter Cooper <peter_cooper at apple.com>wrote:
>
>> Hi all
>>
>> Attached is a pass to make the SimplifyCFGPass preserve the dominator
>> tree. Currently we see lots of recalculations of the dom tree right after
>> simplify cfg runs, regardless of whether simplify cfg actually did anything.
>>
>> This pass explicitly recalculates the dom tree if simplify cfg did
>> anything, but otherwise just leaves it preserved so we recalculate less
>> often.
>>
>> Also, i'm open to suggestions for a better way to do this. Ideally the
>> pass manager could track this but not all passes return true from their run
>> functions when they actually make a change.
>
>
> Can we just go fix these passes and then teach the pass manager to
> preserve analyses across passes that claim they didn't change anything?
> There aren't *that* many optimization passes.
>
> Yeah, that would be possible. Like you say, there aren't that many
> passes. As I just replied to John, passes like simplify lib calls need
> fixed but its trivial to see how its return value would need to be fixed.
>
The fact that the semantic impact of the return is being ignored by passes
is pretty annoying.
I'm quite tempted to suggest a basic check-summing system that can be run
like the verifier before and after a pass by the pass manager to assert
that in fact the pass didn't modify stuff.... Bit of a yak shave, but maybe
something to leave FIXMEs or comments about. It would be good to have the
pass manager enforce this eventually.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120608/824dc4af/attachment.html>
More information about the llvm-commits
mailing list