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>
llvm-svn: 168966
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());