[llvm] r342387 - [GVNHoist] Re-enable GVNHoist by default
Eric Christopher via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 1 11:48:43 PDT 2018
As a follow-up the benchmarks are now available here:
https://github.com/google/hashtable-benchmarks
I'm going to go ahead and revert this in the meantime. I haven't seen
performance numbers with GVNHoist enabled - could you make sure that those
are also in the next commit message for review?
Thanks!
On Fri, Sep 28, 2018 at 11:27 AM Eric Christopher <echristo at gmail.com>
wrote:
> HI Alexandros
>
> We're seeing multiple large regressions (~25%) in performance that are
> pointing at re-enabling gvn hoist again. A notable piece of visible code is
> swisstable, which can be found here:
> https://github.com/abseil/abseil-cpp/tree/master/absl/container. The
> benchmarks aren't currently there and I'll work on getting you some, but
> you might be able to take a look there.
>
> I've got other examples too and this would be widespread enough that I'd
> want to disable again until we can get the performance back or at least
> closer, overall performance greater with no large regressions is the goal
> right?
>
> Thanks!
>
> -eric
>
> On Mon, Sep 17, 2018 at 5:26 AM Alexandros Lamprineas via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: alelab01
>> Date: Mon Sep 17 05:24:55 2018
>> New Revision: 342387
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=342387&view=rev
>> Log:
>> [GVNHoist] Re-enable GVNHoist by default
>>
>> Rebase rL341954 since https://bugs.llvm.org/show_bug.cgi?id=38912
>> has been fixed by rL342055.
>>
>> Precommit testing performed:
>> * Overnight runs of csmith comparing the output between programs
>> compiled with gvn-hoist enabled/disabled.
>> * Bootstrap builds of clang with UbSan/ASan configurations.
>>
>> Modified:
>> llvm/trunk/lib/Passes/PassBuilder.cpp
>> llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
>> llvm/trunk/test/Other/new-pm-defaults.ll
>> llvm/trunk/test/Other/new-pm-thinlto-defaults.ll
>> llvm/trunk/test/Other/opt-O2-pipeline.ll
>> llvm/trunk/test/Other/opt-O3-pipeline.ll
>> llvm/trunk/test/Other/opt-Os-pipeline.ll
>>
>> Modified: llvm/trunk/lib/Passes/PassBuilder.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Passes/PassBuilder.cpp?rev=342387&r1=342386&r2=342387&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Passes/PassBuilder.cpp (original)
>> +++ llvm/trunk/lib/Passes/PassBuilder.cpp Mon Sep 17 05:24:55 2018
>> @@ -175,8 +175,8 @@ static cl::opt<bool> EnableEarlyCSEMemSS
>> cl::desc("Enable the EarlyCSE w/ MemorySSA pass for the new PM
>> (default = on)"));
>>
>> static cl::opt<bool> EnableGVNHoist(
>> - "enable-npm-gvn-hoist", cl::init(false), cl::Hidden,
>> - cl::desc("Enable the GVN hoisting pass for the new PM (default =
>> off)"));
>> + "enable-npm-gvn-hoist", cl::init(true), cl::Hidden,
>> + cl::desc("Enable the GVN hoisting pass for the new PM (default =
>> on)"));
>>
>> static cl::opt<bool> EnableGVNSink(
>> "enable-npm-gvn-sink", cl::init(false), cl::Hidden,
>>
>> Modified: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp?rev=342387&r1=342386&r2=342387&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (original)
>> +++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp Mon Sep 17
>> 05:24:55 2018
>> @@ -139,8 +139,8 @@ static cl::opt<bool> EnableEarlyCSEMemSS
>> cl::desc("Enable the EarlyCSE w/ MemorySSA pass (default = on)"));
>>
>> static cl::opt<bool> EnableGVNHoist(
>> - "enable-gvn-hoist", cl::init(false), cl::Hidden,
>> - cl::desc("Enable the GVN hoisting pass (default = off)"));
>> + "enable-gvn-hoist", cl::init(true), cl::Hidden,
>> + cl::desc("Enable the GVN hoisting pass (default = on)"));
>>
>> static cl::opt<bool>
>> DisableLibCallsShrinkWrap("disable-libcalls-shrinkwrap",
>> cl::init(false),
>>
>> Modified: llvm/trunk/test/Other/new-pm-defaults.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pm-defaults.ll?rev=342387&r1=342386&r2=342387&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/Other/new-pm-defaults.ll (original)
>> +++ llvm/trunk/test/Other/new-pm-defaults.ll Mon Sep 17 05:24:55 2018
>> @@ -121,6 +121,10 @@
>> ; CHECK-O-NEXT: Running pass: SROA
>> ; CHECK-O-NEXT: Running pass: EarlyCSEPass
>> ; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
>> +; CHECK-O-NEXT: Running pass: GVNHoistPass on foo
>> +; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
>> +; CHECK-O-NEXT: Running analysis: MemoryDependenceAnalysis on foo
>> +; CHECK-O-NEXT: Running analysis: PhiValuesAnalysis on foo
>> ; CHECK-O-NEXT: Running pass: SpeculativeExecutionPass
>> ; CHECK-O-NEXT: Running pass: JumpThreadingPass
>> ; CHECK-O-NEXT: Running analysis: LazyValueAnalysis
>> @@ -169,23 +173,13 @@
>> ; CHECK-O-NEXT: Finished Loop pass manager run.
>> ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-Os-NEXT: Running pass: GVN
>> -; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-Os-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-Oz-NEXT: Running pass: GVN
>> -; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-Oz-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-O2-NEXT: Running pass: GVN
>> -; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-O2-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-O3-NEXT: Running pass: GVN
>> -; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O-NEXT: Running pass: MemCpyOptPass
>> -; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O-NEXT: Running pass: SCCPPass
>> ; CHECK-O-NEXT: Running pass: BDCEPass
>> ; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
>> @@ -201,7 +195,6 @@
>> ; CHECK-O-NEXT: Finished llvm::Function pass manager run.
>> ; CHECK-EP-SCALAR-LATE-NEXT: Running pass: NoOpFunctionPass
>> ; CHECK-O-NEXT: Running pass: ADCEPass
>> -; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis
>> ; CHECK-O-NEXT: Running pass: SimplifyCFGPass
>> ; CHECK-O-NEXT: Running pass: InstCombinePass
>> ; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
>>
>> Modified: llvm/trunk/test/Other/new-pm-thinlto-defaults.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pm-thinlto-defaults.ll?rev=342387&r1=342386&r2=342387&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/Other/new-pm-thinlto-defaults.ll (original)
>> +++ llvm/trunk/test/Other/new-pm-thinlto-defaults.ll Mon Sep 17 05:24:55
>> 2018
>> @@ -106,6 +106,10 @@
>> ; CHECK-O-NEXT: Running pass: SROA
>> ; CHECK-O-NEXT: Running pass: EarlyCSEPass
>> ; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
>> +; CHECK-O-NEXT: Running pass: GVNHoistPass on foo
>> +; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
>> +; CHECK-O-NEXT: Running analysis: MemoryDependenceAnalysis on foo
>> +; CHECK-O-NEXT: Running analysis: PhiValuesAnalysis on foo
>> ; CHECK-O-NEXT: Running pass: SpeculativeExecutionPass
>> ; CHECK-O-NEXT: Running pass: JumpThreadingPass
>> ; CHECK-O-NEXT: Running analysis: LazyValueAnalysis
>> @@ -151,23 +155,13 @@
>> ; CHECK-O-NEXT: Finished Loop pass manager run.
>> ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-Os-NEXT: Running pass: GVN
>> -; CHECK-Os-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-Os-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-Oz-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-Oz-NEXT: Running pass: GVN
>> -; CHECK-Oz-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-Oz-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O2-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-O2-NEXT: Running pass: GVN
>> -; CHECK-O2-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-O2-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O3-NEXT: Running pass: MergedLoadStoreMotionPass
>> ; CHECK-O3-NEXT: Running pass: GVN
>> -; CHECK-O3-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-O3-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O-NEXT: Running pass: MemCpyOptPass
>> -; CHECK-O1-NEXT: Running analysis: MemoryDependenceAnalysis
>> -; CHECK-O1-NEXT: Running analysis: PhiValuesAnalysis
>> ; CHECK-O-NEXT: Running pass: SCCPPass
>> ; CHECK-O-NEXT: Running pass: BDCEPass
>> ; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
>> @@ -181,7 +175,6 @@
>> ; CHECK-O-NEXT: Running pass: LCSSAPass
>> ; CHECK-O-NEXT: Finished llvm::Function pass manager run
>> ; CHECK-O-NEXT: Running pass: ADCEPass
>> -; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis
>> ; CHECK-O-NEXT: Running pass: SimplifyCFGPass
>> ; CHECK-O-NEXT: Running pass: InstCombinePass
>> ; CHECK-O-NEXT: Finished llvm::Function pass manager run.
>>
>> Modified: llvm/trunk/test/Other/opt-O2-pipeline.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-O2-pipeline.ll?rev=342387&r1=342386&r2=342387&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/Other/opt-O2-pipeline.ll (original)
>> +++ llvm/trunk/test/Other/opt-O2-pipeline.ll Mon Sep 17 05:24:55 2018
>> @@ -59,6 +59,12 @@
>> ; CHECK-NEXT: Function Alias Analysis Results
>> ; CHECK-NEXT: Memory SSA
>> ; CHECK-NEXT: Early CSE w/ MemorySSA
>> +; CHECK-NEXT: Post-Dominator Tree Construction
>> +; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
>> +; CHECK-NEXT: Function Alias Analysis Results
>> +; CHECK-NEXT: Phi Values Analysis
>> +; CHECK-NEXT: Memory Dependence Analysis
>> +; CHECK-NEXT: Early GVN Hoisting of Expressions
>> ; CHECK-NEXT: Speculatively execute instructions if target has
>> divergent branches
>> ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
>> ; CHECK-NEXT: Function Alias Analysis Results
>>
>> Modified: llvm/trunk/test/Other/opt-O3-pipeline.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-O3-pipeline.ll?rev=342387&r1=342386&r2=342387&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/Other/opt-O3-pipeline.ll (original)
>> +++ llvm/trunk/test/Other/opt-O3-pipeline.ll Mon Sep 17 05:24:55 2018
>> @@ -62,6 +62,12 @@
>> ; CHECK-NEXT: Function Alias Analysis Results
>> ; CHECK-NEXT: Memory SSA
>> ; CHECK-NEXT: Early CSE w/ MemorySSA
>> +; CHECK-NEXT: Post-Dominator Tree Construction
>> +; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
>> +; CHECK-NEXT: Function Alias Analysis Results
>> +; CHECK-NEXT: Phi Values Analysis
>> +; CHECK-NEXT: Memory Dependence Analysis
>> +; CHECK-NEXT: Early GVN Hoisting of Expressions
>> ; CHECK-NEXT: Speculatively execute instructions if target has
>> divergent branches
>> ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
>> ; CHECK-NEXT: Function Alias Analysis Results
>>
>> Modified: llvm/trunk/test/Other/opt-Os-pipeline.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/opt-Os-pipeline.ll?rev=342387&r1=342386&r2=342387&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/Other/opt-Os-pipeline.ll (original)
>> +++ llvm/trunk/test/Other/opt-Os-pipeline.ll Mon Sep 17 05:24:55 2018
>> @@ -59,6 +59,12 @@
>> ; CHECK-NEXT: Function Alias Analysis Results
>> ; CHECK-NEXT: Memory SSA
>> ; CHECK-NEXT: Early CSE w/ MemorySSA
>> +; CHECK-NEXT: Post-Dominator Tree Construction
>> +; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
>> +; CHECK-NEXT: Function Alias Analysis Results
>> +; CHECK-NEXT: Phi Values Analysis
>> +; CHECK-NEXT: Memory Dependence Analysis
>> +; CHECK-NEXT: Early GVN Hoisting of Expressions
>> ; CHECK-NEXT: Speculatively execute instructions if target has
>> divergent branches
>> ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
>> ; CHECK-NEXT: Function Alias Analysis Results
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181001/3a40d9b6/attachment.html>
More information about the llvm-commits
mailing list