[llvm-commits] [llvm] r79731 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Duncan Sands
baldrick at free.fr
Mon Aug 24 01:32:06 PDT 2009
Hi Owen,
> + // All writes to this location will have the same value, so it's ok
> + // to race on it. We only need to ensure that at least one write has
> + // succeeded before we return the pointer into the array.
unfortunately, race detectors like helgrind don't like this kind of
thing, and report it as a race. Last time I asked about it I was
told that fixing it would be too hard/expensive.
> VTs[VT.getSimpleVT().SimpleTy] = VT;
> - return &VTs[VT.getSimpleVT().SimpleTy];
> + sys::MemoryFence();
I don't think this fence actually does anything useful unless
users of the pointer do a fence before reading the contents
of the pointer. That said, I think alpha is the only platform
where you have to worry about this kind of pointer vs pointee
race.
> + return VTs + VT.getSimpleVT().SimpleTy;
> }
> }
Ciao,
Duncan.
More information about the llvm-commits
mailing list