compiler: let escape analysis look across bitcasts

This is necessary to avoid memory allocation in the math packages in
some functions.
This commit is contained in:
Ayke van Laethem
2018-11-16 23:02:09 +01:00
parent 46755b774e
commit 100901574b
+5
View File
@@ -207,6 +207,11 @@ func (c *Compiler) doesEscape(value llvm.Value) bool {
if c.doesEscape(use) {
return true
}
} else if use.IsABitCastInst() != nilValue {
// A bitcast escapes if the casted-to value escapes.
if c.doesEscape(use) {
return true
}
} else if use.IsALoadInst() != nilValue {
// Load does not escape.
} else if use.IsAStoreInst() != nilValue {