[PATCH] D22001: [DSE] Remove dead stores in end blocks containing fence

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 7 13:17:20 PDT 2016


I still think this should be the version of `isa<>` that takes a reference.

> On 2016-Jul-07, at 12:07, Anna Thomas <anna at azul.com> wrote:
> 
> Index: lib/Transforms/Scalar/DeadStoreElimination.cpp
> ===================================================================
> --- lib/Transforms/Scalar/DeadStoreElimination.cpp
> +++ lib/Transforms/Scalar/DeadStoreElimination.cpp
> @@ -771,6 +771,14 @@
>       continue;
>     }
> 
> +    // We can remove the dead stores, irrespective of the fence and its ordering
> +    // (release/acquire/seq_cst). Fences only constraints the ordering of
> +    // already visible stores, it does not make a store visible to other
> +    // threads. So, skipping over a fence does not change a store from being
> +    // dead.
> +    if (isa<FenceInst>(&*BBI))

I still think this should be:

    if (isa<FenceInst>(*BBI))

Anna, you mentioned an implicit conversion.  I don't see any implicit conversion here, though.

> +      continue;
> +
>     MemoryLocation LoadedLoc;
> 
>     // If we encounter a use of the pointer, it is no longer considered dead



More information about the llvm-commits mailing list