Hi, I would like to access the AsmPrinter MachineFunctionPass during compilation in order to do alternative dumping of instructions, instead of using MI->dump(), which can get a bit messy. Is there any way to access this object or the assembler strings? It seems that even these strings / methods are not available through any static methods. Does it exist during the whole compilation or is it created by PassManager in the end? /Jonas -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130720/9a721513/attachment.html>
Hi, I have a question regarding this method, as i have discovered a case where it seems very far from 'strict'. I had two MI's, A and B, where A is !isSafeToMove(): A B TwoAddress pass changes the order to B A , as it reschedules the LastKill MI (B). Is this a bug in TwoAdress, or is it the case that isSafeToMove() is weaker than isSchedulingBoundary() so that these indirect violations are expected and accepted in TwoAddress and elsewhere? Thanks, Jonas
On Nov 6, 2013, at 10:21 AM, Jonas Paulsson <jonas.paulsson at ericsson.com> wrote:> Hi, > > I have a question regarding this method, as i have discovered a case where it seems very far from 'strict'. > > I had two MI's, A and B, where A is !isSafeToMove(): > > A > B > > TwoAddress pass changes the order to > > B > A > > , as it reschedules the LastKill MI (B). > > Is this a bug in TwoAdress, or is it the case that isSafeToMove() is weaker than isSchedulingBoundary() so that these indirect violations are expected and accepted in TwoAddress and elsewhere?The latter. The 2-addr pass is free to move B. /jakob