<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Nov 3, 2011, at 3:20 AM, 王文涛 wrote:</div><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">   If so,LLVM have already gained the ability to produce hyperblock or I need to write codes to let LLVM produce hyperblock?</span></blockquote></div><br><div>You will not be able to represent hyperblocks without developing your own extensions to the IR. The extent to which you would be able to reuse LLVM optimizations after converting to your hyperblock IR (if at all) would depend on the restrictions you place on the type of hyperblocks that can be formed. Anything beyond single-entry, single exit regions would probably be too difficult to cleanly represent. The existing LLVM optimizations that take advantage of control flow information would be effectively disabled after converting to hyperblocks.</div><div><br></div><div>-Andy</div></body></html>