From 4af5ba17263a5103ce983f9ebccdbd9c5d9d0e33 Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Mon, 26 Oct 2020 20:23:18 -0700 Subject: [PATCH] Revert "[AlwaysInliner] Pass callee AAResults to InlineFunction()" This reverts commit 504fbec7a61cdfbb5f6e1b25cf14afe5195ccaf6. Test failure. --- llvm/lib/Transforms/IPO/AlwaysInliner.cpp | 5 +- .../test/Transforms/Inline/noalias-calls-always.ll | 79 ---------------------- 2 files changed, 2 insertions(+), 82 deletions(-) delete mode 100644 llvm/test/Transforms/Inline/noalias-calls-always.ll diff --git a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp index 2d68de7..f3b23ea 100644 --- a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp +++ b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp @@ -13,7 +13,6 @@ #include "llvm/Transforms/IPO/AlwaysInliner.h" #include "llvm/ADT/SetVector.h" -#include "llvm/Analysis/AliasAnalysis.h" #include "llvm/Analysis/AssumptionCache.h" #include "llvm/Analysis/InlineCost.h" #include "llvm/Analysis/ProfileSummaryInfo.h" @@ -74,8 +73,8 @@ PreservedAnalyses AlwaysInlinerPass::run(Module &M, &FAM.getResult(*(CB->getCaller())), &FAM.getResult(F)); - InlineResult Res = InlineFunction( - *CB, IFI, &FAM.getResult(F), InsertLifetime); + InlineResult Res = + InlineFunction(*CB, IFI, /*CalleeAAR=*/nullptr, InsertLifetime); assert(Res.isSuccess() && "unexpected failure to inline"); (void)Res; Changed = true; diff --git a/llvm/test/Transforms/Inline/noalias-calls-always.ll b/llvm/test/Transforms/Inline/noalias-calls-always.ll deleted file mode 100644 index d632c28..0000000 --- a/llvm/test/Transforms/Inline/noalias-calls-always.ll +++ /dev/null @@ -1,79 +0,0 @@ -; RUN: opt -aa-pipeline=basic-aa -passes=always-inline -enable-noalias-to-md-conversion -S < %s | FileCheck %s -target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" - -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #0 -declare void @hey() #0 - -define void @hello(i8* noalias nocapture %a, i8* noalias nocapture readonly %c, i8* nocapture %b) #1 { -entry: - %l = alloca i8, i32 512, align 1 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %b, i64 16, i1 0) - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %b, i8* align 16 %c, i64 16, i1 0) - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %c, i64 16, i1 0) - call void @hey() - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %l, i8* align 16 %c, i64 16, i1 0) - ret void -} - -define void @foo(i8* nocapture %a, i8* nocapture readonly %c, i8* nocapture %b) #2 { -entry: - tail call void @hello(i8* %a, i8* %c, i8* %b) - ret void -} - -define void @hello_cs(i8* nocapture %a, i8* nocapture readonly %c, i8* nocapture %b) #1 { -entry: - %l = alloca i8, i32 512, align 1 - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %b, i64 16, i1 0) - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %b, i8* align 16 %c, i64 16, i1 0) - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %c, i64 16, i1 0) - call void @hey() - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %l, i8* align 16 %c, i64 16, i1 0) - ret void -} - -define void @foo_cs(i8* nocapture %a, i8* nocapture readonly %c, i8* nocapture %b) #2 { -entry: - tail call void @hello_cs(i8* noalias %a, i8* noalias %c, i8* %b) - ret void -} - -; CHECK: define void @foo(i8* nocapture %a, i8* nocapture readonly %c, i8* nocapture %b) -; CHECK: entry: -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %b, i64 16, i1 false) #3, !noalias !0 -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %b, i8* align 16 %c, i64 16, i1 false) #3, !noalias !3 -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %c, i64 16, i1 false) #3, !alias.scope !5 -; CHECK: call void @hey() #3, !noalias !5 -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %{{.*}}, i8* align 16 %c, i64 16, i1 false) #3, !noalias !3 -; CHECK: ret void -; CHECK: } - -; CHECK: define void @foo_cs(i8* nocapture %a, i8* nocapture readonly %c, i8* nocapture %b) -; CHECK: entry: -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %b, i64 16, i1 false) #3, !noalias !6 -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %b, i8* align 16 %c, i64 16, i1 false) #3, !noalias !9 -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %a, i8* align 16 %c, i64 16, i1 false) #3, !alias.scope !11 -; CHECK: call void @hey() #3, !noalias !11 -; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %{{.*}}, i8* align 16 %c, i64 16, i1 false) #3, !noalias !9 -; CHECK: ret void -; CHECK: } - -attributes #0 = { nounwind argmemonly willreturn } -attributes #1 = { nounwind alwaysinline } -attributes #2 = { nounwind uwtable } - -; CHECK: !0 = !{!1} -; CHECK: !1 = distinct !{!1, !2, !"hello: %c"} -; CHECK: !2 = distinct !{!2, !"hello"} -; CHECK: !3 = !{!4} -; CHECK: !4 = distinct !{!4, !2, !"hello: %a"} -; CHECK: !5 = !{!4, !1} - -; CHECK: !6 = !{!7} -; CHECK: !7 = distinct !{!7, !8, !"hello_cs: %c"} -; CHECK: !8 = distinct !{!8, !"hello_cs"} -; CHECK: !9 = !{!10} -; CHECK: !10 = distinct !{!10, !8, !"hello_cs: %a"} -; CHECK: !11 = !{!10, !7} - -- 2.7.4