mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-16 00:33:10 +00:00
Enable machine code verification in the entire code generator.
Some targets still mess up the liveness information, but that isn't verified after MRI->invalidateLiveness(). The verifier can still check other useful things like register classes and CFG, so it should be enabled after all passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153615 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
78811669d5
commit
8b4c502098
@ -223,11 +223,6 @@ protected:
|
|||||||
/// regalloc pass.
|
/// regalloc pass.
|
||||||
FunctionPass *createRegAllocPass(bool Optimized);
|
FunctionPass *createRegAllocPass(bool Optimized);
|
||||||
|
|
||||||
/// printNoVerify - Add a pass to dump the machine function, if debugging is
|
|
||||||
/// enabled.
|
|
||||||
///
|
|
||||||
void printNoVerify(const char *Banner) const;
|
|
||||||
|
|
||||||
/// printAndVerify - Add a pass to dump then verify the machine function, if
|
/// printAndVerify - Add a pass to dump then verify the machine function, if
|
||||||
/// those steps are enabled.
|
/// those steps are enabled.
|
||||||
///
|
///
|
||||||
|
@ -272,11 +272,6 @@ AnalysisID TargetPassConfig::addPass(char &ID) {
|
|||||||
return FinalID;
|
return FinalID;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TargetPassConfig::printNoVerify(const char *Banner) const {
|
|
||||||
if (TM->shouldPrintMachineCode())
|
|
||||||
PM.add(createMachineFunctionPrinterPass(dbgs(), Banner));
|
|
||||||
}
|
|
||||||
|
|
||||||
void TargetPassConfig::printAndVerify(const char *Banner) const {
|
void TargetPassConfig::printAndVerify(const char *Banner) const {
|
||||||
if (TM->shouldPrintMachineCode())
|
if (TM->shouldPrintMachineCode())
|
||||||
PM.add(createMachineFunctionPrinterPass(dbgs(), Banner));
|
PM.add(createMachineFunctionPrinterPass(dbgs(), Banner));
|
||||||
@ -403,7 +398,7 @@ void TargetPassConfig::addMachinePasses() {
|
|||||||
// Second pass scheduler.
|
// Second pass scheduler.
|
||||||
if (getOptLevel() != CodeGenOpt::None) {
|
if (getOptLevel() != CodeGenOpt::None) {
|
||||||
addPass(PostRASchedulerID);
|
addPass(PostRASchedulerID);
|
||||||
printNoVerify("After PostRAScheduler");
|
printAndVerify("After PostRAScheduler");
|
||||||
}
|
}
|
||||||
|
|
||||||
// GC
|
// GC
|
||||||
@ -416,7 +411,7 @@ void TargetPassConfig::addMachinePasses() {
|
|||||||
addBlockPlacement();
|
addBlockPlacement();
|
||||||
|
|
||||||
if (addPreEmitPass())
|
if (addPreEmitPass())
|
||||||
printNoVerify("After PreEmit passes");
|
printAndVerify("After PreEmit passes");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add passes that optimize machine instructions in SSA form.
|
/// Add passes that optimize machine instructions in SSA form.
|
||||||
@ -628,6 +623,6 @@ void TargetPassConfig::addBlockPlacement() {
|
|||||||
if (EnableBlockPlacementStats)
|
if (EnableBlockPlacementStats)
|
||||||
addPass(MachineBlockPlacementStatsID);
|
addPass(MachineBlockPlacementStatsID);
|
||||||
|
|
||||||
printNoVerify("After machine block placement.");
|
printAndVerify("After machine block placement.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -152,10 +152,10 @@ bool PTXPassConfig::addPostRegAlloc() {
|
|||||||
/// Add passes that optimize machine instructions after register allocation.
|
/// Add passes that optimize machine instructions after register allocation.
|
||||||
void PTXPassConfig::addMachineLateOptimization() {
|
void PTXPassConfig::addMachineLateOptimization() {
|
||||||
if (addPass(BranchFolderPassID) != &NoPassID)
|
if (addPass(BranchFolderPassID) != &NoPassID)
|
||||||
printNoVerify("After BranchFolding");
|
printAndVerify("After BranchFolding");
|
||||||
|
|
||||||
if (addPass(TailDuplicateID) != &NoPassID)
|
if (addPass(TailDuplicateID) != &NoPassID)
|
||||||
printNoVerify("After TailDuplicate");
|
printAndVerify("After TailDuplicate");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PTXPassConfig::addPreEmitPass() {
|
bool PTXPassConfig::addPreEmitPass() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user