LLVM API Documentation

UnrollLoop.h
Go to the documentation of this file.
00001 //===- llvm/Transforms/Utils/UnrollLoop.h - Unrolling utilities -*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file defines some loop unrolling utilities. It does not define any
00011 // actual pass or policy, but provides a single function to perform loop
00012 // unrolling.
00013 //
00014 //===----------------------------------------------------------------------===//
00015 
00016 #ifndef LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H
00017 #define LLVM_TRANSFORMS_UTILS_UNROLLLOOP_H
00018 
00019 namespace llvm {
00020 
00021 class AssumptionTracker;
00022 class Loop;
00023 class LoopInfo;
00024 class LPPassManager;
00025 class Pass;
00026 
00027 bool UnrollLoop(Loop *L, unsigned Count, unsigned TripCount, bool AllowRuntime,
00028                 unsigned TripMultiple, LoopInfo *LI, Pass *PP,
00029                 LPPassManager *LPM, AssumptionTracker *AT);
00030 
00031 bool UnrollRuntimeLoopProlog(Loop *L, unsigned Count, LoopInfo *LI,
00032                              LPPassManager* LPM);
00033 }
00034 
00035 #endif