Lines Matching defs:TOC

87 STATISTIC(NumTOCEntries, "Number of Total TOC Entries Emitted.");
88 STATISTIC(NumTOCConstPool, "Number of Constant Pool TOC Entries.");
90 "Number of Internal Linkage Global TOC Entries.");
92 "Number of External Linkage Global TOC Entries.");
93 STATISTIC(NumTOCJumpTable, "Number of Jump Table TOC Entries.");
94 STATISTIC(NumTOCThreadLocal, "Number of Thread Local TOC Entries.");
95 STATISTIC(NumTOCBlockAddress, "Number of Block Address TOC Entries.");
96 STATISTIC(NumTOCEHBlock, "Number of EH Block TOC Entries.");
105 // map representing TOC entries.
147 // For TLS on AIX, we need to be able to identify TOC entries of specific
156 TOC;
161 // non-TOC-based local-exec variables.
186 if (!TOC.empty())
187 TOC.clear();
508 /// lookUpOrCreateTOCEntry -- Given a symbol, look up whether a TOC entry
510 /// the TOC entry.
514 // If this is a new TOC entry add statistics about it.
515 if (!TOC.contains({Sym, Kind}))
518 MCSymbol *&TOCEntry = TOC[{Sym, Kind}];
593 // Save the current TOC pointer before the remote call.
604 // Load the new TOC pointer and the function address, but not r11
625 // Restore the TOC pointer after the call.
752 /// Map a machine operand for a TOC pseudo-machine instruction to its
795 llvm_unreachable("Unexpected operand type to get TOC type.");
839 // Apply an offset to the TOC-based expression such that the adjusted
840 // notional offset from the TOC base (to be encoded into the instruction's D
842 // offset from the TOC base.
857 const auto TOCEntryIter = TOC.find({MOSymbol, VK});
858 assert(TOCEntryIter != TOC.end() &&
859 "Could not find the TOC entry for this symbol.");
861 (TOCEntryIter - TOC.begin()) * EntryByteSize;
870 // For TLS initial-exec and local-exec accesses on AIX, we have one TOC
894 // For GD TLS access on AIX, we have two TOC entries for the symbol (one for
901 // For local-dynamic TLS access on AIX, we have one TOC entry for the symbol
902 // (the variable offset) and one shared TOC entry for the module handle.
1062 // Otherwise, use the TOC. 'TOCEntry' is a label used to reference the
1063 // storage allocated in the TOC which contains the address of
1064 // 'MOSymbol'. Said TOC entry will be synthesized later.
1140 // global address operand to be a reference to the TOC entry we will
1178 // Map the global address operand to be a reference to the TOC entry we
1180 // storage allocated in the TOC which contains the address of 'MOSymbol'.
1182 // TOC entry on AIX. If the toc-data attribute is used, the TOC entry
1223 // Always use TOC on AIX. Map the global address operand to be a reference
1224 // to the TOC entry we will synthesize later. 'TOCEntry' is a label used to
1225 // reference the storage allocated in the TOC which contains the address of
1242 // constant pool index with large code model enabled, then generate a TOC
1286 // TOC entry and reference that. Otherwise, reference the symbol directly.
1624 // For non-TOC-based local-exec TLS accesses with non-zero offsets, the
1641 // non-TOC-based local-exec sequence or to process the instruction normally.
1663 // A faster non-TOC-based local-[exec|dynamic] sequence is represented by
1708 // For non-TOC-based local-[exec|dynamic] variables that have a non-zero offset,
2001 // the text section and its associated TOC section. We place the
2002 // full 8-byte offset to the TOC in memory immediately preceding
2008 MCSymbol *TOCSymbol = OutContext.getOrCreateSymbol(StringRef(".TOC."));
2034 MCSymbol *Symbol2 = OutContext.getOrCreateSymbol(StringRef(".TOC."));
2035 // Generates a R_PPC64_TOC relocation for TOC base insertion.
2062 if (!TOC.empty()) {
2070 for (const auto &TOCMapPair : TOC) {
2087 // In the ELFv2 ABI, in functions that use the TOC register, we need to
2089 // local entry point, r2 is set up by the caller to contain the TOC base
2097 // addis r2,r12,(.TOC.-.Lfunc_gepNN)@ha
2098 // addi r2,r2,(.TOC.-.Lfunc_gepNN)@l
2106 // .quad .TOC.-.Lfunc_gepNN # done by EmitFunctionEntryLabel
2126 // Only do all that if the function uses R2 as the TOC pointer
2139 MCSymbol *TOCSymbol = OutContext.getOrCreateSymbol(StringRef(".TOC."));
2190 // 2) A function uses the TOC pointer R2. This function may or may not have
2192 // points are different. Code to correctly setup the TOC pointer in R2
2195 // 3) A function does not use the TOC pointer R2 but does have calls.
2200 // 4) The function does not use the TOC pointer but R2 is used inside
2748 "GlobalVariables with an alignment requirement stricter than TOC entry "
2757 "A GlobalVariable with size larger than a TOC entry is not currently "
2890 // Emit TOC base address.
2990 // module, we will never need to reference the TOC base.
2997 // Switch to section to emit TOC base.
3003 for (auto &I : TOC) {