diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-02-01 09:10:45 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-02-01 09:10:45 +0000 |
commit | 1b08bbca5592351a940bcd164bdec724ee954326 (patch) | |
tree | f11d5f22e3bcdf9bd067d3e90ba002e1e2557c42 /lib/CodeGen/SelectionDAG/ScheduleDAG.cpp | |
parent | a647c92ec2b3c91e1e6de25cc5c7860912c7626b (diff) |
Remove the nasty LABEL hack with a much less evil one. Now llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46635 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/ScheduleDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/ScheduleDAG.cpp | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp index aad1f87ed9..3ecd623c81 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp @@ -711,28 +711,7 @@ void ScheduleDAG::EmitNode(SDNode *Node, unsigned InstanceNo, } } - // Now that we have emitted all operands, emit this instruction itself. - if (ISD::isDebugLabel(Node) && - !BB->empty() && &MF->front() == BB) { - // If we are inserting a debug label and this happens to be the first - // debug label in the entry block, it is the "function start" label. - // Make sure there are no other instructions before it. - unsigned NumLabels = 0; - MachineBasicBlock::iterator MBBI = BB->begin(); - while (MBBI != BB->end()) { - // FIXME: This is a nasty short term workaround. For now, we are - // assuming there are two debug labels at the beginning of the - // entry block: one for dbg_func_start, one for the first - // dbg_stoppoint before actual code. - if (!MBBI->isDebugLabel() || ++NumLabels > 1) - break; - ++MBBI; - } - if (NumLabels <= 1) - BB->insert(BB->begin(), MI); - else - BB->push_back(MI); - } else if (II.usesCustomDAGSchedInsertionHook()) + if (II.usesCustomDAGSchedInsertionHook()) // Insert this instruction into the basic block using a target // specific inserter which may returns a new basic block. BB = DAG.getTargetLoweringInfo().EmitInstrWithCustomInserter(MI, BB); |