mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
As of r255720, the loop pass manager will DTRT when passes update the loop info for removed loops, so they no longer need to reach into LPPassManager APIs to do this kind of transformation. This change very nearly removes the need for the LPPassManager to even be passed into loop passes - the only remaining pass that uses the LPM argument is LoopUnswitch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255797 91177308-0d34-0410-b5e6-96231b3b80d8
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
//===- llvm/Transforms/Utils/UnrollLoop.h - Unrolling utilities -*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines some loop unrolling utilities. It does not define any
|
|
// actual pass or policy, but provides a single function to perform loop
|
|
// unrolling.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H
|
|
#define LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H
|
|
|
|
#include "llvm/ADT/StringRef.h"
|
|
|
|
namespace llvm {
|
|
|
|
class AssumptionCache;
|
|
class DominatorTree;
|
|
class Loop;
|
|
class LoopInfo;
|
|
class LPPassManager;
|
|
class MDNode;
|
|
class Pass;
|
|
class ScalarEvolution;
|
|
|
|
bool UnrollLoop(Loop *L, unsigned Count, unsigned TripCount, bool AllowRuntime,
|
|
bool AllowExpensiveTripCount, unsigned TripMultiple,
|
|
LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT,
|
|
AssumptionCache *AC, bool PreserveLCSSA);
|
|
|
|
bool UnrollRuntimeLoopProlog(Loop *L, unsigned Count,
|
|
bool AllowExpensiveTripCount, LoopInfo *LI,
|
|
ScalarEvolution *SE, DominatorTree *DT,
|
|
bool PreserveLCSSA);
|
|
|
|
MDNode *GetUnrollMetadata(MDNode *LoopID, StringRef Name);
|
|
}
|
|
|
|
#endif
|