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

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