Reputation: 2345
This is a very simple question for compiler guys, but I always get confused with superblocks and hyperblocks. I have seen definitions for superblocks and hyperblocks, but I would like to know the definition for them from the perspective of a compiler guy.
I am familiar with concepts like basic block, predicate execution, and loop unrolling, so you can skip the basic stuff.
Thanks!
Upvotes: 2
Views: 2713
Reputation: 2345
This paper describes the idea of superblock and what a superblock is. In brief, the idea is to increase ILP across basic blocks since ILP in a basic block might not be high enough. A superblock is a trace which has no side entrances. Control may only enter from the top but may leave at one or more exit points. So single entry at top, but multiple exits. We use profile information to build a superblock from common path which includes multiple basic blocks. We then apply superblock optimization. Take a look at the paper for more info.
If we don't have a single common path, and if we have prediction support, we can combine multiple common paths to make a hyberblock and do optimization on the hyperblock.
Upvotes: 6