| //===----------------------------------------------------------------------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| include "llvm/Option/LibraryOptions.td" | |
| def CGDataOptions : OptionsStruct<perContext = false>; | |
| defm : BoolField<"codegen-data-generate", "false", | |
| "Emit CodeGen Data into custom sections">; | |
| defm : BoolField<"codegen-data-thinlto-two-rounds", "false", | |
| "Enable two-round ThinLTO code generation. " | |
| "The first round emits codegen data, while the second round uses the emitted codegen data for further optimizations">; | |
| defm : ValueField<"codegen-data-use-path", "StringRef", "", | |
| "File path to where .cgdata file is read">; | |
| defm : ValueField<"global-merging-call-overhead", "double", "1.0", | |
| "The overhead cost associated with each function call when merging functions">; | |
| defm : ValueField<"global-merging-extra-threshold", "double", "0.0", | |
| "An additional cost threshold that must be exceeded for merging to be considered beneficial">; | |
| defm : ValueField<"global-merging-inst-overhead", "double", "1.2", | |
| "The overhead cost associated with each instruction when lowering to machine instruction">; | |
| defm : ValueField<"global-merging-max-params", "unsigned", | |
| "std::numeric_limits<unsigned>::max()", | |
| "The maximum number of parameters allowed when merging functions">; | |
| defm : ValueField<"global-merging-min-instrs", "unsigned", "1", | |
| "The minimum instruction count required when merging functions">; | |
| defm : ValueField<"global-merging-min-merges", "unsigned", "2", | |
| "Minimum number of similar functions with the same hash required for merging">; | |
| defm : ValueField<"global-merging-param-overhead", "double", "2.0", | |
| "The overhead cost associated with each parameter when merging functions">; | |
| defm : BoolField<"global-merging-skip-no-params", "true", | |
| "Skip merging functions with no parameters">; | |
| defm : BoolField<"indexed-codegen-data-lazy-loading", "false", | |
| "Lazily load indexed CodeGenData. " | |
| "Enable to save memory and time for final consumption of the indexed CodeGenData in production">; | |
| defm : BoolField<"indexed-codegen-data-read-function-map-names", "true", | |
| "Read function map names in indexed CodeGenData. " | |
| "Can be disabled to save memory and time for final consumption of the indexed CodeGenData in production">; |