compiler: let escape analysis look across bitcasts
This is necessary to avoid memory allocation in the math packages in some functions.
Этот коммит содержится в:
родитель
46755b774e
коммит
100901574b
1 изменённых файлов: 5 добавлений и 0 удалений
|
@ -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 {
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче