Aggressively prune the DFS when inserting phi-defs.
[oota-llvm.git] / include / llvm / MC / MCCodeEmitter.h
index 5565945f5abaf8a2f918b73b0b97c688c97d80b1..010a2e556629539e7f2fa7bcf431a36ee288b8de 100644 (file)
@@ -22,6 +22,12 @@ template<typename T> class SmallVectorImpl;
 
 /// MCFixupKindInfo - Target independent information on a fixup kind.
 struct MCFixupKindInfo {
+  enum FixupKindFlags {
+    /// Is this fixup kind PCrelative. This is used by the assembler backend to
+    /// evaluate fixup values in a target independent manner when possible.
+    FKF_IsPCRel = (1 << 0)
+  };
+
   /// A target specific name for the fixup kind. The names will be unique for
   /// distinct kinds on any given target.
   const char *Name;
@@ -36,6 +42,9 @@ struct MCFixupKindInfo {
   /// The number of bits written by this fixup. The bits are assumed to be
   /// contiguous.
   unsigned TargetSize;
+
+  /// Flags describing additional information on this fixup kind.
+  unsigned Flags;
 };
 
 /// MCCodeEmitter - Generic instruction encoding interface.
@@ -56,7 +65,7 @@ public:
   virtual unsigned getNumFixupKinds() const = 0;
 
   /// getFixupKindInfo - Get information on a fixup kind.
-  virtual MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const = 0;
+  virtual const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const;
 
   /// @}