Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/Attributor/allow_list.ll
Show All 22 Lines | |||||
; | ; | ||||
; CHECK_DISABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ; CHECK_DISABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ||||
; CHECK_DISABLED_FUNCTION-LABEL: define {{[^@]+}}@range_test | ; CHECK_DISABLED_FUNCTION-LABEL: define {{[^@]+}}@range_test | ||||
; CHECK_DISABLED_FUNCTION-SAME: (i32 [[A:%.*]]) #[[ATTR0:[0-9]+]] { | ; CHECK_DISABLED_FUNCTION-SAME: (i32 [[A:%.*]]) #[[ATTR0:[0-9]+]] { | ||||
; CHECK_DISABLED_FUNCTION-NEXT: [[TMP1:%.*]] = icmp sgt i32 [[A]], 100 | ; CHECK_DISABLED_FUNCTION-NEXT: [[TMP1:%.*]] = icmp sgt i32 [[A]], 100 | ||||
; CHECK_DISABLED_FUNCTION-NEXT: [[TMP2:%.*]] = zext i1 [[TMP1]] to i32 | ; CHECK_DISABLED_FUNCTION-NEXT: [[TMP2:%.*]] = zext i1 [[TMP1]] to i32 | ||||
; CHECK_DISABLED_FUNCTION-NEXT: ret i32 [[TMP2]] | ; CHECK_DISABLED_FUNCTION-NEXT: ret i32 [[TMP2]] | ||||
; | ; | ||||
; CHECK_ENABLED_FUNCTION: Function Attrs: noinline nounwind readnone uwtable | |||||
; CHECK_ENABLED_FUNCTION-LABEL: define {{[^@]+}}@range_test | |||||
; CHECK_ENABLED_FUNCTION-SAME: () #[[ATTR0:[0-9]+]] { | |||||
; CHECK_ENABLED_FUNCTION-NEXT: ret i32 1 | |||||
; | |||||
%1 = icmp sgt i32 %a, 100 | %1 = icmp sgt i32 %a, 100 | ||||
%2 = zext i1 %1 to i32 | %2 = zext i1 %1 to i32 | ||||
ret i32 %2 | ret i32 %2 | ||||
} | } | ||||
; Function Attrs: nounwind uwtable | ; Function Attrs: nounwind uwtable | ||||
define i32 @range_use1() #0 { | define i32 @range_use1() #0 { | ||||
; CHECK_DISABLED: Function Attrs: noinline nounwind uwtable | ; CHECK_DISABLED: Function Attrs: noinline nounwind uwtable | ||||
Show All 10 Lines | |||||
; CHECK_DISABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ; CHECK_DISABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ||||
; CHECK_DISABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use1 | ; CHECK_DISABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use1 | ||||
; CHECK_DISABLED_FUNCTION-SAME: () #[[ATTR0]] { | ; CHECK_DISABLED_FUNCTION-SAME: () #[[ATTR0]] { | ||||
; CHECK_DISABLED_FUNCTION-NEXT: [[TMP1:%.*]] = call i32 @range_test(i32 123) | ; CHECK_DISABLED_FUNCTION-NEXT: [[TMP1:%.*]] = call i32 @range_test(i32 123) | ||||
; CHECK_DISABLED_FUNCTION-NEXT: ret i32 [[TMP1]] | ; CHECK_DISABLED_FUNCTION-NEXT: ret i32 [[TMP1]] | ||||
; | ; | ||||
; CHECK_ENABLED_FUNCTION: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn | ; CHECK_ENABLED_FUNCTION: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn | ||||
; CHECK_ENABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use1 | ; CHECK_ENABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use1 | ||||
; CHECK_ENABLED_FUNCTION-SAME: () #[[ATTR1:[0-9]+]] { | ; CHECK_ENABLED_FUNCTION-SAME: () #[[ATTR0:[0-9]+]] { | ||||
; CHECK_ENABLED_FUNCTION-NEXT: ret i32 1 | ; CHECK_ENABLED_FUNCTION-NEXT: ret i32 1 | ||||
; | ; | ||||
%1 = call i32 @range_test(i32 123) | %1 = call i32 @range_test(i32 123) | ||||
ret i32 %1 | ret i32 %1 | ||||
} | } | ||||
; Function Attrs: nounwind uwtable | ; Function Attrs: nounwind uwtable | ||||
define i32 @range_use2() #0 { | define i32 @range_use2() #0 { | ||||
Show All 11 Lines | |||||
; CHECK_DISABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ; CHECK_DISABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ||||
; CHECK_DISABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use2 | ; CHECK_DISABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use2 | ||||
; CHECK_DISABLED_FUNCTION-SAME: () #[[ATTR0]] { | ; CHECK_DISABLED_FUNCTION-SAME: () #[[ATTR0]] { | ||||
; CHECK_DISABLED_FUNCTION-NEXT: [[TMP1:%.*]] = call i32 @range_test(i32 123) | ; CHECK_DISABLED_FUNCTION-NEXT: [[TMP1:%.*]] = call i32 @range_test(i32 123) | ||||
; CHECK_DISABLED_FUNCTION-NEXT: ret i32 [[TMP1]] | ; CHECK_DISABLED_FUNCTION-NEXT: ret i32 [[TMP1]] | ||||
; | ; | ||||
; CHECK_ENABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ; CHECK_ENABLED_FUNCTION: Function Attrs: noinline nounwind uwtable | ||||
; CHECK_ENABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use2 | ; CHECK_ENABLED_FUNCTION-LABEL: define {{[^@]+}}@range_use2 | ||||
; CHECK_ENABLED_FUNCTION-SAME: () #[[ATTR2:[0-9]+]] { | ; CHECK_ENABLED_FUNCTION-SAME: () #[[ATTR1:[0-9]+]] { | ||||
; CHECK_ENABLED_FUNCTION-NEXT: [[TMP1:%.*]] = call i32 @range_test() | ; CHECK_ENABLED_FUNCTION-NEXT: ret i32 1 | ||||
; CHECK_ENABLED_FUNCTION-NEXT: ret i32 [[TMP1]] | |||||
; | ; | ||||
%1 = call i32 @range_test(i32 123) | %1 = call i32 @range_test(i32 123) | ||||
ret i32 %1 | ret i32 %1 | ||||
} | } | ||||
attributes #0 = { nounwind uwtable noinline } | attributes #0 = { nounwind uwtable noinline } | ||||
;. | ;. | ||||
; CHECK_DISABLED: attributes #[[ATTR0]] = { noinline nounwind uwtable } | ; CHECK_DISABLED: attributes #[[ATTR0]] = { noinline nounwind uwtable } | ||||
;. | ;. | ||||
; CHECK_ENABLED: attributes #[[ATTR0]] = { noinline nounwind uwtable } | ; CHECK_ENABLED: attributes #[[ATTR0]] = { noinline nounwind uwtable } | ||||
;. | ;. | ||||
; CHECK_DISABLED_FUNCTION: attributes #[[ATTR0]] = { noinline nounwind uwtable } | ; CHECK_DISABLED_FUNCTION: attributes #[[ATTR0]] = { noinline nounwind uwtable } | ||||
;. | ;. | ||||
; CHECK_ENABLED_FUNCTION: attributes #[[ATTR0]] = { noinline nounwind readnone uwtable } | ; CHECK_ENABLED_FUNCTION: attributes #[[ATTR0]] = { nofree noinline nosync nounwind readnone uwtable willreturn } | ||||
; CHECK_ENABLED_FUNCTION: attributes #[[ATTR1]] = { nofree noinline nosync nounwind readnone uwtable willreturn } | ; CHECK_ENABLED_FUNCTION: attributes #[[ATTR1]] = { noinline nounwind uwtable } | ||||
; CHECK_ENABLED_FUNCTION: attributes #[[ATTR2]] = { noinline nounwind uwtable } | |||||
;. | ;. |