[LLVMdev] Question to Chris
Tanya M. Lattner
tonic at nondot.org
Mon Feb 4 16:01:09 PST 2008
>> 1) LLVM has the capabilities to do everything that you are trying to
>> re-implement.
>> 2) Have you looked at the C backend? It recreates loops. It may not
>> create "for" loops but you can hack on it to do that.
>
> I wonder if you mean "goto elimination technique" by Ana Maria Erosa (
> http://citeseer.ist.psu.edu/317208.html ) for this?
I mean exactly this: look at the C backend in LLVM. It goes from LLVM IR
in SSA form to C code.
LLVM has everything you are trying to reimplement. You should spend some
time looking through doxygen or the source code for examples.
>> 3) The way you are converting out of SSA is wrong. You will suffer
>> from lost copies. You should look at using demotePHI(). see include/
>> llvm/Transforms/Utils/Local.h
>
> I use LLVM 1.9 where I can't find demotePHI(). Is it a function available at later versions?
It is not in 1.9. You should really consider upgrading to 2.1 or 2.2 (its
out in a week). 1.9 is almost 1.5 years old! demotePHI is in 2.1.
>
>> 4) LLVM will compute your trip counts for you, use LoopInfo. You
>> need to be in SSA form to do this.
> Do you mean -loops pass, right?
>
I mean this:
http://llvm.org/doxygen/LoopInfo_8h-source.html
Require the analysis in your pass and use it.
-Tanya
More information about the llvm-dev
mailing list