llvm-project/llvm/test/Transforms/Scalarizer
Bjorn Pettersson a8a31fdd80 [Scalarizer] Fix a non-deterministic scatter order problem
Summary:
The indexing operator in Scatterer may result in building new
instructions. When using multiple such operators in a function
argument list the order in which we build instructions depend on
argument evaluation order (which is undefined in C++).
This patch avoid such problems by expanding the components using
the [] operator prior to the function call.

Problem was seen when comparing output, while builing LLVM with
different compilers (clang vs gcc).

Reviewers: foad, cameron.mcinally, uabelho

Reviewed By: foad

Subscribers: hiraditya, mgrang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D78455
2020-04-20 16:05:33 +02:00
..
basic.ll
cache-bug.ll
crash-bug.ll
dbginfo.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
dbgloc-bug.ll
intrinsics.ll
order-bug.ll
phi-bug.ll
phi-unreachable-pred.ll [Scalarizer] Treat values from unreachable blocks as undef 2019-11-15 11:13:37 +01:00
scatter-order.ll [Scalarizer] Fix a non-deterministic scatter order problem 2020-04-20 16:05:33 +02:00
store-bug.ll
vector-gep.ll