OSDN Git Service

Add a new option to indicate we want the code generator to emit code quickly,not...
authorChris Lattner <sabre@nondot.org>
Tue, 8 Nov 2005 02:11:51 +0000 (02:11 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 8 Nov 2005 02:11:51 +0000 (02:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24233 91177308-0d34-0410-b5e6-96231b3b80d8

17 files changed:
lib/Target/Alpha/AlphaTargetMachine.cpp
lib/Target/Alpha/AlphaTargetMachine.h
lib/Target/CBackend/CBackend.cpp
lib/Target/CBackend/CTargetMachine.h
lib/Target/CBackend/Writer.cpp
lib/Target/IA64/IA64TargetMachine.cpp
lib/Target/IA64/IA64TargetMachine.h
lib/Target/Skeleton/SkeletonTargetMachine.cpp
lib/Target/Skeleton/SkeletonTargetMachine.h
lib/Target/Sparc/SparcTargetMachine.cpp
lib/Target/Sparc/SparcTargetMachine.h
lib/Target/SparcV8/SparcV8TargetMachine.cpp
lib/Target/SparcV8/SparcV8TargetMachine.h
lib/Target/SparcV9/SparcV9TargetMachine.cpp
lib/Target/SparcV9/SparcV9TargetMachine.h
lib/Target/X86/X86TargetMachine.cpp
lib/Target/X86/X86TargetMachine.h

index da113e9..f5bd484 100644 (file)
@@ -77,7 +77,8 @@ AlphaTargetMachine::AlphaTargetMachine(const Module &M, IntrinsicLowering *IL,
 ///
 bool AlphaTargetMachine::addPassesToEmitFile(PassManager &PM,
                                              std::ostream &Out,
-                                             CodeGenFileType FileType) {
+                                             CodeGenFileType FileType,
+                                             bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
 
   if (EnableAlphaLSR) {
index cc30bba..20ae44c 100644 (file)
@@ -48,17 +48,11 @@ public:
 
   static unsigned getJITMatchQuality();
 
-  /// addPassesToEmitMachineCode - Add passes to the specified pass manager to
-  /// get machine code emitted.  This uses a MachineCodeEmitter object to handle
-  /// actually outputting the machine code and resolving things like the address
-  /// of functions.  This method should returns true if machine code emission is
-  /// not supported.
-  ///
   virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM,
                                           MachineCodeEmitter &MCE);
 
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
 
   static unsigned getModuleMatchQuality(const Module &M);
 };
index 7d0c21a..0bcb923 100644 (file)
@@ -1725,7 +1725,7 @@ void CWriter::visitVAArgInst(VAArgInst &I) {
 //===----------------------------------------------------------------------===//
 
 bool CTargetMachine::addPassesToEmitFile(PassManager &PM, std::ostream &o,
-                                         CodeGenFileType FileType) {
+                                         CodeGenFileType FileType, bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
 
   PM.add(createLowerGCPass());
index 580e02e..f5894aa 100644 (file)
@@ -26,7 +26,7 @@ struct CTargetMachine : public TargetMachine {
 
   // This is the only thing that actually does anything here.
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
 
   // This class always works, but shouldn't be the default in most cases.
   static unsigned getModuleMatchQuality(const Module &M) { return 1; }
index 7d0c21a..0bcb923 100644 (file)
@@ -1725,7 +1725,7 @@ void CWriter::visitVAArgInst(VAArgInst &I) {
 //===----------------------------------------------------------------------===//
 
 bool CTargetMachine::addPassesToEmitFile(PassManager &PM, std::ostream &o,
-                                         CodeGenFileType FileType) {
+                                         CodeGenFileType FileType, bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
 
   PM.add(createLowerGCPass());
index f62253d..f0c429a 100644 (file)
@@ -85,7 +85,8 @@ IA64TargetMachine::IA64TargetMachine(const Module &M, IntrinsicLowering *IL,
 // does to emit statically compiled machine code.
 bool IA64TargetMachine::addPassesToEmitFile(PassManager &PM,
                                             std::ostream &Out,
-                                                CodeGenFileType FileType) {
+                                            CodeGenFileType FileType,
+                                            bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
 
   // FIXME: Implement efficient support for garbage collection intrinsics.
index df6e4df..127bdf1 100644 (file)
@@ -37,7 +37,7 @@ public:
   }
 
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
 
   static unsigned getModuleMatchQuality(const Module &M);
   static unsigned compileTimeMatchQuality(void);
index df27b77..f4b6729 100644 (file)
@@ -40,7 +40,8 @@ SkeletonTargetMachine::SkeletonTargetMachine(const Module &M,
 ///
 bool SkeletonTargetMachine::addPassesToEmitFile(PassManager &PM,
                                                 std::ostream &Out,
-                                                CodeGenFileType FileType) {
+                                                CodeGenFileType FileType,
+                                                bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
   // <insert instruction selector passes here>
   PM.add(createRegisterAllocator());
index 0607b6f..567dc95 100644 (file)
@@ -44,7 +44,7 @@ namespace llvm {
                                             MachineCodeEmitter &MCE);
 
     virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                     CodeGenFileType FileType);
+                                     CodeGenFileType FileType, bool Fast);
   };
 
 } // end namespace llvm
index d2587be..d2c7265 100644 (file)
@@ -65,7 +65,8 @@ unsigned SparcV8TargetMachine::getModuleMatchQuality(const Module &M) {
 ///
 bool SparcV8TargetMachine::addPassesToEmitFile(PassManager &PM,
                                                std::ostream &Out,
-                                               CodeGenFileType FileType) {
+                                               CodeGenFileType FileType,
+                                               bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
 
   // FIXME: Implement efficient support for garbage collection intrinsics.
index 3ec07a3..d0dfa4e 100644 (file)
@@ -45,17 +45,11 @@ public:
   static unsigned getModuleMatchQuality(const Module &M);
   static unsigned getJITMatchQuality();
 
-  /// addPassesToEmitMachineCode - Add passes to the specified pass manager to
-  /// get machine code emitted.  This uses a MachineCodeEmitter object to handle
-  /// actually outputting the machine code and resolving things like the address
-  /// of functions.  This method should returns true if machine code emission is
-  /// not supported.
-  ///
   virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM,
                                           MachineCodeEmitter &MCE);
 
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
 };
 
 } // end namespace llvm
index d2587be..d2c7265 100644 (file)
@@ -65,7 +65,8 @@ unsigned SparcV8TargetMachine::getModuleMatchQuality(const Module &M) {
 ///
 bool SparcV8TargetMachine::addPassesToEmitFile(PassManager &PM,
                                                std::ostream &Out,
-                                               CodeGenFileType FileType) {
+                                               CodeGenFileType FileType,
+                                               bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
 
   // FIXME: Implement efficient support for garbage collection intrinsics.
index 3ec07a3..d0dfa4e 100644 (file)
@@ -45,17 +45,11 @@ public:
   static unsigned getModuleMatchQuality(const Module &M);
   static unsigned getJITMatchQuality();
 
-  /// addPassesToEmitMachineCode - Add passes to the specified pass manager to
-  /// get machine code emitted.  This uses a MachineCodeEmitter object to handle
-  /// actually outputting the machine code and resolving things like the address
-  /// of functions.  This method should returns true if machine code emission is
-  /// not supported.
-  ///
   virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM,
                                           MachineCodeEmitter &MCE);
 
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
 };
 
 } // end namespace llvm
index 5cf46e0..0748018 100644 (file)
@@ -162,7 +162,8 @@ SparcV9TargetMachine::SparcV9TargetMachine(const Module &M,
 ///
 bool
 SparcV9TargetMachine::addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                                CodeGenFileType FileType) {
+                                          CodeGenFileType FileType,
+                                          bool Fast) {
   if (FileType != TargetMachine::AssemblyFile) return true;
 
   // FIXME: Implement efficient support for garbage collection intrinsics.
index 9f40339..1f83282 100644 (file)
@@ -45,7 +45,7 @@ public:
   }
 
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
   virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM,
                                           MachineCodeEmitter &MCE);
 
index 29ff15f..3d33cc2 100644 (file)
@@ -106,7 +106,8 @@ X86TargetMachine::X86TargetMachine(const Module &M,
 // addPassesToEmitFile - We currently use all of the same passes as the JIT
 // does to emit statically compiled machine code.
 bool X86TargetMachine::addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                           CodeGenFileType FileType) {
+                                           CodeGenFileType FileType,
+                                           bool Fast) {
   if (FileType != TargetMachine::AssemblyFile &&
       FileType != TargetMachine::ObjectFile) return true;
 
index 333d655..10f012a 100644 (file)
@@ -41,17 +41,11 @@ public:
     return &InstrInfo.getRegisterInfo();
   }
 
-  /// addPassesToEmitMachineCode - Add passes to the specified pass manager to
-  /// get machine code emitted.  This uses a MachineCodeEmitter object to handle
-  /// actually outputting the machine code and resolving things like the address
-  /// of functions.  This method should returns true if machine code emission is
-  /// not supported.
-  ///
   virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM,
                                           MachineCodeEmitter &MCE);
 
   virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
-                                   CodeGenFileType FileType);
+                                   CodeGenFileType FileType, bool Fast);
 
   static unsigned getModuleMatchQuality(const Module &M);
   static unsigned getJITMatchQuality();