IRGen: Honor -target-variant flag for zippered macCatalyst binaries.

This commit is contained in:
Allan Shortlidge
2024-07-19 16:13:33 -07:00
parent cbb9b80378
commit bb8a837dcf
5 changed files with 48 additions and 1 deletions

View File

@@ -220,7 +220,9 @@ IRGenModule::IRGenModule(IRGenerator &irgen,
ModuleName, PrivateDiscriminator)),
Module(*ClangCodeGen->GetModule()),
DataLayout(irgen.getClangDataLayoutString()),
Triple(irgen.getEffectiveClangTriple()), TargetMachine(std::move(target)),
Triple(irgen.getEffectiveClangTriple()),
VariantTriple(irgen.getEffectiveClangVariantTriple()),
TargetMachine(std::move(target)),
silConv(irgen.SIL), OutputFilename(OutputFilename),
MainInputFilenameForDebugInfo(MainInputFilenameForDebugInfo),
TargetInfo(SwiftTargetInfo::get(*this)), DebugInfo(nullptr),
@@ -2229,6 +2231,13 @@ llvm::Triple IRGenerator::getEffectiveClangTriple() {
return llvm::Triple(CI->getTargetInfo().getTargetOpts().Triple);
}
llvm::Triple IRGenerator::getEffectiveClangVariantTriple() {
auto CI = static_cast<ClangImporter *>(
&*SIL.getASTContext().getClangModuleLoader());
assert(CI && "no clang module loader");
return llvm::Triple(CI->getTargetInfo().getTargetOpts().DarwinTargetVariantTriple);
}
const llvm::StringRef IRGenerator::getClangDataLayoutString() {
return static_cast<ClangImporter *>(
SIL.getASTContext().getClangModuleLoader())