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.