Manuel M T Chakravarty [Fri, 3 Jun 2011 00:42:48 +0000 (10:42 +1000)]
Propagate scalar variables and tycons for vectorisation through 'HscTypes.VectInfo'.
Simon Marlow [Tue, 31 May 2011 13:05:37 +0000 (14:05 +0100)]
fix comment
Johan Tibell [Fri, 6 May 2011 15:10:15 +0000 (17:10 +0200)]
Fold constants during forward substitution in the Cmm mini-inliner
This exposes new constants that can be propagated.
Johan Tibell [Fri, 6 May 2011 12:13:03 +0000 (14:13 +0200)]
Implement forward substitution of constants in the Cmm mini-inliner
Currently the mini-inliner would only forward substitute assignments
to registers that were used exactly once, to not risk duplicating
computation. For constants there's no such risk so we always
substitute. Prior to the change the Cmm
fn
{
bits64 a, b;
a = 1;
b = a + a;
RET_N(b);
}
would be optimized as
fn() { []
}
ca: _cb::I64 = 1;
R1 = _cb::I64 + _cb::I64;
jump (I64[Sp + 0]) ();
}
but after it would be optimized as
fn() { []
}
ca: R1 = 2;
jump (I64[Sp + 0]) ();
}
Note that this pass does not deal with the now dead assignment.
Simon Marlow [Wed, 1 Jun 2011 08:58:21 +0000 (09:58 +0100)]
check for bfd_uncompress_section_contents instead of bfd_init, because
the former will fail if libbfd is a static library and has a libz
dependency that we don't know about (#3756)
Ian Lynagh [Wed, 1 Jun 2011 00:07:01 +0000 (01:07 +0100)]
Fix a warning in DEBUG code
Ian Lynagh [Tue, 31 May 2011 23:50:24 +0000 (00:50 +0100)]
Fix the build with GHC 6.12.3
Ian Lynagh [Tue, 31 May 2011 23:20:08 +0000 (00:20 +0100)]
Fix a build failure on non-{x86,amd64}
Ian Lynagh [Tue, 31 May 2011 21:15:33 +0000 (22:15 +0100)]
Eliminate IF_ARCH_sparc
Ian Lynagh [Tue, 31 May 2011 21:09:22 +0000 (22:09 +0100)]
Remove some unused CPP macros
Ian Lynagh [Tue, 31 May 2011 18:02:52 +0000 (19:02 +0100)]
Remove CPP from nativeGen/RegAlloc/Linear/FreeRegs.hs
Fixes more failures on arches without an NCG
Ian Lynagh [Tue, 31 May 2011 16:07:04 +0000 (17:07 +0100)]
Parameterise the RegM monad on the FreeRegs type
Ian Lynagh [Tue, 31 May 2011 15:56:40 +0000 (16:56 +0100)]
Whitespace only in nativeGen/RegAlloc/Linear/Base.hs
Ian Lynagh [Tue, 31 May 2011 15:49:21 +0000 (16:49 +0100)]
Add missing type sigs in nativeGen/RegAlloc/Linear/Main.hs
Ian Lynagh [Tue, 31 May 2011 15:42:46 +0000 (16:42 +0100)]
Whitespace only in nativeGen/RegAlloc/Linear/Main.hs
Ian Lynagh [Tue, 31 May 2011 15:31:17 +0000 (16:31 +0100)]
Remove CPP from nativeGen/RegAlloc/Graph/TrivColorable.hs
This fixes build problems on arches without an NCG.
Ian Lynagh [Tue, 31 May 2011 15:01:39 +0000 (16:01 +0100)]
Whitespace only in nativeGen/RegAlloc/Graph/TrivColorable.hs
Ian Lynagh [Tue, 31 May 2011 14:51:22 +0000 (15:51 +0100)]
Add an ArchUnknown constructor to the arch type
Fixes build problems on platforms for which we did not have
and Arch constructor.
Ian Lynagh [Mon, 30 May 2011 20:47:01 +0000 (21:47 +0100)]
Remove CPP from nativeGen/TargetReg.hs
It's still not quite right: It assumes it is compiling for
defaultTargetPlatform instead of targetPlatform. But it's a
step in the right direction, and fixes the build on arches
without a NCG.
Simon Marlow [Tue, 31 May 2011 10:16:19 +0000 (11:16 +0100)]
more typos (#5225)
Daniel Fischer [Mon, 30 May 2011 09:13:35 +0000 (11:13 +0200)]
Fix typos in 7.0.1-notes.xml
Daniel Fischer [Mon, 30 May 2011 09:08:24 +0000 (11:08 +0200)]
Space between fromInteger and function in bugs.xml
Daniel Fischer [Mon, 30 May 2011 09:00:26 +0000 (11:00 +0200)]
Fix typos in debugging.xml
Daniel Fischer [Mon, 30 May 2011 08:54:16 +0000 (10:54 +0200)]
Fix typos in ffi-chap.xml
Daniel Fischer [Mon, 30 May 2011 07:59:50 +0000 (09:59 +0200)]
Fix typos in packages.xml
Daniel Fischer [Mon, 30 May 2011 07:47:44 +0000 (09:47 +0200)]
Fix typos in profiling.xml
Daniel Fischer [Mon, 30 May 2011 07:34:34 +0000 (09:34 +0200)]
Fix typos in runtime_control.xml
Daniel Fischer [Mon, 30 May 2011 07:09:34 +0000 (09:09 +0200)]
Remove repeated at in using.xml
Daniel Fischer [Mon, 30 May 2011 06:58:03 +0000 (08:58 +0200)]
Fix typos in shared_libs.xml
Daniel Fischer [Mon, 30 May 2011 06:52:49 +0000 (08:52 +0200)]
Fix two typos in flags.xml
Daniel Fischer [Mon, 30 May 2011 06:47:52 +0000 (08:47 +0200)]
Fix typos in using.xml
Daniel Fischer [Mon, 30 May 2011 06:13:05 +0000 (08:13 +0200)]
Fix typo everytime
Daniel Fischer [Mon, 30 May 2011 09:16:15 +0000 (11:16 +0200)]
glasgow_exts.xml whitespace
Daniel Fischer [Mon, 30 May 2011 09:03:46 +0000 (11:03 +0200)]
bugs.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:55:17 +0000 (10:55 +0200)]
debugging.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:50:22 +0000 (10:50 +0200)]
ffi-chap.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:49:21 +0000 (10:49 +0200)]
glasgow_exts.xml typos and whitespace
Daniel Fischer [Mon, 30 May 2011 08:02:02 +0000 (10:02 +0200)]
intro.xml whitespace
Daniel Fischer [Mon, 30 May 2011 08:00:42 +0000 (10:00 +0200)]
license.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:51:15 +0000 (09:51 +0200)]
parallel.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:48:30 +0000 (09:48 +0200)]
phases.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:37:16 +0000 (09:37 +0200)]
profiling.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:28:11 +0000 (09:28 +0200)]
runtime_control.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:23:28 +0000 (09:23 +0200)]
separate_compilation.xml whitespace
Daniel Fischer [Mon, 30 May 2011 07:00:58 +0000 (09:00 +0200)]
win32-dlls.xml whitespace
Daniel Fischer [Mon, 30 May 2011 06:37:25 +0000 (08:37 +0200)]
using.xml whitespace
Daniel Fischer [Mon, 30 May 2011 06:15:36 +0000 (08:15 +0200)]
flags.xml whitespace
Daniel Fischer [Mon, 30 May 2011 05:54:24 +0000 (07:54 +0200)]
ghci.xml whitespace only
Simon Marlow [Tue, 31 May 2011 08:47:59 +0000 (09:47 +0100)]
fix format specs on 64-bit builds
Simon Marlow [Tue, 31 May 2011 08:39:09 +0000 (09:39 +0100)]
Fix a cause of very occasional <<loop>> with parallel programs and
-feager-blackholing (#5226). See comments for details.
David Terei [Sat, 28 May 2011 00:11:54 +0000 (17:11 -0700)]
Fix some validation errors
David Terei [Sat, 21 May 2011 10:06:37 +0000 (03:06 -0700)]
Remove some old unused prelnames
David Terei [Mon, 9 May 2011 07:48:40 +0000 (00:48 -0700)]
Remove very dead Java backend code.
David Terei [Mon, 9 May 2011 07:16:36 +0000 (00:16 -0700)]
Fix warnings in X86/CodeGen
David Terei [Sat, 23 Apr 2011 03:00:15 +0000 (20:00 -0700)]
Add new mem{cpy,set,move} cmm prim ops.
David Terei [Mon, 9 May 2011 09:29:21 +0000 (02:29 -0700)]
LLVM: Figure out llvm version we are calling
Johan Tibell [Thu, 19 May 2011 15:34:20 +0000 (17:34 +0200)]
Make assignTemp_ less pessimistic
assignTemp_ is intended to make sure that the expression gets assigned
to a temporary in case that's needed in order to avoid a register
getting trashed due to a function call.
Ian Lynagh [Sun, 29 May 2011 18:06:28 +0000 (19:06 +0100)]
Remove most of the CPP from AsmCodeGen
In particular, the "#error" for platforms without a NCG is gone,
which means the module should now build on all platforms again.
I'm not sure if this is the nicest way to handle multiple platforms
here, but it works for now.
Duncan Coutts [Sun, 29 May 2011 15:29:03 +0000 (16:29 +0100)]
Fix build on windows (hopefully)
A missing ';' that just happened to work fine on non-windows due
to differing definitions of the ACQUIRE_LOCK macro.
Duncan Coutts [Thu, 26 May 2011 17:44:41 +0000 (18:44 +0100)]
Emit various bits of OS process info into the eventlog
The process ID, parent process ID, rts name and version
The program arguments and environment.
Duncan Coutts [Thu, 26 May 2011 15:42:37 +0000 (16:42 +0100)]
Add capability sets to the tracing/events system
We trace the creation and shutdown of capabilities. All the capabilities
in the process are assigned to one capabilitiy set of OS-process type.
This is a second version of the patch. Includes work by Spencer Janssen.
Duncan Coutts [Thu, 26 May 2011 15:01:24 +0000 (16:01 +0100)]
Make the tracing of the startup event more regular
Rather than doing it differently for the eventlog and Dtrace cases.
Duncan Coutts [Thu, 26 May 2011 14:08:43 +0000 (15:08 +0100)]
Rearrange shutdownCapability code slightly
This is mostly for the beneift of having sensible places to put tracing
code later. We want a code path that has somewhere to trace (in order):
(1) starting up all capabilities;
(2) N * starting up an individual capability;
(3) N * shutting down an individual capability;
(4) shutting down all capabilities.
This has to work in both threaded and non-threaded modes.
Locations (1) and (2) are provided by initCapabilities and
initCapability respectively. Previously, there was no loccation for (4)
and while shutdownCapability should be usable for (3) it was only called
in the !THREADED_RTS case.
Now, shutdownCapability is called unconditionally (and the body is
conditonal on THREADED_RTS) and there is a new shutdownCapabilities that
calls shutdownCapability in a loop.
Jose Pedro Magalhaes [Thu, 26 May 2011 16:27:34 +0000 (18:27 +0200)]
Merge branch 'ghc-generics'
Simon Peyton Jones [Thu, 26 May 2011 16:22:02 +0000 (17:22 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Thu, 26 May 2011 16:21:51 +0000 (17:21 +0100)]
Suppress the alarming SpecConstr message for normal users (Trac #5125)
This is the offending message:
SpecConstr
Function `$wks2{v s2dJ} [lid]'
has one call pattern, but the limit is 0
Use -fspec-constr-count=n to set the bound
Use -dppr-debug to see specialisations
The message isn't very good, and is for experts only. So now it
comes out only
if you build with -DDEBUG
or you specify -dppr-debug at runtime
Simon Peyton Jones [Thu, 26 May 2011 16:19:18 +0000 (17:19 +0100)]
Treat the (~) type constructor a bit specially
when kind-checking in Core Lint. It's unusual
becuase it is poly-kinded; for example
(~) Int a
and (~) Maybe b
are both ok. We don't want the full generality
of kind polymorphism (yet anyway) so these changes
in effect give (~) its own private kinding rule.
It won't work right if (~) appears un-saturated,
and Lint now checks for that too.
Simon Peyton Jones [Thu, 26 May 2011 13:33:00 +0000 (14:33 +0100)]
Merge remote branch 'origin/master' into ghc-generics
Simon Peyton Jones [Thu, 26 May 2011 13:31:18 +0000 (14:31 +0100)]
Do not be so eager about loading family-instance modules
when doing the overlap check. We only need to load the
ones for modules whose family instances we need to compare!
This means that programs that don't use type families are
not penalised, which is important.
Simon Peyton Jones [Thu, 26 May 2011 13:30:15 +0000 (14:30 +0100)]
Rejig the way in which generic default method signatures are checked
- Check GenericSig in tcClassSigs, along with TypeSig
- Add the generic default methods to the type envt
- Look them up via tcLookupId in TcClassDcl.tcDefMeth
Much nicer!
Simon Marlow [Thu, 26 May 2011 10:37:29 +0000 (11:37 +0100)]
Bump specConstr threshold to match to 10x factor added to
CoreUnfold.sizeExpr (oops, forgot to push this patch along with the
others yesterday, and this caused a few test failures overnight).
Ian Lynagh [Wed, 25 May 2011 18:08:38 +0000 (19:08 +0100)]
Remove unused ghci/ByteCodeFFI.lhs
Duncan Coutts [Wed, 25 May 2011 14:10:33 +0000 (15:10 +0100)]
ghc-pkg: report parser warnings when registering packages
Duncan Coutts [Wed, 25 May 2011 12:06:14 +0000 (13:06 +0100)]
Provide the pkgroot value in ghc-pkg dump & describe when necessary
Tools handling installed packages need to be able to interpret the
paths which are relative to the ${pkgroot} which means they need to
know the value of ${pkgroot}. With ghc-pkg this is not always obvious
since ghc-pkg does not currently have any way machine interface for
reporting the location of its package dbs (global, user). The solution
we have arrived at is simply to emit the pkgroot as an extra field
when it is needed.
There are two cases:
* --no-expand-pkgroot: ghc-pkg dump/describe will not expand the
${pkgroot} var, so it will appear literally in the output and the
pkgroot field will be generated so that tools know what value to
use for the ${pkgroot}.
* --expand-pkgroot: ghc-pkg dump/describe will expand the ${pkgroot}
and ${pkgrooturl} vars and will not generate the pkgroot field.
The defaults are:
* ghc-pkg dump/describe --no-expand-pkgroot
* ghc-pkg field --expand-pkgroot
Simon Marlow [Wed, 25 May 2011 12:06:05 +0000 (13:06 +0100)]
sizeExpr: multiply all the sizes by 10, except for primops. This
makes primops look cheap (but not free), and improves the Repro4.hs
example from #4978.
While I was making this change I accidentally discovered that
increasing the discount for scrutinised constructors was an
unambiguous win, so I did that too.
Simon Marlow [Wed, 25 May 2011 09:00:29 +0000 (10:00 +0100)]
prog_argv and rts_argv now contain *copies* of the args passed to
setupRtsFlags(), rather than sharing the memory. Previously if the
caller of hs_init() passed in dynamically-allocated memory and then
freed it, random crashes could happen later (#5177).
Duncan Coutts [Tue, 24 May 2011 14:42:38 +0000 (15:42 +0100)]
Add stricter ghc-pkg checks on package file/dir/url fields
The haddock-html and haddock-interface fields are now checked
as well. Had to fix up ghc-cabal as it used relative paths for
the inplace package's haddock-html. It turns out that these
were never used so it could simply be omitted.
Duncan Coutts [Mon, 23 May 2011 21:10:45 +0000 (22:10 +0100)]
Implement ${pkgroot} spec, allows relocatable registered packages
Historically ghc implemented relocatable packages by allowing
"$topdir" in the package registration info and having ghc expand
this with its notion of $topdir. The topdir refers to where ghc
itself is installed (specifically the libdir).
The ${pkgroot} spec takes this idea and makes it portable.
(http://www.haskell.org/pipermail/libraries/2009-May/011772.html)
Instead of paths relative to where ghc is installed, they can be
relative to the package database itself. Thus it is no longer a
ghc-specific idea and can work for package collections other than
the global package db.
Duncan Coutts [Mon, 23 May 2011 19:20:52 +0000 (20:20 +0100)]
Deprecate the ghc-pkg --auto-ghci-libs flag
It was never a universal solution. It only worked with the GNU linker.
It has not been used by Cabal for ages. GHCi can now load .a files so
it will not be needed in future.
Duncan Coutts [Mon, 23 May 2011 19:12:50 +0000 (20:12 +0100)]
ghc-pkg: don't expand ${name}-style env vars by default
For shell-based build systems the feature is still available as:
ghc-pkg register --expand-env-vars
Historically, ghc-pkg allowed environment variables to appear in the
input files for ghc-pkg register. They are not stored in the package
database but are expanded upon registration. This feature helped for
build systems based on makefiles and shell scripts. These days the
vast majority of such files are generated by Cabal and we don't want
any ${name} strings (e.g. perhaps in a package description) getting
accidentally interpreted as an environment variable.
Jose Pedro Magalhaes [Wed, 25 May 2011 09:57:44 +0000 (11:57 +0200)]
Better output for -ddump-deriv when using generics.
Simon Marlow [Tue, 24 May 2011 14:37:33 +0000 (15:37 +0100)]
deprecate the -n option (#5180)
Simon Marlow [Tue, 24 May 2011 15:56:23 +0000 (16:56 +0100)]
fix an integer overflow (#5086), and pre-emptively avoid more of these
in the future.
Ian Lynagh [Tue, 24 May 2011 17:06:50 +0000 (18:06 +0100)]
Disable DatatypeContexts by default
The Haskell' committee decided to remove datatype contexts from the language:
http://www.haskell.org/pipermail/haskell-prime/2011-January/003335.html
Simon Marlow [Tue, 24 May 2011 13:28:46 +0000 (14:28 +0100)]
Fix +RTS -G1 (by deleting code, yay!) (#5026)
Simon Marlow [Tue, 24 May 2011 12:44:15 +0000 (13:44 +0100)]
fix warning
Simon Marlow [Tue, 24 May 2011 12:43:04 +0000 (13:43 +0100)]
Install the mtl package into the bindist when validating. This allows
some more tests to run (those with reqlib('mtl')) and serves as an
extra sanity check on Cabal and the bindist.
Simon Marlow [Tue, 24 May 2011 12:42:16 +0000 (13:42 +0100)]
fix warnings
Simon Marlow [Tue, 24 May 2011 12:18:55 +0000 (13:18 +0100)]
make the change to go_pap suggested in #4978. According to nofib, one
program is improved quite dramatically (fft2 30% less allocation), and
everything else was unchanged.
Simon Marlow [Tue, 24 May 2011 12:16:28 +0000 (13:16 +0100)]
Assign more accurate code sizes to primops, so that the inlining
heuristics work better. Also removed the old unused "needs_wrapper"
predicate for primops. This helps with #4978.
Simon Marlow [Tue, 24 May 2011 12:14:17 +0000 (13:14 +0100)]
Tweak sizing heurstics for case expressions (see comments).
This improves the code generated for the examples in #4978, and
appears to make very little difference to nofib.
Jose Pedro Magalhaes [Mon, 23 May 2011 13:54:55 +0000 (15:54 +0200)]
Remove comment.
Jose Pedro Magalhaes [Mon, 23 May 2011 09:54:38 +0000 (11:54 +0200)]
Fix a bug with standalone deriving of Generic instances.
Simon Marlow [Mon, 23 May 2011 09:24:53 +0000 (10:24 +0100)]
Merge branch 'master' of /home/simonmar/ghc-git/.
* 'master' of /home/simonmar/ghc-git/.:
Revert "Add capability sets to the event system. Contains code from Duncan Coutts."
Duncan Coutts [Sun, 22 May 2011 23:10:21 +0000 (00:10 +0100)]
Revert "Add capability sets to the event system. Contains code from Duncan Coutts."
This reverts commit
58532eb46041aec8d4cbb48b054cb5b001edb43c.
Turns out it didn't work on Windows and it'll need some non-trivial changes
to make it work on Windows. We'll get it in later once that's sorted out.
David M Peixotto [Sun, 22 May 2011 19:30:22 +0000 (14:30 -0500)]
Added utility to uniquely identify ghc repo states
This commit adds fingerprint.py python script that can be used to
create and restore "fingerprints" of a ghc repo configuration. A
fingerprint is a list of (sub-repo, commit) pairs. It can be used in
place of git submodules to record and reinstate the entire commit
state of the git repos used by ghc.
David Terei [Sat, 21 May 2011 00:50:18 +0000 (17:50 -0700)]
Fix small type in user guide.
Jose Pedro Magalhaes [Fri, 20 May 2011 18:15:23 +0000 (20:15 +0200)]
Merge branch 'master' of darcs.haskell.org/ghc into ghc-generics
Fixed conflicts:
compiler/typecheck/TcSMonad.lhs
Jose Pedro Magalhaes [Fri, 20 May 2011 17:17:13 +0000 (19:17 +0200)]
Merge branch 'ghc-generics' of darcs.haskell.org/ghc into ghc-generics
Simon Peyton Jones [Fri, 20 May 2011 16:51:05 +0000 (17:51 +0100)]
Simon's fixes to the generated type instances in Generics