mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-23 16:19:52 +00:00
delinearization of arrays
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194527 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -908,6 +908,10 @@ namespace llvm {
|
||||
/// based on the current constraint.
|
||||
void updateDirection(Dependence::DVEntry &Level,
|
||||
const Constraint &CurConstraint) const;
|
||||
|
||||
bool tryDelinearize(const SCEV *SrcSCEV, const SCEV *DstSCEV,
|
||||
SmallVectorImpl<Subscript> &Pair) const;
|
||||
|
||||
public:
|
||||
static char ID; // Class identification, replacement for typeinfo
|
||||
DependenceAnalysis() : FunctionPass(ID) {
|
||||
|
||||
@@ -134,6 +134,13 @@ namespace llvm {
|
||||
//
|
||||
FunctionPass *createCostModelAnalysisPass();
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
//
|
||||
// createDelinearizationPass - This pass implements attempts to restore
|
||||
// multidimensional array indices from linearized expressions.
|
||||
//
|
||||
FunctionPass *createDelinearizationPass();
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
//
|
||||
// Minor pass prototypes, allowing us to expose them through bugpoint and
|
||||
|
||||
@@ -351,8 +351,14 @@ namespace llvm {
|
||||
static inline bool classof(const SCEV *S) {
|
||||
return S->getSCEVType() == scAddRecExpr;
|
||||
}
|
||||
};
|
||||
|
||||
/// Splits the SCEV into two vectors of SCEVs representing the subscripts
|
||||
/// and sizes of an array access. Returns the remainder of the
|
||||
/// delinearization that is the offset start of the array.
|
||||
const SCEV *delinearize(ScalarEvolution &SE,
|
||||
SmallVectorImpl<const SCEV *> &Subscripts,
|
||||
SmallVectorImpl<const SCEV *> &Sizes) const;
|
||||
};
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
/// SCEVSMaxExpr - This class represents a signed maximum selection.
|
||||
|
||||
@@ -102,6 +102,7 @@ void initializeDSEPass(PassRegistry&);
|
||||
void initializeDebugIRPass(PassRegistry&);
|
||||
void initializeDeadInstEliminationPass(PassRegistry&);
|
||||
void initializeDeadMachineInstructionElimPass(PassRegistry&);
|
||||
void initializeDelinearizationPass(PassRegistry &);
|
||||
void initializeDependenceAnalysisPass(PassRegistry&);
|
||||
void initializeDomOnlyPrinterPass(PassRegistry&);
|
||||
void initializeDomOnlyViewerPass(PassRegistry&);
|
||||
|
||||
Reference in New Issue
Block a user