mit-scheme-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MIT-Scheme-devel] silly RTL


From: Chris Hanson
Subject: Re: [MIT-Scheme-devel] silly RTL
Date: Sat, 14 Aug 2010 22:36:01 -0700

Well, most of that would be hard to fix, due to the frame modeling
being so dumb.

The last assignment could be removed, though; I'm a little surprised
the CSE didn't already remove it.

On Thu, Aug 12, 2010 at 8:27 PM, Taylor R Campbell <address@hidden> wrote:
> While tuning the hash table code, to which I am about to make some
> changes (mostly to simplify the code and reduce the size of the
> resulting object file, without hurting the performance of hash
> tables), I came across this silly fragment of RTL:
>
> (label label-1918)
> (assign (register #x3b) (offset (register 4) (machine-constant 0)))
> (assign (register 4) (offset-address (register 4) (machine-constant 1)))
> (assign (pre-increment (register 4) -1) (register #x3b))
> (assign (register #x45) (offset (register 4) (machine-constant 1)))
>
> The original code looked like this:
>
> (let ((hash
>       (let loop ()
>         (let ((hash ...))
>           (if (%record-ref table 9)
>               (begin (rehash-table! table) (loop))
>               hash)))))
>  (let loop ((p (vector-ref (%record-ref table 7) hash)))
>    ...))
>
> I wonder whether there's a nice way to make the RTL slightly less
> silly, short of reattaching fgopt/param.scm (after making it work, of
> course).  At first glance it seems that making it less silly would
> require reworking the frame design, though, to which the RTL generator
> is slave.
>
> _______________________________________________
> MIT-Scheme-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/mit-scheme-devel
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]