[m-dev.] diff: field names for proc_layout_info
Zoltan Somogyi
zs at cs.mu.OZ.AU
Mon Aug 21 15:11:25 AEST 2000
compiler/continuation_info.m:
Add field names for the proc_layout_info type.
compiler/optimize.m:
Use the new field names.
Zoltan.
cvs diff: Diffing .
cvs diff: Diffing bindist
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
Index: compiler/continuation_info.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/continuation_info.m,v
retrieving revision 1.32
diff -u -r1.32 continuation_info.m
--- compiler/continuation_info.m 2000/08/11 08:19:00 1.32
+++ compiler/continuation_info.m 2000/08/16 05:00:16
@@ -61,28 +61,37 @@
%
:- type proc_layout_info
---> proc_layout_info(
- label, % The entry label.
- determinism, % Determines which stack is used.
- int, % Number of stack slots.
- maybe(int), % Location of succip on stack.
- maybe(label), % If the trace level is not none,
- % this contains the label associated
- % with the call event, whose stack
- % layout says which variables were
- % live and where on entry.
- int, % The number of the highest numbered
+ entry_label :: label,
+ % Determines which stack is used.
+ detism :: determinism,
+ % Number of stack slots.
+ stack_slot_count :: int,
+ % Location of succip on stack.
+ succip_slot :: maybe(int),
+ % If the trace level is not none, this
+ % contains the label associated with
+ % the call event, whose stack layout
+ % gives the locations of the input
+ % arguments on procedure entry, for
+ % use in implementing retry in the
+ % debugger.
+ call_label :: maybe(label),
+ % The number of the highest numbered
% rN register that can contain useful
% information during a call to MR_trace
% from within this procedure.
- trace_slot_info,% Info about the stack slots used
+ max_trace_reg :: int,
+ % Info about the stack slots used
% for tracing.
- bool, % Do we require the procedure id
+ trace_slot_info :: trace_slot_info,
+ % Do we require the procedure id
% section of the procedure layout
% to be present, even if the option
% procid_stack_layout is not set?
- proc_label_layout_info
+ need_proc_id :: bool,
% Info for each internal label,
% needed for basic_stack_layouts.
+ internal_map :: proc_label_layout_info
).
%
@@ -338,7 +347,7 @@
% Get all the continuation info from the call instructions.
global_data_get_proc_layout(GlobalData0, PredProcId, ProcLayoutInfo0),
- ProcLayoutInfo0 = proc_layout_info(A, B, C, D, E, F, G, H, Internals0),
+ Internals0 = ProcLayoutInfo0^internal_map,
GetCallInfo = lambda([Instr::in, Call::out] is semidet, (
Instr = call(Target, label(ReturnLabel), LiveInfo, Context, _)
- _Comment,
@@ -350,7 +359,7 @@
list__foldl(continuation_info__process_continuation(WantReturnInfo),
Calls, Internals0, Internals),
- ProcLayoutInfo = proc_layout_info(A, B, C, D, E, F, G, H, Internals),
+ ProcLayoutInfo = ProcLayoutInfo0^internal_map := Internals,
global_data_update_proc_layout(GlobalData0, PredProcId, ProcLayoutInfo,
GlobalData).
Index: compiler/optimize.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/optimize.m,v
retrieving revision 1.24
diff -u -r1.24 optimize.m
--- compiler/optimize.m 2000/08/11 08:19:17 1.24
+++ compiler/optimize.m 2000/08/16 05:00:20
@@ -53,8 +53,7 @@
global_data_maybe_get_proc_layout(GlobalData, PredProcId,
ProcLayout)
->
- ProcLayout = proc_layout_info(_, _, _, _, _, _, _, _,
- LabelMap),
+ LabelMap = ProcLayout^internal_map,
map__sorted_keys(LabelMap, LayoutLabels),
set__sorted_list_to_set(LayoutLabels, LayoutLabelSet)
;
cvs diff: Diffing compiler/notes
cvs diff: Diffing debian
cvs diff: Diffing doc
cvs diff: Diffing extras
cvs diff: Diffing extras/aditi
cvs diff: Diffing extras/cgi
cvs diff: Diffing extras/complex_numbers
cvs diff: Diffing extras/complex_numbers/samples
cvs diff: Diffing extras/complex_numbers/tests
cvs diff: Diffing extras/concurrency
cvs diff: Diffing extras/curses
cvs diff: Diffing extras/curses/sample
cvs diff: Diffing extras/dynamic_linking
cvs diff: Diffing extras/graphics
cvs diff: Diffing extras/graphics/mercury_opengl
cvs diff: Diffing extras/graphics/mercury_tcltk
cvs diff: Diffing extras/graphics/samples
cvs diff: Diffing extras/graphics/samples/calc
cvs diff: Diffing extras/graphics/samples/maze
cvs diff: Diffing extras/graphics/samples/pent
cvs diff: Diffing extras/lazy_evaluation
cvs diff: Diffing extras/logged_output
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/morphine
cvs diff: Diffing extras/morphine/non-regression-tests
cvs diff: Diffing extras/morphine/scripts
cvs diff: Diffing extras/morphine/source
cvs diff: Diffing extras/odbc
cvs diff: Diffing extras/posix
cvs diff: Diffing extras/references
cvs diff: Diffing extras/references/samples
cvs diff: Diffing extras/references/tests
cvs diff: Diffing extras/trailed_update
cvs diff: Diffing extras/trailed_update/samples
cvs diff: Diffing extras/trailed_update/tests
cvs diff: Diffing library
cvs diff: Diffing profiler
cvs diff: Diffing robdd
cvs diff: Diffing runtime
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
cvs diff: Diffing tests
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
cvs diff: Diffing tests/debugger/declarative
cvs diff: Diffing tests/dppd
cvs diff: Diffing tests/general
cvs diff: Diffing tests/general/accumulator
cvs diff: Diffing tests/hard_coded
cvs diff: Diffing tests/hard_coded/exceptions
cvs diff: Diffing tests/hard_coded/purity
cvs diff: Diffing tests/hard_coded/sub-modules
cvs diff: Diffing tests/hard_coded/typeclasses
cvs diff: Diffing tests/invalid
cvs diff: Diffing tests/invalid/purity
cvs diff: Diffing tests/misc_tests
cvs diff: Diffing tests/tabling
cvs diff: Diffing tests/term
cvs diff: Diffing tests/valid
cvs diff: Diffing tests/warnings
cvs diff: Diffing tools
cvs diff: Diffing trace
cvs diff: Diffing trial
cvs diff: Diffing util
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list