[PATCH] D34135: [JumpThreading] Use DT to avoid processing dead blocks

Brian Rzycki via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 17 11:46:07 PST 2018


brzycki added a comment.

Hi @uabelho.

> Or should we add
> 
>   if (!DDT->flush().isReachableFromEntry(BB))
>     continue;
> 
> ?
>  That alone seems to solve the problem, even if I remove the fix in ProcessBlock.

Doing this outside of ProcessBlock is preferred. The Jumpthreading pass is very expensive in that it iterates over F until no changes are made and every iteration of F it iterates multiple times over every BB until each block stabilizes. If there is a way to gate the flush() with a simple check I recommend doing so too.


https://reviews.llvm.org/D34135





More information about the llvm-commits mailing list