Skip to content

Commit 1985e9b

Browse files
committed
[TRE] Add another test for OptRemark.
This shows we emit a remark for tail recursion -> loop. llvm-svn: 308525
1 parent 4b8c8ea commit 1985e9b

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
; RUN: opt %s -tailcallelim -pass-remarks=tailcallelim -o /dev/null 2>&1 | FileCheck %s
2+
; RUN: opt %s -o /dev/null -passes='require<opt-remark-emit>,tailcallelim' -pass-remarks=tailcallelim 2>&1 | FileCheck %s
3+
4+
; CHECK: /home/davide/pat.c:2:20: marked as tail call candidate
5+
; CHECK: /home/davide/pat.c:2:20: transforming tail recursion into loop
6+
define i32 @fib(i32 %n) nounwind ssp {
7+
entry:
8+
%cmp = icmp slt i32 %n, 2
9+
br i1 %cmp, label %if.then, label %if.end
10+
11+
if.then: ; preds = %entry
12+
br label %return
13+
14+
if.end: ; preds = %entry
15+
%sub = add nsw i32 %n, -2
16+
%call = call i32 @fib(i32 %sub)
17+
%sub3 = add nsw i32 %n, -1
18+
%call4 = call i32 @fib(i32 %sub3), !dbg !8
19+
%add = add nsw i32 %call, %call4
20+
br label %return
21+
22+
return: ; preds = %if.end, %if.then
23+
%retval.0 = phi i32 [ 1, %if.then ], [ %add, %if.end ]
24+
ret i32 %retval.0
25+
}
26+
27+
!llvm.dbg.cu = !{!0}
28+
!llvm.module.flags = !{!3, !4}
29+
!llvm.ident = !{!5}
30+
31+
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.9.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: NoDebug, enums: !2)
32+
!1 = !DIFile(filename: "/home/davide/pat.c", directory: "/tmp")
33+
!2 = !{}
34+
!3 = !{i32 2, !"Debug Info Version", i32 3}
35+
!4 = !{i32 1, !"PIC Level", i32 2}
36+
!5 = !{!"clang version 3.9.0 "}
37+
!6 = distinct !DISubprogram(name: "success", scope: !1, file: !1, line: 1, type: !7, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2)
38+
!7 = !DISubroutineType(types: !2)
39+
!8 = !DILocation(line: 2, column: 20, scope: !6)

0 commit comments

Comments
 (0)