[llvm-commits] [llvm] r55084 - in /llvm/trunk: include/llvm/Constants.h lib/VMCore/Constants.cpp
Chris Lattner
sabre at nondot.org
Wed Aug 20 15:27:41 PDT 2008
Author: lattner
Date: Wed Aug 20 17:27:40 2008
New Revision: 55084
URL: http://llvm.org/viewvc/llvm-project?rev=55084&view=rev
Log:
Add a new ConstantExpr::getWithOperands that takes any array of operands
instead of requiring an std::vector.
Modified:
llvm/trunk/include/llvm/Constants.h
llvm/trunk/lib/VMCore/Constants.cpp
Modified: llvm/trunk/include/llvm/Constants.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Constants.h?rev=55084&r1=55083&r2=55084&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Constants.h (original)
+++ llvm/trunk/include/llvm/Constants.h Wed Aug 20 17:27:40 2008
@@ -752,7 +752,10 @@
/// getWithOperands - This returns the current constant expression with the
/// operands replaced with the specified values. The specified operands must
/// match count and type with the existing ones.
- Constant *getWithOperands(const std::vector<Constant*> &Ops) const;
+ Constant *getWithOperands(const std::vector<Constant*> &Ops) const {
+ return getWithOperands(&Ops[0], Ops.size());
+ }
+ Constant *getWithOperands(Constant* const *Ops, unsigned NumOps) const;
virtual void destroyConstant();
virtual void replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U);
Modified: llvm/trunk/lib/VMCore/Constants.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Constants.cpp?rev=55084&r1=55083&r2=55084&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Constants.cpp (original)
+++ llvm/trunk/lib/VMCore/Constants.cpp Wed Aug 20 17:27:40 2008
@@ -879,10 +879,10 @@
/// operands replaced with the specified values. The specified operands must
/// match count and type with the existing ones.
Constant *ConstantExpr::
-getWithOperands(const std::vector<Constant*> &Ops) const {
- assert(Ops.size() == getNumOperands() && "Operand count mismatch!");
+getWithOperands(Constant* const *Ops, unsigned NumOps) const {
+ assert(NumOps == getNumOperands() && "Operand count mismatch!");
bool AnyChange = false;
- for (unsigned i = 0, e = Ops.size(); i != e; ++i) {
+ for (unsigned i = 0; i != NumOps; ++i) {
assert(Ops[i]->getType() == getOperand(i)->getType() &&
"Operand type mismatch!");
AnyChange |= Ops[i] != getOperand(i);
@@ -913,7 +913,7 @@
case Instruction::ShuffleVector:
return ConstantExpr::getShuffleVector(Ops[0], Ops[1], Ops[2]);
case Instruction::GetElementPtr:
- return ConstantExpr::getGetElementPtr(Ops[0], &Ops[1], Ops.size()-1);
+ return ConstantExpr::getGetElementPtr(Ops[0], &Ops[1], NumOps-1);
case Instruction::ICmp:
case Instruction::FCmp:
case Instruction::VICmp:
More information about the llvm-commits
mailing list