[LLVMdev] About Runtime Optimization

Toan Mai iammxt at gmail.com
Mon May 16 09:52:31 PDT 2011


Hi all members,

I am new to LLVM. I am getting to know how the trace-based Runtime
Optimization feature of LLVM works and how I can use it.

>From some old documents of LLVM, I've got a general idea that we instrument
a program with First & Second level Instrumentations (FLI & SLI), then link
it with runtime libraries that handle runtime generation of traces. 

The FLI will detect hot loop regions, then it will invoke SLI to further
detect hot paths forming a trace inside the loop. Finally, The Runtime
Optimizer is invoked to do optimization on that trace...

Then I also did some search in this mailing list and on the Internet.
However, I have not found any documentation showing in detail how to do
this.

I wonder:

1) given a program written purely in C, can we apply this feature using the
tools & libraries provided by LLVM? and How (if yes)?

2) Is the design of FLI & SLI outdated? How is the state of runtime
optimization in LLVM dev at the moment?

3) If the design of FLI & SLI is still used for runtime optimization:
- Is 'opt
-insert-edge-profiling/-insert-optimal-edge-profiling/-insert-path-profiling'
the right way to insert FLI and/or SLI to the program binary?
- what are the exact libraries I should use for runtime generation of
traces?

Any reply/suggestion would be highly appreciated!

Best regards,
-- 
Toan Mai
-- 
View this message in context: http://old.nabble.com/About-Runtime-Optimization-tp31630875p31630875.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.




More information about the llvm-dev mailing list