<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Dec 31, 2013, at 3:52 AM, Haishan <<a href="mailto:hndxvon@163.com">hndxvon@163.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="line-height: 1.7; font-size: 14px; font-family: arial;">Hi,<div>  I insert a new machine basic block(MBB) before Greedy Register Allocation, after Simple Register Coalescing. But I encounter a fatal </div><div>error "regalloc = ... not currently supported with -O0". I use command line with opt level O2, not O0.</div><div>The probable reason of this error is that no LiveInterval information for newly MBB which is used by Register Allocation.</div><div>And, LiveIntervals depend on LiveVariables which require the machine function to be in SSA form.</div><div>However, in this case, the modified machine function(including newly inserted MBB) is not SSA form any more.</div><div>So, how to update LiveInterval information of newly MBB?</div><div>Could someone help me with that?</div><div>Thank you very much in advance.</div><div>-Haishan</div></div></blockquote><div><br></div>Yes, I think error that means LiveIntervals have been invalidated. It is supposed to be user-friendly but should probably be changed to be more specific.</div><div><br></div><div>If you schedule a new pass between coalescing and regalloc, it needs to preserve LiveIntervals analysis. There are utilities to recompute live intervals for individual virtual registers. See LiveIntervals::computeVirtRegs. LiveVariables is not actually needed to update live intervals. It is only added as a requirement to make sure it runs before the 2-address pass.</div><div><br></div><div>-Andy</div><div><br><blockquote type="cite"><div style="line-height: 1.7; font-size: 14px; font-family: arial;"><div><br></div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></body></html>