diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2013-12-09 10:46:24 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2013-12-14 10:59:26 -0800 |
commit | 23023006b946e06b6fd93786585f2f8cd4837956 (patch) | |
tree | 2f093718fb3c81390a6e96c9506748c752463cc4 /gcc/ChangeLog.subreg | |
parent | 73ee5dca233a3f6c5de125f188620efb202576e7 (diff) | |
download | gcc-hjl/subreg-class.tar.gz |
Add subreg_byte to REG_CANNOT_CHANGE_MODE_Phjl/subreg-class
Add MAYBE_VECTOR_CLASS_P for a class of registers which may be vector
registers. Add CANNOT_CHANGE_MODE_CLASS_P and replace usage of
CANNOT_CHANGE_MODE_CLASS with CANNOT_CHANGE_MODE_CLASS_P, which takes
subreg_byte and always returns true for vector mode and non-zero
subreg_byte. Use MAX_BITSIZE_MODE_ANY_MODE / BITS_PER_UNIT indicate
unknown subreg_byte.
Diffstat (limited to 'gcc/ChangeLog.subreg')
-rw-r--r-- | gcc/ChangeLog.subreg | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog.subreg b/gcc/ChangeLog.subreg new file mode 100644 index 00000000000..36987ee5dd3 --- /dev/null +++ b/gcc/ChangeLog.subreg @@ -0,0 +1,27 @@ +2013-12-14 H.J. Lu <hongjiu.lu@intel.com> + + * combine.c (subst): Pass subreg byte to REG_CANNOT_CHANGE_MODE_P. + (simplify_set): Likewise. + * emit-rtl.c (validate_subreg): Likewise. + * recog.c (register_operand): Likewise. + * rtlanal.c (simplify_subreg_regno): Likewise. + * defaults.h (MAYBE_VECTOR_CLASS_P): New macro. + * hard-reg-set.h (CANNOT_CHANGE_MODE_CLASS_P): New macro. + (REG_CANNOT_CHANGE_MODE_P): Add SUBREG_BYTE and pass it to + CANNOT_CHANGE_MODE_CLASS_P. + * postreload.c (reload_cse_simplify_set): Pass subreg byte to + CANNOT_CHANGE_MODE_CLASS_P. + (reload_cse_simplify_operands): Likewise. + * reload.c (push_reload): Likewise. + * regcprop.c (mode_change_ok): Pass unknown subreg byte to + REG_CANNOT_CHANGE_MODE_P. + * reginfo.c (record_subregs_of_mode): Likewise. + * reload1.c (choose_reload_regs): Pass subreg byte to + REG_CANNOT_CHANGE_MODE_P. + (inherit_piecemeal_p): Pass unknown subreg byte to + REG_CANNOT_CHANGE_MODE_P. + * config/i386/i386.c (ix86_cannot_change_mode_class): Don't + check mode size. + * config/i386/i386.h (MAYBE_VECTOR_CLASS_P): New macro. + * doc/tm.texi.in: Document MAYBE_VECTOR_CLASS_P. + * doc/tm.texi: Regenerated. |