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();
506 /// lookUpOrCreateTOCEntry -- Given a symbol, look up whether a TOC entry
508 /// the TOC entry.
512 // If this is a new TOC entry add statistics about it.
513 if (!TOC.contains({Sym, Kind}))
516 MCSymbol *&TOCEntry = TOC[{Sym, Kind}];
591 // Save the current TOC pointer before the remote call.
602 // Load the new TOC pointer and the function address, but not r11
623 // Restore the TOC pointer after the call.
750 /// Map a machine operand for a TOC pseudo-machine instruction to its
793 llvm_unreachable("Unexpected operand type to get TOC type.");
837 // Apply an offset to the TOC-based expression such that the adjusted
838 // notional offset from the TOC base (to be encoded into the instruction's D
840 // offset from the TOC base.
855 const auto TOCEntryIter = TOC.find({MOSymbol, VK});
856 assert(TOCEntryIter != TOC.end() &&
857 "Could not find the TOC entry for this symbol.");
859 (TOCEntryIter - TOC.begin()) * EntryByteSize;
868 // For TLS initial-exec and local-exec accesses on AIX, we have one TOC
892 // For GD TLS access on AIX, we have two TOC entries for the symbol (one for
899 // For local-dynamic TLS access on AIX, we have one TOC entry for the symbol
900 // (the variable offset) and one shared TOC entry for the module handle.
1060 // Otherwise, use the TOC. 'TOCEntry' is a label used to reference the
1061 // storage allocated in the TOC which contains the address of
1062 // 'MOSymbol'. Said TOC entry will be synthesized later.
1138 // global address operand to be a reference to the TOC entry we will
1176 // Map the global address operand to be a reference to the TOC entry we
1178 // storage allocated in the TOC which contains the address of 'MOSymbol'.
1180 // TOC entry on AIX. If the toc-data attribute is used, the TOC entry
1221 // Always use TOC on AIX. Map the global address operand to be a reference
1222 // to the TOC entry we will synthesize later. 'TOCEntry' is a label used to
1223 // reference the storage allocated in the TOC which contains the address of
1240 // constant pool index with large code model enabled, then generate a TOC
1284 // TOC entry and reference that. Otherwise, reference the symbol directly.
1622 // For non-TOC-based local-exec TLS accesses with non-zero offsets, the
1639 // non-TOC-based local-exec sequence or to process the instruction normally.
1661 // A faster non-TOC-based local-[exec|dynamic] sequence is represented by
1706 // For non-TOC-based local-[exec|dynamic] variables that have a non-zero offset,
1999 // the text section and its associated TOC section. We place the
2000 // full 8-byte offset to the TOC in memory immediately preceding
2006 MCSymbol *TOCSymbol = OutContext.getOrCreateSymbol(StringRef(".TOC."));
2032 MCSymbol *Symbol2 = OutContext.getOrCreateSymbol(StringRef(".TOC."));
2033 // Generates a R_PPC64_TOC relocation for TOC base insertion.
2060 if (!TOC.empty()) {
2068 for (const auto &TOCMapPair : TOC) {
2085 // In the ELFv2 ABI, in functions that use the TOC register, we need to
2087 // local entry point, r2 is set up by the caller to contain the TOC base
2095 // addis r2,r12,(.TOC.-.Lfunc_gepNN)@ha
2096 // addi r2,r2,(.TOC.-.Lfunc_gepNN)@l
2104 // .quad .TOC.-.Lfunc_gepNN # done by EmitFunctionEntryLabel
2124 // Only do all that if the function uses R2 as the TOC pointer
2137 MCSymbol *TOCSymbol = OutContext.getOrCreateSymbol(StringRef(".TOC."));
2188 // 2) A function uses the TOC pointer R2. This function may or may not have
2190 // points are different. Code to correctly setup the TOC pointer in R2
2193 // 3) A function does not use the TOC pointer R2 but does have calls.
2198 // 4) The function does not use the TOC pointer but R2 is used inside
2750 "GlobalVariables with an alignment requirement stricter than TOC entry "
2759 "A GlobalVariable with size larger than a TOC entry is not currently "
2892 // Emit TOC base address.
2967 // module, we will never need to reference the TOC base.
2973 // Switch to section to emit TOC base.
2979 for (auto &I : TOC) {