From 90bd6e20f709e5f7fe251929e1d19db420140d19 Mon Sep 17 00:00:00 2001 From: Alexey Bader Date: Mon, 26 Apr 2021 08:44:12 +0300 Subject: [PATCH 1/2] WIP: Disable reassociate pass to reduce register pressure --- llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 176ecf8c4f194..4d33ebd5a86f6 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -427,7 +427,10 @@ void PassManagerBuilder::addFunctionSimplificationPasses( if (OptLevel > 1) MPM.add(createTailCallEliminationPass()); // Eliminate tail calls MPM.add(createCFGSimplificationPass()); // Merge & remove BBs - MPM.add(createReassociatePass()); // Reassociate expressions + // FIXME: re-association increases variables liveness and therefore register + // pressure. + if (!SYCLOptimizationMode) + MPM.add(createReassociatePass()); // Reassociate expressions // Begin the loop pass pipeline. if (EnableSimpleLoopUnswitch) { From 1d3720b03c003fffd3cc5c549198b73b14b5dcf3 Mon Sep 17 00:00:00 2001 From: Alexey Bader Date: Wed, 23 Jun 2021 07:59:21 +0300 Subject: [PATCH 2/2] Fix formatting. --- llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 86558ccfa2454..b78098275ede1 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -438,7 +438,7 @@ void PassManagerBuilder::addFunctionSimplificationPasses( // FIXME: re-association increases variables liveness and therefore register // pressure. if (!SYCLOptimizationMode) - MPM.add(createReassociatePass()); // Reassociate expressions + MPM.add(createReassociatePass()); // Reassociate expressions // Do not run loop pass pipeline in "SYCL Optimization Mode". Loop // optimizations rely on TTI, which is not accurate for SPIR target.