[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