+/* A map from static pass id to optimization pass. */
+struct opt_pass **passes_by_id;
+int passes_by_id_size;
+
+/* Set the static pass number of pass PASS to ID and record that
+ in the mapping from static pass number to pass. */
+
+static void
+set_pass_for_id (int id, struct opt_pass *pass)
+{
+ pass->static_pass_number = id;
+ if (passes_by_id_size <= id)
+ {
+ passes_by_id = XRESIZEVEC (struct opt_pass *, passes_by_id, id + 1);
+ memset (passes_by_id + passes_by_id_size, 0,
+ (id + 1 - passes_by_id_size) * sizeof (void *));
+ passes_by_id_size = id + 1;
+ }
+ passes_by_id[id] = pass;
+}
+
+/* Return the pass with the static pass number ID. */
+
+struct opt_pass *
+get_pass_for_id (int id)
+{
+ if (id >= passes_by_id_size)
+ return NULL;
+ return passes_by_id[id];
+}
+