mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
PR9214: Convert ConstantExpr::getIndices() to return an ArrayRef, plus
related tweaks to ExprMapKeyType. llvm-svn: 129443
This commit is contained in:
parent
d7db076abc
commit
c29ba4ecd6
@ -885,7 +885,7 @@ public:
|
||||
|
||||
/// getIndices - Assert that this is an insertvalue or exactvalue
|
||||
/// expression and return the list of indices.
|
||||
const SmallVector<unsigned, 4> &getIndices() const;
|
||||
ArrayRef<unsigned> getIndices() const;
|
||||
|
||||
/// getOpcodeName - Return a string representation for an opcode.
|
||||
const char *getOpcodeName() const;
|
||||
|
@ -606,7 +606,7 @@ Value *Lint::findValueImpl(Value *V, bool OffsetOk,
|
||||
Type::getInt64Ty(V->getContext())))
|
||||
return findValueImpl(CE->getOperand(0), OffsetOk, Visited);
|
||||
} else if (CE->getOpcode() == Instruction::ExtractValue) {
|
||||
const SmallVector<unsigned, 4> &Indices = CE->getIndices();
|
||||
ArrayRef<unsigned> Indices = CE->getIndices();
|
||||
if (Value *W = FindInsertedValue(CE->getOperand(0),
|
||||
Indices.begin(),
|
||||
Indices.end()))
|
||||
|
@ -1075,7 +1075,7 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
|
||||
}
|
||||
|
||||
if (CE->hasIndices()) {
|
||||
const SmallVector<unsigned, 4> &Indices = CE->getIndices();
|
||||
ArrayRef<unsigned> Indices = CE->getIndices();
|
||||
for (unsigned i = 0, e = Indices.size(); i != e; ++i)
|
||||
Out << ", " << Indices[i];
|
||||
}
|
||||
|
@ -771,7 +771,7 @@ bool ConstantExpr::hasIndices() const {
|
||||
getOpcode() == Instruction::InsertValue;
|
||||
}
|
||||
|
||||
const SmallVector<unsigned, 4> &ConstantExpr::getIndices() const {
|
||||
ArrayRef<unsigned> ConstantExpr::getIndices() const {
|
||||
if (const ExtractValueConstantExpr *EVCE =
|
||||
dyn_cast<ExtractValueConstantExpr>(this))
|
||||
return EVCE->Indices;
|
||||
@ -2151,7 +2151,7 @@ void ConstantExpr::replaceUsesOfWithOnConstant(Value *From, Value *ToV,
|
||||
Constant *Agg = getOperand(0);
|
||||
if (Agg == From) Agg = To;
|
||||
|
||||
const SmallVector<unsigned, 4> &Indices = getIndices();
|
||||
ArrayRef<unsigned> Indices = getIndices();
|
||||
Replacement = ConstantExpr::getExtractValue(Agg,
|
||||
&Indices[0], Indices.size());
|
||||
} else if (getOpcode() == Instruction::InsertValue) {
|
||||
@ -2160,7 +2160,7 @@ void ConstantExpr::replaceUsesOfWithOnConstant(Value *From, Value *ToV,
|
||||
if (Agg == From) Agg = To;
|
||||
if (Val == From) Val = To;
|
||||
|
||||
const SmallVector<unsigned, 4> &Indices = getIndices();
|
||||
ArrayRef<unsigned> Indices = getIndices();
|
||||
Replacement = ConstantExpr::getInsertValue(Agg, Val,
|
||||
&Indices[0], Indices.size());
|
||||
} else if (isCast()) {
|
||||
|
@ -301,20 +301,18 @@ struct OperandTraits<CompareConstantExpr> :
|
||||
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CompareConstantExpr, Value)
|
||||
|
||||
struct ExprMapKeyType {
|
||||
typedef SmallVector<unsigned, 4> IndexList;
|
||||
|
||||
ExprMapKeyType(unsigned opc,
|
||||
const std::vector<Constant*> &ops,
|
||||
ArrayRef<Constant*> ops,
|
||||
unsigned short flags = 0,
|
||||
unsigned short optionalflags = 0,
|
||||
const IndexList &inds = IndexList())
|
||||
ArrayRef<unsigned> inds = ArrayRef<unsigned>())
|
||||
: opcode(opc), subclassoptionaldata(optionalflags), subclassdata(flags),
|
||||
operands(ops), indices(inds) {}
|
||||
operands(ops.begin(), ops.end()), indices(inds.begin(), inds.end()) {}
|
||||
uint8_t opcode;
|
||||
uint8_t subclassoptionaldata;
|
||||
uint16_t subclassdata;
|
||||
std::vector<Constant*> operands;
|
||||
IndexList indices;
|
||||
SmallVector<unsigned, 4> indices;
|
||||
bool operator==(const ExprMapKeyType& that) const {
|
||||
return this->opcode == that.opcode &&
|
||||
this->subclassdata == that.subclassdata &&
|
||||
@ -465,7 +463,7 @@ struct ConstantKeyData<ConstantExpr> {
|
||||
CE->isCompare() ? CE->getPredicate() : 0,
|
||||
CE->getRawSubclassOptionalData(),
|
||||
CE->hasIndices() ?
|
||||
CE->getIndices() : SmallVector<unsigned, 4>());
|
||||
CE->getIndices() : ArrayRef<unsigned>());
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user