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 823 - (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 : leunga 775 (*
50 :     * Attach this annotation to assemblers for pretty printing
51 :     * client defined cell informations.
52 :     *)
53 :     val PRINT_CELLINFO : (C.cell -> string) Annotations.property
54 :    
55 : monnier 496 (*
56 : leunga 775 * Does a compilation unit has GC information?
57 : monnier 496 *)
58 : leunga 775 val GC_INFO : unit Annotations.property
59 : monnier 496
60 :     (*
61 :     * Disable all optimizations in the cluster
62 :     *)
63 :     val NO_OPTIMIZATION : unit Annotations.property
64 :    
65 :     (*
66 :     * Mark basic block that is used for calling the GC
67 :     *)
68 :     val CALLGC : unit Annotations.property
69 : george 545 val GCSAFEPOINT : string Annotations.property
70 : monnier 496
71 :     (*
72 :     * Insert block names
73 :     *)
74 : leunga 585 exception BLOCKNAMES of Annotations.annotations
75 : monnier 496 val BLOCK_NAMES : Annotations.annotations Annotations.property
76 :    
77 :     (*
78 :     * This annotation inserts an empty basic block
79 :     *)
80 : leunga 585 exception EMPTYBLOCK
81 : monnier 496 val EMPTY_BLOCK : unit Annotations.property
82 :    
83 :     (*
84 :     * Enter information for a register.
85 :     *)
86 : leunga 744 exception MARKREG of C.cell -> unit
87 :     val MARK_REG : (C.cell -> unit) Annotations.property
88 : monnier 496
89 : george 545 (*
90 :     * Disable branch chaining optimization on a jump
91 :     *)
92 :     val NO_BRANCH_CHAINING : unit Annotations.property
93 :    
94 : george 823 (*
95 :     * Code has reference to a virtual (dedicated) frame pointer.
96 :     *)
97 :     val USES_VIRTUAL_FRAME_POINTER : unit Annotations.property
98 :    
99 : leunga 815 (*
100 :     * Define return arguments of a call (hack for x86)
101 :     *)
102 :     val RETURN_ARG : C.cell Annotations.property
103 : monnier 496 end

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