This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: A plan for eliminating cc0
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Paul Schlie <schlie at comcast dot net>
- Cc: Ian Lance Taylor <ian at airs dot com>, <gcc at gcc dot gnu dot org>
- Date: 26 Apr 2005 19:20:27 -0300
- Subject: Re: A plan for eliminating cc0
- Organization: Red Hat Global Engineering Services Compiler Team
- References: <BE6D0270.99EC%schlie@comcast.net>
On Mar 28, 2005, Paul Schlie <schlie@comcast.net> wrote:
> More specifically, if GCC enabled set to optionally specify multiple targets
> for a single rtl source expression, i.e.:
> (set ((reg:xx %0) (reg CC) ...) (some-expression:xx ...))
There's always (set (parallel (...)) (some-expression)). We use
parallels with similar semantics in cumulative function arguments, so
this wouldn't be entirely new, but I suppose most rtl handlers would
need a bit of work to fully understand the implications of this.
Also, the fact that reg CC has a different mode might require some
further tweaking.
Given this, we could figure out some way to create lisp-like macros to
translate input shorthands such as (set_cc (match_operand) (value))
into the uglier (set (parallel (match_operand) (cc0)) (value)),
including the possibility of a port introducing multiple
variants/modes for set_cc, corresponding to different sets of flags
that various instructions may set.
--
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}