sgraf (Sebastian Graf)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 12 2017, 7:08 AM (87 w, 2 d)

Recent Activity

Yesterday

sgraf updated the summary of D5438: Stabilise GC wibbly benchmarks.
Fri, Dec 14, 7:36 AM
sgraf updated the summary of D5438: Stabilise GC wibbly benchmarks.
Fri, Dec 14, 7:30 AM
sgraf updated the diff for D5438: Stabilise GC wibbly benchmarks.
  • Stabilise fibheaps
  • Stabilise fish
  • Adjust running time for gcd
  • Stabilise comp_lab_zift
  • Stabilise event
  • Stabilise fft
  • Stabilise genfft
  • Stabilise ida
  • Adjust running time for listcompr
  • Adjust running time for listcopy
  • Adjust running time of nucleic2
  • Attempt to stabilise parstof
  • Stabilise sched
  • Stabilise solid
  • Adjust running time of transform
  • Adjust running time of typecheck
  • Stabilise wang
  • Stabilise wave4main
  • Adjust running time of integer
  • Adjust running time of knights
  • Stabilise lambda
  • Stabilise lcss
  • Stabilise life
  • Stabilise mandel
  • Stabilise mandel2
  • Adjust running time of mate
  • Stabilise minimax
  • Adjust running time of multiplier
  • Adjust running time of para
  • Stabilise power
  • Adjust running time of primetest
  • Stabilise puzzle with mild success
  • Adjust running time for rewrite
  • Stabilise simple with mild success
  • Stabilise sorting
  • Stabilise sphere
  • Stabilise treejoin
Fri, Dec 14, 7:29 AM

Thu, Dec 13

sgraf added a comment to D5438: Stabilise GC wibbly benchmarks.

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).

Assuming you only stabilize very gc heavy benchmarks just disabling full-laziness for these should be fine if you run into that.
But looks like you deal with that by always making use of the iteration variable which looks like a better solution and which should also work.

Thu, Dec 13, 4:04 AM

Wed, Dec 12

sgraf updated the summary of D5438: Stabilise GC wibbly benchmarks.
Wed, Dec 12, 10:45 AM
sgraf updated the summary of D5438: Stabilise GC wibbly benchmarks.
Wed, Dec 12, 10:44 AM
sgraf updated the diff for D5438: Stabilise GC wibbly benchmarks.
  • Adjust running time of calendar
  • Adjust runtime of cichelli
  • Stabilise circsim
  • Stabilise clausify
  • Stabilise constraints with moderate success
  • Adjust running time of cryptarithm1
  • Adjust running time of cryptarythm2
  • Adjust running time of cse
  • Adjust running time of eliza
  • Adjust running time of exact-reals
  • Adjust running time of expert
  • Stabilise fft2
Wed, Dec 12, 10:44 AM
sgraf accepted D5441: Show recursive Stg bindings in Rec {} blocks.

Makes sense IMO. Un-accept if you disagree, @bgamari.

Wed, Dec 12, 3:46 AM

Tue, Dec 11

sgraf created D5438: Stabilise GC wibbly benchmarks.
Tue, Dec 11, 9:53 AM

Mon, Dec 10

sgraf accepted D5428: Add +RTS -F to the --help output.

LGTM!

Mon, Dec 10, 2:59 AM

Fri, Dec 7

sgraf added a comment to D5414: Don't use a generic apply thunk for known calls.

I created Trac #16007 to track opportunities for code size reduction, should we eventually implement -Os.

Fri, Dec 7, 3:13 AM

Thu, Dec 6

sgraf committed rGHCdc54c07cf183: Don't use a generic apply thunk for known calls (authored by sgraf).
Don't use a generic apply thunk for known calls
Thu, Dec 6, 9:40 AM
sgraf closed D5414: Don't use a generic apply thunk for known calls.
Thu, Dec 6, 9:40 AM
sgraf updated the Trac tickets for D5414: Don't use a generic apply thunk for known calls.
Thu, Dec 6, 9:39 AM
sgraf retitled D5414: Don't use a generic apply thunk for known calls from Don't use a generic apply function for known calls to Don't use a generic apply thunk for known calls.
Thu, Dec 6, 9:26 AM
sgraf created D5418: Fix parsing of maximum residency in runstdtest.
Thu, Dec 6, 4:32 AM
sgraf added a comment to rGHCfd1cf1f47462: Disable T10962 on llvm for now.

This means we don't test D4592/D4969 for the regression in LLVM anymore. Just wanted to point that out.

Thu, Dec 6, 3:50 AM
sgraf added a comment to rGHC6243bba73d14: Add 'addWordC#' PrimOp.

This was fixed in D4969.

Thu, Dec 6, 3:43 AM
sgraf requested verification of rGHC6243bba73d14: Add 'addWordC#' PrimOp.
Thu, Dec 6, 3:43 AM
sgraf updated the Trac tickets for D4989: Adjust normal runtimes for nofib along with related changes..
Thu, Dec 6, 3:10 AM

Wed, Dec 5

sgraf updated the diff for D5414: Don't use a generic apply thunk for known calls.
  • Use unknownArity instead of 0
Wed, Dec 5, 10:49 AM
sgraf added a comment to D5414: Don't use a generic apply thunk for known calls.
In D5414#149260, @osa1 wrote:

This looks good to me. Because this trades binary size for performance should this maybe behind -O or -O2?

I'm wondering about the binary size changes in the benchmarks you highlighted. Could you also share binary size changes for those? If this can buy us -3.8% runtime for +0.1% binary size I think this is worth doing. What are the smallest and largest increase in binary size in nofib?

Wed, Dec 5, 10:48 AM
sgraf added a comment to D5414: Don't use a generic apply thunk for known calls.

Binary sizes went up by 0.1%, while these were the biggest winners (> 2%) wrt. instruction count:

Wed, Dec 5, 9:15 AM
sgraf created D5414: Don't use a generic apply thunk for known calls.
Wed, Dec 5, 8:59 AM

Sat, Dec 1

sgraf accepted D5370: Fix StgLint bound id check, generalize StgLint.

Did running -dstg-lint break anything in the testsuite? Otherwise this should be good to go! 🎉

Sat, Dec 1, 2:41 AM

Fri, Nov 30

sgraf committed rGHCf10df65fa2c9: Deduplicate decision to count thunks in `-ticky` (authored by sgraf).
Deduplicate decision to count thunks in `-ticky`
Fri, Nov 30, 10:19 AM
sgraf closed D5392: Deduplicate decision to count thunks in `-ticky`.
Fri, Nov 30, 10:19 AM
sgraf added a comment to D5392: Deduplicate decision to count thunks in `-ticky`.

I think I would probably avoid the Bool argument by having a separate dynThunkHasCounter, but up to you.

Fri, Nov 30, 4:14 AM
sgraf added inline comments to D5392: Deduplicate decision to count thunks in `-ticky`.
Fri, Nov 30, 4:04 AM

Thu, Nov 29

sgraf created D5392: Deduplicate decision to count thunks in `-ticky`.
Thu, Nov 29, 4:12 AM

Wed, Nov 28

sgraf committed rGHC4c8bf63b78f2: Add Note [Dead case binders in -O0] (authored by sgraf).
Add Note [Dead case binders in -O0]
Wed, Nov 28, 6:32 AM

Fri, Nov 23

sgraf committed rGHCb2950e03b551: Implement late lambda lift (authored by sgraf).
Implement late lambda lift
Fri, Nov 23, 9:26 AM
sgraf closed D5224: Implement late lambda lift.
Fri, Nov 23, 9:26 AM
sgraf added a comment to D5224: Implement late lambda lift.

Thanks for the review! I'll land this.

Fri, Nov 23, 9:22 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Update users guide for -O2
  • Add an overview note in StgLiftLams
Fri, Nov 23, 9:21 AM
sgraf added a comment to D5370: Fix StgLint bound id check, generalize StgLint.
In D5370#147969, @osa1 wrote:

Right, if we merge this StgLint will start to reject some correct programs. Maybe we can implement (1) in Trac #15939 in this patch to fix StgLint, then depending on future work we may switch to (3).

Fri, Nov 23, 5:43 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Only run with -O2
Fri, Nov 23, 5:34 AM
sgraf added a comment to D5224: Implement late lambda lift.

Yes, I have: +0.1% allocations and +0.5% runtime. I agree with the general sentiment, so I'll exclude it from -O1.

Fri, Nov 23, 5:31 AM
sgraf added a comment to D5370: Fix StgLint bound id check, generalize StgLint.

LGTM, but would merging this break the build? It wouldn't, because StgLint isn't run by default, right? Maybe wait until we resolve Trac #15939 anyway?
I feel a little uncomfortable with having master break as soon as someone wants to use StgLint...

Fri, Nov 23, 3:16 AM
sgraf added a comment to D5224: Implement late lambda lift.

What impact does this have on compile time? I notice that you've enabled it at both -O and -O2.

Fri, Nov 23, 3:13 AM

Thu, Nov 22

sgraf committed rNOFIBf87d446b4e36: Clean more generated files (authored by sgraf).
Clean more generated files
Thu, Nov 22, 5:41 AM
sgraf committed rNOFIB605bbb7adee3: Add binary artifacts to .gitignore (authored by sgraf).
Add binary artifacts to .gitignore
Thu, Nov 22, 5:41 AM
sgraf closed D5365: Clean more generated files.
Thu, Nov 22, 5:41 AM
sgraf closed D5366: Add binary artifacts to .gitignore.
Thu, Nov 22, 5:41 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Make liftedIdsExpander preserve the order of free vars
Thu, Nov 22, 5:31 AM
sgraf added a comment to D5224: Implement late lambda lift.

I have not read the code in detail, but broadly it looks fine.

Before finishing, we'll really need a sketch of what the analysis is analysing. And an overview of the whole thing: movtivation, placement in STG, moving parts. Without that, it's very opaque.

It's very modularly separated from the rest of the compiler, so I'm content to have it in -- and it can be very beneficial. Thanks for doing it.

Thu, Nov 22, 5:29 AM

Wed, Nov 21

sgraf created D5366: Add binary artifacts to .gitignore.
Wed, Nov 21, 4:28 AM
sgraf created D5365: Clean more generated files.
Wed, Nov 21, 4:26 AM

Tue, Nov 20

sgraf committed rNOFIB7e5619a6abe7: Fix `make clean` for `real/compress` (authored by sgraf).
Fix `make clean` for `real/compress`
Tue, Nov 20, 9:49 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Comments only
Tue, Nov 20, 9:41 AM
sgraf closed D5359: Fix `make clean` for `real/compress`.

Closed by 7e5619a6abe7ce89eb55b411736025b31410f478.

Tue, Nov 20, 9:31 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Syntactic furbelows for new Notes
  • Bring comments up to date with the rebase
  • Move an anchor around
Tue, Nov 20, 9:27 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Remove unused copy of NoExtSilent in HsExpression
Tue, Nov 20, 9:06 AM
sgraf added a comment to D5358: Remove redundant check in cgCase.

No changes in NoFib 🎉

Tue, Nov 20, 8:39 AM
sgraf added a comment to D5358: Remove redundant check in cgCase.
In D5358#147528, @osa1 wrote:

I thought we discussed this before?

  • The analysis code is just gone, so this code path can't be taken.
Tue, Nov 20, 7:51 AM
sgraf added a comment to D5358: Remove redundant check in cgCase.

I can confirm that this validates, but want to wait until I've compared NoFib to master to be certain.

Tue, Nov 20, 7:33 AM
sgraf added reviewers for D5359: Fix `make clean` for `real/compress`: AndreasK, mpickering, osa1, alpmestan.
Tue, Nov 20, 6:19 AM
sgraf created D5359: Fix `make clean` for `real/compress`.
Tue, Nov 20, 5:56 AM
sgraf added a comment to D5358: Remove redundant check in cgCase.

I don't think this works, because this will never generate the binder, even if it is alive. The correct way to do this would probably be to write unless false, which is just id.

Tue, Nov 20, 5:17 AM

Mon, Nov 19

sgraf updated the diff for D5224: Implement late lambda lift.
  • Another rebase
Mon, Nov 19, 11:21 AM
sgraf closed D5339: Remove an ancient occurrence analysis hack from StgFVs.

It seems I accidentally applied this diff when rebasing and merging D5324. Yuck.

Mon, Nov 19, 10:57 AM
sgraf committed rGHC47bbc709cb22: Don't track free variables in STG syntax by default (authored by sgraf).
Don't track free variables in STG syntax by default
Mon, Nov 19, 10:49 AM
sgraf closed D5324: Don't track free variables in STG syntax by default.
Mon, Nov 19, 10:49 AM
sgraf updated the diff for D5324: Don't track free variables in STG syntax by default.
  • Rebase
Mon, Nov 19, 10:48 AM
sgraf added a comment to D5224: Implement late lambda lift.

Unfortunately, rebasing this on top of the recent STG syntax changes led to a few complications:

Mon, Nov 19, 9:25 AM
sgraf added a child revision for D5339: Remove an ancient occurrence analysis hack from StgFVs: D5224: Implement late lambda lift.
Mon, Nov 19, 6:53 AM
sgraf added a parent revision for D5224: Implement late lambda lift: D5339: Remove an ancient occurrence analysis hack from StgFVs.
Mon, Nov 19, 6:53 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Testing if last update was successful
Mon, Nov 19, 6:52 AM
sgraf updated the diff for D5224: Implement late lambda lift.
  • Rebased on top of Phab:D5339
Mon, Nov 19, 6:49 AM
sgraf added a comment to D5324: Don't track free variables in STG syntax by default.

Sorry, had a busy weekend.

Mon, Nov 19, 2:37 AM
sgraf updated the diff for D5324: Don't track free variables in STG syntax by default.
  • Add Note [Extensible STG syntax]
Mon, Nov 19, 2:06 AM

Thu, Nov 15

sgraf added a comment to D5324: Don't track free variables in STG syntax by default.

Also note that D5315 is still pending, which this and D5339 depend on.

Thu, Nov 15, 11:28 AM
sgraf added a comment to D5324: Don't track free variables in STG syntax by default.

Rectified that alignment thing.

Thu, Nov 15, 11:27 AM
sgraf updated the diff for D5324: Don't track free variables in STG syntax by default.
  • Whitespace only
Thu, Nov 15, 11:27 AM
sgraf updated the summary of D5324: Don't track free variables in STG syntax by default.
Thu, Nov 15, 10:31 AM
sgraf added a parent revision for D5339: Remove an ancient occurrence analysis hack from StgFVs: D5324: Don't track free variables in STG syntax by default.
Thu, Nov 15, 10:27 AM
sgraf added a child revision for D5324: Don't track free variables in STG syntax by default: D5339: Remove an ancient occurrence analysis hack from StgFVs.
Thu, Nov 15, 10:27 AM
sgraf created D5339: Remove an ancient occurrence analysis hack from StgFVs.
Thu, Nov 15, 10:27 AM
sgraf added a comment to D5324: Don't track free variables in STG syntax by default.

Omitting the hack had no effect on nofib allocations (and counted instructions) whatsoever. Remove it?

Thu, Nov 15, 10:16 AM
sgraf added a comment to D5324: Don't track free variables in STG syntax by default.
In D5324#146952, @osa1 wrote:

moving the occurrence hack from CoreToStg to CoreFVs means that all STG-to-STG transformations don't have the generated dead case binder info available

This should be fine -- that information is only used in StgCmmExpr when generating code for case expressions.

Thu, Nov 15, 9:46 AM
sgraf added a comment to D5324: Don't track free variables in STG syntax by default.

Validate says this is green, but moving the occurrence hack from CoreToStg to CoreFVs means that all STG-to-STG transformations don't have the generated dead case binder info available, which might have performance implications. I'm currently measuring.

Thu, Nov 15, 7:42 AM
sgraf updated the diff for D5324: Don't track free variables in STG syntax by default.
  • Monomorphise StgFVs
  • Copy an ancient occ hack from CoreToStg
  • Removed FreeVarInfo logic from CoreToStg
Thu, Nov 15, 6:36 AM

Nov 13 2018

sgraf added a comment to D5324: Don't track free variables in STG syntax by default.

OK, I agree this still needs some work. I'm afraid that I won't have time to pick this up until thursday, so if someone wants to push this over the finish line in light of the approaching release deadline, be my guest. What remains to be done:

Nov 13 2018, 11:50 AM
sgraf added a comment to D5324: Don't track free variables in STG syntax by default.
In D5324#146660, @osa1 wrote:

Any changes in compile-time runtimes and allocations/residency?

Is there a good reason for changing the printer? I don't feel strongly about it, but it may confuse and frustrate readers, so we better have a good reason for this.

Nov 13 2018, 11:11 AM
sgraf added a comment to D5315: More compact Outputable instance for `Uniq(D)Set`.

Of course. I realised that we ''might'' want to consider sticking to brackets instead of braces, but on the other hand this would severely clash with how lists are formatted.

Nov 13 2018, 9:01 AM
sgraf updated the summary of D5315: More compact Outputable instance for `Uniq(D)Set`.
Nov 13 2018, 9:00 AM
sgraf updated the summary of D5315: More compact Outputable instance for `Uniq(D)Set`.
Nov 13 2018, 9:00 AM
sgraf committed rGHC5b98a38a32f2: Make `UniqDSet` a newtype (authored by sgraf).
Make `UniqDSet` a newtype
Nov 13 2018, 8:48 AM
sgraf closed D5313: Make `UniqDSet` a newtype.
Nov 13 2018, 8:48 AM

Nov 11 2018

sgraf accepted D5232: Remove StgBinderInfo and related computation in CoreToStg.
Nov 11 2018, 12:12 PM
sgraf added parent revisions for D5324: Don't track free variables in STG syntax by default: D5315: More compact Outputable instance for `Uniq(D)Set`, D5232: Remove StgBinderInfo and related computation in CoreToStg.
Nov 11 2018, 12:09 PM
sgraf added a child revision for D5232: Remove StgBinderInfo and related computation in CoreToStg: D5324: Don't track free variables in STG syntax by default.
Nov 11 2018, 12:09 PM
sgraf added a child revision for D5315: More compact Outputable instance for `Uniq(D)Set`: D5324: Don't track free variables in STG syntax by default.
Nov 11 2018, 12:09 PM
sgraf created D5324: Don't track free variables in STG syntax by default.
Nov 11 2018, 12:08 PM

Nov 9 2018

sgraf updated the summary of D5315: More compact Outputable instance for `Uniq(D)Set`.
Nov 9 2018, 11:55 AM
sgraf updated the summary of D5313: Make `UniqDSet` a newtype.
Nov 9 2018, 11:55 AM
sgraf added a comment to D5313: Make `UniqDSet` a newtype.

The new Outputable instance is up for review at D5315.

Nov 9 2018, 9:54 AM
sgraf added a parent revision for D5315: More compact Outputable instance for `Uniq(D)Set`: D5313: Make `UniqDSet` a newtype.
Nov 9 2018, 9:53 AM
sgraf added a child revision for D5313: Make `UniqDSet` a newtype: D5315: More compact Outputable instance for `Uniq(D)Set`.
Nov 9 2018, 9:53 AM
sgraf created D5315: More compact Outputable instance for `Uniq(D)Set`.
Nov 9 2018, 9:53 AM