trommler (Peter Trommler)
User

Projects

User does not belong to any projects.

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Saturday

  • Clear sailing ahead.

User Details

User Since
Jun 6 2014, 3:56 PM (158 w, 6 d)
Availability
Available

Recent Activity

May 9 2017

trommler abandoned D3540: RTS: Fix duplicate symbols in unreg'd on ppc64le.

Let's use Ben's patch D3560. It is both cleaner and more efficient.

May 9 2017, 2:14 PM
trommler accepted D3560: rts: Don't build StgCRunAsm.S if unregisterised.

Yes. That is better than my patch.

May 9 2017, 2:12 PM

May 5 2017

trommler created D3540: RTS: Fix duplicate symbols in unreg'd on ppc64le.
May 5 2017, 1:09 PM

Apr 30 2017

trommler created D3512: PPC NCG: Lower MO_*_Fabs as PowerPC fabs instruction.
Apr 30 2017, 4:57 AM

Apr 25 2017

trommler added a comment to D2973: PPC NCG: Implement callish prim ops.
In D2973#99561, @hvr wrote:

Is there any particular test-case that exercises specifically this part of the code-gen? I can't easily run the whole validate testsuite currently, due to a broken Python installation.

Apr 25 2017, 12:28 AM

Mar 27 2017

trommler updated the diff for D2973: PPC NCG: Implement callish prim ops.
  • Fix count trailing zeros formula in comment
Mar 27 2017, 10:08 AM

Mar 25 2017

trommler added a comment to D2973: PPC NCG: Implement callish prim ops.

Fix long lines.
Rebase again to fix Habormaster builds.

Mar 25 2017, 4:35 AM

Mar 24 2017

trommler updated the diff for D2973: PPC NCG: Implement callish prim ops.

Fix long lines.
Rebase again to fix Habormaster builds.

Mar 24 2017, 3:39 AM

Mar 21 2017

trommler updated the diff for D2973: PPC NCG: Implement callish prim ops.

Rebase so it applies cleanly to HEAD again.

Mar 21 2017, 2:21 PM

Jan 17 2017

trommler added a comment to D2973: PPC NCG: Implement callish prim ops.
In D2973#86962, @erikd wrote:

This looks ok to me, but I can't currently built it cause my PowerPC machine is busted.

Jan 17 2017, 4:39 AM
trommler updated D2973: PPC NCG: Implement callish prim ops.
Jan 17 2017, 3:44 AM

Jan 16 2017

trommler updated subscribers of T297: Phabricator stopped sending email.
Jan 16 2017, 4:29 AM
trommler updated subscribers of T297: Phabricator stopped sending email.

When did this start happening?

Jan 16 2017, 3:46 AM

Jan 14 2017

trommler updated the diff for D2973: PPC NCG: Implement callish prim ops.
  • Break up long lines
Jan 14 2017, 11:26 AM
trommler created T297: Phabricator stopped sending email.
Jan 14 2017, 11:12 AM
trommler retitled D2973: PPC NCG: Implement callish prim ops from to PPC NCG: Implement callish prim ops.
Jan 14 2017, 10:09 AM

Dec 18 2016

trommler updated the diff for D2782: Testsuite: Skip failing tests on PowerPC 64-bit.
  • remove newline.
Dec 18 2016, 8:21 AM

Dec 16 2016

trommler updated the diff for D2782: Testsuite: Skip failing tests on PowerPC 64-bit.
  • Fix typos in comment.
  • Improve RTS linker support detection
  • RTS linker: Better error message on PPC64
  • RTS linker: Note runtime-linker-support
Dec 16 2016, 1:39 PM

Dec 6 2016

trommler added a comment to D2791: NCG: Implement trivColorable for PowerPC 64-bit.
In D2791#81436, @hvr wrote:

@trommler just wondering, how does register allocation work right now for ppc64?

Dec 6 2016, 4:19 AM

Dec 5 2016

trommler retitled D2791: NCG: Implement trivColorable for PowerPC 64-bit from to NCG: Implement trivColorable for PowerPC 64-bit.
Dec 5 2016, 12:58 PM
trommler updated the diff for D2782: Testsuite: Skip failing tests on PowerPC 64-bit.
  • Testsuite: rename config property
Dec 5 2016, 9:12 AM

Dec 3 2016

trommler added a comment to D2782: Testsuite: Skip failing tests on PowerPC 64-bit.

I added a new property for runtime linker support to settings

Dec 3 2016, 1:21 PM
trommler updated the diff for D2782: Testsuite: Skip failing tests on PowerPC 64-bit.
  • add to GHC info if RTS linker is supported
  • Testsuite: skip another test when no RTS linker
  • Fix typo.
Dec 3 2016, 1:15 PM

Dec 2 2016

trommler added inline comments to D2782: Testsuite: Skip failing tests on PowerPC 64-bit.
Dec 2 2016, 2:12 AM

Dec 1 2016

trommler retitled D2782: Testsuite: Skip failing tests on PowerPC 64-bit from to Testsuite: Skip failing tests on PowerPC 64-bit.
Dec 1 2016, 1:04 PM

Oct 11 2016

trommler added a comment to D2525: StgCmmPrim: Add missing write barrier..

Inline comment done.

Oct 11 2016, 10:24 AM

Oct 10 2016

trommler updated D2525: StgCmmPrim: Add missing write barrier..
Oct 10 2016, 6:55 AM
trommler updated the diff for D2525: StgCmmPrim: Add missing write barrier..
  • Move write barrier and add comment
Oct 10 2016, 5:16 AM

Oct 6 2016

trommler added inline comments to D2525: StgCmmPrim: Add missing write barrier..
Oct 6 2016, 11:03 AM

Sep 30 2016

trommler updated the diff for D2547: PPC/CodeGen: fix lwa instruction generation.
  • Add note referring to Power ISA specification
Sep 30 2016, 8:49 AM

Sep 28 2016

trommler added a comment to D2547: PPC/CodeGen: fix lwa instruction generation.

Alright; I don't know what a DS form is but fair enough.

Sep 28 2016, 5:08 AM

Sep 25 2016

trommler retitled D2547: PPC/CodeGen: fix lwa instruction generation from to PPC/CodeGen: fix lwa instruction generation.
Sep 25 2016, 7:45 AM

Sep 11 2016

trommler added a reviewer for D2525: StgCmmPrim: Add missing write barrier.: rrnewton.
Sep 11 2016, 3:38 AM
trommler retitled D2525: StgCmmPrim: Add missing write barrier. from to StgCmmPrim: Add missing write barrier..
Sep 11 2016, 3:19 AM

Aug 7 2016

trommler retitled D2445: PPC NCG: Implement minimal stack frame header. from to PPC NCG: Implement minimal stack frame header..
Aug 7 2016, 3:04 AM

Aug 1 2016

trommler accepted D2431: Use MO_Cmpxchg in Primops.cmm instead of ccall cas(..).

Thank you Alex!

Aug 1 2016, 2:36 AM

Jul 31 2016

trommler added a comment to D2431: Use MO_Cmpxchg in Primops.cmm instead of ccall cas(..).

Builds on PowerPC 64-bit now.

Jul 31 2016, 3:22 AM

Jul 29 2016

trommler accepted D2435: Add atomic operations to package.conf.in.

This builds on PowerPC 64-bit big endian.

Jul 29 2016, 12:47 PM
trommler requested changes to D2435: Add atomic operations to package.conf.in.

One macro is still AMD/Intel specific.

Jul 29 2016, 4:35 AM
trommler requested changes to D2435: Add atomic operations to package.conf.in.

Please support all 64-bit platforms. See my inline comment.

Jul 29 2016, 1:27 AM

Jul 28 2016

trommler added a comment to D2431: Use MO_Cmpxchg in Primops.cmm instead of ccall cas(..).
In D2431#70796, @erikd wrote:

@trommler Do you get the same result on PowerPC64?

Jul 28 2016, 9:04 AM

Jun 21 2016

trommler added a comment to D2328: PPC NCG: Fix and refactor TOC handling..

Is this something we should merge for 8.0.2? If so would you mind opening a ticket and placing it in merge state?

Jun 21 2016, 2:39 AM

Jun 13 2016

trommler added a comment to D2328: PPC NCG: Fix and refactor TOC handling..

Please let me know if I need to add more information here.

Jun 13 2016, 1:23 PM
trommler updated the diff for D2328: PPC NCG: Fix and refactor TOC handling..
  • Improve comment.
Jun 13 2016, 1:22 PM
trommler updated the diff for D2328: PPC NCG: Fix and refactor TOC handling..
  • Explain why we need NOPs after a call.
Jun 13 2016, 1:12 PM

Jun 12 2016

trommler retitled D2328: PPC NCG: Fix and refactor TOC handling. from to PPC NCG: Fix and refactor TOC handling..
Jun 12 2016, 1:20 PM
trommler updated the diff for D2327: PPC NCG: Fix float parameter passing on 64-bit..
  • untabify C file
Jun 12 2016, 8:51 AM
trommler updated the diff for D2327: PPC NCG: Fix float parameter passing on 64-bit..

Forgot the first commit (again) :-(

Jun 12 2016, 8:43 AM
trommler retitled D2327: PPC NCG: Fix float parameter passing on 64-bit. from to PPC NCG: Fix float parameter passing on 64-bit..
Jun 12 2016, 8:40 AM

Jun 1 2016

trommler added a comment to D2289: testsuite: Mark broken tests on powerpc64le.
In D2289#66206, @hvr wrote:

there's a good chance this applies to AIX/ppc32 as well;

I have some unfinished patch to mark all TH-requiring tests as such to reduce the overwhelming noise you currently get with the testsuite if run it with a TH-lacking GHC...

Jun 1 2016, 1:34 PM
trommler retitled D2289: testsuite: Mark broken tests on powerpc64le from to testsuite: Mark broken tests on powerpc64le.
Jun 1 2016, 11:37 AM

May 27 2016

trommler updated the diff for D2233: RTS SMP: Use compiler built-ins on all platforms..
  • update file path in comment
  • Improve comments after code review.
May 27 2016, 5:00 AM
trommler updated D2233: RTS SMP: Use compiler built-ins on all platforms..
May 27 2016, 3:33 AM

May 25 2016

trommler added inline comments to D2233: RTS SMP: Use compiler built-ins on all platforms..
May 25 2016, 12:08 PM

May 19 2016

trommler added a comment to D2233: RTS SMP: Use compiler built-ins on all platforms..
In D2233#64807, @hvr wrote:

would it make any sense to combine __sync_synchronize() with __sync_lock_test_and_set()?

May 19 2016, 8:29 AM

May 18 2016

trommler added a comment to D2233: RTS SMP: Use compiler built-ins on all platforms..

Add x86_64 assembler output.

May 18 2016, 4:08 AM

May 17 2016

trommler retitled D2233: RTS SMP: Use compiler built-ins on all platforms. from to RTS SMP: Use compiler built-ins on all platforms..
May 17 2016, 1:08 PM

May 16 2016

trommler added a comment to D2225: PPC: Implement SMP primitives using gcc built-ins.
In D2225#64401, @hvr wrote:

@trommler you'll get there :-)

May 16 2016, 7:55 AM
trommler updated the diff for D2225: PPC: Implement SMP primitives using gcc built-ins.

Submit all commits.

May 16 2016, 7:50 AM
trommler added a comment to D2225: PPC: Implement SMP primitives using gcc built-ins.

Also, it would be great if you could do this soon since 8.0.1 is now blocked on this change.

May 16 2016, 7:48 AM
trommler updated the diff for D2225: PPC: Implement SMP primitives using gcc built-ins.

Only apply to PPC as the title says.

  • Revert "RTS: Use _sync_* built-ins on all systems"
  • PPC: Fix atomic_dec in RTS.
May 16 2016, 7:46 AM
trommler added a comment to D2225: PPC: Implement SMP primitives using gcc built-ins.

The patch looks good to me.

However, it looks like this touches more than just PPC, contrary to what the title claims.

I missed that one when I edited the description, sorry!

@hvr had asked for this commit to be included in 8.0.1 (which unfortunately needs to be re-spun); however I'll admit that I'm a little hesitant to merge something that touches all of our platforms like this. As far as I can tell there are three options here,

  • Wait until 8.0.2 to merge this
  • Only merge the PPC part of this into 8.0.1
  • Be very very careful and merge the whole thing into 8.0.1

    I'm really not keen on the last option. What do you think, @trommler?

I would be fine with option two. I'll update the diff accordingly and prepare another diff
for the other systems.

May 16 2016, 6:56 AM
trommler updated the diff for D2225: PPC: Implement SMP primitives using gcc built-ins.

Forgot trailing ~, so first commit was missing.

May 16 2016, 6:34 AM
trommler retitled D2225: PPC: Implement SMP primitives using gcc built-ins from to PPC: Implement SMP primitives using gcc built-ins.
May 16 2016, 6:33 AM

May 13 2016

trommler retitled D2214: PPC NCG: Fix pretty printing of st[wd]ux instr. from to PPC NCG: Fix pretty printing of st[wd]ux instr..
May 13 2016, 10:18 AM

May 5 2016

trommler added a comment to D1290: Reduce the size of string literals in binaries..

Is this patch good to go now?

May 5 2016, 4:46 AM

Apr 8 2016

trommler updated the diff for D2093: PPC NCG: Improve pointer de-tagging code.

Replace diff to recover lost commits.

Apr 8 2016, 1:28 PM
trommler added a comment to D2093: PPC NCG: Improve pointer de-tagging code.
Apr 8 2016, 12:59 PM
trommler updated the diff for D2093: PPC NCG: Improve pointer de-tagging code.
  • Fix typo and break long line.
Apr 8 2016, 12:48 PM
trommler retitled D2093: PPC NCG: Improve pointer de-tagging code from to PPC NCG: Improve pointer de-tagging code.
Apr 8 2016, 12:40 PM

Mar 24 2016

trommler added a comment to D2019: Add NCG support for AIX/ppc32.

Validate passes on powerpc64. Great job @hvr!

Mar 24 2016, 11:20 AM
trommler added a comment to D2019: Add NCG support for AIX/ppc32.

Build on powerpc64 is started. I'll report back as soon as it is done.

Mar 24 2016, 8:54 AM
trommler accepted D2029: Avoid local label syntax for assembler on AIX.

Validates on powerpc64.

Mar 24 2016, 8:28 AM
trommler added a comment to D2029: Avoid local label syntax for assembler on AIX.

Started validate on powerpc64...

Mar 24 2016, 5:21 AM

Mar 23 2016

trommler added a comment to D2029: Avoid local label syntax for assembler on AIX.

It validates on powerpc64.

Mar 23 2016, 4:58 AM

Mar 21 2016

trommler added a comment to D2019: Add NCG support for AIX/ppc32.

A rough idea how we could confine the ABI idiosyncrasies to the PPC NCG.

Mar 21 2016, 8:55 AM
trommler accepted D2019: Add NCG support for AIX/ppc32.
In D2019#59069, @hvr wrote:

validation should work again now...

Mar 21 2016, 5:29 AM
trommler accepted D2020: Remove code-duplication in PPC NCG.

Excellent. Thanks!

Mar 21 2016, 4:26 AM

Mar 20 2016

trommler added a comment to D2019: Add NCG support for AIX/ppc32.

Two minor warnings that make validate fail due to -Werror

Mar 20 2016, 9:17 AM
trommler added a comment to D2019: Add NCG support for AIX/ppc32.

I added a few comments on NOPs.

Mar 20 2016, 4:55 AM

Mar 5 2016

trommler added a comment to D1290: Reduce the size of string literals in binaries..

T9577 can be enabled for powerpc64.

Mar 5 2016, 4:09 PM
trommler added a comment to D1290: Reduce the size of string literals in binaries..

The new patch validates on PowerPC 64-bit big-endian.

Ahh, sorry, I misread your original message. Thanks for the clarification.

Mar 5 2016, 4:08 PM
trommler requested changes to D1290: Reduce the size of string literals in binaries..

The new patch validates on PowerPC 64-bit big-endian.

Mar 5 2016, 3:52 PM

Feb 17 2016

trommler updated D1928: testsuite: mark tests broken on powerpc64.
Feb 17 2016, 10:18 AM
trommler retitled D1928: testsuite: mark tests broken on powerpc64 from to testsuite: mark tests broken on powerpc64.
Feb 17 2016, 10:14 AM

Feb 15 2016

trommler retitled D1914: PowerPC: Improve float register assignment. from to PowerPC: Improve float register assignment..
Feb 15 2016, 2:49 AM

Jan 14 2016

trommler added a comment to D1631: link command line libs to temp so.

@trommler, does this mean that this can now be deemed mergeable? People have expressed to me that it would be nice to see Trac #10458 fixed for 8.0.1.

Jan 14 2016, 4:43 AM

Jan 12 2016

trommler added a comment to D1631: link command line libs to temp so.

The proposed patch passes validate on OS X 10.10.5 Yosemite.

Jan 12 2016, 10:54 AM

Jan 9 2016

trommler added a comment to D1631: link command line libs to temp so.

I'll run validate on Mac OS next week and report back the results.

Jan 9 2016, 3:28 AM
trommler updated the diff for D1631: link command line libs to temp so.
  • fix T10458 test
Jan 9 2016, 3:24 AM

Dec 21 2015

trommler retitled D1680: libraries/ghci: Implement mkJumpToAddr for ppc64 from to libraries/ghci: Implement mkJumpToAddr for ppc64.
Dec 21 2015, 11:27 AM

Dec 20 2015

trommler added a comment to D1631: link command line libs to temp so.

Aren't 4 & 5 the same?

Sorry about that. The second sentence of 5 should be added to 4.

I like the idea of making separate .sos for the object files and having a separate dummy .so to link them together. However, I think you will have difficulty with unloading the old one, because you can't unload old shared objects until all references to them from the heap have disappeared, and there's no way to do this reliably. We have functionality to track references and unload objects in the RTS linker (CheckUnload.c) but (a) it doesn't work for objects loaded with dlopen() (that might be fixable) and (b) we don't rely on it happening in a timely manner, it just happens in the background. To guarantee that you have no references from the heap is really hard, and even if you get it working it's fragile.

I see, the RTS has to determine when a shared object can be unloaded (dlcloseed). I assumed this was done in higher layers.

But you could just not unload the old object. Then you'll need to continue using RTLD_LOCAL, right? Or maybe you were planning to keep using RTLD_LOCAL, I'm not sure.

I think we must still use RTLD_LOCAL to support overriding symbols. Perhaps it does not make a difference when we use -Bsymbolic to prepare the dummy shared object. I will investigate in Trac #11238.

Dec 20 2015, 9:24 AM
trommler retitled D1672: RTS: Detect powerpc64le as ELF 64-bit system from to RTS: Detect powerpc64le as ELF 64-bit system.
Dec 20 2015, 8:55 AM

Dec 18 2015

trommler added a comment to D1631: link command line libs to temp so.

I buy this, but we're still loading the libraries separately and invoking gcc etc. to find the pathname, so your patch doesn't solve that. To use ld exclusively we'll need to link a dummy .so at startup time and load that, because the libraries on the command line need to be available to interpreted code too.

The reason I'm not happy about the whole dynamic linking situation is that we had to start using RTLD_LOCAL to work around problems with reloading of compiled code, and this introduced new problems (remember https://ghc.haskell.org/trac/ghc/ticket/8935?). The whole business of having to completely re-link and reload a new .so each time we need to load new object files in a dynamically-linked GHC just seems wrong.

I wonder if I should continue with my work on Trac #11238 given the "wrong" in your comment.

Dec 18 2015, 3:20 AM

Dec 17 2015

trommler added a comment to D1631: link command line libs to temp so.

Life was much simpler when we just used RTLD_GLOBAL, and in fact I've patched our local GHC to do that and use DYNAMIC_GHC_PROGRAMS=NO.

We could mark Trac #10458 as blocked by Trac #11238 and I start working on a redesign right away?!

Dec 17 2015, 5:45 AM
trommler added inline comments to D1631: link command line libs to temp so.
Dec 17 2015, 4:43 AM

Dec 16 2015

trommler updated the diff for D1631: link command line libs to temp so.

add regression test

Dec 16 2015, 3:34 PM
trommler added a comment to D1631: link command line libs to temp so.

Sigh, more fallout from dynamic linking.

I created Trac #11238 for a redesign of dynamic linking.

But I'm not sure this is the right thing to do.

Could you explain why?

Why don't we link the libraries on the command line with global scope?

Here are my reasons against loading dynamic C libraries with global scope:

  1. We avoid having to expand the foreign function interface to have local or global scope as an additional parameter. This is a minor issue.
  2. We don't have to do all the work of finding the correct dynamic library ourselves, looking through the paths, asking the C compiler for paths, and interpreting a linker script. The link editor (ld) does an excellent job at preparing a shared library in a way that the system runtime linker will find and load all required libraries. This made me decide to take the route implemented in this patch.
Dec 16 2015, 8:26 AM

Dec 15 2015

trommler updated the diff for D1631: link command line libs to temp so.

Rebase onto HEAD.

Dec 15 2015, 1:18 PM
trommler added a comment to D1631: link command line libs to temp so.

Rebased the patch and now validating again...

Dec 15 2015, 12:37 PM