llvm/utils
Jakob Stoklund Olesen 7e56831a68 Synthesize missing register class intersections.
The function TRI::getCommonSubClass(A, B) returns the largest common
sub-class of the register classes A and B.  This patch teaches TableGen
to synthesize sub-classes such that the answer is always maximal.

In other words, every register that is in both A and B will also be
present in getCommonSubClass(A, B).

This introduces these synthetic register classes:

ARM:
    GPRnopc_and_hGPR
    GPRnopc_and_hGPR
    hGPR_and_rGPR
    GPRnopc_and_hGPR
    GPRnopc_and_hGPR
    hGPR_and_rGPR
    tGPR_and_tcGPR
    hGPR_and_tcGPR

X86:
    GR32_NOAX_and_GR32_NOSP
    GR32_NOAX_and_GR32_NOREX
    GR64_NOSP_and_GR64_TC
    GR64_NOSP_and_GR64_TC
    GR64_NOREX_and_GR64_TC
    GR32_NOAX_and_GR32_NOSP
    GR32_NOAX_and_GR32_NOREX
    GR32_NOAX_and_GR32_NOREX_NOSP
    GR64_NOSP_and_GR64_TC
    GR64_NOREX_and_GR64_TC
    GR64_NOREX_NOSP_and_GR64_TC
    GR32_NOAX_and_GR32_NOSP
    GR32_NOAX_and_GR32_NOREX
    GR32_NOAX_and_GR32_NOREX_NOSP
    GR32_ABCD_and_GR32_NOAX
    GR32_NOAX_and_GR32_NOSP
    GR32_NOAX_and_GR32_NOREX
    GR32_NOAX_and_GR32_NOREX_NOSP
    GR32_ABCD_and_GR32_NOAX
    GR32_NOAX_and_GR32_TC
    GR32_NOAX_and_GR32_NOSP
    GR64_NOSP_and_GR64_TC
    GR32_NOAX_and_GR32_NOREX
    GR32_NOAX_and_GR32_NOREX_NOSP
    GR64_NOREX_and_GR64_TC
    GR64_NOREX_NOSP_and_GR64_TC
    GR32_ABCD_and_GR32_NOAX
    GR64_ABCD_and_GR64_TC
    GR32_NOAX_and_GR32_TC
    GR32_AD_and_GR32_NOAX

Other targets are unaffected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146657 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-15 16:48:55 +00:00
..
bugpoint Require a remote command to exit with the exit status of the test program or with 255 if an error occurred. 2009-07-18 18:39:24 +00:00
buildit Install llvmCore to /usr/local. <rdar://problem/10390708> 2011-11-29 06:11:56 +00:00
count Put targets on folders, if the IDE supports the feature. 2011-02-20 22:06:10 +00:00
crosstool * Use "svn export" instead of "svn co" and avoid cleaning up .svn dirs 2009-08-04 15:47:18 +00:00
emacs Remove Multidefs 2011-10-07 18:25:05 +00:00
FileCheck Make SMDiagnostic a little more sane. Instead of passing around note/warning/error as a 2011-10-16 05:43:57 +00:00
FileUpdate Put targets on folders, if the IDE supports the feature. 2011-02-20 22:06:10 +00:00
fpcmp Merge System into Support. 2010-11-29 18:16:10 +00:00
git Add simple script for finding most-recent-rev-before-N in a git-svn repo; useful 2010-02-25 18:07:07 +00:00
jedit Add TableGen syntax highlighting for the jEdit editor. 2009-03-14 10:15:32 +00:00
kate syntax-highlighting: Fix module asm keyword. 2010-10-09 15:44:36 +00:00
KillTheDoctor Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
lint * Fixed spelling 2009-02-20 23:44:54 +00:00
lit lit/TestRunner.py: Try to catch ERROR_FILE_NOT_FOUND, too. 2011-11-29 06:40:50 +00:00
llvm-build llvm-build: Switch to using the common subdirectory list instead of 2011-12-12 22:45:59 +00:00
llvm-lit Use $(ECHOPATH) to make llvm-lit from llvm-lit.in. 2011-03-08 12:25:19 +00:00
Misc Add a 'zkill' script, which is more-or-less a fancy (although not necessarily 2009-11-08 21:51:53 +00:00
not Put targets on folders, if the IDE supports the feature. 2011-02-20 22:06:10 +00:00
PerfectShuffle In r131488 I misunderstood how VREV works. It splits the vector in half and splits each half. Therefore, the real problem was that we were using a VREV64 for a 4xi16, when we should have been using a VREV32. 2011-05-18 06:42:21 +00:00
release Support a 'final' release candidate tag. 2011-11-28 11:45:10 +00:00
TableGen Synthesize missing register class intersections. 2011-12-15 16:48:55 +00:00
Target/ARM McARM: Write a silly Python script to compute some hard coded info from the 2011-01-11 19:06:26 +00:00
unittest build/CMake: Finish removal of add_llvm_library_dependencies. 2011-11-29 19:25:30 +00:00
valgrind valgrind: Suppress glibc's optiized strcasecmp harder. 2011-09-03 17:59:31 +00:00
vim Remove Multidefs 2011-10-07 18:25:05 +00:00
check-each-file
clang-parse-diagnostics-file Rename show-diagnostics to something less ambiguous. 2011-11-02 00:44:16 +00:00
codegen-diff
countloc.sh remove attributions from utils. 2007-12-29 20:37:13 +00:00
DSAclean.py
DSAextract.py Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
findmisopt Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
findoptdiff Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
findsym.pl Fix a comment. 2006-08-09 19:40:13 +00:00
GenLibDeps.pl Fix typo in generated HTML. 2011-03-31 00:23:57 +00:00
GetRepositoryPath utils: Add GetRepositoryPath script, patch by Jonathan Mulder! 2010-09-29 17:57:01 +00:00
GetSourceVersion GetSourceVersion: Strip off svninfo extra markers, which aren't really part of the version. 2010-09-29 19:30:17 +00:00
getsrcs.sh remove attributions from utils. 2007-12-29 20:37:13 +00:00
llvm-compilers-check utils: Rename the "llvmbuild" script to llvm-compilers-check. 2011-11-04 01:09:02 +00:00
llvm-native-gcc Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
llvm-native-gxx Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
llvm.grm Remove last references to hotpatch. 2011-10-04 03:08:43 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
llvmdo Remove CVS artifacts. 2010-08-04 16:11:24 +00:00
llvmgrep search unittests. 2009-08-24 03:44:02 +00:00
Makefile remove reference to dead script. 2010-10-02 18:49:27 +00:00
makellvm Update makellvm to return correct result code. 2008-08-13 20:43:56 +00:00
NewNightlyTest.pl Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
profile.pl Rename profile_rt.so to libprofile_rt.so under configure+make (it already was 2011-04-29 02:12:06 +00:00
test_debuginfo.pl Fix typo in temp. script file name. 2010-09-13 21:23:17 +00:00
UpdateCMakeLists.pl Recognize 'add_executable' when analyzing CMake files. 2010-01-29 01:10:55 +00:00