forked from OSchip/llvm-project
1ddc51d89d
When F calls G calls H, G is nounwind, and G is inlined into F, then the
inlined call-site to H should be effectively nounwind so as not to lose
information during inlining.
If H itself is nounwind (which often happens when H is an intrinsic), we
no longer mark the callsite explicitly as nounwind. Previously, there
were cases where the inlined call-site of H differs from a pre-existing
call-site of H in F *only* in the explicitly added nounwind attribute,
thus preventing common subexpression elimination.
v2:
- just check CI->doesNotThrow
v3 (resubmit after revert at
|
||
---|---|---|
.. | ||
Inputs | ||
altivec-header.c | ||
altivec-intrin.c | ||
amdgcn-openmp-device-math-complex.c | ||
amdgcn-openmp-device-math-complex.cpp | ||
amdgcn_openmp_device_math.c | ||
arm-acle-header.c | ||
arm-cde-header.c | ||
arm-cmse-header-ns.c | ||
arm-cmse-header.c | ||
arm-fp16-header.c | ||
arm-neon-header.c | ||
arm64-apple-ios-types.cpp | ||
builtins-header.c | ||
c11.c | ||
c89.c | ||
cpuid.c | ||
cuda_with_openmp.cu | ||
cxx11.cpp | ||
float-aix.c | ||
float-darwin.c | ||
float.c | ||
float16.c | ||
hexagon-audio-headers.c | ||
hexagon-headers.c | ||
hexagon-hvx-headers.c | ||
hip-header.hip | ||
htm-header.c | ||
int64-type.c | ||
limits.cpp | ||
lit.local.cfg | ||
mm3dnow.c | ||
mm_malloc.c | ||
ms-arm64-intrin.cpp | ||
ms-intrin.cpp | ||
ms-no-wchar.cpp | ||
ms-null-ms-header-vs-stddef.cpp | ||
ms-wchar.c | ||
nvptx_device_cmath_functions.c | ||
nvptx_device_cmath_functions.cpp | ||
nvptx_device_cmath_functions_cxx17.cpp | ||
nvptx_device_math_complex.c | ||
nvptx_device_math_complex.cpp | ||
nvptx_device_math_functions.c | ||
nvptx_device_math_functions.cpp | ||
nvptx_device_math_functions_cxx17.cpp | ||
nvptx_device_math_macro.cpp | ||
nvptx_device_math_modf.cpp | ||
nvptx_device_math_sin.c | ||
nvptx_device_math_sin.cpp | ||
nvptx_device_math_sin_cos.cpp | ||
nvptx_device_math_sincos.cpp | ||
opencl-builtins.cl | ||
opencl-c-header.cl | ||
openmp_device_math_isnan.cpp | ||
pconfigintin.c | ||
pmmintrin.c | ||
ppc-intrinsics.c | ||
riscv-vector-header.c | ||
sgxintrin.c | ||
stdarg-gnuc_va_list.c | ||
stdarg.cpp | ||
stdatomic-deprecations.c | ||
stdatomic.c | ||
stdbool.c | ||
stdbool.cpp | ||
stddefneeds.cpp | ||
stdint-typeof-MINMAX.cpp | ||
stdint.c | ||
target_include_new.cpp | ||
texture_intrinsics.cu | ||
tgmath-darwin.c | ||
tgmath.c | ||
thumbv7-apple-ios-types.cpp | ||
typedef_guards.c | ||
unwind.c | ||
wasm.c | ||
wasm.cpp | ||
wchar_limits.cpp | ||
wmmintrin.c | ||
x86-header-warnings.c | ||
x86-intrinsics-headers-clean.cpp | ||
x86-intrinsics-headers.c | ||
x86_64-apple-macosx-types.cpp | ||
x86intrin-2.c | ||
x86intrin.c | ||
x86intrin.cpp | ||
xmmintrin-unsupported.c | ||
xmmintrin.c |