forked from OSchip/llvm-project
Factor code out to the Transform Utils library
llvm-svn: 2519
This commit is contained in:
parent
9b55e5a2f4
commit
3d3f4df710
|
@ -7,8 +7,6 @@
|
|||
#ifndef LLVM_TRANSFORMS_SCALAR_CONSTANT_PROPOGATION_H
|
||||
#define LLVM_TRANSFORMS_SCALAR_CONSTANT_PROPOGATION_H
|
||||
|
||||
#include "llvm/BasicBlock.h"
|
||||
class TerminatorInst;
|
||||
class Pass;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -16,20 +14,6 @@ class Pass;
|
|||
//
|
||||
Pass *createConstantPropogationPass();
|
||||
|
||||
// doConstantPropogation - Constant prop a specific instruction. Returns true
|
||||
// and potentially moves the iterator if constant propogation was performed.
|
||||
//
|
||||
bool doConstantPropogation(BasicBlock *BB, BasicBlock::iterator &I);
|
||||
|
||||
// ConstantFoldTerminator - If a terminator instruction is predicated on a
|
||||
// constant value, convert it into an unconditional branch to the constant
|
||||
// destination. This is a nontrivial operation because the successors of this
|
||||
// basic block must have their PHI nodes updated.
|
||||
//
|
||||
bool ConstantFoldTerminator(BasicBlock *BB, BasicBlock::iterator &I,
|
||||
TerminatorInst *T);
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Sparse Conditional Constant Propogation Pass
|
||||
//
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
//===-- DCE.h - Functions that perform Dead Code Elimination -----*- C++ -*--=//
|
||||
//===-- DCE.h - Passes that perform Dead Code Elimination --------*- C++ -*--=//
|
||||
//
|
||||
// This family of functions is useful for performing dead code elimination of
|
||||
// various sorts.
|
||||
// This family of passes is useful for performing dead code elimination of
|
||||
// various strengths.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_TRANSFORMS_SCALAR_DCE_H
|
||||
#define LLVM_TRANSFORMS_SCALAR_DCE_H
|
||||
|
||||
#include "llvm/Function.h"
|
||||
#include "llvm/BasicBlock.h"
|
||||
class Pass;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -33,15 +31,6 @@ Pass *createDeadInstEliminationPass();
|
|||
|
||||
Pass *createDeadCodeEliminationPass();
|
||||
|
||||
// dceInstruction - Inspect the instruction at *BBI and figure out if it's
|
||||
// [trivially] dead. If so, remove the instruction and update the iterator
|
||||
// to point to the instruction that immediately succeeded the original
|
||||
// instruction.
|
||||
//
|
||||
bool dceInstruction(BasicBlock::InstListType &BBIL,
|
||||
BasicBlock::iterator &BBI);
|
||||
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// AgressiveDCE - This pass uses the SSA based Agressive DCE algorithm. This
|
||||
|
@ -50,16 +39,4 @@ bool dceInstruction(BasicBlock::InstListType &BBIL,
|
|||
//
|
||||
Pass *createAgressiveDCEPass();
|
||||
|
||||
|
||||
// SimplifyCFG - This function is used to do simplification of a CFG. For
|
||||
// example, it adjusts branches to branches to eliminate the extra hop, it
|
||||
// eliminates unreachable basic blocks, and does other "peephole" optimization
|
||||
// of the CFG. It returns true if a modification was made, and returns an
|
||||
// iterator that designates the first element remaining after the block that
|
||||
// was deleted.
|
||||
//
|
||||
// WARNING: The entry node of a method may not be simplified.
|
||||
//
|
||||
bool SimplifyCFG(Function::iterator &BBIt);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue