llvm-project/llvm/utils
Marcello Maggioni 051d330314 Avoid creating an immutable map in the Automaton class.
Summary:
In the DFAPacketizer we copy the Transitions array
into a map in order to later access the transitions
based on a "Current State/Action" pair as a key.
This map lives in the Automaton object used by the DFAPacketizer.
It is never changed during the life of the object after
having been created during the creation of the Automaton
itself.

This map creation can make the creation of a DFAPacketizer
quite expensive if the target contains a considerable
amount of transition states.

Considering that TableGen already generates a
sorted list of transitions by State/Action pairs
we could just use that directly in our Automaton
and search entries with std::lower_bound instead of copying
it in a map and paying the execution time and memory cost.

Reviewers: jmolloy, ThomasRaoux

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72682
2020-01-16 18:44:20 -08:00
..
FileCheck [FileCheck] Given multiple -dump-input, prefer most verbose 2019-12-03 14:21:13 -05:00
KillTheDoctor Revert "Use InitLLVM to setup a pretty stack printer" 2019-11-25 21:06:56 -05:00
LLVMVisualizers Clean up MSVC visualization of LLVM pointer types 2019-06-30 21:54:34 +00:00
Misc
PerfectShuffle
Reviewing [find_interesting_reviews.py] Add git blame output cache 2019-12-23 12:08:16 +00:00
TableGen Avoid creating an immutable map in the Automaton class. 2020-01-16 18:44:20 -08:00
Target/ARM
UpdateTestChecks update_test_checks: match CHECK-EMPTY lines for replacement. 2020-01-02 12:17:37 -05:00
benchmark [benchmark] Fix win32 link on case-sensitive fs 2019-07-30 20:47:59 +00:00
bugpoint [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
count
crosstool
docker
emacs [TableGen] Update editor modes for new keywords. 2020-01-14 13:39:00 +00:00
fpcmp
gdb-scripts Add gdb pretty printer for MutableArrayRef, remove ConstArrayRef. 2020-01-09 22:43:45 +01:00
git-svn git-llvm: Add option to push to Github with SSH 2019-12-16 16:51:43 -05:00
gn [gn build] replace llvm_allow_tardy_revision with llvm_append_vc_rev 2020-01-16 19:05:07 -05:00
jedit
kate [TableGen] Update editor modes for new keywords. 2020-01-14 13:39:00 +00:00
lint
lit Bump the trunk major version to 11 2020-01-15 13:38:01 +01:00
llvm-build Write the RequiredLibraries for 'all' in LibraryDependencies.inc in a deterministic order (PR42739) 2019-08-05 13:04:07 +00:00
llvm-lit
llvm-locstats [llvm-locstats] Add the --compare option 2020-01-15 14:35:29 +01:00
not
release Bump the trunk major version to 11 2020-01-15 13:38:01 +01:00
sanitizers
testgen
textmate
unittest CMake: Make most target symbols hidden by default 2020-01-14 19:46:52 -08:00
valgrind
vim [TableGen] Update editor modes for new keywords. 2020-01-14 13:39:00 +00:00
vscode [TableGen] Update editor modes for new keywords. 2020-01-14 13:39:00 +00:00
yaml-bench
DSAclean.py
DSAextract.py
GenLibDeps.pl [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
GetSourceVersion
LLVMBuild.txt
UpdateCMakeLists.pl
abtest.py
add_argument_names.py IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
bisect [utils] Fix incompatibility of bisect[-skip-count] with Python 3 2019-10-04 16:44:18 +00:00
bisect-skip-count [utils] Fix incompatibility of bisect[-skip-count] with Python 3 2019-10-04 16:44:18 +00:00
bugpoint_gisel_reducer.py
check-each-file
chunk-print-before-all.py [Util] Add a helper script for converting -print-before-all output into a file based equivelent 2019-06-19 22:05:47 +00:00
clang-parse-diagnostics-file
codegen-diff
collect_and_build_with_pgo.py
countloc.sh
create_ladder_graph.py
demangle_tree.py
extract_symbols.py Use portable flag with nm in extract_symbols.py 2019-10-23 16:48:22 -04:00
extract_vplan.py
findmisopt
findoptdiff
findsym.pl
getsrcs.sh
indirect_calls.py
lldbDataFormatters.py Add LLDB dataformatters for llvm::StringRef and lldb_private::ConstString 2019-08-16 23:47:57 +00:00
llvm-compilers-check
llvm-gisel-cov.py
llvm-native-gxx
llvm.grm
llvmdo
llvmgrep
prepare-code-coverage-artifact.py svn propset svn:executable on utils/prepare-code-coverage-artifact.py 2019-06-04 23:35:07 +00:00
schedcover.py
shuffle_fuzz.py
shuffle_select_fuzz_tester.py
sort_includes.py
unicode-case-fold.py
update_analyze_test_checks.py [UpdateTestChecks] Change shebang from python to python3 2019-12-03 13:50:07 -08:00
update_cc_test_checks.py Make mangled_names.test and update_cc_test_checks.py work with Python 2. 2020-01-02 13:45:39 -05:00
update_llc_test_checks.py [UpdateTestChecks] Change shebang from python to python3 2019-12-03 13:50:07 -08:00
update_mca_test_checks.py [UpdateTestChecks] Change shebang from python to python3 2019-12-03 13:50:07 -08:00
update_mir_test_checks.py [UpdateTestChecks] Change shebang from python to python3 2019-12-03 13:50:07 -08:00
update_test_checks.py [Utils] Allow update_test_checks to scrub attribute annotations 2019-12-31 01:51:22 -06:00
wciia.py