diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2018-08-02 17:32:43 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2018-08-02 17:32:43 +0000 | 
| commit | b7eb8e35e481a74962664b63dfb09483b200209a (patch) | |
| tree | 1937fb4a348458ce2d02ade03ac3bb0aa18d2fcd /lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp | |
| parent | eb11fae6d08f479c0799db45860a98af528fa6e7 (diff) | |
Notes
Diffstat (limited to 'lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp')
| -rw-r--r-- | lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp | 26 | 
1 files changed, 0 insertions, 26 deletions
diff --git a/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp b/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp index 8cc7e38f7b29..c147830e12ed 100644 --- a/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp +++ b/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp @@ -100,16 +100,6 @@ bool AMDGPULowerKernelArguments::runOnFunction(Function &F) {      unsigned Size = DL.getTypeSizeInBits(ArgTy);      unsigned AllocSize = DL.getTypeAllocSize(ArgTy); - -    // Clover seems to always pad i8/i16 to i32, but doesn't properly align -    // them? -    // Make sure the struct elements have correct size and alignment for ext -    // args. These seem to be padded up to 4-bytes but not correctly aligned. -    bool IsExtArg = AllocSize < 32 && (Arg.hasZExtAttr() || Arg.hasSExtAttr()) && -                    !ST.isAmdHsaOS(); -    if (IsExtArg) -      AllocSize = 4; -      uint64_t EltOffset = alignTo(ExplicitArgOffset, Align) + BaseOffset;      ExplicitArgOffset = alignTo(ExplicitArgOffset, Align) + AllocSize; @@ -164,8 +154,6 @@ bool AMDGPULowerKernelArguments::runOnFunction(Function &F) {                                       ArgPtr->getName() + ".cast");      } -    assert((!IsExtArg || !IsV3) && "incompatible situation"); -      if (IsV3 && Size >= 32) {        V4Ty = VectorType::get(VT->getVectorElementType(), 4);        // Use the hack that clang uses to avoid SelectionDAG ruining v3 loads @@ -212,20 +200,6 @@ bool AMDGPULowerKernelArguments::runOnFunction(Function &F) {      // TODO: Convert noalias arg to !noalias      if (Size < 32 && !ArgTy->isAggregateType()) { -      if (IsExtArg && OffsetDiff == 0) { -        Type *I32Ty = Builder.getInt32Ty(); -        bool IsSext = Arg.hasSExtAttr(); -        Metadata *LowAndHigh[] = { -          ConstantAsMetadata::get( -            ConstantInt::get(I32Ty, IsSext ? minIntN(Size) : 0)), -          ConstantAsMetadata::get( -            ConstantInt::get(I32Ty, -                             IsSext ? maxIntN(Size) + 1 : maxUIntN(Size) + 1)) -        }; - -        Load->setMetadata(LLVMContext::MD_range, MDNode::get(Ctx, LowAndHigh)); -      } -        Value *ExtractBits = OffsetDiff == 0 ?          Load : Builder.CreateLShr(Load, OffsetDiff * 8);  | 
