#include <assert.h>
#include <stdint.h>
-#include "mm/memory.h"
+#include "mm/memory.hpp"
#include "vm/global.h"
-#include "vm/jit/jit.h"
+#include "vm/jit/jit.hpp"
#include "vm/jit/stack.h"
root->next = zero;
root->nr = 0;
root->type = BBTYPE_STD;
+ root->method = jd->m;
if (zero->predecessorcount == 0) {
zero->predecessors = DNEW(basicblock *);
}
}
+void cfg_remove_root(jitdata *jd) {
+ basicblock *root, *zero, *it;
+
+ root = jd->basicblocks;
+ zero = root->next;
+
+ zero->predecessorcount -= 1;
+
+ jd->basicblocks = zero;
+
+ for (it = zero; it; it = it->next) {
+ it->nr -= 1;
+ }
+}
+
#if defined(ENABLE_SSA)
static void cfg_eliminate_edges_to_unreachable(jitdata *jd);