Remove OldCmm, convert backends to consume new Cmm

This removes the OldCmm data type and the CmmCvt pass that converts
new Cmm to OldCmm.  The backends (NCGs, LLVM and C) have all been
converted to consume new Cmm.

The main difference between the two data types is that conditional
branches in new Cmm have both true/false successors, whereas in OldCmm
the false case was a fallthrough.  To generate slightly better code we
occasionally need to invert a conditional to ensure that the
branch-not-taken becomes a fallthrough; this was previously done in
CmmCvt, and it is now done in CmmContFlowOpt.

We could go further and use the Hoopl Block representation for native
code, which would mean that we could use Hoopl's postorderDfs and
analyses for native code, but for now I've left it as is, using the
old ListGraph representation for native code.
Fix warnings
replaceLabels: null out the cml_cont field of CmmCall

This fixes a CmmLint complaint when doing proc-point splitting.
handle MO_Touch, and generate no code for it.
some W_s should be P_s
assert HpAlloc == 0
a fix for checkTSO(): the TSO could be a WHITEHOLE
remove some unused variables
ASSERT(HpAlloc==0) in the update code, to catch HpAlloc bugs
Replace mkDerivedConstants.c with DeriveConstants.hs

DeriveConstants.hs works in a cross-compilation-friendly way. Rather
than running a C program that prints out the constants, we just compile
a C file which has the constants are encoded in symbol sizes. We then
parse the output of 'nm' to find out what the constants are.

Based on work by Gabor Greif <ggreif@gmail.com>.
Add some more flags to includes_CC_OPTS

Fixes build on OS X
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Fix build on Windows
Fix the Slow calling convention (#7192)

The Slow calling convention passes the closure in R1, but we were
ignoring this and hoping it would work, which it often did.  However,
this bug seems to have been the cause of #7192, because the
graph-colouring allocator is more sensitive to having correct liveness
information on jumps.
Fix installing on Windows

nus in #ghc ran into a problem where the wrong filepath was being
stripped.
Don't include a (void *) cast in BLOCK_ROUND_UP

All uses of it cast the result anyway. However, DeriveConstants needs
it to not include the cast, as (void *) casts can't be used in constant
expressions.
Fix the OFFSET macro

When offsetof is defined, we use that. This avoids "variably
modified at file scope" warnings/errors with recent gccs.
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Tell the compiler about alpha, mipseb and mipsel again; fixes #7339

This reverts the compiler parts of

    commit 7b594a5d7ac29972db39228e9c8b7f384313f39b
    Author: David Terei <davidterei@gmail.com>
    Date:   Mon Nov 21 12:05:18 2011 -0800

    Remove registerised code for dead architectures: mips, ia64, alpha,
    hppa1, m68k

In particular, we want to know whether bewareLoadStoreAlignment should
return True or False for them.

It also reverts

    commit 3fc68b5c356b39b2b52a86d953367d0021c13262
    Author: Simon Marlow <marlowsd@gmail.com>
    Date:   Wed Jan 4 11:44:02 2012 +0000

    Remove missing archs (mipseb, mipsel, alpha) (#5734)

    It doesn't hurt to map these to ArchUnknown since we don't need to
    know anything specific about them, and adding them would be a pain
    (there are a bunch of places where we have to case-match on all the
    arches to avoid warnings).
Remove the inline primop

It's not really a primop, and GHC.Prim doesn't export it. It has a
definition in GHC.Magic.