llvm-6502/utils
Jakob Stoklund Olesen 4ce25d5d69 Add a RegisterTuples class to Target.td and TableGen.
A RegisterTuples instance is used to synthesize super-registers by
zipping together lists of sub-registers. This is useful for generating
pseudo-registers representing register sequence constraints like 'two
consecutive GPRs', or 'an even-odd pair of floating point registers'.

The RegisterTuples def can be used in register set operations when
building register classes. That is the only way of accessing the
synthesized super-registers.

For example, the ARM QQ register class of pseudo-registers could have
been formed like this:

  // Form pairs Q0_Q1, Q2_Q3, ...
  def QQPairs : RegisterTuples<[qsub_0, qsub_1],
                               [(decimate QPR, 2),
                                (decimate (shl QPR, 1), 2)]>;

  def QQ : RegisterClass<..., (add QQPairs)>;

Similarly, pseudo-registers representing '3 consecutive D-regs with
wraparound' look like:

  // Form D0_D1_D2, D1_D2_D3, ..., D30_D31_D0, D31_D0_D1.
  def DSeqTriples : RegisterTuples<[dsub_0, dsub_1, dsub_2],
                                   [(rotl DPR, 0),
                                    (rotl DPR, 1),
                                    (rotl DPR, 2)]>;

TableGen automatically computes aliasing information for the synthesized
registers.

Register tuples are still somewhat experimental. We still need to see
how they interact with MC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133407 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-20 02:50:54 +00:00
..
bugpoint
buildit Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
count
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
fpcmp
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 Add support to lit for build mode requirements. e.g. 2011-06-16 01:33:35 +00:00
llvm-lit Use $(ECHOPATH) to make llvm-lit from llvm-lit.in. 2011-03-08 12:25:19 +00:00
Misc
not
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 Add a RegisterTuples class to Target.td and TableGen. 2011-06-20 02:50:54 +00:00
Target/ARM
unittest Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
valgrind The system suppression file should catch these, but since they *once again* are 2011-05-04 01:03:02 +00:00
vim
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 Add a new function attribute, nonlazybind, which inhibits lazy-loading 2011-06-15 20:36:13 +00:00
llvmbuild
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