mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-14 01:20:40 +00:00
[TailRecursionElimination] Skip debug intrinsics.
Summary: I think we do not need to analyze debug intrinsics here, as they should not impact codegen. This has 2 benefits: 1) slightly less work to do and 2) avoiding generating optimization remarks for converting calls to debug intrinsics to tail calls, which are not really helpful for users. Based on work by Sander de Smalen. Reviewers: davide, trentxintong, aprantl Reviewed By: aprantl Subscribers: llvm-commits, JDevlieghere Tags: #debug-info Differential Revision: https://reviews.llvm.org/D40440 llvm-svn: 319158
This commit is contained in:
parent
b3bd697e42
commit
f5e9fe4475
@ -230,7 +230,7 @@ static bool markTails(Function &F, bool &AllCallsAreTailCalls,
|
||||
Escaped = ESCAPED;
|
||||
|
||||
CallInst *CI = dyn_cast<CallInst>(&I);
|
||||
if (!CI || CI->isTailCall())
|
||||
if (!CI || CI->isTailCall() || isa<DbgInfoIntrinsic>(&I))
|
||||
continue;
|
||||
|
||||
bool IsNoTail = CI->isNoTailCall() || CI->hasOperandBundles();
|
||||
|
@ -96,8 +96,8 @@ define i32 @maxB(i32 %x, i32 %y) !dbg !34 {
|
||||
|
||||
; OPTIMIZATION_LEVEL_2: define i32 @maxB(i32 %x, i32 %y)
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: entry:
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: tail call void @llvm.dbg.value(metadata i32 %x, metadata !{{[0-9]+}}, metadata !DIExpression()), !dbg !{{[0-9]+}}
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: tail call void @llvm.dbg.value(metadata i32 %y, metadata !{{[0-9]+}}, metadata !DIExpression()), !dbg !{{[0-9]+}}
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: call void @llvm.dbg.value(metadata i32 %x, metadata !{{[0-9]+}}, metadata !DIExpression()), !dbg !{{[0-9]+}}
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: call void @llvm.dbg.value(metadata i32 %y, metadata !{{[0-9]+}}, metadata !DIExpression()), !dbg !{{[0-9]+}}
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: %0 = tail call i32 @maxA(i32 %x, i32 %y) #{{[0-9]+}}, !dbg !{{[0-9]+}}
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: ret i32 %0, !dbg !{{[0-9]+}}
|
||||
; OPTIMIZATION_LEVEL_2-NEXT: }
|
||||
|
Loading…
x
Reference in New Issue
Block a user