[PATCH] D60294: [DAGCombiner] [CodeGenPrepare] WIP/RFC Splitting large offsets from base addresses
Luís Marques via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 16 04:23:04 PDT 2019
luismarques updated this revision to Diff 195351.
luismarques added a comment.
Herald added a subscriber: qcolombet.
This updates the patch to:
1. Add a check for `N0.hasOneUse()`, as suggested by Eli Friedman;
2. Changes the shuffling indices of the ARM `vector-spilling.ll` test, to ensure the desired multi-register vector spills and restores are generated;
3. Updates the ARM `misched-fusion-aes.ll` AES fusion test checks to account for the new instruction scheduling. We still seem to have the desired number of fusable instructions, just in a different order.
Those two tests would remain broken even if you always gave the OK to reassociate in `reassociationCanBreakAddressingModePattern`. With these changes the remaining failing tests should be:
Failing Tests (3):
LLVM :: CodeGen/AMDGPU/salu-to-valu.ll
LLVM :: CodeGen/SystemZ/int-sub-05.ll
LLVM :: CodeGen/SystemZ/int-add-08.ll
I'll look more closely into those tests. If necessary we can tweak the reassociation gating for those.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D60294/new/
https://reviews.llvm.org/D60294
Files:
lib/CodeGen/CodeGenPrepare.cpp
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/Target/RISCV/RISCVISelLowering.h
test/CodeGen/ARM/misched-fusion-aes.ll
test/CodeGen/ARM/vector-spilling.ll
test/CodeGen/RISCV/split-offsets-1.ll
test/CodeGen/RISCV/split-offsets-2.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60294.195351.patch
Type: text/x-patch
Size: 12162 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190416/3e7688da/attachment.bin>
More information about the llvm-commits
mailing list