diff options
author | Vitaly Buka <vitalybuka@google.com> | 2016-07-12 06:25:32 +0000 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2016-07-12 06:25:32 +0000 |
commit | c0c43ac164b3506c50579994745dac16d2e4f9c1 (patch) | |
tree | 6ef7a59c4051f01551fcc87412a3ca695dac99ba /include | |
parent | affa7d0d7498e10e872f04818f508af6a7055bae (diff) |
Revert "New pass manager for LICM."
Summary: This reverts commit r275118.
Subscribers: sanjoy, mehdi_amini
Differential Revision: http://reviews.llvm.org/D22259
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275156 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/InitializePasses.h | 2 | ||||
-rw-r--r-- | include/llvm/Transforms/Scalar/LICM.h | 48 |
2 files changed, 1 insertions, 49 deletions
diff --git a/include/llvm/InitializePasses.h b/include/llvm/InitializePasses.h index f4db6fe6f91..b17a216d328 100644 --- a/include/llvm/InitializePasses.h +++ b/include/llvm/InitializePasses.h @@ -159,7 +159,7 @@ void initializeInternalizeLegacyPassPass(PassRegistry&); void initializeIntervalPartitionPass(PassRegistry&); void initializeJumpThreadingPass(PassRegistry&); void initializeLCSSAWrapperPassPass(PassRegistry &); -void initializeLegacyLICMPassPass(PassRegistry&); +void initializeLICMPass(PassRegistry&); void initializeLazyValueInfoWrapperPassPass(PassRegistry&); void initializeLintPass(PassRegistry&); void initializeLiveDebugValuesPass(PassRegistry&); diff --git a/include/llvm/Transforms/Scalar/LICM.h b/include/llvm/Transforms/Scalar/LICM.h deleted file mode 100644 index a050a43d617..00000000000 --- a/include/llvm/Transforms/Scalar/LICM.h +++ /dev/null @@ -1,48 +0,0 @@ -//===- LICM.h - Loop Invariant Code Motion Pass -------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This pass performs loop invariant code motion, attempting to remove as much -// code from the body of a loop as possible. It does this by either hoisting -// code into the preheader block, or by sinking code to the exit blocks if it is -// safe. This pass also promotes must-aliased memory locations in the loop to -// live in registers, thus hoisting and sinking "invariant" loads and stores. -// -// This pass uses alias analysis for two purposes: -// -// 1. Moving loop invariant loads and calls out of loops. If we can determine -// that a load or call inside of a loop never aliases anything stored to, -// we can hoist it or sink it like any other instruction. -// 2. Scalar Promotion of Memory - If there is a store instruction inside of -// the loop, we try to move the store to happen AFTER the loop instead of -// inside of the loop. This can only happen if a few conditions are true: -// A. The pointer stored through is loop invariant -// B. There are no stores or loads in the loop which _may_ alias the -// pointer. There are no calls in the loop which mod/ref the pointer. -// If these conditions are true, we can promote the loads and stores in the -// loop of the pointer to use a temporary alloca'd variable. We then use -// the SSAUpdater to construct the appropriate SSA form for the value. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TRANSFORMS_SCALAR_LICM_H -#define LLVM_TRANSFORMS_SCALAR_LICM_H - -#include "llvm/Analysis/LoopInfo.h" -#include "llvm/IR/PassManager.h" - -namespace llvm { - -/// Performs Loop Invariant Code Motion Pass. -class LICMPass : public PassInfoMixin<LICMPass> { -public: - PreservedAnalyses run(Loop &L, AnalysisManager<Loop> &AM); -}; -} // end namespace llvm - -#endif // LLVM_TRANSFORMS_SCALAR_LICM_H |