<div dir="ltr">This change has started causing OOM build failures on the UBSan bot, e.g. <a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-ubsan/builds/5257/steps/build%20clang%2Fubsan/logs/stdio">this one</a>. In particular, looking at the output for top on that machine shows that the following command:<div>/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm_build0/bin/clang-7 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name SemaChecking.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debug-info-kind=line-tables-only -dwarf-version=4 -debugger-tuning=gdb -momit-leaf-frame-pointer -ffunction-sections -fdata-sections -coverage-notes-file /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.gcno -resource-dir /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/7.0.0 -dependency-file tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.o.d -sys-header-deps -MT tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.o -D GTEST_HAS_RTTI=0 -D _DEBUG -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -I tools/clang/lib/Sema -I /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm/tools/clang/lib/Sema -I /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm/tools/clang/include -I tools/clang/include -I /usr/include/libxml2 -I include -I /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm/include -U NDEBUG -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/x86_64-linux-gnu/c++/6.3.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/x86_64-linux-gnu/c++/6.3.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/backward -internal-isystem /usr/local/include -internal-isystem /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/7.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wno-long-long -Wcovered-switch-default -Wno-class-memaccess -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -Woverloaded-virtual -Wno-nested-anon-types -pedantic -w -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm_build_ubsan -ferror-limit 19 -fmessage-length 0 -fvisibility-inlines-hidden -fsanitize=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,float-divide-by-zero,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound -fsanitize-blacklist=/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm/utils/sanitizers/ubsan_blacklist.txt -fdepfile-entry=/b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm/utils/sanitizers/ubsan_blacklist.txt -fno-rtti -fobjc-runtime=gcc -fno-common -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.o -x c++ /b/sanitizer-x86_64-linux-bootstrap-ubsan/build/llvm/tools/clang/lib/Sema/SemaChecking.cpp -faddrsig</div><div><br></div><div><div>runs until it consumes all of the memory on the host and OOMs. I attribute this failure to GVNHoist due to the following backtrace taken while it was continuing to consume memory (the linked failure above has a different backtrace also in GVNHoist at the point of OOM):</div></div><div><div>#0  0x000056415365aa14 in llvm::DenseMapBase<llvm::DenseMap<llvm::BasicBlock*, std::unique_ptr<llvm::DomTreeNodeBas</div><div>e<llvm::BasicBlock>, std::default_delete<llvm::DomTreeNodeBase<llvm::BasicBlock> > >, llvm::DenseMapInfo<llvm::Basi</div><div>cBlock*>, llvm::detail::DenseMapPair<llvm::BasicBlock*, std::unique_ptr<llvm::DomTreeNodeBase<llvm::BasicBlock>, st</div><div>d::default_delete<llvm::DomTreeNodeBase<llvm::BasicBlock> > > > >, llvm::BasicBlock*, std::unique_ptr<llvm::DomTree</div><div>NodeBase<llvm::BasicBlock>, std::default_delete<llvm::DomTreeNodeBase<llvm::BasicBlock> > >, llvm::DenseMapInfo<llv</div><div>m::BasicBlock*>, llvm::detail::DenseMapPair<llvm::BasicBlock*, std::unique_ptr<llvm::DomTreeNodeBase<llvm::BasicBlo</div><div>ck>, std::default_delete<llvm::DomTreeNodeBase<llvm::BasicBlock> > > > >::find(llvm::BasicBlock const*) const ()</div><div>#1  0x00005641543972bd in llvm::DominatorTreeBase<llvm::BasicBlock, false>::getNode(llvm::BasicBlock const*) const</div><div>    ()</div><div>#2  0x00005641543974a5 in llvm::DominatorTreeBase<llvm::BasicBlock, false>::properlyDominates(llvm::BasicBlock cons</div><div>t*, llvm::BasicBlock const*) const ()</div><div>#3  0x00005641547171a3 in llvm::GVNHoist::computeInsertionPoints(llvm::DenseMap<std::pair<unsigned int, unsigned in</div><div>t>, llvm::SmallVector<llvm::Instruction*, 4u>, llvm::DenseMapInfo<std::pair<unsigned int, unsigned int> >, llvm::de</div><div>tail::DenseMapPair<std::pair<unsigned int, unsigned int>, llvm::SmallVector<llvm::Instruction*, 4u> > > const&, llv</div><div>m::SmallVector<std::pair<llvm::BasicBlock*, llvm::SmallVector<llvm::Instruction*, 4u> >, 4u>&, llvm::GVNHoist::InsK</div><div>ind) [clone .constprop.541] ()</div><div>#4  0x0000564154717ea8 in llvm::GVNHoist::hoistExpressions(llvm::Function&) ()</div><div>#5  0x0000564154718682 in llvm::GVNHoist::run(llvm::Function&) ()</div><div>#6  0x0000564154718be8 in llvm::GVNHoistLegacyPass::runOnFunction(llvm::Function&) [clone .part.531] ()</div><div>#7  0x00005641543f8c8f in llvm::FPPassManager::runOnFunction(llvm::Function&) ()</div><div>#8  0x0000564153e00717 in (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) ()</div><div>#9  0x00005641543f9868 in llvm::legacy::PassManagerImpl::run(llvm::Module&) ()</div><div>#10 0x0000564154b166d0 in clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) ()</div><div>#11 0x00005641552b3f34 in clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) ()</div><div>#12 0x0000564155a6cc99 in clang::ParseAST(clang::Sema&, bool, bool) ()</div><div>#13 0x00005641552b3199 in clang::CodeGenAction::ExecuteAction() ()</div><div>#14 0x0000564154f5168e in clang::FrontendAction::Execute() ()</div><div>#15 0x0000564154f1cb26 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) ()</div><div>#16 0x0000564154ff12b1 in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) ()</div><div>#17 0x0000564153064e00 in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) ()</div><div>#18 0x0000564152fd76e2 in main ()</div></div><div><br></div><div>I've reverted this change in r338297.</div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jul 30, 2018 at 3:50 AM Alexandros Lamprineas via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: alelab01<br>
Date: Mon Jul 30 03:50:18 2018<br>
New Revision: 338240<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=338240&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=338240&view=rev</a><br>
Log:<br>
[GVNHoist] Re-enable GVNHoist by default<br>
<br>
My initial motivation for this came from <a href="https://reviews.llvm.org/D48122" rel="noreferrer" target="_blank">https://reviews.llvm.org/D48122</a>,<br>
where it was pointed out that my change didn't fit well in SimplifyCFG and<br>
therefore using GVNHoist was a better way to go. GVNHoist has been disabled<br>
for a while as there was a list of bugs related to it.<br>
<br>
I have fixed the following bugs:<br>
<br>
<a href="https://bugs.llvm.org/show_bug.cgi?id=37808" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=37808</a> -> <a href="https://reviews.llvm.org/D48372" rel="noreferrer" target="_blank">https://reviews.llvm.org/D48372</a> (rL337149)<br>
<a href="https://bugs.llvm.org/show_bug.cgi?id=36787" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=36787</a> -> <a href="https://reviews.llvm.org/D49555" rel="noreferrer" target="_blank">https://reviews.llvm.org/D49555</a> (rL337674)<br>
<a href="https://bugs.llvm.org/show_bug.cgi?id=37445" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=37445</a> -> <a href="https://reviews.llvm.org/D49425" rel="noreferrer" target="_blank">https://reviews.llvm.org/D49425</a> (rL337680)<br>
<br>
The next two bugs no longer occur, and it's unclear which commit fixed them:<br>
<br>
<a href="https://bugs.llvm.org/show_bug.cgi?id=36635" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=36635</a><br>
<a href="https://bugs.llvm.org/show_bug.cgi?id=37791" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=37791</a><br>
<br>
I investigated this one and proved to be unrelated to GVNHoist, but a genuine bug in NewGvn:<br>
<br>
<a href="https://bugs.llvm.org/show_bug.cgi?id=37660" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=37660</a><br>
<br>
To convince myself GVNHoist is in a good state I made a successful bootstrap build of LLVM.<br>
Merging this change now in order to make it to the LLVM 7.0.0 branch.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D49858" rel="noreferrer" target="_blank">https://reviews.llvm.org/D49858</a><br>
<br>
Modified:<br>
    llvm/trunk/lib/Passes/PassBuilder.cpp<br>
    llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp<br>
    llvm/trunk/test/Other/new-pm-defaults.ll<br>
    llvm/trunk/test/Other/new-pm-thinlto-defaults.ll<br>
    llvm/trunk/test/Other/opt-O2-pipeline.ll<br>
    llvm/trunk/test/Other/opt-O3-pipeline.ll<br>
    llvm/trunk/test/Other/opt-Os-pipeline.ll<br>
<br>
Modified: llvm/trunk/lib/Passes/PassBuilder.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Passes/PassBuilder.cpp?rev=338240&r1=338239&r2=338240&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Passes/PassBuilder.cpp?rev=338240&r1=338239&r2=338240&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Passes/PassBuilder.cpp (original)<br>
+++ llvm/trunk/lib/Passes/PassBuilder.cpp Mon Jul 30 03:50:18 2018<br>
@@ -174,8 +174,8 @@ static cl::opt<bool> EnableEarlyCSEMemSS<br>
     cl::desc("Enable the EarlyCSE w/ MemorySSA pass for the new PM (default = on)"));<br>
<br>
 static cl::opt<bool> EnableGVNHoist(<br>
-    "enable-npm-gvn-hoist", cl::init(false), cl::Hidden,<br>
-    cl::desc("Enable the GVN hoisting pass for the new PM (default = off)"));<br>
+    "enable-npm-gvn-hoist", cl::init(true), cl::Hidden,<br>
+    cl::desc("Enable the GVN hoisting pass for the new PM (default = on)"));<br>
<br>
 static cl::opt<bool> EnableGVNSink(<br>
     "enable-npm-gvn-sink", cl::init(false), cl::Hidden,<br>
<br>
Modified: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp?rev=338240&r1=338239&r2=338240&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp?rev=338240&r1=338239&r2=338240&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp Mon Jul 30 03:50:18 2018<br>
@@ -135,8 +135,8 @@ static cl::opt<bool> EnableEarlyCSEMemSS<br>
     cl::desc("Enable the EarlyCSE w/ MemorySSA pass (default = on)"));<br>
<br>
 static cl::opt<bool> EnableGVNHoist(<br>
-    "enable-gvn-hoist", cl::init(false), cl::Hidden,<br>
-    cl::desc("Enable the GVN hoisting pass (default = off)"));<br>
+    "enable-gvn-hoist", cl::init(true), cl::Hidden,<br>
+    cl::desc("Enable the GVN hoisting pass (default = on)"));<br>
<br>
 static cl::opt<bool><br>
     DisableLibCallsShrinkWrap("disable-libcalls-shrinkwrap", cl::init(false),<br>
<br>
Modified: llvm/trunk/test/Other/new-pm-defaults.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pm-defaults.ll?rev=338240&r1=338239&r2=338240&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pm-defaults.ll?rev=338240&r1=338239&r2=338240&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/Other/new-pm-defaults.ll (original)<br>
+++ llvm/trunk/test/Other/new-pm-defaults.ll Mon Jul 30 03:50:18 2018<br>
@@ -121,6 +121,9 @@<br>
 ; CHECK-O-NEXT: Running pass: SROA<br>
 ; CHECK-O-NEXT: Running pass: EarlyCSEPass<br>
 ; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis<br>
+; CHECK-O-NEXT: Running pass: GVNHoistPass on foo<br>
+; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo<br>
+; CHECK-O-NEXT: Running analysis: MemoryDependenceAnalysis on foo<br>
 ; CHECK-O-NEXT: Running pass: SpeculativeExecutionPass<br>
 ; CHECK-O-NEXT: Running pass: JumpThreadingPass<br>
 ; CHECK-O-NEXT: Running analysis: LazyValueAnalysis<br>
@@ -169,18 +172,13 @@<br>
 ; CHECK-O-NEXT: Finished Loop pass manager run.<br>
 ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-Os-NEXT: Running pass: GVN<br>
-; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-Oz-NEXT: Running pass: GVN<br>
-; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-O2-NEXT: Running pass: GVN<br>
-; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-O3-NEXT: Running pass: GVN<br>
-; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O-NEXT: Running pass: MemCpyOptPass<br>
-; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O-NEXT: Running pass: SCCPPass<br>
 ; CHECK-O-NEXT: Running pass: BDCEPass<br>
 ; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis<br>
@@ -196,7 +194,6 @@<br>
 ; CHECK-O-NEXT: Finished llvm::Function pass manager run.<br>
 ; CHECK-EP-SCALAR-LATE-NEXT: Running pass: NoOpFunctionPass<br>
 ; CHECK-O-NEXT: Running pass: ADCEPass<br>
-; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis<br>
 ; CHECK-O-NEXT: Running pass: SimplifyCFGPass<br>
 ; CHECK-O-NEXT: Running pass: InstCombinePass<br>
 ; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass<br>
<br>
Modified: llvm/trunk/test/Other/new-pm-thinlto-defaults.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pm-thinlto-defaults.ll?rev=338240&r1=338239&r2=338240&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pm-thinlto-defaults.ll?rev=338240&r1=338239&r2=338240&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/Other/new-pm-thinlto-defaults.ll (original)<br>
+++ llvm/trunk/test/Other/new-pm-thinlto-defaults.ll Mon Jul 30 03:50:18 2018<br>
@@ -106,6 +106,9 @@<br>
 ; CHECK-O-NEXT: Running pass: SROA<br>
 ; CHECK-O-NEXT: Running pass: EarlyCSEPass<br>
 ; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis<br>
+; CHECK-O-NEXT: Running pass: GVNHoistPass on foo<br>
+; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo<br>
+; CHECK-O-NEXT: Running analysis: MemoryDependenceAnalysis on foo<br>
 ; CHECK-O-NEXT: Running pass: SpeculativeExecutionPass<br>
 ; CHECK-O-NEXT: Running pass: JumpThreadingPass<br>
 ; CHECK-O-NEXT: Running analysis: LazyValueAnalysis<br>
@@ -151,18 +154,13 @@<br>
 ; CHECK-O-NEXT: Finished Loop pass manager run.<br>
 ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-Os-NEXT: Running pass: GVN<br>
-; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-Oz-NEXT: Running pass: GVN<br>
-; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-O2-NEXT: Running pass: GVN<br>
-; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass<br>
 ; CHECK-O3-NEXT: Running pass: GVN<br>
-; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O-NEXT: Running pass: MemCpyOptPass<br>
-; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis<br>
 ; CHECK-O-NEXT: Running pass: SCCPPass<br>
 ; CHECK-O-NEXT: Running pass: BDCEPass<br>
 ; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis<br>
@@ -176,7 +174,6 @@<br>
 ; CHECK-O-NEXT: Running pass: LCSSAPass<br>
 ; CHECK-O-NEXT: Finished llvm::Function pass manager run<br>
 ; CHECK-O-NEXT: Running pass: ADCEPass<br>
-; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis<br>
 ; CHECK-O-NEXT: Running pass: SimplifyCFGPass<br>
 ; CHECK-O-NEXT: Running pass: InstCombinePass<br>
 ; CHECK-O-NEXT: Finished llvm::Function pass manager run.<br>
<br>
Modified: llvm/trunk/test/Other/opt-O2-pipeline.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-O2-pipeline.ll?rev=338240&r1=338239&r2=338240&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-O2-pipeline.ll?rev=338240&r1=338239&r2=338240&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/Other/opt-O2-pipeline.ll (original)<br>
+++ llvm/trunk/test/Other/opt-O2-pipeline.ll Mon Jul 30 03:50:18 2018<br>
@@ -58,7 +58,12 @@<br>
 ; CHECK-NEXT:         Function Alias Analysis Results<br>
 ; CHECK-NEXT:         Memory SSA<br>
 ; CHECK-NEXT:         Early CSE w/ MemorySSA<br>
+; CHECK-NEXT:         Post-Dominator Tree Construction<br>
+; CHECK-NEXT:         Function Alias Analysis Results<br>
+; CHECK-NEXT:         Memory Dependence Analysis<br>
+; CHECK-NEXT:         Early GVN Hoisting of Expressions<br>
 ; CHECK-NEXT:         Speculatively execute instructions if target has divergent branches<br>
+; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)<br>
 ; CHECK-NEXT:         Function Alias Analysis Results<br>
 ; CHECK-NEXT:         Lazy Value Information Analysis<br>
 ; CHECK-NEXT:         Jump Threading<br>
<br>
Modified: llvm/trunk/test/Other/opt-O3-pipeline.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-O3-pipeline.ll?rev=338240&r1=338239&r2=338240&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-O3-pipeline.ll?rev=338240&r1=338239&r2=338240&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/Other/opt-O3-pipeline.ll (original)<br>
+++ llvm/trunk/test/Other/opt-O3-pipeline.ll Mon Jul 30 03:50:18 2018<br>
@@ -61,7 +61,12 @@<br>
 ; CHECK-NEXT:         Function Alias Analysis Results<br>
 ; CHECK-NEXT:         Memory SSA<br>
 ; CHECK-NEXT:         Early CSE w/ MemorySSA<br>
+; CHECK-NEXT:         Post-Dominator Tree Construction<br>
+; CHECK-NEXT:         Function Alias Analysis Results<br>
+; CHECK-NEXT:         Memory Dependence Analysis<br>
+; CHECK-NEXT:         Early GVN Hoist<br>
 ; CHECK-NEXT:         Speculatively execute instructions if target has divergent branches<br>
+; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)<br>
 ; CHECK-NEXT:         Function Alias Analysis Results<br>
 ; CHECK-NEXT:         Lazy Value Information Analysis<br>
 ; CHECK-NEXT:         Jump Threading<br>
<br>
Modified: llvm/trunk/test/Other/opt-Os-pipeline.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-Os-pipeline.ll?rev=338240&r1=338239&r2=338240&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-Os-pipeline.ll?rev=338240&r1=338239&r2=338240&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/Other/opt-Os-pipeline.ll (original)<br>
+++ llvm/trunk/test/Other/opt-Os-pipeline.ll Mon Jul 30 03:50:18 2018<br>
@@ -58,7 +58,12 @@<br>
 ; CHECK-NEXT:         Function Alias Analysis Results<br>
 ; CHECK-NEXT:         Memory SSA<br>
 ; CHECK-NEXT:         Early CSE w/ MemorySSA<br>
+; CHECK-NEXT:         Post-Dominator Tree Construction<br>
+; CHECK-NEXT:         Function Alias Analysis Results<br>
+; CHECK-NEXT:         Memory Dependence Analysis<br>
+; CHECK-NEXT:         Early GVN Hoisting of Expressions<br>
 ; CHECK-NEXT:         Speculatively execute instructions if target has divergent branches<br>
+; CHECK-NEXT:         Basic Alias Analysis (stateless AA impl)<br>
 ; CHECK-NEXT:         Function Alias Analysis Results<br>
 ; CHECK-NEXT:         Lazy Value Information Analysis<br>
 ; CHECK-NEXT:         Jump Threading<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>