Noticed when codegen prepare started adding more llvm.uadd.with.overflow's, this follows
the same code path as Thumb2, removing redundant CMP's in the peephole optimiser.
Details
- Reviewers
efriedma spatel SjoerdMeijer - Commits
- rGacb628b2afb4: [ARM] Add some missing thumb1 opcodes to enable peephole optimisation of CMPs
rL354667: [ARM] Add some missing thumb1 opcodes to enable peephole optimisation of CMPs
rG89efe24eba0b: [ARM] Add some missing thumb1 opcodes to enable peephole optimisation of CMPs
rL354564: [ARM] Add some missing thumb1 opcodes to enable peephole optimisation of CMPs
Diff Detail
Event Timeline
lib/Target/ARM/ARMBaseInstrInfo.cpp | ||
---|---|---|
2936–2937 | Whoops. Forgot about this bit. |
I'd like to see testcases for all the possible add/sub opcodes, if it isn't too much work.
lib/Target/ARM/ARMBaseInstrInfo.cpp | ||
---|---|---|
2678 | The corresponding ARM/Thumb2 code checks for ADDrr; should we add the corresponding check for tADDrr? | |
2693 | I guess it's sort of orthogonal to this patch, but this list isn't complete, if it's supposed to be a list of instructions which update the NZ bits. (Missing tADC, tSBC, tAND, tORR, tEOR, tBIC, tMVN, tASRri, tASRrr, tROR, I think.) |
lib/Target/ARM/ARMBaseInstrInfo.cpp | ||
---|---|---|
2678 | Thanks, that was lost in a reshuffle I think. It does show up some machine verifier problems with this. IsThumb1 isn't being set correctly |
Can you commit the reformatting separately? It's a little confusing to distinguish which changes are actually relevant.