Skip to content

Commit 36049d7

Browse files
authored
[LLVM] Add a new attribute optdebug
1 parent fa77b68 commit 36049d7

File tree

5 files changed

+9
-0
lines changed

5 files changed

+9
-0
lines changed

llvm/include/llvm/Bitcode/LLVMBitCodes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,7 @@ enum AttributeKindCodes {
721721
ATTR_KIND_HAS_CXXSEH = 93,
722722
ATTR_KIND_IS_SEH_FILTER_FUNCTION = 94,
723723
ATTR_KIND_IS_SEH_FINALLY_FUNCTION = 95,
724+
ATTR_KIND_OPTIMIZE_FOR_DEBUGGING = 96,
724725
};
725726

726727
enum ComdatSelectionKindCodes {

llvm/include/llvm/IR/Attributes.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ def NoSanitizeCoverage : EnumAttr<"nosanitize_coverage", [FnAttr]>;
200200
/// Null pointer in address space zero is valid.
201201
def NullPointerIsValid : EnumAttr<"null_pointer_is_valid", [FnAttr]>;
202202

203+
/// Select optimizations that give decent debug info.
204+
def OptimizeForDebugging : EnumAttr<"optdebug", [FnAttr]>;
205+
203206
/// Select optimizations for best fuzzing signal.
204207
def OptForFuzzing : EnumAttr<"optforfuzzing", [FnAttr]>;
205208

llvm/lib/Bitcode/Reader/BitcodeReader.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2072,6 +2072,8 @@ static Attribute::AttrKind getAttrFromCode(uint64_t Code) {
20722072
return Attribute::IsSEHFilterFunction;
20732073
case bitc::ATTR_KIND_IS_SEH_FINALLY_FUNCTION:
20742074
return Attribute::IsSEHFinallyFunction;
2075+
case bitc::ATTR_KIND_OPTIMIZE_FOR_DEBUGGING:
2076+
return Attribute::OptimizeForDebugging;
20752077
}
20762078
}
20772079

llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,8 @@ static uint64_t getAttrKindEncoding(Attribute::AttrKind Kind) {
844844
return bitc::ATTR_KIND_IS_SEH_FILTER_FUNCTION;
845845
case Attribute::IsSEHFinallyFunction:
846846
return bitc::ATTR_KIND_IS_SEH_FINALLY_FUNCTION;
847+
case Attribute::OptimizeForDebugging:
848+
return bitc::ATTR_KIND_OPTIMIZE_FOR_DEBUGGING;
847849
}
848850

849851
llvm_unreachable("Trying to encode unknown attribute");

llvm/lib/Transforms/Utils/CodeExtractor.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,7 @@ Function *CodeExtractor::constructFunction(const ValueSet &inputs,
941941
case Attribute::NoSanitizeBounds:
942942
case Attribute::NoSanitizeCoverage:
943943
case Attribute::NullPointerIsValid:
944+
case Attribute::OptimizeForDebugging:
944945
case Attribute::OptForFuzzing:
945946
case Attribute::OptimizeNone:
946947
case Attribute::OptimizeForSize:

0 commit comments

Comments
 (0)