llvm-6502/utils
Chandler Carruth ecf84c1124 Add a new utility script that helps update very simple regression tests.
This script is currently specific to x86 and limited to use with very
small regression or feature tests using 'llc' and 'FileCheck' in
a reasonably canonical way. It is in no way general purpose or robust at
this point. However, it works quite well for simple examples. Here is
the intended workflow:

- Make a change that requires updating N test files and M functions'
  assertions within those files.
- Stash the change.
- Update those N test files' RUN-lines to look "canonical"[1].
- Refresh the FileCheck lines for either the entire file or select
  functions by running this script.
  - The script will parse the RUN lines and run the 'llc' binary you
    give it according to each line, collecting the asm.
  - It will then annotate each function with the appropriate FileCheck
    comments to check every instruction from the start of the first
    basic block to the last return.
  - There will be numerous cases where the script either fails to remove
    the old lines, or inserts checks which need to be manually editted,
    but the manual edits tend to be deletions or replacements of
    registers with FileCheck variables which are fast manual edits.
  - A common pattern is to have the script insert complete checking of
    every instruction, and then edit it down to only check the relevant
    ones.
  - Be careful to do all of these cleanups though! The script is
    designed to make transferring and formatting the asm output of llc
    into a test case fast, it is *not* designed to be authoratitive
    about what constitutes a good test!
- Commit the nice fresh baseline of checks.
- Unstash your change and rebuild llc.
- Re-run script to regenerate the FileCheck annotations
  - Remember to re-cleanup these annotations!!!
- Check the diff to make sure this is sane, checking the things you
  expected it to, and check that the newly updated tests actually pass.
- Profit!

Also, I'm *terrible* at writing Python, and frankly I didn't spend a lot
of time making this script beautiful or well engineered. But it's useful
to me and may be useful to others so I thought I'd send it out.

http://reviews.llvm.org/D5546

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225618 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-12 04:43:18 +00:00
..
bugpoint
buildit ARM64: initial backend import 2014-03-29 10:18:08 +00:00
count Install three utils, "FileCheck", "count", and "not", for now to appease llvmlab dragonegg builder. 2013-12-20 06:25:37 +00:00
crosstool
emacs IR: Add 'distinct' MDNodes to bitcode and assembly 2015-01-08 22:38:29 +00:00
FileCheck Make StringSet::insert return pair<iterator, bool> like other self-associative containers 2014-11-19 02:56:00 +00:00
fpcmp Don't use PathV1.h in FileUtilities.h. 2013-06-13 20:41:00 +00:00
git
git-svn Update git-svnrevert to accept git and svn revisions 2014-10-08 09:32:47 +00:00
jedit
kate Remove the linker_private and linker_private_weak linkages. 2014-03-13 23:18:37 +00:00
KillTheDoctor Remove broken include. 2014-06-13 15:21:50 +00:00
lint
lit Pass LSAN_OPTIONS down so that it is possible to add suppressions. 2014-12-23 18:39:02 +00:00
llvm-build Teach llvm-build to avoid touching LibraryDependencies.inc unless the contents 2014-11-19 03:34:20 +00:00
llvm-lit [testing]: lld generally lives in tools/, so fix llvm-lit. 2014-07-07 15:26:53 +00:00
Misc Patch that forces MergeFunctions pass for clang. 2013-09-24 20:06:31 +00:00
not Add a small "usage:" comment at the top of not.cpp 2014-11-26 22:53:46 +00:00
PerfectShuffle [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
release test-release.sh: Add a way to specify --build to configure 2014-12-04 17:15:35 +00:00
TableGen [X86] Don't print 'dword ptr' or 'qword ptr' on the operand to some of the LEA variants in Intel syntax. The memory operand is inherently unsized. 2015-01-08 07:41:30 +00:00
Target/ARM
testgen
textmate
unittest Reverted r203879. 2014-03-14 01:56:55 +00:00
valgrind valgrind/x86_64-pc-linux-gnu.supp: Suppress also /bin/bash. 2014-09-24 04:38:20 +00:00
vim IR: Add 'distinct' MDNodes to bitcode and assembly 2015-01-08 22:38:29 +00:00
yaml-bench Remove some calls to std::move. 2014-08-01 14:31:55 +00:00
bisect Add a small utility called bisect that enables commandline bisecting on a counter. 2014-08-02 01:39:08 +00:00
check-each-file
clang-parse-diagnostics-file
codegen-diff
countloc.sh
DSAclean.py
DSAextract.py
findmisopt Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
findoptdiff
findsym.pl
GenLibDeps.pl
GetRepositoryPath Fix the build for git repositories with multiple remotes. 2013-09-16 09:25:49 +00:00
GetSourceVersion
getsrcs.sh
lldbDataFormatters.py utils: Teach lldbDataFormatters how to format ArrayRefs 2014-09-11 01:47:38 +00:00
llvm-compilers-check Remove bogus configure check 2014-06-19 19:31:11 +00:00
llvm-native-gxx
llvm.grm Remove the linker_private and linker_private_weak linkages. 2014-03-13 23:18:37 +00:00
llvm.natvis Use correct memeber when displaying StringMap's size. 2014-07-09 05:34:24 +00:00
LLVMBuild.txt
llvmdo
llvmgrep
Makefile Delete utils/FileUpdate. 2014-06-23 17:58:39 +00:00
makellvm
shuffle_fuzz.py [shuffle] Teach the shufflevector fuzzer to support fixed element types. 2014-08-17 00:40:31 +00:00
sort_includes.py
test_debuginfo.pl test_debuginfo.pl: Make failures easier to debug by printing the debugger 2014-02-20 19:55:44 +00:00
update_llc_test_checks.py Add a new utility script that helps update very simple regression tests. 2015-01-12 04:43:18 +00:00
UpdateCMakeLists.pl
wciia.py Fix known typos 2014-01-24 17:20:08 +00:00