public
/
ack.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
560d13d
)
Much more aggressive splitting.
author
David Given
<dg@cowlark.com>
Tue, 13 Dec 2016 23:26:58 +0000
(
00:26
+0100)
committer
David Given
<dg@cowlark.com>
Tue, 13 Dec 2016 23:26:58 +0000
(
00:26
+0100)
mach/proto/mcg/pass_splitliveranges.c
patch
|
blob
|
history
diff --git
a/mach/proto/mcg/pass_splitliveranges.c
b/mach/proto/mcg/pass_splitliveranges.c
index
50417d5
..
b64ad55
100644
(file)
--- a/
mach/proto/mcg/pass_splitliveranges.c
+++ b/
mach/proto/mcg/pass_splitliveranges.c
@@
-94,6
+94,12
@@
void pass_split_live_ranges(void)
{
current_bb = dominance.preorder.item[i];
+ for (j=0; j<current_bb->phis.count; j++)
+ {
+ struct vreg* vreg = current_bb->phis.item[j].left;
+ insert_move_after(0, vreg);
+ }
+
for (j=0; j<current_bb->hops.count; j++)
{
struct hop* hop = current_bb->hops.item[j];
@@
-111,6
+117,12
@@
void pass_split_live_ranges(void)
struct vreg* vreg = hop->outs.item[k];
insert_move_after(j, vreg);
}
+
+ for (k=0; k<hop->ins.count; k++)
+ {
+ struct vreg* vreg = hop->ins.item[k];
+ j += insert_move_after(j, vreg);
+ }
}
}
}