[llvm-commits] [llvm] r90512 - /llvm/trunk/lib/VMCore/AsmWriter.cpp

Devang Patel dpatel at apple.com
Thu Dec 3 17:37:53 PST 2009


Hi Victor,
On Dec 3, 2009, at 5:35 PM, Victor Hernandez wrote:

> Author: hernande
> Date: Thu Dec  3 19:35:02 2009
> New Revision: 90512
>
> URL: http://llvm.org/viewvc/llvm-project?rev=90512&view=rev
> Log:
> Teach AsmWriter to write inline (not via a global metadata slot)  
> metadata that contains an instruction
>
> Modified:
>    llvm/trunk/lib/VMCore/AsmWriter.cpp
>
> Modified: llvm/trunk/lib/VMCore/AsmWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AsmWriter.cpp?rev=90512&r1=90511&r2=90512&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/AsmWriter.cpp (original)
> +++ llvm/trunk/lib/VMCore/AsmWriter.cpp Thu Dec  3 19:35:02 2009
> @@ -695,8 +695,13 @@
>           !I->hasName())
>         CreateFunctionSlot(I);
>       for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
> -        if (MDNode *N = dyn_cast_or_null<MDNode>(I->getOperand(i)))
> +        if (MDNode *N = dyn_cast_or_null<MDNode>(I->getOperand(i))) {
> +          // Create a metadata slot only if N contains no  
> instructions.
> +          for (unsigned n = 0, e = N->getNumElements(); n != e; ++n)
> +            if (isa<Instruction>(N->getElement(n)))
> +              continue;
>           CreateMetadataSlot(N);
> +        }
>
>       // Process metadata attached with this instruction.
>       MDs.clear();

There are other places where CreateMetadataSlot() is used. Please move  
this check in side CreateMetadataSlot().
-
Devang



More information about the llvm-commits mailing list