LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CorrelatedExprs.cpp File Reference

#include "llvm/Transforms/Scalar.h"
#include "llvm/Constants.h"
#include "llvm/Pass.h"
#include "llvm/Function.h"
#include "llvm/Instructions.h"
#include "llvm/Type.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Support/ConstantRange.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/Statistic.h"
#include <algorithm>

Include dependency graph for CorrelatedExprs.cpp:

Go to the source code of this file.

Functions

FunctionPassllvm::createCorrelatedExpressionEliminationPass ()
static bool isBlockSimpleEnough (BasicBlock *BB)
static ValuegetReplacementOrValue (Value *V, RegionInfo &RI)
static void CalcRegionExitBlocks (BasicBlock *Header, BasicBlock *BB, std::set< BasicBlock * > &Visited, DominatorSet &DS, std::vector< BasicBlock * > &RegionExitBlocks)
static bool CheckCondition (Constant *Bound, Constant *C, Instruction::BinaryOps BO)


Function Documentation

static void CalcRegionExitBlocks BasicBlock Header,
BasicBlock BB,
std::set< BasicBlock * > &  Visited,
DominatorSet DS,
std::vector< BasicBlock * > &  RegionExitBlocks
[static]
 

Definition at line 679 of file CorrelatedExprs.cpp.

References llvm::DominatorSetBase::dominates(), E, llvm::succ_begin(), and llvm::succ_end().

static bool CheckCondition Constant Bound,
Constant C,
Instruction::BinaryOps  BO
[static]
 

Definition at line 1131 of file CorrelatedExprs.cpp.

References llvm::ConstantBool::getValue().

static Value* getReplacementOrValue Value V,
RegionInfo &  RI
[static]
 

Definition at line 493 of file CorrelatedExprs.cpp.

static bool isBlockSimpleEnough BasicBlock BB  )  [static]
 

Definition at line 384 of file CorrelatedExprs.cpp.

References llvm::BasicBlock::begin(), llvm::BasicBlock::front(), llvm::BranchInst::getCondition(), llvm::BasicBlock::getTerminator(), llvm::Value::hasOneUse(), llvm::BranchInst::isConditional(), and llvm::BasicBlock::size().


Variable Documentation

Statistic BranchRevectors("cee","Number of branches revectored") [static]
 

Statistic NumOperandsCann("cee","Number of operands canonicalized") [static]
 

Statistic NumSetCCRemoved("cee","Number of setcc instruction eliminated") [static]
 

RegisterOpt<CEE> X("cee","Correlated Expression Elimination") [static]