aboutsummaryrefslogtreecommitdiffstats
path: root/backend/DuplicateOpcodeHeuristic.mli
blob: b4c9f1ef93d2349f0d7846b65f69d59cc2db8f4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
(** Define opcode heuristics used for the instruction duplication oracle
 * In particular, it is used to figure out which "branch" should be privileged
 * when selecting a trace.
 *)

exception HeuristicSucceeded

(* The bool reference should be updated to [true] if the condition is supposed
 * to hold, [false] if it is supposed to not hold
 * The function should raise HeuristicSucceeded if it succeeded to predict a branch,
 * and do nothing otherwise *)
val opcode_heuristic : RTL.code -> Op.condition -> RTL.node -> RTL.node -> bool ref -> unit