Now that the legacy PM is no longer tested, the huge matrix of test prefixes used by attributor tests is no longer needed and very confusing for the casual reader. Reduce the prefixes down to just CHECK, TUNIT and CGSCC.
38 lines
1.5 KiB
LLVM
38 lines
1.5 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes --check-globals
|
|
; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=2 -S < %s | FileCheck %s --check-prefixes=CHECK,TUNIT
|
|
; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,CGSCC
|
|
|
|
; CHECK-NOT: %X
|
|
|
|
define internal i32 @foo(i32 %X) {
|
|
; CGSCC: Function Attrs: nofree nosync nounwind readnone willreturn
|
|
; CGSCC-LABEL: define {{[^@]+}}@foo
|
|
; CGSCC-SAME: () #[[ATTR0:[0-9]+]] {
|
|
; CGSCC-NEXT: ret i32 undef
|
|
;
|
|
%Y = call i32 @foo( i32 %X ) ; <i32> [#uses=1]
|
|
%Z = add i32 %Y, 1 ; <i32> [#uses=1]
|
|
ret i32 %Z
|
|
}
|
|
|
|
define void @bar() {
|
|
; TUNIT: Function Attrs: nofree norecurse nosync nounwind readnone willreturn
|
|
; TUNIT-LABEL: define {{[^@]+}}@bar
|
|
; TUNIT-SAME: () #[[ATTR0:[0-9]+]] {
|
|
; TUNIT-NEXT: ret void
|
|
;
|
|
; CGSCC: Function Attrs: nofree nosync nounwind readnone willreturn
|
|
; CGSCC-LABEL: define {{[^@]+}}@bar
|
|
; CGSCC-SAME: () #[[ATTR0]] {
|
|
; CGSCC-NEXT: ret void
|
|
;
|
|
call i32 @foo( i32 17 ) ; <i32>:1 [#uses=0]
|
|
ret void
|
|
}
|
|
|
|
;.
|
|
; TUNIT: attributes #[[ATTR0]] = { nofree norecurse nosync nounwind readnone willreturn }
|
|
;.
|
|
; CGSCC: attributes #[[ATTR0]] = { nofree nosync nounwind readnone willreturn }
|
|
;.
|