Home
last modified time | relevance | path

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

/freebsd/contrib/llvm-project/lld/COFF/
H A DICF.cpp36 class ICF { class
38 ICF(COFFLinkerContext &c) : ctx(c){}; in ICF() function in lld::coff::ICF
76 bool ICF::isEligible(SectionChunk *c) { in isEligible()
104 void ICF::segregate(size_t begin, size_t end, bool constant) { in segregate()
130 bool ICF::assocEquals(const SectionChunk *a, const SectionChunk *b) { in assocEquals()
148 bool ICF::equalsConstant(const SectionChunk *a, const SectionChunk *b) { in equalsConstant()
181 bool ICF::equalsVariable(const SectionChunk *a, const SectionChunk *b) { in equalsVariable()
208 size_t ICF::findBoundary(size_t begin, size_t end) { in findBoundary()
215 void ICF::forEachClassRange(size_t begin, size_t end, in forEachClassRange()
225 void ICF::forEachClass(std::function<void(size_t, size_t)> fn) { in forEachClass()
[all …]
H A DChunks.h232 friend class ICF; variable
/freebsd/contrib/llvm-project/lld/MachO/
H A DICF.cpp31 class ICF { class
33 ICF(std::vector<ConcatInputSection *> &inputs);
36 using EqualsFn = bool (ICF::*)(const ConcatInputSection *,
60 ICF::ICF(std::vector<ConcatInputSection *> &inputs) { in ICF() function in ICF
96 bool ICF::equalsConstant(const ConcatInputSection *ia, in equalsConstant()
188 bool ICF::equalsVariable(const ConcatInputSection *ia, in equalsVariable()
248 size_t ICF::findBoundary(size_t begin, size_t end) { in findBoundary()
257 void ICF::forEachClassRange(size_t begin, size_t end, in forEachClassRange()
297 void ICF::applySafeThunksToRange(size_t begin, size_t end) { in applySafeThunksToRange()
349 void ICF::forEachClass(llvm::function_ref<void(size_t, size_t)> func) { in forEachClass()
[all …]
H A DOptions.td86 " none - Disable ICF\n"
93 …HelpText<"Generate STABS entries for symbols folded by ICF. These entries can then be used by dsym…
/freebsd/contrib/llvm-project/lld/ELF/
H A DICF.cpp97 template <class ELFT> class ICF { class
99 ICF(Ctx &ctx) : ctx(ctx) {} in ICF() function in __anon178663a30111::ICF
199 void ICF<ELFT>::segregate(size_t begin, size_t end, uint32_t eqClassBase, in segregate()
239 bool ICF<ELFT>::constantEq(const InputSection *secA, Relocs<RelTy> ra, in constantEq()
316 bool ICF<ELFT>::equalsConstant(const InputSection *a, const InputSection *b) { in equalsConstant()
339 bool ICF<ELFT>::variableEq(const InputSection *secA, Relocs<RelTy> ra, in variableEq()
377 bool ICF<ELFT>::equalsVariable(const InputSection *a, const InputSection *b) { in equalsVariable()
387 template <class ELFT> size_t ICF<ELFT>::findBoundary(size_t begin, size_t end) { in findBoundary()
401 void ICF<ELFT>::forEachClassRange(size_t begin, size_t end, in forEachClassRange()
413 void ICF<ELFT>::parallelForEachClass( in parallelForEachClass()
[all …]
H A DOptions.td315 defm keep_unique: Eq<"keep-unique", "Do not fold this symbol during ICF">;
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DMustExecute.cpp70 return ICF.hasICF(BB); in blockMayThrow()
79 ICF.clear(); in computeLoopSafetyInfo()
84 if (ICF.hasICF(&*BB)) { in computeLoopSafetyInfo()
93 ICF.insertInstructionTo(Inst, BB); in insertInstructionTo()
98 ICF.removeInstruction(Inst); in removeInstruction()
288 return !ICF.isDominatedByICFIFromSameBlock(&Inst) && in isGuaranteedToExecute()
/freebsd/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/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/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DGVN.cpp1556 if (Dep.isNonLocal() && !ICF->isDominatedByICFIFromSameBlock(&Inst)) in findLoadToHoistIntoPred()
1622 ICF->insertInstructionTo(NewLoad, UnavailableBlock); in eliminatePartiallyRedundantLoad()
1637 ICF->removeUsersOf(Load); in eliminatePartiallyRedundantLoad()
1685 ICF->isDominatedByICFIFromSameBlock(Load); in PerformLoadPRE()
1704 MustEnsureSafetyOfSpeculativeExecution || ICF->hasICF(TmpBB); in PerformLoadPRE()
1926 if (ICF->isDominatedByICFIFromSameBlock(Load)) in performLoopLoadPRE()
2054 ICF->removeUsersOf(Load); in processNonLocalLoad()
2276 ICF->removeUsersOf(L); in processLoad()
2697 ICF->removeUsersOf(I); in processInstruction()
2835 ICF = &ImplicitCFT; in runImpl()
[all …]
/freebsd/usr.bin/clang/lld/
H A DMakefile62 SRCS+= ELF/ICF.cpp
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMustExecute.h137 mutable ImplicitControlFlowTracking ICF; variable
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/
H A DGVN.h254 ImplicitControlFlowTracking *ICF = nullptr;