#include "vm/builtin.h"
-#include "vm/jit/jit.h" /* icmd_table */
+#include "vm/jit/jit.hpp" /* icmd_table */
#include "vm/jit/ir/bytecode.h"
#include "vm/jit/optimizing/ssa_rename.h"
#include "vm/jit/optimizing/ssa_phi.h"
+#include "vm/jit/python.h"
+
#if defined(SSA_DEBUG_VERBOSE)
-#include "vmcore/options.h" /* compileverbose */
+#include "vm/options.h" /* compileverbose */
#endif
/* function prototypes */
W <- W join {Y}
******************************************************************************/
+void xssa(jitdata *jd);
+void yssa(jitdata *jd);
void ssa(jitdata *jd) {
struct dominatordata *dd;
lsradata *ls;
}
#endif
+ cfg_add_root(jd);
+ cfg_add_exceptional_edges(jd);
+ /*pythonpass_run(jd, "foo", "cfg_print");*/
+ /*dominator_tree_validate(jd, dd);*/
+ /*pythonpass_run(jd, "ssa2", "main");*/
+ /*pythonpass_run(jd, "alt_ssa", "main");*/
+ /*pythonpass_run(jd, "foo", "before");*/
+
+ /*if (getenv("XSSA")) {
+ dominator_tree_build(jd);
+ dominance_frontier_build(jd);
+ xssa(jd);
+ } else */{
+ yssa(jd);
+ }
+ /*pythonpass_run(jd, "foo", "after");*/
+ cfg_remove_root(jd);
+ return;
+
ls = jd->ls;
ssa_init(jd);
if ((in[in_d] != out[out_d]) ||
(VAR(in[in_d])->flags != VAR(out[out_d])->flags)) {
printf("Method: %s %s\n",
- m->class->name->text, m->name->text);
+ m->clazz->name->text, m->name->text);
printf("Error: Stack Varnum Mismatch BBin %3i BBout %3i Stackdepth %3i\n", i, pred, in_d);
if (compileverbose)
printf("Error: Stack Varnum Mismatch BBin %3i BBout %3i Stackdepth %3i\n", i, pred, in_d);
#if defined(SSA_DEBUG_CHECK) || defined(SSA_DEBUG_VERBOSE)
# if defined(SSA_DEBUG_VERBOSE)
if (compileverbose) {
- printf("%s %s ",m->class->name->text, m->name->text);
+ printf("%s %s ",m->clazz->name->text, m->name->text);
if (code_is_leafmethod(jd->code))
printf("**Leafmethod**");
printf("\n");
}
# endif
- if (strcmp(m->class->name->text,"spec/benchmarks/_213_javac/Parser")==0)
+ if (strcmp(m->clazz->name->text,"spec/benchmarks/_213_javac/Parser")==0)
if (strcmp(m->name->text,"parseTerm")==0)
# if defined(SSA_DEBUG_VERBOSE)
if (compileverbose)
#ifdef SSA_DEBUG_VERBOSE
if (compileverbose)
printf("dce: %s %s:at BB %3i II %3i NOP-<%s\n",
- m->class->name->text, m->name->text,
+ m->clazz->name->text, m->name->text,
lt->def->b_index, lt->def->iindex,
icmd_table[iptr->opc].name);
#endif