bug fix for control-flow optimisation
fix merge bugs
fix warnings
fix haddock parse error
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Tweak the rules, so that they work for the common case.
Start in porting the Leq database data structure.
Add a signature to avoid warning.
Fix compile on linux-powerpc64. (#7084).
Fix #7087 (integer overflow in getDelayTarget())
Improve code generated when real registers are clobbered

There was a long-standing ToDo here that I just did: if a real
register is clobbered by the current instruction, then we should move
it to another free register rather than spilling it to memory.  This
case crops up more often now that the register allocator can allocate
into the fixed Rn registers.
Explicitly share some return continuations

Instead of relying on common-block-elimination to share return
continuations in the common case (case-alternative heap checks) we do
it explicitly.  This isn't hard to do, is more robust, and saves some
compilation time.  Full commentary in Note [sharing continuations].
Don't shortcut call-returns when not splitting proc points

See Note [shortcut call returns]
add a sinking pass before stack layout (currently disabled)
Code reformatting
Inline into the last node

Also lots of refactoring and tidyup
Improve accuracy of memory conflict tracking

We now track stack regions, so that we can float a stack load past a
stack store if they don't conflict.  Also, we now use the CmmType to
more accurately identify heap addresses.
Disable the mini-inliner when using the new codegen

The new sinker is at least as powerful, and the mini-inliner sometimes
even makes things worse.
No need to do removeDeadAssignments, just do cmmLiveness instead
Eliminate "r = r" assignments.

Previously these were caught by removeDeadAssignments, but we aren't
doing that now.