mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
Use hasDefinitiveInitializer() instead of testing the same thing
by hand, and fix a few places that were using hasInitializer() that appear to depend on the initializer value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79441 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
de0e587e63
commit
8255573835
@ -1061,7 +1061,7 @@ void Andersens::CollectConstraints(Module &M) {
|
||||
Constraints.push_back(Constraint(Constraint::AddressOf, getNodeValue(*I),
|
||||
ObjectIndex));
|
||||
|
||||
if (I->hasInitializer()) {
|
||||
if (I->hasDefinitiveInitializer()) {
|
||||
AddGlobalInitializerConstraints(ObjectIndex, I->getInitializer());
|
||||
} else {
|
||||
// If it doesn't have an initializer (i.e. it's defined in another
|
||||
|
@ -3638,7 +3638,7 @@ ScalarEvolution::ComputeLoadConstantCompareBackedgeTakenCount(
|
||||
// Make sure that it is really a constant global we are gepping, with an
|
||||
// initializer, and make sure the first IDX is really 0.
|
||||
GlobalVariable *GV = dyn_cast<GlobalVariable>(GEP->getOperand(0));
|
||||
if (!GV || !GV->isConstant() || !GV->hasInitializer() ||
|
||||
if (!GV || !GV->isConstant() || !GV->hasDefinitiveInitializer() ||
|
||||
GEP->getNumOperands() < 3 || !isa<Constant>(GEP->getOperand(1)) ||
|
||||
!cast<Constant>(GEP->getOperand(1))->isNullValue())
|
||||
return getCouldNotCompute();
|
||||
|
@ -1061,8 +1061,7 @@ bool llvm::GetConstantStringInfo(Value *V, std::string &Str, uint64_t Offset,
|
||||
// variable that is a constant and is initialized. The referenced constant
|
||||
// initializer is the array that we'll use for optimization.
|
||||
GlobalVariable* GV = dyn_cast<GlobalVariable>(V);
|
||||
if (!GV || !GV->isConstant() || !GV->hasInitializer() ||
|
||||
GV->mayBeOverridden())
|
||||
if (!GV || !GV->isConstant() || !GV->hasDefinitiveInitializer())
|
||||
return false;
|
||||
Constant *GlobalInit = GV->getInitializer();
|
||||
|
||||
|
@ -78,7 +78,7 @@ bool ConstantMerge::runOnModule(Module &M) {
|
||||
}
|
||||
|
||||
// Only process constants with initializers.
|
||||
if (GV->isConstant() && GV->hasInitializer()) {
|
||||
if (GV->isConstant() && GV->hasDefinitiveInitializer()) {
|
||||
Constant *Init = GV->getInitializer();
|
||||
|
||||
// Check to see if the initializer is already known.
|
||||
|
@ -1913,7 +1913,7 @@ GlobalVariable *GlobalOpt::FindGlobalCtors(Module &M) {
|
||||
return 0;
|
||||
|
||||
// Verify that the initializer is simple enough for us to handle.
|
||||
if (!I->hasInitializer()) return 0;
|
||||
if (!I->hasDefinitiveInitializer()) return 0;
|
||||
ConstantArray *CA = dyn_cast<ConstantArray>(I->getInitializer());
|
||||
if (!CA) return 0;
|
||||
for (User::op_iterator i = CA->op_begin(), e = CA->op_end(); i != e; ++i)
|
||||
@ -2139,7 +2139,7 @@ static Constant *ComputeLoadResult(Constant *P,
|
||||
|
||||
// Access it.
|
||||
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(P)) {
|
||||
if (GV->hasInitializer())
|
||||
if (GV->hasDefinitiveInitializer())
|
||||
return GV->getInitializer();
|
||||
return 0;
|
||||
}
|
||||
@ -2149,7 +2149,7 @@ static Constant *ComputeLoadResult(Constant *P,
|
||||
if (CE->getOpcode() == Instruction::GetElementPtr &&
|
||||
isa<GlobalVariable>(CE->getOperand(0))) {
|
||||
GlobalVariable *GV = cast<GlobalVariable>(CE->getOperand(0));
|
||||
if (GV->hasInitializer())
|
||||
if (GV->hasDefinitiveInitializer())
|
||||
return ConstantFoldLoadThroughGEPConstantExpr(GV->getInitializer(), CE,
|
||||
Context);
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ bool SimpleInliner::doInitialization(CallGraph &CG) {
|
||||
return false;
|
||||
|
||||
// Don't crash on invalid code
|
||||
if (!GV->hasInitializer())
|
||||
if (!GV->hasDefinitiveInitializer())
|
||||
return false;
|
||||
|
||||
const ConstantArray *InitList = dyn_cast<ConstantArray>(GV->getInitializer());
|
||||
|
Loading…
Reference in New Issue
Block a user