- 18 May, 2016 2 commits
-
-
Ben Gamari authored
Adds a primitive operation to determine whether a particular `MutableByteArray#` is backed by a pinned buffer. Test Plan: Validate with included testcase Reviewers: austin, simonmar Reviewed By: austin, simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2217 GHC Trac Issues: #12059
-
mlen authored
This patch fixes Cmm generation required to produce histograms when compiling with -ticky flag, strips dead code from rts/Ticky.c and reworks it to use a shared constant in both C and Haskell code. Fixes #8308. Test Plan: T8308 Reviewers: jstolarek, simonpj, austin Reviewed By: simonpj Subscribers: mpickering, simonpj, bgamari, mlen, thomie, jstolarek Differential Revision: https://phabricator.haskell.org/D931 GHC Trac Issues: #8308
-
- 01 May, 2016 1 commit
-
-
Ben Gamari authored
Missing a close paren.
-
- 28 Apr, 2016 1 commit
-
-
Ben Gamari authored
xcrun --find seems like the appropriate choice here. Thanks to Brandon Allbery for suggesting this.
-
- 24 Apr, 2016 1 commit
-
-
Ben Gamari authored
Thanks to George Colpitts for the suggestion.
-
- 16 Apr, 2016 1 commit
-
-
Herbert Valerio Riedel authored
Add a sanity check ensuring that nm emits valid hexadecimal output, as required by POSIX. See #11744 for motivation. Reviewers: austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2113 GHC Trac Issues: #11744
-
- 01 Dec, 2015 1 commit
-
-
Gabor Greif authored
-
- 19 Nov, 2015 2 commits
-
-
Herbert Valerio Riedel authored
On IBM AIX `nm` doesn't support reporting symbol sizes, so we need to resort to `objdump` instead, which has a peculiar output format on AIX. depends on D1499 Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: kgardas, thomie Differential Revision: https://phabricator.haskell.org/D1500
-
Herbert Valerio Riedel authored
`derivedConstants` currently uses `System.Info.os` for decisions (which doesn't necessarily reflect the build-target), as well as hardcoding "/usr/bin/objdump" for openbsd. This patch auto-detects `objdump` similiar to how `nm` is detected via Autoconf as well as passing the target-os into `derivedConstants` via commandline. Reviewers: austin, kgardas, erikd, bgamari Reviewed By: kgardas, erikd, bgamari Subscribers: kgardas, thomie, erikd Differential Revision: https://phabricator.haskell.org/D1499
-
- 30 Oct, 2015 1 commit
-
-
thomie authored
This is needed for #10374 (but doesn't fix it yet). Also rename DeriveConstants.hs to Main.hs, because the build system has trouble with Main modules not called Main.hs. Differential Revision: https://phabricator.haskell.org/D1380
-
- 11 Sep, 2015 1 commit
-
-
siddhanathan authored
Rename StgArrWords to StgArrBytes (see Trac #8552) Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D1233 GHC Trac Issues: #8552
-
- 06 Jul, 2015 1 commit
-
-
Simon Marlow authored
Summary: We were not treating the offset as a signed field in this rare case, so it would blow up if the offset was negative. Test Plan: Looked at the assembly Reviewers: austin, bgamari, rwbarton Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1042
-
- 15 Dec, 2014 1 commit
-
-
Simon Marlow authored
-
- 25 Nov, 2014 1 commit
-
-
Simon Marlow authored
Summary: clearNursery resets all the bd->free pointers of nursery blocks to make the blocks empty. In profiles we've seen clearNursery taking significant amounts of time particularly with large -N and -A values. This patch moves the work of clearNursery to the point at which we actually need the new block, thereby introducing an invariant that blocks to the right of the CurrentNursery pointer still need their bd->free pointer reset. This should make things faster overall, because we don't need to clear blocks that we don't use. Test Plan: validate Reviewers: AndreasVoellmy, ezyang, austin Subscribers: thomie, carter, ezyang, simonmar Differential Revision: https://phabricator.haskell.org/D318
-
- 12 Nov, 2014 1 commit
-
-
Simon Marlow authored
This reverts commit f0fcc41d. New changes: now works on 32-bit platforms too. I added some basic support for 64-bit subtraction and comparison operations to the x86 NCG.
-
- 21 Oct, 2014 1 commit
-
-
Austin Seipp authored
Summary: OpenBSD's nm doesn't support the -P option and there appears to be no other way to get the desired information from it. Reviewers: kgardas, #ghc, austin Reviewed By: kgardas, #ghc, austin Subscribers: austin, ggreif Projects: #ghc Differential Revision: https://phabricator.haskell.org/D332 GHC Trac Issues: #9549
-
- 30 May, 2014 1 commit
-
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
- 20 May, 2014 1 commit
-
-
Herbert Valerio Riedel authored
This was generated by applying `-ddump-minimal-imports` and addresses the current compile failure (see #9016) with GHC HEAD due to the new `die` being exported by `System.Exit` Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
-
- 19 May, 2014 1 commit
-
-
Christian.Maeder@dfki.de authored
Fixes #8783. In order to avoid querying the nm version that does not work on Mac OS X we use the "nm -P" output that is supposed to produce (more portable) POSIX output and works on all tested OSes (MinGW, Mac OS X, Solaris and Linux using GNU nm) although slightly different (as documented). The "nm -P" output is actually only needed to recognize the output of a non-GNU Solaris nm (all other OSes produce sane outut using "nm" only). Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
- 04 May, 2014 1 commit
-
-
Simon Marlow authored
Problems were found on 32-bit platforms, I'll commit again when I have a fix. This reverts the following commits: 54b31f74 b0534f78
-
- 02 May, 2014 1 commit
-
-
Simon Marlow authored
This tracks the amount of memory allocation by each thread in a counter stored in the TSO. Optionally, when the counter drops below zero (it counts down), the thread can be sent an asynchronous exception: AllocationLimitExceeded. When this happens, given a small additional limit so that it can handle the exception. See documentation in GHC.Conc for more details. Allocation limits are similar to timeouts, but - timeouts use real time, not CPU time. Allocation limits do not count anything while the thread is blocked or in foreign code. - timeouts don't re-trigger if the thread catches the exception, allocation limits do. - timeouts can catch non-allocating loops, if you use -fno-omit-yields. This doesn't work for allocation limits. I couldn't measure any impact on benchmarks with these changes, even for nofib/smp.
-
- 29 Mar, 2014 1 commit
-
-
tibbe authored
These array types are smaller than Array# and MutableArray# and are faster when the array size is small, as they don't have the overhead of a card table. Having no card table reduces the closure size with 2 words in the typical small array case and leads to less work when updating or GC:ing the array. Reduces both the runtime and memory allocation by 8.8% on my insert benchmark for the HashMap type in the unordered-containers package, which makes use of lots of small arrays. With tuned GC settings (i.e. `+RTS -A6M`) the runtime reduction is 15%. Fixes #8923.
-
- 24 Mar, 2014 1 commit
-
-
Austin Seipp authored
It causes a failure on Windows right now. This reverts commit 045b2803.
-
- 23 Mar, 2014 1 commit
-
-
kgardas authored
The patch provided by Christian Maeder <Christian.Maeder@dfki.de> Signed-off-by:
Karel Gardas <karel.gardas@centrum.cz> Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
- 13 Mar, 2014 1 commit
-
- 28 Nov, 2013 1 commit
-
-
Simon Marlow authored
-
- 26 Oct, 2013 1 commit
-
-
Austin Seipp authored
This reverts commit 2f5db98e.
-
- 25 Oct, 2013 1 commit
-
-
Simon Marlow authored
-
- 23 Sep, 2013 2 commits
-
-
gmainlan@microsoft.com authored
-
gmainlan@microsoft.com authored
-
- 06 Aug, 2013 1 commit
-
-
gmainland authored
We were using SSE is some places and XMM in others. Better to keep a consistent naming scheme.
-
- 15 Jun, 2013 2 commits
-
-
aljee@hyper.cx authored
-
aljee@hyper.cx authored
The commit replaces mkWeakForeignEnv# with addCFinalizerToWeak#. This new primop mutates an existing Weak# object and adds a new C finalizer to it. This change removes an invariant in MarkWeak.c, namely that the relative order of Weak# objects in the list needs to be preserved across GC. This makes it easier to split the list into per-generation structures. The patch also removes a race condition between two threads calling finalizeWeak# on the same WEAK object at that same time.
-
- 29 Mar, 2013 1 commit
-
-
nfrisby authored
* the new StgCmmArgRep module breaks a dependency cycle; I also untabified it, but made no real changes * updated the documentation in the wiki and change the user guide to point there * moved the allocation enters for ticky and CCS to after the heap check * I left LDV where it was, which was before the heap check at least once, since I have no idea what it is * standardized all (active?) ticky alloc totals to bytes * in order to avoid double counting StgCmmLayout.adjustHpBackwards no longer bumps ALLOC_HEAP_ctr * I resurrected the SLOW_CALL counters * the new module StgCmmArgRep breaks cyclic dependency between Layout and Ticky (which the SLOW_CALL counters cause) * renamed them SLOW_CALL_fast_<pattern> and VERY_SLOW_CALL * added ALLOC_RTS_ctr and _tot ticky counters * eg allocation by Storage.c:allocate or a BUILD_PAP in stg_ap_*_info * resurrected ticky counters for ALLOC_THK, ALLOC_PAP, and ALLOC_PRIM * added -ticky and -DTICKY_TICKY in ways.mk for debug ways * added a ticky counter for total LNE entries * new flags for ticky: -ticky-allocd -ticky-dyn-thunk -ticky-LNE * all off by default * -ticky-allocd: tracks allocation *of* closure in addition to allocation *by* that closure * -ticky-dyn-thunk tracks dynamic thunks as if they were functions * -ticky-LNE tracks LNEs as if they were functions * updated the ticky report format, including making the argument categories (more?) accurate again * the printed name for things in the report include the unique of their ticky parent as well as if they are not top-level
-
- 14 Feb, 2013 1 commit
-
-
Simon Marlow authored
To improve performance of StablePtr.
-
- 01 Feb, 2013 1 commit
-
-
gmainlan@microsoft.com authored
This patch adds support for 6 XMM registers on x86-64 which overlap with the F and D registers and may hold 128-bit wide SIMD vectors. Because there is not a good way to attach type information to STG registers, we aggressively bitcast in the LLVM back-end.
-
- 17 Nov, 2012 1 commit
-
-
ian@well-typed.com authored
-
- 16 Nov, 2012 1 commit
-
-
ian@well-typed.com authored
-
- 13 Nov, 2012 1 commit
-
-
ian@well-typed.com authored
When offsetof is defined, we use that. This avoids "variably modified at file scope" warnings/errors with recent gccs.
-
- 12 Nov, 2012 1 commit
-
-
ian@well-typed.com authored
DeriveConstants.hs works in a cross-compilation-friendly way. Rather than running a C program that prints out the constants, we just compile a C file which has the constants are encoded in symbol sizes. We then parse the output of 'nm' to find out what the constants are. Based on work by Gabor Greif <ggreif@gmail.com>.
-