aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-parloops.c
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2019-09-18 19:52:09 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2019-09-18 19:52:09 +0000
commit1ea956609a5a4ac12841ef86353995bd434fa1ef (patch)
tree04a0a7e9b8668596a3050d3f99b2ce21094b21d6 /gcc/tree-parloops.c
parent7706f2f312a87b0c8509cccc986d6372dcd2fbcf (diff)
downloadgcc-1ea956609a5a4ac12841ef86353995bd434fa1ef.zip
gcc-1ea956609a5a4ac12841ef86353995bd434fa1ef.tar.gz
gcc-1ea956609a5a4ac12841ef86353995bd434fa1ef.tar.bz2
[ARM] Add logical DImode expanders
We currently use default mid-end expanders for logical DImode operations. These split operations without first splitting off complex immediates or memory operands. The resulting expansions are non-optimal and allow for fewer LDRD/STRD opportunities. So add back explicit expanders which ensure memory operands and immediates are handled more efficiently. gcc/ PR target/91738 * config/arm/arm.md (<logical_op>di3): Expand explicitly. (one_cmpldi2): Likewise. * config/arm/arm.c (const_ok_for_dimode_op): Return true if one of the constant parts is simple. * config/arm/iterators.md (LOGICAL): Add new code iterator. (logical_op): Add new code attribute. (logical_OP): Likewise. * config/arm/predicates.md (arm_anddi_operand): Add predicate. (arm_iordi_operand): Add predicate. (arm_xordi_operand): Add predicate. From-SVN: r275907
Diffstat (limited to 'gcc/tree-parloops.c')
0 files changed, 0 insertions, 0 deletions