[Bug target/71453] Spills to vector registers are sub-optimal.

2020-08-21 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71453

Hongtao.liu  changed:

   What|Removed |Added

 CC||crazylht at gmail dot com

--- Comment #7 from Hongtao.liu  ---
(In reply to CVS Commits from comment #6)
> The master branch has been updated by hongtao Liu :
> 
> https://gcc.gnu.org/g:00cb3494cab397b5655ab42fd69310883c12137c
> 
> commit r11-2793-g00cb3494cab397b5655ab42fd69310883c12137c
> Author: H.J. Lu 
> Date:   Tue Sep 3 14:41:02 2019 -0700
> 
> x86: Add cost model for operation of mask registers.
> 
> gcc/
> 

Just clarify that the whole patch set enable spilling to mask registers and has
nothing to do with spill to vector registers.

[Bug target/71453] Spills to vector registers are sub-optimal.

2020-08-20 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71453

--- Comment #6 from CVS Commits  ---
The master branch has been updated by hongtao Liu :

https://gcc.gnu.org/g:00cb3494cab397b5655ab42fd69310883c12137c

commit r11-2793-g00cb3494cab397b5655ab42fd69310883c12137c
Author: H.J. Lu 
Date:   Tue Sep 3 14:41:02 2019 -0700

x86: Add cost model for operation of mask registers.

gcc/

PR target/71453
* config/i386/i386.h (struct processor_costs): Add member
mask_to_integer, integer_to_mask, mask_load[3], mask_store[3],
mask_move.
* config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
i386_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
bdver_cost, znver1_cost, znver2_cost, skylake_cost,
btver1_cost, btver2_cost, pentium4_cost, nocona_cost,
atom_cost, slm_cost, intel_cost, generic_cost, core_cost):
Initialize mask_load[3], mask_store[3], mask_move,
integer_to_mask, mask_to_integer for all target costs.
* config/i386/i386.c (ix86_register_move_cost): Using cost
model of mask registers.
(inline_memory_move_cost): Ditto.
(ix86_register_move_cost): Ditto.

[Bug target/71453] Spills to vector registers are sub-optimal.

2019-09-03 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71453

H.J. Lu  changed:

   What|Removed |Added

 Status|SUSPENDED   |NEW
 CC|izamyatin at gmail dot com |crazylht at gmail dot 
com,
   ||skpgkp2 at gmail dot com

--- Comment #5 from H.J. Lu  ---
commit 0ccf1b9d72ec54742f14d0ded84fa34cb5a48e5b
Author: uros 
Date:   Wed Aug 28 15:09:51 2019 +

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index f3b3a9a326fd..d2d84eb11663 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -18617,9 +18617,9 @@ ix86_register_move_cost (machine_mode mode, reg_class_t
class1_i,
where integer modes in SSE registers are not tieable
because of missing QImode and HImode moves to, from or between
MMX/SSE registers.  */
-return MAX (8, SSE_CLASS_P (class1)
- ? ix86_cost->hard_register.sse_to_integer
- : ix86_cost->hard_register.integer_to_sse);
+return (SSE_CLASS_P (class1)
+  ? ix86_cost->hard_register.sse_to_integer
+  : ix86_cost->hard_register.integer_to_sse);

   if (MAYBE_FLOAT_CLASS_P (class1))
 return ix86_cost->hard_register.fp_move;

removed the cost floor on inter-unit moves.  It results in spills to
vector registers.

[Bug target/71453] Spills to vector registers are sub-optimal.

2016-06-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71453

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |SUSPENDED
   Last reconfirmed||2016-06-26
 Ever confirmed|0   |1

--- Comment #4 from Uroš Bizjak  ---
Suspended until the infrastructure is ready.

[Bug target/71453] Spills to vector registers are sub-optimal.

2016-06-26 Thread uros at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71453

--- Comment #3 from uros at gcc dot gnu.org ---
Author: uros
Date: Sun Jun 26 20:56:34 2016
New Revision: 237792

URL: https://gcc.gnu.org/viewcvs?rev=237792=gcc=rev
Log:
PR target/70902
PR target/71453
PR target/71555
PR target/71596
PR target/71657
* config/i386/i386.c (TARGET_SPILL_CLASS): #if 0 out the definition.
(ix86_spill_class): Disable to always return NO_REGS.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c