[project @ 1999-05-11 16:47:39 by keithw]
authorkeithw <unknown>
Tue, 11 May 1999 16:48:00 +0000 (16:48 +0000)
committerkeithw <unknown>
Tue, 11 May 1999 16:48:00 +0000 (16:48 +0000)
commiteb407ca1d21a43ff86ad731868f71e994afafe78
tree99eb9ea9f306c5ed9fab6f4c80e78bf781e9d4a0
parent29b65248bae617251f809d18c4ff63dbbbf463ea
[project @ 1999-05-11 16:47:39 by keithw]
(this is number 9 of 9 commits to be applied together)

  Usage verification changes / ticky-ticky changes:

  We want to verify that SingleEntry thunks are indeed entered at most
  once.  In order to do this, -ticky / -DTICKY_TICKY turns on eager
  blackholing.  We blackhole with new blackholes: SE_BLACKHOLE and
  SE_CAF_BLACKHOLE.  We will enter one of these if we attempt to enter
  a SingleEntry thunk twice.  Note that CAFs are dealt with in by
  codeGen, and ordinary thunks by the RTS.

  We also want to see how many times we enter each Updatable thunk.
  To this end, we have modified -ticky.  When -ticky is on, we update
  with a permanent indirection, and arrange that when we enter a
  permanent indirection we count the entry and then convert the
  indirection to a normal indirection.  This gives us a means of
  counting the number of thunks entered again after the first entry.
  Obviously this screws up profiling, and so you can't build a ticky
  and profiling compiler any more.

  Also a few other changes that didn't make it into the previous 8
  commits, but form a part of this set.
29 files changed:
ghc/includes/ClosureMacros.h
ghc/includes/ClosureTypes.h
ghc/includes/Closures.h
ghc/includes/StgMacros.h
ghc/includes/StgMiscClosures.h
ghc/includes/StgTicky.h
ghc/includes/TSO.h
ghc/includes/Updates.h
ghc/interpreter/adr.mk
ghc/lib/exts/Makefile
ghc/lib/misc/Makefile
ghc/lib/posix/Makefile
ghc/lib/std/Main.hi-boot
ghc/lib/std/Makefile
ghc/lib/std/PrelException.hi-boot
ghc/lib/std/PrelGHC.hi-boot
ghc/lib/std/PrelPack.hi-boot
ghc/rts/ClosureFlags.c
ghc/rts/Evaluator.c
ghc/rts/GC.c
ghc/rts/Printer.c
ghc/rts/RtsFlags.c
ghc/rts/RtsFlags.h
ghc/rts/Sanity.c
ghc/rts/Schedule.c
ghc/rts/StgMiscClosures.hc
ghc/rts/Storage.h
ghc/rts/Ticky.c
ghc/rts/Updates.hc