[LLVMdev] recreate optimized clang output
Hendrix_ at gmx.net
Hendrix_ at gmx.net
Thu Jan 27 13:45:06 PST 2011
On 27.01.2011, at 21:45, Devang Patel wrote:
>
> On Jan 27, 2011, at 12:37 PM, Hendrix_ at gmx.net wrote:
>
>>
>> On 27.01.2011, at 21:12, Devang Patel wrote:
>>
>>>
>>> On Jan 27, 2011, at 12:02 PM, Hendrix_ at gmx.net wrote:
>>>
>>>> OK, I am looking for "LTO"/global optimization. So the function definition will remain "somewhere else" (externally), and the optimizer will find in some other module to possibly inline it later on.
>>>>
>>>> I am planning to concat all the *.ll (eg "link" the files) and pass them to the "global" optimizer, as "size" is a very important optimization criterium to me. After that, the back-end will be invoked.
>>>> Is that a good approach?
>>>
>>> How about just add -O4 on clang (or llvm-gcc) command line to get LTO optimizations ?
>>> See http://llvm.org/docs/LinkTimeOptimization.html
>>> http://llvm.org/docs/GoldPlugin.html
>>> On Mac OS X, it is a checkbox in Xcode.
>>> -
>>> Devang
>>
>> My backend doesnt supply lto :( I am trying to emulate lto like this:
>
> The backend (or code generator) does not do LTO in this case also.
Roger, but the effect is equivalent to lto, isnt it?
As I understand, lto-enabled GCC does the same (save as compiled code and IR) and the linker will optimize over that IR (if present) and then invoke its backend.
I was playing with gcc-lto on linux last year, but it didnt work very well for me at that time. So when I saw llvm, that is what came to my mind first: emulated lto due to the IR!
>> clang *.c -S -emit-llvm
>> cat *.ll > very_big.ll
>> opt -O3 -extra-things...
>> llc very_big.ll.optimized
>
> Try replacing "cat *.ll > very_big.ll" with "llvm-ld *.ll -o big.bc". 'llvm-ld' is another llvm tool, just like 'opt'
OK! I will be able to have a look at any intermediate file with llvm-dis I suppose in order to verify the transformations done...
Best, Patrick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110127/175ad9d8/attachment.html>
More information about the llvm-dev
mailing list