Skip to content

Commit d63ce06

Browse files
aykevldeadprogram
authored andcommitted
compiler: avoid all debug info with -no-debug
1 parent 003211b commit d63ce06

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

compiler/compiler.go

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ func NewCompiler(pkgName string, config Config) (*Compiler, error) {
110110
c.mod.SetTarget(config.Triple)
111111
c.mod.SetDataLayout(c.targetData.String())
112112
c.builder = c.ctx.NewBuilder()
113-
c.dibuilder = llvm.NewDIBuilder(c.mod)
113+
if c.Debug {
114+
c.dibuilder = llvm.NewDIBuilder(c.mod)
115+
}
114116

115117
c.uintptrType = c.ctx.IntType(c.targetData.PointerSize() * 8)
116118
if c.targetData.PointerSize() <= 4 {
@@ -214,13 +216,15 @@ func (c *Compiler) Compile(mainPath string) error {
214216
c.ir.SimpleDCE()
215217

216218
// Initialize debug information.
217-
c.cu = c.dibuilder.CreateCompileUnit(llvm.DICompileUnit{
218-
Language: llvm.DW_LANG_Go,
219-
File: mainPath,
220-
Dir: "",
221-
Producer: "TinyGo",
222-
Optimized: true,
223-
})
219+
if c.Debug {
220+
c.cu = c.dibuilder.CreateCompileUnit(llvm.DICompileUnit{
221+
Language: llvm.DW_LANG_Go,
222+
File: mainPath,
223+
Dir: "",
224+
Producer: "TinyGo",
225+
Optimized: true,
226+
})
227+
}
224228

225229
var frames []*Frame
226230

@@ -373,14 +377,16 @@ func (c *Compiler) Compile(mainPath string) error {
373377
c.mod.NamedFunction("runtime.scheduler").SetLinkage(llvm.ExternalLinkage)
374378

375379
// see: https://reviews.llvm.org/D18355
376-
c.mod.AddNamedMetadataOperand("llvm.module.flags",
377-
c.ctx.MDNode([]llvm.Metadata{
378-
llvm.ConstInt(c.ctx.Int32Type(), 1, false).ConstantAsMetadata(), // Error on mismatch
379-
llvm.GlobalContext().MDString("Debug Info Version"),
380-
llvm.ConstInt(c.ctx.Int32Type(), 3, false).ConstantAsMetadata(), // DWARF version
381-
}),
382-
)
383-
c.dibuilder.Finalize()
380+
if c.Debug {
381+
c.mod.AddNamedMetadataOperand("llvm.module.flags",
382+
c.ctx.MDNode([]llvm.Metadata{
383+
llvm.ConstInt(c.ctx.Int32Type(), 1, false).ConstantAsMetadata(), // Error on mismatch
384+
llvm.GlobalContext().MDString("Debug Info Version"),
385+
llvm.ConstInt(c.ctx.Int32Type(), 3, false).ConstantAsMetadata(), // DWARF version
386+
}),
387+
)
388+
c.dibuilder.Finalize()
389+
}
384390

385391
return nil
386392
}

0 commit comments

Comments
 (0)