compiler: let escape analysis look across bitcasts

This is necessary to avoid memory allocation in the math packages in
some functions.
Этот коммит содержится в:
Ayke van Laethem 2018-11-16 23:02:09 +01:00
родитель 46755b774e
коммит 100901574b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED

Просмотреть файл

@ -207,6 +207,11 @@ func (c *Compiler) doesEscape(value llvm.Value) bool {
if c.doesEscape(use) { if c.doesEscape(use) {
return true 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 { } else if use.IsALoadInst() != nilValue {
// Load does not escape. // Load does not escape.
} else if use.IsAStoreInst() != nilValue { } else if use.IsAStoreInst() != nilValue {