aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2011-05-13 13:30:18 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2011-05-13 06:30:18 -0700
commit2e7f5dc0e434647df5e36133a81500139635e131 (patch)
tree5caee0bedd5c634228bef49f6c5f9a93534704ac /gcc
parente834e95c36679e28a45cdd27b6d59ffd6b9c00f1 (diff)
downloadgcc-2e7f5dc0e434647df5e36133a81500139635e131.zip
gcc-2e7f5dc0e434647df5e36133a81500139635e131.tar.gz
gcc-2e7f5dc0e434647df5e36133a81500139635e131.tar.bz2
Change ix86_save_reg/ix86_hard_regno_mode_ok to return bool.
2011-05-13 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_save_reg): Change return type to bool. (ix86_hard_regno_mode_ok): Change return value to bool. Use can_create_pseudo_p (). From-SVN: r173731
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.c36
2 files changed, 24 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1066045..6201564 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_save_reg): Change return type to
+ bool.
+ (ix86_hard_regno_mode_ok): Change return value to bool. Use
+ can_create_pseudo_p ().
+
2011-05-13 Richard Guenther <rguenther@suse.de>
PR lto/48978
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 4539911..a23367f 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -9001,8 +9001,9 @@ ix86_select_alt_pic_regnum (void)
return INVALID_REGNUM;
}
-/* Return 1 if we need to save REGNO. */
-static int
+/* Return TRUE if we need to save REGNO. */
+
+static bool
ix86_save_reg (unsigned int regno, bool maybe_eh_return)
{
if (pic_offset_table_rtx
@@ -9011,11 +9012,7 @@ ix86_save_reg (unsigned int regno, bool maybe_eh_return)
|| crtl->profile
|| crtl->calls_eh_return
|| crtl->uses_const_pool))
- {
- if (ix86_select_alt_pic_regnum () != INVALID_REGNUM)
- return 0;
- return 1;
- }
+ return ix86_select_alt_pic_regnum () == INVALID_REGNUM;
if (crtl->calls_eh_return && maybe_eh_return)
{
@@ -9026,12 +9023,12 @@ ix86_save_reg (unsigned int regno, bool maybe_eh_return)
if (test == INVALID_REGNUM)
break;
if (test == regno)
- return 1;
+ return true;
}
}
if (crtl->drap_reg && regno == REGNO (crtl->drap_reg))
- return 1;
+ return true;
return (df_regs_ever_live_p (regno)
&& !call_used_regs[regno]
@@ -28936,7 +28933,8 @@ ix86_register_move_cost (enum machine_mode mode, reg_class_t class1_i,
return 2;
}
-/* Return 1 if hard register REGNO can hold a value of machine-mode MODE. */
+/* Return TRUE if hard register REGNO can hold a value of machine-mode
+ MODE. */
bool
ix86_hard_regno_mode_ok (int regno, enum machine_mode mode)
@@ -28947,7 +28945,7 @@ ix86_hard_regno_mode_ok (int regno, enum machine_mode mode)
if (GET_MODE_CLASS (mode) == MODE_CC
|| GET_MODE_CLASS (mode) == MODE_RANDOM
|| GET_MODE_CLASS (mode) == MODE_PARTIAL_INT)
- return 0;
+ return false;
if (FP_REGNO_P (regno))
return VALID_FP_MODE_P (mode);
if (SSE_REGNO_P (regno))
@@ -28977,26 +28975,26 @@ ix86_hard_regno_mode_ok (int regno, enum machine_mode mode)
/* Take care for QImode values - they can be in non-QI regs,
but then they do cause partial register stalls. */
if (regno <= BX_REG || TARGET_64BIT)
- return 1;
+ return true;
if (!TARGET_PARTIAL_REG_STALL)
- return 1;
- return reload_in_progress || reload_completed;
+ return true;
+ return !can_create_pseudo_p ();
}
/* We handle both integer and floats in the general purpose registers. */
else if (VALID_INT_MODE_P (mode))
- return 1;
+ return true;
else if (VALID_FP_MODE_P (mode))
- return 1;
+ return true;
else if (VALID_DFP_MODE_P (mode))
- return 1;
+ return true;
/* Lots of MMX code casts 8 byte vector modes to DImode. If we then go
on to use that value in smaller contexts, this can easily force a
pseudo to be allocated to GENERAL_REGS. Since this is no worse than
supporting DImode, allow it. */
else if (VALID_MMX_REG_MODE_3DNOW (mode) || VALID_MMX_REG_MODE (mode))
- return 1;
+ return true;
- return 0;
+ return false;
}
/* A subroutine of ix86_modes_tieable_p. Return true if MODE is a