mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
fastisel doesn't need DwarfWriter, remove some tendricles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100381 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cb86609421
commit
d850ac79b5
@ -28,7 +28,6 @@ class MachineConstantPool;
|
||||
class MachineFunction;
|
||||
class MachineFrameInfo;
|
||||
class MachineModuleInfo;
|
||||
class DwarfWriter;
|
||||
class MachineRegisterInfo;
|
||||
class TargetData;
|
||||
class TargetInstrInfo;
|
||||
@ -51,7 +50,6 @@ protected:
|
||||
#endif
|
||||
MachineFunction &MF;
|
||||
MachineModuleInfo *MMI;
|
||||
DwarfWriter *DW;
|
||||
MachineRegisterInfo &MRI;
|
||||
MachineFrameInfo &MFI;
|
||||
MachineConstantPool &MCP;
|
||||
@ -117,7 +115,6 @@ public:
|
||||
protected:
|
||||
FastISel(MachineFunction &mf,
|
||||
MachineModuleInfo *mmi,
|
||||
DwarfWriter *dw,
|
||||
DenseMap<const Value *, unsigned> &vm,
|
||||
DenseMap<const BasicBlock *, MachineBasicBlock *> &bm,
|
||||
DenseMap<const AllocaInst *, int> &am
|
||||
|
@ -30,7 +30,6 @@ namespace llvm {
|
||||
class MachineFunction;
|
||||
class MachineInstr;
|
||||
class MachineModuleInfo;
|
||||
class DwarfWriter;
|
||||
class TargetLowering;
|
||||
class TargetInstrInfo;
|
||||
class FunctionLoweringInfo;
|
||||
@ -285,7 +284,6 @@ private:
|
||||
|
||||
void SelectAllBasicBlocks(Function &Fn, MachineFunction &MF,
|
||||
MachineModuleInfo *MMI,
|
||||
DwarfWriter *DW,
|
||||
const TargetInstrInfo &TII);
|
||||
void FinishBasicBlock();
|
||||
|
||||
|
@ -50,7 +50,6 @@ namespace llvm {
|
||||
class MachineModuleInfo;
|
||||
class MCContext;
|
||||
class MCExpr;
|
||||
class DwarfWriter;
|
||||
class SDNode;
|
||||
class SDValue;
|
||||
class SelectionDAG;
|
||||
@ -1273,8 +1272,7 @@ public:
|
||||
/// createFastISel - This method returns a target specific FastISel object,
|
||||
/// or null if the target does not support "fast" ISel.
|
||||
virtual FastISel *
|
||||
createFastISel(MachineFunction &,
|
||||
MachineModuleInfo *, DwarfWriter *,
|
||||
createFastISel(MachineFunction &, MachineModuleInfo *,
|
||||
DenseMap<const Value *, unsigned> &,
|
||||
DenseMap<const BasicBlock *, MachineBasicBlock *> &,
|
||||
DenseMap<const AllocaInst *, int> &
|
||||
|
@ -1793,24 +1793,39 @@ void DwarfDebug::constructSubprogramDIE(MDNode *N) {
|
||||
void DwarfDebug::beginModule(Module *M) {
|
||||
if (!Asm->MAI->doesSupportDebugInformation())
|
||||
return;
|
||||
|
||||
MMI = Asm->MMI;
|
||||
|
||||
TimeRegion Timer(DebugTimer);
|
||||
|
||||
|
||||
DebugInfoFinder DbgFinder;
|
||||
DbgFinder.processModule(*M);
|
||||
|
||||
bool HasDebugInfo = false;
|
||||
|
||||
// Scan all the compile-units to see if there are any marked as the main unit.
|
||||
// if not, we do not generate debug info.
|
||||
for (DebugInfoFinder::iterator I = DbgFinder.compile_unit_begin(),
|
||||
E = DbgFinder.compile_unit_end(); I != E; ++I) {
|
||||
if (DICompileUnit(*I).isMain()) {
|
||||
HasDebugInfo = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!HasDebugInfo) return;
|
||||
|
||||
// Tell MMI that we have debug info.
|
||||
MMI->setDebugInfoAvailability(true);
|
||||
|
||||
// Emit initial sections.
|
||||
if (DbgFinder.compile_unit_begin() != DbgFinder.compile_unit_end())
|
||||
EmitSectionLabels();
|
||||
EmitSectionLabels();
|
||||
|
||||
// Create all the compile unit DIEs.
|
||||
for (DebugInfoFinder::iterator I = DbgFinder.compile_unit_begin(),
|
||||
E = DbgFinder.compile_unit_end(); I != E; ++I)
|
||||
constructCompileUnit(*I);
|
||||
|
||||
if (!ModuleCU)
|
||||
return;
|
||||
|
||||
// Create DIEs for each subprogram.
|
||||
for (DebugInfoFinder::iterator I = DbgFinder.subprogram_begin(),
|
||||
E = DbgFinder.subprogram_end(); I != E; ++I)
|
||||
@ -1821,10 +1836,6 @@ void DwarfDebug::beginModule(Module *M) {
|
||||
E = DbgFinder.global_variable_end(); I != E; ++I)
|
||||
constructGlobalVariableDIE(*I);
|
||||
|
||||
MMI = Asm->MMI;
|
||||
shouldEmit = true;
|
||||
MMI->setDebugInfoAvailability(true);
|
||||
|
||||
// Prime section data.
|
||||
SectionMap.insert(Asm->getObjFileLowering().getTextSection());
|
||||
|
||||
|
@ -60,8 +60,10 @@ public:
|
||||
class DwarfDebug {
|
||||
/// Asm - Target of Dwarf emission.
|
||||
AsmPrinter *Asm;
|
||||
public:
|
||||
/// MMI - Collected machine module information.
|
||||
MachineModuleInfo *MMI;
|
||||
private:
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Attributes used to construct specific Dwarf sections.
|
||||
|
@ -72,7 +72,7 @@ void DwarfWriter::EndFunction(const MachineFunction *MF) {
|
||||
/// ShouldEmitDwarfDebug - Returns true if Dwarf debugging declarations should
|
||||
/// be emitted.
|
||||
bool DwarfWriter::ShouldEmitDwarfDebug() const {
|
||||
return DD && DD->ShouldEmitDwarfDebug();
|
||||
return DD && DD->MMI->hasDebugInfo();
|
||||
}
|
||||
|
||||
void DwarfWriter::BeginScope(const MachineInstr *MI) {
|
||||
|
@ -47,7 +47,6 @@
|
||||
#include "llvm/CodeGen/MachineInstrBuilder.h"
|
||||
#include "llvm/CodeGen/MachineModuleInfo.h"
|
||||
#include "llvm/CodeGen/MachineRegisterInfo.h"
|
||||
#include "llvm/CodeGen/DwarfWriter.h"
|
||||
#include "llvm/Analysis/DebugInfo.h"
|
||||
#include "llvm/Target/TargetData.h"
|
||||
#include "llvm/Target/TargetInstrInfo.h"
|
||||
@ -326,8 +325,8 @@ bool FastISel::SelectCall(User *I) {
|
||||
default: break;
|
||||
case Intrinsic::dbg_declare: {
|
||||
DbgDeclareInst *DI = cast<DbgDeclareInst>(I);
|
||||
if (!DIDescriptor::ValidDebugInfo(DI->getVariable(), CodeGenOpt::None)||!DW
|
||||
|| !DW->ShouldEmitDwarfDebug())
|
||||
if (!DIDescriptor::ValidDebugInfo(DI->getVariable(), CodeGenOpt::None) ||
|
||||
!MMI->hasDebugInfo())
|
||||
return true;
|
||||
|
||||
Value *Address = DI->getAddress();
|
||||
@ -735,7 +734,6 @@ FastISel::SelectOperator(User *I, unsigned Opcode) {
|
||||
|
||||
FastISel::FastISel(MachineFunction &mf,
|
||||
MachineModuleInfo *mmi,
|
||||
DwarfWriter *dw,
|
||||
DenseMap<const Value *, unsigned> &vm,
|
||||
DenseMap<const BasicBlock *, MachineBasicBlock *> &bm,
|
||||
DenseMap<const AllocaInst *, int> &am
|
||||
@ -752,7 +750,6 @@ FastISel::FastISel(MachineFunction &mf,
|
||||
#endif
|
||||
MF(mf),
|
||||
MMI(mmi),
|
||||
DW(dw),
|
||||
MRI(MF.getRegInfo()),
|
||||
MFI(*MF.getFrameInfo()),
|
||||
MCP(*MF.getConstantPool()),
|
||||
|
@ -342,7 +342,7 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
|
||||
// Mark landing pad.
|
||||
FuncInfo->MBBMap[Invoke->getSuccessor(1)]->setIsLandingPad();
|
||||
|
||||
SelectAllBasicBlocks(Fn, *MF, MMI, DW, TII);
|
||||
SelectAllBasicBlocks(Fn, *MF, MMI, TII);
|
||||
|
||||
// If the first basic block in the function has live ins that need to be
|
||||
// copied into vregs, emit the copies into the top of the block before
|
||||
@ -845,12 +845,11 @@ void SelectionDAGISel::DoInstructionSelection() {
|
||||
void SelectionDAGISel::SelectAllBasicBlocks(Function &Fn,
|
||||
MachineFunction &MF,
|
||||
MachineModuleInfo *MMI,
|
||||
DwarfWriter *DW,
|
||||
const TargetInstrInfo &TII) {
|
||||
// Initialize the Fast-ISel state, if needed.
|
||||
FastISel *FastIS = 0;
|
||||
if (EnableFastISel)
|
||||
FastIS = TLI.createFastISel(MF, MMI, DW,
|
||||
FastIS = TLI.createFastISel(MF, MMI,
|
||||
FuncInfo->ValueMap,
|
||||
FuncInfo->MBBMap,
|
||||
FuncInfo->StaticAllocaMap
|
||||
|
@ -55,7 +55,6 @@ class X86FastISel : public FastISel {
|
||||
public:
|
||||
explicit X86FastISel(MachineFunction &mf,
|
||||
MachineModuleInfo *mmi,
|
||||
DwarfWriter *dw,
|
||||
DenseMap<const Value *, unsigned> &vm,
|
||||
DenseMap<const BasicBlock *, MachineBasicBlock *> &bm,
|
||||
DenseMap<const AllocaInst *, int> &am
|
||||
@ -63,7 +62,7 @@ public:
|
||||
, SmallSet<Instruction*, 8> &cil
|
||||
#endif
|
||||
)
|
||||
: FastISel(mf, mmi, dw, vm, bm, am
|
||||
: FastISel(mf, mmi, vm, bm, am
|
||||
#ifndef NDEBUG
|
||||
, cil
|
||||
#endif
|
||||
@ -1754,7 +1753,6 @@ unsigned X86FastISel::TargetMaterializeAlloca(AllocaInst *C) {
|
||||
namespace llvm {
|
||||
llvm::FastISel *X86::createFastISel(MachineFunction &mf,
|
||||
MachineModuleInfo *mmi,
|
||||
DwarfWriter *dw,
|
||||
DenseMap<const Value *, unsigned> &vm,
|
||||
DenseMap<const BasicBlock *, MachineBasicBlock *> &bm,
|
||||
DenseMap<const AllocaInst *, int> &am
|
||||
@ -1762,7 +1760,7 @@ namespace llvm {
|
||||
, SmallSet<Instruction*, 8> &cil
|
||||
#endif
|
||||
) {
|
||||
return new X86FastISel(mf, mmi, dw, vm, bm, am
|
||||
return new X86FastISel(mf, mmi, vm, bm, am
|
||||
#ifndef NDEBUG
|
||||
, cil
|
||||
#endif
|
||||
|
@ -2399,7 +2399,6 @@ X86TargetLowering::IsEligibleForTailCallOptimization(SDValue Callee,
|
||||
|
||||
FastISel *
|
||||
X86TargetLowering::createFastISel(MachineFunction &mf, MachineModuleInfo *mmo,
|
||||
DwarfWriter *dw,
|
||||
DenseMap<const Value *, unsigned> &vm,
|
||||
DenseMap<const BasicBlock*, MachineBasicBlock*> &bm,
|
||||
DenseMap<const AllocaInst *, int> &am
|
||||
@ -2407,7 +2406,7 @@ X86TargetLowering::createFastISel(MachineFunction &mf, MachineModuleInfo *mmo,
|
||||
, SmallSet<Instruction*, 8> &cil
|
||||
#endif
|
||||
) {
|
||||
return X86::createFastISel(mf, mmo, dw, vm, bm, am
|
||||
return X86::createFastISel(mf, mmo, vm, bm, am
|
||||
#ifndef NDEBUG
|
||||
, cil
|
||||
#endif
|
||||
|
@ -574,8 +574,7 @@ namespace llvm {
|
||||
/// createFastISel - This method returns a target specific FastISel object,
|
||||
/// or null if the target does not support "fast" ISel.
|
||||
virtual FastISel *
|
||||
createFastISel(MachineFunction &mf,
|
||||
MachineModuleInfo *mmi, DwarfWriter *dw,
|
||||
createFastISel(MachineFunction &mf, MachineModuleInfo *mmi,
|
||||
DenseMap<const Value *, unsigned> &,
|
||||
DenseMap<const BasicBlock *, MachineBasicBlock *> &,
|
||||
DenseMap<const AllocaInst *, int> &
|
||||
@ -816,7 +815,7 @@ namespace llvm {
|
||||
|
||||
namespace X86 {
|
||||
FastISel *createFastISel(MachineFunction &mf,
|
||||
MachineModuleInfo *mmi, DwarfWriter *dw,
|
||||
MachineModuleInfo *mmi,
|
||||
DenseMap<const Value *, unsigned> &,
|
||||
DenseMap<const BasicBlock *, MachineBasicBlock *> &,
|
||||
DenseMap<const AllocaInst *, int> &
|
||||
|
Loading…
x
Reference in New Issue
Block a user