mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Frontend] Add flag for pack metadata stack promo.
This commit is contained in:
@@ -2066,6 +2066,30 @@ static bool ParseSILArgs(SILOptions &Opts, ArgList &Args,
|
||||
if (specifiedDestroyHoistingOption)
|
||||
Opts.DestroyHoisting = *specifiedDestroyHoistingOption;
|
||||
|
||||
Optional<bool> enablePackMetadataStackPromotionFlag;
|
||||
if (Arg *A = Args.getLastArg(OPT_enable_pack_metadata_stack_promotion)) {
|
||||
enablePackMetadataStackPromotionFlag =
|
||||
llvm::StringSwitch<Optional<bool>>(A->getValue())
|
||||
.Case("true", true)
|
||||
.Case("false", false)
|
||||
.Default(None);
|
||||
}
|
||||
if (Args.getLastArg(OPT_enable_pack_metadata_stack_promotion_noArg)) {
|
||||
if (!enablePackMetadataStackPromotionFlag.value_or(true)) {
|
||||
// Error if pack metadata stack promotion has been disabled via the
|
||||
// meta-var form and enabled via the flag.
|
||||
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_combination,
|
||||
"enable-pack-metadata-stack-promotion",
|
||||
"enable-pack-metadata-stack-promotion=false");
|
||||
return true;
|
||||
} else {
|
||||
enablePackMetadataStackPromotionFlag = true;
|
||||
}
|
||||
}
|
||||
if (enablePackMetadataStackPromotionFlag)
|
||||
Opts.EnablePackMetadataStackPromotion =
|
||||
enablePackMetadataStackPromotionFlag.value();
|
||||
|
||||
Opts.EnableARCOptimizations &= !Args.hasArg(OPT_disable_arc_opts);
|
||||
Opts.EnableOSSAModules |= Args.hasArg(OPT_enable_ossa_modules);
|
||||
Opts.EnableOSSAOptimizations &= !Args.hasArg(OPT_disable_ossa_opts);
|
||||
|
||||
Reference in New Issue
Block a user