This optimization turns shifts of almost a multiple of 8 into a shift
into the opposite direction. Unfortunately it doesn't compose well with
the other optimizations (I've tried) so it's separate from them.
Details
Details
Diff Detail
Diff Detail
Paths
| Differential D140572
[AVR] Optimize 32-bit shifts: reverse shift + move ClosedPublic Authored by aykevl on Dec 22 2022, 11:21 AM.
Details Summary This optimization turns shifts of almost a multiple of 8 into a shift
Diff Detail Event Timelineaykevl added a parent revision: D140571: [AVR] Optimize 32-bit shifts: shift by 4 bits.Dec 22 2022, 11:22 AM aykevl added a child revision: D140573: [AVR] Optimize 32-bit shifts: optimize REG_SEQUENCE.Dec 22 2022, 11:25 AM This revision is now accepted and ready to land.Jan 6 2023, 12:38 AM Closed by commit rGfad5e0cf50f1: [AVR] Optimize 32-bit shifts: reverse shift + move (authored by aykevl). · Explain WhyJan 8 2023, 11:06 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 485836 llvm/lib/Target/AVR/AVRISelLowering.cpp
llvm/test/CodeGen/AVR/shift32.ll
|
a tiny suggestion, this can be const int ShiftRegsIdx = I + 1; .