- User Since
- Nov 19 2016, 5:25 PM (130 w, 6 d)
Apr 19 2019
Apr 17 2019
Apr 12 2019
Apr 6 2019
Apr 2 2019
Mar 28 2019
I have a branch on gitlab for LIKELY pragmas which includes this work.
Mar 4 2019
Jan 24 2019
Jan 2 2019
Dec 29 2018
Dec 26 2018
Dec 24 2018
Abandoned in favour of D5469
Dec 23 2018
Dec 21 2018
Comparing a hash is certainly a cleaner solution.
Dec 13 2018
One thing to watch out for is full-laziness floating out the actual work and then sharing it between iterations. (I've seen that in one of the nofib benchmarks when I adjusted the runtimes).
Dec 11 2018
Dec 10 2018
- Improve desugaring and surface syntax.
- Fix some bugs in the simplifier where we used to drop the weight.
It just occurred to me while talking to @jmct that we could also just throw away the result and not compare it as well, if it's only about measuring compression speed.
Dec 8 2018
Dec 5 2018
@bgamari Reminder to put this also into 8.8
Hard to say which optimization makes how much of an difference, but at the moment this provides a 3.2% speedup over the base commit on nofib.
However compile times also go up by 2%.
- Wip - likely pragmas
Dec 4 2018
Submodules, how do they work.
Nov 30 2018
Nofib showed a 2% improvement in runtime after the rebase. The Layout changes paying off it seems.
Rebase, add option to allocate registers along the hot code path first.
Nov 29 2018
First of this is a great idea!
Nov 28 2018
That's the assembler error, -Wa,-mbig-obj should have fixed that.
what exactly was the error that made you think this was needed @bgamari ?
CI doesn't lie I also get
Nov 27 2018
There seems to be some sort of syntax error in your changes.
checking whether C compiler has an LLVM back end... no checking Setting up CFLAGS, LDFLAGS, IGNORE_LINKER_LD_FLAGS and CPPFLAGS... ./configure: line 9512: syntax error near unexpected token `when' ./configure: line 9512: ` case $target when'
Nov 25 2018
I've looked at this a bit and the big issue I see is repeated spilling/reloading of live vars.
Nov 23 2018
Nofib results on a really quite machine. (Sandy bridge xeon with no background load).
So runtime results should be accurate up to +/- 0.1%.
Nov 22 2018
I rebased this as my patch broke it.
Nov 21 2018
I validated locally and it seems to fix SPJs error as well. Is it ok to merge this as is?
I guess I will try to rebase this once CI is in order again.
Nov 20 2018
Applied the suggestion and expanded/reworded the comment slightly.
- Slightly expanded the comment, applied SPJs suggestion.
LGTM, thanks for noticing and fixing this!
Nov 19 2018
- Use right <toList> function.
Nov 17 2018
- Rebase, add release note.
Nov 16 2018
- Use foldMap to collect nodes of the cfg
- Bikeshedding of flag names
- More bikeshedding
Given that validate was broken by this I'm going to take the leap and land this.
Nov 14 2018
As I want to get this into 8.8 a last call for reviews! I will look to land this in the next two days.
Oct 22 2018
I looked at StgBinderInfo when I was looking at https://ghc.haskell.org/trac/ghc/ticket/15560 in the past.
- Add test to check response files actually work.
Oct 20 2018
Thank you for the feedback!
- Refactorings based on Phab feedback.
Oct 8 2018
The Cmm pipeline has multiple stages.
It would be good to give a reason why we allow people to hook into it at the place you suggest.
Oct 5 2018
Thanks for the review!
Sep 27 2018
- Rebase artefact
Sep 14 2018
I found some slowdowns in the binary benchmarks with this patch which can be traced back to how some Cmm files are compiled in the RTS.
Not sure if the resulting code is actually worse as that depends on the actual program, but it's definitely worse for the binary benchmarks.
Sep 7 2018
This should probably be mentioned in the Changelog as it can break existing code. (For example it breaks the packman package).
Sep 2 2018
- Update stats to account for OsX allocation results
Sep 1 2018
- Massive speed improvements for new code layout in edge cases.
Aug 30 2018
- Update flag documentation
- Remove unneccesary derived instances
Aug 28 2018
Aug 23 2018
- Add copyright notice [skip ci]
Aug 22 2018
Aug 21 2018
- Update test allocations
Aug 20 2018
- Rename test
- Remove unused import
- Line widths and minor refactorings that go along with it.
- Update flag description, make vanilla default on old layout.
- Fix info table check
- Disable new layout code on unsupported target archs
Aug 18 2018
Thanks for the feedback!
- Update note
- Add regression test
Aug 15 2018
- Remove unused parameters/imports.
Aug 14 2018
- Be more aggresive in removing dead code.
- Add last2 to get last two elements from list efficiently
- Invert cond branch jump order at the asm level in order to eliminate one.
- Decouple conditional branch weights from cmm branch order..
Aug 9 2018
- Remove space after assert