A plan for eliminating cc0
Alexandre Oliva
aoliva@redhat.com
Tue Apr 26 23:08:00 GMT 2005
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}
More information about the Gcc
mailing list