|
|
|||
File indexing completed on 2026-05-10 08:44:43
0001 //===- LoopRotationUtils.h - Utilities to perform loop rotation -*- C++ -*-===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 // 0009 // This file provides utilities to convert a loop into a loop with bottom test. 0010 // 0011 //===----------------------------------------------------------------------===// 0012 0013 #ifndef LLVM_TRANSFORMS_UTILS_LOOPROTATIONUTILS_H 0014 #define LLVM_TRANSFORMS_UTILS_LOOPROTATIONUTILS_H 0015 0016 namespace llvm { 0017 0018 class AssumptionCache; 0019 class DominatorTree; 0020 class Loop; 0021 class LoopInfo; 0022 class MemorySSAUpdater; 0023 class ScalarEvolution; 0024 struct SimplifyQuery; 0025 class TargetTransformInfo; 0026 0027 /// Convert a loop into a loop with bottom test. It may 0028 /// perform loop latch simplication as well if the flag RotationOnly 0029 /// is false. The flag Threshold represents the size threshold of the loop 0030 /// header. If the loop header's size exceeds the threshold, the loop rotation 0031 /// will give up. The flag IsUtilMode controls the heuristic used in the 0032 /// LoopRotation. If it is true, the profitability heuristic will be ignored. 0033 bool LoopRotation(Loop *L, LoopInfo *LI, const TargetTransformInfo *TTI, 0034 AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE, 0035 MemorySSAUpdater *MSSAU, const SimplifyQuery &SQ, 0036 bool RotationOnly, unsigned Threshold, bool IsUtilMode, 0037 bool PrepareForLTO = false); 0038 0039 } // namespace llvm 0040 0041 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|