rje 2003/05/23 03:42:33 PDT
Sender: cvs-ghc-admin@xxxxxxxxxxx
Errors-To: cvs-ghc-admin@xxxxxxxxxxx
X-BeenThere: cvs-ghc@xxxxxxxxxxx
X-Mailman-Version: 2.0.13
Precedence: bulk
List-Help: <mailto:cvs-ghc-request@xxxxxxxxxxx?subject=help>
List-Post: <mailto:cvs-ghc@xxxxxxxxxxx>
List-Subscribe: <http://www.haskell.org/mailman/listinfo/cvs-ghc>,
<mailto:cvs-ghc-request@xxxxxxxxxxx?subject=subscribe>
List-Id: GHC/CVS discussion and fptools/ghc CVS commit messages
<cvs-ghc.haskell.org>
List-Unsubscribe: <http://www.haskell.org/mailman/listinfo/cvs-ghc>,
<mailto:cvs-ghc-request@xxxxxxxxxxx?subject=unsubscribe>
List-Archive: <http://www.haskell.org/pipermail/cvs-ghc/>
Date: Fri, 23 May 2003 03:42:33 -0700
Modified files: (Branch: speceval_2)
ghc/compiler/codeGen CgTailCall.lhs ClosureInfo.lhs
ghc/compiler/coreSyn CoreSpec.lhs
ghc/includes Closures.h InfoTables.h Speculate.h
StgMacros.h
ghc/rts Exception.hc GC.c HeapStackCheck.hc
Schedule.c Storage.h Updates.hc
ghc/utils/hsdebug stack.c
Added files: (Branch: speceval_2)
ghc/utils/hsdebug profdecode.c profdecode.h specknobs.h
Log:
Various changes that help HsDebug.
This is the system that was used to produce the example debugging logs in the
paper submitted to the Haskell Workshop.
-- to the RTS --
Exception.hc
Undid a previous braindead change that made exceptions
get caught by tailcalls (what was I thinking here?)
HeapStackCheck.hc
GC.c
Updates.hc
Closures.h
Tail frames now carry round the arguments of the function call.
ThreadSqueezeStack now removes tail frames in a separate loop
to the blackhole removing code. This is slower, but as tail frames
are only removed when the RTS is compiled for debug, this shouldn't
really matter.
Changed the protocol used for the RTS to find out of the stack has
shrunk (but its still a messy hack).
Schedule.c
If a program is compiled for debug, then we abort to the innermost
rather than the outermost speculation.
TODO: see what performance effect this has. We might want this to be
the default.
Storage.h
Extended stack_frame_sizeW to be able to compute the size of a
transient tail frame.
InfoTables.h
Added srclocs to functions.
(return frames and thunks already had srclocs)
StgMacros.h
Speculate.h
very minor changes
Note:
You need to define TAIL_DEBUG when compiling the RTS in order for it
to be compatible with debugging.
I need to produce a "way" or something for this really.
-- to the code generator --
CgTailCall.lhs
Transient tail frames now contain a copy of all the arguments passed
in the call. This makes debugging a lot easier.
We now push tail frames when entering thunks, or doing a slow call.
Previously we only pushed frames for calls to known functions.
ClosureInfo.lhs
If a function info table is being compiled for debug, then we
pad it up to full length so that the debug info is always at the
same offset - making life a little easier for HsDebug.
-- to hsdebug --
stack.c
Minor pretty printing change: we no longer print "speculated" if a
return frame is a speculative one.
(may turn this back on in a special "expert" mode)
Added a couple of files I should have added earlier - oops.
--- an non-hsdebug-related change ---
CoreSpec.lhs
We no longer pullout things that have no free variables.
Such things would turn into CAFs rather than functions and could
mess up the space behaviour of a program.
Note however that pullouts don't work entirely correctly yet, no don't
use the -fpullout-spec flag to compile your programs quite yet.
Revision Changes Path
1.36.2.10 +34 -17 fptools/ghc/compiler/codeGen/CgTailCall.lhs
1.56.2.6 +15 -2 fptools/ghc/compiler/codeGen/ClosureInfo.lhs
1.1.4.6 +5 -1 fptools/ghc/compiler/coreSyn/Attic/CoreSpec.lhs
1.32.2.5 +1 -0 fptools/ghc/includes/Closures.h
1.28.2.5 +6 -0 fptools/ghc/includes/InfoTables.h
1.1.2.8 +4 -1 fptools/ghc/includes/Attic/Speculate.h
1.50.2.11 +4 -0 fptools/ghc/includes/StgMacros.h
1.26.2.6 +1 -2 fptools/ghc/rts/Exception.hc
1.146.2.10 +18 -21 fptools/ghc/rts/GC.c
1.27.2.4 +2 -1 fptools/ghc/rts/HeapStackCheck.hc
1.160.2.12 +7 -2 fptools/ghc/rts/Schedule.c
1.47.2.7 +4 -1 fptools/ghc/rts/Storage.h
1.38.2.5 +7 -5 fptools/ghc/rts/Updates.hc
1.1.2.8 +2 -2 fptools/ghc/utils/hsdebug/Attic/stack.c
|