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 585 - (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 : leunga 585 exception BRANCHPROB of int
21 : monnier 496 val BRANCH_PROB : int Annotations.property (* in percentage (0-100)*)
22 :    
23 :     (* The execution frequency of a basic block
24 :     * You can attach this at a basic block.
25 :     *)
26 : leunga 585 exception EXECUTIONFREQ of int
27 : george 545 val EXECUTION_FREQ : int Annotations.property
28 : monnier 496
29 :     (* No effect at all; this just allows you to insert comments *)
30 :     val COMMENT : string Annotations.property
31 :    
32 :     (*
33 :     * Control dependence definition and use.
34 :     *
35 :     * To use these, the client should generate
36 :     * control dependence virtual registers via Cells.newCell Cells.CTRL
37 :     * and attach these annotations to instructions and basic blocks.
38 :     *
39 :     * These annotations are currently recognized by the SSA optimization
40 :     * modules.
41 :     *)
42 : george 545 exception CTRLDEF of int
43 :     exception CTRLUSE of int
44 :     val CTRL_DEF : int Annotations.property
45 :     val CTRL_USE : int Annotations.property
46 : monnier 496
47 :     (*
48 :     * This annotation can be used specify a pretty printing function for
49 :     * assemblers
50 :     *)
51 : george 545 val REGINFO : ((int -> int) * int -> string) Annotations.property
52 : monnier 496
53 :     (*
54 :     * Disable all optimizations in the cluster
55 :     *)
56 :     val NO_OPTIMIZATION : unit Annotations.property
57 :    
58 :     (*
59 :     * Mark basic block that is used for calling the GC
60 :     *)
61 :     val CALLGC : unit Annotations.property
62 : george 545 val GCSAFEPOINT : string Annotations.property
63 : monnier 496
64 :     (*
65 :     * Insert block names
66 :     *)
67 : leunga 585 exception BLOCKNAMES of Annotations.annotations
68 : monnier 496 val BLOCK_NAMES : Annotations.annotations Annotations.property
69 :    
70 :     (*
71 :     * This annotation inserts an empty basic block
72 :     *)
73 : leunga 585 exception EMPTYBLOCK
74 : monnier 496 val EMPTY_BLOCK : unit Annotations.property
75 :    
76 :     (*
77 :     * Enter information for a register.
78 :     *)
79 : george 545 exception MARKREG of int -> unit
80 : monnier 496 val MARK_REG : (int -> unit) Annotations.property
81 :    
82 : george 545 (*
83 :     * Disable branch chaining optimization on a jump
84 :     *)
85 :     val NO_BRANCH_CHAINING : unit Annotations.property
86 :    
87 : monnier 496 end

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