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..60f3c1b4d9d5b 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -10531,7 +10531,7 @@ static void getTripleBasedSPIRVTransOpts(Compilation &C, std::string DefaultExtArg = ",+SPV_EXT_shader_atomic_float_add,+SPV_EXT_shader_atomic_float_min_max" ",+SPV_KHR_no_integer_wrap_decoration,+SPV_KHR_float_controls" - ",+SPV_KHR_expect_assume,+SPV_KHR_linkonce_odr"; + ",+SPV_KHR_expect_assume,+SPV_KHR_linkonce_odr,+SPV_KHR_bit_instructions"; std::string INTELExtArg = ",+SPV_INTEL_subgroups,+SPV_INTEL_media_block_io" ",+SPV_INTEL_device_side_avc_motion_estimation" @@ -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..ffb93f9da491f 100644 --- a/sycl/include/sycl/device_aspect_macros.hpp +++ b/sycl/include/sycl/device_aspect_macros.hpp @@ -313,11 +313,6 @@ #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) #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_limited_graph__ 0 @@ -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..0db22e9407a5e 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,15 +12,11 @@ #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 { accept_downstream_stall, @@ -32,11 +28,6 @@ enum class register_map_interface_options_enum : std::uint16_t { 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