llvm-capstone/llvm
Max Kazantsev 1202d280c6 [SCEV][NFC] Reduce memory footprint & compile time via DFS refactoring
Current implementations of DFS in SCEV check unique-visited of traversed
values on pop, and not on push. As result, the same value may be pushed
multiple times just to be thrown away when popped. These operations are
meaningless and only waste time and increase memory footprint of the
worklist.

This patch reworks the DFS strategy to check uniqueness before push.
Should be NFC.

Differential Revision: https://reviews.llvm.org/D111774
Reviewed By: nikic, reames
2021-10-15 10:19:15 +07:00
..
benchmarks
bindings
cmake [CMake] Add optional libCURL dependency to llvm build configuration 2021-10-13 10:58:10 -07:00
docs docs: Document workaround for arcanist failures 2021-10-14 03:25:36 +00:00
examples [examples] Fix LLJITWithRemoteDebugging example after 4fcc0ac15e. 2021-10-13 18:19:53 -07:00
include [TableGen][PGO] Disable profile instrumentation for printInstruction function 2021-10-14 13:41:55 -07:00
lib [SCEV][NFC] Reduce memory footprint & compile time via DFS refactoring 2021-10-15 10:19:15 +07:00
projects
resources
runtimes [runtimes] Ensure required deps for tests targets are actually built 2021-09-29 14:41:33 -07:00
test Fix getInlineCost with ComputeFullInlineCost enabled 2021-10-14 17:41:41 -07:00
tools [llvm-mca][timeline] Indicate output was stopped due to cycle limit. 2021-10-14 11:10:09 -07:00
unittests [DebugInfo][InstrRef] Place variable-values PHI using LLVM utilities 2021-10-14 14:43:43 +01:00
utils [TableGen][PGO] Disable profile instrumentation for printInstruction function 2021-10-14 13:41:55 -07:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [mlgo][aot] requrie the model is autogenerated for test determinism 2021-10-13 14:02:41 -07:00
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
README.txt
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.