aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/f95-lang.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2016-11-23 14:35:14 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2016-11-23 14:35:14 +0000
commit07ce14666601681f7638e8e955740566ce3386ec (patch)
tree439840ddfbc5c78d1509ca3b8db2e443dd4a4a5b /gcc/fortran/f95-lang.c
parent712871dde1fb2d29b4f742fababb645cd3b1dbbe (diff)
downloadgcc-07ce14666601681f7638e8e955740566ce3386ec.zip
gcc-07ce14666601681f7638e8e955740566ce3386ec.tar.gz
gcc-07ce14666601681f7638e8e955740566ce3386ec.tar.bz2
Rework subreg_get_info
This isn't intended to change the behaviour, just rewrite the existing logic in a different (and hopefully clearer) way. The new form -- particularly the part based on the "block" concept -- is easier to convert to polynomial sizes. gcc/ 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> * rtlanal.c (subreg_get_info): Use more local variables. Remark that for HARD_REGNO_NREGS_HAS_PADDING, each scalar unit occupies at least one register. Assume that full hard registers have consistent endianness. Share previously-duplicated if block. Rework the main handling so that it operates on independently- addressable YMODE-sized blocks. Use subreg_size_lowpart_offset to check lowpart offsets, without trying to find an equivalent integer mode first. Handle WORDS_BIG_ENDIAN != REG_WORDS_BIG_ENDIAN as a final register-endianness correction. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r242758
Diffstat (limited to 'gcc/fortran/f95-lang.c')
0 files changed, 0 insertions, 0 deletions