mirror of
https://github.com/intel/llvm.git
synced 2026-02-04 03:26:06 +08:00
[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions. I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default. Test updates are made as a separate patch: D108453 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D105169
This commit is contained in:
committed by
hyeongyu kim
parent
da2e1f622d
commit
80dba72a66
@@ -64,7 +64,7 @@ CODEGENOPT(DisableLifetimeMarkers, 1, 0) ///< Don't emit any lifetime markers
|
||||
CODEGENOPT(DisableO0ImplyOptNone , 1, 0) ///< Don't annonate function with optnone at O0
|
||||
CODEGENOPT(ExperimentalStrictFloatingPoint, 1, 0) ///< Enables the new, experimental
|
||||
///< strict floating point.
|
||||
CODEGENOPT(EnableNoundefAttrs, 1, 0) ///< Enable emitting `noundef` attributes on IR call arguments and return values
|
||||
CODEGENOPT(DisableNoundefAttrs, 1, 0) ///< Disable emitting `noundef` attributes on IR call arguments and return values
|
||||
CODEGENOPT(LegacyPassManager, 1, 0) ///< Use the legacy pass manager.
|
||||
CODEGENOPT(DebugPassManager, 1, 0) ///< Prints debug information for the new
|
||||
///< pass manager.
|
||||
|
||||
@@ -5314,9 +5314,9 @@ def disable_free : Flag<["-"], "disable-free">,
|
||||
def clear_ast_before_backend : Flag<["-"], "clear-ast-before-backend">,
|
||||
HelpText<"Clear the Clang AST before running backend code generation">,
|
||||
MarshallingInfoFlag<CodeGenOpts<"ClearASTBeforeBackend">>;
|
||||
def enable_noundef_analysis : Flag<["-"], "enable-noundef-analysis">, Group<f_Group>,
|
||||
HelpText<"Enable analyzing function argument and return types for mandatory definedness">,
|
||||
MarshallingInfoFlag<CodeGenOpts<"EnableNoundefAttrs">>;
|
||||
def disable_noundef_analysis : Flag<["-"], "disable-noundef-analysis">, Group<f_Group>,
|
||||
HelpText<"Disable analyzing function argument and return types for mandatory definedness">,
|
||||
MarshallingInfoFlag<CodeGenOpts<"DisableNoundefAttrs">>;
|
||||
def discard_value_names : Flag<["-"], "discard-value-names">,
|
||||
HelpText<"Discard value names in LLVM IR">,
|
||||
MarshallingInfoFlag<CodeGenOpts<"DiscardValueNames">>;
|
||||
|
||||
@@ -2255,7 +2255,7 @@ void CodeGenModule::ConstructAttributeList(
|
||||
getLangOpts().Sanitize.has(SanitizerKind::Return);
|
||||
|
||||
// Determine if the return type could be partially undef
|
||||
if (CodeGenOpts.EnableNoundefAttrs && HasStrictReturn) {
|
||||
if (!CodeGenOpts.DisableNoundefAttrs && HasStrictReturn) {
|
||||
if (!RetTy->isVoidType() && RetAI.getKind() != ABIArgInfo::Indirect &&
|
||||
DetermineNoUndef(RetTy, getTypes(), DL, RetAI))
|
||||
RetAttrs.addAttribute(llvm::Attribute::NoUndef);
|
||||
@@ -2390,7 +2390,7 @@ void CodeGenModule::ConstructAttributeList(
|
||||
|
||||
// Decide whether the argument we're handling could be partially undef
|
||||
bool ArgNoUndef = DetermineNoUndef(ParamType, getTypes(), DL, AI);
|
||||
if (CodeGenOpts.EnableNoundefAttrs && ArgNoUndef)
|
||||
if (!CodeGenOpts.DisableNoundefAttrs && ArgNoUndef)
|
||||
Attrs.addAttribute(llvm::Attribute::NoUndef);
|
||||
|
||||
// 'restrict' -> 'noalias' is done in EmitFunctionProlog when we
|
||||
|
||||
Reference in New Issue
Block a user