public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/6] If conversion with multiple sets.
@ 2018-11-14 13:08 Robin Dapp
  2018-11-14 13:08 ` [PATCH 1/6] ifcvt: Store the number of created cmovs Robin Dapp
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Robin Dapp @ 2018-11-14 13:08 UTC (permalink / raw)
  To: gcc-patches; +Cc: krebbel, iii

Hi,

the follow patch set was created in an attempt to allow multiple sets to be
if converted.  I was not able to make it work out of the box since I found the
cost estimation for the newly created sequence to always be much higher than
the sequence before.
 This is due to noce_convert_multiple_sets creating temporaries that will only
get optimized away (if at all) after the cost estimation.  Therefore, I decided
to expose the number of created conditional moves to the backend in the hope
that all temporaries get eliminated eventually.  The backend may still use the
cost estimation but currently, the original_cost is not even set up properly
when the noce_conversion_profitable_p is called.

The series also allows noce_convert_multiple_sets to use immediate operands
without moving them into a register.  Moreover it tries to only create
temporaries when needed so in the future, a cost estimation may be easier.

Regards
 Robin

--

  ifcvt: Store the number of created cmovs.
  ifcvt: Allow constants operands in noce_convert_multiple_sets.
  ifcvt: Use enum instead of transform_name string.
  S/390: Implement noce_conversion_profitable_p.
  ifcvt: Only created temporaries as needed.
  S/390: Add test for noce_convert_multiple_sets.

 gcc/config/s390/s390.c                        |  17 ++
 gcc/ifcvt.c                                   | 148 ++++++++++++++----
 gcc/ifcvt.h                                   |  71 ++++++++-
 .../gcc.target/s390/ifcvt-two-insns-int.c     |  26 +++
 4 files changed, 226 insertions(+), 36 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/s390/ifcvt-two-insns-int.c

-- 
2.17.0

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-12-01 17:33 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-14 13:08 [PATCH 0/6] If conversion with multiple sets Robin Dapp
2018-11-14 13:08 ` [PATCH 1/6] ifcvt: Store the number of created cmovs Robin Dapp
2018-11-14 20:22   ` Jeff Law
2018-11-14 13:08 ` [PATCH 5/6] ifcvt: Only created temporaries as needed Robin Dapp
2018-11-14 21:41   ` Jeff Law
2018-11-15 11:38     ` Robin Dapp
2018-11-21  0:21       ` Jeff Law
2018-11-14 13:08 ` [PATCH 6/6] S/390: Add test for noce_convert_multiple_sets Robin Dapp
2018-11-14 13:08 ` [PATCH 4/6] S/390: Implement noce_conversion_profitable_p Robin Dapp
2018-11-14 13:08 ` [PATCH 2/6] ifcvt: Allow constants operands in noce_convert_multiple_sets Robin Dapp
2018-11-14 21:38   ` Jeff Law
2018-11-15 11:37     ` Robin Dapp
2018-12-01 17:33       ` Jeff Law
2018-11-14 13:08 ` [PATCH 3/6] ifcvt: Use enum instead of transform_name string Robin Dapp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).