Simon Marlow [Fri, 24 Aug 2007 08:08:47 +0000 (08:08 +0000)]
include bindisttest in source distributions (fixes srcdist)
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 16:57:44 +0000 (16:57 +0000)]
Add spill/reload pseudo instrs to MachInstrs
Spiller can now insert spill/reload instrs without having to
worry about the current stack delta. Generation of actual machine
instructions for spills/reloads is deferred until after register
allocation proper.
simonpj@microsoft.com [Fri, 24 Aug 2007 09:07:26 +0000 (09:07 +0000)]
Improve docs for mdo
simonpj@microsoft.com [Fri, 24 Aug 2007 09:07:16 +0000 (09:07 +0000)]
Correct link
Michael D. Adams [Mon, 6 Aug 2007 05:06:55 +0000 (05:06 +0000)]
Fix typo in comment
Michael D. Adams [Mon, 6 Aug 2007 05:00:19 +0000 (05:00 +0000)]
Added a case for non-zero arity INFO_TABLE_FUN to the Cmm parser.
This is needed in order to write Main_main from pure Cmm.
Michael D. Adams [Mon, 6 Aug 2007 04:50:11 +0000 (04:50 +0000)]
Change to the Cmm syntax. Put gc_block before update_frame.
This order matches the symantic order better since
the GC check is done before the update frame is pushed.
Michael D. Adams [Mon, 6 Aug 2007 04:48:11 +0000 (04:48 +0000)]
Fix the calling convention order in the CPS
It now matches the order used by the existing codeGen.
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 13:34:07 +0000 (13:34 +0000)]
Regalloc stage dump in right order
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 13:26:14 +0000 (13:26 +0000)]
Eliminate more dead reg->reg moves in linear allocator
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 12:10:09 +0000 (12:10 +0000)]
Handle DOA vregs when building spill stats
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 09:48:19 +0000 (09:48 +0000)]
Use UniqSet instead of Data.Set
Ben.Lippmeier@anu.edu.au [Wed, 22 Aug 2007 17:11:28 +0000 (17:11 +0000)]
comment wibble
Ben.Lippmeier@anu.edu.au [Wed, 22 Aug 2007 17:04:12 +0000 (17:04 +0000)]
Refactor cmmNativeGen so dumps can be emitted inline with NCG stages
simonpj@microsoft.com [Thu, 23 Aug 2007 15:20:27 +0000 (15:20 +0000)]
Improve handling of inline pragmas, esp where type applications are involved
See the definition of splitInlineCont for what this is about.
Cures Trac #1627.
Test is simpl017
simonpj@microsoft.com [Wed, 22 Aug 2007 15:41:46 +0000 (15:41 +0000)]
Add comments about ModGuts instance envts (and re-order fields)
Ian Lynagh [Thu, 23 Aug 2007 02:19:40 +0000 (02:19 +0000)]
When installing, get libgmp.a from the right place
Ian Lynagh [Thu, 23 Aug 2007 02:19:14 +0000 (02:19 +0000)]
Put a space between gcc and its arguments when calling windres
Ian Lynagh [Thu, 23 Aug 2007 02:18:50 +0000 (02:18 +0000)]
windres is in bin/, not the top-level directory
Ian Lynagh [Thu, 23 Aug 2007 02:18:23 +0000 (02:18 +0000)]
In bindisttest, don't try to configure/install the bindist on Windows
Simon Marlow [Thu, 23 Aug 2007 11:28:14 +0000 (11:28 +0000)]
FIX #1626: needed to export hs_hpc_rootModule
Roman Leshchinskiy [Thu, 23 Aug 2007 03:20:48 +0000 (03:20 +0000)]
Generate dictPRepr
Roman Leshchinskiy [Thu, 23 Aug 2007 02:36:58 +0000 (02:36 +0000)]
Add generation of PR dictionaries
Roman Leshchinskiy [Thu, 23 Aug 2007 01:53:51 +0000 (01:53 +0000)]
Initialise PR dictionaries in vectorisation monad
Roman Leshchinskiy [Thu, 23 Aug 2007 01:45:26 +0000 (01:45 +0000)]
Add PR dictionaries to vectorisation monad
Roman Leshchinskiy [Thu, 23 Aug 2007 01:41:31 +0000 (01:41 +0000)]
Embed doesn't store a PA dictionary any more
Roman Leshchinskiy [Thu, 23 Aug 2007 01:34:58 +0000 (01:34 +0000)]
Read the package state after pulling in all built-ins during vectorisation
Roman Leshchinskiy [Thu, 23 Aug 2007 01:30:21 +0000 (01:30 +0000)]
Move all vectorisation built-ins to VectBuiltIn
Roman Leshchinskiy [Thu, 23 Aug 2007 00:24:06 +0000 (00:24 +0000)]
Move vectorisation built-ins to a separate module
Roman Leshchinskiy [Wed, 22 Aug 2007 16:09:53 +0000 (16:09 +0000)]
PR is an explicit record, not a class
Roman Leshchinskiy [Wed, 22 Aug 2007 06:58:50 +0000 (06:58 +0000)]
Add vectorisation-related built-in
Roman Leshchinskiy [Wed, 22 Aug 2007 06:18:25 +0000 (06:18 +0000)]
Generate conversion from PRepr to original type
Roman Leshchinskiy [Wed, 22 Aug 2007 05:41:31 +0000 (05:41 +0000)]
Refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 05:09:27 +0000 (05:09 +0000)]
Generate conversion to PRepr during vectorisation
Roman Leshchinskiy [Wed, 22 Aug 2007 04:46:34 +0000 (04:46 +0000)]
Use NDP's own (:*:) and (:+:)
Roman Leshchinskiy [Wed, 22 Aug 2007 03:44:11 +0000 (03:44 +0000)]
Utility functions for vectorisation
Roman Leshchinskiy [Wed, 22 Aug 2007 02:49:23 +0000 (02:49 +0000)]
More refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 02:32:30 +0000 (02:32 +0000)]
Refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 02:11:33 +0000 (02:11 +0000)]
Add built-ins to vectorisation monad
Roman Leshchinskiy [Wed, 22 Aug 2007 02:08:14 +0000 (02:08 +0000)]
Refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 01:59:30 +0000 (01:59 +0000)]
Vectorise nullary constructors correctly
Roman Leshchinskiy [Wed, 22 Aug 2007 01:29:07 +0000 (01:29 +0000)]
Rename vectorisation-related stuff
Roman Leshchinskiy [Wed, 22 Aug 2007 01:22:36 +0000 (01:22 +0000)]
Generate PRepr instances during vectorisation
Roman Leshchinskiy [Tue, 21 Aug 2007 07:17:09 +0000 (07:17 +0000)]
Use functions from BuildTyCl for vectorisation
Roman Leshchinskiy [Tue, 21 Aug 2007 04:00:34 +0000 (04:00 +0000)]
Add a couple of built-ins to the vectorisation monad
Roman Leshchinskiy [Tue, 21 Aug 2007 02:45:29 +0000 (02:45 +0000)]
Get the PA dictionary for closures from the right module
Roman Leshchinskiy [Tue, 21 Aug 2007 02:44:46 +0000 (02:44 +0000)]
Remove packPA and combinePA from vectorisation built-ins for now
Roman Leshchinskiy [Tue, 21 Aug 2007 02:26:45 +0000 (02:26 +0000)]
Add NDP-related PrelNames
simonpj@microsoft.com [Wed, 22 Aug 2007 23:03:24 +0000 (23:03 +0000)]
Print infix function definitions correctly in HsSyn
simonpj@microsoft.com [Wed, 22 Aug 2007 23:02:55 +0000 (23:02 +0000)]
Trim imports
Ian Lynagh [Wed, 22 Aug 2007 20:20:40 +0000 (20:20 +0000)]
Add a bindisttest directory
After
make binary-dist stage=2
you can run make in bindisttest/ to test it
Ian Lynagh [Wed, 22 Aug 2007 20:10:49 +0000 (20:10 +0000)]
Include package.mk in target.mk, in the bindists's mk/
Michael D. Adams [Wed, 22 Aug 2007 18:36:32 +0000 (18:36 +0000)]
Build fix: modBreaks -> modBreaks_decls modbreaks
Ian Lynagh [Wed, 22 Aug 2007 14:34:22 +0000 (14:34 +0000)]
Use unsafeDupableInterleaveIO in UniqSupply
We'll need to change this if we ever use threads in GHC, but for now it
drops mkSplitUniqSupply from 35% time down below 0.1% when compiling
J.hs from #1136.
Esa Ilari Vuokko [Tue, 21 Aug 2007 21:04:59 +0000 (21:04 +0000)]
Link ghc-pkg and hpc with containers if building ghc 6.7 or newer
Ian Lynagh [Mon, 20 Aug 2007 10:30:58 +0000 (10:30 +0000)]
makeRelativeRefTo checks tablesNextToCode, so we don't have to before using it
Ben.Lippmeier@anu.edu.au [Tue, 21 Aug 2007 16:31:10 +0000 (16:31 +0000)]
Allow redirection of -ddump-* to file
Whilst compiling Main.hs with -ddump-stg, ddump-asm and friends
you can how add -ddump-to-file and you'll get the dumps redirected
to Main.dump-stg, Main.dump-asm etc.
Ben.Lippmeier@anu.edu.au [Tue, 21 Aug 2007 12:08:55 +0000 (12:08 +0000)]
Instrument linear register allocator.
Linear register allocator now keeps track of why it spilled certain
registers. It had to be refactored somewhat to thread the information
through, but the algorithm is unchanged.
Ben.Lippmeier@anu.edu.au [Mon, 20 Aug 2007 10:18:59 +0000 (10:18 +0000)]
NCG debugging cleanup
Ben.Lippmeier@anu.edu.au [Mon, 20 Aug 2007 09:39:19 +0000 (09:39 +0000)]
Add vreg-conflicts and vreg-conflict-lifetimes to drop-asm-stats
Ben.Lippmeier@anu.edu.au [Fri, 17 Aug 2007 16:22:54 +0000 (16:22 +0000)]
Add vreg-population-lifetimes to drop-asm-stats
Ben.Lippmeier@anu.edu.au [Fri, 17 Aug 2007 14:37:30 +0000 (14:37 +0000)]
Add dumping of native code gen stats to file.
Compiling module Foo with -ddrop-asm-stats produces a file
called Foo.dump-asm-stats which will contain increasingly
interesting information.
Ben.Lippmeier@anu.edu.au [Fri, 17 Aug 2007 12:15:57 +0000 (12:15 +0000)]
Refactor dumping of register allocator statistics.
Clemens Fruhwirth [Tue, 21 Aug 2007 10:34:51 +0000 (10:34 +0000)]
Linker.lhs to prefer DSO when it's build as dynamic library
Pepe Iborra [Wed, 22 Aug 2007 09:08:44 +0000 (09:08 +0000)]
A partial attempt to improve :stepover
With this patch, :stepover can effectively appear to step over recursive calls and
calls to locally bound functions (in a where clause).
However, when we run out of ticks in the current expression,
the illusion vanishes and laziness brings us to the body of the last function
we "stepped over".
This is not desired at all, it is potentially very confusing.
As a countermeasure, when this happens :stepover emits a warning
"Warning: no more breakpoints in this function body, switching to :step"
Pepe Iborra [Wed, 22 Aug 2007 08:42:54 +0000 (08:42 +0000)]
Better document :stepover and its limitations
:stepover only works lexically locally, in the context of the
current expression. I have tried to make this point clear
in the users guide with an example.
Pepe Iborra [Tue, 21 Aug 2007 12:15:16 +0000 (12:15 +0000)]
Small rearrangements
Pepe Iborra [Tue, 21 Aug 2007 12:03:50 +0000 (12:03 +0000)]
Extend ModBreaks with the srcspan's of the enclosing expressions
Simon Marlow [Wed, 22 Aug 2007 08:40:26 +0000 (08:40 +0000)]
Doc for new manifest-related flags
Simon Marlow [Fri, 10 Aug 2007 08:47:53 +0000 (08:47 +0000)]
FIX #1271: create manifests, and embed them in executables on Windows
We have 4 new flags:
-fno-gen-manifest
suppresses creation of foo.exe.manifest
-fno-embed-manifest
suppresses embedding of the manifest in the executable
-pgmwindres
specify a program to use instead of windres
-optwindres
extra options to pass to windres
"windres" is now copied from mingw and included in a binary
distribution.
Simon Marlow [Tue, 21 Aug 2007 15:15:53 +0000 (15:15 +0000)]
FIX #1427, #1569: gcc 4.2.x needs -fno-toplevel-reorder
We now have various flags that need to be passed to gcc, but only if
the local gcc version supports them. So instead of wiring this
knowledge into ghc when it is built, we now put these "extra gcc
flags" into a text file in $libdir, extra-gcc-flags, which is created
by configure. It is also created by the configure script of a binary
distribution, so a binary dist is independent of the gcc version used
to build it.
Hopefully I got the binary-dist stuff right, but binary dists aren't
currently working so we'll need to come back and check this.
Simon Marlow [Tue, 21 Aug 2007 15:12:05 +0000 (15:12 +0000)]
we need to add utils/pwd to a binary distribution
Simon Marlow [Tue, 21 Aug 2007 14:46:41 +0000 (14:46 +0000)]
binary-dist: remove comment from the middle of a shell command
This appears to cause trouble in at least some shells
Clemens Fruhwirth [Wed, 8 Aug 2007 14:57:00 +0000 (14:57 +0000)]
Add R_X86_64_PC64 relocation support to the Linker
Clemens Fruhwirth [Fri, 10 Aug 2007 06:30:40 +0000 (06:30 +0000)]
Also build gmp shared if neccessary
Clemens Fruhwirth [Tue, 7 Aug 2007 16:06:16 +0000 (16:06 +0000)]
Add __PIC__ define for -fPIC compiled C code
Clemens Fruhwirth [Tue, 7 Aug 2007 14:41:24 +0000 (14:41 +0000)]
Remove unused -optdll option.
Clemens Fruhwirth [Tue, 7 Aug 2007 14:40:18 +0000 (14:40 +0000)]
Link Windows DLLs and OSX dylibs correctly in linkDynLib
Ben.Lippmeier@anu.edu.au [Tue, 14 Aug 2007 10:36:23 +0000 (10:36 +0000)]
Add graph coloring register allocator.
Refactored linear allocator into separate liveness annotation and allocation stages.
Added graph coloring allocator, use -fregs-graph to enable.
New dump flags are
-ddump-asm-native -- output of cmm -> native transform.
-ddump-asm-liveness -- code annotated with register liveness info
-ddump-asm-coalesce -- output of register move coalescing
(this is a separate pass when using the coloring allocator)
(this could change in the future)
-ddump-asm-regalloc -- code after register allocation
-ddump-asm-regalloc-stages -- blocks after each build/spill stage of coloring allocator
-ddump-asm-conflicts -- a global register liveness graph in graphviz format
The new register allocator will allocate some registers, but it's not
quite ready for prime-time yet. The spill code generator needs some work...
Ian Lynagh [Tue, 21 Aug 2007 10:10:28 +0000 (10:10 +0000)]
Make ghc-inplace return GHC's exitcode on Windows
Ian Lynagh [Tue, 21 Aug 2007 08:59:37 +0000 (08:59 +0000)]
Remove odd recursive call in the driver/ghci Makefile
I'm not sure why this was here, but it makes ghci.o get built twice on
Windows, which can cause the build to fail if it tries to link it
in the middle.
Ian Lynagh [Mon, 20 Aug 2007 23:52:21 +0000 (23:52 +0000)]
Fix quoting of double quotes in the Makefile on Windows
Ian Lynagh [Mon, 20 Aug 2007 22:27:01 +0000 (22:27 +0000)]
Fix ghc-inplace.c on Windows; new code based on ghci.c
Simon Marlow [Fri, 3 Aug 2007 10:20:45 +0000 (10:20 +0000)]
FIX part of #1372, improvements to the recompilation checker
This patch adds a check that each imported module is listed in
the dependencies from the previous interface. It catches the
following cases and forces recompilation:
- an exposed package has been upgraded
- we are compiling with different package flags
- a home module that was shadowing a package module has been removed
- a new home module has been added that shadows a package module
I haven't yet added the package timestamping as described in #1372.
Norman Ramsey [Mon, 20 Aug 2007 19:54:41 +0000 (19:54 +0000)]
put CmmReturnInfo into a CmmCall (and related types)
simonpj@microsoft.com [Mon, 20 Aug 2007 21:02:22 +0000 (21:02 +0000)]
Add a paragraph break
Norman Ramsey [Mon, 20 Aug 2007 16:41:05 +0000 (16:41 +0000)]
annotate C-- calls that do not return
* The correct definition of C-- requires that a procedure not
'fall off the end'. The 'never returns' annotation tells us
if a (foreign) call is not going to return.
Validated!
Pepe Iborra [Mon, 20 Aug 2007 14:20:35 +0000 (14:20 +0000)]
(short) Documentation for :stepover in the Users Guide
Pepe Iborra [Mon, 20 Aug 2007 13:35:46 +0000 (13:35 +0000)]
Make :stepover <expr> work like :step
Manuel M T Chakravarty [Sun, 19 Aug 2007 11:38:25 +0000 (11:38 +0000)]
Check for correct number of parameters in type instances
Manuel M T Chakravarty [Sun, 19 Aug 2007 11:36:47 +0000 (11:36 +0000)]
FIX: family instances for infix type constructors
- Fixed test "Infix" in the testsuite, which Roman added
Manuel M T Chakravarty [Sun, 19 Aug 2007 07:23:40 +0000 (07:23 +0000)]
ATs inherit kind annotations from class partameters
- Fixes the test "Kind" in the testsuite, which Roman added
Manuel M T Chakravarty [Sun, 19 Aug 2007 05:56:18 +0000 (05:56 +0000)]
Updated comments
Ian Lynagh [Sun, 19 Aug 2007 00:05:10 +0000 (00:05 +0000)]
Document the compiler --info flag
Ian Lynagh [Sun, 19 Aug 2007 00:04:36 +0000 (00:04 +0000)]
Improve runghc's argument handling
Ian Lynagh [Sun, 19 Aug 2007 00:02:58 +0000 (00:02 +0000)]
Add some runghc docs to the users guide
Ian Lynagh [Sat, 18 Aug 2007 22:42:46 +0000 (22:42 +0000)]
Make runghc warning-free and turn -Wall on in the Makefile
Ian Lynagh [Sat, 18 Aug 2007 22:40:21 +0000 (22:40 +0000)]
Make the runghc code prettier and fix some warnings
Ian Lynagh [Sat, 18 Aug 2007 22:37:58 +0000 (22:37 +0000)]
Implement --info, and change how can_split is defined
We now get the value of can_split from the SplitObjs setting in the
build system, rather than working out whether it should be possible
based on the platform.
Magnus Jonsson [Sun, 29 Jul 2007 21:02:30 +0000 (21:02 +0000)]
Make "runghc -f path-to-ghc Main.hs" work