aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <florian.hahn@arm.com>2018-11-01 19:25:00 +0000
committerFlorian Hahn <florian.hahn@arm.com>2018-11-01 19:25:00 +0000
commitc8bd6ea35e459169cbd401372e81168ed8482536 (patch)
tree015e76894fd87c5c12b1929062d653d8adf4906e /clang/lib/Frontend/CompilerInvocation.cpp
parent3f756fbabe58e2eb03ea0e4f56aac08e4eb59477 (diff)
downloadllvm-c8bd6ea35e459169cbd401372e81168ed8482536.zip
llvm-c8bd6ea35e459169cbd401372e81168ed8482536.tar.gz
llvm-c8bd6ea35e459169cbd401372e81168ed8482536.tar.bz2
[LoopInterchange] Remove support for inner-only reductions.
Inner-loop only reductions require additional checks to make sure they form a load-phi-store cycle across inner and outer loop. Otherwise the reduction value is not properly preserved. This patch disables interchanging such loops for now, as it causes miscompiles in some cases and it seems to apply only for a tiny amount of loops. Across the test-suite, SPEC2000 and SPEC2006, 61 instead of 62 loops are interchange with inner loop reduction support disabled. With -loop-interchange-threshold=-1000, 3256 instead of 3267. See the discussion and history of D53027 for an outline of how such legality checks could look like. Reviewers: efriedma, mcrosier, davide Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D53027 llvm-svn: 345877
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions