summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/cpp/breakpoint-commands/nested.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2017-05-11 15:07:38 +0000
committerMichael Kruse <llvm@meinersbur.de>2017-05-11 15:07:38 +0000
commit07e315e78032233873b894e162fff36dad2e6c97 (patch)
treea206d440e09440f222f1257cb90a1151848036ca /lldb/packages/Python/lldbsuite/test/lang/cpp/breakpoint-commands/nested.cpp
parente2c055b8c5526da1b47f4746b33a72f5f70f8514 (diff)
downloadbcm5719-llvm-07e315e78032233873b894e162fff36dad2e6c97.tar.gz
bcm5719-llvm-07e315e78032233873b894e162fff36dad2e6c97.zip
[Simplify] Remove identical scalar writes.
After DeLICM, it is possible to have two writes of the same value to the same location in the same statement when it determined that those writes do not conflict (write the same value). Teach -polly-simplify to remove one of the writes. It interferes with the pattern matching of matrix-multiplication kernels and also seem to not be optimized away by LLVM. The algorthm is simple, has O(n^2) behaviour (n = max number of MemoryAccesses in a statement) and only matches the most obvious cases, but seem to be enough to pattern-match Boost ublas gemm. Not handled cases include: - StoreInst instructions (a.k.a. explicit writes), since the value might be loaded or overwritten between the two stores. - PHINode, especially LCSSA, when the PHI value matches with on other's. - Partial writes (in preparation) llvm-svn: 302805
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/breakpoint-commands/nested.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud