Displaying 4 results from an estimated 4 matches for "instrbuilder".
2020 Jan 06
2
[EXTERNAL] Get llvm-mca results inside opt?
...w the branch probability.
llvm-mca only knows how to analyze/simulate a sequence of `mca::Instruction`. So, the expectation is that instructions in input have already been lowered into a sequence of mca::Instruction. The only way currently to obtain an `mca::Instruction` is by calling method `mca::InstrBuilder::createInstruction()` [1] on every instruction in input (see for example how it is done in llvm-mca.cpp [2]).
Unfortunately method `createInstructions()` only works on `MCInst&`. This strongly limits the usability of llvm-mca as a library; the expectation/assumption is that instructions have a...
2019 Dec 24
2
Get llvm-mca results inside opt?
Hi,
I am trying to generate performance models for specific pieces of code like an omp.outlined function. Lets say I have the following code:
start_collect_parallel_for_data(-1.0,-1.0,-1.0, size, “tag for this region”);
#pragma omp parallel for
for(auto i = 0; i < size; ++i){
// … do work
}
stop_collecting_parallel_for_data();
The omp region will get outlined into a new function and what I
2020 May 10
2
[llvm-mca] Resource consumption of ProcResGroups
...esc -
https://llvm.org/doxygen/structllvm_1_1MCProcResourceDesc.html#a9d4d0cc34fcce4779dc4445d8265fffc
).
The reason why you see the crash/assert is because the number of resource
units for scheduler resources is incorrectly set for that instruction by
the instruction builder in llvm-mca ( lib/MCA/InstrBuilder.cpp - function
`initializeUsedResources()`). I am looking at it.
About what Andy suggested: I really like the idea of having a vector of
delay-cycles for consumed resources. It would fix most of these problems in
Haswell, and it could be used to improve the description of some
instructions on oth...
2020 May 10
2
[llvm-mca] Resource consumption of ProcResGroups
> On May 9, 2020, at 5:12 PM, Andrea Di Biagio via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> The llvm scheduling model is quite simple and doesn't allow mca to accurately simulate the execution of individual uOPs. That limitation is sort-of acceptable if you consider how the scheduling model framework was originally designed with a different goal in mind (i.e. machine