| /freebsd/contrib/llvm-project/lld/COFF/ |
| H A D | ICF.cpp | 36 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 D | Chunks.h | 232 friend class ICF; variable
|
| /freebsd/contrib/llvm-project/lld/MachO/ |
| H A D | ICF.cpp | 31 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 D | Options.td | 86 " 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 D | ICF.cpp | 97 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 D | Options.td | 315 defm keep_unique: Eq<"keep-unique", "Do not fold this symbol during ICF">;
|
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | MustExecute.cpp | 70 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 D | ld64-vs-lld.rst | 19 - 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 D | NewLLD.rst | 289 * 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 D | GVN.cpp | 1556 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 D | Makefile | 62 SRCS+= ELF/ICF.cpp
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | MustExecute.h | 137 mutable ImplicitControlFlowTracking ICF; variable
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/ |
| H A D | GVN.h | 254 ImplicitControlFlowTracking *ICF = nullptr;
|