The TargetData is not used for the isPowerOfTwo determination. It has never
[oota-llvm.git] / include / llvm / MC / MCCodeGenInfo.h
index 908922a253a2fe67a323bd5e70f8e35c7c4396a2..d1765e1240a47c536126b13e4c48e26daccacc64 100644 (file)
 #ifndef LLVM_MC_MCCODEGENINFO_H
 #define LLVM_MC_MCCODEGENINFO_H
 
+#include "llvm/Support/CodeGen.h"
+
 namespace llvm {
-  // Relocation model types.
-  namespace Reloc {
-    enum Model { Default, Static, PIC_, DynamicNoPIC };
-  }
 
   class MCCodeGenInfo {
-    /// RelocationModel - Relocation model: statcic, pic, etc.
+    /// RelocationModel - Relocation model: static, pic, etc.
     ///
     Reloc::Model RelocationModel;
 
+    /// CMModel - Code model.
+    ///
+    CodeModel::Model CMModel;
+
+    /// OptLevel - Optimization level.
+    ///
+    CodeGenOpt::Level OptLevel;
+
   public:
-    void InitMCCodeGenInfo(Reloc::Model RM = Reloc::Default);
+    void InitMCCodeGenInfo(Reloc::Model RM = Reloc::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