mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f6e0e28135
commit
b26bcc5087
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
@ -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>
|
@ -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;
|
||||
|
17
include/llvm/Target/TargetMachineImpls.h
Normal file
17
include/llvm/Target/TargetMachineImpls.h
Normal 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
|
@ -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"
|
||||
|
@ -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>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
LEVEL = ../..
|
||||
DIRS = TargetMachine InstrSelection InstrSched
|
||||
DIRS = InstrSelection InstrSched
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
@ -1,5 +0,0 @@
|
||||
LEVEL = ../../..
|
||||
|
||||
LIBRARYNAME = target
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
@ -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);
|
||||
|
@ -1,5 +1,5 @@
|
||||
LEVEL = ../..
|
||||
DIRS = Sparc
|
||||
LIBRARYNAME = target
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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",
|
||||
|
@ -10,7 +10,7 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/CodeGen/TargetData.h"
|
||||
#include "llvm/Target/Data.h"
|
||||
#include "llvm/DerivedTypes.h"
|
||||
#include "llvm/ConstPoolVals.h"
|
||||
|
@ -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
|
||||
//
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user