Displaying 2 results from an estimated 2 matches for "sethasaddresstaken".
2011 Nov 30
2
[LLVMdev] Problem using a label to a MachineBasicBlock
...MachineBasicBlock 10)
After splitting MBB10 at the call instruction, we get :
BB1 -> MBB10, MBB11
Because I need the address of MBB11, I found that I need to ensure
that 'MBB11->hasAddressTaken()' returns true. Otherwise it can be optimized
away.
This can be done by:
MBB11->setHasAddressTaken();
But this is not sufficient: an assertion failure in
llvm::MMIAddrLabelMap::getAddrLabelSymbolToEmit(..)
is triggered:
'BB->hasAddressTaken()' should also be set.
The only way I found to do this (although it does not look clean to me)
is the following:
(void)llvm::BlockAddress...
2016 Apr 27
2
[Sparc] builtin setjmp / longjmp - need help to get past last problem
...etBasicBlock();
+ MachineFunction::iterator It = ++MBB->getIterator();
+ MachineBasicBlock *thisMBB = MBB;
+ const BasicBlock* mainBB = BasicBlock::Create(BB->getContext(), "setjmp.main");
+ MachineBasicBlock *mainMBB = MF->CreateMachineBasicBlock(mainBB);
+ mainMBB->setHasAddressTaken();
+ const BasicBlock* sinkBB = BasicBlock::Create(BB->getContext(), "setjmp.sink");
+ MachineBasicBlock *sinkMBB = MF->CreateMachineBasicBlock(sinkBB);
+ sinkMBB->setHasAddressTaken();
+
+ MF->insert(It, mainMBB);
+ MF->insert(It, sinkMBB);
+
+ // Transfer the...