diff options
| -rw-r--r-- | polly/lib/CodeGen/BlockGenerators.cpp | 75 | ||||
| -rw-r--r-- | polly/lib/CodeGen/Cloog.cpp | 16 | ||||
| -rw-r--r-- | polly/lib/CodeGen/CodeGeneration.cpp | 24 | ||||
| -rw-r--r-- | polly/lib/CodeGen/IslAst.cpp | 18 | ||||
| -rw-r--r-- | polly/lib/CodeGen/IslCodeGeneration.cpp | 38 | 
5 files changed, 84 insertions, 87 deletions
diff --git a/polly/lib/CodeGen/BlockGenerators.cpp b/polly/lib/CodeGen/BlockGenerators.cpp index 051e52dd4f9..cb7937e6c56 100644 --- a/polly/lib/CodeGen/BlockGenerators.cpp +++ b/polly/lib/CodeGen/BlockGenerators.cpp @@ -43,8 +43,8 @@ SCEVCodegen("polly-codegen-scev", cl::desc("Use SCEV based code generation."),  namespace {  class IslGenerator {  public: -  IslGenerator(IRBuilder<> &Builder, std::vector<Value *> &IVS) : -    Builder(Builder), IVS(IVS) {} +  IslGenerator(IRBuilder<> &Builder, std::vector<Value *> &IVS) +      : Builder(Builder), IVS(IVS) {}    Value *generateIslInt(__isl_take isl_int Int);    Value *generateIslAff(__isl_take isl_aff *Aff);    Value *generateIslPwAff(__isl_take isl_pw_aff *PwAff); @@ -87,8 +87,9 @@ Value *IslGenerator::generateIslAff(__isl_take isl_aff *Aff) {    unsigned int NbInputDims = isl_aff_dim(Aff, isl_dim_in); -  assert((IVS.size() == NbInputDims) && "The Dimension of Induction Variables" -         "must match the dimension of the affine space."); +  assert((IVS.size() == NbInputDims) && +         "The Dimension of Induction Variables must match the dimension of the " +         "affine space.");    isl_int CoefficientIsl;    isl_int_init(CoefficientIsl); @@ -118,10 +119,10 @@ int IslGenerator::mergeIslAffValues(__isl_take isl_set *Set,                                      __isl_take isl_aff *Aff, void *User) {    IslGenInfo *GenInfo = (IslGenInfo *)User; -  assert((GenInfo->Result == NULL) && "Result is already set." -         "Currently only single isl_aff is supported"); -  assert(isl_set_plain_is_universe(Set) -         && "Code generation failed because the set is not universe"); +  assert((GenInfo->Result == NULL) && +         "Result is already set. Currently only single isl_aff is supported"); +  assert(isl_set_plain_is_universe(Set) && +         "Code generation failed because the set is not universe");    GenInfo->Result = GenInfo->Generator->generateIslAff(Aff); @@ -140,9 +141,9 @@ Value *IslGenerator::generateIslPwAff(__isl_take isl_pw_aff *PwAff) {    return User.Result;  } - -BlockGenerator::BlockGenerator(IRBuilder<> &B, ScopStmt &Stmt, Pass *P): -  Builder(B), Statement(Stmt), P(P), SE(P->getAnalysis<ScalarEvolution>()) {} +BlockGenerator::BlockGenerator(IRBuilder<> &B, ScopStmt &Stmt, Pass *P) +    : Builder(B), Statement(Stmt), P(P), SE(P->getAnalysis<ScalarEvolution>()) { +}  bool BlockGenerator::isSCEVIgnore(const Instruction *Inst) {    if (SCEVCodegen && SE.isSCEVable(Inst->getType())) @@ -269,9 +270,8 @@ std::vector<Value *> BlockGenerator::getMemoryAccessIndex(  Value *BlockGenerator::getNewAccessOperand(      __isl_keep isl_map *NewAccessRelation, Value *BaseAddress, ValueMapT &BBMap,      ValueMapT &GlobalMap, LoopToScevMapT <S) { -  std::vector<Value *> IndexArray = -      getMemoryAccessIndex(NewAccessRelation, BaseAddress, BBMap, GlobalMap, -                           LTS); +  std::vector<Value *> IndexArray = getMemoryAccessIndex( +      NewAccessRelation, BaseAddress, BBMap, GlobalMap, LTS);    Value *NewOperand =        Builder.CreateGEP(BaseAddress, IndexArray, "p_newarrayidx_");    return NewOperand; @@ -293,9 +293,8 @@ Value *BlockGenerator::generateLocationAccessed(      NewPointer = getNewValue(Pointer, BBMap, GlobalMap, LTS);    } else {      Value *BaseAddress = const_cast<Value *>(Access.getBaseAddr()); -    NewPointer = -        getNewAccessOperand(NewAccessRelation, BaseAddress, BBMap, GlobalMap, -                            LTS); +    NewPointer = getNewAccessOperand(NewAccessRelation, BaseAddress, BBMap, +                                     GlobalMap, LTS);    }    isl_map_free(CurrentAccessRelation); @@ -303,26 +302,26 @@ Value *BlockGenerator::generateLocationAccessed(    return NewPointer;  } -Value *BlockGenerator::generateScalarLoad( -    const LoadInst *Load, ValueMapT &BBMap, ValueMapT &GlobalMap, -    LoopToScevMapT <S) { +Value * +BlockGenerator::generateScalarLoad(const LoadInst *Load, ValueMapT &BBMap, +                                   ValueMapT &GlobalMap, LoopToScevMapT <S) {    const Value *Pointer = Load->getPointerOperand();    const Instruction *Inst = dyn_cast<Instruction>(Load); -  Value *NewPointer = generateLocationAccessed(Inst, Pointer, BBMap, GlobalMap, -                                               LTS); +  Value *NewPointer = +      generateLocationAccessed(Inst, Pointer, BBMap, GlobalMap, LTS);    Value *ScalarLoad =        Builder.CreateLoad(NewPointer, Load->getName() + "_p_scalar_");    return ScalarLoad;  } -Value *BlockGenerator::generateScalarStore( -    const StoreInst *Store, ValueMapT &BBMap, ValueMapT &GlobalMap, -    LoopToScevMapT <S) { +Value * +BlockGenerator::generateScalarStore(const StoreInst *Store, ValueMapT &BBMap, +                                    ValueMapT &GlobalMap, LoopToScevMapT <S) {    const Value *Pointer = Store->getPointerOperand();    Value *NewPointer =        generateLocationAccessed(Store, Pointer, BBMap, GlobalMap, LTS); -  Value *ValueOperand = getNewValue(Store->getValueOperand(), BBMap, GlobalMap, -                                    LTS); +  Value *ValueOperand = +      getNewValue(Store->getValueOperand(), BBMap, GlobalMap, LTS);    return Builder.CreateStore(ValueOperand, NewPointer);  } @@ -366,8 +365,9 @@ void BlockGenerator::copyBB(ValueMapT &GlobalMap, LoopToScevMapT <S) {  }  VectorBlockGenerator::VectorBlockGenerator( -    IRBuilder<> &B, VectorValueMapT &GlobalMaps, std::vector<LoopToScevMapT> &VLTS, -    ScopStmt &Stmt, __isl_keep isl_map *Schedule, Pass *P) +    IRBuilder<> &B, VectorValueMapT &GlobalMaps, +    std::vector<LoopToScevMapT> &VLTS, ScopStmt &Stmt, +    __isl_keep isl_map *Schedule, Pass *P)      : BlockGenerator(B, Stmt, P), GlobalMaps(GlobalMaps), VLTS(VLTS),        Schedule(Schedule) {    assert(GlobalMaps.size() > 1 && "Only one vector lane found"); @@ -385,8 +385,9 @@ Value *VectorBlockGenerator::getVectorValue(    for (int Lane = 0; Lane < Width; Lane++)      Vector = Builder.CreateInsertElement( -        Vector, getNewValue(Old, ScalarMaps[Lane], GlobalMaps[Lane], -                            VLTS[Lane]), Builder.getInt32(Lane)); +        Vector, +        getNewValue(Old, ScalarMaps[Lane], GlobalMaps[Lane], VLTS[Lane]), +        Builder.getInt32(Lane));    VectorMap[Old] = Vector; @@ -449,8 +450,8 @@ Value *VectorBlockGenerator::generateUnknownStrideLoad(    Value *Vector = UndefValue::get(VectorType);    for (int i = 0; i < VectorWidth; i++) { -    Value *NewPointer = getNewValue(Pointer, ScalarMaps[i], GlobalMaps[i], -                                    VLTS[i]); +    Value *NewPointer = +        getNewValue(Pointer, ScalarMaps[i], GlobalMaps[i], VLTS[i]);      Value *ScalarLoad =          Builder.CreateLoad(NewPointer, Load->getName() + "_p_scalar_");      Vector = Builder.CreateInsertElement( @@ -524,8 +525,8 @@ void VectorBlockGenerator::copyStore(    if (Access.isStrideOne(isl_map_copy(Schedule))) {      Type *VectorPtrType = getVectorPtrTy(Pointer, VectorWidth); -    Value *NewPointer = getNewValue(Pointer, ScalarMaps[0], GlobalMaps[0], -                                    VLTS[0]); +    Value *NewPointer = +        getNewValue(Pointer, ScalarMaps[0], GlobalMaps[0], VLTS[0]);      Value *VectorPtr =          Builder.CreateBitCast(NewPointer, VectorPtrType, "vector_ptr"); @@ -536,8 +537,8 @@ void VectorBlockGenerator::copyStore(    } else {      for (unsigned i = 0; i < ScalarMaps.size(); i++) {        Value *Scalar = Builder.CreateExtractElement(Vector, Builder.getInt32(i)); -      Value *NewPointer = getNewValue(Pointer, ScalarMaps[i], GlobalMaps[i], -                                      VLTS[i]); +      Value *NewPointer = +          getNewValue(Pointer, ScalarMaps[i], GlobalMaps[i], VLTS[i]);        Builder.CreateStore(Scalar, NewPointer);      }    } diff --git a/polly/lib/CodeGen/Cloog.cpp b/polly/lib/CodeGen/Cloog.cpp index 4f0bef4f28a..b0917cedfd0 100644 --- a/polly/lib/CodeGen/Cloog.cpp +++ b/polly/lib/CodeGen/Cloog.cpp @@ -352,14 +352,12 @@ void CloogInfo::getAnalysisUsage(AnalysisUsage &AU) const {  }  char CloogInfo::ID = 0; -INITIALIZE_PASS_BEGIN(CloogInfo, "polly-cloog", -                      "Execute Cloog code generation", false, false) -INITIALIZE_PASS_DEPENDENCY(ScopInfo) -INITIALIZE_PASS_END(CloogInfo, "polly-cloog", -                    "Execute Cloog code generation", false, false) - -Pass *polly::createCloogInfoPass() { -  return new CloogInfo(); -} +Pass *polly::createCloogInfoPass() { return new CloogInfo(); } + +INITIALIZE_PASS_BEGIN(CloogInfo, "polly-cloog", "Execute Cloog code generation", +                      false, false); +INITIALIZE_PASS_DEPENDENCY(ScopInfo); +INITIALIZE_PASS_END(CloogInfo, "polly-cloog", "Execute Cloog code generation", +                    false, false)  #endif // CLOOG_FOUND diff --git a/polly/lib/CodeGen/CodeGeneration.cpp b/polly/lib/CodeGen/CodeGeneration.cpp index c639c7e3ab5..ebe6e7eae90 100644 --- a/polly/lib/CodeGen/CodeGeneration.cpp +++ b/polly/lib/CodeGen/CodeGeneration.cpp @@ -1037,20 +1037,20 @@ public:  char CodeGeneration::ID = 1; -INITIALIZE_PASS_BEGIN(CodeGeneration, "polly-codegen", -                      "Polly - Create LLVM-IR from SCoPs", false, false) -INITIALIZE_PASS_DEPENDENCY(CloogInfo) -INITIALIZE_PASS_DEPENDENCY(Dependences) -INITIALIZE_PASS_DEPENDENCY(DominatorTree) -INITIALIZE_PASS_DEPENDENCY(RegionInfo) -INITIALIZE_PASS_DEPENDENCY(ScalarEvolution) -INITIALIZE_PASS_DEPENDENCY(ScopDetection) -INITIALIZE_PASS_DEPENDENCY(DataLayout) -INITIALIZE_PASS_END(CodeGeneration, "polly-codegen", -                      "Polly - Create LLVM-IR from SCoPs", false, false) -  Pass *polly::createCodeGenerationPass() {    return new CodeGeneration();  } +INITIALIZE_PASS_BEGIN(CodeGeneration, "polly-codegen", +                      "Polly - Create LLVM-IR from SCoPs", false, false); +INITIALIZE_PASS_DEPENDENCY(CloogInfo); +INITIALIZE_PASS_DEPENDENCY(Dependences); +INITIALIZE_PASS_DEPENDENCY(DominatorTree); +INITIALIZE_PASS_DEPENDENCY(RegionInfo); +INITIALIZE_PASS_DEPENDENCY(ScalarEvolution); +INITIALIZE_PASS_DEPENDENCY(ScopDetection); +INITIALIZE_PASS_DEPENDENCY(DataLayout); +INITIALIZE_PASS_END(CodeGeneration, "polly-codegen", +                      "Polly - Create LLVM-IR from SCoPs", false, false) +  #endif // CLOOG_FOUND diff --git a/polly/lib/CodeGen/IslAst.cpp b/polly/lib/CodeGen/IslAst.cpp index fa3c8f68896..0eaa13b4f38 100644 --- a/polly/lib/CodeGen/IslAst.cpp +++ b/polly/lib/CodeGen/IslAst.cpp @@ -328,10 +328,10 @@ IslAst::IslAst(Scop *Scop, Dependences &D) : S(Scop) {    Function *F = Scop->getRegion().getEntry()->getParent();    DEBUG(dbgs() << ":: isl ast :: " << F->getName() -               << " :: " << Scop->getRegion().getNameStr() << "\n");; +               << " :: " << Scop->getRegion().getNameStr() << "\n"); +    DEBUG(dbgs() << S->getContextStr() << "\n"; -    isl_union_map_dump(Schedule); -  ); +        isl_union_map_dump(Schedule));    if (DetectParallel || PollyVectorizerChoice != VECTORIZER_NONE) {      BuildInfo.Deps = &D; @@ -426,15 +426,15 @@ void IslAstInfo::getAnalysisUsage(AnalysisUsage &AU) const {    AU.addRequired<ScopInfo>();    AU.addRequired<Dependences>();  } +  char IslAstInfo::ID = 0; +Pass *polly::createIslAstInfoPass() { return new IslAstInfo(); } +  INITIALIZE_PASS_BEGIN(IslAstInfo, "polly-ast", -                      "Generate an AST of the SCoP (isl)", false, false) -INITIALIZE_PASS_DEPENDENCY(ScopInfo) -INITIALIZE_PASS_DEPENDENCY(Dependences) +                      "Generate an AST of the SCoP (isl)", false, false); +INITIALIZE_PASS_DEPENDENCY(ScopInfo); +INITIALIZE_PASS_DEPENDENCY(Dependences);  INITIALIZE_PASS_END(IslAstInfo, "polly-ast",                      "Generate an AST from the SCoP (isl)", false, false) -Pass *polly::createIslAstInfoPass() { -  return new IslAstInfo(); -} diff --git a/polly/lib/CodeGen/IslCodeGeneration.cpp b/polly/lib/CodeGen/IslCodeGeneration.cpp index a87a6a51c48..398408f86e5 100644 --- a/polly/lib/CodeGen/IslCodeGeneration.cpp +++ b/polly/lib/CodeGen/IslCodeGeneration.cpp @@ -138,9 +138,9 @@ void RuntimeDebugBuilder::createIntPrinter(Value *V) {  /// @brief Calculate the Value of a certain isl_ast_expr  class IslExprBuilder {  public: -  IslExprBuilder(IRBuilder<> &Builder, -                 std::map<isl_id *, Value*> &IDToValue, Pass *P) -                : Builder(Builder), IDToValue(IDToValue) { } +  IslExprBuilder(IRBuilder<> &Builder, std::map<isl_id *, Value *> &IDToValue, +                 Pass *P) +      : Builder(Builder), IDToValue(IDToValue) {}    Value *create(__isl_take isl_ast_expr *Expr);    Type *getWidestType(Type *T1, Type *T2); @@ -539,8 +539,8 @@ Value *IslExprBuilder::create(__isl_take isl_ast_expr *Expr) {  class IslNodeBuilder {  public: -  IslNodeBuilder(IRBuilder<> &Builder, Pass *P): -    Builder(Builder), ExprBuilder(Builder, IDToValue, P), P(P) {} +  IslNodeBuilder(IRBuilder<> &Builder, Pass *P) +      : Builder(Builder), ExprBuilder(Builder, IDToValue, P), P(P) {}    void addParameters(__isl_take isl_set *Context);    void create(__isl_take isl_ast_node *Node); @@ -885,10 +885,9 @@ void IslNodeBuilder::createIf(__isl_take isl_ast_node *If) {    isl_ast_node_free(If);  } -void IslNodeBuilder::createSubstitutions(__isl_take isl_pw_multi_aff *PMA, -                                         __isl_take isl_ast_build *Context, -                                         ScopStmt *Stmt, ValueMapT &VMap, -                                         LoopToScevMapT <S) { +void IslNodeBuilder::createSubstitutions( +    __isl_take isl_pw_multi_aff *PMA, __isl_take isl_ast_build *Context, +    ScopStmt *Stmt, ValueMapT &VMap, LoopToScevMapT <S) {    for (unsigned i = 0; i < isl_pw_multi_aff_dim(PMA, isl_dim_out); ++i) {      isl_pw_aff *Aff;      isl_ast_expr *Expr; @@ -1065,17 +1064,16 @@ public:  char IslCodeGeneration::ID = 1; +Pass *polly::createIslCodeGenerationPass() { return new IslCodeGeneration(); } +  INITIALIZE_PASS_BEGIN(IslCodeGeneration, "polly-codegen-isl", -                      "Polly - Create LLVM-IR from SCoPs", false, false) -INITIALIZE_PASS_DEPENDENCY(Dependences) -INITIALIZE_PASS_DEPENDENCY(DominatorTree) -INITIALIZE_PASS_DEPENDENCY(LoopInfo) -INITIALIZE_PASS_DEPENDENCY(RegionInfo) -INITIALIZE_PASS_DEPENDENCY(ScalarEvolution) -INITIALIZE_PASS_DEPENDENCY(ScopDetection) +                      "Polly - Create LLVM-IR from SCoPs", false, false); +INITIALIZE_PASS_DEPENDENCY(Dependences); +INITIALIZE_PASS_DEPENDENCY(DominatorTree); +INITIALIZE_PASS_DEPENDENCY(LoopInfo); +INITIALIZE_PASS_DEPENDENCY(RegionInfo); +INITIALIZE_PASS_DEPENDENCY(ScalarEvolution); +INITIALIZE_PASS_DEPENDENCY(ScopDetection);  INITIALIZE_PASS_END(IslCodeGeneration, "polly-codegen-isl", -                      "Polly - Create LLVM-IR from SCoPs", false, false) +                    "Polly - Create LLVM-IR from SCoPs", false, false) -Pass *polly::createIslCodeGenerationPass() { -  return new IslCodeGeneration(); -}  | 

