SCM Repository
Annotation of /sml/trunk/src/MLRISC/control/mlrisc-control.sml
Parent Directory
|
Revision Log
Revision 113 -
(view)
(download)
Original Path: sml/branches/SMLNJ/src/MLRISC/control/mlrisc-control.sml
1 : | monnier | 16 | signature MLRISC_CONTROL = |
2 : | sig | ||
3 : | |||
4 : | val arch : string ref (* machine architecture *) | ||
5 : | |||
6 : | val mlrisc : bool ref (* use the MLRISC optimizer? *) | ||
7 : | val mlrisc_phases : string list ref (* the optimization phases *) | ||
8 : | val show : (unit -> unit) ref (* describe the phases *) | ||
9 : | val debug_stream : TextIO.outstream ref (* debugging output goes here *) | ||
10 : | val debug_msg : bool ref (* print debug messages? *) | ||
11 : | val verbose : bool ref (* verbose? *) | ||
12 : | val view_IR : bool ref | ||
13 : | val dump_IR : bool ref | ||
14 : | val on : (unit -> unit) ref (* turns on MLRISC *) | ||
15 : | val off : (unit -> unit) ref (* turns off MLRISC *) | ||
16 : | val init : (unit -> unit) ref (* setup the system *) | ||
17 : | val int_spills : int ref | ||
18 : | val int_reloads : int ref | ||
19 : | val float_spills : int ref | ||
20 : | val float_reloads : int ref | ||
21 : | |||
22 : | (* profiling support *) | ||
23 : | val loop_multiplier : int ref | ||
24 : | |||
25 : | (* scheduling/optimizer flags *) | ||
26 : | val nontrapping_arithmetic : bool ref | ||
27 : | val load_speculation : bool ref | ||
28 : | val fill_branch_delay_slot : bool ref | ||
29 : | val reorder_code_layout : bool ref | ||
30 : | val scheduling_algorithm : string ref | ||
31 : | val freq_variance : int ref | ||
32 : | |||
33 : | structure Visual : MLRISC_VIEW_STYLE | ||
34 : | structure Timing : MLRISC_TIMING | ||
35 : | structure Profiling : MLRISC_PROFILING | ||
36 : | end | ||
37 : | |||
38 : | structure MLRISC_Control : MLRISC_CONTROL = | ||
39 : | struct | ||
40 : | structure Visual = MLRISC_ViewStyle | ||
41 : | structure Timing = MLRISC_Timing | ||
42 : | structure Profiling = MLRISC_Profiling | ||
43 : | |||
44 : | val arch = ref "default" | ||
45 : | val mlrisc = ref false | ||
46 : | val mlrisc_phases = ref [] : string list ref | ||
47 : | val show = ref (fn () => ()) | ||
48 : | val debug_stream = ref TextIO.stdOut | ||
49 : | val debug_msg = ref false | ||
50 : | val view_IR = ref false | ||
51 : | val dump_IR = ref false | ||
52 : | val verbose = ref false | ||
53 : | val init = ref (fn () => ()) | ||
54 : | val on = ref (fn () => (!init(); mlrisc := true)) | ||
55 : | val off = ref (fn () => mlrisc := false) | ||
56 : | val int_spills = ref 0 | ||
57 : | val int_reloads = ref 0 | ||
58 : | val float_spills = ref 0 | ||
59 : | val float_reloads = ref 0 | ||
60 : | |||
61 : | val loop_multiplier = ref 10 | ||
62 : | val nontrapping_arithmetic = ref false | ||
63 : | val load_speculation = ref false | ||
64 : | val fill_branch_delay_slot = ref false | ||
65 : | val reorder_code_layout = ref false | ||
66 : | val scheduling_algorithm = ref "bernstein-rodeh" | ||
67 : | val freq_variance = ref 100 | ||
68 : | end | ||
69 : | |||
70 : | (* | ||
71 : | monnier | 113 | * $Log$ |
72 : | monnier | 16 | *) |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |