Home
last modified time | relevance | path

Searched refs:ICF (Results 1 – 12 of 12) sorted by relevance

/freebsd-14.2/contrib/llvm-project/lld/COFF/
H A DICF.cpp40 class ICF { class
42 ICF(COFFLinkerContext &c) : ctx(c){}; in ICF() function in lld::coff::ICF
80 bool ICF::isEligible(SectionChunk *c) { in isEligible()
108 void ICF::segregate(size_t begin, size_t end, bool constant) { in segregate()
134 bool ICF::assocEquals(const SectionChunk *a, const SectionChunk *b) { in assocEquals()
152 bool ICF::equalsConstant(const SectionChunk *a, const SectionChunk *b) { in equalsConstant()
203 size_t ICF::findBoundary(size_t begin, size_t end) { in findBoundary()
210 void ICF::forEachClassRange(size_t begin, size_t end, in forEachClassRange()
220 void ICF::forEachClass(std::function<void(size_t, size_t)> fn) { in forEachClass()
252 void ICF::run() { in run()
[all …]
H A DChunks.h213 friend class ICF; variable
/freebsd-14.2/contrib/llvm-project/lld/MachO/
H A DICF.cpp31 class ICF { class
33 ICF(std::vector<ConcatInputSection *> &inputs);
59 ICF::ICF(std::vector<ConcatInputSection *> &inputs) { in ICF() function in ICF
95 bool ICF::equalsConstant(const ConcatInputSection *ia, in equalsConstant()
176 bool ICF::equalsVariable(const ConcatInputSection *ia, in equalsVariable()
236 size_t ICF::findBoundary(size_t begin, size_t end) { in findBoundary()
245 void ICF::forEachClassRange(size_t begin, size_t end, in forEachClassRange()
284 void ICF::run() { in run()
318 segregate(begin, end, &ICF::equalsConstant); in run()
325 segregate(begin, end, &ICF::equalsVariable); in run()
[all …]
/freebsd-14.2/contrib/llvm-project/lld/ELF/
H A DICF.cpp98 template <class ELFT> class ICF { class
198 void ICF<ELFT>::segregate(size_t begin, size_t end, uint32_t eqClassBase, in segregate()
238 bool ICF<ELFT>::constantEq(const InputSection *secA, ArrayRef<RelTy> ra, in constantEq()
314 bool ICF<ELFT>::equalsConstant(const InputSection *a, const InputSection *b) { in equalsConstant()
335 bool ICF<ELFT>::variableEq(const InputSection *secA, ArrayRef<RelTy> ra, in variableEq()
372 bool ICF<ELFT>::equalsVariable(const InputSection *a, const InputSection *b) { in equalsVariable()
380 template <class ELFT> size_t ICF<ELFT>::findBoundary(size_t begin, size_t end) { in findBoundary()
394 void ICF<ELFT>::forEachClassRange(size_t begin, size_t end, in forEachClassRange()
405 void ICF<ELFT>::forEachClass(llvm::function_ref<void(size_t, size_t)> fn) { in forEachClass()
460 template <class ELFT> void ICF<ELFT>::run() { in run()
[all …]
H A DOptions.td280 defm keep_unique: Eq<"keep-unique", "Do not fold this symbol during ICF">;
/freebsd-14.2/contrib/llvm-project/llvm/lib/Analysis/
H A DMustExecute.cpp72 return ICF.hasICF(BB); in blockMayThrow()
81 ICF.clear(); in computeLoopSafetyInfo()
86 if (ICF.hasICF(&*BB)) { in computeLoopSafetyInfo()
95 ICF.insertInstructionTo(Inst, BB); in insertInstructionTo()
100 ICF.removeInstruction(Inst); in removeInstruction()
280 return !ICF.isDominatedByICFIFromSameBlock(&Inst) && in isGuaranteedToExecute()
/freebsd-14.2/contrib/llvm-project/lld/docs/MachO/
H A Dld64-vs-lld.rst19 - ld64: This turns off ICF (deduplication pass) in the linker.
20 - LLD: This turns off ICF and string merging in the linker.
/freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DGVN.cpp1478 ICF->removeUsersOf(Load); in eliminatePartiallyRedundantLoad()
1527 ICF->isDominatedByICFIFromSameBlock(Load); in PerformLoadPRE()
1767 if (ICF->isDominatedByICFIFromSameBlock(Load)) in performLoopLoadPRE()
1895 ICF->removeUsersOf(Load); in processNonLocalLoad()
2170 ICF->removeUsersOf(L); in processLoad()
2559 ICF->removeUsersOf(I); in processInstruction()
2698 ICF = &ImplicitCFT; in runImpl()
2856 ICF->insertInstructionTo(Instr, Pred); in performScalarPREInsertion()
2961 if (ICF->isDominatedByICFIFromSameBlock(CurInst)) in performScalarPRE()
3114 ICF->clear(); in cleanupGlobalSets()
[all …]
/freebsd-14.2/contrib/llvm-project/lld/docs/
H A DNewLLD.rst289 * ICF
293 ICF is an optimization to reduce output size by merging read-only sections
296 they are merged by ICF. It is known as an effective technique,
305 with the linker's default settings, your program should be safe with ICF.
307 On Unix, your program is generally not guaranteed to be safe with ICF,
309 LLD works fine with ICF for example.
/freebsd-14.2/usr.bin/clang/lld/
H A DMakefile61 SRCS+= ELF/ICF.cpp
/freebsd-14.2/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMustExecute.h136 mutable ImplicitControlFlowTracking ICF; variable
/freebsd-14.2/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/
H A DGVN.h227 ImplicitControlFlowTracking *ICF = nullptr;