[PATCH] D35210: [LoopInterchange] Change cost function to use bytes in cache line.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 10 09:18:11 PDT 2017
fhahn added a reviewer: efriedma.
fhahn added a comment.
Ping. Any thoughts?
With the new cost function, 20 more loops are interchanged in SPEC2006. I manually checked the interchanged loops and all of them are expected to be interchanged due to the change. They don't look like hot loops though and there is no performance change either way in SPEC2k6:
/benchspec/CPU2006/464.h264ref/src/decoder.c:131:7:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/decoder.c:417:5:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/decoder.c:51:5:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/image.c:1838:5:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/image.c:1838:5:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/macroblock.c:527:7:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/macroblock.c:527:7:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1283:9:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1324:9:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1335:5:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1347:7:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1488:9:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1499:9:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1509:7:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:1521:9:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:2078:3:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:5013:5:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/rdopt.c:5021:7:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/transform8x8.c:593:5:
remark: Loop interchanged with enclosing loop.
/benchspec/CPU2006/464.h264ref/src/transform8x8.c:593:5:
remark: Loop interchanged with enclosing loop.
A few noticable speedups with this cost function are in the test-suite and proprietary suites on AArch64. I suspect that more benefits become apparent when some of the limitations of the LoopInterchange pass have been removed.
https://reviews.llvm.org/D35210
More information about the llvm-commits
mailing list