Make NumMicroOps a variable in the subtarget's instruction itinerary.
[oota-llvm.git] / include / llvm / MC / MCCodeGenInfo.h
index 9e72ece6e334eca8ac80bb76384f63792863f3bf..d1765e1240a47c536126b13e4c48e26daccacc64 100644 (file)
 #ifndef LLVM_MC_MCCODEGENINFO_H
 #define LLVM_MC_MCCODEGENINFO_H
 
-namespace llvm {
-
-  // Relocation model types.
-  namespace Reloc {
-    enum Model { Default, Static, PIC_, DynamicNoPIC };
-  }
+#include "llvm/Support/CodeGen.h"
 
-  // Code model types.
-  namespace CodeModel {
-    enum Model { Default, JITDefault, Small, Kernel, Medium, Large };
-  }
+namespace llvm {
 
   class MCCodeGenInfo {
-    /// RelocationModel - Relocation model: statcic, pic, etc.
+    /// RelocationModel - Relocation model: static, pic, etc.
     ///
     Reloc::Model RelocationModel;
 
@@ -36,13 +28,20 @@ namespace llvm {
     ///
     CodeModel::Model CMModel;
 
+    /// OptLevel - Optimization level.
+    ///
+    CodeGenOpt::Level OptLevel;
+
   public:
     void InitMCCodeGenInfo(Reloc::Model RM = Reloc::Default,
-                           CodeModel::Model CM = CodeModel::Default);
+                           CodeModel::Model CM = CodeModel::Default,
+                           CodeGenOpt::Level OL = CodeGenOpt::Default);
 
     Reloc::Model getRelocationModel() const { return RelocationModel; }
 
     CodeModel::Model getCodeModel() const { return CMModel; }
+
+    CodeGenOpt::Level getOptLevel() const { return OptLevel; }
   };
 } // namespace llvm