GEP instructions can never be constant propogated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2284 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-04-18 14:44:13 +00:00
parent 27e3420ce9
commit 6428a27ee3

View File

@ -429,14 +429,9 @@ void SCCP::UpdateInstruction(Instruction *I) {
//===-------------------------------------------------------------------===//
// Handle Unary instructions...
// Also treated as unary here, are cast instructions and getelementptr
// instructions on struct* operands.
// Handle Unary and cast instructions...
//
if (isa<UnaryOperator>(I) || isa<CastInst>(I) ||
(isa<GetElementPtrInst>(I) &&
cast<GetElementPtrInst>(I)->isStructSelector())) {
if (isa<UnaryOperator>(I) || isa<CastInst>(I)) {
Value *V = I->getOperand(0);
InstVal &VState = getValueState(V);
if (VState.isOverdefined()) { // Inherit overdefinedness of operand
@ -456,6 +451,16 @@ void SCCP::UpdateInstruction(Instruction *I) {
return;
}
//===-----------------------------------------------------------------===//
// Handle GetElementPtr instructions...
//
if (isa<GetElementPtrInst>(I)) {
markOverdefined(I);
return;
}
//===-----------------------------------------------------------------===//
// Handle Binary instructions...
//