Under VFE/WME, disable mangled accessors and disable LLVM MergeFunctions (#39969)

This commit is contained in:
Kuba (Brecka) Mracek
2021-11-01 15:34:53 -07:00
committed by GitHub
parent 6d255658ca
commit d682049d25
2 changed files with 24 additions and 0 deletions

View File

@@ -1972,14 +1972,32 @@ static bool ParseIRGenArgs(IRGenOptions &Opts, ArgList &Args,
if (Args.hasArg(OPT_enable_llvm_vfe)) {
Opts.VirtualFunctionElimination = true;
// FIXME(mracek): There are still some situations where we use mangled name
// without symbolic references, which means the dependency is not statically
// visible to the compiler/linker. Temporarily disable mangled accessors
// until we fix that.
Opts.DisableConcreteTypeMetadataMangledNameAccessors = true;
}
if (Args.hasArg(OPT_enable_llvm_wme)) {
Opts.WitnessMethodElimination = true;
// FIXME(mracek): There are still some situations where we use mangled name
// without symbolic references, which means the dependency is not statically
// visible to the compiler/linker. Temporarily disable mangled accessors
// until we fix that.
Opts.DisableConcreteTypeMetadataMangledNameAccessors = true;
}
if (Args.hasArg(OPT_conditional_runtime_records)) {
Opts.ConditionalRuntimeRecords = true;
// FIXME(mracek): There are still some situations where we use mangled name
// without symbolic references, which means the dependency is not statically
// visible to the compiler/linker. Temporarily disable mangled accessors
// until we fix that.
Opts.DisableConcreteTypeMetadataMangledNameAccessors = true;
}
if (Args.hasArg(OPT_internalize_at_link)) {