[LLVMdev] code-altering Passes for llc
    Artjom Kochtchi 
    artjom.kochtchi at googlemail.com
       
    Sat Aug 15 15:58:43 PDT 2009
    
    
  
I tried to insert a new MachineBasicBlock at the beginning of functions, but
when I do that like
  MachineBasicBlock *entry = MF.begin();
  const BasicBlock *block = entry->getBasicBlock();
  MachineBasicBlock *newMBB = MF.CreateMachineBasicBlock(block);			
  MachineInstrBuilder instr = BuildMI(labelBlock, TII->get(X86::NOOP));
  newMBB->addSuccessor(entry);
  MF.push_front(newMBB);
llc fails with the following error message. Can someone tell me what I am
doing wrong?
  llc: MachineRegisterInfo.cpp:33:
llvm::MachineRegisterInfo::~MachineRegisterInfo():
  Assertion `!PhysRegUseDefLists[i] && "PhysRegUseDefLists has entries after
all instructions are deleted"' failed.
Apart from that llc fails when I run my modified version on larger test
programs. The error message displayed is:
  lc: MachineBasicBlock.cpp:361:
  bool
llvm::MachineBasicBlock::CorrectExtraCFGEdges(llvm::MachineBasicBlock*,
llvm::MachineBasicBlock*, bool):
  Assertion `DestA == 0 && "MachineCFG is missing edges!"' failed.
I did not overwrite getAnalysisUsage, therefore not guaranteeing to preserve
anything. Clearly, the runtime check adds edges to the CFG. What may be the
cause of this error and how can I fix it?
-Artjom
-- 
View this message in context: http://www.nabble.com/code-altering-Passes-for-llc-tp24778261p24988862.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090815/55df5843/attachment.html>
    
    
More information about the llvm-dev
mailing list