From: Chris Lattner Date: Sat, 31 Jul 2004 02:10:53 +0000 (+0000) Subject: Mark barrier instructions. Execution does not fall through uncond branches X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=62cce395159467b122d9645b67185039faf89600;p=oota-llvm.git Mark barrier instructions. Execution does not fall through uncond branches or return intructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15356 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index f0303c9393e..1cd9da8ea12 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -169,19 +169,21 @@ def IMPLICIT_DEF : I<"IMPLICIT_DEF", 0, Pseudo>; let isTerminator = 1 in let Defs = [FP0, FP1, FP2, FP3, FP4, FP5, FP6] in def FP_REG_KILL : I<"FP_REG_KILL", 0, Pseudo>; + //===----------------------------------------------------------------------===// // Control Flow Instructions... // // Return instruction... -let isTerminator = 1, isReturn = 1 in +let isTerminator = 1, isReturn = 1, isBarrier = 1 in def RET : I<"ret", 0xC3, RawFrm>, Pattern<(retvoid)>; // All branches are RawFrm, Void, Branch, and Terminators let isBranch = 1, isTerminator = 1 in class IBr opcode> : I; -def JMP : IBr<"jmp", 0xE9>, Pattern<(br basicblock)>; +let isBarrier = 1 in + def JMP : IBr<"jmp", 0xE9>, Pattern<(br basicblock)>; def JB : IBr<"jb" , 0x82>, TB; def JAE : IBr<"jae", 0x83>, TB; def JE : IBr<"je" , 0x84>, TB, Pattern<(isVoid (unspec1 basicblock))>;