mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Treat the label for the first @llvm.dbg.stoppoint the same way as the dbg_func_start label. Make sure nothing else is inserted before them.
Note this solution might be somewhat fragile since ISD::LABEL may be used for other purposes. If that ends up to be an issue, we may need to introduce a different node for debug labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46571 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
43b8f3b7d3
commit
965d1b4bba
@ -716,16 +716,16 @@ void ScheduleDAG::EmitNode(SDNode *Node, unsigned InstanceNo,
|
||||
// If we are inserting a LABEL and this happens to be the first label in
|
||||
// the entry block, it is the "function start" label. Make sure there are
|
||||
// no other instructions before it.
|
||||
bool SeenLabel = false;
|
||||
unsigned NumLabels = 0;
|
||||
MachineBasicBlock::iterator MBBI = BB->begin();
|
||||
while (MBBI != BB->end()) {
|
||||
if (MBBI->getOpcode() == TargetInstrInfo::LABEL) {
|
||||
SeenLabel = true;
|
||||
break;
|
||||
if (++NumLabels > 1)
|
||||
break;
|
||||
}
|
||||
++MBBI;
|
||||
}
|
||||
if (!SeenLabel)
|
||||
if (NumLabels <= 1)
|
||||
BB->insert(BB->begin(), MI);
|
||||
else
|
||||
BB->push_back(MI);
|
||||
|
@ -525,11 +525,15 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const {
|
||||
X86FI->getCalleeSavedFrameSize() +(-TailCallReturnAddrDelta));
|
||||
uint64_t NumBytes = StackSize - X86FI->getCalleeSavedFrameSize();
|
||||
|
||||
// Skip over the label which mark the beginning of the function.
|
||||
if (MMI && MMI->needsFrameInfo() &&
|
||||
MBBI != MBB.end() &&
|
||||
MBBI->getOpcode() == X86::LABEL)
|
||||
// Skip over the labels which mark the beginning of the function.
|
||||
if (MMI && MMI->needsFrameInfo()) {
|
||||
unsigned NumLabels = 0;
|
||||
while (NumLabels <= 1 &&
|
||||
MBBI != MBB.end() && MBBI->getOpcode() == X86::LABEL) {
|
||||
++NumLabels;
|
||||
++MBBI;
|
||||
}
|
||||
}
|
||||
|
||||
// Insert stack pointer adjustment for later moving of return addr. Only
|
||||
// applies to tail call optimized functions where the callee argument stack
|
||||
|
Loading…
Reference in New Issue
Block a user