summaryrefslogtreecommitdiff
path: root/compiler/cmm
Commit message (Collapse)AuthorAgeFilesLines
* Remove CPP from cmm/CmmParse.yIan Lynagh2012-08-281-6/+8
|
* Whitespace only in cmm/CmmParse.yIan Lynagh2012-08-281-541/+541
|
* Avoid the quadratic append trap in flattenCmmAGraphSimon Marlow2012-08-211-48/+59
| | | | Fixes a perf problem in perf/compiler/T783
* Only run the second round of control-flow optimisations when -O is onSimon Marlow2012-08-091-2/+11
|
* a couple of small optimisationsSimon Marlow2012-08-091-7/+6
|
* maybeInvertComparison: remove floating-point comparisonsSimon Marlow2012-08-071-6/+0
| | | | See comments.
* Eliminate "r = r" in mkAssignSimon Marlow2012-08-071-0/+1
|
* Node calling convs should use R1 even if it isn't a registerSimon Marlow2012-08-071-28/+20
|
* Add missing cases in hand-coded instance Eq GlobalRegSimon Marlow2012-08-071-0/+2
| | | | aargh.
* Make lint check for undefined variables in CmmSimon Marlow2012-08-071-1/+5
|
* small cleanupSimon Marlow2012-08-071-5/+2
|
* Define callerSaves for all platformsIan Lynagh2012-08-074-45/+54
| | | | | | | | This means that we now generate the same code whatever platform we are on, which should help avoid changes on one platform breaking the build on another. It's also another step towards full cross-compilation.
* Add "Unregisterised" as a field in the settings fileIan Lynagh2012-08-073-71/+90
| | | | | | To explicitly choose whether you want an unregisterised build you now need to use the "--enable-unregisterised"/"--disable-unregisterised" configure flags.
* Make tablesNextToCode "dynamic"Ian Lynagh2012-08-064-24/+22
| | | | | This is a bit odd by itself, but it's a stepping stone on the way to putting "target unregisterised" into the settings file.
* fix warningSimon Marlow2012-08-061-2/+2
|
* commentSimon Marlow2012-08-061-0/+5
|
* MO_F_Mul and MO_F_Add are commutativeSimon Marlow2012-08-061-0/+2
|
* Fix two bugs in the sinker.Simon Marlow2012-08-061-11/+69
| | | | | The new code generator now apparently generates a working stage2 compiler.
* Continue by jumping to the top-of-stack after a safe foreign callSimon Marlow2012-08-061-5/+7
|
* Foreign calls may clobber caller-saves registersSimon Marlow2012-08-062-12/+49
| | | | See Note [foreign calls clobber GlobalRegs]
* finish a commentSimon Marlow2012-08-061-2/+3
|
* comments and refactoringSimon Marlow2012-08-021-31/+50
|
* fix a bug in the inlinerSimon Marlow2012-08-021-9/+13
|
* Eliminate "r = r" assignments.Simon Marlow2012-08-021-0/+5
| | | | | Previously these were caught by removeDeadAssignments, but we aren't doing that now.
* No need to do removeDeadAssignments, just do cmmLiveness insteadSimon Marlow2012-08-021-1/+7
|
* Improve accuracy of memory conflict trackingSimon Marlow2012-08-021-49/+83
| | | | | | We now track stack regions, so that we can float a stack load past a stack store if they don't conflict. Also, we now use the CmmType to more accurately identify heap addresses.
* Inline into the last nodeSimon Marlow2012-08-021-60/+132
| | | | Also lots of refactoring and tidyup
* Code reformattingSimon Marlow2012-08-021-28/+33
|
* add a sinking pass before stack layout (currently disabled)Simon Marlow2012-08-021-1/+8
|
* Don't shortcut call-returns when not splitting proc pointsSimon Marlow2012-08-022-12/+51
| | | | See Note [shortcut call returns]
* Explicitly share some return continuationsSimon Marlow2012-08-022-7/+28
| | | | | | | Instead of relying on common-block-elimination to share return continuations in the common case (case-alternative heap checks) we do it explicitly. This isn't hard to do, is more robust, and saves some compilation time. Full commentary in Note [sharing continuations].
* fix haddock parse errorSimon Marlow2012-07-301-1/+1
|
* fix warningsSimon Marlow2012-07-303-2/+3
|
* bug fix for control-flow optimisationSimon Marlow2012-07-301-1/+6
|
* bug fixes for the sinkerSimon Marlow2012-07-301-37/+76
|
* no need to removeUnreachableBlocksSimon Marlow2012-07-301-2/+2
| | | | We do this in lots of other places (blockConcat, CmmLayoutStack, etc.)
* optimise away some unnecessary stack checksSimon Marlow2012-07-301-1/+19
|
* New codegen: do not split proc-points when using the NCGSimon Marlow2012-07-3014-154/+261
| | | | | | | | | Proc-point splitting is only required by backends that do not support having proc-points within a code block (that is, everything except the native backend, i.e. LLVM and C). Not doing proc-point splitting saves some compilation time, and might produce slightly better code in some cases.
* Merge sinking and inlining to get better results.Simon Marlow2012-07-301-79/+69
|
* Fixes for the stack layout algorithm to handle join pointsSimon Marlow2012-07-301-38/+51
|
* Make -fscc-profiling a dynamic flagIan Lynagh2012-07-245-87/+103
| | | | All the flags that 'ways' imply are now dynamic
* Fix whitespace only in cmm/SMRep.lhsIan Lynagh2012-07-241-43/+36
|
* GHC 7.4 is now required for building HEADIan Lynagh2012-07-2010-43/+0
|
* Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-07-195-225/+420
|\
| * fix warningsSimon Marlow2012-07-171-1/+2
| |
| * Refactor and simplify the SRT handlingSimon Marlow2012-07-172-134/+96
| |
| * tidy up pretty-printing of CmmCallSimon Marlow2012-07-171-4/+9
| |
| * Move sinking into a separate module, and add a simple inlining passSimon Marlow2012-07-173-87/+277
| |
| * Add a comment about how SRTs workSimon Marlow2012-07-171-0/+38
| |
| * no need to export cafTransfersSimon Marlow2012-07-171-2/+1
| |