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
This commit is contained in:
Evan Cheng
2008-02-01 09:10:45 +00:00
parent a647c92ec2
commit 1b08bbca55
8 changed files with 29 additions and 59 deletions

View File

@ -276,6 +276,11 @@ namespace llvm {
unsigned ForcedAlignBits = 0, bool UseFillExpr = false,
unsigned FillValue = 0) const;
/// printLabel - This method prints a local label used by debug and
/// exception handling tables.
void printLabel(const MachineInstr *MI) const;
void printLabel(unsigned Id) const;
protected:
/// EmitZeros - Emit a block of zeros.
///
@ -299,10 +304,6 @@ namespace llvm {
/// instruction that is an inline asm.
void printInlineAsm(const MachineInstr *MI) const;
/// printLabel - This method prints a local label used by debug and
/// exception handling tables.
void printLabel(const MachineInstr *MI) const;
/// printBasicBlockLabel - This method prints the label for the specified
/// MachineBasicBlock
virtual void printBasicBlockLabel(const MachineBasicBlock *MBB,