summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.subreg
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2013-12-09 10:46:24 -0800
committerH.J. Lu <hjl.tools@gmail.com>2013-12-14 10:59:26 -0800
commit23023006b946e06b6fd93786585f2f8cd4837956 (patch)
tree2f093718fb3c81390a6e96c9506748c752463cc4 /gcc/ChangeLog.subreg
parent73ee5dca233a3f6c5de125f188620efb202576e7 (diff)
downloadgcc-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.subreg27
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.