aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/BTLtypes.ml
blob: 64001adf6a101f2f65d324a371224af86c1ae79e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
open Registers

type inst_info = {
  mutable inumb : int;
  mutable opt_info : bool option;
  mutable visited : bool;
  mutable liveins : Regset.t;
}
(** This struct is a ghost field attached to each BTL instruction
 * inumb: int field used for remembering the original numbering of CFG
 * opt_info: option bool used for various tests:
 *  - On Bcond, stores the prediction information
 *  - On Bload, stores the trapping information (if Some false, the load was
 *  initially non-trapping, and the opposite if some true)
 * visited: boolean used to mark nodes
 * liveins: set of lives registers
 *)

type block_info = {
  mutable bnumb : int;
  mutable visited : bool;
  s_output_regs : Regset.t;
  typing : RTLtyping.regenv;
}
(** Struct attached to each BTL iblock_info type
 * bnumb: int representing the block id in the BTL CFG
 * visited:  boolean used to mark blocks
 * s_output_regs: set of output registers
 * typing: field transferring RTL typing information in BTL (used in regpres
 * scheduling)
 *)