This is an amazing piece of work, congratulations!

The first part has a very nice introduction to the Factor language and
compiler implementation too.

I wonder if the performance regressions were due to increased register
pressure? Factor's linear scan is pretty crappy compared to contemporary
implementations in LLVM and LuaJIT.

Doug and John are the current maintainers, I think they should probably
merge this in after the release they're planning. Or was that supposed to
be a secret :-)

On Fri, Aug 3, 2012 at 6:52 PM, Alexander J. Vondrak <
ajvond...@csupomona.edu> wrote:

>
> http://weknowmemes.com/wp-content/uploads/2012/01/op-will-surely-deliver-lets-just-wait.jpg
>
> Yes, I did actually work on the GVN pass---even got my master's degree.
>  After
> finally defending my thesis (available at
> https://github.com/ajvondrak/thesis),
> I started a teaching job at my university, which proved to be a lot of
> work.
> Thus, I didn't find time to clean up the issues I wanted to fix before
> pushing
> this to the public.  But it's been a long time, and I figured I should
> actually
> put *something* out one way or another.
>
> So, here it is: https://github.com/ajvondrak/factor/tree/gvn
>
> Right now, the global value numbering pass lives in extra/compiler/cfg/gvn,
> thus you can simply switch out the USING: in compiler.cfg.optimizer to
> give it
> a whirl.  Now that it's summer, I hope to be able to work on the broken
> parts
> some more.  To wit,
>   * I never updated the old value-numbering unit tests, so gvn-tests will
> fail
>     (whether because the global optimization changes test outcomes or just
>     because of the tweaked interface).
>   * The same tests that fail on my personal machine [1] from a load-all
>     test-all without GVN still fail using GVN.  The only previously-passing
>     tests that now fail unexpectedly were in math.vectors.simd (memory
>     protection faults), so there's something buggy going on with SIMD
> stuff.
>     (This failure isn't mentioned in the thesis because I hadn't done a
>     load-all back then.)
>
> Otherwise, the work seems interesting, if nothing else:
>   * My thesis lends some documentation to the project, I hope.
>   * With GVN, Factor still bootstraps in about the same amount of time.
>   * The GVN pass should, ideally, replace the compiler.cfg.copy-prop pass.
>   * When I ran them for my thesis a year ago, the benchmarks showed some
>     impressive improvements across the board (summarized in the PDF).
>  These
>     were run on my old single-core 3.2 GHz Pentium 4 machine with 2 GB RAM,
>     running Debian (testing).  Nowadays, on my 2.83 GHz Intel Core 2 Quad
> with
>     8 GB RAM, I get more erratic / less dramatic results.  Not sure why,
> but
>     it'd probably be interesting to find out.
>
> Factor code has been a pleasure to work with.  Hope these changes are worth
> anything.
>
> Thanks,
> --Alex Vondrak
>
> [1] Most of the failures were from DLLs I didn't have installed (libpq.so,
> libsqlite3.so, libudis86.so.0, libncursesw.so, and libblas.so for tests in
> db,
> furnace, site-watcher, webapps.mason.backend, math.blas.matrices,
> math.blas.vectors, tools.disassembler, and curses).  Other than that, some
> http
> tests failed with 500 errors (expecting 404s), io.launcher.unix had a
> killed
> process, and memcached tests fail with Connection refused (111).  Nothing
> that
> seems like a big deal.
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to