[m-rev.] For review: Deep Profiling and Program Representation file format changes.

Paul Bone pbone at csse.unimelb.edu.au
Tue Aug 12 12:41:20 AEST 2008


On Mon, Aug 11, 2008 at 02:08:00PM +1000, Paul Bone wrote:
> 
> For review by Zoltan.
> 
> I've bootchecked these changes in the asm_fast.gc.profdeep grade, and
> tested them using mdprof_cgi, mdprof_dump and mdprof_procrep.  I'm
> waiting on a bootcheck in the asm_fast.gc.decldebug grade.
> 

I'm committing this now so I can contine work based on it.  I'm also
committing the additional changes to the tests repository, these make
the test suite conform with changes to datatypes in
mdbcomp.program_representation.m.  I've included an updated changelog.  


Estimated hours taken: 7.5 
Branches: main

Deep profiling and program representation file format changes.

Include a table of variable names in the program representation used by the
deep profiler (Deep.procrep).  The table shouldn't contain variables
introduced by the compiler.

Include the name of the program from which the deep profile was generated in
the header of the deep profiling data file (Deep.data).

compiler/prog_rep.m:
	Optionally create the variable table within the bytecode generated for
	each procedure, The actual variable names are stored in the string table
	for the module.

compiler/stack_layout.m:
	Enable the variable table only for deep profiling builds.	

mdbcomp/program_representation.m:
	Include variable table in each program representation structure.
	
	Create predicates to read in the variable table if it is present.
	
	Create predicates to lookup a variable name from a table or generate a
	name automatically.

	Incremented version number for the program representation file format.

runtime/mercury_deep_profiling.c:
	Write out program name in header of deep profiling data.

	Increment version numbers of deep profiling and program representation
	file formats.

browser/declarative_tree.m:
deep_profiler/canonical.m:
tests/debugger/declarative/builtin_call_rep.exp:
tests/debugger/declarative/dependency.exp:
	Conform to changes in mdbcomp/program_representation.m

deep_profiler/mdprof_procrep.m:
	Lookup and display variable names when displaying program representation.

deep_profiler/profile.m:
	Make program name part of the profile_stats structure.

deep_profiler/read_profile.m:
deep_profiler/io_combinator.m:
	Read in program name from deep profiling data.

	Incremented version number for the deep profiling file format.

deep_profiler/report.m:
deep_profiler/create_report.m:
deep_profiler/display_report.m:
	Display program name with the statistics on the menu report.

deep_profiler/dump.m
	Conform to changes in deep_profiler/profile.m.


Index: debugger/declarative/builtin_call_rep.exp
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/debugger/declarative/builtin_call_rep.exp,v
retrieving revision 1.4
diff -u -p -r1.4 builtin_call_rep.exp
--- debugger/declarative/builtin_call_rep.exp	27 Sep 2007 07:28:24 -0000	1.4
+++ debugger/declarative/builtin_call_rep.exp	12 Aug 2008 02:44:44 -0000
@@ -5,7 +5,7 @@ Command echo enabled.
 mdb> step
       E2:     C2 CALL func int.+/2-0 (det)
 mdb> print proc_body
-	proc_defn_rep([1, 2, 3], atomic_goal_rep(det_rep, "int.m", NN, [3], builtin_call_rep/3))
+	proc_defn_rep([1, 2, 3], atomic_goal_rep(det_rep, "int.m", NN, [3], builtin_call_rep/3), empty)
 mdb> browse proc_body
 browser> cd 2
 browser> ls
Index: debugger/declarative/dependency.exp
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/debugger/declarative/dependency.exp,v
retrieving revision 1.15
diff -u -p -r1.15 dependency.exp
--- debugger/declarative/dependency.exp	12 Sep 2007 06:21:19 -0000	1.15
+++ debugger/declarative/dependency.exp	12 Aug 2008 02:44:44 -0000
@@ -34,7 +34,8 @@ proc_defn_rep(
         ite_rep(atomic_goal_rep/5, atomic_goal_rep/5, atomic_goal_rep/5), 
         [|](
           atomic_goal_rep/5, 
-          [|](switch_rep(4, [|]/2), [|](disj_rep/1, [|]/2)))))))
+          [|](switch_rep(4, [|]/2), [|](disj_rep/1, [|]/2)))))), 
+  empty)
 mdb> dd -d 3 -n 7
 test([|](1, [|](3, [|](6, [|](1, [|](3, []))))))
 Valid? browse 1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20080812/ffa6f5f3/attachment.sig>


More information about the reviews mailing list