[all-commits] [llvm/llvm-project] 6b8681: [SYCL] Always set NoUnwind attribute for SYCL.
Harald van Dijk via All-commits
all-commits at lists.llvm.org
Wed Mar 29 18:19:34 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6b868139458d258c1ed4c0279e8f4374556c1c1e
https://github.com/llvm/llvm-project/commit/6b868139458d258c1ed4c0279e8f4374556c1c1e
Author: Harald van Dijk <harald at gigawatt.nl>
Date: 2023-03-30 (Thu, 30 Mar 2023)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
R clang/test/CodeGenSYCL/convergent.cpp
A clang/test/CodeGenSYCL/function-attrs.cpp
Log Message:
-----------
[SYCL] Always set NoUnwind attribute for SYCL.
Like CUDA and OpenCL, the SYCL specification says that throwing and
catching exceptions in device functions is not supported, so this change
extends the logic for adding the NoUnwind attribute to SYCL.
The existing convergent.cpp test, which tests that the convergent
attribute is added to functions by default, is renamed and reused to
test that the nounwind attribute is added by default. This test now has
-fexceptions added to it, which the driver adds by default as well.
The obvious question here is why not simply change the driver to remove
-fexceptions. This change follows the direction given by the TODO
comment because removing -fexceptions would also disable the
__EXCEPTIONS macro, which should reflect whether exceptions are enabled
on the host, rather than on the device, to avoid conflicts in types
shared between host and device.
Reviewed By: bader
Differential Revision: https://reviews.llvm.org/D147097
More information about the All-commits
mailing list