Factorize out a concept - no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67454 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands
2009-03-21 21:27:31 +00:00
parent 802cd84eb4
commit 64da9409cb
4 changed files with 15 additions and 8 deletions

View File

@ -1131,7 +1131,7 @@ void SCCPSolver::visitLoadInst(LoadInst &I) {
// Transform load (constant global) into the value loaded.
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(Ptr)) {
if (GV->isConstant()) {
if (!GV->isDeclaration() && !GV->mayBeOverridden()) {
if (GV->hasDefinitiveInitializer()) {
markConstant(IV, &I, GV->getInitializer());
return;
}
@ -1150,7 +1150,7 @@ void SCCPSolver::visitLoadInst(LoadInst &I) {
if (ConstantExpr *CE = dyn_cast<ConstantExpr>(Ptr))
if (CE->getOpcode() == Instruction::GetElementPtr)
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(CE->getOperand(0)))
if (GV->isConstant() && !GV->isDeclaration() && !GV->mayBeOverridden())
if (GV->isConstant() && GV->hasDefinitiveInitializer())
if (Constant *V =
ConstantFoldLoadThroughGEPConstantExpr(GV->getInitializer(), CE)) {
markConstant(IV, &I, V);