michalt (Michal Terepeta)
User

Projects

User does not belong to any projects.

User Details

User Since
May 10 2015, 4:40 AM (176 w, 1 d)

Recent Activity

Aug 5 2018

michalt added inline comments to D5029: Document (however vaguely) the semantics of MO_WriteBarrier.
Aug 5 2018, 12:05 PM

Aug 1 2018

michalt updated the diff for D4475: RFC: Add Int8# and Word8#.
  • Rebase
  • Relax assertion for FFI calls
  • Set omit_ways(['ghci']) for tests that use unboxed tuples
Aug 1 2018, 9:42 AM

Jul 25 2018

Ian Lynagh <igloo@earth.li> committed rGHCDIFFaa466130cdcd: Fix a comment about splitAt (fixes #1182). (authored by michalt).
Fix a comment about splitAt (fixes #1182).
Jul 25 2018, 10:59 AM
David Waern <david.waern@gmail.com> committed rGHCDIFFfcb48a16e6ae: Add a simple test for ticket #1595. (authored by michalt).
Add a simple test for ticket #1595.
Jul 25 2018, 9:29 AM
michalt committed rGHCDIFF0cfcb53b333a: Update test mod90 with the new error message. (authored by michalt).
Update test mod90 with the new error message.
Jul 25 2018, 9:26 AM
Ian Lynagh <ian@well-typed.com> committed rGHCDIFF64efee6225ac: Add fixity information to primops (ticket #6026) (authored by michalt).
Add fixity information to primops (ticket #6026)
Jul 25 2018, 7:46 AM
Ian Lynagh <igloo@earth.li> committed rGHCDIFFb1b49b88b811: Fix comments. (authored by michalt).
Fix comments.
Jul 25 2018, 7:08 AM
michalt committed rGHCDIFFd4781f3e6e8c: Optimise comparisons against min/maxBound (ticket #3744). (authored by michalt).
Optimise comparisons against min/maxBound (ticket #3744).
Jul 25 2018, 6:41 AM
michalt committed rGHCDIFF6d8766694198: Improve error message of :set in ghci (ticket #4190). (authored by michalt).
Improve error message of :set in ghci (ticket #4190).
Jul 25 2018, 6:39 AM
michalt committed rGHCDIFF4b2dd6b96864: Improve error message when importing data constructors (ticket #4058). (authored by michalt).
Improve error message when importing data constructors (ticket #4058).
Jul 25 2018, 6:39 AM
michalt committed rGHCDIFFb633499b3a95: Don't warn of duplicate exports in case of module exports. (authored by michalt).
Don't warn of duplicate exports in case of module exports.
Jul 25 2018, 6:38 AM
michalt committed rGHCDIFF94a113df234e: Fix whitespace/layout in RnNames. (authored by michalt).
Fix whitespace/layout in RnNames.
Jul 25 2018, 6:38 AM
michalt committed rGHCDIFF2cd57ecd0410: Fix whitespace and layout in PrelRules. (authored by michalt).
Fix whitespace and layout in PrelRules.
Jul 25 2018, 6:36 AM

Jul 9 2018

michalt added a comment to D4475: RFC: Add Int8# and Word8#.

Hi all, could you have another look? I think I addressed all the concerns raised so far.

Jul 9 2018, 2:28 PM

May 27 2018

michalt added inline comments to D4475: RFC: Add Int8# and Word8#.
May 27 2018, 7:04 AM
michalt updated the diff for D4475: RFC: Add Int8# and Word8#.

Address comments from simonmar

May 27 2018, 7:03 AM

May 16 2018

michalt added inline comments to D4632: An overhaul of the SRT representation.
May 16 2018, 1:30 PM

May 10 2018

michalt added a comment to D4475: RFC: Add Int8# and Word8#.

@bgamari Thanks for comments! So the plan is to go ahead with printing the conversion functions and do a few renames for consistency. Sadly I'll be able to pick this up only in about 2-3 weeks - hope that's ok. I'll ping the diff once it's ready for another round.

May 10 2018, 10:58 AM
michalt updated the diff for D4475: RFC: Add Int8# and Word8#.
  • Some renaming of primops
  • Deriving of Show
May 10 2018, 10:50 AM

May 6 2018

michalt added inline comments to D4632: An overhaul of the SRT representation.
May 6 2018, 10:25 AM
michalt created D4673: Fix a few GCC warnings.
May 6 2018, 8:00 AM

Apr 7 2018

michalt requested review of D4577: Revert "CmmPipeline: add a second pass of CmmCommonBlockElim".
Apr 7 2018, 2:26 PM
michalt added a reverting change for rGHCd5c4d46a62ce: CmmPipeline: add a second pass of CmmCommonBlockElim: D4577: Revert "CmmPipeline: add a second pass of CmmCommonBlockElim".
Apr 7 2018, 6:54 AM
michalt planned changes to D4475: RFC: Add Int8# and Word8#.

@bgamari Thanks for comments! So the plan is to go ahead with printing the conversion functions and do a few renames for consistency. Sadly I'll be able to pick this up only in about 2-3 weeks - hope that's ok. I'll ping the diff once it's ready for another round.

Apr 7 2018, 5:28 AM

Mar 12 2018

michalt updated the diff for D4493: CmmUtils: get rid of insertBlock.
  • Use IntMap.Strict in Hoopl
Mar 12 2018, 3:22 PM
michalt added inline comments to D4493: CmmUtils: get rid of insertBlock.
Mar 12 2018, 3:22 PM
michalt added inline comments to D4475: RFC: Add Int8# and Word8#.
Mar 12 2018, 3:11 PM
michalt updated the diff for D4475: RFC: Add Int8# and Word8#.
  • address comments from dfeuer
Mar 12 2018, 3:11 PM

Mar 11 2018

michalt created D4494: StgCmmMonad: emit comments in DEBUG mode.
Mar 11 2018, 12:35 PM
michalt created D4493: CmmUtils: get rid of insertBlock.
Mar 11 2018, 10:54 AM
michalt added a comment to D4475: RFC: Add Int8# and Word8#.
  • PrimRep/RuntimeRep - should we have a new constructor per new primitive type? That's what I went for since it's consistent with what we already had (we already have Int64Rep/Word64Rep)
  • How should we name the new primitive ops? In particular {zero,sign}-extending, truncating, narrowing? I'm currently using things like word8ToWord#, but I noticed that this will be quite confusing, since we already have word2Int# (also notice the To vs 2). So I was thinking of using extendWord8/narrowWord8/extendInt8#/narrowInt8#. What do you think?

I think there's a significant risk of getting too many primops. When you extend a Word8, what do you
extend it to? A Word? Will we need separate primops to convert between Word8 and Int8, etc.?
One option (kind of gross) would be to use the same RuntimeRep for Int8 as Word8, etc., and then
offer primops that work on any types with the relevant RuntimeRep. Or would that be too horrible?

Mar 11 2018, 7:59 AM

Mar 6 2018

michalt added a comment to D4475: RFC: Add Int8# and Word8#.

This is probably not ready to be merged, but I'd love to get some feedback:

Mar 6 2018, 2:30 PM
Herald added a reviewer for D4475: RFC: Add Int8# and Word8#: goldfire.
Mar 6 2018, 2:30 PM

Mar 3 2018

michalt added a comment to D4462: Get rid of more CPP in cmm/ and codeGen/.

Great cleanup!

Mar 3 2018, 2:21 PM
michalt added inline comments to D4463: cmm/: Avoid using lazy left folds.
Mar 3 2018, 2:21 PM
michalt updated the diff for D4463: cmm/: Avoid using lazy left folds.
  • Change suggested by bgamari
Mar 3 2018, 2:21 PM
michalt updated the diff for D4464: Hoopl: improve postorder calculation.
  • Remove trailing whitespace
Mar 3 2018, 10:33 AM
michalt created D4464: Hoopl: improve postorder calculation.
Mar 3 2018, 10:32 AM
michalt created D4463: cmm/: Avoid using lazy left folds.
Mar 3 2018, 10:23 AM
michalt created D4462: Get rid of more CPP in cmm/ and codeGen/.
Mar 3 2018, 8:13 AM

Feb 25 2018

michalt added a comment to D4437: Fix interpreter with profiling.

Sorry for the breakage! :/

Feb 25 2018, 6:30 AM

Feb 20 2018

michalt updated the diff for D4417: CmmPipeline: add a second pass of CmmCommonBlockElim.
  • Fix computing new_proc_points
Feb 20 2018, 1:58 PM
michalt added inline comments to D4417: CmmPipeline: add a second pass of CmmCommonBlockElim.
Feb 20 2018, 1:58 PM

Feb 17 2018

michalt created D4417: CmmPipeline: add a second pass of CmmCommonBlockElim.
Feb 17 2018, 11:32 AM

Feb 11 2018

michalt accepted D4391: Several fixes to work with ghc-head.

Thanks!

Feb 11 2018, 6:17 AM

Feb 6 2018

michalt created D4387: CBE: re-introduce bgamari's fixes.
Feb 6 2018, 1:43 PM

Feb 1 2018

michalt created D4367: cmm: Remove unnecessary HsVersion.h includes.
Feb 1 2018, 12:46 PM

Jan 30 2018

michalt created D4356: Hoopl.Collections: change right folds to strict left folds.
Jan 30 2018, 1:05 PM

Jan 22 2018

michalt accepted D4320: Fix fannkuch-redux for GHC<=8.2.
Jan 22 2018, 1:27 PM

Jan 21 2018

michalt added inline comments to D4331: Remove Hoopl.Unique.
Jan 21 2018, 12:14 PM
michalt updated the diff for D4331: Remove Hoopl.Unique.

Rename uniqueToLabel to mkHooplLabel

Jan 21 2018, 12:13 PM
michalt updated subscribers of D4331: Remove Hoopl.Unique.
Jan 21 2018, 8:09 AM
michalt created D4331: Remove Hoopl.Unique.
Jan 21 2018, 8:08 AM

Nov 5 2017

michalt accepted D4153: cmm/CBE: Fix a few more zip uses.
Nov 5 2017, 5:33 AM
michalt accepted D4152: cmm/CBE: Fix comparison between blocks of different lengths.

Oh, this is unexpected - we discussed this problem on one of the previous diffs: D3973#inline-30997 (and it fixed the problem). Unfortunately it seems D3999 re-introduced it. (I guess bad rebase?)

Nov 5 2017, 5:28 AM

Oct 1 2017

michalt accepted D4045: Eliminate trailing whitespace.

Cool, thanks!

Oct 1 2017, 11:32 AM

Sep 21 2017

michalt added a comment to D3809: Allow packing constructor fields.

You might find this (https://phabricator.haskell.org/D2903#7c4e0dd1) to be a helpful example of how to unit-test GHC.

Sep 21 2017, 12:44 PM
michalt updated the diff for D3809: Allow packing constructor fields.

Add some unit tests

Sep 21 2017, 12:44 PM
michalt added inline comments to D3999: cmm/CBE: Use foldLocalRegsDefd.
Sep 21 2017, 9:55 AM

Sep 19 2017

michalt accepted D3973: cmm/CBE: Collapse blocks equivalent up to alpha renaming of local registers.
Sep 19 2017, 3:28 PM

Sep 17 2017

michalt added a comment to D3809: Allow packing constructor fields.

Thanks for comments @bgamari and @simonmar :)

Sep 17 2017, 10:39 AM
michalt updated the diff for D3809: Allow packing constructor fields.

Address comments

Sep 17 2017, 10:38 AM
michalt added inline comments to D3973: cmm/CBE: Collapse blocks equivalent up to alpha renaming of local registers.
Sep 17 2017, 7:29 AM

Sep 16 2017

michalt requested changes to D3973: cmm/CBE: Collapse blocks equivalent up to alpha renaming of local registers.

Nice!

Sep 16 2017, 10:40 AM

Jul 31 2017

Herald added a reviewer for D3809: Allow packing constructor fields: austin.
Jul 31 2017, 1:20 PM

Jul 22 2017

michalt updated the diff for D3746: ByteCodeGen: use byte indexing for BCenv.

rebase

Jul 22 2017, 11:02 AM

Jul 18 2017

michalt added a comment to D3746: ByteCodeGen: use byte indexing for BCenv.

Marking comments as "Done"

Jul 18 2017, 2:14 PM
michalt updated the diff for D3746: ByteCodeGen: use byte indexing for BCenv.

address comments from Simon

Jul 18 2017, 2:13 PM

Jul 16 2017

michalt created D3746: ByteCodeGen: use byte indexing for BCenv.
Jul 16 2017, 7:13 AM
michalt created D3744: Interpreter.c: use macros to access/modify Sp.
Jul 16 2017, 5:03 AM

Jul 15 2017

michalt accepted D3730: gray: AMP compatibility.

Cool, thanks!

Jul 15 2017, 9:03 AM

Jul 8 2017

michalt updated subscribers of D3708: ByteCodeGen: use depth instead of offsets in BCEnv.
Jul 8 2017, 9:45 AM
michalt updated the diff for D3708: ByteCodeGen: use depth instead of offsets in BCEnv.

Use scanl' instead of scanl

Jul 8 2017, 9:41 AM

Jul 6 2017

Herald added a reviewer for D3708: ByteCodeGen: use depth instead of offsets in BCEnv: austin.
Jul 6 2017, 1:48 PM

Jul 1 2017

michalt added a comment to D3683: Add State monad benchmarks by Andras Kovacs.

Interesting stuff.

I have a meta question: I noticed that these benchmarks require a very recent GHC to run. In particular it requires GHC 8.0 or later (due to the uses of TypeApplications), which is even more recent that the earliest supported version of GHC that you can use to bootstrap GHC HEAD (7.10). Perhaps we ought to make a note of this somewhere in nofib?

Beyond that, I think we should probably have logic ensure that we only attempt to run it if we are compiling with a capable compiler. @michalt, do you know of any easy way we could accomplish this?

Jul 1 2017, 10:30 AM

Jun 19 2017

michalt requested review of D3616: Hoopl: remove dependency on Hoopl package.

Thanks Simon!

Jun 19 2017, 1:38 PM

Jun 15 2017

michalt added a comment to D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.
  • Revert perf thresholds for T13701
  • Update perf threshold for T13379 on osx

I've change the threshold for T13379 on OSX. According to the comment in the test, on OSX we already had 9% higher allocation and this patch simply pushes this above the 10% threshold. So this seems to be in line with slight increase in allocation for some programs.

But T13701 is weird. It does seem it's sensitive to the system load (?!). When validating locally with CPUS=8 it fails due to *high* allocation, when validating with CPUS=2 it fails due to too *low* allocation. So for now I've just reverted any changes I did to the thresholds (they should be the same as we currently have in HEAD).

Jun 15 2017, 1:18 PM
michalt updated subscribers of D3616: Hoopl: remove dependency on Hoopl package.
Jun 15 2017, 12:45 PM
michalt updated subscribers of D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.
Jun 15 2017, 12:45 PM

Jun 14 2017

michalt added a comment to D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.
  • Revert perf thresholds for T13701
  • Update perf threshold for T13379 on osx
Jun 14 2017, 1:45 PM
michalt updated the diff for D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.
  • Revert perf thresholds for T13701
  • Update perf threshold for T13379 on osx
Jun 14 2017, 1:41 PM

Jun 13 2017

michalt added a comment to D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.

I think you need to adjust the bounds on the perf tests again. Did T13379 regress?

Jun 13 2017, 2:55 PM
michalt updated the diff for D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.
  • Update comment and perf test
Jun 13 2017, 2:54 PM

Jun 8 2017

michalt added a comment to D3616: Hoopl: remove dependency on Hoopl package.

It sounds like there's no objectors and your proposal sounds fine to me. Thanks @michalt!

Jun 8 2017, 2:11 PM

Jun 7 2017

michalt committed rNOFIB50812b141f1a: Remove fibon (authored by michalt).
Remove fibon
Jun 7 2017, 3:47 PM

Jun 5 2017

michalt added a comment to D3616: Hoopl: remove dependency on Hoopl package.

It sounds like there's a good amount of consensus that this is a reasonable direction for now.

However, I think we should be clear about our long-term intentions here: do we want to retain the hoopl namespace with the intent of later re-merging with hoopl or spinning off into our own package (ghoopl)? Or rather do we want to try to dissolve what is currently Hoopl.* into GHC proper?

Jun 5 2017, 12:38 PM

Jun 4 2017

michalt added a comment to D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.

[...]

The current approach doesn't need to track this additional info because it generates the reloads immediately and only then propagates the information that nothing is live at proc-point entry.

I'm slightly in favor of rewriting & analyzing at the same time.

Sure, if that works out more cleanly then it's fine. I was slightly worried about the extra overhead of doing rewriting + analysis since that was always too expensive when I experimented with it before, but perhaps the new framework for doing block-level analysis and rewriting overcomes that.

Jun 4 2017, 10:14 AM

May 30 2017

michalt added a comment to D3616: Hoopl: remove dependency on Hoopl package.

I won't object, other than to note that this is typically the opposite direction that we normally want to go in, that is to use third-party libraries via their normal APIs rather than to fork them. We're trying to go in the other direction with pretty, for example. Having said that, I know it's difficult to reconcile some of the divergence without losing performance, particularly the manual specialisation. But some of the other impedence mismatch could be worked around, by either unifying APIs or centralising a renaming layer.

There are a whole set of tradeoffs here so it's hard to make a good judgement, but I'm sure you've thought this through, so if this is the direction you want to go it's ok with me.

May 30 2017, 6:14 AM

May 28 2017

Herald added a reviewer for D3616: Hoopl: remove dependency on Hoopl package: austin.
May 28 2017, 12:36 PM

May 20 2017

michalt added a comment to D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.

Nice observation about the unnecessary reloads, and the results look good. I presume with -O the unnecessary reloads will be eliminated by CmmSink, but eliminating them earlier saves compile time and helps with -O0.

Cool, thanks for having a look! Yes, sinking pass would usually remove all those reloads. But the liveness analysis it's doing would be quite a bit slower due to the size of the Cmm.

One question about the approach do we have to do a combined analysis/rewrite, or can we just do a liveness analysis (with emptying the live set at a proc-point) followed by inserting the reloads? It's not clear why this new machinery is needed.

Yes, this shouldn't be necessary now (I experimented with the rewriting in my earlier approach). I'll change it to use just existing analysis pass.
Later we can consider using the rewriting approach to remove dead assignments *and* calculate liveness at the same time.

May 20 2017, 12:02 PM

May 17 2017

michalt accepted D3594: Don't use uname -o.
May 17 2017, 12:52 PM

May 16 2017

michalt added a comment to D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.

Nice observation about the unnecessary reloads, and the results look good. I presume with -O the unnecessary reloads will be eliminated by CmmSink, but eliminating them earlier saves compile time and helps with -O0.

May 16 2017, 2:18 PM

May 14 2017

Herald added a reviewer for D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads: austin.
May 14 2017, 9:59 AM
michalt added a comment to D3586: cmm/CmmLayoutStack: avoid generating unnecessary reloads.

This is a bit of an RFC patch - there are a few things that might need some discussions (general approach in CmmLayoutStack, interface for Cmm rewriting, etc.). So please let me know what you think about it!

May 14 2017, 9:59 AM

May 4 2017

michalt accepted D3450: Fix CRLF handling in NoFib.

@michalt, what do you think about this approach?

May 4 2017, 1:11 PM
michalt added a comment to D3530: Dataflow: use IntSet for mkDepBlocks.

I think I benchmarked this when I was working on the backend and found that it was worse. What effect did it have on the perf tests?

IIRC it was neutral. I can re-run nofib in the evening to double check that.

May 4 2017, 12:34 PM
michalt added a comment to D3530: Dataflow: use IntSet for mkDepBlocks.

I think I benchmarked this when I was working on the backend and found that it was worse. What effect did it have on the perf tests?

May 4 2017, 6:16 AM

May 3 2017

Herald added a reviewer for D3530: Dataflow: use IntSet for mkDepBlocks: austin.
May 3 2017, 12:52 PM

Apr 2 2017

michalt created D3412: Simplify some shootout Makefiles.
Apr 2 2017, 2:05 PM
michalt created D3411: Create runtime_files directory for some benchmarks.
Apr 2 2017, 2:05 PM