[project @ 2002-01-02 12:32:18 by simonmar]
authorsimonmar <unknown>
Wed, 2 Jan 2002 12:32:20 +0000 (12:32 +0000)
committersimonmar <unknown>
Wed, 2 Jan 2002 12:32:20 +0000 (12:32 +0000)
commit2c71b5dbed008d1d8752b722755143e797debb9d
treeee5ed314191d9d7a97ff1a30bb9ec3dfc4fdbd56
parent661a9aefe5e7a922bf6b0be96c933569eb33900e
[project @ 2002-01-02 12:32:18 by simonmar]
- Implement a small GC optimisation: when a static constructor has
  been determined to have no (indirect) CAF references, we set its
  static link field to a non-zero value (currently 1).  This prevents
  the garbage collector from traversing this closure and transitively
  everything it points to, and thus should speed up GC a little.

- Omit the static link field from static constructors which have no
  pointer fields (i.e. they are CONSTR_NOCAF_STATIC).

- Add the padding words and the static link field for a static
  constructor at (AbsC) code generation time, rather than in the back
  ends.  This eliminates some duplication between PprAbsC and
  AbsCStixGen.
ghc/compiler/absCSyn/AbsCSyn.lhs
ghc/compiler/absCSyn/AbsCUtils.lhs
ghc/compiler/absCSyn/Costs.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/codeGen/CgClosure.lhs
ghc/compiler/codeGen/CgCon.lhs
ghc/compiler/codeGen/ClosureInfo.lhs
ghc/compiler/nativeGen/AbsCStixGen.lhs