LLVM API Documentation
#include "llvm/Transforms/Scalar.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AssumptionTracker.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Defines | |
#define | AA_NAME "alignment-from-assumptions" |
#define | DEBUG_TYPE AA_NAME |
Functions | |
STATISTIC (NumLoadAlignChanged,"Number of loads changed by alignment assumptions") | |
STATISTIC (NumStoreAlignChanged,"Number of stores changed by alignment assumptions") | |
STATISTIC (NumMemIntAlignChanged,"Number of memory intrinsics changed by alignment assumptions") | |
INITIALIZE_PASS_BEGIN (AlignmentFromAssumptions, AA_NAME, aip_name, false, false) INITIALIZE_PASS_END(AlignmentFromAssumptions | |
static unsigned | getNewAlignmentDiff (const SCEV *DiffSCEV, const SCEV *AlignSCEV, ScalarEvolution *SE) |
static unsigned | getNewAlignment (const SCEV *AASCEV, const SCEV *AlignSCEV, const SCEV *OffSCEV, Value *Ptr, ScalarEvolution *SE) |
Variables | |
static const char | aip_name [] = "Alignment from assumptions" |
AA_NAME | |
false |
#define AA_NAME "alignment-from-assumptions" |
Definition at line 19 of file AlignmentFromAssumptions.cpp.
#define DEBUG_TYPE AA_NAME |
Definition at line 20 of file AlignmentFromAssumptions.cpp.
static unsigned getNewAlignment | ( | const SCEV * | AASCEV, |
const SCEV * | AlignSCEV, | ||
const SCEV * | OffSCEV, | ||
Value * | Ptr, | ||
ScalarEvolution * | SE | ||
) | [static] |
Definition at line 138 of file AlignmentFromAssumptions.cpp.
References llvm::dbgs(), DEBUG, llvm::ScalarEvolution::getMinusSCEV(), getNewAlignmentDiff(), llvm::ScalarEvolution::getNoopOrSignExtend(), llvm::ScalarEvolution::getSCEV(), and llvm::SCEV::getType().
static unsigned getNewAlignmentDiff | ( | const SCEV * | DiffSCEV, |
const SCEV * | AlignSCEV, | ||
ScalarEvolution * | SE | ||
) | [static] |
Definition at line 103 of file AlignmentFromAssumptions.cpp.
References llvm::abs64(), llvm::dbgs(), DEBUG, llvm::ScalarEvolution::getMinusSCEV(), llvm::ScalarEvolution::getMulExpr(), llvm::ScalarEvolution::getUDivExpr(), and llvm::isPowerOf2_64().
Referenced by getNewAlignment().
INITIALIZE_PASS_BEGIN | ( | AlignmentFromAssumptions | , |
AA_NAME | , | ||
aip_name | , | ||
false | , | ||
false | |||
) |
STATISTIC | ( | NumLoadAlignChanged | , |
"Number of loads changed by alignment assumptions" | |||
) |
STATISTIC | ( | NumStoreAlignChanged | , |
"Number of stores changed by alignment assumptions" | |||
) |
STATISTIC | ( | NumMemIntAlignChanged | , |
"Number of memory intrinsics changed by alignment assumptions" | |||
) |
Definition at line 90 of file AlignmentFromAssumptions.cpp.
aip_name = "Alignment from assumptions" [static] |
Definition at line 84 of file AlignmentFromAssumptions.cpp.
Definition at line 90 of file AlignmentFromAssumptions.cpp.