================ @@ -0,0 +1,29 @@ +// RUN: %clang_cc1 %s -O2 -emit-llvm -fextend-lifetimes -o - | FileCheck %s +// Check that fake use calls are emitted at the correct locations, i.e. +// at the end of lexical blocks and at the end of the function. + +extern int use(int); +int glob1; +int glob2; +float globf; + +int foo(int i) { + // CHECK: define{{.*}}foo + if (i < 4) { + int j = i * 3; + if (glob1 > 3) { + float f = globf; + // CHECK: [[SSAVAL:%[a-z0-9]*]] = load float{{.*}}globf + j = f; + glob2 = j; + // CHECK: store{{.*}}glob2 + // CHECK-NEXT: call void (...) @llvm.fake.use(float [[SSAVAL]]) + } + glob1 = j; + // CHECK: store{{.*}}glob1 + // CHECK-NEXT: call void (...) @llvm.fake.use(i32 %j. ---------------- SLTozer wrote:
AFAICT, for tests that invoke `%clang_cc1`, `-fno-discard-value-names` is the default - for value names to be discarded, the driver needs to pass `-discard-value-names` to `-cc1`. https://github.com/llvm/llvm-project/pull/110102 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits