From 678de4f7098c091dcca36b28149ef081880745f5 Mon Sep 17 00:00:00 2001 From: Dmitry Sidorov Date: Fri, 25 Sep 2020 03:28:38 +0300 Subject: [PATCH] [SYCL] Disable simple unrolling alone Signed-off-by: Dmitry Sidorov --- llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 50e87f0ab684..25c4a4d31cec 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -446,9 +446,11 @@ void PassManagerBuilder::addFunctionSimplificationPasses( if (EnableLoopInterchange) MPM.add(createLoopInterchangePass()); // Interchange loops - // Unroll small loops - MPM.add(createSimpleLoopUnrollPass(OptLevel, DisableUnrollLoops, - ForgetAllSCEVInLoopUnroll)); + // Don't perform unrolling for SPIR target + if (!SYCLOptimizationMode) + // Unroll small loops + MPM.add(createSimpleLoopUnrollPass(OptLevel, DisableUnrollLoops, + ForgetAllSCEVInLoopUnroll)); addExtensionsToPM(EP_LoopOptimizerEnd, MPM); // This ends the loop pass pipelines.