aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2021-09-21 08:54:49 +0200
committerThomas Schwinge <thomas@codesourcery.com>2021-09-21 12:38:44 +0200
commite87789f197e47259c94349821d3446f7d959e08f (patch)
tree162ed834715661ddbf2389ce359d2a7f969031fa
parent4e7a92c0ff3871d955ca8fb133f869b216d7224d (diff)
Evaluate 'random ()' to '0' in 'pass_omp_oacc_neuter_broadcast'
Julian Brown, <http://mid.mail-archive.com/20210920134603.16459021@squid.athome>: | [...] the randomness shouldn't be necessary for the | correctness of the patch (i.e. it could just be "base = bounds_lo", or | indeed folded into the line after). | | The "ar.invalid ()" case happens when we fail to allocate a block of | memory in LDS space for broadcasting a particular set of variables, | and trigger a fall-back path in the broadcasting code that adds extra | barriers around the broadcast in question. I imagine I was thinking | that adding randomness could mean we can "get lucky" sometimes and | avoid needing those barriers in some cases, but in fact I don't think | that was implemented, so the randomness is useless. (Or it could just | have been leftover debug code... oops). gcc/ PR other/102408 * omp-oacc-neuter-broadcast.cc (oacc_do_neutering): Evaluate 'random ()' to '0'.
-rw-r--r--gcc/omp-oacc-neuter-broadcast.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/omp-oacc-neuter-broadcast.cc b/gcc/omp-oacc-neuter-broadcast.cc
index aa5990ed7a1..e43338f3abf 100644
--- a/gcc/omp-oacc-neuter-broadcast.cc
+++ b/gcc/omp-oacc-neuter-broadcast.cc
@@ -1782,9 +1782,8 @@ oacc_do_neutering (unsigned HOST_WIDE_INT bounds_lo,
if (ar.invalid ())
{
- unsigned HOST_WIDE_INT base;
- base = bounds_lo + random () % 512;
- base = (base + align - 1) & ~(align - 1);
+ unsigned HOST_WIDE_INT base
+ = (bounds_lo + align - 1) & ~(align - 1);
if (base + size > bounds_hi)
error_at (UNKNOWN_LOCATION, "shared-memory region overflow");
std::pair<unsigned HOST_WIDE_INT, bool> base_inrng