/freebsd/contrib/llvm-project/lld/ELF/ |
H A D | MarkLive.cpp | 1 //===- MarkLive.cpp -------------------------------------------------------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 9 // This file implements --gc-sections, which is a feature to remove unused 11 // from known GC-root symbols or sections. Naturally the feature is 12 // implemented as a mark-sweep garbage collector. 14 // Here's how it works. Each InputSectionBase has a "Live" bit. The bit is off 15 // by default. Starting with GC-root symbols or sections, markLive function 16 // defined in this file visits all reachable sections to set their Live 17 // bits. Writer will then ignore sections whose Live bits are off, so that [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | LiveVariables.h | 1 //===-- llvm/CodeGen/LiveVariables.h - Live Variable Analysis ---*- C++ -*-===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 16 // This class computes live variables using a sparse implementation based on 17 // the machine code SSA form. This class computes live variable information for 18 // each virtual and _register allocatable_ physical register in a function. It 19 // uses the dominance properties of SSA form to efficiently compute live 21 // live within a single basic block (allowing it to do a single local analysis 22 // to resolve physical register lifetimes in each basic block). If a physical 26 //===----------------------------------------------------------------------===// [all …]
|
H A D | LiveIntervals.h | 1 //===- LiveIntervals.h - Live Interval Analysis -----------------*- C++ -*-===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 10 /// numbering of each the machine instructions (in this implemention depth-first 11 /// order) an interval [i, j) is said to be a live interval for register v if 12 /// there is no instruction with number j' > j such that v is live at j' and 13 /// there is no instruction with number i' < i such that v is live at i'. In 17 //===----------------------------------------------------------------------===// 69 /// Live interval pointers for all the virtual registers. 76 /// This vector is parallel to RegMaskSlots, it holds a pointer to the [all …]
|
H A D | FunctionLoweringInfo.h | 1 //===- FunctionLoweringInfo.h - Lower functions from LLVM IR ---*- C++ -*--===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 12 //===----------------------------------------------------------------------===// 53 //===--------------------------------------------------------------------===// 54 /// FunctionLoweringInfo - This contains information that is global to a 55 /// function that is used when lowering a region of the function. 65 /// CanLowerReturn - true iff the function's return value can be lowered to 72 /// DemoteRegister - if CanLowerReturn is false, DemoteRegister is a vreg 73 /// allocated to hold a pointer to the hidden sret parameter. [all …]
|
H A D | MachineSSAUpdater.h | 1 //===- MachineSSAUpdater.h - Unstructured SSA Update Tool -------*- C++ -*-===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 11 //===----------------------------------------------------------------------===// 31 /// MachineSSAUpdater - This class updates SSA form for a set of virtual 33 /// or another unstructured transformation wants to rewrite a set of uses of one 34 /// vreg with uses of a set of vregs. 39 /// AvailableVals - This keeps track of which value to use on a per-block 40 /// basis. When we insert PHI nodes, we keep track of them here. 47 /// InsertedPHIs - If this is non-null, the MachineSSAUpdater adds all PHI [all …]
|
H A D | LiveRangeEdit.h | 1 //===- LiveRangeEdit.h - Basic tools for split and spill --------*- C++ -*-===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 9 // The LiveRangeEdit class represents changes done to a virtual register when it 12 // The parent register is never changed. Instead, a number of new virtual 15 //===----------------------------------------------------------------------===// 51 /// Called immediately before erasing a dead machine instruction. 54 /// Called when a virtual register is no longer used. Return false to defer 58 /// Called before shrinking the live range of a virtual register. 61 /// Called after cloning a virtual register. [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | LiveRangeEdit.cpp | 1 //===-- LiveRangeEdit.cpp - Basic tools for editing a register live range -===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 9 // The LiveRangeEdit class represents changes done to a virtual register when it 11 //===----------------------------------------------------------------------===// 29 STATISTIC(NumFracRanges, "Number of live ranges fractured by DCE"); 38 VRM->setIsSplitFromReg(VReg, VRM->getOriginal(OldReg)); in createEmptyIntervalFrom() 41 if (Parent && !Parent->isSpillable()) in createEmptyIntervalFrom() 45 // the main range here---it will be constructed later after the subranges in createEmptyIntervalFrom() 58 VRM->setIsSplitFromReg(VReg, VRM->getOriginal(OldReg)); in createFrom() [all …]
|
H A D | RegAllocEvictionAdvisor.h | 1 //===- RegAllocEvictionAdvisor.h - Interference resolution ------*- C++ -*-===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 16 #include "llvm/Config/llvm-config.h" 33 // Live ranges pass through a number of stages as we try to allocate them. 34 // Some of the stages may also create new live ranges: 36 // - Region splitting. 37 // - Per-block splitting. 38 // - Local splitting. 39 // - Spilling. [all …]
|
H A D | CriticalAntiDepBreaker.cpp | 1 //===- CriticalAntiDepBreaker.cpp - Anti-dep breaker ----------------------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 10 // implements register anti-dependence breaking along a blocks 11 // critical path during post-RA scheduler. 13 //===----------------------------------------------------------------------===// 39 #define DEBUG_TYPE "post-RA-sched" 45 Classes(TRI->getNumRegs(), nullptr), KillIndices(TRI->getNumRegs(), 0), in CriticalAntiDepBreaker() 46 DefIndices(TRI->getNumRegs(), 0), KeepRegs(TRI->getNumRegs(), false) {} in CriticalAntiDepBreaker() 51 const unsigned BBSize = BB->size(); in StartBlock() [all …]
|
H A D | LiveIntervals.cpp | 1 //===- LiveIntervals.cpp - Live Interval Analysis -------------------------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 11 /// basic blocks of the function in DFS order and computes live intervals for 14 //===----------------------------------------------------------------------===// 39 #include "llvm/Config/llvm-config.h" 72 OS << "Live intervals for machine function: " << MF.getName() << ":\n"; in run() 80 "Live Interval Analysis", false, false) 84 "Live Interval Analysis", false, false) in INITIALIZE_PASS_DEPENDENCY() 96 "precompute-phys-liveness", cl::Hidden, [all …]
|
H A D | AggressiveAntiDepBreaker.h | 1 //==- llvm/CodeGen/AggressiveAntiDepBreaker.h - Anti-Dep Support -*- C++ -*-==// 5 // SPDX-License-Identifier: Apache-2. [all...] |
H A D | LiveVariables.cpp | 1 //===-- LiveVariables.cpp - Live Variable Analysis for Machine Code -------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 16 // This class computes live variables using a sparse implementation based on 17 // the machine code SSA form. This class computes live variable information for 18 // each virtual and _register allocatable_ physical register in a function. It 19 // uses the dominance properties of SSA form to efficiently compute live 21 // live within a single basic block (allowing it to do a single local analysis 22 // to resolve physical register lifetimes in each basic block). If a physical 26 //===----------------------------------------------------------------------===// [all …]
|
H A D | RegAllocGreedy.h | 1 //==- RegAllocGreedy.h ------- greedy register allocator ----------*-C++-*-==// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 10 //===----------------------------------------------------------------------===// 66 // RegInfo - Keep additional information about each live range. 70 // Cascade - Eviction loop prevention. See 191 // Enum CutOffStage to keep a track whether the register allocation failed 198 // lcr-max-depth cutoff encountered 201 // lcr-max-interf cutoff encountered 215 /// Cached per-block interference maps [all …]
|
/freebsd/contrib/llvm-project/lld/COFF/ |
H A D | MarkLive.cpp | 1 //===- MarkLive.cpp -------------------------------------------------------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 19 // Set live bit on for each reachable chunk. Unmarked (unreachable) 23 llvm::TimeTraceScope timeScope("Mark live"); in markLive() 26 // We build up a worklist of sections which have been marked as live. We only in markLive() 31 // COMDAT section chunks are dead by default. Add non-COMDAT chunks. Do not in markLive() 32 // traverse DWARF sections. They are live, but they should not keep other in markLive() 36 if (sc->live && !sc->isDWARF()) in markLive() 40 if (c->live) in markLive() [all …]
|
/freebsd/contrib/llvm-project/llvm/tools/llvm-objdump/ |
H A D | SourcePrinter.h | 1 //===-- SourcePrinter.h - source interleaving utilities --------*- C++ -*-===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 25 /// Stores a single expression representing the location of a source-level 44 // Information we want to track about one column in which we are printing a 45 // variable live range. 57 // All live variables we know about in the object/image file. 70 // Get the column number (in characters) at which the first live variable 74 // Indent to the first live-range column to the right of the currently 76 // TODO: formatted_raw_ostream uses "column" to mean a number of characters [all …]
|
H A D | SourcePrinter.cpp | 1 //===-- SourcePrinter.cpp - source interleaving utilities ------- [all...] |
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | SSAUpdater.h | 1 //===- SSAUpdater.h - Unstructured SSA Update Tool --------------*- C++ -*-===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 11 //===----------------------------------------------------------------------===// 34 /// Helper class for SSA formation on a set of values defined in 38 /// transformation wants to rewrite a set of uses of one value with uses of a 44 /// This keeps track of which value to use on a per-block basis. When we 45 /// insert PHI nodes, we keep track of them here. 51 /// PHI nodes are given a name based on ProtoName. 54 /// If this is non-null, the SSAUpdater adds all PHI nodes that it creates to [all …]
|
/freebsd/contrib/file/ |
H A D | TODO | 1 Most TODOs live in the TODO section of doc/file.man (i.e. file(1)). 3 file, not here. More speculative material can live here. 8 --- 10 reimplement the apprentice and non-pattern magic methods in Python, 11 and compile the magic patterns to a giant regex (or something similar; 12 maybe using Ragel (http://www.complang.org/ragel/)) so that only a 15 hard-wired routines). In this regard, note that hplip, which is 16 BSD-licensed, has a magic reimplementation in Python. 17 --- 19 --- [all …]
|
/freebsd/contrib/llvm-project/lld/docs/ELF/ |
H A D | start-stop-gc.rst | 1 -z start-stop-gc 4 If your ``-Wl,--gc-sections`` build fail with a linker error like this: 8 …mbol needs to be retained under --gc-sections properly; consider -z nostart-stop-gc (see https://l… 11 suffice under ``--gc-sections``. 14 symbols. In October 2015, GNU ld switched behavior and made a ``__start_meta`` 15 reference from a live section retain all ``meta`` input sections. This 20 GNU ld 2.37 added ``-z start-stop-gc`` to restore the traditional behavior 21 ld.lld 13.0.0 defaults to ``-z start-stop-gc`` and supports ``-z nostart-stop-gc`` 24 The Apple ld64 linker has a similar ``section$start`` feature and always 25 allowed GC (like ``-z start-stop-gc``). [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | PromoteMemoryToRegister.cpp | 1 //===- PromoteMemoryToRegister.cpp - Convert allocas to registers ---------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 12 // traversing the function in depth-first order to rewrite loads and stores as 15 //===----------------------------------------------------------------------===// 61 STATISTIC(NumSingleStore, "Number of alloca's promoted with a single store"); 66 // Only allow direct and non-volatile loads and stores... in isAllocaPromotable() 67 for (const User *U : AI->users()) { in isAllocaPromotable() 70 // not have any meaning for a local alloca. in isAllocaPromotable() 71 if (LI->isVolatile() || LI->getType() != AI->getAllocatedType()) in isAllocaPromotable() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VPlanValue.h | 1 //===- VPlanValue.h - Represent Values in Vectorizer Plan -----------------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 18 //===----------------------------------------------------------------------===// 41 // flow into, within and out of the VPlan. VPValues can stand for live-ins 43 // and live-outs which the VPlan will need to fix accordingly. 69 // the front-end and back-end of VPlan so that the middle-end is as 72 // for multiple underlying IRs (Polly?) by providing a new VPlan front-end, 73 // back-end and analysis information for the new IR. 82 VPValueSC, /// A generic VPValue, like live-in values or defined by a recipe [all …]
|
/freebsd/usr.sbin/nscd/ |
H A D | nscd.conf.5 | 15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 46 Each line specifies either an attribute and a 48 or an attribute, a 50 and a 62 (for example, if some third-party 64 .Bl -tag -width indent 69 .It Va enable-cache Oo Ar cachename Oc Op Cm yes | no 72 .It Va positive-time-to-live Oo Ar cachename Oc Op Ar value 73 Sets the TTL (time-to-live) for the specified cache in seconds. 77 .It Va positive-policy Oo Ar cachename Oc Op Cm fifo | lru | lfu [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/ |
H A D | DeadArgumentElimination.cpp | 1 //===- DeadArgumentElimination.cpp - Eliminate dead arguments -------------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 12 // pass also deletes dead return values in a similar way. 14 // This pass is often useful as a cleanup pass to run after aggressive 15 // interprocedural passes, which add possibly-dead arguments or return values. 17 //===----------------------------------------------------------------------===// 67 // DAH uses this to specify a different ID. 91 return CB.getCalledFunction() && !CB.getCalledFunction()->isDeclaration(); in isMustTailCalleeAnalyzable() 126 /// If this is an function that takes a ... list, and if llvm.vastart is never [all …]
|
/freebsd/tests/ |
H A D | README | 6 kyua test -k /usr/tests/Kyuafile 24 discoverability of tests. We want a mapping such as: 26 /usr/src/bin/cp/ -> /usr/tests/bin/cp/ 27 /usr/src/lib/libc/ -> /usr/tests/lib/libc/ 28 /usr/src/usr.bin/cut/ -> /usr/tests/usr.bin/cut/ 33 src/lib/libcrypt/ library live in src/lib/libcrypt/tests/. The tests/ 38 a single test suite definition. 40 * The src/tests/ hierarchy also includes cross-functional test programs: 41 i.e. test programs that cover more than a single utility or library 45 tools or libraries live next to the source code. [all …]
|
/freebsd/contrib/llvm-project/lld/MachO/ |
H A D | MarkLive.cpp | 1 //===- MarkLive.cpp -------------------------------------------------------===// 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 //===----------------------------------------------------------------------===// 19 #include "mach-o/compact_unwind_encoding.h" 28 // Keep track of the entry that caused us to mark `isec` as live. 35 // Type-erased interface to MarkLiveImpl. Used for adding roots to the liveness 47 // -why_live is a rarely used option, so we don't want support for that flag 48 // to slow down the main -dead_strip code path. As such, we employ templates 66 // We build up a worklist of sections which have been marked as live. We 78 if (isec->isLive(off)) in enqueue() [all …]
|