- 31 Aug, 2012 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
- 09 Aug, 2012 1 commit
-
-
Simon Marlow authored
-
- 07 Aug, 2012 1 commit
-
-
ian@well-typed.com authored
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.
-
- 06 Aug, 2012 1 commit
-
-
ian@well-typed.com authored
This is a bit odd by itself, but it's a stepping stone on the way to putting "target unregisterised" into the settings file.
-
- 02 Aug, 2012 4 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
See Note [shortcut call returns]
-
Simon Marlow authored
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].
-
- 30 Jul, 2012 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
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.
-
- 24 Jul, 2012 1 commit
-
-
Ian Lynagh authored
All the flags that 'ways' imply are now dynamic
-
- 17 Jul, 2012 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
- 05 Jul, 2012 1 commit
-
-
Simon Marlow authored
-
- 04 Jul, 2012 1 commit
-
-
Simon Marlow authored
-
- 03 Jul, 2012 1 commit
-
-
Simon Marlow authored
-
- 13 Jun, 2012 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
We can now get the Platform from the DynFlags inside an SDoc, so we no longer need to pass the Platform in.
-
- 15 Mar, 2012 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
Also, do removeDeadAssignments instead of cmmLiveness before stack allocation, because the former also does liveness analysis, and we can do just one liveness analysis instead of two. The stack layout algorithm doesn't introduce any dead assignments, so this doesn't affect the generated code.
-
- 26 Feb, 2012 1 commit
-
-
Ian Lynagh authored
-
- 08 Feb, 2012 3 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
Also: - improvements to code generation: push slow-call continuations on the stack instead of generating explicit continuations - remove unused CmmInfo wrapper type (replace with CmmInfoTable) - squash Area and AreaId together, remove now-unused RegSlot - comment out old unused stack-allocation code that no longer compiles after removal of RegSlot
-
- 27 Jan, 2012 1 commit
-
-
Simon Marlow authored
It was causing wrong info tables where it was; I'm not entirely sure why.
-
- 26 Jan, 2012 1 commit
-
-
Simon Marlow authored
This is so that we can process the Stg code in constant space. Before we were generating all the C-- up front, leading to a large space leak. I haven't converted the LLVM or C back ends to the incremental scheme, but it's not hard to do.
-
- 25 Jan, 2012 1 commit
-
-
Simon Marlow authored
-
- 17 Jan, 2012 1 commit
-
-
Simon Marlow authored
-
- 19 Dec, 2011 1 commit
-
-
Simon Marlow authored
-
- 05 Nov, 2011 1 commit
-
-
Ian Lynagh authored
-
- 02 Oct, 2011 1 commit
-
-
Ian Lynagh authored
And some knock-on changes
-
- 25 Aug, 2011 2 commits
-
-
CmmTop -> CmmDecl CmmPgm -> CmmGroup
-
Simon Marlow authored
-
- 15 Jul, 2011 1 commit
-
-
Ian Lynagh authored
There's now a variant of the Outputable class that knows what platform we're targetting: class PlatformOutputable a where pprPlatform :: Platform -> a -> SDoc pprPlatformPrec :: Platform -> Rational -> a -> SDoc and various instances have had to be converted to use that class, and we pass Platform around accordingly.
-
- 17 Jun, 2011 2 commits
-
-
Edward Z. Yang authored
* Move dead assignment elimination to CmmLive * Kill off dead code in CmmSpillReload related to non-splitting procpoints case * Refactor dual liveness transfer function to more closely mimic CmmLive's liveness transfer. Signed-off-by:
Edward Z. Yang <ezyang@mit.edu>
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@mit.edu>
-
- 14 Jun, 2011 3 commits
-
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@mit.edu>
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@mit.edu>
-
Edward Z. Yang authored
Unfortunately, I couldn't remove all incidences of runCmmContFlowOpt from HscMain; in particular, there is a Cmm conversion testing facility which may run with only control flow optimizations, which I preserved the semantics of. Given the state of the current codegen, this code might be moribund anyway. Signed-off-by:
Edward Z. Yang <ezyang@mit.edu>
-