public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Patch 0/9: IRA cleanups and preparations for tracking subwords of DImode
@ 2010-06-18 14:08 Bernd Schmidt
  2010-06-18 14:08 ` Patch 1/9: Remove dead code Bernd Schmidt
                   ` (10 more replies)
  0 siblings, 11 replies; 42+ messages in thread
From: Bernd Schmidt @ 2010-06-18 14:08 UTC (permalink / raw)
  To: GCC Patches

I will post a series of patches as a followups to this message; the goal
of it is to eventually enable us to accurately track lifetimes of
subwords of DImode values in IRA.  For an example, see PR42502.  That
testcase has one remaining problem: we generate unnecessary moves, since
IRA thinks a hard reg conflicts with a DImode value when in fact it only
conflicts with one subword.

The problem goes back to
  http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01990.html
where Kenneth removed REG_NO_CONFLICT blocks, acknowledging that this
would cause codegen regressions, but without providing any kind of
replacement for the functionality other than a promise that Vlad would
fix it in IRA.  IMO that should never have been approved, but we'd
probably have lost the functionality with the conversion to IRA anyway.

The idea behind these patches is to create a new ira_object structure
which tracks live ranges and conflicts.  In a first step, there is one
such object per allocno; the final patch will add two of them for
suitable multiword allocnos.

This patch queue is unfinished for now: the final piece, which adds
ALLOCNO_NUM_OBJECTS and the possiblity of having more than one object
per allocno, seems to be working, but I haven't tested it very much yet
and I don't think I'll get it sufficiently cleaned up before the
weekend.  So I'm posting the patches that are already done for initial
review now.

I think the initial few cleanup patches should go in in any case so I'm
asking for approval for them.  The final three patches in this
submission perform the conversion to use ira_objects and probably don't
qualify on their own, but neither do they have any significant negative
impact - only a few additional ALLOCNO_OBJECT/OBJECT_ALLOCNO
conversions.  It would be good to know if there are any objections in
principle against the approach.

None of these preliminary patches have been observed to change code
generation in any way.  With the whole set applied I've bootstrapped and
regression tested on i686-linux.


Bernd

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

end of thread, other threads:[~2011-01-27  5:42 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-18 14:08 Patch 0/9: IRA cleanups and preparations for tracking subwords of DImode Bernd Schmidt
2010-06-18 14:08 ` Patch 1/9: Remove dead code Bernd Schmidt
2010-06-18 14:11   ` Jeff Law
2010-06-18 14:09 ` Patch 2/9: Split up and reorganize some functions Bernd Schmidt
2010-06-18 18:26   ` Jeff Law
2010-06-18 19:07     ` Bernd Schmidt
2010-06-21 16:08       ` Jeff Law
2010-06-21 16:21         ` Bernd Schmidt
2010-06-18 14:10 ` Patch 3/9: create some more small helper functions Bernd Schmidt
2010-06-18 22:07   ` Jeff Law
2010-06-18 14:11 ` Patch 4/9: minor formatting fix Bernd Schmidt
2010-06-18 14:19   ` Jeff Law
2010-06-18 14:12 ` Patch 5/9: rename allocno_set to minmax_set Bernd Schmidt
2010-06-18 14:42   ` Jeff Law
2010-06-18 14:25 ` Patch 6/9: remove "allocno" from live_range_t Bernd Schmidt
2010-06-18 18:16   ` Jeff Law
2010-06-25  2:22     ` Bernd Schmidt
2010-06-25  3:16       ` Jeff Law
2010-06-18 14:37 ` Patch 7/9: Introduce ira_object_t Bernd Schmidt
2010-06-18 22:07   ` Jeff Law
2010-06-18 14:48 ` Patch 8/9: track live ranges for objects Bernd Schmidt
2010-06-18 22:41   ` Jeff Law
2010-06-18 15:26 ` Patch 9/9: change FOR_EACH_ALLOCNO_CONFLICT to use objects Bernd Schmidt
2010-06-22  1:45   ` Jeff Law
2010-06-18 20:02 ` Patch 0/9: IRA cleanups and preparations for tracking subwords of DImode Vladimir N. Makarov
2010-06-18 20:11   ` Jeff Law
2010-06-21 18:01 ` Patch 10/9: track subwords of DImode allocnos Bernd Schmidt
2010-07-06 23:49   ` Ping: " Bernd Schmidt
2010-07-13 20:43   ` Jeff Law
2010-07-13 21:10     ` Bernd Schmidt
2010-07-13 22:01       ` Vladimir Makarov
2010-07-14  2:00         ` Bernd Schmidt
2010-07-22 18:00           ` Nathan Froyd
2010-07-22 18:25             ` Bernd Schmidt
2010-07-22 18:50               ` Nathan Froyd
2010-07-22 22:35                 ` Bernd Schmidt
2010-07-25  1:23                   ` H.J. Lu
2011-01-27  8:39                     ` H.J. Lu
2010-07-20 14:28         ` Bernd Schmidt
2010-07-20 14:44           ` Vladimir Makarov
2010-07-22 15:49             ` Bernd Schmidt
2010-07-14 19:06       ` Jeff Law

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).