[llvm] [AIX] Support per global code model. (PR #79202)
Amy Kwan via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 6 08:20:50 PST 2024
================
@@ -2680,21 +2680,34 @@ MCSection *TargetLoweringObjectFileXCOFF::getSectionForFunctionDescriptor(
MCSection *TargetLoweringObjectFileXCOFF::getSectionForTOCEntry(
const MCSymbol *Sym, const TargetMachine &TM) const {
- // Use TE storage-mapping class when large code model is enabled so that
- // the chance of needing -bbigtoc is decreased. Also, the toc-entry for
- // EH info is never referenced directly using instructions so it can be
- // allocated with TE storage-mapping class.
- // The "_$TLSML" symbol for TLS local-dynamic mode requires XMC_TC, otherwise
- // the AIX assembler will complain.
+ const XCOFF::StorageMappingClass SMC = [](const MCSymbol *Sym,
+ const TargetMachine &TM) {
+ const MCSymbolXCOFF *XSym = cast<MCSymbolXCOFF>(Sym);
+
+ // The "_$TLSML" symbol for TLS local-dynamic mode requires XMC_TC,
+ // otherwise the AIX assembler will complain.
+ if (XSym->getSymbolTableName() == "_$TLSML")
+ return XCOFF::XMC_TC;
+
+ // Use large code model toc entries for ehinfo symbols as they are
+ // never refrenced directly. The runtime loads their TOC entry
----------------
amy-kwan wrote:
```suggestion
// never referenced directly. The runtime loads their TOC entry
```
https://github.com/llvm/llvm-project/pull/79202
More information about the llvm-commits
mailing list