aboutsummaryrefslogtreecommitdiff
path: root/src/ssa_opt.cpp
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2016-11-23 11:07:35 +0000
committerGinger Bill <bill@gingerbill.org>2016-11-23 11:07:35 +0000
commitaa2bcb166f2f0356dceb4e9424223ccbd483faf0 (patch)
treea5e7b728142864b7bd3d9a6a19cf9ee1b77d249e /src/ssa_opt.cpp
parent8ecfca0c9b4d8a8f7c553f99b0bf10142eea88e6 (diff)
typedef struct and start removing auto
Diffstat (limited to 'src/ssa_opt.cpp')
-rw-r--r--src/ssa_opt.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/ssa_opt.cpp b/src/ssa_opt.cpp
index b15cd8f90..a7969ceb1 100644
--- a/src/ssa_opt.cpp
+++ b/src/ssa_opt.cpp
@@ -142,7 +142,7 @@ ssaValueArray ssa_get_block_phi_nodes(ssaBlock *b) {
}
void ssa_remove_pred(ssaBlock *b, ssaBlock *p) {
- auto phis = ssa_get_block_phi_nodes(b);
+ ssaValueArray phis = ssa_get_block_phi_nodes(b);
isize i = 0;
for_array(j, b->preds) {
ssaBlock *pred = b->preds.e[j];
@@ -288,7 +288,7 @@ void ssa_opt_build_referrers(ssaProcedure *proc) {
if (op == NULL) {
continue;
}
- auto *refs = ssa_value_referrers(op);
+ ssaValueArray *refs = ssa_value_referrers(op);
if (refs != NULL) {
array_add(refs, instr);
}
@@ -307,13 +307,13 @@ void ssa_opt_build_referrers(ssaProcedure *proc) {
// State of Lengauer-Tarjan algorithm
// Based on this paper: http://jgaa.info/accepted/2006/GeorgiadisTarjanWerneck2006.10.1.pdf
-struct ssaLTState {
+typedef struct ssaLTState {
isize count;
// NOTE(bill): These are arrays
ssaBlock **sdom; // Semidominator
ssaBlock **parent; // Parent in DFS traversal of CFG
ssaBlock **ancestor;
-};
+} ssaLTState;
// ยง2.2 - bottom of page
void ssa_lt_link(ssaLTState *lt, ssaBlock *p, ssaBlock *q) {
@@ -347,9 +347,9 @@ ssaBlock *ssa_lt_eval(ssaLTState *lt, ssaBlock *v) {
return u;
}
-struct ssaDomPrePost {
+typedef struct ssaDomPrePost {
i32 pre, post;
-};
+} ssaDomPrePost;
ssaDomPrePost ssa_opt_number_dom_tree(ssaBlock *v, i32 pre, i32 post) {
ssaDomPrePost result = {pre, post};
@@ -440,12 +440,11 @@ void ssa_opt_build_dom_tree(ssaProcedure *proc) {
}
// Calculate children relation as inverse of idom
- auto *children = &w->dom.idom->dom.children;
- if (children->e == NULL) {
+ if (w->dom.idom->dom.children.e == NULL) {
// TODO(bill): Is this good enough for memory allocations?
- array_init(children, heap_allocator());
+ array_init(&w->dom.idom->dom.children, heap_allocator());
}
- array_add(children, w);
+ array_add(&w->dom.idom->dom.children, w);
}
}