Latest working* code was at https://github.com/ajvondrak/factor/tree/gvn

*I haven't pushed any of the stuff I was experimenting on when I started having
problems with `load-all test-all`.  But before those issues, I gave up on
figuring out why math.vectors.simd tests (specifically around the
check-vector-ops tests) were causing memory protection faults with GVN enabled
(they don't with it disabled), hoping that getting gvn-tests.factor up to date
would resolve issues.  But, I got gvn-tests.factor working without needing any
changes to the GVN pass itself, so I reckon the math.vectors.simd tests will
still fail.  Hopefully one of you knows more about how to go around debugging
those tests than I do?  (If you can reproduce, anyway.)

As for the code itself, I started by copying over
basis/compiler/cfg/value-numbering/ to extra/compiler/cfg/gvn/ and changing it
there.  It was easier during development to not touch an existing compiler
pass, lest the whole listener break.

The diff between the gvn & value-numbering stuff is actually pretty small.  But
since they're different files, it might be a bit of a pain to figure some stuff
out (to make sure you like it or whatever).  I've found myself doing a lot of
`git diff --no-index` and `git merge-file basis/stuff /dev/null/ extra/stuff`
to resolve discrepancies.  Pretty sure I took care of the few changes made to
the value-numbering vocab while I was working on gvn:
https://github.com/ajvondrak/factor/commit/beff2088132d992c983ddebe5860183f01bc8b5e

Otherwise, it should be a drop-in replacement of value-numbering: just change
references to compiler.cfg.value-numbering into compiler.cfg.gvn in
math.simd.vectors.intrinsics and compiler.cfg.optimizer.

Extra things I can think of:
  - I needed to make a minor change to compiler.cfg.copy-prop due to the GVN
    changes, so that'll be in there.
  - The reason I wrote the graphviz vocab was to facilitate the fun stuff in
    https://github.com/ajvondrak/factor/blob/gvn/extra/compiler/cfg/graphviz
    and 
    https://github.com/ajvondrak/factor/tree/gvn/extra/compiler/cfg/gvn/testing
    so I could include CFG diagrams in my thesis.
  - Just last night, I tried out a fresh 0.95 download's `load-all test-all`
    (in ./factor -run=listener) on my x86_64, up-to-date Arch install (same
    hardware as before).  Still crashed, but instead of getting "out of memory"
    I got a memory protection fault from the gc.  I hope to be improving the
    GVN pass some once I can get these errors figured out.  :-/  I notice
    there's been an issue opened about load-all test-all running out of memory
    (https://github.com/slavapestov/factor/issues/633); don't know if that's in
    response to what I brought up or not.

So, I guess I kind of just went "text dump" mode there, but let me know if you
have any questions or if there's anything I can do to help.

Regards,
--Alex Vondrak

________________________________________
From: John Benediktsson [mrj...@gmail.com]
Sent: Sunday, September 09, 2012 6:58 PM
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Out of memory error

I'd love to help you work on merging your GVN patches, where did we leave it?

Best,
John.

On Sat, Aug 25, 2012 at 7:05 PM, Alexander J. Vondrak 
<ajvond...@csupomona.edu<mailto:ajvond...@csupomona.edu>> wrote:
Good idea, but still no dice.

--Alex Vondrak
________________________________________
From: Doug Coleman [doug.cole...@gmail.com<mailto:doug.cole...@gmail.com>]
Sent: Saturday, August 25, 2012 4:28 PM
To: factor-talk@lists.sourceforge.net<mailto:factor-talk@lists.sourceforge.net>
Subject: Re: [Factor-talk] Out of memory error

Are you running it in the shell listener? It might save memory.

./factor -run=listener

load-all test-all

Doug

On Sat, Aug 25, 2012 at 1:36 PM, Alexander J. Vondrak
<ajvond...@csupomona.edu<mailto:ajvond...@csupomona.edu>> wrote:
> Just did a load-all test-all with 0.94, and that crashes, too.  I know that
> I've run those tests before without running out of memory, so I suspect it's
> either an OS update issue (who knows?) or how my setup is interacting with my
> new hardware (inherited some 64-bit hardware, still using my old 32-bit Debian
> install because I've been lazy about ditching it/upgrading/what-have-you).
> Don't know if that would make sense, per se, but hell, it's not the first
> problem I've had with my current OS setup.  If no one can reproduce, it's
> probably some combination of things on my end...
>
> I'll be trying the unit tests out again once I get Arch configured on another
> hard drive on this machine.
>
> Thanks for the feedback everyone,
> --Alex Vondrak
>
> ________________________________________
> From: John Benediktsson [mrj...@gmail.com<mailto:mrj...@gmail.com>]
> Sent: Saturday, August 25, 2012 11:11 AM
> To: 
> factor-talk@lists.sourceforge.net<mailto:factor-talk@lists.sourceforge.net>
> Cc: 
> factor-talk@lists.sourceforge.net<mailto:factor-talk@lists.sourceforge.net>
> Subject: Re: [Factor-talk] Out of memory error
>
> If this is happening of 0.95 release than I wonder if we have a slow leak 
> rather than corruption - all of our builders produce consistent clean builds 
> (load-all test-all) and have for awhile.
>
> Perhaps we don't notice due to 16+ GB of RAM...?
>
>
> On Aug 25, 2012, at 11:06 AM, Joe Groff 
> <arc...@gmail.com<mailto:arc...@gmail.com>> wrote:
>
>> On Sat, Aug 25, 2012 at 1:36 PM, Jim Mack 
>> <j...@less2do.com<mailto:j...@less2do.com>> wrote:
>>> In a way, too many possible culprits mask each other.
>>>
>>> I remember a problem like this that I solved by reducing the amount of
>>> memory so the problem would show quickly, then testing small things in
>>> isolation and volume.  Pick a subset of tests and run them multiple times at
>>> low memory until it fails or becomes clear it won't.   Rinse and repeat.
>>
>> An out of memory error could also be caused by things other than a
>> lack of memory. If the heap is getting corrupted or there is a
>> compiler bug, the system could end up passing a garbage size to malloc
>> or mmap that is too big to be fulfilled.
>>
>> -Joe
>>
>> ------------------------------------------------------------------------------
>> 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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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