[PATCH] D63474: [ARM] Comply with rules on ARMv8-A thumb mode partial deprecation of IT.
Huihui Zhang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 17 22:00:15 PDT 2019
huihuiz created this revision.
huihuiz added reviewers: efriedma, lebedev.ri, t.p.northover, jmolloy, aemerson, compnerd, stoklund.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar.
Herald added a project: LLVM.
When identifing instructions that can be folded into a MOVCC instruction,
checking for a predicate operand is not enough, also need to check for
thumb2 function, with restrict-IT, is the machine instruction eligible for
ARMv8 IT or not.
Notes in ARMv8-A Architecture Reference Manual, section "Partial deprecation of IT"
https://usermanual.wiki/Pdf/ARM20Architecture20Reference20ManualARMv8.1667877052.pdf
"ARMv8-A deprecates some uses of the T32 IT instruction. All uses of IT that apply to
instructions other than a single subsequent 16-bit instruction from a restricted set
are deprecated, as are explicit references to the PC within that single 16-bit
instruction. This permits the non-deprecated forms of IT and subsequent instructions
to be treated as a single 32-bit conditional instruction."
Repository:
rL LLVM
https://reviews.llvm.org/D63474
Files:
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
llvm/lib/Target/ARM/ARMBaseInstrInfo.h
llvm/test/CodeGen/ARM/2014-08-04-muls-it.ll
llvm/test/CodeGen/ARM/CGP/arm-cgp-icmps.ll
llvm/test/CodeGen/ARM/CGP/arm-cgp-signed-icmps.ll
llvm/test/CodeGen/ARM/arm-and-tst-peephole.ll
llvm/test/CodeGen/ARM/hoist-and-by-const-from-lshr-in-eqcmp-zero.ll
llvm/test/CodeGen/ARM/hoist-and-by-const-from-shl-in-eqcmp-zero.ll
llvm/test/CodeGen/Thumb2/v8_deprecate_IT.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63474.205250.patch
Type: text/x-patch
Size: 11465 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190618/6e84c691/attachment.bin>
More information about the llvm-commits
mailing list