compiler: make string data unnamed addresses
This ensures LLVM can merge identical strings, and thus reduces code size in some cases.
Этот коммит содержится в:
родитель
7cea40bcb5
коммит
2938437efc
1 изменённых файлов: 1 добавлений и 0 удалений
|
@ -2734,6 +2734,7 @@ func (c *Compiler) parseConst(prefix string, expr *ssa.Const) (llvm.Value, error
|
|||
global.SetInitializer(c.ctx.ConstString(str, false))
|
||||
global.SetLinkage(llvm.InternalLinkage)
|
||||
global.SetGlobalConstant(true)
|
||||
global.SetUnnamedAddr(true)
|
||||
zero := llvm.ConstInt(llvm.Int32Type(), 0, false)
|
||||
strPtr := c.builder.CreateInBoundsGEP(global, []llvm.Value{zero, zero}, "")
|
||||
strObj := llvm.ConstNamedStruct(c.mod.GetTypeByName("runtime._string"), []llvm.Value{strPtr, strLen})
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче