Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/MLRISC/instructions/mlriscAnnotations.sig
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/instructions/mlriscAnnotations.sig

Parent Directory Parent Directory | Revision Log Revision Log


Revision 545 - (view) (download) (as text)

1 : monnier 496 (*
2 :     * These are some basic annotations understood by the MLRISC system.
3 :     * The MLRISC client can create its own annotations and propagate them
4 :     * to MLRISC. Client-defined annotations are ignored by MLRISC.
5 :     *
6 :     * -- Allen
7 :     *)
8 :    
9 :     signature MLRISC_ANNOTATIONS =
10 :     sig
11 :    
12 :     (*
13 :     * The branch probability of conditional branches.
14 :     * The client can attach this with conditional branches.
15 :     * This has no effect otherwise.
16 :     *
17 :     * Currently, the annotation is recognized by the static branch prediction
18 :     * module.
19 :     *)
20 :     val BRANCH_PROB : int Annotations.property (* in percentage (0-100)*)
21 :    
22 :     (* The execution frequency of a basic block
23 :     * You can attach this at a basic block.
24 :     *)
25 : george 545 val EXECUTION_FREQ : int Annotations.property
26 : monnier 496
27 :     (* No effect at all; this just allows you to insert comments *)
28 :     val COMMENT : string Annotations.property
29 :    
30 :     (*
31 :     * Control dependence definition and use.
32 :     *
33 :     * To use these, the client should generate
34 :     * control dependence virtual registers via Cells.newCell Cells.CTRL
35 :     * and attach these annotations to instructions and basic blocks.
36 :     *
37 :     * These annotations are currently recognized by the SSA optimization
38 :     * modules.
39 :     *)
40 : george 545 exception CTRLDEF of int
41 :     exception CTRLUSE of int
42 :     val CTRL_DEF : int Annotations.property
43 :     val CTRL_USE : int Annotations.property
44 : monnier 496
45 :     (*
46 :     * This annotation can be used specify a pretty printing function for
47 :     * assemblers
48 :     *)
49 : george 545 val REGINFO : ((int -> int) * int -> string) Annotations.property
50 : monnier 496
51 :     (*
52 :     * Disable all optimizations in the cluster
53 :     *)
54 :     val NO_OPTIMIZATION : unit Annotations.property
55 :    
56 :     (*
57 :     * Mark basic block that is used for calling the GC
58 :     *)
59 :     val CALLGC : unit Annotations.property
60 : george 545 val GCSAFEPOINT : string Annotations.property
61 : monnier 496
62 :     (*
63 :     * Insert block names
64 :     *)
65 :     val BLOCK_NAMES : Annotations.annotations Annotations.property
66 :    
67 :     (*
68 :     * This annotation inserts an empty basic block
69 :     *)
70 :     val EMPTY_BLOCK : unit Annotations.property
71 :    
72 :     (*
73 :     * Enter information for a register.
74 :     *)
75 : george 545 exception MARKREG of int -> unit
76 : monnier 496 val MARK_REG : (int -> unit) Annotations.property
77 :    
78 : george 545 (*
79 :     * Disable branch chaining optimization on a jump
80 :     *)
81 :     val NO_BRANCH_CHAINING : unit Annotations.property
82 :    
83 : monnier 496 end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0