[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