/llvm-project/llvm/lib/CodeGen/ |
H A D | ShadowStackGCLowering.cpp | 56 /// roots. 63 /// Roots - GC roots in the current function. Each is a pair of the 65 std::vector<std::pair<CallInst *, AllocaInst *>> Roots; 155 for (unsigned I = 0; I != Roots.size(); ++I) { in GetFrameMap() 156 Constant *C = cast<Constant>(Roots[I].first->getArgOperand(1)); in GetFrameMap() 166 ConstantInt::get(Int32Ty, Roots.size(), false), in GetFrameMap() 206 for (const std::pair<CallInst *, AllocaInst *> &Root : Roots) in GetConcreteStackEntryType() 226 // int32_t NumRoots; // Number of roots in stack frame. in doInitialization() 228 // void *Meta[]; // May be absent for roots withou in doInitialization() 66 std::vector<std::pair<CallInst *, AllocaInst *>> Roots; global() member in __anonfc7e73940111::ShadowStackGCLoweringImpl [all...] |
H A D | GCRootLowering.cpp | 31 /// already done so...), and insert initializing stores to roots as a defensive 32 /// measure. Given we're going to report all roots live at all safepoints, we 163 static bool InsertRootInitializers(Function &F, ArrayRef<AllocaInst *> Roots) { in InsertRootInitializers() argument 180 for (AllocaInst *Root : Roots) in InsertRootInitializers() 205 SmallVector<AllocaInst *, 32> Roots; in DoLowering() local 239 Roots.push_back( in DoLowering() 246 if (Roots.size()) in DoLowering() 247 MadeChange |= InsertRootInitializers(F, Roots); in DoLowering() 341 // Find the concrete stack offsets for all roots (stack slots) in runOnMachineFunction()
|
/llvm-project/llvm/include/llvm/Support/ |
H A D | GenericDomTreeConstruction.h | 59 using RootsT = decltype(DomTreeT::Roots); 336 // For postdominators, nodes with no forward successors are trivial roots that in FindRoots() 337 // are always selected as tree roots. Roots with forward successors correspond in FindRoots() 349 // Finds all roots without relaying on the set of roots already stored in the in FindRoots() 351 // We define roots to be some non-redundant set of the CFG nodes in FindRoots() 354 RootsT Roots; in FindRoots() 358 Roots.push_back(GetEntryNode(DT)); in FindRoots() 359 return Roots; in FindRoots() 338 RootsT Roots; FindRoots() local 704 RootsT Roots = FindRoots(DT, BUI); UpdateRootsAfterUpdate() local [all...] |
H A D | GenericDomTree.h | 259 SmallVector<NodeT *, IsPostDom ? 4 : 1> Roots; 282 : Roots(std::move(Arg.Roots)), DomTreeNodes(std::move(Arg.DomTreeNodes)), 292 Roots = std::move(RHS.Roots); 307 /// Iteration over roots. 315 root_iterator root_begin() { return Roots.begin(); } 316 const_root_iterator root_begin() const { return Roots.begin(); } 317 root_iterator root_end() { return Roots.end(); } 318 const_root_iterator root_end() const { return Roots [all...] |
/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | GCMetadata.h | 18 // - Stack offsets for GC roots, as specified by calls to llvm.gcroot 20 // As a refinement, liveness analysis calculates the set of live roots at each 22 // generator, so all roots are assumed live. 88 std::vector<GCRoot> Roots; variable 98 // The bit vector is the more compact representation where >3.2% of roots 119 Roots.push_back(GCRoot(Num, Metadata)); in addStackRoot() 124 return Roots.erase(position); in removeStackRoot() 143 /// roots_begin/roots_end - Iterators for all roots in the function. 144 roots_iterator roots_begin() { return Roots.begin(); } in roots_begin() 145 roots_iterator roots_end() { return Roots.end(); } in roots_end() [all …]
|
/llvm-project/llvm/include/llvm/XRay/ |
H A D | Profile.h | 90 Roots(std::move(O.Roots)), PathIDMap(std::move(O.PathIDMap)), in Profile() 96 Roots = std::move(O.Roots); 109 swap(L.Roots, R.Roots); in swap() 130 // List of call stack roots. 131 SmallVector<TrieNode *, 4> Roots; variable
|
/llvm-project/lldb/source/Target/ |
H A D | TraceDumper.cpp | 705 /// \param[in,out] roots 706 /// The object owning the roots. It might be modified if a new root needs to 714 std::vector<TraceDumper::FunctionCallUP> &roots) { in AppendReturnedInstructionToFunctionCallForest() argument 737 new_root->SetUntracedPrefixSegment(std::move(roots.back())); in AppendReturnedInstructionToFunctionCallForest() 738 roots.pop_back(); in AppendReturnedInstructionToFunctionCallForest() 739 // We update the roots container to point to the new root in AppendReturnedInstructionToFunctionCallForest() 740 roots.emplace_back(std::move(new_root)); in AppendReturnedInstructionToFunctionCallForest() 741 return *roots.back(); in AppendReturnedInstructionToFunctionCallForest() 763 /// \param[in,out] roots 764 /// The object owning the roots 774 AppendInstructionToFunctionCallForest(const ExecutionContext & exe_ctx,TraceDumper::FunctionCall * last_function_call,const TraceDumper::SymbolInfo & prev_symbol_info,const TraceDumper::SymbolInfo & symbol_info,const TraceCursorSP & cursor_sp,std::vector<TraceDumper::FunctionCallUP> & roots) AppendInstructionToFunctionCallForest() argument 861 AppendErrorToFunctionCallForest(TraceDumper::FunctionCall * last_function_call,TraceCursorSP & cursor_sp,std::vector<TraceDumper::FunctionCallUP> & roots) AppendErrorToFunctionCallForest() argument 877 std::vector<TraceDumper::FunctionCallUP> roots; CreateFunctionCallForest() local [all...] |
/llvm-project/llvm/lib/Support/ |
H A D | DAGDeltaAlgorithm.cpp | 63 std::vector<change_ty> Roots; 190 // Compute the roots. in DAGDeltaAlgorithmImpl() 193 Roots.push_back(Change); in DAGDeltaAlgorithmImpl() 196 std::vector<change_ty> Worklist(Roots.begin(), Roots.end()); in DAGDeltaAlgorithmImpl() 242 llvm::errs() << "Roots: ["; in DAGDeltaAlgorithmImpl() 243 for (std::vector<change_ty>::const_iterator it = Roots.begin(), in DAGDeltaAlgorithmImpl() 244 ie = Roots.end(); in DAGDeltaAlgorithmImpl() 246 if (it != Roots.begin()) in DAGDeltaAlgorithmImpl() 301 // The current set of changes we are minimizing, starting at the roots 64 std::vector<change_ty> Roots; global() member in __anon5dbb262c0111::DAGDeltaAlgorithmImpl [all...] |
/llvm-project/llvm/include/llvm/Analysis/ |
H A D | DominanceFrontier.h | 51 // Postdominators can have multiple roots. 52 SmallVector<BlockT *, IsPostDom ? 4 : 1> Roots; 61 const SmallVectorImpl<BlockT *> &getRoots() const { return Roots; } 64 assert(Roots.size() == 1 && "Should always have entry node!"); in getRoot() 65 return Roots[0]; in getRoot() 116 this->Roots = {DT.getRoot()}; 117 calculate(DT, DT[this->Roots[0]]); 53 SmallVector<BlockT *, IsPostDom ? 4 : 1> Roots; global() variable
|
/llvm-project/llvm/unittests/ProfileData/ |
H A D | PGOCtxProfReaderWriterTest.cpp | 25 std::map<GUID, const ContextNode *> Roots; 46 Roots.insert({1, Root1}); in SetUp() 62 Roots.insert({3, Root2}); in SetUp() 65 const std::map<GUID, const ContextNode *> &roots() const { return Roots; } 101 for (auto &[_, R] : roots()) in TEST_F() 127 EXPECT_EQ(Ctxes.size(), roots().size()); in TEST_F() 129 for (auto &[G, R] : roots()) in TEST_F() 24 std::map<GUID, const ContextNode *> Roots; global() member in PGOCtxProfRWTest 64 const std::map<GUID, const ContextNode *> &roots() const { return Roots; } roots() function in PGOCtxProfRWTest
|
/llvm-project/compiler-rt/lib/xray/ |
H A D | xray_function_call_trie.h | 319 RootArray Roots; variable 327 Roots(*A.RootAllocator), in FunctionCallTrie() 338 Roots(std::move(O.Roots)), in FunctionCallTrie() 345 Roots = std::move(O.Roots); 372 if (Roots.AppendEmplace(NewRoot) == nullptr) { in enterFunction() 378 Roots.trim(1); in enterFunction() 461 const RootArray &getRoots() const XRAY_NEVER_INSTRUMENT { return Roots; } in getRoots() 466 // roots, and while doing so recreating the traversal in the provided 501 if (UNLIKELY(O.Roots.Append(NewRoot) == nullptr)) in deepCopyInto() 532 // traversing the current trie's roots and updating (i.e. merging) the data in [all …]
|
/llvm-project/llvm/unittests/Support/ |
H A D | VirtualFileSystemTest.cpp | 928 " 'roots': [\n" in TEST() 1613 "{ 'roots': [\n" in TEST_F() 1727 getFromYAMLString("{ 'roots': [\n" in TEST_F() 1772 getFromYAMLString("{ 'roots': [\n" in TEST_F() 1817 " 'roots': [\n" in TEST_F() 1858 " 'roots': [\n" in TEST_F() 1924 " 'roots': [\n" in TEST_F() 1965 " 'roots': [\n" in TEST_F() 1987 " 'roots': [\n" in TEST_F() 2006 " 'roots' in TEST_F() [all...] |
/llvm-project/mlir/lib/Conversion/PDLToPDLInterp/ |
H A D | RootOrdering.h | 9 // This file contains definition for a cost graph over candidate roots and 11 // these roots. Each edge in this graph indicates that the target root can be 34 /// roots via a chain of operations. The cost of an edge is the smallest number 38 /// traversals. Consider the following pattern with 3 roots op3, op4, and op5: 57 /// roots do not intersect. It is easy to see that the optimal root for this 73 /// A directed graph representing the cost of ordering the roots in the
|
H A D | PredicateTree.cpp | 388 /// Given a pattern, determines the set of roots present in this pattern. 392 // to other operations. These are not roots by default. in detectRoots() 407 SmallVector<Value> roots; in detectRoots() local 410 roots.push_back(operationOp); in detectRoots() 412 return roots; in detectRoots() 415 /// Given a list of candidate roots, builds the cost graph for connecting them. 418 /// the candidate roots based on the common connector values, taking the one 422 static void buildCostGraph(ArrayRef<Value> roots, RootOrderingGraph &graph, in buildCostGraph() argument 447 // Map from candidate connector values to their roots and depths. Using a in buildCostGraph() 452 for (Value root : roots) { in buildCostGraph() 618 SmallVector<Value> roots = detectRoots(pattern); buildPredicateList() local [all...] |
/llvm-project/llvm/test/Transforms/InstCombine/ |
H A D | infinite-loop-postdom.ll | 161 ; CHECK-POSTDOM-NEXT: Roots: %B1 171 ; CHECK-POSTDOM-NEXT: Roots: %B1 181 ; CHECK-POSTDOM-NEXT: Roots: %B2 191 ; CHECK-POSTDOM-NEXT: Roots: %B2 206 ; CHECK-POSTDOM-NEXT:Roots: %EXIT %RU1_B1 %RU2_B1 221 ; CHECK-POSTDOM-NEXT:Roots: %EXIT %RU1_B1 %RU2_B1
|
/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | Float2Int.cpp | 87 // Find the roots - instructions that convert from the FP domain to 103 Roots.insert(&I); in findRoots() 108 Roots.insert(&I); in findRoots() 139 // the roots. Populate "SeenInsts" with interesting 149 std::deque<Instruction*> Worklist(Roots.begin(), Roots.end()); 331 // Don't count the roots, as they terminate the graphs. in validateAndTransform() 332 if (!Roots.contains(I)) { in validateAndTransform() 468 if (Roots.count(I)) in convert() 487 Roots in runImpl() [all...] |
/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ |
H A D | ExplodedGraph.h | 310 /// The roots of the simulation graph. Usually there will be only 313 /// different roots reach the same state at the same program location. 314 NodeVector Roots; variable 369 /// addRoot - Add an untyped node to the set of roots. 371 Roots.push_back(V); in addRoot() 381 unsigned num_roots() const { return Roots.size(); } in num_roots() 403 roots_iterator roots_begin() { return Roots.begin(); } in roots_begin() 405 roots_iterator roots_end() { return Roots.end(); } in roots_end() 407 const_roots_iterator roots_begin() const { return Roots.begin(); } in roots_begin() 409 const_roots_iterator roots_end() const { return Roots.end(); } in roots_end()
|
/llvm-project/llvm/docs/ |
H A D | GarbageCollection.rst | 59 You will need to identify roots (i.e. references to heap objects your collector 173 * Registration of global roots with the runtime. 225 Identifying GC roots on the stack 406 stack maps, this algorithm carefully maintains a linked list of stack roots 430 roots, and for this it needs to integrate with the shadow stack. Luckily, doing 442 int32_t NumRoots; //< Number of roots in stack frame. 452 void *Roots[0]; //< Stack roots (in-place array). 473 // For roots [0, NumMeta), the metadata pointer is in the FrameMap. 475 Visitor(&R->Roots[i], R->Map->Meta[i]); 477 // For roots [NumMeta, NumRoots), the metadata pointer is null. [all …]
|
/llvm-project/polly/lib/Support/ |
H A D | VirtualInstruction.cpp | 174 // roots in order to be marked as used. in isRoot() 205 // be roots. in addInstructionRoots() 225 /// If false, only writes for SCoP-escaping values are roots. This 239 // Values are roots if they are escaping. in addAccessRoots() 249 // phi writes are only roots if we are not visiting the statement in addAccessRoots() 256 /// Determine all instruction and access roots. 272 /// roots. 273 /// @param UsedAccs[out] Receives all reachable accesses, including the roots.
|
/llvm-project/llvm/test/CodeGen/ARM/ |
H A D | 2010-04-15-ScavengerDebugValue.ll | 19 …", directory: "/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gc… 20 …", directory: "/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gc… 25 …", directory: "/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gc…
|
/llvm-project/openmp/runtime/test/affinity/ |
H A D | root-threads-affinity.c | 170 pthread_t *roots = (pthread_t*)malloc(sizeof(pthread_t) * num_roots); in main() local 182 pthread_create(roots + i, NULL, thread_func, root_ids + i); in main() 191 pthread_join(roots[i], &status); in main() 193 free(roots); in main()
|
/llvm-project/llvm/utils/TableGen/Common/ |
H A D | CodeGenRegisters.h | 545 const CodeGenRegister *Roots[2]; 550 // A register unit is artificial if at least one of its roots is 555 Roots[0] = Roots[1] = nullptr; 559 assert(!(Roots[1] && !Roots[0]) && "Invalid roots array"); in getRoots() 560 return ArrayRef(Roots, !!Roots[0] + !!Roots[ in getRoots() 543 const CodeGenRegister *Roots[2]; global() member [all...] |
/llvm-project/clang/test/VFS/ |
H A D | relative-path-errors.c | 5 // RUN: echo '{"roots": [],"version": 0}' > %t.yaml 7 // RUN: echo '{"version": 0,"roots":[{"type":"directory","name":"%/t","contents":[{"type":"file","n…
|
/llvm-project/llvm/tools/llvm-xray/ |
H A D | xray-stacks.cpp | 322 // We maintain pointers to the roots of the tries we see. 323 DenseMap<uint32_t, RootVector> Roots; member in StackTrie 338 Roots[ThreadId].push_back(Node); in createTrieNode() 343 const auto &RootsByThread = Roots[ThreadId]; in findRootNode() 447 bool isEmpty() const { return Roots.empty(); } in isEmpty() 481 for (const auto &iter : Roots) { in printPerThread() 492 for (const auto &iter : Roots) in printAllPerThread() 503 using RootsType = decltype(Roots.begin())::value_type; in printIgnoringThreads() 507 make_range(map_iterator(Roots.begin(), MapValueFn), in printIgnoringThreads() 508 map_iterator(Roots.end(), MapValueFn))) { in printIgnoringThreads() [all …]
|
/llvm-project/lld/MachO/ |
H A D | MarkLive.cpp | 35 // Type-erased interface to MarkLiveImpl. Used for adding roots to the liveness 148 // Mark things reachable from GC roots as live. in markTransitively() 210 // Add GC roots. in markLive() 233 // roots: in markLive() 239 // all external functions are GC roots. in markLive()
|