github.com/bir3/gocompiler@v0.3.205/src/cmd/compile/internal/base/debug.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Debug arguments, set by -d flag.
     6  
     7  package base
     8  
     9  // Debug holds the parsed debugging configuration values.
    10  var Debug DebugFlags
    11  
    12  // DebugFlags defines the debugging configuration values (see var Debug).
    13  // Each struct field is a different value, named for the lower-case of the field name.
    14  // Each field must be an int or string and must have a `help` struct tag.
    15  //
    16  // The -d option takes a comma-separated list of settings.
    17  // Each setting is name=value; for ints, name is short for name=1.
    18  type DebugFlags struct {
    19  	Append                int    `help:"print information about append compilation"`
    20  	Checkptr              int    `help:"instrument unsafe pointer conversions\n0: instrumentation disabled\n1: conversions involving unsafe.Pointer are instrumented\n2: conversions to unsafe.Pointer force heap allocation" concurrent:"ok"`
    21  	Closure               int    `help:"print information about closure compilation"`
    22  	DclStack              int    `help:"run internal dclstack check"`
    23  	Defer                 int    `help:"print information about defer compilation"`
    24  	DisableNil            int    `help:"disable nil checks" concurrent:"ok"`
    25  	DumpPtrs              int    `help:"show Node pointers values in dump output"`
    26  	DwarfInl              int    `help:"print information about DWARF inlined function creation"`
    27  	Export                int    `help:"print export data"`
    28  	Fmahash               string `help:"hash value for use in debugging platform-dependent multiply-add use" concurrent:"ok"`
    29  	GCAdjust              int    `help:"log adjustments to GOGC" concurrent:"ok"`
    30  	GCCheck               int    `help:"check heap/gc use by compiler" concurrent:"ok"`
    31  	GCProg                int    `help:"print dump of GC programs"`
    32  	Gossahash             string `help:"hash value for use in debugging the compiler"`
    33  	InlFuncsWithClosures  int    `help:"allow functions with closures to be inlined" concurrent:"ok"`
    34  	InlStaticInit         int    `help:"allow static initialization of inlined calls" concurrent:"ok"`
    35  	InterfaceCycles       int    `help:"allow anonymous interface cycles"`
    36  	Libfuzzer             int    `help:"enable coverage instrumentation for libfuzzer"`
    37  	LocationLists         int    `help:"print information about DWARF location list creation"`
    38  	Nil                   int    `help:"print information about nil checks"`
    39  	NoOpenDefer           int    `help:"disable open-coded defers" concurrent:"ok"`
    40  	NoRefName             int    `help:"do not include referenced symbol names in object file" concurrent:"ok"`
    41  	PCTab                 string `help:"print named pc-value table\nOne of: pctospadj, pctofile, pctoline, pctoinline, pctopcdata"`
    42  	Panic                 int    `help:"show all compiler panics"`
    43  	Reshape               int    `help:"print information about expression reshaping"`
    44  	Shapify               int    `help:"print information about shaping recursive types"`
    45  	Slice                 int    `help:"print information about slice compilation"`
    46  	SoftFloat             int    `help:"force compiler to emit soft-float code" concurrent:"ok"`
    47  	SyncFrames            int    `help:"how many writer stack frames to include at sync points in unified export data"`
    48  	TypeAssert            int    `help:"print information about type assertion inlining"`
    49  	TypecheckInl          int    `help:"eager typechecking of inline function bodies" concurrent:"ok"`
    50  	Unified               int    `help:"enable unified IR construction"`
    51  	WB                    int    `help:"print information about write barriers"`
    52  	ABIWrap               int    `help:"print information about ABI wrapper generation"`
    53  	MayMoreStack          string `help:"call named function before all stack growth checks" concurrent:"ok"`
    54  	PGOInlineCDFThreshold string `help:"cummulative threshold percentage for determining call sites as hot candidates for inlining" concurrent:"ok"`
    55  	PGOInlineBudget       int    `help:"inline budget for hot functions" concurrent:"ok"`
    56  	PGOInline             int    `help:"debug profile-guided inlining"`
    57  
    58  	ConcurrentOk bool // true if only concurrentOk flags seen
    59  }
    60  
    61  // DebugSSA is called to set a -d ssa/... option.
    62  // If nil, those options are reported as invalid options.
    63  // If DebugSSA returns a non-empty string, that text is reported as a compiler error.
    64  var DebugSSA func(phase, flag string, val int, valString string) string