mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-23 22:15:25 +00:00
- Change getelementptr instruction to use long indexes instead of uint
indexes for sequential types. llvm-svn: 3683
This commit is contained in:
parent
fb017cb38c
commit
cb973bf5ee
lib
@ -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) {
|
||||
|
@ -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");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user