ghc.git
8 years agoFix to-iface conversion of RULES involving coercions in argument pattterns
Simon Peyton Jones [Thu, 23 Aug 2012 15:33:36 +0000 (16:33 +0100)]
Fix to-iface conversion of RULES involving coercions in argument pattterns

This is part of the fix to Trac #7165

8 years agoMerge ../HEAD
Simon Peyton Jones [Thu, 23 Aug 2012 14:30:38 +0000 (15:30 +0100)]
Merge ../HEAD

8 years agoDon't assume that coercion variables have (~) types
Simon Peyton Jones [Thu, 23 Aug 2012 10:04:22 +0000 (11:04 +0100)]
Don't assume that coercion variables have (~) types

The constraint solver doesn't zonk the types of coercion variables
so we can't assume that a coercion variable will have a (~) type.

Fixes Trac #7090.

8 years agoMinor refactoring
Simon Peyton Jones [Thu, 23 Aug 2012 09:17:19 +0000 (10:17 +0100)]
Minor refactoring

8 years agoAdd mapTM to TrieMap
Simon Peyton Jones [Wed, 22 Aug 2012 15:15:17 +0000 (16:15 +0100)]
Add mapTM to TrieMap

8 years agoTab elimination
Simon Peyton Jones [Wed, 22 Aug 2012 15:15:04 +0000 (16:15 +0100)]
Tab elimination

8 years agoA bit more debug output
Simon Peyton Jones [Wed, 22 Aug 2012 15:14:30 +0000 (16:14 +0100)]
A bit more debug output

8 years agoFix missing case in coVarsOfTcCo
Simon Peyton Jones [Wed, 22 Aug 2012 15:13:56 +0000 (16:13 +0100)]
Fix missing case in coVarsOfTcCo

Reported by Ganesh, Trac #7178.  Fix is easy.

8 years agoMore CPP removal in nativeGen/X86/Regs.hs
Ian Lynagh [Tue, 21 Aug 2012 23:51:09 +0000 (00:51 +0100)]
More CPP removal in nativeGen/X86/Regs.hs

8 years agoMore CPP removal in nativeGen/X86/Regs.hs
Ian Lynagh [Tue, 21 Aug 2012 23:43:41 +0000 (00:43 +0100)]
More CPP removal in nativeGen/X86/Regs.hs

8 years agoRemove some CPP in nativeGen/X86/Regs.hs
Ian Lynagh [Tue, 21 Aug 2012 23:40:58 +0000 (00:40 +0100)]
Remove some CPP in nativeGen/X86/Regs.hs

8 years agoMake the PPC globalRegMaybe more similar to the other platforms'
Ian Lynagh [Tue, 21 Aug 2012 20:50:59 +0000 (21:50 +0100)]
Make the PPC globalRegMaybe more similar to the other platforms'

8 years agoWhitespace only in compiler/nativeGen/PPC/Regs.hs
Ian Lynagh [Tue, 21 Aug 2012 20:48:40 +0000 (21:48 +0100)]
Whitespace only in compiler/nativeGen/PPC/Regs.hs

8 years agoWhitespace only in nativeGen/RegAlloc/Linear/X86/FreeRegs.hs
Ian Lynagh [Tue, 21 Aug 2012 18:53:04 +0000 (19:53 +0100)]
Whitespace only in nativeGen/RegAlloc/Linear/X86/FreeRegs.hs

8 years agoRemove unused 'targetWordSize'
Ian Lynagh [Tue, 21 Aug 2012 18:51:58 +0000 (19:51 +0100)]
Remove unused 'targetWordSize'

8 years agoPass platform down to lastint
Ian Lynagh [Tue, 21 Aug 2012 18:50:32 +0000 (19:50 +0100)]
Pass platform down to lastint

8 years agoPass platform down to lastxmm
Ian Lynagh [Tue, 21 Aug 2012 18:39:20 +0000 (19:39 +0100)]
Pass platform down to lastxmm

8 years agoStgCmmUtils no longer needs to include HaskellMachRegs.h
Ian Lynagh [Tue, 21 Aug 2012 18:08:31 +0000 (19:08 +0100)]
StgCmmUtils no longer needs to include HaskellMachRegs.h

8 years agoUse haveRegBase in StgCmmUtils too
Ian Lynagh [Tue, 21 Aug 2012 18:04:57 +0000 (19:04 +0100)]
Use haveRegBase in StgCmmUtils too

8 years agoWhitespace only in StgCmmUtils
Ian Lynagh [Tue, 21 Aug 2012 17:57:56 +0000 (18:57 +0100)]
Whitespace only in StgCmmUtils

8 years agoCgUtils no longer needs to #include HaskellMachRegs.h
Ian Lynagh [Tue, 21 Aug 2012 17:52:11 +0000 (18:52 +0100)]
CgUtils no longer needs to #include HaskellMachRegs.h

8 years agoAdd haveRegBase to CodeGen.Platform
Ian Lynagh [Tue, 21 Aug 2012 17:44:31 +0000 (18:44 +0100)]
Add haveRegBase to CodeGen.Platform

8 years agoMove activeStgRegs into CodeGen.Platform
Ian Lynagh [Tue, 21 Aug 2012 16:44:38 +0000 (17:44 +0100)]
Move activeStgRegs into CodeGen.Platform

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Tue, 21 Aug 2012 15:45:53 +0000 (16:45 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoFix the generation of CallerSaves; fixes #7163
Ian Lynagh [Tue, 21 Aug 2012 15:41:30 +0000 (16:41 +0100)]
Fix the generation of CallerSaves; fixes #7163

Simon Marlow spotted that we were #include'ing MachRegs.h several times,
but that doesn't work as (a) it uses ifdeffery to avoid being included
multiple times, and (b) even if we work around that, then the #define's
from previous inclusions are still defined when we #include it again.

So we now put the platform code for each platform in a separate .hs file.

8 years agoOS X: use mmap() instead of malloc for allocating the bss (#7040)
Simon Marlow [Mon, 20 Aug 2012 12:14:47 +0000 (13:14 +0100)]
OS X: use mmap() instead of malloc for allocating the bss (#7040)

8 years agofix warning
Simon Marlow [Tue, 21 Aug 2012 14:02:34 +0000 (15:02 +0100)]
fix warning

8 years agoAnnotate code in {-# LINE #-} pragmas as well
Peter Wortmann [Wed, 8 Aug 2012 15:52:15 +0000 (16:52 +0100)]
Annotate code in {-# LINE #-} pragmas as well

I suppose this was a good idea for HPC, as it assumed that source code
annotations coming from a source file could only talk about the same
source file (by how Mix files are saved).

I don't see a reason why cost-centres or source annotations would want
that kind of behaviour. I introduced a flag for toggling the behaviour
per tickish.

(plus some minor refactoring, as well as making sure that the same check
applies to binary tick boxes, where they had apparently been forgotten.)

8 years agoRefactor the way we infer types for functions in a mutually recursive group
Simon Peyton Jones [Tue, 21 Aug 2012 13:37:20 +0000 (14:37 +0100)]
Refactor the way we infer types for functions in a mutually recursive group

See Note [Impedence matching] in TcBinds.
Fixes Trac #7173

8 years agoRe-jig the reporting of names bound multiple times
Simon Peyton Jones [Tue, 21 Aug 2012 13:35:12 +0000 (14:35 +0100)]
Re-jig the reporting of names bound multiple times

Fixes Trac #7164

8 years agoReduce the likelihood of x64/x86-64 changes breaking the build on other arches (...
Erik de Castro Lopo [Tue, 7 Aug 2012 20:44:00 +0000 (06:44 +1000)]
Reduce the likelihood of x64/x86-64 changes breaking the build on other arches (#7083).

Code that needs to differentiate between i386 and x86-64 should now
be written as if x86-64 is the default and i386 is the special case.
Eg:

    # if i386_TARGET_ARCH
    someFuncion = .....
    # else
    someFuncion = .....
    # endif

8 years agoFix inverted test for platformUnregisterised (should fix the optllvm breakage)
Simon Marlow [Tue, 21 Aug 2012 11:48:34 +0000 (12:48 +0100)]
Fix inverted test for platformUnregisterised (should fix the optllvm breakage)

8 years agotidy up
Simon Marlow [Tue, 21 Aug 2012 11:26:16 +0000 (12:26 +0100)]
tidy up

8 years agoImprove compile times by enabling +RTS -H for GHC (only when bootstrapped)
Simon Marlow [Tue, 21 Aug 2012 10:57:55 +0000 (11:57 +0100)]
Improve compile times by enabling +RTS -H for GHC (only when bootstrapped)

8 years agoReduce fragmentation when using +RTS -H (with or without a size)
Simon Marlow [Tue, 21 Aug 2012 10:39:06 +0000 (11:39 +0100)]
Reduce fragmentation when using +RTS -H (with or without a size)

8 years agoimprove debug output
Simon Marlow [Tue, 21 Aug 2012 10:37:18 +0000 (11:37 +0100)]
improve debug output

8 years agoFix a discrepancy between two calculations of which generation to collect
Simon Marlow [Tue, 21 Aug 2012 08:58:35 +0000 (09:58 +0100)]
Fix a discrepancy between two calculations of which generation to collect

The calculation should be done in one place, of course.

8 years agomove startProfTimer() and stopProfTimer() to the public headers
Simon Marlow [Tue, 21 Aug 2012 08:48:22 +0000 (09:48 +0100)]
move startProfTimer() and stopProfTimer() to the public headers

8 years agoadd X86_64_GOTTPOFF relocation for errno
Simon Marlow [Mon, 20 Aug 2012 14:13:45 +0000 (15:13 +0100)]
add X86_64_GOTTPOFF relocation for errno

Submitted by: Markus Pfeiffer <markus.pfeiffer@morphism.de> on cvs-ghc

8 years agoRetain ordering of finalizers during GC (#7160)
Simon Marlow [Mon, 20 Aug 2012 12:52:07 +0000 (13:52 +0100)]
Retain ordering of finalizers during GC (#7160)

This came up since the addition of C finalizers, since Haskell
finalizers are already stored in an explicit list.  C finalizers on
the other hand get a WEAK object each, so in order to run them in the
right order we have to make sure that list stays in the correct
order.  I hate adding new invariants, but this is the quickest way to
fix the bug for now.  A better way to fix it would be to have a single
WEAK object with a list of finaliers attached to it, and a primop
for adding finalizers to the list.

8 years agoremove tabs
Simon Marlow [Thu, 9 Aug 2012 10:05:28 +0000 (11:05 +0100)]
remove tabs

8 years agoremove tabs
Simon Marlow [Thu, 9 Aug 2012 10:04:57 +0000 (11:04 +0100)]
remove tabs

8 years agoremove tabs
Simon Marlow [Thu, 9 Aug 2012 10:04:15 +0000 (11:04 +0100)]
remove tabs

8 years agoAvoid the quadratic append trap in flattenCmmAGraph
Simon Marlow [Thu, 9 Aug 2012 09:43:59 +0000 (10:43 +0100)]
Avoid the quadratic append trap in flattenCmmAGraph

Fixes a perf problem in perf/compiler/T783

8 years agoExport startProfTimer and stopProfTimer symbols.
Paolo Capriotti [Mon, 20 Aug 2012 15:25:49 +0000 (16:25 +0100)]
Export startProfTimer and stopProfTimer symbols.

This fixes unresolved symbols error when dynamically linking base.

8 years agoProfiling: open .prof when -hr<cc> is specified
Takano Akio [Wed, 15 Aug 2012 02:16:40 +0000 (11:16 +0900)]
Profiling: open .prof when -hr<cc> is specified

The code for retainer profiling is used with e.g. +RTS -hc -hrfoo -RTS,
as well as with +RTS -hr -RTS.

8 years agoWhen pattern matching against a constructor with equalities,
Simon Peyton Jones [Mon, 20 Aug 2012 13:28:00 +0000 (14:28 +0100)]
When pattern matching against a constructor with equalities,
require either -XGADTs *or* -XTypeFamilies (rather than only the former)

Fixes Trac #7156

8 years agoImprove documentation for rank-1 types (Trac #7137)
Simon Peyton Jones [Mon, 20 Aug 2012 13:26:08 +0000 (14:26 +0100)]
Improve documentation for rank-1 types (Trac #7137)

8 years agoAllow a vew pattern or bang pattern in a record pattern.
Takano Akio [Thu, 16 Aug 2012 10:13:47 +0000 (11:13 +0100)]
Allow a vew pattern or bang pattern in a record pattern.

e.g.
        data T = MkT { x,y :: Int }

        f (MkT { x = !v, y = negate -> w }) = v + w

8 years agoUse TcMType.growThetaTyVars (which works) rather than TcSimplify.growPreds (which...
Simon Peyton Jones [Wed, 15 Aug 2012 17:10:54 +0000 (18:10 +0100)]
Use TcMType.growThetaTyVars (which works) rather than TcSimplify.growPreds (which doesn't)

I think this got left behind when we simplified and improved TcSimplify.  The effect
was that we had a function like
   class P a b | a -> b
   class Q b c | b -> c

   f :: (P a b, Q b c) => a -> a

and were were failing to quanitfy over 'c', even though it is (indirectly) determined
by 'a'.

This make Programatica fail to compile: Trac #7147

8 years agoTest FlexibleInstance not UndecidableInstances in the ambiguity check
Simon Peyton Jones [Wed, 15 Aug 2012 15:02:03 +0000 (16:02 +0100)]
Test FlexibleInstance not UndecidableInstances in the ambiguity check

Fixes Trac #7131

8 years agoRequire DataKinds for promoted list/tuple syntax in types
Simon Peyton Jones [Wed, 15 Aug 2012 15:01:19 +0000 (16:01 +0100)]
Require DataKinds for promoted list/tuple syntax in types

Fixes Trac #7151

8 years agoPut kind variables before type variables when quantifying
Simon Peyton Jones [Wed, 15 Aug 2012 14:59:26 +0000 (15:59 +0100)]
Put kind variables before type variables when quantifying

This is a pretty egregious error; I'm surprised it has lasted so long!

Fixes Trac #7124

8 years agoMerge branch 'master' of darcs.haskell.org:/home/darcs/ghc
Simon Peyton Jones [Wed, 15 Aug 2012 13:24:43 +0000 (14:24 +0100)]
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc

8 years agoFix Trac #7145, by recording uses of constructor "children" in export lists
Simon Peyton Jones [Wed, 15 Aug 2012 13:24:26 +0000 (14:24 +0100)]
Fix Trac #7145, by recording uses of constructor "children" in export lists

8 years agoComments about shadowing
Simon Peyton Jones [Wed, 15 Aug 2012 13:23:42 +0000 (14:23 +0100)]
Comments about shadowing

8 years agoTH: Pragmas refactoring.
Mikhail Vorozhtsov [Tue, 10 Jul 2012 14:37:42 +0000 (21:37 +0700)]
TH: Pragmas refactoring.

Also adds RULES and 'SPECIALIZE instance' support.

8 years agoMake .t files when running haddock
Ian Lynagh [Tue, 14 Aug 2012 17:24:01 +0000 (18:24 +0100)]
Make .t files when running haddock

These files contain the "+RTS -t --machin-readable" output, so that
we can spot performance regressions.

8 years agoImprove documentation of the way that defaulting to IO happens in GHCi
Simon Peyton Jones [Tue, 14 Aug 2012 16:31:48 +0000 (17:31 +0100)]
Improve documentation of the way that defaulting to IO happens in GHCi

Thanks to John Hughes for the suggestion.

8 years agoDocument -fdefer-type-errors
Simon Peyton Jones [Tue, 14 Aug 2012 16:31:18 +0000 (17:31 +0100)]
Document -fdefer-type-errors

Thanks to Paolo for most of the work.

8 years agoBetter debug printing
Simon Peyton Jones [Tue, 14 Aug 2012 16:06:21 +0000 (17:06 +0100)]
Better debug printing

8 years agoComments
Simon Peyton Jones [Tue, 14 Aug 2012 16:06:10 +0000 (17:06 +0100)]
Comments

8 years agoFix Trac #7128, by zonking kind varaibles more assiduously when typechecking a class...
Simon Peyton Jones [Tue, 14 Aug 2012 16:06:00 +0000 (17:06 +0100)]
Fix Trac #7128, by zonking kind varaibles more assiduously when typechecking a class declaration

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Mon, 13 Aug 2012 21:52:17 +0000 (22:52 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoFix GHCi segfault during startup on linux-powerpc (#2972).
Erik de Castro Lopo [Mon, 30 Jul 2012 19:53:49 +0000 (05:53 +1000)]
Fix GHCi segfault during startup on linux-powerpc (#2972).

Slightly modified version of a patch from Ben Collins <bcollins@ubuntu.com>
who did the final debugging that showed the segfault was being caused the
memory protection mechanism.

Due to the requirement of "jump islands" to handle 24 bit relative jump
offsets, GHCi on PowerPC did not use mmap to load object files like the
other architectures. Instead, it allocated memory using malloc and fread
to load the object code. However there is a quirk in the GNU libc malloc
implementation. For memory regions over certain size (dynamic and
configurable), malloc will use mmap to obtain the required memory instead
of sbrk and malloc's call to mmap sets the memory readable and writable,
but not executable. That means when GHCi loads code into a memory region
that was mmapped instead of malloc-ed and tries to execute it we get a
segfault.

This solution drops the malloc/fread object loading in favour of using
mmap and then puts the jump island for each object code module at the
end of the mmaped region for that object.

This patch may also be a solution on other ELF based powerpc systems
but does not work on darwin-powerpc.

8 years agoFix environment update for type instance declarations in GHCi (#7117)
Paolo Capriotti [Mon, 13 Aug 2012 17:26:34 +0000 (18:26 +0100)]
Fix environment update for type instance declarations in GHCi (#7117)

Patch by Patrick Palka <patrick@parcs.ath.cx>

8 years agoGive suggestions for unrecognised command line arguments
Joachim Breitner [Thu, 9 Aug 2012 14:10:56 +0000 (16:10 +0200)]
Give suggestions for unrecognised command line arguments

8 years agoRespect verbosity for "flags changed" message (#7139)
Paolo Capriotti [Mon, 13 Aug 2012 12:36:38 +0000 (13:36 +0100)]
Respect verbosity for "flags changed" message (#7139)

Also, print that message on stdout.

8 years agoFix ambiguous flag resolution (#7138)
Paolo Capriotti [Mon, 13 Aug 2012 11:48:29 +0000 (12:48 +0100)]
Fix ambiguous flag resolution (#7138)

Pick longest flag when more than one matches in findArg.

This fixes an issue where -ignore-dot-ghci wasn't honored, because the
flag was parsed as "-i gnore-dot-ghci".

8 years agoUpdate 'unboxed tuples' section of users guide.
Austin Seipp [Sun, 5 Aug 2012 20:06:33 +0000 (15:06 -0500)]
Update 'unboxed tuples' section of users guide.

In particular, many of the restrictions on using unboxed tuples went
away thanks to Max Bolingbroke, and they can now be bound to variables
without pattern matching, and passed as arguments.

Also fix a little formatting in glasgow-exts.xml. Some other parts
of this section may be out of date.

Signed-off-by: Austin Seipp <mad.one@gmail.com>
8 years agoDon't pass -Wimplicit to the C++ compiler.
Austin Seipp [Sun, 5 Aug 2012 08:26:45 +0000 (03:26 -0500)]
Don't pass -Wimplicit to the C++ compiler.

Supresses an ugly warning from gcc 4.6+ saying this is a C/ObjC flag
only.

Signed-off-by: Austin Seipp <mad.one@gmail.com>
8 years agoUse the right arch name in the Windows installer filename
Ian Lynagh [Sun, 12 Aug 2012 18:43:51 +0000 (19:43 +0100)]
Use the right arch name in the Windows installer filename

8 years agoFollow RTS symbol changes in Linker.c
Ian Lynagh [Fri, 10 Aug 2012 22:21:09 +0000 (23:21 +0100)]
Follow RTS symbol changes in Linker.c

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Fri, 10 Aug 2012 21:28:13 +0000 (22:28 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoAlways define startProfTimer and stopProfTimer
Ian Lynagh [Fri, 10 Aug 2012 21:26:51 +0000 (22:26 +0100)]
Always define startProfTimer and stopProfTimer

This allows us to provide access to them in the base library.

8 years agoFix build failure on OS X (#7119)
Simon Marlow [Thu, 9 Aug 2012 10:41:06 +0000 (11:41 +0100)]
Fix build failure on OS X (#7119)

When refactoring this recently I accidentally put the
dead-strip-preventer symbol (only used on OS X) in the wrong section.

8 years agoRemove uses of fixC from the codeGen, and make the FCode monad strict
Simon Marlow [Wed, 8 Aug 2012 15:31:58 +0000 (16:31 +0100)]
Remove uses of fixC from the codeGen, and make the FCode monad strict

8 years agoOnly run the second round of control-flow optimisations when -O is on
Simon Marlow [Wed, 8 Aug 2012 15:06:31 +0000 (16:06 +0100)]
Only run the second round of control-flow optimisations when -O is on

8 years agoa couple of small optimisations
Simon Marlow [Wed, 8 Aug 2012 15:05:11 +0000 (16:05 +0100)]
a couple of small optimisations

8 years agoAdd cast to placate gcc 4.6 on linux-powerpc (#7113).
Erik de Castro Lopo [Fri, 3 Aug 2012 05:14:35 +0000 (15:14 +1000)]
Add cast to placate gcc 4.6 on linux-powerpc (#7113).

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Wed, 8 Aug 2012 12:09:41 +0000 (13:09 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoSet the value of Unregisterised in the bindist configure.ac
Ian Lynagh [Wed, 8 Aug 2012 12:08:03 +0000 (13:08 +0100)]
Set the value of Unregisterised in the bindist configure.ac

Now that it's included in settings, the bindist configure script needs
to know it.

8 years agoAdd missing flag for respecting EXTRA_LIBDIR
Gabor Pali [Sun, 22 Jul 2012 16:59:56 +0000 (16:59 +0000)]
Add missing flag for respecting EXTRA_LIBDIR

8 years agofix warning
Simon Marlow [Tue, 7 Aug 2012 13:51:44 +0000 (14:51 +0100)]
fix warning

8 years agoFix a bug in the handling of recent_activity
Simon Marlow [Tue, 7 Aug 2012 13:44:46 +0000 (14:44 +0100)]
Fix a bug in the handling of recent_activity

The problem occurred when the idle GC was turned off with +RTS -I0.
Then the scheduler would go into the state ACTIVITY_DONE_GC directly
without doing a GC, and a subsequent GC would put it back to
ACTIVITY_YES but without turning the timer back on.  Instead if the GC
finds the state is ACTIVITY_DONE_GC it should leave it there.

8 years agomaybeInvertComparison: remove floating-point comparisons
Simon Marlow [Tue, 7 Aug 2012 08:46:35 +0000 (09:46 +0100)]
maybeInvertComparison: remove floating-point comparisons

See comments.

8 years agoentryHeapCheck: fix calls to stg_gc_fun and stg_gc_enter_1
Simon Marlow [Tue, 7 Aug 2012 13:41:09 +0000 (14:41 +0100)]
entryHeapCheck: fix calls to stg_gc_fun and stg_gc_enter_1

We weren't passing the arguments correctly to the GC functions, which
usually happened to work because the arguments were in the right
registers already.

After this fix the profiling tests go through with the new code
generator.

8 years agoSmall optimisation
Simon Marlow [Tue, 7 Aug 2012 13:39:03 +0000 (14:39 +0100)]
Small optimisation

When calling newCAF, refer to the closure using its LocalReg rather
than R1.  Using R1 here was preventing the register allocator from
coalescing the assignment x=R1 at the beginning of the function.

8 years agofix a warning
Simon Marlow [Tue, 7 Aug 2012 13:37:17 +0000 (14:37 +0100)]
fix a warning

8 years agoEliminate "r = r" in mkAssign
Simon Marlow [Tue, 7 Aug 2012 13:04:08 +0000 (14:04 +0100)]
Eliminate "r = r" in mkAssign

8 years agoNode calling convs should use R1 even if it isn't a register
Simon Marlow [Tue, 7 Aug 2012 13:03:35 +0000 (14:03 +0100)]
Node calling convs should use R1 even if it isn't a register

8 years agoAdd missing cases in hand-coded instance Eq GlobalReg
Simon Marlow [Tue, 7 Aug 2012 10:55:44 +0000 (11:55 +0100)]
Add missing cases in hand-coded instance Eq GlobalReg

aargh.

8 years agofix maybeSaveCostCentre: cases were reversed
Simon Marlow [Tue, 7 Aug 2012 09:53:12 +0000 (10:53 +0100)]
fix maybeSaveCostCentre: cases were reversed

8 years agoFix update frames for profiling
Simon Marlow [Tue, 7 Aug 2012 09:28:27 +0000 (10:28 +0100)]
Fix update frames for profiling

8 years agoCleanup and fixes to profiling
Simon Marlow [Mon, 6 Aug 2012 15:52:49 +0000 (16:52 +0100)]
Cleanup and fixes to profiling

8 years agoA closure with void args only should be a function, not a thunk
Simon Marlow [Mon, 6 Aug 2012 15:52:19 +0000 (16:52 +0100)]
A closure with void args only should be a function, not a thunk

8 years agoMake lint check for undefined variables in Cmm
Simon Marlow [Mon, 6 Aug 2012 14:29:20 +0000 (15:29 +0100)]
Make lint check for undefined variables in Cmm

8 years agoGenerate one fewer temps per heap allocation
Simon Marlow [Mon, 6 Aug 2012 14:28:56 +0000 (15:28 +0100)]
Generate one fewer temps per heap allocation

This saves compile time and can make a big difference in some
pathological cases (T4801)

8 years agosmall cleanup
Simon Marlow [Mon, 6 Aug 2012 12:33:08 +0000 (13:33 +0100)]
small cleanup

8 years agoDefine callerSaves for all platforms
Ian Lynagh [Tue, 7 Aug 2012 01:37:46 +0000 (02:37 +0100)]
Define callerSaves for all platforms

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.