summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Define "ar command" correctly in settings file on WindowsIan Lynagh2012-01-144-5/+7
| | | | | We want to use the inplace ar, rather than whichever ar the machine that we build on happens to have.
* Switch to using the time package, rather than old-timeIan Lynagh2012-01-1411-47/+75
|
* Document the extra instances divergence from H98/H2010Ian Lynagh2012-01-141-0/+16
| | | | Now that they've moved from Control.Monad.Instances
* Document the Bits superclass divergence from Haskell 2010Ian Lynagh2012-01-141-0/+43
|
* Document the Num superclass divergence from H98/H2010Ian Lynagh2012-01-141-0/+33
|
* Add extra Num constraints since the Num superclass of Bits is removedBas van Dijk2012-01-141-3/+3
|
* Add some llvm build options to build.mk.sampleDavid Terei2012-01-131-1/+26
|
* Add -faggressive-primops plus refactoring in CoreUtilsSimon Peyton Jones2012-01-139-137/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm experimenting with making GHC a bit more aggressive about a) dropping case expressions if the result is unused Simplify.rebuildCase, CaseElim equation b) floating case expressions inwards FloatIn.fiExpr, AnnCase In both cases the new behaviour is gotten with a static (debug) flag -faggressive-primops. The extra "aggression" is to allow discarding and floating in for side-effecting operations. See the new, extensive Note [PrimOp can_fail and has_side_effects] in PrimoOp. When discarding a case with unused binders, in the lifted-type case it's definitely ok if the scrutinee terminates; previously we were checking exprOkForSpeculation, which is significantly worse. So I wanted a new function CoreUtils.exprCertainlyTerminates. In doing this I ended up with a significant refactoring in CoreUtils. The new structure has quite a lot of nice sharing: exprIsCheap = exprIsCheap' isHNFApp exprIsExpandable = exprIsCheap' isConLikeApp exprIsHNF = exprIsHNFlike isHNFApp exprIsConLike = exprIsHNFlike isConLikeApp exprCertainlyTerminates = exprIsHNFlike isTerminatingApp
* Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-01-139-2865/+2950
|\
| * Fix validation errorDavid Terei2012-01-121-2/+2
| |
| * Fix mistake in flags.xmlDavid Terei2012-01-121-1/+1
| |
| * Consistent: Enbaled -> enabled in flag doc.David Terei2012-01-121-2/+2
| |
| * Add '-freg-liveness' flag to control if STG liveness informationDavid Terei2012-01-125-17/+48
| | | | | | | | is used for optimisation. (enabled by default)
| * Formatting fixes to flags.xmlDavid Terei2012-01-121-2801/+2801
| |
| * Add '-fllvm-tbaa' flag for controlling LLVM TBAA opt.David Terei2012-01-123-10/+29
| |
| * Update '.gitignore'David Terei2012-01-121-0/+3
| |
| * Improve LLVM TBAA hierachy (#5567).David Terei2012-01-122-3/+10
| |
| * Make "make sdist" generate a testsuite tarball as well as the src tarballIan Lynagh2012-01-131-41/+66
| |
* | Comments onlySimon Peyton Jones2012-01-131-1/+4
| |
* | Get the knownKeyNames for doubleFromInteger rightSimon Peyton Jones2012-01-131-4/+4
|/ | | | | There was a trivial typo which meant that important newly-added rules would never fire!
* Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-01-1257-1205/+1644
|\
| * Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-01-121-1/+1
| |\
| | * TOP/includes/dist doesn't exist (yet?) and makes ghcpkg05 fail, so remove itSimon Marlow2012-01-121-1/+1
| | |
| * | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-01-1211-78/+303
| |\ \ | | |/
| | * Use Type Based Alias Analysis (TBAA) in LLVM backend (#5567)David Terei2012-01-123-34/+84
| | | | | | | | | | | | | | | | | | | | | TBAA allows us to specify a type hierachy in metadata with the property that nodes on different branches don't alias. This should somewhat improve the optimizations LLVM does that rely on alias information.
| | * Add Metadata support to LLVM bindings.David Terei2012-01-124-7/+114
| | |
| | * More improvements to llvm output style (#5750)David Terei2012-01-122-14/+15
| | |
| | * Use /usr/bin/gcc when making the OS X installerIan Lynagh2012-01-111-1/+1
| | | | | | | | | | | | | | | | | | | | | On XCode 4.1, we use /usr/bin/gcc-4.2 as it makes better code than /usr/bin/gcc for us. However, gcc-4.2 doesn't exist in XCode 4.2, so we need to use /usr/bin/gcc there. As the installer can be used on either, we make it always use /usr/bin/gcc.
| | * Don't try to use gcc-4.2 on XCode >= 4.2Ian Lynagh2012-01-111-3/+5
| | | | | | | | | | | | It was removed in 4.2.
| | * check for failed external symbol lookups (partial fix for #5748)Gregory Wright2012-01-111-15/+81
| | |
| | * Clean more files in "make clean"Ian Lynagh2012-01-111-4/+3
| | | | | | | | | | | | | | | | | | | | | The libraries get configured during "make", so plain old "make clean" should clean up the configure droppings. Also fixed another wildcard/patsubst problem.
| | * Fix cleaning buildinfo filesIan Lynagh2012-01-111-1/+1
| | | | | | | | | | | | | | | We were applying $(wildcard ...) to the literal string libraries/%/*.buildinfo, which of course had no matches.
| * | Implememt -fdefer-type-errors (Trac #5624)Simon Peyton Jones2012-01-1245-1126/+1340
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements the idea of deferring (most) type errors to runtime, instead emitting only a warning at compile time. The basic idea is very simple: * The on-the-fly unifier in TcUnify never fails; instead if it gets stuck it emits a constraint. * The constraint solver tries to solve the constraints (and is entirely unchanged, hooray). * The remaining, unsolved constraints (if any) are passed to TcErrors.reportUnsolved. With -fdefer-type-errors, instead of emitting an error message, TcErrors emits a warning, AND emits a binding for the constraint witness, binding it to (error "the error message"), via the new form of evidence TcEvidence.EvDelayedError. So, when the program is run, when (and only when) that witness is needed, the program will crash with the exact same error message that would have been given at compile time. Simple really. But, needless to say, the exercise forced me into some major refactoring. * TcErrors is almost entirely rewritten * EvVarX and WantedEvVar have gone away entirely * ErrUtils is changed a bit: * New Severity field in ErrMsg * Renamed the type Message to MsgDoc (this change touches a lot of files trivially) * One minor change is that in the constraint solver we try NOT to combine insoluble constraints, like Int~Bool, else all such type errors get combined together and result in only one error message! * I moved some definitions from TcSMonad to TcRnTypes, where they seem to belong more
* | Fix if-def-ery for DEBUGSimon Peyton Jones2012-01-121-2/+0
| |
* | Comments onlySimon Peyton Jones2012-01-122-3/+9
| |
* | Fix Trac #5658: strict bindings not floated inSimon Peyton Jones2012-01-128-159/+237
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two changes here * The main change here is to enhance the FloatIn pass so that it can float case-bindings inwards. In particular the case bindings for array indexing. * Also change the code in Simplify, to allow a case on array indexing (ie can_fail is true) to be discarded altogether if its results are unused. Lots of new comments in PrimOp about can_fail and has_side_effects Some refactoring to share the FloatBind data structure between FloatIn and FloatOut
* | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-01-118-70/+187
|\ \ | |/
| * Merge branch 'master' of http://darcs.haskell.org/ghcIan Lynagh2012-01-115-3/+63
| |\
| | * Enable llvm tool paths to be set with ./configureDavid Terei2012-01-105-3/+63
| | | | | | | | | | | | Patch from Karel Gardas!
| * | Whitespace onlyIan Lynagh2012-01-111-31/+31
| | |
| * | Add prelude rules for encode{Float,Double}Integer and integerTo{Int,Word}64Ian Lynagh2012-01-113-31/+67
| | |
| * | Add prelude rules for quotInteger, remIntegerIan Lynagh2012-01-102-23/+44
| |/
* | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-01-1031-269/+374
|\ \ | |/
| * Improve style of '-ddump-llvm' output. (#5750)David Terei2012-01-102-15/+34
| |
| * Add live stg info to Updates.cmm (fixes #4308)David Terei2012-01-091-5/+6
| |
| * Track STG live register information for use in LLVMDavid Terei2012-01-0921-156/+221
| | | | | | | | | | | | | | | | | | We now carry around with CmmJump statements a list of the STG registers that are live at that jump site. This is used by the LLVM backend so it can avoid unnesecarily passing around dead registers, improving perfromance. This gives us the framework to finally fix trac #4308.
| * last_free_capability should never be NULLSimon Marlow2012-01-091-1/+1
| |
| * use (GHC) idiomatic typesGabor Greif2012-01-091-4/+4
| |
| * typoSimon Marlow2012-01-091-1/+1
| |
| * Make the RTS linker API use wide-char pathnames on Windows (#5697)Simon Marlow2012-01-094-87/+107
| | | | | | | | | | I haven't been able to test whether this works or not due to #5754, but at least it doesn't appear to break anything.