RFC: (use) useful for avoiding unnecessary compare instructions during cc0->CCmode ?!

Alexandre Oliva aoliva@redhat.com
Sat May 14 23:54:00 GMT 2005


On May 14, 2005, Björn Haase <bjoern.m.haase@web.de> wrote:

> I.e. expand
> would insert two instructions after the double-set instruction that contain
> the two individual sets and an additional "use" statement. I.e. above
> sequence after expand then would look like

> (parallel[
>     (set reg:SI 100) (minus:SI (reg:SI 101) (reg:SI 102))
>     (set reg:CC CC_xxx) (compare (reg:SI 101) (reg:SI 102)))])
> (parallel[ (set reg:SI 100) (minus:SI (reg:SI 101) (reg:SI 102))
>            (use (reg:SI 100) ])
> (parallel[ (set reg:CC_xxx CC) (compare (reg:SI 101) (reg:SI 102)))
>            (use (reg:CC])

You'd then have to some how arrange for the second and third insns to
not be removed as redundant, and come up with some additional work
around for the case when there's an overlap between output and input.

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