Avoid creating virtual registers for unused values.

llvm-svn: 101480
This commit is contained in:
Dan Gohman 2010-04-16 17:15:02 +00:00
parent 5664b9f1a9
commit 3a7ee8eead
2 changed files with 5 additions and 5 deletions

View File

@ -918,10 +918,10 @@ void SelectionDAGBuilder::visitRet(const ReturnInst &I) {
/// created for it, emit nodes to copy the value into the virtual /// created for it, emit nodes to copy the value into the virtual
/// registers. /// registers.
void SelectionDAGBuilder::CopyToExportRegsIfNeeded(const Value *V) { void SelectionDAGBuilder::CopyToExportRegsIfNeeded(const Value *V) {
if (!V->use_empty()) { DenseMap<const Value *, unsigned>::iterator VMI = FuncInfo.ValueMap.find(V);
DenseMap<const Value *, unsigned>::iterator VMI = FuncInfo.ValueMap.find(V); if (VMI != FuncInfo.ValueMap.end()) {
if (VMI != FuncInfo.ValueMap.end()) assert(!V->use_empty() && "Unused value assigned virtual registers!");
CopyValueToVirtualRegister(V, VMI->second); CopyValueToVirtualRegister(V, VMI->second);
} }
} }

View File

@ -834,7 +834,7 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
BI->dump(); BI->dump();
} }
if (!BI->getType()->isVoidTy()) { if (!BI->getType()->isVoidTy() && !BI->use_empty()) {
unsigned &R = FuncInfo->ValueMap[BI]; unsigned &R = FuncInfo->ValueMap[BI];
if (!R) if (!R)
R = FuncInfo->CreateRegForValue(BI); R = FuncInfo->CreateRegForValue(BI);