aboutsummaryrefslogtreecommitdiff
path: root/flang/tools
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2025-10-08 13:04:30 +0100
committerGitHub <noreply@github.com>2025-10-08 13:04:30 +0100
commitc7fbe388938b2c9ee78a3160fedebd9bebe5d20d (patch)
tree73809387a7846fb44ba3acbd4a55842a76b58ced /flang/tools
parent482cd5fe067b0d16abd65acdc693b8d178bb1098 (diff)
downloadllvm-main.zip
llvm-main.tar.gz
llvm-main.tar.bz2
[SCEV] Pass loop pred branch as context instruction to getMinTrailingZ. (#160941)HEADmain
When computing the backedge taken count, we know that the expression must be valid just before we enter the loop. Using the terminator of the loop predecessor as context instruction for getConstantMultiple, getMinTrailingZeros allows using information from things like alignment assumptions. When a context instruction is used, the result is not cached, as it is only valid at the specific context instruction. Compile-time looks neutral: http://llvm-compile-time-tracker.com/compare.php?from=9be276ec75c087595ebb62fe11b35c1a90371a49&to=745980f5e1c8094ea1293cd145d0ef1390f03029&stat=instructions:u No impact on llvm-opt-benchmark (https://github.com/dtcxzyw/llvm-opt-benchmark/pull/2867), but leads to additonal unrolling in ~90 files across a C/C++ based corpus including LLVM on AArch64 using libc++ (which emits alignment assumptions for things like std::vector::begin). PR: https://github.com/llvm/llvm-project/pull/160941
Diffstat (limited to 'flang/tools')
0 files changed, 0 insertions, 0 deletions