diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp index 15032969890e..54c15e4e4d39 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp @@ -22,7 +22,15 @@ using namespace llvm; namespace { -const unsigned MaxStaticSize = 1024; +static int MaxStaticSize; + +static cl::opt<int, true> MemIntrinsicExpandSizeThresholdOpt( + "amdgpu-mem-intrinsic-expand-size", + cl::desc("Set minimum mem intrinsic size to expand in IR"), + cl::location(MaxStaticSize), + cl::init(1024), + cl::Hidden); + class AMDGPULowerIntrinsics : public ModulePass { private: @@ -57,7 +65,7 @@ INITIALIZE_PASS(AMDGPULowerIntrinsics, DEBUG_TYPE, "Lower intrinsics", false, // require splitting based on alignment) static bool shouldExpandOperationWithSize(Value *Size) { ConstantInt *CI = dyn_cast<ConstantInt>(Size); - return !CI || (CI->getZExtValue() > MaxStaticSize); + return !CI || (CI->getSExtValue() > MaxStaticSize); } bool AMDGPULowerIntrinsics::expandMemIntrinsicUses(Function &F) { |