10 years agoAdjust error message slightly to make it clearer [Fri, 13 Mar 2009 13:44:02 +0000 (13:44 +0000)] 
Adjust error message slightly to make it clearer

10 years agojust comment formatting
Simon Marlow [Fri, 13 Mar 2009 13:23:39 +0000 (13:23 +0000)] 
just comment formatting

10 years agoAdd "+RTS -N" to determine the -N value automatically (see #1741)
Simon Marlow [Fri, 13 Mar 2009 11:46:46 +0000 (11:46 +0000)] 
Add "+RTS -N" to determine the -N value automatically (see #1741)

10 years agotidy up "missing symbol" error message
Simon Marlow [Fri, 13 Mar 2009 10:13:34 +0000 (10:13 +0000)] 
tidy up "missing symbol" error message

10 years agoFix sanity checking after fix to #2917
Simon Marlow [Thu, 12 Mar 2009 09:38:55 +0000 (09:38 +0000)] 
Fix sanity checking after fix to #2917

10 years agoInstead of a separate context-switch flag, set HpLim to zero
Simon Marlow [Fri, 13 Mar 2009 10:45:16 +0000 (10:45 +0000)] 
Instead of a separate context-switch flag, set HpLim to zero
This reduces the latency between a context-switch being triggered and
the thread returning to the scheduler, which in turn should reduce the
cost of the GC barrier when there are many cores.

We still retain the old context_switch flag which is checked at the
end of each block of allocation.  The idea is that setting HpLim may
fail if the the target thread is modifying HpLim at the same time; the
context_switch flag is a fallback.  It also allows us to "context
switch soon" without forcing an immediate switch, which can be costly.

10 years agoFIX #3079, dodgy parsing of LANGUAGE pragmas 2009-03-13
Simon Marlow [Thu, 12 Mar 2009 14:11:03 +0000 (14:11 +0000)] 
FIX #3079, dodgy parsing of LANGUAGE pragmas
I ended up rewriting this horrible bit of code, using (yikes) lazy I/O
to slurp in the source file a chunk at a time.  The old code tried to
read the file a chunk at a time, but failed with LANGUAGE pragmas
because the parser for LANGUAGE has state and the state wasn't being
saved between chunks.  We're still closing the Handle eagerly, so
there shouldn't be any problems here.

10 years agoavoid a crash: don't return unless the run queue has some threads in it
Simon Marlow [Wed, 11 Mar 2009 15:45:59 +0000 (15:45 +0000)] 
avoid a crash: don't return unless the run queue has some threads in it

10 years agoAllocate the right number of words in new*PinnedByteArrayzh_fast
Ian Lynagh [Wed, 11 Mar 2009 16:06:15 +0000 (16:06 +0000)] 
Allocate the right number of words in new*PinnedByteArrayzh_fast

10 years agoFIX #2816 (correct unicode output for :type/:kind)
Simon Marlow [Wed, 11 Mar 2009 11:23:11 +0000 (11:23 +0000)] 
FIX #2816 (correct unicode output for :type/:kind)
This is just a hack, since we don't have correct unicode output for
Handles in general, I just fixed a couple of places where we were not
converting to UTF-8 for output.

10 years agoFix #2992: don't create a named event
Simon Marlow [Wed, 11 Mar 2009 09:42:08 +0000 (09:42 +0000)] 
Fix #2992: don't create a named event
Evidently I misread the docs for CreateEvent: if you pass a name to
CreateEvent, then it creates a single shared system-wide Event with
that name.  So all Haskell processes on the machine were sharing the
same Event object.  duh.

10 years agoFIX #2832: Setting SplitObjs=NO doesn't disable -split-objs in GHC
Simon Marlow [Wed, 11 Mar 2009 11:00:58 +0000 (11:00 +0000)] 
FIX #2832: Setting SplitObjs=NO doesn't disable -split-objs in GHC
Now ghc --info reports whether-split-objs is supported, rather than
whether the libraries were built using -split-objs.

10 years agoFIX #2976: fix buggy implementation of shadowing in GHC.getBindings
Simon Marlow [Wed, 11 Mar 2009 10:20:07 +0000 (10:20 +0000)] 
FIX #2976: fix buggy implementation of shadowing in GHC.getBindings

10 years agoDon't put a trailing / on the mingw include path
Ian Lynagh [Tue, 10 Mar 2009 17:22:42 +0000 (17:22 +0000)] 
Don't put a trailing / on the mingw include path

10 years agoFix a bug which sometimes caused extra major GCs to be performed
Simon Marlow [Mon, 9 Mar 2009 14:00:04 +0000 (14:00 +0000)] 
Fix a bug which sometimes caused extra major GCs to be performed
A long-running GC would cause the timer signal to declare the system
to be idle, which would cause a major GC immediately following the
current GC.  This only happened with +RTS -N2 or greater.

10 years agoRedesign 64-bit HEAP_ALLOCED (FIX #2934 at the same time)
Simon Marlow [Mon, 9 Mar 2009 12:13:00 +0000 (12:13 +0000)] 
Redesign 64-bit HEAP_ALLOCED (FIX #2934 at the same time)

After much experimentation, I've found a formulation for HEAP_ALLOCED
that (a) improves performance, and (b) doesn't have any race
conditions when used concurrently.  GC performance on x86_64 should be
improved slightly.  See extensive comments in MBlock.h for the

10 years agoPartial fix for #2917
Simon Marlow [Fri, 6 Mar 2009 10:00:18 +0000 (10:00 +0000)] 
Partial fix for #2917

 - add newAlignedPinnedByteArray# for allocating pinned BAs with
   arbitrary alignment

 - the old newPinnedByteArray# now aligns to 16 bytes

Foreign.alloca will use newAlignedPinnedByteArray#, and so might end
up wasting less space than before (we used to align to 8 by default).
Foreign.allocaBytes and Foreign.mallocForeignPtrBytes will get 16-byte
aligned memory, which is enough to avoid problems with SSE
instructions on x86, for example.

There was a bug in the old newPinnedByteArray#: it aligned to 8 bytes,
but would have failed if the header was not a multiple of 8
(fortunately it always was, even with profiling).  Also we
occasionally wasted some space unnecessarily due to alignment in

I haven't done anything about Foreign.malloc/mallocBytes, which will
give you the same alignment guarantees as malloc() (8 bytes on
Linux/x86 here).

10 years agoDon't force HSCOLOUR_SRCS = YES when validating
Ian Lynagh [Sun, 8 Mar 2009 17:16:33 +0000 (17:16 +0000)] 
Don't force HSCOLOUR_SRCS = YES when validating
This removes a burden from developers, and I can't remember an
occasion where it would have caught a regression.

10 years agoAdd CONTRACT to the pragmas that we recognise.
Ian Lynagh [Fri, 6 Mar 2009 19:48:26 +0000 (19:48 +0000)] 
Add CONTRACT to the pragmas that we recognise.
It's used by ESC/Haskell.

10 years agoGenerate lots of __inline_me during vectorisation
Roman Leshchinskiy [Sat, 7 Mar 2009 13:56:52 +0000 (13:56 +0000)] 
Generate lots of __inline_me during vectorisation

10 years agoSpecial-case desugaring of simple parallel array comprehensions
Roman Leshchinskiy [Sat, 7 Mar 2009 13:40:49 +0000 (13:40 +0000)] 
Special-case desugaring of simple parallel array comprehensions

10 years agoMake LDV_FILL_SLOP use a forwards loop rather than a backwards loop
Ian Lynagh [Fri, 6 Mar 2009 15:51:24 +0000 (15:51 +0000)] 
Make LDV_FILL_SLOP use a forwards loop rather than a backwards loop

10 years agoFix warning
Roman Leshchinskiy [Fri, 6 Mar 2009 12:36:45 +0000 (12:36 +0000)] 
Fix warning

10 years agoTry not to avoid vectorising purely scalar functions
Roman Leshchinskiy [Fri, 6 Mar 2009 11:55:08 +0000 (11:55 +0000)] 
Try not to avoid vectorising purely scalar functions

10 years agoPackage dph needs to be cleaned in stage=1, too
Manuel M T Chakravarty [Fri, 6 Mar 2009 03:16:28 +0000 (03:16 +0000)] 
Package dph needs to be cleaned in stage=1, too

10 years agoAdd --version to runghc. Trac #2757.
Ian Lynagh [Thu, 5 Mar 2009 16:20:45 +0000 (16:20 +0000)] 
Add --version to runghc. Trac #2757.
We use the GHC version number, as the old runghc one doesn't seem very

10 years agoadd final newlines
Simon Marlow [Thu, 5 Mar 2009 14:00:14 +0000 (14:00 +0000)] 
add final newlines
My Windows build has started complaining about lacking final newlines,
I'm not entirely sure why.

10 years agoremove foo.exe.manifest when --embed-manifest is on
Simon Marlow [Thu, 5 Mar 2009 11:27:26 +0000 (11:27 +0000)] 
remove foo.exe.manifest when --embed-manifest is on

10 years agoadd --with-ld=c:/mingw/bin/ld
Simon Marlow [Thu, 5 Mar 2009 11:26:18 +0000 (11:26 +0000)] 
add --with-ld=c:/mingw/bin/ld

10 years agoDocument -fwarn-unrecognised-pragmas; fixes trac #3031
Ian Lynagh [Thu, 5 Mar 2009 14:31:28 +0000 (14:31 +0000)] 
Document -fwarn-unrecognised-pragmas; fixes trac #3031

10 years agoOn OS X/x86, tell gcc to generate instructions for i686. Fixes trac #2983.
Ian Lynagh [Thu, 5 Mar 2009 14:20:50 +0000 (14:20 +0000)] 
On OS X/x86, tell gcc to generate instructions for i686. Fixes trac #2983.
By default, gcc on OS X will generate SSE instructions, which need
things 16-byte aligned, but we don't 16-byte align things. Thus drop
back to generic i686 compatibility.

10 years agoBy default, only HsColour the docs if we find HsColour. Fixes trac #3004.
Ian Lynagh [Thu, 5 Mar 2009 13:27:23 +0000 (13:27 +0000)] 
By default, only HsColour the docs if we find HsColour. Fixes trac #3004.
If you manually set HSCOLOUR_SRCS=YES then the build will fail if
HsColour wasn't found.

10 years agoMake -fdicts-cheap cope with implication constraints [Thu, 5 Mar 2009 13:44:47 +0000 (13:44 +0000)] 
Make -fdicts-cheap cope with implication constraints

See the Note [Dictionary-like types] in TcType for the full story here
Should only affect programs that use -fdicts-cheap, for
which you'll get better arities

10 years agoFinally fix Trac #3066 [Thu, 5 Mar 2009 09:09:35 +0000 (09:09 +0000)] 
Finally fix Trac #3066

This is a fix to
  Tue Mar  3 17:42:58 GMT 2009
    * Fix Trac #3066: checking argument types in foreign calls
which I embarassingly got wrong.

Have to be careful when expanding recursive newtypes.

Pls merge.

10 years agoFix a broken link. Spotted by Norman Ramsey in trac #3068.
Ian Lynagh [Wed, 4 Mar 2009 16:53:51 +0000 (16:53 +0000)] 
Fix a broken link. Spotted by Norman Ramsey in trac #3068.

10 years agoFix spelling (Trac#3069) [Wed, 4 Mar 2009 09:22:32 +0000 (09:22 +0000)] 
Fix spelling (Trac#3069)

10 years agoLayout only [Wed, 4 Mar 2009 09:19:56 +0000 (09:19 +0000)] 
Layout only

10 years agoFix a long-standing latent bug (and the build): check res_ty not sig_ty [Wed, 4 Mar 2009 09:19:13 +0000 (09:19 +0000)] 
Fix a long-standing latent bug (and the build): check res_ty not sig_ty

10 years agoFix #3067: GHCi panics with 'initTc:LIE' while :stepping on code with funny types
pepe iborra [Tue, 3 Mar 2009 19:37:06 +0000 (19:37 +0000)] 
Fix #3067: GHCi panics with 'initTc:LIE' while :stepping on code with funny types

The problem is that calls to boxyUnify would panic if the types involved
contained type functions.
It looks like one should wrap these calls with getLIE, although I don't
really know what I am doing here

10 years agoFix Trac #3066: checking argument types in foreign calls [Tue, 3 Mar 2009 17:42:58 +0000 (17:42 +0000)] 
Fix Trac #3066: checking argument types in foreign calls

When checking argument types in a foreign call we were stupidly
looking through foralls.  The fix is easy.

Merge to 6.10.2

10 years agoFix Trac #3057 in deriving Functor [Tue, 3 Mar 2009 17:06:12 +0000 (17:06 +0000)] 
Fix Trac #3057 in deriving Functor

The universal type variables of a data constructor are not necessarily
identical to those of its parent type constructor, especially if the
data type is imported.

While I was at it, I did a significant refactoring to make all this
traversal of types more comprehensible, by adding the data type

10 years agofix assertion failure with -debug non-threaded RTS (by deleting code!)
Simon Marlow [Tue, 3 Mar 2009 14:39:42 +0000 (14:39 +0000)] 
fix assertion failure with -debug non-threaded RTS (by deleting code!)

10 years agoimprovements: generate LaTeX tables for more than one run
Simon Marlow [Tue, 3 Mar 2009 14:13:46 +0000 (14:13 +0000)] 
improvements: generate LaTeX tables for more than one run

10 years agoA few bug fixes; some improvements spurred by paper writing [Tue, 3 Mar 2009 15:02:28 +0000 (15:02 +0000)] 
A few bug fixes; some improvements spurred by paper writing
Among others:
- Fixed Stg->C-- translation of let-no-escapes -- it's important to use the
  right continuation...
- Fixed infinite recursion in X86 backend (shortcutJump mishandled infinite loops)
- Fixed yet another wrong calling convention -- primops take args only in vanilla regs,
  but they may return results on the stack!
- Removed StackInfo from LGraph and Block -- now in LastCall and CmmZ
- Updated avail-variable and liveness code

10 years agoComments only [Tue, 3 Mar 2009 11:15:13 +0000 (11:15 +0000)] 
Comments only

10 years agoFilter out carriage returns in doc strings
David Waern [Sat, 28 Feb 2009 14:53:51 +0000 (14:53 +0000)] 
Filter out carriage returns in doc strings

We want the internal format to contain LFs only. This makes it easier to work
with the doc strings for clients of the GHC API.

10 years agoz-encode digits at the start of a symbol name; fixes trac #2997
Ian Lynagh [Fri, 27 Feb 2009 18:00:29 +0000 (18:00 +0000)] 
z-encode digits at the start of a symbol name; fixes trac #2997
Digits already have a couple of meanings in z-encoding (Z3T is a tuple,
and z123U is a unicode character), so we encode digits as unicode
characters to avoid trying to squeeze in another meaning.

Also removed a little GHC < 6.2 compatibility hack.

10 years agoWhitespace only
Ian Lynagh [Fri, 27 Feb 2009 16:34:35 +0000 (16:34 +0000)] 
Whitespace only

10 years agoImprove documentation of bang patterns [Fri, 27 Feb 2009 10:15:03 +0000 (10:15 +0000)] 
Improve documentation of bang patterns

10 years agoUse 'nonIOok' instead of 'True'; cosmetics only [Mon, 23 Feb 2009 10:16:59 +0000 (10:16 +0000)] 
Use 'nonIOok' instead of 'True'; cosmetics only

10 years agoTweak +RTS --info docs
Ian Lynagh [Fri, 27 Feb 2009 02:07:58 +0000 (02:07 +0000)] 
Tweak +RTS --info docs

10 years agoIn +RTS --info output, use YES rather than Yes
Ian Lynagh [Fri, 27 Feb 2009 01:02:30 +0000 (01:02 +0000)] 
In +RTS --info output, use YES rather than Yes

10 years agoFIX #1891 (describe +RTS --info output in GHC user guide)
Andrew Coppin [Sat, 14 Feb 2009 15:02:34 +0000 (15:02 +0000)] 
FIX #1891 (describe +RTS --info output in GHC user guide)

10 years agoIf we are given -Werror, then pass -Werror to cpp
Ian Lynagh [Thu, 26 Feb 2009 00:16:06 +0000 (00:16 +0000)] 
If we are given -Werror, then pass -Werror to cpp

10 years agoStrip tag bits from closure pointers before trying to deference them. [Tue, 24 Feb 2009 10:13:46 +0000 (10:13 +0000)] 
Strip tag bits from closure pointers before trying to deference them.

10 years agoSPARC NCG: Split out sanity checking into its own module [Mon, 23 Feb 2009 07:12:07 +0000 (07:12 +0000)] 
SPARC NCG: Split out sanity checking into its own module

10 years agoSPARC NCG: Add jumps to end of blocks when working out condition codes [Mon, 23 Feb 2009 06:21:35 +0000 (06:21 +0000)] 
SPARC NCG: Add jumps to end of blocks when working out condition codes

10 years agoSPARC NCG: Enforce the invariant that each block ends with a jump. [Mon, 23 Feb 2009 06:07:07 +0000 (06:07 +0000)] 
SPARC NCG: Enforce the invariant that each block ends with a jump.

 - If each basic block doesn't end with a jump then the register
   liveness determinator will get the cross-block liveness info
   wrong, resulting in a bad allocation.

10 years agoAdd targets clean.library.dph and remake.library.dph
Manuel M T Chakravarty [Tue, 24 Feb 2009 11:20:37 +0000 (11:20 +0000)] 
Add targets clean.library.dph and remake.library.dph
- Package dph ist a meta package that contains a number of subpackages inside.
- This patch adds two targets to clean and remake all subpackages with a
  single command.

10 years ago:steplocal and :stepmodule should not polute trace history
Peter Hercek [Sun, 22 Feb 2009 20:10:02 +0000 (20:10 +0000)] 
:steplocal and :stepmodule should not polute trace history

10 years agoDo not print anything to stdout when stopping at a breakpoint with custom code attached
Peter Hercek [Sun, 22 Feb 2009 19:55:51 +0000 (19:55 +0000)] 
Do not print anything to stdout when stopping at a breakpoint with custom code attached

10 years agonewPinnedByteArray#: align the result to 16-bytes (part of #2917)
Simon Marlow [Thu, 19 Feb 2009 10:32:45 +0000 (10:32 +0000)] 
newPinnedByteArray#: align the result to 16-bytes (part of #2917)

10 years agoOnly use STAGE3_PACKAGE_CONF for building GHC itself
Ian Lynagh [Sat, 21 Feb 2009 15:15:30 +0000 (15:15 +0000)] 
Only use STAGE3_PACKAGE_CONF for building GHC itself
In particular, when building dph with the stage2 compiler, we want to
register it in the main package.conf.

10 years agoExport blockUserSignals and unblockUserSignals (needed for #2870)
Simon Marlow [Thu, 19 Feb 2009 11:34:18 +0000 (11:34 +0000)] 
Export blockUserSignals and unblockUserSignals (needed for #2870)

10 years ago#2860: remove redundant unblocking of signals
Simon Marlow [Thu, 19 Feb 2009 10:32:58 +0000 (10:32 +0000)] 
#2860: remove redundant unblocking of signals

10 years agonewPinnedByteArray#: align the result to 16-bytes (part of #2917)
Simon Marlow [Thu, 19 Feb 2009 10:32:45 +0000 (10:32 +0000)] 
newPinnedByteArray#: align the result to 16-bytes (part of #2917)

10 years agoRewrite of signal-handling (ghc patch; see also base and unix patches)
Simon Marlow [Thu, 19 Feb 2009 10:31:42 +0000 (10:31 +0000)] 
Rewrite of signal-handling (ghc patch; see also base and unix patches)

The API is the same (for now).  The new implementation has the
capability to define signal handlers that have access to the siginfo
of the signal (#592), but this functionality is not exposed in this

#2451 is the ticket for the new API.

The main purpose of bringing this in now is to fix race conditions in
the old signal handling code (#2858).  Later we can enable the new
API in the HEAD.

Implementation differences:

 - More of the signal-handling is moved into Haskell.  We store the
   table of signal handlers in an MVar, rather than having a table of
   StablePtrs in the RTS.

 - In the threaded RTS, the siginfo of the signal is passed down the
   pipe to the IO manager thread, which manages the business of
   starting up new signal handler threads.  In the non-threaded RTS,
   the siginfo of caught signals is stored in the RTS, and the
   scheduler starts new signal handler threads.

10 years agoFix an off-by-one; fixes the second bug in trac #3001
Ian Lynagh [Wed, 18 Feb 2009 23:56:20 +0000 (23:56 +0000)] 
Fix an off-by-one; fixes the second bug in trac #3001

10 years agoInstall libHSffi_p.a
Ian Lynagh [Wed, 18 Feb 2009 16:59:13 +0000 (16:59 +0000)] 
Install libHSffi_p.a

10 years agoFix ghc and ghci wrappers on Windows
Ian Lynagh [Wed, 18 Feb 2009 00:50:34 +0000 (00:50 +0000)] 
Fix ghc and ghci wrappers on Windows

10 years agoMake versioned ghc and ghci programs on Windows; fixes trac #2827
Ian Lynagh [Tue, 17 Feb 2009 21:50:48 +0000 (21:50 +0000)] 
Make versioned ghc and ghci programs on Windows; fixes trac #2827

10 years agoSPARC NCG: Unsigned comparisons are unsigned [Tue, 17 Feb 2009 03:52:00 +0000 (03:52 +0000)] 
SPARC NCG: Unsigned comparisons are unsigned

10 years agoSPARC NCG: Fix word size conversions [Tue, 17 Feb 2009 02:33:22 +0000 (02:33 +0000)] 
SPARC NCG: Fix word size conversions

10 years agoSPARC NCG: Split up into chunks, and fix warnings. [Mon, 16 Feb 2009 02:00:38 +0000 (02:00 +0000)] 
SPARC NCG: Split up into chunks, and fix warnings.

10 years agoSPARC NCG: Reorganise Reg and RegInfo [Mon, 16 Feb 2009 00:09:45 +0000 (00:09 +0000)] 
SPARC NCG: Reorganise Reg and RegInfo

10 years agoNCG: Cleanup old file [Mon, 16 Feb 2009 00:08:47 +0000 (00:08 +0000)] 
NCG: Cleanup old file

10 years agoNCG: validate fixes for ppc-darwin [Sun, 15 Feb 2009 08:36:01 +0000 (08:36 +0000)] 
NCG: validate fixes for ppc-darwin

10 years agoNCG: validate fixes for ghc-6.6 [Sun, 15 Feb 2009 07:13:34 +0000 (07:13 +0000)] 
NCG: validate fixes for ghc-6.6

10 years agoNCG: validate fixes for i386-darwin [Sun, 15 Feb 2009 07:32:34 +0000 (07:32 +0000)] 
NCG: validate fixes for i386-darwin

10 years agoNCG: validate fixes for x86_64-linux [Sun, 15 Feb 2009 07:23:25 +0000 (07:23 +0000)] 
NCG: validate fixes for x86_64-linux

10 years agoNCG: Haddock validate fix [Sun, 15 Feb 2009 06:37:10 +0000 (06:37 +0000)] 
NCG: Haddock validate fix

10 years agoNCG: Validate fixes for x86-linux [Sun, 15 Feb 2009 06:23:21 +0000 (06:23 +0000)] 
NCG: Validate fixes for x86-linux

10 years agoSPARC NCG: Don't release top half of f6 and f8 [Sun, 15 Feb 2009 06:19:40 +0000 (06:19 +0000)] 
SPARC NCG: Don't release top half of f6 and f8

10 years agoNCG: Split up the native code generator into arch specific modules [Sun, 15 Feb 2009 05:51:58 +0000 (05:51 +0000)] 
NCG: Split up the native code generator into arch specific modules

  - nativeGen/Instruction defines a type class for a generic
    instruction set. Each of the instruction sets we have,
    X86, PPC and SPARC are instances of it.

  - The register alloctors use this type class when they need
    info about a certain register or instruction, such as
    regUsage, mkSpillInstr, mkJumpInstr, patchRegs..

  - nativeGen/Platform defines some data types enumerating
    the architectures and operating systems supported by the
    native code generator.

  - DynFlags now keeps track of the current build platform, and
    the PositionIndependentCode module uses this to decide what
    to do instead of relying of #ifdefs.

  - It's not totally retargetable yet. Some info info about the
    build target is still hardwired, but I've tried to contain
    most of it to a single module, TargetRegs.

  - Moved the SPILL and RELOAD instructions into LiveInstr.

  - Reg and RegClass now have their own modules, and are shared
    across all architectures.

10 years agoSPARC NCG: Make linear allocator use info in SPARC.Regs again [Wed, 11 Feb 2009 05:40:21 +0000 (05:40 +0000)] 
SPARC NCG: Make linear allocator use info in SPARC.Regs again

10 years agoSPARC NCG: Enumerate freeRegs / globalRegMaybe instead of using #ifdefery [Wed, 11 Feb 2009 02:53:30 +0000 (02:53 +0000)] 
SPARC NCG: Enumerate freeRegs / globalRegMaybe instead of using #ifdefery

10 years agoNCG: Split PprMach into arch specific modules [Thu, 5 Feb 2009 08:12:42 +0000 (08:12 +0000)] 
NCG: Split PprMach into arch specific modules
  - There are still some #ifdefs for choosing between i386, x86_64,
      linux, darwin and other OS's.
  - Also reformat SPARC.RegInfo to remove some of the visual noise.

10 years agoPut RelaxedPolyRec in the cabal file rather than a pragma
Ian Lynagh [Fri, 13 Feb 2009 18:56:35 +0000 (18:56 +0000)] 
Put RelaxedPolyRec in the cabal file rather than a pragma
This should fix the build with GHC 6.6

10 years agoupdate Sparc store/load barrier (#3019), and fix comments
Simon Marlow [Thu, 12 Feb 2009 09:23:40 +0000 (09:23 +0000)] 
update Sparc store/load barrier (#3019), and fix comments

10 years agocomment wibbles
Simon Marlow [Wed, 11 Feb 2009 15:28:44 +0000 (15:28 +0000)] 
comment wibbles

10 years agoNCG: Use sync instead of msync for a memory barrier for powerpc [Fri, 13 Feb 2009 00:49:10 +0000 (00:49 +0000)] 
NCG: Use sync instead of msync for a memory barrier for powerpc
  Darwin 9.6.0 + GCC 4.0.1 doesn't understand "msync".
  I think "sync" means the same thing.

10 years agoNCG: Split block reorder thing in linear allocator into separate fn [Fri, 13 Feb 2009 00:48:19 +0000 (00:48 +0000)] 
NCG: Split block reorder thing in linear allocator into separate fn

10 years agoNCG: Validate fixes for powerpc [Fri, 13 Feb 2009 00:47:25 +0000 (00:47 +0000)] 
NCG: Validate fixes for powerpc

10 years agoNCG: Add missing ops to powerpc isJumpish [Fri, 13 Feb 2009 00:46:47 +0000 (00:46 +0000)] 
NCG: Add missing ops to powerpc isJumpish

10 years agoOnly pass --with-hscolour to cabal-bin once
Ian Lynagh [Thu, 12 Feb 2009 14:10:23 +0000 (14:10 +0000)] 
Only pass --with-hscolour to cabal-bin once

10 years agoQuote some more arguments to cabal-bin
Ian Lynagh [Thu, 12 Feb 2009 14:11:20 +0000 (14:11 +0000)] 
Quote some more arguments to cabal-bin

10 years agoAdd more targets to the list that we need to include all libraries for
Ian Lynagh [Wed, 11 Feb 2009 17:33:33 +0000 (17:33 +0000)] 
Add more targets to the list that we need to include all libraries for

10 years agoFix Trac #3017: ensure that we quantify over enough type variables when equalities... [Wed, 11 Feb 2009 17:47:33 +0000 (17:47 +0000)] 
Fix Trac #3017: ensure that we quantify over enough type variables when equalities are involved

The function FunDeps.grow was not doing the right thing when type equality
constraints were involved.  That wasn't really its fault: its input was
being filtered by fdPredsOfInsts.

To fix this I did a bit of refactoring, so that the (revolting) fdPredsOfInsts
is now less important (maybe we can get rid of it in due course).  The 'grow'
function moves from FunDeps to

The main comments are with the first of these, in
Note [Growing the tau-tvs using constraints] in Inst.

Push to the branch if conflict free.

10 years agogeneral tidy up
Simon Marlow [Wed, 11 Feb 2009 15:24:29 +0000 (15:24 +0000)] 
general tidy up

10 years agoone more bugfix: a load/load memory barrier is required in stealWSDeque_()
Simon Marlow [Wed, 11 Feb 2009 15:24:21 +0000 (15:24 +0000)] 
one more bugfix: a load/load memory barrier is required in stealWSDeque_()