Make a new llvm/Target #include directory.

Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files

llvm-svn: 566
This commit is contained in:
Chris Lattner 2001-09-14 05:34:53 +00:00
parent f8464e4b8d
commit 22a6a90511
18 changed files with 71 additions and 102 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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>

View File

@ -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;

View File

@ -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

View File

@ -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"

View File

@ -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>

View File

@ -1,4 +1,4 @@
LEVEL = ../..
DIRS = TargetMachine InstrSelection InstrSched
DIRS = InstrSelection InstrSched
include $(LEVEL)/Makefile.common

View File

@ -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;

View File

@ -1,5 +0,0 @@
LEVEL = ../../..
LIBRARYNAME = target
include $(LEVEL)/Makefile.common

View File

@ -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);

View File

@ -1,5 +1,5 @@
LEVEL = ../..
DIRS = Sparc
LIBRARYNAME = target
include $(LEVEL)/Makefile.common

View File

@ -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>

View File

@ -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",

View File

@ -10,7 +10,7 @@
//
//===----------------------------------------------------------------------===//
#include "llvm/CodeGen/TargetData.h"
#include "llvm/Target/Data.h"
#include "llvm/DerivedTypes.h"
#include "llvm/ConstPoolVals.h"

View File

@ -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
//

View File

@ -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;
}