public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Robin Dapp <rdapp@linux.ibm.com>
To: gcc-patches@gcc.gnu.org
Cc: krebbel@linux.ibm.com, iii@linux.ibm.com
Subject: [PATCH 0/6] If conversion with multiple sets.
Date: Wed, 14 Nov 2018 13:08:00 -0000	[thread overview]
Message-ID: <20181114130752.5057-1-rdapp@linux.ibm.com> (raw)

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

             reply	other threads:[~2018-11-14 13:08 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-14 13:08 Robin Dapp [this message]
2018-11-14 13:08 ` [PATCH 3/6] ifcvt: Use enum instead of transform_name string 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 4/6] S/390: Implement noce_conversion_profitable_p Robin Dapp
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 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 1/6] ifcvt: Store the number of created cmovs Robin Dapp
2018-11-14 20:22   ` Jeff Law

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181114130752.5057-1-rdapp@linux.ibm.com \
    --to=rdapp@linux.ibm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=iii@linux.ibm.com \
    --cc=krebbel@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).