Minor impovement to when we float a let out of
a right-hand side:

Note [Float when cheap or expandable]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We want to float a let from a let if the residual RHS is
   a) cheap, such as (\x. blah)
   b) expandable, such as (f b) if f is CONLIKE
But there are
  - cheap things that are not expandable (eg \x. expensive)
  - expandable things that are not cheap (eg (f b) where b is CONLIKE)
so we must take the 'or' of the two.
Add missing case in eqHsBang; makes rnfail055 pass again
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc
Document overlapping instances more clearly
Remove unused HscStats.lhs; fixes #7605
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Up supported LLVM version to 3.3.

Actual support is in progress but we will accept bugs against these
version. LLVM 3.2 seems in good shape at this point anyway.
Comments only (about trimming the type environment)
Update mailing lists in the users guide
Comments only
Exploit the invariant for AxInstCo to simplify coercionKind
When printing types in the interactive UI, take account of free variables

Often the types we print are full-generalised, but in fact *kinds* are
not, so we need to use tidyOpenType.

Fixes Trac #7587
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc
Use pprTypeForUser when printing kinds in ghci
Ensure the LLVM codegen correctly handles literals in a branch. #7571

We need to be sure that when generating code for literals, we properly narrow
the type of the literal to i1. See Note [Literals and branch conditions] in the
LlvmCodeGen.CodeGen module.

This occurs rarely as the optimizer will remove conditional branches with
literals, however we can get this situation occurring with hand written Cmm
code.

This fixes Trac #7571.

Signed-off-by: David Terei <davidterei@gmail.com>
Comments only
Allow eta-reduction of eval'd functions if of arity 1

See Note [Eta reduction of an eval'd function] in CoreUtils.
This doesn't fix Trac #7542, but that was the ticket that
pointed out this infelicity.
Allow CaseElim if the case binder is the next thing to be eval'd

This makes CaseElim happen a bit more often.
See Note [Case binder next] in Simplify.
This came up when investigating Trac #7542.
Fix llvm backend when 32bit build on 64bit OSX. (#7617)
Fix our handling of literals and types in LLVM (#7575).

This bug was introduced in the recent fix for #7571, that extended some
existing infastructure in the LLVM backend that handled the conflict
between LLVM's return type from comparison operations (i1) and what GHC
expects (word). By extending it to handle literals though, we forced all
literals to be i1 or word, breaking other code.

This patch resolves this breakage and handles #7571 still, cleaning up
the code for both a little. The overall approach is not ideal but
changing that is left for the future.