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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user