rje 2003/08/01 14:37:24 PDT
Sender: [EMAIL PROTECTED]
Errors-To: [EMAIL PROTECTED]
X-BeenThere: [EMAIL PROTECTED]
X-Mailman-Version: 2.0.13
Precedence: bulk
List-Help: <mailto:[EMAIL PROTECTED]>
List-Post: <mailto:[EMAIL PROTECTED]>
List-Subscribe: <http://www.haskell.org/mailman/listinfo/cvs-ghc>,
<mailto:[EMAIL PROTECTED]>
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:[EMAIL PROTECTED]>
List-Archive: <http://www.haskell.org/pipermail/cvs-ghc/>
Date: Fri, 1 Aug 2003 14:37:25 -0700
Modified files: (Branch: speceval_2)
ghc/compiler/codeGen CgHeapery.lhs
ghc/includes ClosureTypes.h Regs.h RtsFlags.h
SpecBasics.h SpecBurst.h Speculate.h
StgMacros.h TSO.h
ghc/rts ClosureFlags.c Exception.hc GC.c
RtsFlags.c Schedule.c SpecBurst.c
SpecIntel.c Speculate.c
StgSpecBurstProf.hc StgSpecClosures.hc
Storage.h
ghc/utils/genapply GenApply.hs
Log:
A number of changes for the new burst profiler.
StgSpecBurstProf.hc
Rewrote prof entry code in assembler.
This is to avoid it trashing the heap or registers of the code
it is called from.
Unlike most blocks, this code is called from *inside* another block.
There is probably a more elegant way to do this, but this will do for
the moment.
Also moved over to a new cost-counting system where a base register
CostBase is used to record the amount of work done so far.
Hp - CostBase is a count of the amount of work done by the program.
Regs.h
Storage.h
TSO.h
Added the CostBase register
CgHeapery.lhs
All functions must allocate heap.
This ensures that we cannot loop forever without ever returning to
the runtime system.
StgMacros.h
Initial specknob setting is now zero.
A let will not be speculated until the first time it is profiled.
GC.c
ClosureTypes.h
ClosureFlags.c
GenApply.hs
When the garbage collector copies a costed indirection, it blames
the creator of the costed indirection for the work done in
copying it.
This prevents speculations increasing the heap residency by evaluating
small thunks into large values that aren't needed for a while.
Costed indirections now have their own closure type.
Schedule.c
SpecIntel.c
Code for the old profiling system is now only compiled when
SPEC_BURSTPROF is not defined.
SpecBurst.c
Abort a speculation when its accumulated cost passes a given
threshold, rather than when a speculation has been on the
stack for too long.
This is more fair on parent speculations that have expensive child
speculations. In this case, it is the child that is at fault,
even if the child may not have been on the stack since the
last sample point.
RtsFlags.c
RtsFlags.h
Added a set of new runtime options for the new profiling system.
Revision Changes Path
1.36.2.2 +2 -2 fptools/ghc/compiler/codeGen/CgHeapery.lhs
1.18.2.5 +2 -1 fptools/ghc/includes/ClosureTypes.h
1.12.2.4 +10 -0 fptools/ghc/includes/Regs.h
1.45.2.9 +34 -0 fptools/ghc/includes/RtsFlags.h
1.1.2.2 +1 -1 fptools/ghc/includes/Attic/SpecBasics.h
1.1.2.2 +34 -3 fptools/ghc/includes/Attic/SpecBurst.h
1.1.2.11 +1 -1 fptools/ghc/includes/Attic/Speculate.h
1.50.2.15 +12 -3 fptools/ghc/includes/StgMacros.h
1.28.2.7 +1 -0 fptools/ghc/includes/TSO.h
1.13.2.3 +1 -0 fptools/ghc/rts/ClosureFlags.c
1.26.2.10 +9 -5 fptools/ghc/rts/Exception.hc
1.146.2.12 +29 -7 fptools/ghc/rts/GC.c
1.64.2.10 +55 -0 fptools/ghc/rts/RtsFlags.c
1.160.2.15 +51 -14 fptools/ghc/rts/Schedule.c
1.1.2.2 +168 -5 fptools/ghc/rts/Attic/SpecBurst.c
1.1.2.2 +6 -0 fptools/ghc/rts/Attic/SpecIntel.c
1.1.2.10 +14 -0 fptools/ghc/rts/Attic/Speculate.c
1.1.2.2 +114 -119 fptools/ghc/rts/Attic/StgSpecBurstProf.hc
1.1.2.7 +5 -0 fptools/ghc/rts/Attic/StgSpecClosures.hc
1.47.2.8 +3 -1 fptools/ghc/rts/Storage.h
1.5.2.2 +2 -1 fptools/ghc/utils/genapply/GenApply.hs
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc