[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

Evan Cheng evan.cheng at apple.com
Wed Jul 11 22:02:10 PDT 2012


On Jul 5, 2012, at 8:30 PM, Jakob Stoklund Olesen wrote:

> 
> 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.

Currently LLVM optimizer form selects as an canonicalization, not as an optimization. CodeGenPrep may very well come along and de-select everything. For vectorization, I suspect you want something that's significantly more aggressive.

Evan

> 
> /jakob
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120711/32e09c39/attachment.html>


More information about the llvm-commits mailing list