- 23 Sep, 2013 7 commits
-
-
gmainlan@microsoft.com authored
-
gmainlan@microsoft.com authored
width and element type. SIMD primops are now polymorphic in vector size and element type, but only internally to the compiler. More specifically, utils/genprimopcode has been extended so that it "knows" about SIMD vectors. This allows us to, for example, write a single definition for the "add two vectors" primop in primops.txt.pp and have it instantiated at many vector types. This generates a primop in GHC.Prim for each vector type at which "add two vectors" is instantiated, but only one data constructor for the PrimOp data type, so the code generator is much, much simpler.
-
gmainlan@microsoft.com authored
GHC.PrimopWrappers is only used by GHCi, which cannot evaluate LLVM-only primops in any case.
-
Note that this will only work with the LLVM back end pending LLVM patches to change the GHC calling convention appropriately.
-
On x86-32, the C calling convention specifies that when SSE2 is enabled, vector arguments are passed in xmm* registers; however, float and double arguments are still passed on the stack. This patch allows us to make the same choice for GHC. Even when SSE2 is enabled, we don't want to pass Float and Double arguments in registers because this would change the ABI and break the ability to link with code that was compiled without -msse2. The next patch will enable passing vector arguments in xmm registers on x86-32.
-
gmainlan@microsoft.com authored
-
Austin Seipp authored
GHCi now runs constructors for linked libraries. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
- 22 Sep, 2013 3 commits
-
-
Austin Seipp authored
This commit exposes GHC's internal compiler pipeline through a `Hooks` module in the GHC API. It currently allows you to hook: * Foreign import/exports declarations * The frontend up to type checking * The one shot compilation mode * Core compilation, and the module iface * Linking and the phases in DriverPhases.hs * Quasiquotation Authored-by:
Luite Stegeman <stegeman@gmail.com> Authored-by:
Edsko de Vries <edsko@well-typed.com> Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
-
Also a small formatting change in GHCi :help
-
- 21 Sep, 2013 2 commits
-
-
Herbert Valerio Riedel authored
-
Krzysztof Gogolewski authored
-
- 20 Sep, 2013 9 commits
-
-
-
Krzysztof Gogolewski authored
-
Herbert Valerio Riedel authored
-
Jan Stolarek authored
-
Simon Peyton Jones authored
Thanks to Krzysztof Gogolewski (monoidal) for the first draft of this patch
-
Simon Peyton Jones authored
The trace was being over-eager, which disturbs the typecheckers careful knot-tying
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
There was a bit of clutter (tryTc stuff) caused by the fact that tcLookupImported didn't return a MaybeErr. Now it does. That finishes up Trac #8004.
-
Simon Peyton Jones authored
This fixes Trac #8333 Thanks to 'klao', who identified the cause and provided the patch
-
- 19 Sep, 2013 4 commits
-
-
Jan Stolarek authored
-
Jan Stolarek authored
-
Jan Stolarek authored
-
Jan Stolarek authored
-
- 18 Sep, 2013 15 commits
-
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
wordTyCon was treated as wired-in, but * It didn't have a WiredInName * It didn't appear in the list of wiredInTyCons I'm not sure how anything worked!
-
Simon Peyton Jones authored
-
Jan Stolarek authored
In 6579a6c7 we removed existing comparison primops and introduced new ones returning Int# instead of Bool. This commit (and associated commits in array, base, dph, ghc-prim, integer-gmp, integer-simple, primitive, testsuite and template-haskell) restores old names of primops. This allows us to keep our API cleaner at the price of not having backwards compatibility. This patch also temporalily disables fix for #8317 (optimization of tagToEnum# at Core level). We need to fix #8326 first, otherwise our primops code will be very slow.
-
Jan Stolarek authored
-
Simon Peyton Jones authored
It's much easier (and more efficient) to pattern match on the HsOverLit than on the desugared version!
-
Simon Peyton Jones authored
See Note [Optimising tagToEnum#] in Simplify
-
Simon Peyton Jones authored
If we have class (F a ~ b) => C a b then we can produce *derived* CFunEqCans. These were not being treated properly in two places: a) in TcMType.zonkFlats (Trac #8134) b) in TcSMonad.prepareInertsForImplications (Trac #8129) This patch fixes both.
-
Simon Peyton Jones authored
* Make isCFunEqCan_maybe return Maybe (TyCon, [Type]) * Add insertTM, deleteTM to TrieMap
-
Jan Stolarek authored
It is off by default, which is meant to be a workaround for #8275. Once #8275 is fixed we will enable this option by default.
-
Gabor Greif authored
If someone also feels that credits should better go into the release announcement, just nuke the last line of that paragraph.
-
This commit adds a `{-# MINIMAL #-}` pragma, which defines the possible minimal complete definitions for a class. The body of the pragma is a boolean formula of names. The old warning for missing methods is replaced with this new one. Note: The interface file format is changed to store the minimal complete definition. Authored-by:
Twan van Laarhoven <twanvl@gmail.com> Signed-off-by:
Herbert Valerio Riedel <hvr@gnu.org>
-
Jan Stolarek authored
This is temporary until new bool primops have been pushed.
-
Herbert Valerio Riedel authored
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@mit.edu>
-