[llvm] r182125 - R600: Improve texture handling
Vincent Lejeune
vljn at ovi.com
Mon Aug 19 12:24:28 PDT 2013
Thank Nick for spotting and Tom for fixing this !
----- Mail original -----
> De : Tom Stellard <tom at stellard.net>
> À : Nick Lewycky <nicholas at mxc.ca>
> Cc : Vincent Lejeune <vljn at ovi.com>; llvm-commits at cs.uiuc.edu
> Envoyé le : Samedi 17 août 2013 2h09
> Objet : Re: [llvm] r182125 - R600: Improve texture handling
>
> On Thu, Aug 15, 2013 at 01:57:48AM -0700, Nick Lewycky wrote:
>> Vincent Lejeune wrote:
>> >Author: vljn
>> >Date: Fri May 17 11:50:20 2013
>> >New Revision: 182125
>> >
>> >URL: http://llvm.org/viewvc/llvm-project?rev=182125&view=rev
>> >Log:
>> >R600: Improve texture handling
>>
>> [...]
>>
>> >Added: llvm/trunk/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp
>> >URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp?rev=182125&view=auto
>>
>> ==============================================================================
>> >--- llvm/trunk/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp
> (added)
>> >+++ llvm/trunk/lib/Target/R600/R600TextureIntrinsicsReplacer.cpp Fri
> May 17 11:50:20 2013
>>
>> [...]
>>
>> >+ void ReplaceTexIntrinsic(CallInst&I, bool hasLOD, FunctionType
> *FT,
>> >+ const char *VanillaInt,
>> >+ const char *ShadowInt) {
>> >+ Value *Coord = I.getArgOperand(0);
>> >+ Value *ResourceId = I.getArgOperand(1);
>> >+ Value *SamplerId = I.getArgOperand(2);
>> >+
>> >+ unsigned TextureType =
>> >+
> dyn_cast<ConstantInt>(I.getArgOperand(3))->getZExtValue();
>>
>> This can be zero ...
>>
>> >+
>> >+ unsigned SrcSelect[4] = { 0, 1, 2, 3 };
>> >+ unsigned CT[4] = {1, 1, 1, 1};
>> >+ Value *Offset[3] = {
>> >+ ConstantInt::get(Int32Type, 0),
>> >+ ConstantInt::get(Int32Type, 0),
>> >+ ConstantInt::get(Int32Type, 0)
>> >+ };
>> >+ bool useShadowVariant;
>> >+
>> >+ getAdjustementFromTextureTarget(TextureType, hasLOD, SrcSelect,
> CT,
>> >+ useShadowVariant);
>>
>> ... which goes through an explicit "case 0: return" in
>> getAdjustmentFromTextureTarget instead of the "default:
>> llvm_unreachable" ...
>>
>> >+
>> >+ ReplaceCallInst(I, FT, useShadowVariant?ShadowInt:VanillaInt,
> SrcSelect,
>> >+ Offset, ResourceId, SamplerId, CT, Coord);
>>
>> ... and then useShadowVariant is used uninitialized here. Please fix!
>>
>
> I've fixed this in r188599, thanks for spotting it.
>
> -Tom
>
More information about the llvm-commits
mailing list