diff --git a/clang/lib/CodeGen/CodeGenTypes.cpp b/clang/lib/CodeGen/CodeGenTypes.cpp index 1723fe40535db..c8987fd2e57da 100644 --- a/clang/lib/CodeGen/CodeGenTypes.cpp +++ b/clang/lib/CodeGen/CodeGenTypes.cpp @@ -711,11 +711,6 @@ llvm::Type *CodeGenTypes::ConvertType(QualType T) { "__spv::__spirv_CooperativeMatrixKHR") { ResultType = ConvertSPVCooperativeMatrixType(RD); break; - } else if (RD && RD->getQualifiedNameAsString() == - "__spv::__spirv_TaskSequenceINTEL") { - ResultType = llvm::TargetExtType::get(getLLVMContext(), - "spirv.TaskSequenceINTEL"); - break; } } } diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 651dd5f578234..4c43af998ec6b 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -10553,7 +10553,6 @@ static void getTripleBasedSPIRVTransOpts(Compilation &C, ",+SPV_INTEL_fpga_argument_interfaces" ",+SPV_INTEL_fpga_invocation_pipelining_attributes" ",+SPV_INTEL_fpga_latency_control" - ",+SPV_INTEL_task_sequence" ",+SPV_KHR_shader_clock" ",+SPV_INTEL_bindless_images"; ExtArg = ExtArg + DefaultExtArg + INTELExtArg; diff --git a/clang/test/CodeGenSYCL/intel-task-sequence.cpp b/clang/test/CodeGenSYCL/intel-task-sequence.cpp deleted file mode 100644 index 6dc5ece84ac53..0000000000000 --- a/clang/test/CodeGenSYCL/intel-task-sequence.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// RUN: %clang_cc1 -triple spir64-unknown-unknown -disable-llvm-passes -emit-llvm %s -o - | FileCheck %s - -// Test that SPIR-V codegen generates the expected LLVM struct name for the -// TaskSequenceINTEL type - -namespace __spv { - struct __spirv_TaskSequenceINTEL; -} // namespace __spv - -// CHECK: @_Z4func{{.*}}(target("spirv.TaskSequenceINTEL") -void func(__spv::__spirv_TaskSequenceINTEL *task_seq) {} \ No newline at end of file diff --git a/clang/test/Driver/sycl-spirv-ext.c b/clang/test/Driver/sycl-spirv-ext.c index eb4d24197b1af..b0e39f67e6132 100644 --- a/clang/test/Driver/sycl-spirv-ext.c +++ b/clang/test/Driver/sycl-spirv-ext.c @@ -47,7 +47,6 @@ // CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_argument_interfaces // CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_invocation_pipelining_attributes // CHECK-DEFAULT-SAME:,+SPV_INTEL_fpga_latency_control -// CHECK-DEFAULT-SAME:,+SPV_INTEL_task_sequence // CHECK-DEFAULT-SAME:,+SPV_KHR_shader_clock // CHECK-DEFAULT-SAME:,+SPV_INTEL_bindless_images // CHECK-DEFAULT-SAME:,+SPV_INTEL_token_type @@ -82,7 +81,6 @@ // CHECK-FPGA-HW-SAME:,+SPV_INTEL_fpga_buffer_location // CHECK-FPGA-HW-SAME:,+SPV_INTEL_fpga_argument_interfaces // CHECK-FPGA-HW-SAME:,+SPV_INTEL_fpga_latency_control -// CHECK-FPGA-HW-SAME:,+SPV_INTEL_task_sequence // CHECK-FPGA-HW-SAME:,+SPV_INTEL_usm_storage_classes // CHECK-FPGA-HW-SAME:,+SPV_INTEL_runtime_aligned // CHECK-FPGA-HW-SAME:,+SPV_INTEL_fpga_cluster_attributes,+SPV_INTEL_loop_fuse @@ -114,7 +112,6 @@ // CHECK-CPU-SAME:,+SPV_INTEL_fpga_argument_interfaces // CHECK-CPU-SAME:,+SPV_INTEL_fpga_invocation_pipelining_attributes // CHECK-CPU-SAME:,+SPV_INTEL_fpga_latency_control -// CHECK-CPU-SAME:,+SPV_INTEL_task_sequence // CHECK-CPU-SAME:,+SPV_INTEL_token_type // CHECK-CPU-SAME:,+SPV_INTEL_bfloat16_conversion // CHECK-CPU-SAME:,+SPV_INTEL_joint_matrix diff --git a/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td b/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td index 4210a0d150abf..d0df9098ab32b 100644 --- a/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td +++ b/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td @@ -77,7 +77,6 @@ def AspectExt_intel_matrix : Aspect<"ext_intel_matrix">; def AspectExt_oneapi_is_composite : Aspect<"ext_oneapi_is_composite">; def AspectExt_oneapi_is_component : Aspect<"ext_oneapi_is_component">; def AspectExt_oneapi_graph : Aspect<"ext_oneapi_graph">; -def AspectExt_intel_fpga_task_sequence : Aspect<"ext_intel_fpga_task_sequence">; def AspectExt_oneapi_limited_graph : Aspect<"ext_oneapi_limited_graph">; def AspectExt_oneapi_private_alloca : Aspect<"ext_oneapi_private_alloca">; def AspectExt_oneapi_queue_profiling_tag : Aspect<"ext_oneapi_queue_profiling_tag">; @@ -138,8 +137,8 @@ def : TargetInfo<"__TestAspectList", AspectExt_oneapi_bindless_sampled_image_fetch_3d_usm, AspectExt_oneapi_bindless_sampled_image_fetch_3d, AspectExt_intel_esimd, AspectExt_oneapi_ballot_group, AspectExt_oneapi_fixed_size_group, AspectExt_oneapi_opportunistic_group, - AspectExt_oneapi_tangle_group, AspectExt_intel_matrix, AspectExt_oneapi_is_composite, AspectExt_oneapi_is_component, - AspectExt_oneapi_graph, AspectExt_intel_fpga_task_sequence, AspectExt_oneapi_limited_graph, + AspectExt_oneapi_tangle_group, AspectExt_intel_matrix, AspectExt_oneapi_is_composite, AspectExt_oneapi_is_component, + AspectExt_oneapi_graph, AspectExt_oneapi_limited_graph, AspectExt_oneapi_private_alloca, AspectExt_oneapi_queue_profiling_tag, AspectExt_oneapi_virtual_mem, AspectExt_oneapi_cuda_cluster_group], []>; // This definition serves the only purpose of testing whether the deprecated aspect list defined in here and in SYCL RT diff --git a/llvm/lib/SYCLLowerIR/CompileTimePropertiesPass.cpp b/llvm/lib/SYCLLowerIR/CompileTimePropertiesPass.cpp index 36adf1e52ff56..63065e76faf6d 100644 --- a/llvm/lib/SYCLLowerIR/CompileTimePropertiesPass.cpp +++ b/llvm/lib/SYCLLowerIR/CompileTimePropertiesPass.cpp @@ -416,7 +416,6 @@ attributeToExecModeMetadata(const Attribute &Attr, Function &F) { if (AttrKindStr == "sycl-streaming-interface") { // generate either: - // !ip_interface !N // !N = !{!"streaming"} or // !N = !{!"streaming", !"stall_free_return"} SmallVector MD; @@ -429,7 +428,6 @@ attributeToExecModeMetadata(const Attribute &Attr, Function &F) { if (AttrKindStr == "sycl-register-map-interface") { // generate either: - // !ip_interface !N // !N = !{!"csr"} or // !N = !{!"csr", !"wait_for_done_write"} SmallVector MD; @@ -440,20 +438,6 @@ attributeToExecModeMetadata(const Attribute &Attr, Function &F) { MDNode::get(Ctx, MD)); } - if (AttrKindStr == "sycl-fpga-cluster") { - // generate either: - // !stall_free !N - // !N = !{i32 1} or - // !stall_enable !N - // !N = !{i32 1} - std::string ClusterType = - getAttributeAsInteger(Attr) ? "stall_enable" : "stall_free"; - Metadata *ClusterMDArgs[] = { - ConstantAsMetadata::get(ConstantInt::get(Type::getInt32Ty(Ctx), 1))}; - return std::pair(ClusterType, - MDNode::get(Ctx, ClusterMDArgs)); - } - if ((AttrKindStr == SYCL_REGISTER_ALLOC_MODE_ATTR || AttrKindStr == SYCL_GRF_SIZE_ATTR) && !llvm::esimd::isESIMD(F)) { diff --git a/llvm/test/SYCLLowerIR/CompileTimePropertiesPass/kernel-attributes/fpga-cluster.ll b/llvm/test/SYCLLowerIR/CompileTimePropertiesPass/kernel-attributes/fpga-cluster.ll deleted file mode 100644 index cad7c4398e929..0000000000000 --- a/llvm/test/SYCLLowerIR/CompileTimePropertiesPass/kernel-attributes/fpga-cluster.ll +++ /dev/null @@ -1,33 +0,0 @@ -; Check conversion of sycl-fpga-cluster attribute -; RUN: opt -passes="compile-time-properties" %s -S -o - | FileCheck %s --check-prefix CHECK-IR - -; CHECK-IR-DAG: @stallFree() #0 {{.*}}!stall_free [[MD_TRUE:![0-9]+]] { -; Function Attrs: convergent norecurse -define weak_odr dso_local spir_kernel void @stallFree() #0 { -entry: - ret void -} - -; CHECK-IR-DAG: @stallEnable() #1 {{.*}}!stall_enable [[MD_TRUE:![0-9]+]] { -; Function Attrs: convergent norecurse -define weak_odr dso_local spir_kernel void @stallEnable() #1 { -entry: - ret void -} - -attributes #0 = { convergent norecurse "frame-pointer"="all" "sycl-fpga-cluster"="0" } -attributes #1 = { convergent norecurse "frame-pointer"="all" "sycl-fpga-cluster"="1" } - -!opencl.spir.version = !{!0, !0, !0, !0, !0, !0, !0, !0, !0, !0, !0} -!spirv.Source = !{!1, !1, !1, !1, !1, !1, !1, !1, !1, !1, !1} -!llvm.ident = !{!2, !2, !2, !2, !2, !2, !2, !2, !2, !2, !2} -!llvm.module.flags = !{!3, !4} - -!0 = !{i32 1, i32 2} -!1 = !{i32 4, i32 100000} -!2 = !{!"clang version 13.0.0 (https://github.com/intel/llvm)"} -!3 = !{i32 1, !"wchar_size", i32 4} -!4 = !{i32 7, !"frame-pointer", i32 2} - -; Confirm the decorations for the functions -; CHECK-IR-DAG: [[MD_TRUE]] = !{i32 1} diff --git a/sycl/include/CL/__spirv/spirv_ops.hpp b/sycl/include/CL/__spirv/spirv_ops.hpp index f4504a72b4d36..695db502dd818 100644 --- a/sycl/include/CL/__spirv/spirv_ops.hpp +++ b/sycl/include/CL/__spirv/spirv_ops.hpp @@ -1300,25 +1300,6 @@ extern __DPCPP_SYCL_EXTERNAL std::enable_if_t && std::is_unsigned_v, to> __spirv_ConvertPtrToU(from val) noexcept; -template -extern __DPCPP_SYCL_EXTERNAL __spv::__spirv_TaskSequenceINTEL * -__spirv_TaskSequenceCreateINTEL(RetT (*f)(ArgsT...), int Pipelined = -1, - int ClusterMode = -1, - unsigned int ResponseCapacity = 0, - unsigned int InvocationCapacity = 0) noexcept; - -template -extern __DPCPP_SYCL_EXTERNAL void -__spirv_TaskSequenceAsyncINTEL(__spv::__spirv_TaskSequenceINTEL *TaskSequence, - ArgsT... Args) noexcept; - -template -extern __DPCPP_SYCL_EXTERNAL RetT __spirv_TaskSequenceGetINTEL( - __spv::__spirv_TaskSequenceINTEL *TaskSequence) noexcept; - -extern __DPCPP_SYCL_EXTERNAL void __spirv_TaskSequenceReleaseINTEL( - __spv::__spirv_TaskSequenceINTEL *TaskSequence) noexcept; - #else // if !__SYCL_DEVICE_ONLY__ template diff --git a/sycl/include/CL/__spirv/spirv_types.hpp b/sycl/include/CL/__spirv/spirv_types.hpp index 013c2e1acc564..3246e41f41190 100644 --- a/sycl/include/CL/__spirv/spirv_types.hpp +++ b/sycl/include/CL/__spirv/spirv_types.hpp @@ -123,8 +123,6 @@ template struct __spirv_JointMatrixINTEL; -struct __spirv_TaskSequenceINTEL; - } // namespace __spv #ifdef __SYCL_DEVICE_ONLY__ diff --git a/sycl/include/sycl/device_aspect_macros.hpp b/sycl/include/sycl/device_aspect_macros.hpp index 55ed162863079..341d0ca79e844 100644 --- a/sycl/include/sycl/device_aspect_macros.hpp +++ b/sycl/include/sycl/device_aspect_macros.hpp @@ -313,76 +313,71 @@ #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_graph__ 0 #endif -#ifndef __SYCL_ALL_DEVICES_HAVE_ext_intel_fpga_task_sequence__ -// __SYCL_ASPECT(ext_intel_fpga_task_sequence, 62) -#define __SYCL_ALL_DEVICES_HAVE_ext_intel_fpga_task_sequence__ 0 -#endif - #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_limited_graph__ -// __SYCL_ASPECT(ext_oneapi_limited_graph, 63) +// __SYCL_ASPECT(ext_oneapi_limited_graph, 62) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_limited_graph__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_private_alloca__ -// __SYCL_ASPECT(ext_oneapi_private_alloca, 64) +// __SYCL_ASPECT(ext_oneapi_private_alloca, 63) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_private_alloca__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_cubemap__ -// __SYCL_ASPECT(ext_oneapi_cubemap, 65) +// __SYCL_ASPECT(ext_oneapi_cubemap, 64) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_cubemap__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_cubemap_seamless_filtering__ -// __SYCL_ASPECT(ext_oneapi_cubemap_seamless_filtering, 66) +// __SYCL_ASPECT(ext_oneapi_cubemap_seamless_filtering, 65) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_cubemap_seamless_filtering__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d_usm__ -//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d_usm, 67) +//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d_usm, 66) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d_usm__ \ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d__ -//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d, 68) +//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d, 67) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d_usm__ -//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d_usm, 69) +//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d_usm, 68) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d_usm__ \ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d__ -//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d, 70) +//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d, 69) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d_usm__ -//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d_usm, 71) +//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d_usm, 70) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d_usm__ \ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d__ -//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d, 72) +//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d, 71) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_queue_profiling_tag__ -// __SYCL_ASPECT(ext_oneapi_queue_profiling_tag, 73) +// __SYCL_ASPECT(ext_oneapi_queue_profiling_tag, 72) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_queue_profiling_tag__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_virtual_mem__ -// __SYCL_ASPECT(ext_oneapi_virtual_mem, 74) +// __SYCL_ASPECT(ext_oneapi_virtual_mem, 73) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_virtual_mem__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_cuda_cluster_group__ -// __SYCL_ASPECT(ext_oneapi_cuda_cluster_group, 75) +// __SYCL_ASPECT(ext_oneapi_cuda_cluster_group, 74) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_cuda_cluster_group__ 0 #endif @@ -691,11 +686,6 @@ #define __SYCL_ANY_DEVICE_HAS_ext_oneapi_graph__ 0 #endif -#ifndef __SYCL_ANY_DEVICE_HAS_ext_intel_fpga_task_sequence__ -// __SYCL_ASPECT(ext_intel_fpga_task_sequence__, 62) -#define __SYCL_ANY_DEVICE_HAS_ext_intel_fpga_task_sequence__ 0 -#endif - #ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_limited_graph__ // __SYCL_ASPECT(ext_oneapi_limited_graph, 63) #define __SYCL_ANY_DEVICE_HAS_ext_oneapi_limited_graph__ 0 diff --git a/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp b/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp index 957de80500a5e..7628fb40bf4ca 100644 --- a/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp +++ b/sycl/include/sycl/ext/intel/experimental/fpga_kernel_properties.hpp @@ -1,5 +1,5 @@ -//===--------------------- fpga_kernel_properties.hpp ---------------------===// -// SYCL properties associated with FPGA kernel properties +//==----- fpga_kernel_properties.hpp - SYCL properties associated with FPGA +// kernel properties ---==// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -12,31 +12,22 @@ #include #include -#include // for uint16_t -#include // for true_type - namespace sycl { inline namespace _V1 { namespace ext::intel::experimental { template class fpga_kernel_attribute; -template class task_sequence; -enum class streaming_interface_options_enum : std::uint16_t { +enum class streaming_interface_options_enum : uint16_t { accept_downstream_stall, remove_downstream_stall }; -enum class register_map_interface_options_enum : std::uint16_t { +enum class register_map_interface_options_enum : uint16_t { do_not_wait_for_done_write, wait_for_done_write, }; -enum class fpga_cluster_options_enum : std::uint16_t { - stall_free, - stall_enable -}; - struct streaming_interface_key : oneapi::experimental::detail::compile_time_property_key< oneapi::experimental::detail::PropKind::StreamingInterface> { @@ -63,15 +54,6 @@ struct pipelined_key : oneapi::experimental::detail::compile_time_property_key< std::integral_constant>; }; -struct fpga_cluster_key - : oneapi::experimental::detail::compile_time_property_key< - oneapi::experimental::detail::PropKind::FPGACluster> { - template - using value_t = ext::oneapi::experimental::property_value< - fpga_cluster_key, - std::integral_constant>; -}; - template inline constexpr streaming_interface_key::value_t