Skip to content

Commit 1e43812

Browse files
committed
llvm-reduce: Fix losing callsite attributes in operand-to-args
1 parent 91d3247 commit 1e43812

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
; RUN: llvm-reduce %s -o %t --abort-on-invalid-reduction --delta-passes=operands-to-args --test FileCheck --test-arg %s --test-arg --check-prefix=INTERESTING --test-arg --input-file
2+
; RUN: FileCheck %s --input-file %t --check-prefix=REDUCED
3+
4+
@a = dso_local global i8 0, align 1
5+
@b = dso_local global i16 0, align 2
6+
7+
8+
declare ptr @callee(ptr %a, i16)
9+
10+
; INTERESTING-LABEL: define ptr @caller(
11+
; INTERESTING: sext
12+
; INTERESTING: icmp
13+
14+
; REDUCED-LABEL: define ptr @caller(ptr %some.ptr, ptr %a, i8 %ld0, ptr %b, i16 %ld1, i32 %conv, i32 %conv1, i1 %cmp, i16 %conv2, ptr %callee.ret) #0 {
15+
16+
; REDUCED: %callee.ret8 = call align 8 ptr @callee(ptr align 8 "some-attr" %some.ptr, i16 signext %conv2) #1
17+
18+
define ptr @caller(ptr %some.ptr) nounwind {
19+
entry:
20+
%ld0 = load i8, ptr @a, align 1
21+
%conv = zext i8 %ld0 to i32
22+
%ld1 = load i16, ptr @b, align 2
23+
%conv1 = sext i16 %ld1 to i32
24+
%cmp = icmp sge i32 %conv, %conv1
25+
%conv2 = sext i1 %cmp to i16
26+
%callee.ret = call align 8 ptr @callee(ptr align 8 "some-attr" %some.ptr, i16 signext %conv2) nocallback
27+
ret ptr %callee.ret
28+
}
29+
30+
; REDUCED: attributes #0 = { nounwind }
31+
; REDUCED: attributes #1 = { nocallback }

Diff for: llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ static void replaceFunctionCalls(Function *OldF, Function *NewF) {
105105
NewCI = CallInst::Create(NewF, Args, OperandBundles, CI->getName());
106106
}
107107
NewCI->setCallingConv(NewF->getCallingConv());
108+
NewCI->setAttributes(CI->getAttributes());
108109

109110
// Do the replacement for this use.
110111
if (!CI->use_empty())

0 commit comments

Comments
 (0)