[llvm-commits] [llvm] r155599 - /llvm/trunk/lib/VMCore/Metadata.cpp

Duncan Sands baldrick at free.fr
Sun Apr 29 06:54:12 PDT 2012


Hi Bill,

> Don't forget to reset 'first operand' flag when we're setting the MDNodeOperand value.

maybe there should be a unit test for this?

Ciao, Duncan.

>
> Modified:
>      llvm/trunk/lib/VMCore/Metadata.cpp
>
> Modified: llvm/trunk/lib/VMCore/Metadata.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Metadata.cpp?rev=155599&r1=155598&r2=155599&view=diff
> ==============================================================================
> --- llvm/trunk/lib/VMCore/Metadata.cpp (original)
> +++ llvm/trunk/lib/VMCore/Metadata.cpp Wed Apr 25 19:38:42 2012
> @@ -66,7 +66,11 @@
>     MDNodeOperand(Value *V) : CallbackVH(V) {}
>     ~MDNodeOperand() {}
>
> -  void set(Value *V) { this->setValPtr(V); }
> +  void set(Value *V) {
> +    unsigned IsFirst = this->getValPtrInt();
> +    this->setValPtr(V);
> +    this->setAsFirstOperand(IsFirst);
> +  }
>
>     /// setAsFirstOperand - Accessor method to mark the operand as the first in
>     /// the list.
> @@ -95,7 +99,7 @@
>   static MDNodeOperand *getOperandPtr(MDNode *N, unsigned Op) {
>     // Use<= instead of<  to permit a one-past-the-end address.
>     assert(Op<= N->getNumOperands()&&  "Invalid operand number");
> -  return reinterpret_cast<MDNodeOperand*>(N+1)+Op;
> +  return reinterpret_cast<MDNodeOperand*>(N + 1) + Op;
>   }
>
>   void MDNode::replaceOperandWith(unsigned i, Value *Val) {
> @@ -122,7 +126,6 @@
>     }
>   }
>
> -
>   /// ~MDNode - Destroy MDNode.
>   MDNode::~MDNode() {
>     assert((getSubclassDataFromValue()&  DestroyFlag) != 0&&
> @@ -247,7 +250,7 @@
>     }
>
>     // Coallocate space for the node and Operands together, then placement new.
> -  void *Ptr = malloc(sizeof(MDNode)+Vals.size()*sizeof(MDNodeOperand));
> +  void *Ptr = malloc(sizeof(MDNode) + Vals.size() * sizeof(MDNodeOperand));
>     N = new (Ptr) MDNode(Context, Vals, isFunctionLocal);
>
>     // Cache the operand hash.
> @@ -275,7 +278,7 @@
>
>   MDNode *MDNode::getTemporary(LLVMContext&Context, ArrayRef<Value*>  Vals) {
>     MDNode *N =
> -    (MDNode *)malloc(sizeof(MDNode)+Vals.size()*sizeof(MDNodeOperand));
> +    (MDNode *)malloc(sizeof(MDNode) + Vals.size() * sizeof(MDNodeOperand));
>     N = new (N) MDNode(Context, Vals, FL_No);
>     N->setValueSubclassData(N->getSubclassDataFromValue() |
>                             NotUniquedBit);
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list