[llvm-dev] Is there any relationship between IR instruction and execution time
Yin Liu via llvm-dev
llvm-dev at lists.llvm.org
Tue May 8 14:49:27 PDT 2018
Hi Matt,
Thanks you so much for the reply!
I've tried the llvm-mca, it is helpful.
I was wondering whether the llvm-mca support the assembly code for the ARM?
I cross-compile the test file for ARM like that: clang test.c -O2 -target
arm-linux-gnueabihf -static -S -o test.s
If I want to check the performance using llvm-mca, is there any option of
"-mcpu" for ARM ?
Thanks,
Yin
2018-05-07 21:52 GMT-04:00 <Matthew.Davis at sony.com>:
> Hi Yin,
>
> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Yin Liu via
> llvm-dev
> > Hello,
> >
> > As is known to all, there is a relationship between program's
> instructions and its execution time. In other words, we can estimate the
> execution time based on the number of program > instructions.
> >
> > I'm curious about what the relationship between IR instruction and
> execution time. I know the number of program instructions and the execution
> time is highly related to the
> > platform and architecture, while the IR instruction is independent and
> intermediate. But, intuitively, there may be some relationship between IR
> instruction and execution time.
> >
> > Would it be possible to give me some advice about it?
>
> What instructions finally get emitted by the compiler is highly dependent
> on the specified target. As you pointed out, IR is relatively abstract,
> and can at best only generate a "rough" estimate to timing. Maybe that
> loss of fidelity is acceptable in your case. Be aware that there are also
> target specific optimizations that operate after the IR is lowered to a
> target friendly representation. Any early approximation of IR performance
> will be less accurate after target specific optimization passes are ran.
> For more accurate results, you will need to wait until the IR is lowered to
> the target architecture and emitted as assembly or object code. But it
> seems that might be too late for what you are looking for. In any case, if
> you do want to analyze the assembly code, then look no further than llvm's
> Machine Code Analyzer(MCA). This tool takes an assembly code as input and
> generates throughput and latency information. For more details see:
> https://llvm.org/docs/CommandGuide/llvm-mca.html
>
> -Matt
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180508/cbc57e23/attachment.html>
More information about the llvm-dev
mailing list