mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
[LoopUnrollAndJam] Allow unroll and jam loops forced by user.
Summary: Allow unroll and jam loops forced by user. LoopUnrollAndJamPass is still disabled by default in the NPM pipeline, and can be controlled by -enable-npm-unroll-and-jam. Reviewed By: Meinersbur, dmgreen Differential Revision: https://reviews.llvm.org/D87786
This commit is contained in:
parent
868b57b4b2
commit
ce3c753838
@ -288,6 +288,13 @@ tryToUnrollAndJamLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
|
||||
None, None, None, None, None);
|
||||
TargetTransformInfo::PeelingPreferences PP =
|
||||
gatherPeelingPreferences(L, SE, TTI, None, None);
|
||||
|
||||
TransformationMode EnableMode = hasUnrollAndJamTransformation(L);
|
||||
if (EnableMode & TM_Disable)
|
||||
return LoopUnrollResult::Unmodified;
|
||||
if (EnableMode & TM_ForcedByUser)
|
||||
UP.UnrollAndJam = true;
|
||||
|
||||
if (AllowUnrollAndJam.getNumOccurrences() > 0)
|
||||
UP.UnrollAndJam = AllowUnrollAndJam;
|
||||
if (UnrollAndJamThreshold.getNumOccurrences() > 0)
|
||||
@ -300,10 +307,6 @@ tryToUnrollAndJamLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
|
||||
<< L->getHeader()->getParent()->getName() << "] Loop %"
|
||||
<< L->getHeader()->getName() << "\n");
|
||||
|
||||
TransformationMode EnableMode = hasUnrollAndJamTransformation(L);
|
||||
if (EnableMode & TM_Disable)
|
||||
return LoopUnrollResult::Unmodified;
|
||||
|
||||
// A loop with any unroll pragma (enabling/disabling/count/etc) is left for
|
||||
// the unroller, so long as it does not explicitly have unroll_and_jam
|
||||
// metadata. This means #pragma nounroll will disable unroll and jam as well
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: opt -loop-unroll-and-jam -allow-unroll-and-jam -unroll-runtime -unroll-partial-threshold=60 < %s -S | FileCheck %s
|
||||
; RUN: opt -aa-pipeline=tbaa,basic-aa -passes='loop-unroll-and-jam' -allow-unroll-and-jam -unroll-runtime -unroll-partial-threshold=60 < %s -S | FileCheck %s
|
||||
; RUN: opt -loop-unroll-and-jam -unroll-runtime -unroll-partial-threshold=60 < %s -S | FileCheck %s
|
||||
; RUN: opt -aa-pipeline=tbaa,basic-aa -passes='loop-unroll-and-jam' -unroll-runtime -unroll-partial-threshold=60 < %s -S | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
Loading…
x
Reference in New Issue
Block a user