Skip to content

Commit 5671ea9

Browse files
committed
Remove the mustprogress attributes on functions.
Whether a function make progress is determined exclusively by loops metadata.
1 parent a89ed30 commit 5671ea9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+148
-221
lines changed

clang/lib/CodeGen/CGStmt.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -942,13 +942,8 @@ bool CodeGenFunction::checkIfLoopMustProgress(const Expr *ControllingExpression,
942942
// following:
943943
// [...]
944944
// - continue execution of a trivial infinite loop ([stmt.iter.general]).
945-
if (getLangOpts().CPlusPlus11) {
946-
if (IsTrivialCXXLoop && IsTrue) {
947-
CurFn->removeFnAttr(llvm::Attribute::MustProgress);
948-
return false;
949-
}
950-
return true;
951-
}
945+
if (getLangOpts().CPlusPlus11)
946+
return !(IsTrivialCXXLoop && IsTrue);
952947

953948
return false;
954949
}

clang/lib/CodeGen/CodeGenFunction.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1463,12 +1463,6 @@ void CodeGenFunction::GenerateCode(GlobalDecl GD, llvm::Function *Fn,
14631463
if (Body && isa_and_nonnull<CoroutineBodyStmt>(Body))
14641464
llvm::append_range(FnArgs, FD->parameters());
14651465

1466-
// Ensure that the function adheres to the forward progress guarantee, which
1467-
// is required by certain optimizations.
1468-
// The attribute will be removed if the body contains a trivial empty loop.
1469-
if (checkIfFunctionMustProgress())
1470-
CurFn->addFnAttr(llvm::Attribute::MustProgress);
1471-
14721466
// Generate the body of the function.
14731467
PGO.assignRegionCounters(GD, CurFn);
14741468
if (isa<CXXDestructorDecl>(FD))

clang/lib/CodeGen/CodeGenFunction.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -614,24 +614,6 @@ class CodeGenFunction : public CodeGenTypeCache {
614614
// applies to. nullptr if there is no 'musttail' on the current statement.
615615
const CallExpr *MustTailCall = nullptr;
616616

617-
/// Returns true if a function must make progress, which means the
618-
/// mustprogress attribute can be added.
619-
bool checkIfFunctionMustProgress() {
620-
if (CGM.getCodeGenOpts().getFiniteLoops() ==
621-
CodeGenOptions::FiniteLoopsKind::Never)
622-
return false;
623-
624-
// C++11 and later guarantees that a thread eventually will do one of the
625-
// following (C++11 [intro.multithread]p24 and C++17 [intro.progress]p1):
626-
// - terminate,
627-
// - make a call to a library I/O function,
628-
// - perform an access through a volatile glvalue, or
629-
// - perform a synchronization operation or an atomic operation.
630-
//
631-
// Hence each function is 'mustprogress' in C++11 or later.
632-
return getLangOpts().CPlusPlus11;
633-
}
634-
635617
/// Returns true if a loop must make progress, which means the mustprogress
636618
/// attribute can be added. \p HasConstantCond indicates whether the branch
637619
/// condition is a known constant.

clang/test/CXX/special/class.dtor/p3-0x.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,4 +176,4 @@ struct TVC : VX
176176
template <typename T>
177177
TVC<T>::~TVC() {}
178178

179-
// CHECK: attributes [[ATTRGRP]] = { mustprogress noinline nounwind{{.*}} }
179+
// CHECK: attributes [[ATTRGRP]] = { noinline nounwind{{.*}} }

clang/test/CodeGen/aarch64-sme-intrinsics/aarch64-sme-attrs.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -278,18 +278,18 @@ int test_variadic_template() __arm_inout("za") {
278278
preserves_za_decl);
279279
}
280280

281-
// CHECK: attributes #[[SM_ENABLED]] = { mustprogress noinline nounwind "aarch64_pstate_sm_enabled" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
281+
// CHECK: attributes #[[SM_ENABLED]] = { noinline nounwind "aarch64_pstate_sm_enabled" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
282282
// CHECK: attributes #[[NORMAL_DECL]] = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
283283
// CHECK: attributes #[[SM_ENABLED_DECL]] = { "aarch64_pstate_sm_enabled" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
284-
// CHECK: attributes #[[SM_COMPATIBLE]] = { mustprogress noinline nounwind "aarch64_pstate_sm_compatible" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
284+
// CHECK: attributes #[[SM_COMPATIBLE]] = { noinline nounwind "aarch64_pstate_sm_compatible" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
285285
// CHECK: attributes #[[SM_COMPATIBLE_DECL]] = { "aarch64_pstate_sm_compatible" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
286-
// CHECK: attributes #[[SM_BODY]] = { mustprogress noinline nounwind "aarch64_pstate_sm_body" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
287-
// CHECK: attributes #[[ZA_SHARED]] = { mustprogress noinline nounwind "aarch64_inout_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
286+
// CHECK: attributes #[[SM_BODY]] = { noinline nounwind "aarch64_pstate_sm_body" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
287+
// CHECK: attributes #[[ZA_SHARED]] = { noinline nounwind "aarch64_inout_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
288288
// CHECK: attributes #[[ZA_SHARED_DECL]] = { "aarch64_inout_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
289-
// CHECK: attributes #[[ZA_PRESERVED]] = { mustprogress noinline nounwind "aarch64_preserves_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
289+
// CHECK: attributes #[[ZA_PRESERVED]] = { noinline nounwind "aarch64_preserves_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
290290
// CHECK: attributes #[[ZA_PRESERVED_DECL]] = { "aarch64_preserves_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
291-
// CHECK: attributes #[[ZA_NEW]] = { mustprogress noinline nounwind "aarch64_new_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
292-
// CHECK: attributes #[[NORMAL_DEF]] = { mustprogress noinline nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
291+
// CHECK: attributes #[[ZA_NEW]] = { noinline nounwind "aarch64_new_za" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
292+
// CHECK: attributes #[[NORMAL_DEF]] = { noinline nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+bf16,+sme" }
293293
// CHECK: attributes #[[SM_ENABLED_CALL]] = { "aarch64_pstate_sm_enabled" }
294294
// CHECK: attributes #[[SM_COMPATIBLE_CALL]] = { "aarch64_pstate_sm_compatible" }
295295
// CHECK: attributes #[[SM_BODY_CALL]] = { "aarch64_pstate_sm_body" }

clang/test/CodeGen/address-safety-attr-flavors.cpp

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -25,60 +25,60 @@
2525
// RUN: FileCheck -check-prefix=CHECK-KHWASAN %s
2626

2727
int HasSanitizeAddress() { return 1; }
28-
// CHECK-NOASAN: {{Function Attrs: mustprogress noinline nounwind$}}
29-
// CHECK-ASAN: Function Attrs: mustprogress noinline nounwind sanitize_address
30-
// CHECK-KASAN: Function Attrs: mustprogress noinline nounwind sanitize_address
31-
// CHECK-HWASAN: Function Attrs: mustprogress noinline nounwind sanitize_hwaddress
32-
// CHECK-KHWASAN: Function Attrs: mustprogress noinline nounwind sanitize_hwaddress
28+
// CHECK-NOASAN: {{Function Attrs: noinline nounwind$}}
29+
// CHECK-ASAN: Function Attrs: noinline nounwind sanitize_address
30+
// CHECK-KASAN: Function Attrs: noinline nounwind sanitize_address
31+
// CHECK-HWASAN: Function Attrs: noinline nounwind sanitize_hwaddress
32+
// CHECK-KHWASAN: Function Attrs: noinline nounwind sanitize_hwaddress
3333

3434
__attribute__((no_sanitize("address"))) int NoSanitizeQuoteAddress() {
3535
return 0;
3636
}
37-
// CHECK-NOASAN: {{Function Attrs: mustprogress noinline nounwind$}}
38-
// CHECK-ASAN: {{Function Attrs: mustprogress noinline nounwind$}}
39-
// CHECK-KASAN: {{Function Attrs: mustprogress noinline nounwind$}}
40-
// CHECK-HWASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_hwaddress$}}
41-
// CHECK-KHWASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_hwaddress$}}
37+
// CHECK-NOASAN: {{Function Attrs: noinline nounwind$}}
38+
// CHECK-ASAN: {{Function Attrs: noinline nounwind$}}
39+
// CHECK-KASAN: {{Function Attrs: noinline nounwind$}}
40+
// CHECK-HWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}}
41+
// CHECK-KHWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}}
4242

4343
__attribute__((no_sanitize_address)) int NoSanitizeAddress() { return 0; }
44-
// CHECK-NOASAN: {{Function Attrs: mustprogress noinline nounwind$}}
45-
// CHECK-ASAN: {{Function Attrs: mustprogress noinline nounwind$}}
46-
// CHECK-KASAN: {{Function Attrs: mustprogress noinline nounwind$}}
47-
// CHECK-HWASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_hwaddress$}}
48-
// CHECK-KHWASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_hwaddress$}}
44+
// CHECK-NOASAN: {{Function Attrs: noinline nounwind$}}
45+
// CHECK-ASAN: {{Function Attrs: noinline nounwind$}}
46+
// CHECK-KASAN: {{Function Attrs: noinline nounwind$}}
47+
// CHECK-HWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}}
48+
// CHECK-KHWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}}
4949

5050
__attribute__((no_sanitize("kernel-address"))) int NoSanitizeKernelAddress() {
5151
return 0;
5252
}
53-
// CHECK-NOASAN: {{Function Attrs: mustprogress noinline nounwind$}}
54-
// CHECK-ASAN: {{Function Attrs: mustprogress noinline nounwind$}}
55-
// CHECK-KASAN: {{Function Attrs: mustprogress noinline nounwind$}}
56-
// CHECK-HWASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_hwaddress$}}
57-
// CHECK-KHWASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_hwaddress$}}
53+
// CHECK-NOASAN: {{Function Attrs: noinline nounwind$}}
54+
// CHECK-ASAN: {{Function Attrs: noinline nounwind$}}
55+
// CHECK-KASAN: {{Function Attrs: noinline nounwind$}}
56+
// CHECK-HWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}}
57+
// CHECK-KHWASAN: {{Function Attrs: noinline nounwind sanitize_hwaddress$}}
5858

5959
__attribute__((no_sanitize("hwaddress"))) int NoSanitizeHWAddress() {
6060
return 0;
6161
}
62-
// CHECK-NOASAN: {{Function Attrs: mustprogress noinline nounwind$}}
63-
// CHECK-ASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_address$}}
64-
// CHECK-KASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_address$}}
65-
// CHECK-HWASAN: {{Function Attrs: mustprogress noinline nounwind$}}
66-
// CHECK-KHWASAN: {{Function Attrs: mustprogress noinline nounwind$}}
62+
// CHECK-NOASAN: {{Function Attrs: noinline nounwind$}}
63+
// CHECK-ASAN: {{Function Attrs: noinline nounwind sanitize_address$}}
64+
// CHECK-KASAN: {{Function Attrs: noinline nounwind sanitize_address$}}
65+
// CHECK-HWASAN: {{Function Attrs: noinline nounwind$}}
66+
// CHECK-KHWASAN: {{Function Attrs: noinline nounwind$}}
6767

6868
__attribute__((no_sanitize("kernel-hwaddress"))) int NoSanitizeKernelHWAddress() {
6969
return 0;
7070
}
71-
// CHECK-NOASAN: {{Function Attrs: mustprogress noinline nounwind$}}
72-
// CHECK-ASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_address$}}
73-
// CHECK-KASAN: {{Function Attrs: mustprogress noinline nounwind sanitize_address$}}
74-
// CHECK-HWASAN: {{Function Attrs: mustprogress noinline nounwind$}}
75-
// CHECK-KHWASAN: {{Function Attrs: mustprogress noinline nounwind$}}
71+
// CHECK-NOASAN: {{Function Attrs: noinline nounwind$}}
72+
// CHECK-ASAN: {{Function Attrs: noinline nounwind sanitize_address$}}
73+
// CHECK-KASAN: {{Function Attrs: noinline nounwind sanitize_address$}}
74+
// CHECK-HWASAN: {{Function Attrs: noinline nounwind$}}
75+
// CHECK-KHWASAN: {{Function Attrs: noinline nounwind$}}
7676

7777
__attribute__((disable_sanitizer_instrumentation)) int DisableSanitizerInstrumentation() {
7878
return 0;
7979
}
80-
// CHECK-NOASAN: {{Function Attrs: disable_sanitizer_instrumentation mustprogress noinline nounwind$}}
81-
// CHECK-ASAN: {{Function Attrs: disable_sanitizer_instrumentation mustprogress noinline nounwind$}}
82-
// CHECK-KASAN: {{Function Attrs: disable_sanitizer_instrumentation mustprogress noinline nounwind$}}
83-
// CHECK-HWASAN: {{Function Attrs: disable_sanitizer_instrumentation mustprogress noinline nounwind$}}
84-
// CHECK-KHWASAN: {{Function Attrs: disable_sanitizer_instrumentation mustprogress noinline nounwind$}}
80+
// CHECK-NOASAN: {{Function Attrs: disable_sanitizer_instrumentation noinline nounwind$}}
81+
// CHECK-ASAN: {{Function Attrs: disable_sanitizer_instrumentation noinline nounwind$}}
82+
// CHECK-KASAN: {{Function Attrs: disable_sanitizer_instrumentation noinline nounwind$}}
83+
// CHECK-HWASAN: {{Function Attrs: disable_sanitizer_instrumentation noinline nounwind$}}
84+
// CHECK-KHWASAN: {{Function Attrs: disable_sanitizer_instrumentation noinline nounwind$}}

clang/test/CodeGen/address-safety-attr.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ int global2 = *(int*)((char*)&global1+1);
148148
// BLFILE: attributes [[NOATTR]] = { noinline nounwind{{.*}} }
149149

150150
// BLFUNC: attributes [[WITH]] = { noinline nounwind sanitize_address{{.*}} }
151-
// BLFUNC: attributes [[NOATTR]] = { mustprogress noinline nounwind{{.*}} }
151+
// BLFUNC: attributes [[NOATTR]] = { noinline nounwind{{.*}} }
152152

153153
// ASAN: attributes [[WITH]] = { noinline nounwind sanitize_address{{.*}} }
154-
// ASAN: attributes [[NOATTR]] = { mustprogress noinline nounwind{{.*}} }
154+
// ASAN: attributes [[NOATTR]] = { noinline nounwind{{.*}} }

clang/test/CodeGen/debug-names-compound-type-units.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ target triple = "x86_64-unknown-linux-gnu"
2929
%struct.Foo2 = type { i8, %struct.Foo }
3030
%struct.Foo = type { i8 }
3131

32-
; Function Attrs: mustprogress noinline nounwind optnone uwtable
32+
; Function Attrs: noinline nounwind optnone uwtable
3333
define dso_local void @_Z7fooFuncv() #0 !dbg !10 {
3434
entry:
3535
%global2 = alloca %struct.Foo2, align 1
@@ -40,7 +40,7 @@ entry:
4040
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
4141
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
4242

43-
attributes #0 = { mustprogress noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
43+
attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
4444
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
4545

4646
!llvm.dbg.cu = !{!0}

clang/test/CodeGen/fp-floatcontrol-stack.cpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
#define FUN(n) \
77
(float z) { return n * z + n; }
88

9-
// CHECK-DDEFAULT: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
10-
// CHECK-DEBSTRICT: Function Attrs: mustprogress noinline nounwind optnone strictfp{{$$}}
11-
// CHECK-FAST: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
12-
// CHECK-NOHONOR: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
9+
// CHECK-DDEFAULT: Function Attrs: noinline nounwind optnone{{$$}}
10+
// CHECK-DEBSTRICT: Function Attrs: noinline nounwind optnone strictfp{{$$}}
11+
// CHECK-FAST: Function Attrs: noinline nounwind optnone{{$$}}
12+
// CHECK-NOHONOR: Function Attrs: noinline nounwind optnone{{$$}}
1313
float fun_default FUN(1)
1414
//CHECK-LABEL: define {{.*}} @_Z11fun_defaultf{{.*}}
1515
#if DEFAULT
@@ -32,10 +32,10 @@ float fun_default FUN(1)
3232
// Rule: precise must be enabled
3333
#pragma float_control(except, on)
3434
#endif
35-
// CHECK-FAST: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
36-
// CHECK-DDEFAULT: Function Attrs: mustprogress noinline nounwind optnone strictfp{{$$}}
37-
// CHECK-DEBSTRICT: Function Attrs: mustprogress noinline nounwind optnone strictfp{{$$}}
38-
// CHECK-NOHONOR: Function Attrs: mustprogress noinline nounwind optnone strictfp{{$$}}
35+
// CHECK-FAST: Function Attrs: noinline nounwind optnone{{$$}}
36+
// CHECK-DDEFAULT: Function Attrs: noinline nounwind optnone strictfp{{$$}}
37+
// CHECK-DEBSTRICT: Function Attrs: noinline nounwind optnone strictfp{{$$}}
38+
// CHECK-NOHONOR: Function Attrs: noinline nounwind optnone strictfp{{$$}}
3939
float exc_on FUN(2)
4040
//CHECK-LABEL: define {{.*}} @_Z6exc_onf{{.*}}
4141
#if DEFAULT
@@ -54,10 +54,10 @@ float fun_default FUN(1)
5454
#endif
5555

5656
#pragma float_control(pop)
57-
// CHECK-DDEFAULT: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
58-
// CHECK-DEBSTRICT: Function Attrs: mustprogress noinline nounwind optnone strictfp{{$$}}
59-
// CHECK-FAST: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
60-
// CHECK-NOHONOR: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
57+
// CHECK-DDEFAULT: Function Attrs: noinline nounwind optnone{{$$}}
58+
// CHECK-DEBSTRICT: Function Attrs: noinline nounwind optnone strictfp{{$$}}
59+
// CHECK-FAST: Function Attrs: noinline nounwind optnone{{$$}}
60+
// CHECK-NOHONOR: Function Attrs: noinline nounwind optnone{{$$}}
6161
float exc_pop FUN(5)
6262
//CHECK-LABEL: define {{.*}} @_Z7exc_popf{{.*}}
6363
#if DEFAULT
@@ -223,10 +223,10 @@ float fun_default FUN(1)
223223
#pragma float_control(except, on)
224224
#endif
225225
float y();
226-
// CHECK-DDEFAULT: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
227-
// CHECK-DEBSTRICT: Function Attrs: mustprogress noinline nounwind optnone strictfp{{$$}}
228-
// CHECK-FAST: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
229-
// CHECK-NOHONOR: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
226+
// CHECK-DDEFAULT: Function Attrs: noinline nounwind optnone{{$$}}
227+
// CHECK-DEBSTRICT: Function Attrs: noinline nounwind optnone strictfp{{$$}}
228+
// CHECK-FAST: Function Attrs: noinline nounwind optnone{{$$}}
229+
// CHECK-NOHONOR: Function Attrs: noinline nounwind optnone{{$$}}
230230
class ON {
231231
// Settings for top level class initializer use program source setting.
232232
float z = 2 + y() * 7;
@@ -246,10 +246,10 @@ class ON {
246246
};
247247
ON on;
248248
#pragma float_control(except, off)
249-
// CHECK-DDEFAULT: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
250-
// CHECK-DEBSTRICT: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
251-
// CHECK-FAST: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
252-
// CHECK-NOHONOR: Function Attrs: mustprogress noinline nounwind optnone{{$$}}
249+
// CHECK-DDEFAULT: Function Attrs: noinline nounwind optnone{{$$}}
250+
// CHECK-DEBSTRICT: Function Attrs: noinline nounwind optnone{{$$}}
251+
// CHECK-FAST: Function Attrs: noinline nounwind optnone{{$$}}
252+
// CHECK-NOHONOR: Function Attrs: noinline nounwind optnone{{$$}}
253253
class OFF {
254254
float w = 2 + y() * 7;
255255
// CHECK-LABEL: define {{.*}} void @_ZN3OFFC2Ev{{.*}}

clang/test/CodeGen/sanitize-thread-attr.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,5 @@ int global2 = *(int*)((char*)&global1+1);
5858

5959
// BL: attributes [[NOATTR]] = { noinline nounwind{{.*}} }
6060

61-
// TSAN: attributes [[NOATTR]] = { mustprogress noinline nounwind{{.*}} }
61+
// TSAN: attributes [[NOATTR]] = { noinline nounwind{{.*}} }
6262
// TSAN: attributes [[WITH]] = { noinline nounwind sanitize_thread{{.*}} }

0 commit comments

Comments
 (0)