Mark spill and fill as can_store and can_load.

This allows GVN to avoid hoisting them. These will be to coarse for
things that want more precise dependence information, however we can
work that out when we build such things.
This commit is contained in:
Dan Gohman
2017-10-19 13:11:33 -07:00
parent cc0bb70c5d
commit 7c9b9e3d27
2 changed files with 17 additions and 2 deletions

View File

@@ -39,3 +39,18 @@ ebb0:
; check: v5 = trueif eq v4
return v6
}
function %spill() -> i32 {
ebb0:
v0 = iconst.i32 7
v1 = spill v0
v2 = fill v1
v3 = spill v0
v4 = fill v1
v5 = bor v2, v4
; check: v1 = spill v0
; check: v2 = fill v1
; check: v3 = spill v0
; check: v4 = fill v1
return v5
}