llvm/utils
Jakob Stoklund Olesen babf0569e2 Teach TableGen to infer missing register classes.
The set of register classes should be closed under sub-register
operations and intersections. That will allow the register allocator to
model combinations of constraints accurately.

This patch implements the easiest form of register class inference:  For
every register class, and for every sub-register SubIdx, the subset of
registers in RC that have a SubIdx sub-register should also be a register
class.

This does create some new register classes for the targets in the tree:

ARM gets a new QQQQPR_with_ssub_0.  This class was omitted from the .td
file on purpose because it only has two registers.  InstrEmitter and
RegisterCoalescer have safeguards against selecting too small register
classes, so it is harmless.

PowerPC gets a G8RC_with_sub_32 class because LR is not a sub_32
sub-register of LR8.  I think that might be an omission?

X86 puts RIP in the GR64 class, and since that register doesn't have
8-bit sub-registers, we get:

  GR64_with_sub_8bit
  GR64_TC_with_sub_8bit
  GR64_NOREX_with_sub_8bit
  GR64_TC_with_sub_8bit_hi

The various CodeGen classes have already been fixed so adding new
register classes should not affect compile time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141084 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-04 15:28:49 +00:00
..
bugpoint
buildit Find the strip tool that works with the specified SDKROOT. rdar://10165908 2011-10-03 18:48:16 +00:00
count Put targets on folders, if the IDE supports the feature. 2011-02-20 22:06:10 +00:00
crosstool
emacs
FileCheck fix PR9629 - We were lowering regexes like a{{b|c}}d into ab|cd, which 2011-04-09 06:37:03 +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
jedit
kate
KillTheDoctor Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
lint
lit lit: Normalize pathsep slashes also on %T. 2011-08-31 03:56:17 +00:00
llvm-lit Use $(ECHOPATH) to make llvm-lit from llvm-lit.in. 2011-03-08 12:25:19 +00:00
Misc
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 Partially revert commit 127155: I think it is much more convenient 2011-03-27 13:52:32 +00:00
TableGen Teach TableGen to infer missing register classes. 2011-10-04 15:28:49 +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 Update CMake build for new gtest file. 2011-07-27 10:19:32 +00:00
valgrind valgrind: Suppress glibc's optiized strcasecmp harder. 2011-09-03 17:59:31 +00:00
vim Update uwtable vim color! 2011-08-17 02:29:07 +00:00
cgiplotNLT.pl
check-each-file
codegen-diff
countloc.sh
DSAclean.py
DSAextract.py Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
findmisopt
findoptdiff
findsym.pl
GenLibDeps.pl Fix typo in generated HTML. 2011-03-31 00:23:57 +00:00
GetRepositoryPath
GetSourceVersion
getsrcs.sh
importNLT.pl
llvm-native-gcc
llvm-native-gxx
llvm.grm Remove last references to hotpatch. 2011-10-04 03:08:43 +00:00
llvmbuild Allow tagless builds and fix debug build configuration. 2011-07-06 16:54:14 +00:00
llvmdo
llvmgrep
Makefile
makellvm
NewNightlyTest.pl Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
NightlyTest.gnuplot
NightlyTestTemplate.html
NLT.schema
parseNLT.pl
plotNLT.pl
profile.pl Rename profile_rt.so to libprofile_rt.so under configure+make (it already was 2011-04-29 02:12:06 +00:00
show-diagnostics build: Add support for a SHOW_DIAGNOSTICS build variable. 2011-04-11 22:37:39 +00:00
test_debuginfo.pl
UpdateCMakeLists.pl
webNLT.pl