[llvm-commits] [llvm] r168889 - /llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Evgeniy Stepanov
eugeni.stepanov at gmail.com
Fri Nov 30 04:13:37 PST 2012
r168997.
On Thu, Nov 29, 2012 at 8:54 PM, Kostya Serebryany <kcc at google.com> wrote:
> Unittests?
> (I know, we'll have this tested in runnable tests, but .ll tests won't
> hurt).
>
>
> On Thu, Nov 29, 2012 at 7:22 PM, Evgeniy Stepanov
> <eugeni.stepanov at gmail.com> wrote:
>>
>> Author: eugenis
>> Date: Thu Nov 29 09:22:06 2012
>> New Revision: 168889
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=168889&view=rev
>> Log:
>> [msan] Handle vector manipulation instructions.
>>
>> Handle insertelement, extractelement, shufflevector.
>>
>> Modified:
>> llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
>>
>> Modified: llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp?rev=168889&r1=168888&r2=168889&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp
>> (original)
>> +++ llvm/trunk/lib/Transforms/Instrumentation/MemorySanitizer.cpp Thu Nov
>> 29 09:22:06 2012
>> @@ -743,6 +743,31 @@
>> IRB.CreateAlignedStore(getOrigin(Val), getOriginPtr(Addr, IRB),
>> I.getAlignment());
>> }
>>
>> + // Vector manipulation.
>> + void visitExtractElementInst(ExtractElementInst &I) {
>> + insertCheck(I.getOperand(1), &I);
>> + IRBuilder<> IRB(&I);
>> + setShadow(&I, IRB.CreateExtractElement(getShadow(&I, 0),
>> I.getOperand(1),
>> + "_msprop"));
>> + setOrigin(&I, getOrigin(&I, 0));
>> + }
>> +
>> + void visitInsertElementInst(InsertElementInst &I) {
>> + insertCheck(I.getOperand(2), &I);
>> + IRBuilder<> IRB(&I);
>> + setShadow(&I, IRB.CreateInsertElement(getShadow(&I, 0), getShadow(&I,
>> 1),
>> + I.getOperand(2), "_msprop"));
>> + setOriginForNaryOp(I);
>> + }
>> +
>> + void visitShuffleVectorInst(ShuffleVectorInst &I) {
>> + insertCheck(I.getOperand(2), &I);
>> + IRBuilder<> IRB(&I);
>> + setShadow(&I, IRB.CreateShuffleVector(getShadow(&I, 0), getShadow(&I,
>> 1),
>> + I.getOperand(2), "_msprop"));
>> + setOriginForNaryOp(I);
>> + }
>> +
>> // Casts.
>> void visitSExtInst(SExtInst &I) {
>> IRBuilder<> IRB(&I);
>>
>>
>> _______________________________________________
>> 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