[project @ 2002-08-02 13:08:33 by simonmar]
authorsimonmar <unknown>
Fri, 2 Aug 2002 13:08:35 +0000 (13:08 +0000)
committersimonmar <unknown>
Fri, 2 Aug 2002 13:08:35 +0000 (13:08 +0000)
commit259be9ef2ecc354d52622479921634606d6d2832
treea5d5f637934ef2acb295186fb41ed913b7eb7c8e
parent226413e1427f0436a0fc21ca156b956c60f730c5
[project @ 2002-08-02 13:08:33 by simonmar]
PrimRep Cleanup

   - Remove all PrimReps which were just different flavours of
     PtrRep.  Now, everything which is a pointer to a closure of
     some kind is always a PtrRep.

   - Three of the deleted PrimReps, namely ArrayRep, ByteArrayRep,
     and ForeignObj rep, had a subtle reason for their existence:
     the abstract C pretty-printer(!) used them to decide whether
     to apply a shim to an outgoing C-call argument: a ByteArrayRep
     argument would be adjusted to point past the object header,
     for example.

     I've changed this to happen in a much more reasonable and
     obvious way: there are now explict macros in AbsCSyn to do the
     adjustment, and the code generator makes calls to these as
     necessary.  Slightly less hackery is necessary in the NCG as
     a result.
13 files changed:
ghc/compiler/absCSyn/AbsCSyn.lhs
ghc/compiler/absCSyn/AbsCUtils.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/codeGen/CgCase.lhs
ghc/compiler/codeGen/CgExpr.lhs
ghc/compiler/codeGen/CgRetConv.lhs
ghc/compiler/nativeGen/AbsCStixGen.lhs
ghc/compiler/nativeGen/MachCode.lhs
ghc/compiler/nativeGen/MachMisc.lhs
ghc/compiler/nativeGen/Stix.lhs
ghc/compiler/nativeGen/StixPrim.lhs
ghc/compiler/prelude/PrimRep.lhs
ghc/compiler/prelude/TysPrim.lhs