Index: include/llvm/CodeGen/MachineInstr.h =================================================================== --- include/llvm/CodeGen/MachineInstr.h +++ include/llvm/CodeGen/MachineInstr.h @@ -797,9 +797,14 @@ bool isEHLabel() const { return getOpcode() == TargetOpcode::EH_LABEL; } bool isGCLabel() const { return getOpcode() == TargetOpcode::GC_LABEL; } + bool isAnnotationLabel() const { + return getOpcode() == TargetOpcode::ANNOTATION_LABEL; + } /// Returns true if the MachineInstr represents a label. - bool isLabel() const { return isEHLabel() || isGCLabel(); } + bool isLabel() const { + return isEHLabel() || isGCLabel() || isAnnotationLabel(); + } bool isCFIInstruction() const { return getOpcode() == TargetOpcode::CFI_INSTRUCTION; Index: include/llvm/Target/Target.td =================================================================== --- include/llvm/Target/Target.td +++ include/llvm/Target/Target.td @@ -906,7 +906,7 @@ let InOperandList = (ins i32imm:$id); let AsmString = ""; let hasCtrlDep = 1; - let hasSideEffects = 1; + let hasSideEffects = 0; let isNotDuplicable = 1; } def EH_LABEL : Instruction { @@ -914,7 +914,7 @@ let InOperandList = (ins i32imm:$id); let AsmString = ""; let hasCtrlDep = 1; - let hasSideEffects = 1; + let hasSideEffects = 0; let isNotDuplicable = 1; } def GC_LABEL : Instruction { @@ -922,7 +922,7 @@ let InOperandList = (ins i32imm:$id); let AsmString = ""; let hasCtrlDep = 1; - let hasSideEffects = 1; + let hasSideEffects = 0; let isNotDuplicable = 1; } def ANNOTATION_LABEL : Instruction { @@ -930,7 +930,7 @@ let InOperandList = (ins i32imm:$id); let AsmString = ""; let hasCtrlDep = 1; - let hasSideEffects = 1; + let hasSideEffects = 0; let isNotDuplicable = 1; } def KILL : Instruction {