On 08/06/15 09:25, Richard Biener wrote:
On Thu, 4 Jun 2015, Tom de Vries wrote:
{
gsi_next (&gsi);
continue;
diff --git gcc/tree-ssa-sccvn.c gcc/tree-ssa-sccvn.c
index e417a15..449a615 100644
--- gcc/tree-ssa-sccvn.c
+++ gcc/tree-ssa-sccvn.c
@@ -85,6 +85,7 @@ along with GCC; see the file COPYING3. If not see
#include "ipa-ref.h"
#include "plugin-api.h"
#include "cgraph.h"
+#include "omp-low.h"
/* This algorithm is based on the SCC algorithm presented by Keith
Cooper and L. Taylor Simpson in "SCC-Based Value numbering"
@@ -3542,7 +3543,8 @@ visit_use (tree use)
{
if (gimple_code (stmt) == GIMPLE_PHI)
changed = visit_phi (stmt);
- else if (gimple_has_volatile_ops (stmt))
+ else if (gimple_has_volatile_ops (stmt)
+ || gimple_stmt_omp_data_i_init_p (stmt))
No.
What is the intent of these changes?
These are changes to handle the kernels region conservatively, in order to not
undo the omp-lowering before getting to the oacc-parloops pass.
Still it feels too much like the MPX mistake (maintainance cost and
compile-time cost). How can any pass "undo" omp-lowering?
I'm talking about the rewriting of the variables in terms of
.omp_data_i. Passes like copy_prop and fre undo this rewriting, and
propagate the variables from outside the kernels region back into the
kernels region, eliminating .omp_data_i.
Thanks,
- Tom