This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] rs6000: Improve rtx_costs for EQ a bit (PR30967)

This patch changes rs6000_rtx_costs to be closer to reality.  It is
still not quite right, but at least it handles more cases, so the

	(set (reg:SI) (eq:SI (reg:SI) (reg:SI)))

from the PR isn't taken as costing 1 insn anymore, while setting
a reg:DI was cost 3 insns.  The mode of the dest doesn't matter at
all here, not for any of our current scc patterns.

Testing in progress; okay for trunk?


2015-05-13  Segher Boessenkool  <>

	PR rtl-optimization/30967
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
	destination mode for the cost of scc patterns.

 gcc/config/rs6000/rs6000.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index e5b8edd..1e32144 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -30631,7 +30631,7 @@ rs6000_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED,
 		*total = COSTS_N_INSNS (2);
 	      return true;
-	  else if (mode == Pmode)
+	  else
 	      *total = COSTS_N_INSNS (3);
 	      return false;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]