llvm-project/llvm/utils
Evan Cheng 66561537f5 Add a pseudo instruction REG_SEQUENCE that takes a list of registers and
sub-register indices and outputs a single super register which is formed from
a consecutive sequence of registers.

This is used as register allocation / coalescing aid and it is useful to
represent instructions that output register pairs / quads. For example,
v1024, v1025 = vload <address>
where v1024 and v1025 forms a register pair.

This really should be modelled as
v1024<3>, v1025<4> = vload <address>
but it would violate SSA property before register allocation is done.

Currently we use insert_subreg to form the super register:
v1026 = implicit_def
v1027 - insert_subreg v1026, v1024, 3
v1028 = insert_subreg v1027, v1025, 4
...
      = use v1024
      = use v1028

But this adds pseudo live interval overlap between v1024 and v1025.

We can now modeled it as
v1024, v1025 = vload <address>
v1026 = REG_SEQUENCE v1024, 3, v1025, 4
...
      = use v1024
      = use v1026

After coalescing, it will be
v1026<3>, v1025<4> = vload <address>
...
      = use v1026<3>
      = use v1026

llvm-svn: 102815
2010-05-01 00:28:44 +00:00
..
FileCheck stringref-ize the MemoryBuffer::get apis. This requires 2010-04-05 22:42:30 +00:00
FileUpdate Make LLVM command-line tools overwrite their output files without -f. 2009-08-25 15:34:52 +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
PerfectShuffle Provide proper masks for neon perfect shuffle table. 2009-09-25 22:52:29 +00:00
TableGen Add a pseudo instruction REG_SEQUENCE that takes a list of registers and 2010-05-01 00:28:44 +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 Don't remove libLTO.dylib if it's not being installed in Developer/usr/lib; 2010-04-29 18:04:29 +00:00
count Add count/not tools as executables. 2009-09-24 06:23:57 +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 .llx is no more. 2009-12-19 20:56:53 +00:00
fpcmp Remove unnecessary uses of <iostream>. 2010-04-15 03:47:24 +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
lint * Fixed spelling 2009-02-20 23:44:54 +00:00
lit lit: Add support to OneCommandPerFileTest format to take input directory from input path. 2010-04-09 02:15:10 +00:00
not Add count/not tools as executables. 2009-09-24 06:23:57 +00:00
unittest silence some -Wmissing-field-initializers warnings. 2010-04-18 03:30:32 +00:00
valgrind Add a valgrind suppressions file for x86_64/linux/4.3.3. 2009-09-14 16:10:32 +00:00
vim Fix grammaro in a comment. 2010-02-26 21:45:37 +00:00
DSAclean.py
DSAextract.py
GenLibDeps.pl Filter the future all-of-llvm shared library out of the llvm-config 2010-02-25 01:21:38 +00:00
GetSourceVersion Make GetSourceVersion more portable, thanks Pawel! 2010-01-22 18:14:21 +00:00
Makefile Add count/not tools as executables. 2009-09-24 06:23:57 +00:00
NLT.schema
NewNightlyTest.pl NNT: Add -nouname option, so machine uniquing can occur across physical machines. 2010-03-16 15:53:02 +00:00
NightlyTest.gnuplot
NightlyTestTemplate.html
OldenDataRecover.pl
RegressionFinder.pl
UpdateCMakeLists.pl Recognize 'add_executable' when analyzing CMake files. 2010-01-29 01:10:55 +00:00
cgiplotNLT.pl
check-each-file
codegen-diff
countloc.sh
findmisopt
findoptdiff Auto-upgrade free instructions to calls to the builtin free function. 2009-10-24 04:23:03 +00:00
findsym.pl
getsrcs.sh
importNLT.pl
llvm-native-gcc
llvm-native-gxx
llvm.grm Add the alignstack keyword. 2010-03-01 17:53:39 +00:00
llvmdo .llx is no more. 2009-12-19 20:56:53 +00:00
llvmgrep search unittests. 2009-08-24 03:44:02 +00:00
makellvm Update makellvm to return correct result code. 2008-08-13 20:43:56 +00:00
mkpatch update mkpatch for MC, patch by Aaron Gray 2010-03-12 06:32:12 +00:00
parseNLT.pl
plotNLT.pl
profile.pl
userloc.pl
webNLT.pl