Merge pull request #39629 from slavapestov/rqm-protocol-signatures

RequirementMachine: Wire up protocol requirement signature minimization
This commit is contained in:
Slava Pestov
2021-10-09 22:30:05 -04:00
committed by GitHub
33 changed files with 841 additions and 243 deletions

View File

@@ -831,13 +831,12 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
}
}
if (auto A =
Args.getLastArg(OPT_requirement_machine_EQ)) {
if (auto A = Args.getLastArg(OPT_requirement_machine_EQ)) {
auto value = llvm::StringSwitch<Optional<RequirementMachineMode>>(A->getValue())
.Case("off", RequirementMachineMode::Disabled)
.Case("on", RequirementMachineMode::Enabled)
.Case("verify", RequirementMachineMode::Verify)
.Default(None);
.Case("off", RequirementMachineMode::Disabled)
.Case("on", RequirementMachineMode::Enabled)
.Case("verify", RequirementMachineMode::Verify)
.Default(None);
if (value)
Opts.EnableRequirementMachine = *value;
@@ -846,6 +845,20 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
A->getAsString(Args), A->getValue());
}
if (auto A = Args.getLastArg(OPT_requirement_machine_protocol_signatures_EQ)) {
auto value = llvm::StringSwitch<Optional<RequirementMachineMode>>(A->getValue())
.Case("off", RequirementMachineMode::Disabled)
.Case("on", RequirementMachineMode::Enabled)
.Case("verify", RequirementMachineMode::Verify)
.Default(None);
if (value)
Opts.RequirementMachineProtocolSignatures = *value;
else
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
A->getAsString(Args), A->getValue());
}
Opts.DumpRequirementMachine = Args.hasArg(
OPT_dump_requirement_machine);
Opts.AnalyzeRequirementMachine = Args.hasArg(