From 243acd5dcbc637e477062877185ad76d8ff63d9d Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 9 Dec 2022 15:29:35 +0100 Subject: [PATCH] [BasicAA] Remove support for PhiValues analysis BasicAA currently has an optional dependency on the PhiValues analysis. However, at least with our current pipeline setup, we never actually make use of it. It's possible that this used to work with the legacy pass manager, but I'm not sure of that either. Given that this analysis has not actually been in use for a long time, and nobody noticed or complained, I think we should drop support for it and focus on one code path. It is worth noting that analysis quality for the non-PhiValues case has significantly improved in the meantime. If we really wanted to make use of PhiValues, the right way would probably be to pass it in via AAQI in places we want to use it, rather than using an optional pass manager dependency (which are an unpredictable PITA and should really only ever be used for analyses that are only preserved and not used). Differential Revision: https://reviews.llvm.org/D139719 --- llvm/include/llvm/Analysis/BasicAliasAnalysis.h | 9 ++- .../llvm/Analysis/MemoryDependenceAnalysis.h | 6 +- llvm/lib/Analysis/BasicAliasAnalysis.cpp | 82 ++++++++-------------- llvm/lib/Analysis/MemoryDependenceAnalysis.cpp | 17 +---- llvm/test/Analysis/BasicAA/invalidation.ll | 12 ---- llvm/test/Analysis/BasicAA/phi-aa.ll | 9 +-- llvm/test/Analysis/BasicAA/recphi.ll | 13 ++-- llvm/test/CodeGen/AMDGPU/llc-pipeline.ll | 2 - llvm/test/Other/new-pm-defaults.ll | 1 - llvm/test/Other/new-pm-lto-defaults.ll | 1 - llvm/test/Other/new-pm-thinlto-defaults.ll | 1 - .../Other/new-pm-thinlto-postlink-pgo-defaults.ll | 1 - .../new-pm-thinlto-postlink-samplepgo-defaults.ll | 1 - .../Other/new-pm-thinlto-prelink-pgo-defaults.ll | 1 - .../new-pm-thinlto-prelink-samplepgo-defaults.ll | 1 - 15 files changed, 47 insertions(+), 110 deletions(-) diff --git a/llvm/include/llvm/Analysis/BasicAliasAnalysis.h b/llvm/include/llvm/Analysis/BasicAliasAnalysis.h index f876dab..9f8f285 100644 --- a/llvm/include/llvm/Analysis/BasicAliasAnalysis.h +++ b/llvm/include/llvm/Analysis/BasicAliasAnalysis.h @@ -46,20 +46,19 @@ class BasicAAResult : public AAResultBase { const TargetLibraryInfo &TLI; AssumptionCache &AC; DominatorTree *DT; - PhiValues *PV; public: BasicAAResult(const DataLayout &DL, const Function &F, const TargetLibraryInfo &TLI, AssumptionCache &AC, - DominatorTree *DT = nullptr, PhiValues *PV = nullptr) - : DL(DL), F(F), TLI(TLI), AC(AC), DT(DT), PV(PV) {} + DominatorTree *DT = nullptr) + : DL(DL), F(F), TLI(TLI), AC(AC), DT(DT) {} BasicAAResult(const BasicAAResult &Arg) : AAResultBase(Arg), DL(Arg.DL), F(Arg.F), TLI(Arg.TLI), AC(Arg.AC), - DT(Arg.DT), PV(Arg.PV) {} + DT(Arg.DT) {} BasicAAResult(BasicAAResult &&Arg) : AAResultBase(std::move(Arg)), DL(Arg.DL), F(Arg.F), TLI(Arg.TLI), - AC(Arg.AC), DT(Arg.DT), PV(Arg.PV) {} + AC(Arg.AC), DT(Arg.DT) {} /// Handle invalidation events in the new pass manager. bool invalidate(Function &Fn, const PreservedAnalyses &PA, diff --git a/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h b/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h index 6c00bf5..24b4673 100644 --- a/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h +++ b/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h @@ -32,7 +32,6 @@ class AssumptionCache; class BatchAAResults; class DominatorTree; class PHITransAddr; -class PhiValues; /// A memory dependence query can return one of three different answers. class MemDepResult { @@ -348,7 +347,6 @@ private: AssumptionCache &AC; const TargetLibraryInfo &TLI; DominatorTree &DT; - PhiValues &PV; PredIteratorCache PredCache; unsigned DefaultBlockScanLimit; @@ -360,8 +358,8 @@ private: public: MemoryDependenceResults(AAResults &AA, AssumptionCache &AC, const TargetLibraryInfo &TLI, DominatorTree &DT, - PhiValues &PV, unsigned DefaultBlockScanLimit) - : AA(AA), AC(AC), TLI(TLI), DT(DT), PV(PV), + unsigned DefaultBlockScanLimit) + : AA(AA), AC(AC), TLI(TLI), DT(DT), DefaultBlockScanLimit(DefaultBlockScanLimit) {} /// Handle invalidation in the new PM. diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index ec80aa5..f7b0edd 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -24,7 +24,6 @@ #include "llvm/Analysis/CaptureTracking.h" #include "llvm/Analysis/MemoryBuiltins.h" #include "llvm/Analysis/MemoryLocation.h" -#include "llvm/Analysis/PhiValues.h" #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/ValueTracking.h" #include "llvm/IR/Argument.h" @@ -87,8 +86,7 @@ bool BasicAAResult::invalidate(Function &Fn, const PreservedAnalyses &PA, // may be created without handles to some analyses and in that case don't // depend on them. if (Inv.invalidate(Fn, PA) || - (DT && Inv.invalidate(Fn, PA)) || - (PV && Inv.invalidate(Fn, PA))) + (DT && Inv.invalidate(Fn, PA))) return true; // Otherwise this analysis result remains valid. @@ -1339,56 +1337,37 @@ AliasResult BasicAAResult::aliasPHI(const PHINode *PN, LocationSize PNSize, return false; }; - if (PV) { - // If we have PhiValues then use it to get the underlying phi values. - const PhiValues::ValueSet &PhiValueSet = PV->getValuesForPhi(PN); - // If we have more phi values than the search depth then return MayAlias - // conservatively to avoid compile time explosion. The worst possible case - // is if both sides are PHI nodes. In which case, this is O(m x n) time - // where 'm' and 'n' are the number of PHI sources. - if (PhiValueSet.size() > MaxLookupSearchDepth) - return AliasResult::MayAlias; - // Add the values to V1Srcs - for (Value *PV1 : PhiValueSet) { - if (CheckForRecPhi(PV1)) - continue; - V1Srcs.push_back(PV1); - } - } else { - // If we don't have PhiInfo then just look at the operands of the phi itself - // FIXME: Remove this once we can guarantee that we have PhiInfo always - SmallPtrSet UniqueSrc; - Value *OnePhi = nullptr; - for (Value *PV1 : PN->incoming_values()) { - // Skip the phi itself being the incoming value. - if (PV1 == PN) - continue; + SmallPtrSet UniqueSrc; + Value *OnePhi = nullptr; + for (Value *PV1 : PN->incoming_values()) { + // Skip the phi itself being the incoming value. + if (PV1 == PN) + continue; - if (isa(PV1)) { - if (OnePhi && OnePhi != PV1) { - // To control potential compile time explosion, we choose to be - // conserviate when we have more than one Phi input. It is important - // that we handle the single phi case as that lets us handle LCSSA - // phi nodes and (combined with the recursive phi handling) simple - // pointer induction variable patterns. - return AliasResult::MayAlias; - } - OnePhi = PV1; + if (isa(PV1)) { + if (OnePhi && OnePhi != PV1) { + // To control potential compile time explosion, we choose to be + // conserviate when we have more than one Phi input. It is important + // that we handle the single phi case as that lets us handle LCSSA + // phi nodes and (combined with the recursive phi handling) simple + // pointer induction variable patterns. + return AliasResult::MayAlias; } - - if (CheckForRecPhi(PV1)) - continue; - - if (UniqueSrc.insert(PV1).second) - V1Srcs.push_back(PV1); + OnePhi = PV1; } - if (OnePhi && UniqueSrc.size() > 1) - // Out of an abundance of caution, allow only the trivial lcssa and - // recursive phi cases. - return AliasResult::MayAlias; + if (CheckForRecPhi(PV1)) + continue; + + if (UniqueSrc.insert(PV1).second) + V1Srcs.push_back(PV1); } + if (OnePhi && UniqueSrc.size() > 1) + // Out of an abundance of caution, allow only the trivial lcssa and + // recursive phi cases. + return AliasResult::MayAlias; + // If V1Srcs is empty then that means that the phi has no underlying non-phi // value. This should only be possible in blocks unreachable from the entry // block, but return MayAlias just in case. @@ -1776,8 +1755,7 @@ BasicAAResult BasicAA::run(Function &F, FunctionAnalysisManager &AM) { auto &TLI = AM.getResult(F); auto &AC = AM.getResult(F); auto *DT = &AM.getResult(F); - auto *PV = AM.getCachedResult(F); - return BasicAAResult(F.getParent()->getDataLayout(), F, TLI, AC, DT, PV); + return BasicAAResult(F.getParent()->getDataLayout(), F, TLI, AC, DT); } BasicAAWrapperPass::BasicAAWrapperPass() : FunctionPass(ID) { @@ -1793,7 +1771,6 @@ INITIALIZE_PASS_BEGIN(BasicAAWrapperPass, "basic-aa", INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker) INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(PhiValuesWrapperPass) INITIALIZE_PASS_END(BasicAAWrapperPass, "basic-aa", "Basic Alias Analysis (stateless AA impl)", true, true) @@ -1805,12 +1782,10 @@ bool BasicAAWrapperPass::runOnFunction(Function &F) { auto &ACT = getAnalysis(); auto &TLIWP = getAnalysis(); auto &DTWP = getAnalysis(); - auto *PVWP = getAnalysisIfAvailable(); Result.reset(new BasicAAResult(F.getParent()->getDataLayout(), F, TLIWP.getTLI(F), ACT.getAssumptionCache(F), - &DTWP.getDomTree(), - PVWP ? &PVWP->getResult() : nullptr)); + &DTWP.getDomTree())); return false; } @@ -1820,7 +1795,6 @@ void BasicAAWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequiredTransitive(); AU.addRequiredTransitive(); AU.addRequiredTransitive(); - AU.addUsedIfAvailable(); } BasicAAResult llvm::createLegacyPMBasicAAResult(Pass &P, Function &F) { diff --git a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp index f0446b2..2340015 100644 --- a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp +++ b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp @@ -24,7 +24,6 @@ #include "llvm/Analysis/MemoryBuiltins.h" #include "llvm/Analysis/MemoryLocation.h" #include "llvm/Analysis/PHITransAddr.h" -#include "llvm/Analysis/PhiValues.h" #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/ValueTracking.h" #include "llvm/IR/BasicBlock.h" @@ -1493,8 +1492,6 @@ void MemoryDependenceResults::invalidateCachedPointerInfo(Value *Ptr) { removeCachedNonLocalPointerDependencies(ValueIsLoadPair(Ptr, false)); // Flush load info for the pointer. removeCachedNonLocalPointerDependencies(ValueIsLoadPair(Ptr, true)); - // Invalidate phis that use the pointer. - PV.invalidateValue(Ptr); } void MemoryDependenceResults::invalidateCachedPredecessors() { @@ -1663,9 +1660,6 @@ void MemoryDependenceResults::removeInstruction(Instruction *RemInst) { } } - // Invalidate phis that use the removed instruction. - PV.invalidateValue(RemInst); - assert(!NonLocalDepsMap.count(RemInst) && "RemInst got reinserted?"); LLVM_DEBUG(verifyRemoved(RemInst)); } @@ -1728,8 +1722,7 @@ MemoryDependenceAnalysis::run(Function &F, FunctionAnalysisManager &AM) { auto &AC = AM.getResult(F); auto &TLI = AM.getResult(F); auto &DT = AM.getResult(F); - auto &PV = AM.getResult(F); - return MemoryDependenceResults(AA, AC, TLI, DT, PV, DefaultBlockScanLimit); + return MemoryDependenceResults(AA, AC, TLI, DT, DefaultBlockScanLimit); } char MemoryDependenceWrapperPass::ID = 0; @@ -1740,7 +1733,6 @@ INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker) INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(PhiValuesWrapperPass) INITIALIZE_PASS_END(MemoryDependenceWrapperPass, "memdep", "Memory Dependence Analysis", false, true) @@ -1758,7 +1750,6 @@ void MemoryDependenceWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequired(); AU.addRequired(); - AU.addRequired(); AU.addRequiredTransitive(); AU.addRequiredTransitive(); } @@ -1774,8 +1765,7 @@ bool MemoryDependenceResults::invalidate(Function &F, const PreservedAnalyses &P // Check whether the analyses we depend on became invalid for any reason. if (Inv.invalidate(F, PA) || Inv.invalidate(F, PA) || - Inv.invalidate(F, PA) || - Inv.invalidate(F, PA)) + Inv.invalidate(F, PA)) return true; // Otherwise this analysis result remains valid. @@ -1791,7 +1781,6 @@ bool MemoryDependenceWrapperPass::runOnFunction(Function &F) { auto &AC = getAnalysis().getAssumptionCache(F); auto &TLI = getAnalysis().getTLI(F); auto &DT = getAnalysis().getDomTree(); - auto &PV = getAnalysis().getResult(); - MemDep.emplace(AA, AC, TLI, DT, PV, BlockScanLimit); + MemDep.emplace(AA, AC, TLI, DT, BlockScanLimit); return false; } diff --git a/llvm/test/Analysis/BasicAA/invalidation.ll b/llvm/test/Analysis/BasicAA/invalidation.ll index 79f4d44b..c25d201 100644 --- a/llvm/test/Analysis/BasicAA/invalidation.ll +++ b/llvm/test/Analysis/BasicAA/invalidation.ll @@ -13,18 +13,6 @@ ; CHECK-DT-INVALIDATE: Running pass: AAEvaluator ; CHECK-DT-INVALIDATE: Running analysis: BasicAA ; -; Check PhiValues specifically. -; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ -; RUN: -passes='require,require,invalidate,aa-eval' -aa-pipeline='basic-aa' \ -; RUN: | FileCheck %s --check-prefix=CHECK-PV-INVALIDATE -; CHECK-PV-INVALIDATE: Running pass: RequireAnalysisPass -; CHECK-PV-INVALIDATE: Running analysis: BasicAA -; CHECK-PV-INVALIDATE: Running pass: InvalidateAnalysisPass -; CHECK-PV-INVALIDATE: Invalidating analysis: PhiValuesAnalysis -; CHECK-PV-INVALIDATE: Invalidating analysis: BasicAA -; CHECK-PV-INVALIDATE: Running pass: AAEvaluator -; CHECK-PV-INVALIDATE: Running analysis: BasicAA - ; Some code that will result in actual AA queries, including inside of a loop. ; FIXME: Sadly, none of these queries managed to use either the domtree or ; loopinfo that basic-aa cache. But nor does any other test in LLVM. It would diff --git a/llvm/test/Analysis/BasicAA/phi-aa.ll b/llvm/test/Analysis/BasicAA/phi-aa.ll index f9d61a6..b12660e4 100644 --- a/llvm/test/Analysis/BasicAA/phi-aa.ll +++ b/llvm/test/Analysis/BasicAA/phi-aa.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -aa-pipeline=basic-aa -passes='require,aa-eval' -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s +; RUN: opt < %s -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 | 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" @@ -80,10 +80,11 @@ declare void @inc(i32*) ; When we have a chain of phis in nested loops we should recognise if there's ; actually only one underlying value. +; FIXME: All of these could be NoAlias. ; CHECK-LABEL: loop_phi_chain -; CHECK: NoAlias: i32* %val1, i32* @Y -; CHECK: NoAlias: i32* %val2, i32* @Y -; CHECK: NoAlias: i32* %val3, i32* @Y +; CHECK: MayAlias: i32* %val1, i32* @Y +; CHECK: MayAlias: i32* %val2, i32* @Y +; CHECK: MayAlias: i32* %val3, i32* @Y define void @loop_phi_chain(i32 %a, i32 %b, i32 %c) { entry: br label %loop1 diff --git a/llvm/test/Analysis/BasicAA/recphi.ll b/llvm/test/Analysis/BasicAA/recphi.ll index 3bf621f..4b37fce 100644 --- a/llvm/test/Analysis/BasicAA/recphi.ll +++ b/llvm/test/Analysis/BasicAA/recphi.ll @@ -1,5 +1,4 @@ -; RUN: opt < %s -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s --check-prefixes=CHECK,NO-PHI-VALUES -; RUN: opt < %s -aa-pipeline=basic-aa -passes='require,aa-eval' -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s --check-prefixes=CHECK,PHI-VALUES +; RUN: opt < %s -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s ; CHECK-LABEL: Function: simple: 5 pointers, 0 call sites ; CHECK: NoAlias: float* %src1, float* %src2 @@ -243,11 +242,11 @@ exit: ret ptr %result } +; FIXME: %a and %p.inner do not alias. ; CHECK-LABEL: Function: nested_loop ; CHECK: NoAlias: i8* %a, i8* %p.base ; CHECK: NoAlias: i8* %a, i8* %p.outer -; NO-PHI-VALUES: MayAlias: i8* %a, i8* %p.inner -; PHI-VALUES: NoAlias: i8* %a, i8* %p.inner +; CHECK: MayAlias: i8* %a, i8* %p.inner ; CHECK: NoAlias: i8* %a, i8* %p.inner.next ; CHECK: NoAlias: i8* %a, i8* %p.outer.next define void @nested_loop(i1 %c, i1 %c2, ptr noalias %p.base) { @@ -318,8 +317,7 @@ exit: ; CHECK: NoAlias: i8* %a, i8* %p.base ; CHECK: NoAlias: i8* %a, i8* %p.outer ; CHECK: NoAlias: i8* %a, i8* %p.outer.next -; NO-PHI-VALUES: NoAlias: i8* %a, i8* %p.inner -; PHI-VALUES: MayAlias: i8* %a, i8* %p.inner +; CHECK: NoAlias: i8* %a, i8* %p.inner ; CHECK: NoAlias: i8* %a, i8* %p.inner.next define void @nested_loop3(i1 %c, i1 %c2, ptr noalias %p.base) { entry: @@ -385,8 +383,7 @@ exit: ; CHECK: NoAlias: i8* %a, i8* %p.base ; CHECK: NoAlias: i8* %a, i8* %p1 ; CHECK: NoAlias: i8* %a, i8* %p1.next -; NO-PHI-VALUES: NoAlias: i8* %a, i8* %p2 -; PHI-VALUES: MayAlias: i8* %a, i8* %p2 +; CHECK: NoAlias: i8* %a, i8* %p2 ; CHECK: NoAlias: i8* %a, i8* %p2.next define void @sibling_loop2(i1 %c, i1 %c2, ptr noalias %p.base) { entry: diff --git a/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll b/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll index 66159e9..bd2040a 100644 --- a/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll +++ b/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll @@ -1072,7 +1072,6 @@ ; GCN-O3-NEXT: Split GEPs to a variadic base and a constant offset for better CSE ; GCN-O3-NEXT: Scalar Evolution Analysis ; GCN-O3-NEXT: Straight line strength reduction -; GCN-O3-NEXT: Phi Values Analysis ; GCN-O3-NEXT: Function Alias Analysis Results ; GCN-O3-NEXT: Memory Dependence Analysis ; GCN-O3-NEXT: Optimization Remark Emitter @@ -1111,7 +1110,6 @@ ; GCN-O3-NEXT: Expand reduction intrinsics ; GCN-O3-NEXT: Natural Loop Information ; GCN-O3-NEXT: TLS Variable Hoist -; GCN-O3-NEXT: Phi Values Analysis ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) ; GCN-O3-NEXT: Function Alias Analysis Results ; GCN-O3-NEXT: Memory Dependence Analysis diff --git a/llvm/test/Other/new-pm-defaults.ll b/llvm/test/Other/new-pm-defaults.ll index ddb84d0..fbcd1ed 100644 --- a/llvm/test/Other/new-pm-defaults.ll +++ b/llvm/test/Other/new-pm-defaults.ll @@ -189,7 +189,6 @@ ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass ; CHECK-O23SZ-NEXT: Running pass: GVNPass ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis ; CHECK-O1-NEXT: Running pass: MemCpyOptPass ; CHECK-O-NEXT: Running pass: SCCPPass ; CHECK-O-NEXT: Running pass: BDCEPass diff --git a/llvm/test/Other/new-pm-lto-defaults.ll b/llvm/test/Other/new-pm-lto-defaults.ll index bbed7fb..2ae507d 100644 --- a/llvm/test/Other/new-pm-lto-defaults.ll +++ b/llvm/test/Other/new-pm-lto-defaults.ll @@ -109,7 +109,6 @@ ; CHECK-O23SZ-NEXT: Running pass: LICMPass on loop ; CHECK-O23SZ-NEXT: Running pass: GVNPass on foo ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis on foo -; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis on foo ; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass on foo ; CHECK-O23SZ-NEXT: Running pass: DSEPass on foo ; CHECK-O23SZ-NEXT: Running analysis: PostDominatorTreeAnalysis on foo diff --git a/llvm/test/Other/new-pm-thinlto-defaults.ll b/llvm/test/Other/new-pm-thinlto-defaults.ll index d4f9d56..23ace38 100644 --- a/llvm/test/Other/new-pm-thinlto-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-defaults.ll @@ -162,7 +162,6 @@ ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass ; CHECK-O23SZ-NEXT: Running pass: GVNPass ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis ; CHECK-O1-NEXT: Running pass: MemCpyOptPass ; CHECK-O-NEXT: Running pass: SCCPPass ; CHECK-O-NEXT: Running pass: BDCEPass diff --git a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll index a292267..b1e716f 100644 --- a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll @@ -123,7 +123,6 @@ ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass ; CHECK-O23SZ-NEXT: Running pass: GVNPass ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis ; CHECK-O1-NEXT: Running pass: MemCpyOptPass ; CHECK-O-NEXT: Running pass: SCCPPass ; CHECK-O-NEXT: Running pass: BDCEPass diff --git a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll index b8e3f16..4e0432e 100644 --- a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll @@ -132,7 +132,6 @@ ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass ; CHECK-O23SZ-NEXT: Running pass: GVNPass ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis ; CHECK-O1-NEXT: Running pass: MemCpyOptPass ; CHECK-O-NEXT: Running pass: SCCPPass ; CHECK-O-NEXT: Running pass: BDCEPass diff --git a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll index 72ef377..a1ac98f 100644 --- a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll @@ -161,7 +161,6 @@ ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass ; CHECK-O23SZ-NEXT: Running pass: GVNPass ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis ; CHECK-O1-NEXT: Running pass: MemCpyOptPass ; CHECK-O-NEXT: Running pass: SCCPPass ; CHECK-O-NEXT: Running pass: BDCEPass diff --git a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll index cb9fe6e..386f08a 100644 --- a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll @@ -126,7 +126,6 @@ ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass ; CHECK-O23SZ-NEXT: Running pass: GVNPass ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis -; CHECK-O23SZ-NEXT: Running analysis: PhiValuesAnalysis ; CHECK-O1-NEXT: Running pass: MemCpyOptPass ; CHECK-O-NEXT: Running pass: SCCPPass ; CHECK-O-NEXT: Running pass: BDCEPass -- 2.7.4