<div dir="ltr">MachineBasicBlock allows for multiple terminators. Unconditional branches and returns are marked as terminators<span class="gmail_default" style="font-size:small">; t</span>he MIPS backend also marks conditional branches as terminators. The MachineBasicBlock <span class="gmail_default" style="font-size:small">then </span>has a helper function getFirstTerminator which iterates from the first terminator to the end of the MBB.<br><br>So it seems to me that an MBB is a kind of superblock, single entrance and multiple side exits. <span class="gmail_default" style="font-size:small">There are also</span> TailDuplication and BranchFolding passes. While these two are technically not part of the superblock definition, they are usually part of a superblock implementation because you want   a superblock <span class="gmail_default" style="font-size:small">to be </span>as<span class="gmail_default" style="font-size:small"> big as</span> possible.<div><br></div><div><div class="gmail_default" style="font-size:small">Of course, you could make a big superblock in the CFG and then tile it down into basic MBBs. But the only reason  that I can think of for that would be codegen simplicity and with GlobalISel, I would think that would no longer be the case.</div><br>A<span class="gmail_default" style="font-size:small">nyways, a</span>m I getting this right? If so, is there any way to control the creation of th<span class="gmail_default" style="font-size:small">ese</span> superblock<span class="gmail_default" style="font-size:small">s</span>, that is, which basic blocks from the CFG go into a given MBB?<br><br>I'm still in the MC layer, so I really don't know where in the MI layer this <span class="gmail_default" style="font-size:small">sort of </span>tiling of the CFG is done. (In a full blown superblock formation that tiling would be a profile driven decision for finding the hot trace.)<br><br>It's always good to just look at things. So I want to just display some MBBs for some code for some backend at preEmit and just look at what they look like. Any suggestions for that will be appreciated.<br><br>thanks,<br><br>Chris<br><br>BTW, this is at the MI-MC interface. The IR BasicBlock is <span class="gmail_default" style="font-size:small">a </span>completely different<span class="gmail_default" style="font-size:small"> issue.</span></div></div>