[LLVMdev] Extracting ILP from bytecode/*.ll

Tanya Lattner tonic at nondot.org
Thu Jun 1 15:29:19 PDT 2006


> By using analyze -stats -instcounts <bytecode> I can get the total number
> of instructions but I want to extract instruction level parallelism .
> That is I want to know number of add instruction that can be executed
> in parallel, similarly for multiply ...
> This would give me an idea what is upper limit of adders ( and multipliers
> )should be there in my hardware.
>
> Any kind of help would be  greatly appreciated.

LLVM instructions are target independent and have no concept of hardware 
resources. The kind of information you want is target specific. You would 
need to know the mapping from LLVM instructions to your target machine 
instructions (not necessarily 1-1) and what resources each machine 
instruction uses. But thats just the start of it. You need to take into 
consideration all the architecture details (not just resource constraints) 
and the dependence graph to determine which instructions can be executed 
in parallel.

I'd suggest reading up on instruction scheduling or software pipelining 
for more details.

-Tanya



More information about the llvm-dev mailing list