This is an archive of the discontinued LLVM Phabricator instance.

[OPENMP] Remove unnecessary code generation of firstprivate clause for target directive in nvptx
AbandonedPublic

Authored by carlo.bertolli on Mar 24 2016, 6:55 PM.

Details

Summary

This patch removes code generation of firstprivate clause for target when compiling for nvptx. By using appropriate map types, the OpenMP offloading runtime already allocates a variable in gpu memory and copies the host value into it. This can be used directly by the target region as firstprivate value.

This modification is an optimization of the current support as it removes the need of allocating a further variable in the target region.

Diff Detail

Repository
rL LLVM

Event Timeline

carlo.bertolli retitled this revision from to [OPENMP] Remove unnecessary code generation of firstprivate clause for target directive in nvptx.
carlo.bertolli updated this object.
carlo.bertolli set the repository for this revision to rL LLVM.
ABataev edited edge metadata.EditedMar 29 2016, 8:10 PM

Update patch to the latest version. It is not allowed to override CodeGen sequences in runtime. They must be universal and all must be defined in CGStmtOpenMP.cpp only

carlo.bertolli abandoned this revision.Jun 11 2016, 9:24 AM

Codegen of region bodies should not be specialized based on target.