- Mar 14, 2014
-
-
Austin Seipp authored
Who knows how long the tests for containers have been broken. They haven't bitrotted, however. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Joachim Breitner authored
-
Joachim Breitner authored
-
Richard Eisenberg authored
-
Richard Eisenberg authored
There were two unrelated errors fixed here: 1) Make sure that only the *result kind* is reified when reifying a type family. Previously, the whole kind was reified, which defies the TH spec. 2) Omit kind patterns in equations.
-
Richard Eisenberg authored
-
Richard Eisenberg authored
We assume that library authors supply correct role annotations for their types, and therefore we do not need to check for the availability of data constructors in Safe mode. See discussion in #8725. This effectively fixes #8827 and #8826.
-
- Mar 13, 2014
-
-
tibbe authored
This results in a 57% runtime decrease when allocating an array of 128 bytes on a 64-bit machine. Fixes #8876.
-
Austin Seipp authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
awson authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Ben Gamari authored
While -O1 and -O2 both include -globalopt, the order in which the passes are run means that aliases aren't resolved which then causes llc to fall over. See GHC bug #8855. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Ben Gamari authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
awson authored
Fixes #8839 Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
kgardas authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
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>
-
tibbe authored
The implementations of newArray# and newArrayArray#, stg_newArrayzh and stg_newArrayArrayzh, had three issues: * The condition for the loop that fills the array with the initial element was incorrect. It would write into the card table as well. The condition for the loop that filled the card table was never executed, as its condition was also wrong. In the end this didn't lead to any disasters as the value of the card table doesn't matter for newly allocated arrays. * The card table was unnecessarily initialized. The card table is only used when the array isn't copied, which new arrays always are. By not writing the card table at all we save some cycles. * The ticky allocation accounting was wrong. The second argument to TICK_ALLOC_PRIM is the size of the closure excluding the header size, but the header size was incorrectly included. Fixes #8867.
-
Herbert Valerio Riedel authored
This adds role annotations to Map and Set and therefore addresses #8718 Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
-
tibbe authored
Clarify the order of the arguments. Also, remove any use of # in the comments, which would make the rest of that comment line disappear in the docs, due to being treated as a comment by the preprocessor.
-
Gergő Érdi authored
* AnId * ACoAxiom * AConLike
-
Gergő Érdi authored
-
Gergő Érdi authored
-
Gergő Érdi authored
-
Simon Peyton Jones authored
The test is a bit crude; -ddump-simpl | grep '#'. I'm concerned that the -ddump-simpl output may differ on 32 and 64-bit platforms. So far I've only put in output for 64-bit platforms.
-
Simon Peyton Jones authored
I don't know why these constant-folding rules were implemented for and/or/xor but not for 'not'. Adding them is part of the fix for Trac #8832. (The other part is in Data.Bits.)
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
Documentation in response to Johan's questions Plus, don't export hpRel from StgCmmHeap, StgCmmLayout (it is only used locally in StgCmmLayout)
-
- Mar 12, 2014
-
-
Joachim Breitner authored
(Otherwise the analysis was wrong, as covered by the new test case.)
-
- Mar 11, 2014
-
-
tibbe authored
-
tibbe authored
-
tibbe authored
-
tibbe authored
Also make sure allocHeapClosure updates profiling counters with the memory allocated.
-
- Move array representation knowledge into SMRep - Separate out low-level heap-object allocation so that we can reuse it from doNewArrayOp - remove card-table initialisation, we can safely ignore the card table for newly allocated arrays.
-
I'd like to be able to pack together non-pointer fields that are less than a word in size, and this is a necessary prerequisite.
-
tibbe authored
This results in a 46% runtime decrease when allocating an array of 16 unit elements on a 64-bit machine. In order to allow newArray# to have both an inline and an out-of-line implementation, cgOpApp is refactored slightly. The new implementation of cgOpApp should make it easier to add other primops with both inline and out-of-line implementations in the future.
-
Simon Peyton Jones authored
Sorry about that...
-
Simon Peyton Jones authored
Nowadays SetLevels floats case expressions as well as let-bindings, and case expressions bind type variables. We need to clone all such floated binders, to avoid accidental name capture. But I'd forgotten to substitute for the cloned type variables, causing #8714. (In the olden days only Ids were cloned, from let-bindings.) This patch fixes the bug and does quite a bit of clean-up refactoring as well, by putting the context level in the LvlEnv. There is no effect on performance, except that nofib 'rewrite' improves allocations by 3%. On investigation I think it was a fluke to do with loop-cutting in big letrec nests. But at least it's a fluke in the right direction. Program Size Allocs Runtime Elapsed TotalMem -------------------------------------------------------------------------------- Min -0.4% -3.0% -19.4% -19.4% -26.7% Max -0.0% +0.0% +17.9% +17.9% 0.0% Geometric Mean -0.1% -0.0% -0.7% -0.7% -0.4%
-
Simon Peyton Jones authored
-
- Mar 10, 2014
-
-
tibbe authored
-