1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/utils
Simon Cook bae1c75f0d [TableGen] Support combining AssemblerPredicates with ORs
For context, the proposed RISC-V bit manipulation extension has a subset
of instructions which require one of two SubtargetFeatures to be
enabled, 'zbb' or 'zbp', and there is no defined feature which both of
these can imply to use as a constraint either (see comments in D65649).

AssemblerPredicates allow multiple SubtargetFeatures to be declared in
the "AssemblerCondString" field, separated by commas, and this means
that the two features must both be enabled. There is no equivalent to
say that _either_ feature X or feature Y must be enabled, short of
creating a dummy SubtargetFeature for this purpose and having features X
and Y imply the new feature.

To solve the case where X or Y is needed without adding a new feature,
and to better match a typical TableGen style, this replaces the existing
"AssemblerCondString" with a dag "AssemblerCondDag" which represents the
same information. Two operators are defined for use with
AssemblerCondDag, "all_of", which matches the current behaviour, and
"any_of", which adds the new proposed ORing features functionality.

This was originally proposed in the RFC at
http://lists.llvm.org/pipermail/llvm-dev/2020-February/139138.html

Changes to all current backends are mechanical to support the replaced
functionality, and are NFCI.

At this stage, it is illegal to combine features with ands and ors in a
single AssemblerCondDag. I suspect this case is sufficiently rare that
adding more complex changes to support it are unnecessary.

Differential Revision: https://reviews.llvm.org/D74338
2020-03-13 17:13:51 +00:00
..
benchmark Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
bugpoint [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
count
crosstool
docker Continue removing llgo. 2020-02-10 10:33:58 -08:00
emacs [TableGen] Update editor modes for new keywords. 2020-01-14 13:39:00 +00:00
FileCheck Improve error message of FileCheck when stdin is empty 2020-02-04 11:14:55 +00:00
fpcmp
gdb-scripts Change to individual pretty printer classes, remove generic make_printer. 2020-03-11 15:04:03 +01:00
git-svn Continue removing llgo. 2020-02-10 10:33:58 -08:00
gn [gn build] Port 512767eb3fe 2020-03-13 14:09:37 +00:00
jedit
kate [TableGen] Update editor modes for new keywords. 2020-01-14 13:39:00 +00:00
KillTheDoctor Revert "Use InitLLVM to setup a pretty stack printer" 2019-11-25 21:06:56 -05:00
lint
lit Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08: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
LLVMVisualizers Clean up MSVC visualization of LLVM pointer types 2019-06-30 21:54:34 +00:00
Misc
not
PerfectShuffle
release build_llvm_package.bat: Produce zip files in addition to the installers 2020-02-25 12:14:07 +01:00
Reviewing [find_interesting_reviews.py] Add git blame output cache 2019-12-23 12:08:16 +00:00
sanitizers
TableGen [TableGen] Support combining AssemblerPredicates with ORs 2020-03-13 17:13:51 +00:00
Target/ARM
testgen
textmate
unittest Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
UpdateTestChecks [Utils][x86] add an option to reduce scrubbing of shuffles with memops 2020-02-20 09:33:05 -05:00
valgrind
vim [TableGen] Update editor modes for new keywords. 2020-01-14 13:39:00 +00:00
vscode Add some more vscode files 2020-03-05 19:31:28 -08:00
yaml-bench
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 [NFC] Fix minor python issues. 2020-02-28 14:17:43 -08:00
clang-parse-diagnostics-file
codegen-diff
collect_and_build_with_pgo.py
countloc.sh
create_ladder_graph.py [Utils] Make some scripts directly executable 2020-02-28 13:39:54 +00:00
demangle_tree.py
DSAclean.py
DSAextract.py [Utils] Make some scripts directly executable 2020-02-28 13:39:54 +00:00
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
GenLibDeps.pl [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
GetSourceVersion
getsrcs.sh
indirect_calls.py
lldbDataFormatters.py Fix a null dereference in the LLDB data formatters. 2020-02-25 16:43:55 -08:00
llvm-compilers-check
llvm-gisel-cov.py [NFC] Fix minor python issues. 2020-02-28 14:17:43 -08:00
llvm-native-gxx
llvm.grm
LLVMBuild.txt
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 [Utils] Make some scripts directly executable 2020-02-28 13:39:54 +00:00
shuffle_fuzz.py
shuffle_select_fuzz_tester.py [Utils] Make some scripts directly executable 2020-02-28 13:39:54 +00:00
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 Fix line endings produced by update_cc_test_checks.py 2020-02-14 15:17:27 +00:00
update_llc_test_checks.py [Utils][x86] add an option to reduce scrubbing of shuffles with memops 2020-02-20 09:33:05 -05: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 [NFC] Fix spelling 2020-02-11 16:44:04 -06:00
UpdateCMakeLists.pl
wciia.py