From: David Given Date: Mon, 12 Dec 2016 22:55:24 +0000 (+0100) Subject: Cleanup for correctly assigning bbs when tinkering with IRs. X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=2707bf068968844e623f59bf3552127ce412ddb0;p=ack.git Cleanup for correctly assigning bbs when tinkering with IRs. --- diff --git a/mach/proto/mcg/build.lua b/mach/proto/mcg/build.lua index 387d14d26..a2ed528d2 100644 --- a/mach/proto/mcg/build.lua +++ b/mach/proto/mcg/build.lua @@ -44,7 +44,7 @@ definerule("build_mcg", "util/mcgg+lib", headers, tables, -- for .h file - } + }, } end ) diff --git a/mach/proto/mcg/pass_groupirs.c b/mach/proto/mcg/pass_groupirs.c index 57b850a9b..c126a1da4 100644 --- a/mach/proto/mcg/pass_groupirs.c +++ b/mach/proto/mcg/pass_groupirs.c @@ -28,6 +28,7 @@ static void collect_irs(void) { struct ir* ir = bb->irs.item[j]; addall(ir); + ir->bb = bb; array_append(&rootirs, ir); } } @@ -63,6 +64,7 @@ static void recursively_mark_root(struct ir* node, struct ir* root) if (node->root) return; node->root = root; + node->bb = root->bb; } if (node->left) diff --git a/mach/proto/mcg/pass_returnvalues.c b/mach/proto/mcg/pass_returnvalues.c index 3be801411..ae5c8df49 100644 --- a/mach/proto/mcg/pass_returnvalues.c +++ b/mach/proto/mcg/pass_returnvalues.c @@ -74,6 +74,7 @@ static void find_call(struct basicblock* bb, int index, struct ir* lfr, struct ir* phi = new_ir0(IR_PHI, lfr->size); phi->root = phi; + phi->bb = bb; array_insert(&bb->irs, phi, 0); for (i=0; iprevs.count; i++) diff --git a/mach/proto/mcg/pass_splitcriticaledges.c b/mach/proto/mcg/pass_splitcriticaledges.c index 27e832e44..ffafe9eb0 100644 --- a/mach/proto/mcg/pass_splitcriticaledges.c +++ b/mach/proto/mcg/pass_splitcriticaledges.c @@ -41,6 +41,7 @@ static void split_edge(struct basicblock* source, struct basicblock* sink) ); jump->root = jump->left->root = jump; + jump->bb = jump->left->bb = bb; array_append(&bb->irs, jump); rwp.find = sink;