mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-16 08:08:01 +00:00
Add section switching to common code generator code. Add a couple of
asserts. llvm-svn: 24445
This commit is contained in:
parent
05782d4087
commit
f78eca1416
@ -19,8 +19,27 @@
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
using namespace llvm;
|
||||
|
||||
/// SwitchSection - Switch to the specified section of the executable if we
|
||||
/// are not already in it!
|
||||
///
|
||||
void AsmPrinter::SwitchSection(const char *NewSection, const GlobalValue *GV) {
|
||||
std::string NS;
|
||||
|
||||
if (GV && GV->hasSection())
|
||||
NS = ".section " + GV->getSection();
|
||||
else
|
||||
NS = NewSection;
|
||||
|
||||
if (CurrentSection != NS) {
|
||||
CurrentSection = NS;
|
||||
if (!CurrentSection.empty())
|
||||
O << "\t" << CurrentSection << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
bool AsmPrinter::doInitialization(Module &M) {
|
||||
Mang = new Mangler(M, GlobalPrefix);
|
||||
SwitchSection("", 0); // Reset back to no section.
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -278,10 +278,11 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &MF) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.getVRegValueOrNull()) {
|
||||
VarInfo &VRInfo = getVarInfo(MO.getReg());
|
||||
assert(VRInfo.DefInst && "Register use before def (or no def)!");
|
||||
|
||||
// Only mark it alive only in the block we are representing...
|
||||
// Only mark it alive only in the block we are representing.
|
||||
MarkVirtRegAliveInBlock(VRInfo, MBB);
|
||||
break; // Found the PHI entry for this block...
|
||||
break; // Found the PHI entry for this block.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -547,6 +547,7 @@ void RA::assignRegOrStackSlotAtInterval(LiveInterval* cur)
|
||||
minReg = reg;
|
||||
}
|
||||
}
|
||||
assert(minReg && "Didn't find any reg!");
|
||||
DEBUG(std::cerr << "\t\tregister with min weight: "
|
||||
<< mri_->getName(minReg) << " (" << minWeight << ")\n");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user