Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating
authorDan Gohman <gohman@apple.com>
Tue, 1 Jul 2008 00:05:16 +0000 (00:05 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 1 Jul 2008 00:05:16 +0000 (00:05 +0000)
commit4406604047423576e36657c7ede266ca42e79642
treee169d28b09c59d954867d6bac98f8fffe8494096
parentc2bf1870a7317bd38102e74d261aa8f92c013744
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.

Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.

This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
35 files changed:
include/llvm/CodeGen/MachineInstr.h
include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGNodes.h
include/llvm/Target/TargetInstrInfo.h
lib/CodeGen/BranchFolding.cpp
lib/CodeGen/Collector.cpp
lib/CodeGen/DwarfWriter.cpp
lib/CodeGen/MachineInstr.cpp
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp
lib/Target/ARM/ARMInstrInfo.cpp
lib/Target/Alpha/AlphaISelLowering.cpp
lib/Target/CellSPU/SPURegisterInfo.cpp
lib/Target/IA64/IA64ISelLowering.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/PIC16/PIC16ISelLowering.cpp
lib/Target/PowerPC/PPCCodeEmitter.cpp
lib/Target/PowerPC/PPCInstrInfo.cpp
lib/Target/PowerPC/PPCRegisterInfo.cpp
lib/Target/Sparc/SparcISelLowering.cpp
lib/Target/Target.td
lib/Target/X86/X86ATTAsmPrinter.cpp
lib/Target/X86/X86CodeEmitter.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86RegisterInfo.cpp
utils/TableGen/AsmWriterEmitter.cpp
utils/TableGen/CodeEmitterGen.cpp
utils/TableGen/CodeGenTarget.cpp
utils/TableGen/DAGISelEmitter.cpp
utils/TableGen/InstrInfoEmitter.cpp