[Top][All Lists]
[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
>