How to increase the size of a basic block?


I am working on Instruction Set Extensions and I am looking for a way to increase the sizes of a basic block.

Besides the loop-unrollers is there any code laying around which could be used to that purpose (like superblock formation, hyperblocks, predicate execution ..)?

Best regards, Mariusz.

JumpThreading duplicates instructions in an attempt to reduce the
number of branches, and SimplifyCFG does some limited speculative
execution transformations.

The particular transformations you're talking about are considered
backend-specific; the ARM backend has some code for predication, but
LLVM doesn't support any architectures which use superblocks and/or
hyperblocks at the moment.