[PATCH][Arm] Remove constraint strings from define_expand constructs in the back end

Dennis Zhang Dennis.Zhang@arm.com
Mon Jun 24 15:13:00 GMT 2019


Hi,

A number of Arm define_expand patterns have specified constraints for 
their operands. But the constraint strings are ignored at expand time 
and are therefore redundant/useless. We now avoid specifying constraints 
in new define_expands, but we should clean up the existing define_expand 
definitions.

For example, the constraint "=r" is removed in the following case:
(define_expand "reload_inhi"
     [(parallel [(match_operand:HI 0 "s_register_operand" "=r")
The "" marks with an empty constraint in define_expand are removed as well.

The patch is tested with the build configuration of 
--target=arm-linux-gnueabi and it passes gcc/testsuite.

Thanks,
Dennis

gcc/ChangeLog:

2019-06-21  Dennis Zhang  <dennis.zhang@arm.com>

       * config/arm/arm-fixed.md: Remove redundant constraints from
       define_expand.
       * config/arm/arm.md: Likewise.
       * config/arm/iwmmxt.md: Likewise.
       * config/arm/neon.md: Likewise.
       * config/arm/sync.md: Likewise.
       * config/arm/thumb1.md: Likewise.
       * config/arm/vec-common.md: Likewise.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: remove-define_expand-constrain-20190620-2-arm.diff
Type: text/x-patch
Size: 108064 bytes
Desc: remove-define_expand-constrain-20190620-2-arm.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20190624/a99a2277/attachment.bin>


More information about the Gcc-patches mailing list