[LLVMdev] [RFC] Bundling support in the PostRA Scheduler

Ivan Llopard ivanllopard at gmail.com
Tue Jul 31 08:37:27 PDT 2012


Hi,

I'm working on a custom top-down post RA scheduler which builds bundles 
at the same time for our VLIW processor. I've borrowed most of the 
implementation from the resource priority queue implemented for the 
existent VLIW scheduler but applied to the context of MI scheduling. 
Basically, instructions that are likely to be bundled must be scheduled 
first (i.e. get higher priority).
This work should integrate very well with the current infrastructure and 
I'd like to contribute with a patch to add bundling capabilities to the 
current post RA scheduler if the LLVM community is interested :-) (May 
Hexagon need it as well?). It would also be a great opportunity for us 
to get feedback from the community about this.

We have a non-interlocked processor which relies on the post ra 
scheduler to emit cycle-accurate bundles (valid bundles without 
incurring in structural hazards). The construction of bundles outside 
the scope of post RA scheduling will require structural hazard 
information to work properly for processors without pipeline interlocks. 
For example, we can discover that an instruction can fit into the 
current packet (following a schema of linear code scanning, just like 
the current DFAPacketizer does) while in fact it cannot because of 
structural hazards. The two terms are strongly connected and necessary 
to build valid packets.
The concerns are mainly based on our non-interlocked processor, where 
cycle-accurate bundle emission is necessary. Other approaches/ideas are 
very welcome.
Do you have any plan for adding a more robust bundler into the current 
infrastructure ?

Ivan




More information about the llvm-dev mailing list