| //===-- Transform/Utils/FunctionUtils.h - Function Utils --------*- C++ -*-===// |
| // The LLVM Compiler Infrastructure |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| //===----------------------------------------------------------------------===// |
| // This family of transformations manipulate LLVM functions. |
| //===----------------------------------------------------------------------===// |
| #ifndef LLVM_TRANSFORMS_UTILS_FUNCTION_H |
| #define LLVM_TRANSFORMS_UTILS_FUNCTION_H |
| #include "llvm/ADT/ArrayRef.h" |
| /// ExtractCodeRegion - Rip out a sequence of basic blocks into a new |
| Function* ExtractCodeRegion(DominatorTree& DT, |
| ArrayRef<BasicBlock*> code, |
| bool AggregateArgs = false); |
| /// ExtractLoop - Rip out a natural loop into a new function. |
| Function* ExtractLoop(DominatorTree& DT, Loop *L, |
| bool AggregateArgs = false); |
| /// ExtractBasicBlock - Rip out a basic block (and the associated landing pad) |
| Function* ExtractBasicBlock(ArrayRef<BasicBlock*> BBs, |
| bool AggregateArgs = false); |