summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-09-11 01:21:35 +0000
committerChris Lattner <sabre@nondot.org>2002-09-11 01:21:35 +0000
commite314bf5264a5b57843b3a181c809de9e0d1426cb (patch)
tree887a3a16818fdb0122bd181ef5264d5ad0da4741 /llvm
parent136dab7d86c77c69aae948501065432e8b9b1ced (diff)
downloadbcm5719-llvm-e314bf5264a5b57843b3a181c809de9e0d1426cb.tar.gz
bcm5719-llvm-e314bf5264a5b57843b3a181c809de9e0d1426cb.zip
- Change getelementptr instruction to use long indexes instead of uint
indexes for sequential types. llvm-svn: 3683
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/ExecutionEngine/Interpreter/Execution.cpp2
-rw-r--r--llvm/lib/Target/Sparc/SparcInstrSelection.cpp15
2 files changed, 3 insertions, 14 deletions
diff --git a/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp b/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
index 868bfbe5bec..082823ade7b 100644
--- a/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
+++ b/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
@@ -822,7 +822,7 @@ static GenericValue executeGEPOperation(Value *Ptr, User::op_iterator I,
} else if (const SequentialType *ST = cast<SequentialType>(Ty)) {
// Get the index number for the array... which must be uint type...
- assert((*I)->getType() == Type::UIntTy);
+ assert((*I)->getType() == Type::LongTy);
unsigned Idx = getOperandValue(*I, SF).UIntVal;
if (const ArrayType *AT = dyn_cast<ArrayType>(ST))
if (Idx >= AT->getNumElements() && ArrayChecksEnabled) {
diff --git a/llvm/lib/Target/Sparc/SparcInstrSelection.cpp b/llvm/lib/Target/Sparc/SparcInstrSelection.cpp
index 6c5caaf6bff..ce7e4dc0d92 100644
--- a/llvm/lib/Target/Sparc/SparcInstrSelection.cpp
+++ b/llvm/lib/Target/Sparc/SparcInstrSelection.cpp
@@ -24,9 +24,6 @@
#include <math.h>
using std::vector;
-//************************* Forward Declarations ***************************/
-
-
//************************ Internal Functions ******************************/
@@ -937,15 +934,6 @@ CreateCodeForFixedSizeAlloca(const TargetMachine& target,
}
-
-// Check for a constant (uint) 0.
-inline bool
-IsZero(Value* idx)
-{
- return (isa<ConstantInt>(idx) && cast<ConstantInt>(idx)->isNullValue());
-}
-
-
//------------------------------------------------------------------------
// Function SetOperandsForMemInstr
//
@@ -1004,7 +992,8 @@ SetOperandsForMemInstr(vector<MachineInstr*>& mvec,
// offset. (An extra leading zero offset, if any, can be ignored.)
// Generate code sequence to compute address from index.
//
- bool firstIdxIsZero = IsZero(idxVec[0]);
+ bool firstIdxIsZero =
+ (idxVec[0] == Constant::getNullValue(idxVec[0]->getType()));
assert(idxVec.size() == 1U + firstIdxIsZero
&& "Array refs must be lowered before Instruction Selection");
OpenPOWER on IntegriCloud