diff options
18 files changed, 71 insertions, 102 deletions
diff --git a/llvm/include/llvm/CodeGen/MachineInstr.h b/llvm/include/llvm/CodeGen/MachineInstr.h index 43dc78dfc55..9903f09c01d 100644 --- a/llvm/include/llvm/CodeGen/MachineInstr.h +++ b/llvm/include/llvm/CodeGen/MachineInstr.h @@ -19,7 +19,7 @@  #include "llvm/CodeGen/InstrForest.h"  #include "llvm/Support/DataTypes.h"  #include "llvm/Support/NonCopyable.h" -#include "llvm/CodeGen/TargetMachine.h" +#include "llvm/Target/Machine.h"  template<class _MI, class _V> class ValOpIterator; diff --git a/llvm/include/llvm/CodeGen/RegClass.h b/llvm/include/llvm/CodeGen/RegClass.h index 1d08502445d..efe174617ce 100644 --- a/llvm/include/llvm/CodeGen/RegClass.h +++ b/llvm/include/llvm/CodeGen/RegClass.h @@ -16,19 +16,14 @@  */ - -  #ifndef REG_CLASS_H  #define REG_CLASS_H  #include "llvm/CodeGen/IGNode.h"  #include "llvm/CodeGen/InterferenceGraph.h" -#include "llvm/CodeGen/TargetMachine.h" - - +#include "llvm/Target/Machine.h"  #include <stack> -  typedef vector<unsigned int> ReservedColorListType; diff --git a/llvm/include/llvm/CodeGen/TargetData.h b/llvm/include/llvm/Target/Data.h index cf449702b7b..55739503e72 100644 --- a/llvm/include/llvm/CodeGen/TargetData.h +++ b/llvm/include/llvm/Target/Data.h @@ -1,4 +1,4 @@ -//===-- llvm/TargetData.h - Data size & alignment routines -------*- C++ -*-==// +//===-- llvm/Target/Data.h - Data size & alignment routines ------*- C++ -*-==//  //  // This file defines target properties related to datatype size/offset/alignment  // information.  It uses lazy annotations to cache information about how  @@ -10,8 +10,8 @@  //  //===----------------------------------------------------------------------===// -#ifndef LLVM_CODEGEN_TARGETDATA_H -#define LLVM_CODEGEN_TARGETDATA_H +#ifndef LLVM_TARGET_DATA_H +#define LLVM_TARGET_DATA_H  #include "llvm/Type.h"  #include <vector> diff --git a/llvm/include/llvm/CodeGen/TargetMachine.h b/llvm/include/llvm/Target/Machine.h index 9a72ff974b9..ae0858aff5c 100644 --- a/llvm/include/llvm/CodeGen/TargetMachine.h +++ b/llvm/include/llvm/Target/Machine.h @@ -1,18 +1,13 @@ -// $Id$ -*-c++-*- -//*************************************************************************** -// File: -//	TargetMachine.h -//  -// Purpose: -//	 -// History: -//	7/12/01	 -  Vikram Adve  -  Created -//**************************************************************************/ +//===-- llvm/Target/Machine.h - General Target Information -------*- C++ -*-==// +// +// This file describes the general parts of a Target machine. +// +//===----------------------------------------------------------------------===// -#ifndef LLVM_CODEGEN_TARGETMACHINE_H -#define LLVM_CODEGEN_TARGETMACHINE_H +#ifndef LLVM_TARGET_MACHINE_H +#define LLVM_TARGET_MACHINE_H -#include "llvm/CodeGen/TargetData.h" +#include "llvm/Target/Data.h"  #include "llvm/Support/NonCopyable.h"  #include "llvm/Support/DataTypes.h"  #include <string> @@ -24,8 +19,6 @@ class StructType;  struct MachineInstrDescriptor;  class TargetMachine; -//************************ Exported Data Types *****************************/ -  //---------------------------------------------------------------------------  // Data types used to define information about a single machine instruction  //--------------------------------------------------------------------------- @@ -518,7 +511,7 @@ public:    int   l1DCacheMissPenalty;		// 7 or 9 for SPARC IIi    int   l1ICacheMissPenalty;		// ? for SPARC IIi -  bool	inOrderLoads ;			// true for SPARC IIi +  bool	inOrderLoads;			// true for SPARC IIi    bool	inOrderIssue;			// true for SPARC IIi    bool	inOrderExec;			// false for most architectures    bool	inOrderRetire;			// true for most architectures @@ -714,7 +707,7 @@ public:    virtual void colorCallArgs(vector<const Instruction *> & CallInstrList,   			     LiveRangeInfo& LRI,  -			     AddedInstrMapType& AddedInstrMap ) const = 0 ; +			     AddedInstrMapType& AddedInstrMap ) const = 0;    virtual int getUnifiedRegNum(int RegClassID, int reg) const = 0; diff --git a/llvm/include/llvm/CodeGen/Sparc.h b/llvm/include/llvm/Target/Sparc.h index 83bebbddaf3..83bebbddaf3 100644 --- a/llvm/include/llvm/CodeGen/Sparc.h +++ b/llvm/include/llvm/Target/Sparc.h diff --git a/llvm/include/llvm/Target/TargetMachineImpls.h b/llvm/include/llvm/Target/TargetMachineImpls.h new file mode 100644 index 00000000000..83bebbddaf3 --- /dev/null +++ b/llvm/include/llvm/Target/TargetMachineImpls.h @@ -0,0 +1,17 @@ +//===-- llvm/CodeGen/Sparc.h - Sparc Target Description ----------*- C++ -*--=// +// +// This file defines the Sparc processor targets +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CODEGEN_SPARC_H +#define LLVM_CODEGEN_SPARC_H + +class TargetMachine; + +// allocateSparcTargetMachine - Allocate and return a subclass of TargetMachine +// that implements the Sparc backend. +// +TargetMachine *allocateSparcTargetMachine(); + +#endif diff --git a/llvm/lib/CodeGen/InstrSched/InstrScheduling.cpp b/llvm/lib/CodeGen/InstrSched/InstrScheduling.cpp index 23586870655..0987572ac3f 100644 --- a/llvm/lib/CodeGen/InstrSched/InstrScheduling.cpp +++ b/llvm/lib/CodeGen/InstrSched/InstrScheduling.cpp @@ -12,7 +12,7 @@  #include "llvm/CodeGen/InstrScheduling.h"  #include "llvm/CodeGen/SchedPriorities.h"  #include "llvm/Analysis/LiveVar/BBLiveVar.h" -#include "llvm/CodeGen/TargetMachine.h" +#include "llvm/Target/Machine.h"  #include "llvm/CodeGen/MachineInstr.h"  #include "llvm/Support/CommandLine.h"  #include "llvm/Instruction.h" diff --git a/llvm/lib/CodeGen/InstrSched/SchedGraph.cpp b/llvm/lib/CodeGen/InstrSched/SchedGraph.cpp index 05109cb8526..3c819f6bc7d 100644 --- a/llvm/lib/CodeGen/InstrSched/SchedGraph.cpp +++ b/llvm/lib/CodeGen/InstrSched/SchedGraph.cpp @@ -18,7 +18,7 @@  #include "llvm/Method.h"  #include "llvm/CodeGen/SchedGraph.h"  #include "llvm/CodeGen/MachineInstr.h" -#include "llvm/CodeGen/TargetMachine.h" +#include "llvm/Target/Machine.h"  #include "llvm/Support/StringExtras.h"  #include <algorithm> diff --git a/llvm/lib/CodeGen/Makefile b/llvm/lib/CodeGen/Makefile index 1c0e390088a..b0fba9d6567 100644 --- a/llvm/lib/CodeGen/Makefile +++ b/llvm/lib/CodeGen/Makefile @@ -1,4 +1,4 @@  LEVEL = ../.. -DIRS  = TargetMachine InstrSelection InstrSched +DIRS  = InstrSelection InstrSched  include $(LEVEL)/Makefile.common diff --git a/llvm/lib/CodeGen/RegAlloc/RegClass.h b/llvm/lib/CodeGen/RegAlloc/RegClass.h index 1d08502445d..efe174617ce 100644 --- a/llvm/lib/CodeGen/RegAlloc/RegClass.h +++ b/llvm/lib/CodeGen/RegAlloc/RegClass.h @@ -16,19 +16,14 @@  */ - -  #ifndef REG_CLASS_H  #define REG_CLASS_H  #include "llvm/CodeGen/IGNode.h"  #include "llvm/CodeGen/InterferenceGraph.h" -#include "llvm/CodeGen/TargetMachine.h" - - +#include "llvm/Target/Machine.h"  #include <stack> -  typedef vector<unsigned int> ReservedColorListType; diff --git a/llvm/lib/CodeGen/TargetMachine/Makefile b/llvm/lib/CodeGen/TargetMachine/Makefile deleted file mode 100644 index eefef8907a9..00000000000 --- a/llvm/lib/CodeGen/TargetMachine/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -LEVEL = ../../.. - -LIBRARYNAME = target - -include $(LEVEL)/Makefile.common diff --git a/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp b/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp index 0b017ad574a..ff914106643 100644 --- a/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp +++ b/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp @@ -13,7 +13,7 @@  #include "llvm/ConstPoolVals.h"  #include "llvm/Assembly/Writer.h"  #include "llvm/Support/DataTypes.h" -#include "llvm/CodeGen/TargetData.h" +#include "llvm/Target/Data.h"  static unsigned getOperandSlot(Value *V) {    SlotNumber *SN = (SlotNumber*)V->getAnnotation(SlotNumberAID); diff --git a/llvm/lib/Target/Makefile b/llvm/lib/Target/Makefile index ebcd23a242f..7fd02c66722 100644 --- a/llvm/lib/Target/Makefile +++ b/llvm/lib/Target/Makefile @@ -1,5 +1,5 @@  LEVEL = ../..  DIRS = Sparc +LIBRARYNAME = target  include $(LEVEL)/Makefile.common - diff --git a/llvm/lib/Target/Sparc/SparcInternals.h b/llvm/lib/Target/Sparc/SparcInternals.h index 606966db731..f9a344b37af 100644 --- a/llvm/lib/Target/Sparc/SparcInternals.h +++ b/llvm/lib/Target/Sparc/SparcInternals.h @@ -8,7 +8,7 @@  #ifndef SPARC_INTERNALS_H  #define SPARC_INTERNALS_H -#include "llvm/CodeGen/TargetMachine.h" +#include "llvm/Target/Machine.h"  #include "SparcRegInfo.h"  #include <sys/types.h> diff --git a/llvm/lib/Target/Sparc/SparcV9RegInfo.h b/llvm/lib/Target/Sparc/SparcV9RegInfo.h index 41a6d00a081..3ebef550f08 100644 --- a/llvm/lib/Target/Sparc/SparcV9RegInfo.h +++ b/llvm/lib/Target/Sparc/SparcV9RegInfo.h @@ -4,19 +4,17 @@     Purpose: Contains the description of integer register class of Sparc  */ -  #ifndef SPARC_INT_REG_CLASS_H  #define SPARC_INT_REG_CLASS_H -#include "llvm/CodeGen/TargetMachine.h" +#include "llvm/Target/Machine.h"  //-----------------------------------------------------------------------------  // Integer Register Class  //----------------------------------------------------------------------------- -  // Int register names in same order as enum in class SparcIntRegOrder - +//  static string const IntRegNames[] =     {       "g1", "g2", "g3", "g4", "g5", "g6", "g7",      "o0", "o1", "o2", "o3", "o4", "o5",       "o7", diff --git a/llvm/lib/CodeGen/TargetMachine/TargetData.cpp b/llvm/lib/Target/TargetData.cpp index fd9dd26d282..2e2ffd84cd1 100644 --- a/llvm/lib/CodeGen/TargetMachine/TargetData.cpp +++ b/llvm/lib/Target/TargetData.cpp @@ -10,7 +10,7 @@  //  //===----------------------------------------------------------------------===// -#include "llvm/CodeGen/TargetData.h" +#include "llvm/Target/Data.h"  #include "llvm/DerivedTypes.h"  #include "llvm/ConstPoolVals.h" diff --git a/llvm/lib/CodeGen/TargetMachine/TargetMachine.cpp b/llvm/lib/Target/TargetMachine.cpp index 0a9a739071b..a9e376e10a9 100644 --- a/llvm/lib/CodeGen/TargetMachine/TargetMachine.cpp +++ b/llvm/lib/Target/TargetMachine.cpp @@ -1,23 +1,12 @@ -// $Id$ -//*************************************************************************** -// File: -//	TargetMachine.cpp -//  -// Purpose: -//	 -// History: -//	7/12/01	 -  Vikram Adve  -  Created -//**************************************************************************/ - +//===-- TargetMachine.cpp - General Target Information ---------------------==// +// +// This file describes the general parts of a Target machine. +// +//===----------------------------------------------------------------------===// -//*************************** User Include Files ***************************/ - -#include "llvm/CodeGen/TargetMachine.h" +#include "llvm/Target/Machine.h"  #include "llvm/DerivedTypes.h" -//************************ Exported Constants ******************************/ - -  // External object describing the machine instructions  // Initialized only when the TargetMachine class is created  // and reset when that class is destroyed. @@ -26,17 +15,12 @@ const MachineInstrDescriptor* TargetInstrDescriptors = NULL;  resourceId_t MachineResource::nextId = 0; -//************************* Forward Declarations **************************/ -  static cycles_t	ComputeMinGap		(const InstrRUsage& fromRU,  					 const InstrRUsage& toRU);  static bool	RUConflict		(const vector<resourceId_t>& fromRVec,  					 const vector<resourceId_t>& fromRVec); - -//************************ Class Implementations **************************/ -  //---------------------------------------------------------------------------  // class TargetMachine  //  diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp index fb5c1fc9456..789087f9a5f 100644 --- a/llvm/tools/llc/llc.cpp +++ b/llvm/tools/llc/llc.cpp @@ -1,14 +1,13 @@ -//===------------------------------------------------------------------------=== -// LLVM 'LLC' UTILITY  +//===-- llc.cpp - Implement the LLVM Compiler -----------------------------===//  //  // This is the llc compiler driver.  // -//===------------------------------------------------------------------------=== +//===----------------------------------------------------------------------===//  #include "llvm/Bytecode/Reader.h"  #include "llvm/Optimizations/Normalize.h" -#include "llvm/CodeGen/Sparc.h" -#include "llvm/CodeGen/TargetMachine.h" +#include "llvm/Target/Sparc.h" +#include "llvm/Target/Machine.h"  #include "llvm/Support/CommandLine.h"  #include "llvm/Module.h"  #include "llvm/Method.h" @@ -20,46 +19,39 @@ static void NormalizeMethod(Method* method) {    NormalizePhiConstantArgs(method);  } - -static bool CompileModule(Module *M, TargetMachine &Target) { -  for (Module::const_iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI) { -    Method *Meth = *MI; -       -    NormalizeMethod(Meth); -       -    if (Target.compileMethod(Meth)) return true; -  } -   -  return false; -} - - - -//--------------------------------------------------------------------------- +//===----------------------------------------------------------------------===//  // Function main() +//===----------------------------------------------------------------------===//  //   // Entry point for the llc compiler. -//--------------------------------------------------------------------------- - +//  int main(int argc, char** argv) {    cl::ParseCommandLineOptions(argc, argv, " llvm system compiler\n");    TargetMachine *Target = allocateSparcTargetMachine(); -  Module *module = ParseBytecodeFile(InputFilename); -  if (module == 0) { +  Module *M = ParseBytecodeFile(InputFilename); +  if (M == 0) {      cerr << "bytecode didn't read correctly.\n"; +    delete Target;      return 1;    } -  if (CompileModule(module, *Target)) { -    cerr << "Error compiling " << InputFilename << "!\n"; -    delete module; -    return 1; +  bool Failed = false; +  for (Module::const_iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI) { +    Method *Meth = *MI; +     +    NormalizeMethod(Meth); +     +    if (Target->compileMethod(Meth)) { +      cerr << "Error compiling " << InputFilename << "!\n"; +      Failed = true; +      break; +    }    }    // Clean up and exit -  delete module; +  delete M;    delete Target; -  return 0; +  return Failed;  }  | 

