mirror of
https://github.com/intel/llvm.git
synced 2026-01-13 11:02:04 +08:00
[Offload] Remove check on kernel argument sizes (#162121)
Summary: This check is unnecessarily restrictive and currently incorrectly fires for any size less than eight bytes. Just remove it, we do sanity checks elsewhere and at some point need to trust the ABI.
This commit is contained in:
@@ -3687,11 +3687,6 @@ Error AMDGPUKernelTy::launchImpl(GenericDeviceTy &GenericDevice,
|
||||
KernelArgsTy &KernelArgs,
|
||||
KernelLaunchParamsTy LaunchParams,
|
||||
AsyncInfoWrapperTy &AsyncInfoWrapper) const {
|
||||
if (ArgsSize != LaunchParams.Size &&
|
||||
ArgsSize > LaunchParams.Size + getImplicitArgsSize())
|
||||
return Plugin::error(ErrorCode::INVALID_ARGUMENT,
|
||||
"invalid kernel arguments size");
|
||||
|
||||
AMDGPUPluginTy &AMDGPUPlugin =
|
||||
static_cast<AMDGPUPluginTy &>(GenericDevice.Plugin);
|
||||
AMDHostDeviceTy &HostDevice = AMDGPUPlugin.getHostDevice();
|
||||
|
||||
@@ -2,6 +2,7 @@ add_offload_test_device_code(foo.cpp foo)
|
||||
add_offload_test_device_code(bar.cpp bar)
|
||||
# Compile with optimizations to eliminate AMDGPU implicit arguments.
|
||||
add_offload_test_device_code(noargs.cpp noargs -O3)
|
||||
add_offload_test_device_code(byte.cpp byte)
|
||||
add_offload_test_device_code(localmem.cpp localmem)
|
||||
add_offload_test_device_code(localmem_reduction.cpp localmem_reduction)
|
||||
add_offload_test_device_code(localmem_static.cpp localmem_static)
|
||||
@@ -14,6 +15,7 @@ add_custom_target(offload_device_binaries DEPENDS
|
||||
foo.bin
|
||||
bar.bin
|
||||
noargs.bin
|
||||
byte.bin
|
||||
localmem.bin
|
||||
localmem_reduction.bin
|
||||
localmem_static.bin
|
||||
|
||||
3
offload/unittests/OffloadAPI/device_code/byte.cpp
Normal file
3
offload/unittests/OffloadAPI/device_code/byte.cpp
Normal file
@@ -0,0 +1,3 @@
|
||||
#include <gpuintrin.h>
|
||||
|
||||
extern "C" __gpu_kernel void byte(unsigned char c) { (void)c; }
|
||||
@@ -55,6 +55,7 @@ struct LaunchSingleKernelTestBase : LaunchKernelTestBase {
|
||||
|
||||
KERNEL_TEST(Foo, foo)
|
||||
KERNEL_TEST(NoArgs, noargs)
|
||||
KERNEL_TEST(Byte, byte)
|
||||
KERNEL_TEST(LocalMem, localmem)
|
||||
KERNEL_TEST(LocalMemReduction, localmem_reduction)
|
||||
KERNEL_TEST(LocalMemStatic, localmem_static)
|
||||
|
||||
Reference in New Issue
Block a user