[LLVMdev] Measure execution time of each basic block

Jonathan Roelofs jonathan at codesourcery.com
Wed Sep 17 13:46:39 PDT 2014



On 9/17/14 2:35 PM, Vanderson Martins do Rosario wrote:
> Jon,
> I need to create a database of basics blocks and their execution time. The only
> thing I'm concerned is if a block A is more expensive than a block B.
> Do you think that even with the overhead I would be able to get the A > B
> information?
> Like: overhead + time(A) > overhead + time(B) => A > B.
> If so, I'm not too much concerned about the accuracy.
>
Depends on your platform. Different counters have different resolutions, 
anywhere from miliseconds to 10's of cycles, and the overhead can have a bit of 
variability too, which means that 'overhead + time(A) > overhead + time(B) => A 
 > B' is not necessarily true.  When overhead >> time(A) (or B), then you're not 
going to get a meaningful measurement.


Cheers,

Jon
> Not sure if I was clear,
>
> Thanks again
>
> Vanderson M. Rosario
>
> 2014-09-17 17:26 GMT-03:00 Jonathan Roelofs <jonathan at codesourcery.com
> <mailto:jonathan at codesourcery.com>>:
>
>     I think if you do this, you're quickly going to realize that there's quite a
>     lot of overhead in getting the time stamps needed to record basic block
>     duration, so you're not going to get accurate results except for really big
>     basic blocks.
>
>
>     Cheers,
>
>     Jon
>
>
>     On 9/17/14 1:53 PM, Vanderson Martins do Rosario wrote:
>
>         Guys,
>
>         Someone have any idea how could I measure the execution time of each
>         LLVM basic
>         block of a program?
>
>         I tried to use some profiling tools like gcov and perf, but as far as I know
>         they can only give me the frequency that each basic block is executed.
>
>         I was thinking about writing a pass to add PAPI instructions in each
>         LLVM basic
>         block. Do you think is a good idea?
>
>         Thanks
>
>         Vanderson M. Rosario
>
>
>         _________________________________________________
>         LLVM Developers mailing list
>         LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
>         http://lists.cs.uiuc.edu/__mailman/listinfo/llvmdev
>         <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>
>
>
>     --
>     Jon Roelofs
>     jonathan at codesourcery.com <mailto:jonathan at codesourcery.com>
>     CodeSourcery / Mentor Embedded
>
>

-- 
Jon Roelofs
jonathan at codesourcery.com
CodeSourcery / Mentor Embedded



More information about the llvm-dev mailing list