Releases: intel/llvm
Releases · intel/llvm
DPC++ daily 2023-06-13
[CI] Enable HIP/CUDA/ESIMD plugins in nightly build (#9850) That is needed so that we could use the resulting image to test PRs that only touch SYCL End-to-End tests
DPC++ daily 2023-06-12
[SYCL] Enhance device code split call graph analysis (#8589) This patch introduces significant changes to how device code split detects functions and global variables which should be included into a cloned module. There are two main changes done to that: 1. analysis algorithm now traces uses of global variables to allow adding all globals into every split module 2. analysis algorithm now traces indirect calls, trying to define a list of all functions which are potentially called indirectly to avoid the need to disabled device code split completely in presence of indirect calls Both things are implemented through new `DependencyGraph` entity, which replaces `CallGraph` entity we used. Instead of calls, that new graph is built over _uses_ of functions and variables to understand which functions and global variables are used by which functions and global variables. The most tricky part here is indirect calls: we can't understand which exact function is being called by an indirect call. However, we can compile a list of _potentially_-called function by comparing function signatures with signature of an indirect call. On top of that, ESIMD handling is refactored by this patch: - outlined ESIMD-specific handling into a separate function - created new ESIMD-specific device code split helper New ESIMD-specific device code split helper is needed, because we should use different rules for ESIMD and non-ESIMD parts of a module when splitting it to two. For ESIMD part we want to grab all ESIMD-functions even if they were not considered as entry points in the original module. For non-ESIMD part we **don't want** to grab _any_ ESIMD-functions, even if they are referenced/used by non-ESIMD functions. Both of those special rules come from `invoke_simd` feature support: non-ESIMD kernel can indirectly reference a ESIMD function. Since those different kind of functions require different processing, we have to completely separate them before processing step. Non-ESIMD module could be incomplete as a result of such split, but it will be merged back with ESIMD module after ESIMD lowering. That merge step is required for `invoke_simd` functionality. --------- Co-authored-by: Cai, Justin <justin.cai@intel.com>
DPC++ daily 2023-06-10
[SYCL] Add LIT `sycl-intelfpga-annotated-field` (#9467) #### 1. Some FPGA-backend optimization looks for `@llvm.ptr.annotation` in the kernel entry and matches it with an argument by identifying specific IR pattern as follows (this use model is for the need of attaching a property to a kernel argument) ``` %addr_a = alloca ... store %arg_a, %addr_a ; (1) store an argument to a local address ... %0 = load %addr_a ; (2) load the argument from the local address ... %annotated_ptr = @llvm.ptr.annotation(%ptr, ...) store %0, %annotated_ptr ; (3) store the argument get from (2) into an annotated pointer, ; this store corresponds to annotated field initialization ``` This PR adds a new LIT test `sycl-intelfpga-annotated-field.cpp` targeting FPGA backend to ensure this dependency won't break. #### 2. Add lit test `sycl-intelfpga-field.cpp` to check that proper IR is generated for kernel field initialization, including 3 cases: - initialize pointer field with a global pointer - initialize a float field - initialize a BitInt field #### 3. The new lit tests also check the kernel lambda is not inlined for FPGA by checking the existence of `call @MangledNameOfCallOperator(...)` at the end of the kernel entry #### Note: the new lit tests are temporary for FPGA-backend as this use model will be replaced by [CompileTimeProperties](https://intel.github.io/llvm-docs/design/CompileTimeProperties.html).
DPC++ daily 2023-06-09
[SYCL][Test E2E] Add stype to L0 structs (#9801) device_has_aspect_atomic64_level_zero.cpp interop-level-zero-interop-task-mem-buffer.cpp level_zero_uuid.cpp were missing to set L0 stype for a properties struct, which would genereate an error in L0 validation layer when enabled with ZE_DEBUG=6. Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
DPC++ daily 2023-06-08
[SYCL][Test E2E] Fix errors in determining aspects/sg sizes (#9690) * If sycl-ls failed, the error message referenced an undefined variable * If either the aspects or sub-group sizes were unable to be determined, we were later referencing undefined set variables (`lit_config.error` doesn't exit immediately). * Error messages weren't printing stderr
DPC++ daily 2023-06-07
[CI] Generate test matrix on self-hosted runner (#9773) Github's ubuntu-* runners could take multiple hours to allocate in our organization. Switch to our self-hosted cuda runner that is sitting idle because we perform CUDA testing in AWS.
DPC++ daily 2023-06-06
sycl-nightly/20230606 [NFC] Productize clang-offload-extract: clean up code for command lin…
DPC++ daily 2023-06-05
sycl-nightly/20230605 [SYCL] Add missing SYCL 2020 image is_property_of specializations (#9…
DPC++ daily 2023-06-03
[SYCL] Rename win_proxy_loader to pi_win_proxy_loader (#9724) Co-authored-by: Dale <stewart.t.dale@intel.com>
DPC++ daily 2023-06-02
sycl-nightly/20230602 Revert "[SYCL][CI] Cancel in-progress pre_commit job when PR is updat…