Commit 958f5a06 authored by Patrick Flynn's avatar Patrick Flynn Committed by Patrick McCormick
Browse files

Fixed slight error and warnings created when a 1-D array is used

parent d63e63c0
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -198,7 +198,7 @@ CodeGenFunction::EmitKokkosParallelForInductionVar(const LambdaExpr *Lambda) {
  
  std::queue<const ParmVarDecl*> params;
  
  for (int i = 0; i<MD->getNumParams(); i++) {
  for (unsigned int i = 0; i<MD->getNumParams(); i++) {
    const ParmVarDecl *InductionVarDecl = MD->getParamDecl(i);
    assert(InductionVarDecl && "EmitKokkosParallelFor() -- bad loop variable decl!");
    
@@ -276,12 +276,12 @@ bool CodeGenFunction::EmitKokkosParallelFor(const CallExpr *CE,
    const InitListExpr *StartingBounds = dyn_cast<InitListExpr>(CXXTO->getArg(0)->IgnoreImplicit());
    const InitListExpr *UpperBounds = dyn_cast<InitListExpr>(CXXTO->getArg(1)->IgnoreImplicit());
    
    for (int i = 0; i<StartingBounds->getNumInits(); i++) {
    for (unsigned int i = 0; i<StartingBounds->getNumInits(); i++) {
        const Expr *val = StartingBounds->getInit(i)->IgnoreImplicit();
        StartQueue.push(val);
    }
    
    for (int i = 0; i<UpperBounds->getNumInits(); i++) {
    for (unsigned int i = 0; i<UpperBounds->getNumInits(); i++) {
      const Expr *val = UpperBounds->getInit(i)->IgnoreImplicit();
      DimQueue.push(val);
    }
@@ -311,11 +311,16 @@ bool CodeGenFunction::EmitKokkosParallelFor(const CallExpr *CE,
  const ParmVarDecl *InductionVarDecl = params.front();
  params.pop();
  
  if (StartQueue.size() == 0) {
    llvm::Value *Zero = llvm::ConstantInt::get(ConvertType(InductionVarDecl->getType()), 0);
    Builder.CreateStore(Zero, GetAddrOfLocalVar(InductionVarDecl));
  } else {
    const Expr *SE = StartQueue.front();
    StartQueue.pop();
    
    llvm::Value *LoopStart = EmitScalarExpr(SE);
    Builder.CreateStore(LoopStart, GetAddrOfLocalVar(InductionVarDecl));
  }

  // Extract a conveince block and setup the lexical scope based on
  // the lambda's source range.