Commit 61ebf091 authored by Tobias Grosser's avatar Tobias Grosser
Browse files

Remove unneeded preservation and restore of ValueMap and ClastVars in GPGPU code

generation.

We don't use the exact same way to build loop body for GPGPU codegen as openmp
codegen and other transformations do currently, in which cases 'createLoop'
function is called recursively. GPGPU codegen may fail due to improper restore
of ValueMap and ClastVars .

Contributed by:  Yabin Hu <yabin.hwu@gmail.com>

Merged from: https://llvm.org/svn/llvm-project/polly/trunk@168966

llvm-svn: 170745
parent 293e62e7
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -714,17 +714,10 @@ void ClastStmtCodeGen::codegenForGPGPU(const clast_for *F) {
    VMap.insert(std::make_pair<Value*, Value*>(OldIV, IV));
  }

  // Preserve the current values.
  const ValueMapT ValueMapCopy = ValueMap;
  const CharMapT ClastVarsCopy = ClastVars;
  updateWithVMap(VMap);
  updateWithValueMap(VMap);

  BlockGenerator::generate(Builder, *Statement, ValueMap, P);

  // Restore the original values.
  ValueMap = ValueMapCopy;
  ClastVars = ClastVarsCopy;

  if (AfterBB)
    Builder.SetInsertPoint(AfterBB->begin());