Rename llvm.frameescape and llvm.framerecover to localescape and localrecover
[oota-llvm.git] / include / llvm / Target / TargetOpcodes.h
index d6225a4bc058c388efdf12b52791b75b8ffd5553..50197191109d48dc6ea6437058a8c64ceb62415b 100644 (file)
@@ -25,7 +25,7 @@ namespace TargetOpcode {
 enum {
   PHI = 0,
   INLINEASM = 1,
-  PROLOG_LABEL = 2,
+  CFI_INSTRUCTION = 2,
   EH_LABEL = 3,
   GC_LABEL = 4,
 
@@ -104,7 +104,30 @@ enum {
   /// support optimizations for dynamic languages (such as javascript) that
   /// rewrite calls to runtimes with more efficient code sequences.
   /// This also implies a stack map.
-  PATCHPOINT = 18
+  PATCHPOINT = 18,
+
+  /// This pseudo-instruction loads the stack guard value. Targets which need
+  /// to prevent the stack guard value or address from being spilled to the
+  /// stack should override TargetLowering::emitLoadStackGuardNode and
+  /// additionally expand this pseudo after register allocation.
+  LOAD_STACK_GUARD = 19,
+
+  /// Call instruction with associated vm state for deoptimization and list
+  /// of live pointers for relocation by the garbage collector.  It is
+  /// intended to support garbage collection with fully precise relocating
+  /// collectors and deoptimizations in either the callee or caller.
+  STATEPOINT = 20,
+
+  /// Instruction that records the offset of a local stack allocation passed to
+  /// llvm.localescape. It has two arguments: the symbol for the label and the
+  /// frame index of the local stack allocation.
+  LOCAL_ESCAPE = 21,
+
+  /// Loading instruction that may page fault, bundled with associated
+  /// information on how to handle such a page fault.  It is intended to support
+  /// "zero cost" null checks in managed languages by allowing LLVM to fold
+  /// comparisions into existing memory operations.
+  FAULTING_LOAD_OP = 22,
 };
 } // end namespace TargetOpcode
 } // end namespace llvm