[llvm-commits] [llvm] r159694 - in /llvm/trunk: include/llvm/CodeGen/Passes.h include/llvm/InitializePasses.h include/llvm/Target/TargetInstrInfo.h lib/CodeGen/CMakeLists.txt lib/CodeGen/CodeGen.cpp lib/CodeGen/EarlyIfConversion.cpp lib/CodeGen/Passes.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Thu Jul 5 20:30:56 PDT 2012


On Jul 5, 2012, at 8:07 PM, Hal Finkel <hfinkel at anl.gov> wrote:

> Perhaps this is unavoidable, but it seems like we're going to end up
> with at least three if-conversion passes. Two in CodeGen and at least
> one IR-level pass.

I initially wanted the early if-conversion pass to be just another mode of the existing late if-conversion pass. It was quickly apparent, though, that the two passes have very little in common other than the name.

The feasibility analysis is completely different with speculative execution vs predication, and the transformation itself is also very different.

> An IR-level pass seems necessary for vectorization
> (and Ralf already has one written as part of his WFV project:
> https://github.com/karrenberg/wfv/tree/master/src/functionPasses). Do
> you think there is any way in which we can or should tie all these
> things together?

No, those passes would only be similar on a very superficial level.

You may be able to share some code with SimplifyCFG, though. It does very limited if-conversion ATM. It's hard when you have no idea how your target works.

/jakob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120705/0f4ed140/attachment.html>


More information about the llvm-commits mailing list