[PATCH] D114611: [AVR] Expand STDWSPQRr & STDSPQRr, approach #2
Ben Shi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 19 22:14:13 PDT 2022
benshi001 added a comment.
I summary my suggestion in general, excluding some inline comments about coding details.
1. Seperate the location movement of test files into a different patch A.
2. Seperate the elimination of `AVRRelaxMemPass` / combination into `expand<AVR::STDWPtrQRr>` to a different patch B.
3. I also concern current solution is a bit agresssive, so I would like to suggest a moderate way.
3.1 Kill the function `fixStackStores` and its orginal calls.
3.2 Mark the definition of `STDWSPQRr`/`STDSPQRr` with `Defs = [R31R30]` (Most ordinary `STDWSPQRr`/`STDSPQRr` will be substituted before regalloc, so that is fine.)
3.3 Still implement `expand<AVR::STDSPQRr>` and `expand<AVR::STDWPQRr>` as current patch does, but do not substitute to `AVR::STDPtrQRr`/`AVR::STDWPtrQRr`, we should do real instruction expansion with several `buildMI` calls. Since we have marked `Defs = [R31R30]` to `STDWSPQRr`/`STDSPQRr`, it is safe to expand to
in r30, 62
in r31, 63
subiw z, offset
std z, Rsrc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114611/new/
https://reviews.llvm.org/D114611
More information about the llvm-commits
mailing list