llvm-project/llvm/utils
Jessica Clarke c1048e3eb9 [TableGen][SelectionDAG] Use ComplexPattern type for non-leaf nodes
When used as a non-leaf node, TableGen does not currently use the type
of a ComplexPattern for type inference, which also means it does not
check it doesn't conflict with the use. This differs from when used as a
leaf value, where the type is used for inference. This addresses that
discrepancy. The test case is not representative of most real-world uses
but is sufficient to demonstrate inference is working.

Some of these uses also make use of ValueTypeByHwMode rather than
SimpleValueType and so the existing type inference is extended to
support that alongside the new type inference.

There are also currently various cases of using ComplexPatterns with an
untyped type, but only for non-leaf nodes. For compatibility this is
permitted, and uses the old behaviour of not inferring for non-leaf
nodes, but the existing logic is still used for leaf values. This
remaining discrepancy should eventually be eliminated, either by
removing all such uses of untyped so the special case goes away (I
imagine Any, or a more specific type in certain cases, would be
perfectly sufficient), or by copying it to the leaf value case so
they're consistent with one another if this is something that does need
to keep being supported.

All non-experimental targets have been verified to produce bit-for-bit
identical TableGen output with this change applied.

Reviewed By: kparzysz

Differential Revision: https://reviews.llvm.org/D109035
2021-12-03 07:04:59 +00:00
..
FileCheck
KillTheDoctor
LLVMVisualizers
Misc
PerfectShuffle
Reviewing [llvm][fix] Inclusive language: replace master with main in find_interesting_reviews.py 2021-11-15 14:06:30 -06:00
TableGen [TableGen][SelectionDAG] Use ComplexPattern type for non-leaf nodes 2021-12-03 07:04:59 +00:00
Target/ARM
UpdateTestChecks Add a breadcrumb comment to make debugging a user error when using ./utils/update_analyze_test_checks.py easier. 2021-11-18 09:07:19 -08:00
benchmark Revert "Reland "[benchmarks] Move libcxx's fork of google/benchmark and llvm/utils'""" 2021-11-16 16:35:06 -08:00
bugpoint
count
crosstool
docker Remove unused parallel-libs project 2021-10-21 14:34:39 -07:00
emacs
fpcmp
gdb-scripts Add some support for pretty printing Twines containing std::string in gdb 2021-11-05 12:56:40 -07:00
git
gn [gn build] Port aba8f320cc 2021-12-03 02:16:17 +00:00
jedit
kate
lint
lit [LIT] Add win32 PLATFORM env var to test config 2021-11-04 17:42:43 +05:00
llvm-lit
llvm-locstats [llvm-locstats] Report a warning if overflow was detected by llvm-dwarfdump 2021-10-27 14:35:29 +02:00
not
reduce_pipeline_test [NPM] Fix bug in llvm/utils/reduce_pipeline.py 2021-11-05 08:41:39 +01:00
release utils/release: Add script for building release documentation 2021-10-27 12:56:55 -07:00
rsp_bisect_test
sanitizers [llvm][ubsan] Inclusive language: replace use of blacklist HandleLLVMOptions.cmake but use old option name 2021-11-25 10:23:14 -05:00
testgen
textmate
unittest
valgrind
vim
vscode
yaml-bench
DSAclean.py
DSAextract.py
GenLibDeps.pl
GetSourceVersion
UpdateCMakeLists.pl
abtest.py
add_argument_names.py
bisect
bisect-skip-count
bugpoint_gisel_reducer.py
check-each-file
check_ninja_deps.py
chunk-print-before-all.py
clang-parse-diagnostics-file
codegen-diff
collect_and_build_with_pgo.py
convert-constraint-log-to-z3.py
countloc.sh
create_ladder_graph.py
demangle_tree.py
extract-section.py
extract_symbols.py [extract_symbols.py] Fix llvm-readobj options. 2021-11-11 09:12:58 +00:00
extract_vplan.py
findmisopt
findoptdiff
findsym.pl
getsrcs.sh
indirect_calls.py
lldbDataFormatters.py
llvm-compilers-check
llvm-gisel-cov.py
llvm-native-gxx
llvm-original-di-preservation.py
llvm.grm
llvmdo
llvmgrep
merge-stats.py
pipeline.py [NPM] Automatic 'opt' pipeline reducer script. 2021-10-06 09:09:33 +02:00
prepare-code-coverage-artifact.py
reduce_pipeline.py [NPM] Fix bug in llvm/utils/reduce_pipeline.py 2021-11-05 08:41:39 +01:00
remote-exec.py
revert_checker.py
revert_checker_test.py
rsp_bisect.py
schedcover.py
shuffle_fuzz.py
shuffle_select_fuzz_tester.py
sort_includes.py
sysroot.py
unicode-case-fold.py
update_analyze_test_checks.py
update_cc_test_checks.py
update_llc_test_checks.py
update_mca_test_checks.py
update_mir_test_checks.py [update_mir_test_checks.py] Use -NEXT FileCheck directories 2021-09-20 12:55:56 +01:00
update_test_checks.py
update_test_prefix.py
wciia.py