Chris Lattner
80d69b5973
implement and document support for filecheck variables. This
...
allows matching and remembering a string and then matching and
verifying that the string occurs later in the file.
Change X86/xor.ll to use this in some cases where the test was
checking for an arbitrary register allocation decision.
llvm-svn: 82891
2009-09-27 07:56:52 +00:00
Chris Lattner
b47463f436
remove support for "NoSub" from regex. It seems like a minor optimization
...
and makes the API more annoying. Add a Regex::getNumMatches() method.
llvm-svn: 82877
2009-09-26 21:27:04 +00:00
Chris Lattner
7143d73e96
reject attempts to use ()'s in patterns, these are reserved for filecheck.
...
llvm-svn: 82780
2009-09-25 17:29:36 +00:00
Chris Lattner
2b1f7c6a75
reimplement the regex matching strategy by building a single
...
regex and matching it instead of trying to match chunks at a time.
Matching chunks at a time broke with check lines like
CHECK: foo {{.*}}bar
because the .* would eat the entire rest of the line and bar would
never match.
Now we just escape the fixed strings for the user, so that something
like:
CHECK: a() {{.*}}???
is matched as:
CHECK: {{a\(\) .*\?\?\?}}
transparently "under the covers".
llvm-svn: 82779
2009-09-25 17:23:43 +00:00
Chris Lattner
fed266aae9
special case Patterns that are a single fixed string. This is a microscopic
...
perf win and is needed for future changes.
llvm-svn: 82777
2009-09-25 17:09:12 +00:00
Chris Lattner
2bf0d0ca42
filecheck should not match a \n with a .
...
llvm-svn: 82758
2009-09-25 06:47:09 +00:00
Chris Lattner
a6bcda7a8a
turn a std::pair into a real class.
...
llvm-svn: 82754
2009-09-25 06:32:47 +00:00
Chris Lattner
af2ce37cb3
add and document regex support for FileCheck. You can now do stuff like:
...
; CHECK: movl {{%e[a-z][xi]}}, %eax
or whatever.
llvm-svn: 82717
2009-09-24 21:47:32 +00:00
Chris Lattner
97cf81c3c6
Use CanonicalizeInputFile to canonicalize the entire buffer containing the
...
CHECK strings, instead of canonicalizing the patterns directly. This allows
Pattern to just contain a StringRef instead of std::string.
llvm-svn: 82713
2009-09-24 20:45:07 +00:00
Chris Lattner
5f3b698a06
change 'not' matching to use Pattern, move pattern parsing logic into
...
the Pattern class.
llvm-svn: 82712
2009-09-24 20:39:13 +00:00
Chris Lattner
756adfb5ca
refactor out the match string into its own Pattern class.
...
llvm-svn: 82711
2009-09-24 20:25:55 +00:00
Chris Lattner
82a963788d
fix a FileCheck bug where:
...
; CHECK: foo
; CHECK-NOT: foo
; CHECK: bar
would always fail.
llvm-svn: 82424
2009-09-21 02:30:42 +00:00
Chris Lattner
d5f420ca4d
rewrite CountNumNewlinesBetween to be in terms of StringRef.
...
llvm-svn: 82410
2009-09-20 22:42:44 +00:00
Chris Lattner
63735b5e10
implement and document support for CHECK-NOT
...
llvm-svn: 82408
2009-09-20 22:35:26 +00:00
Chris Lattner
4552cc1387
rewrite FileCheck in terms of StringRef instead of manual pointer pairs.
...
llvm-svn: 82407
2009-09-20 22:11:44 +00:00
Douglas Gregor
a64e9d9eb5
Don't install FileCheck or FileUpdate
...
llvm-svn: 79820
2009-08-23 04:39:38 +00:00
Chris Lattner
b2791c888d
when emitting errors about CHECK-NEXT directives, show the line that the
...
CHECK-NEXT is on.
llvm-svn: 79164
2009-08-16 02:22:31 +00:00
Chris Lattner
d910c3a30e
implement support for CHECK-NEXT: in filecheck.
...
llvm-svn: 79123
2009-08-15 18:32:21 +00:00
Chris Lattner
a2ab7de470
simplify some code.
...
llvm-svn: 79121
2009-08-15 18:00:42 +00:00
Chris Lattner
2942a8852f
rewrite FindStringInBuffer to use an explicit loop instead of
...
trying to wrap strstr which is just too inconvenient. Make it
use a StringRef to avoid ".c_str()" calls.
llvm-svn: 79120
2009-08-15 17:53:12 +00:00
Chris Lattner
b1de5e438a
Instead of using an std::pair, use a custom struct.
...
llvm-svn: 79119
2009-08-15 17:41:04 +00:00
Daniel Dunbar
29c0894945
Fix an ENABLE_EXPENSIVE_CHECKS error.
...
llvm-svn: 77845
2009-08-02 01:21:22 +00:00
Daniel Dunbar
e905c7445d
Tweak comment.
...
llvm-svn: 75391
2009-07-11 22:06:10 +00:00
Chris Lattner
abe5a919b8
improve filecheck's "scanning from here" caret position.
...
llvm-svn: 75371
2009-07-11 19:21:09 +00:00
Chris Lattner
3ddde921ee
make filecheck default to canonicalizing horizontal whitespace
...
away. This way you can write a space and it matches arbitrary spaces and tabs.
llvm-svn: 75370
2009-07-11 18:58:15 +00:00
Chris Lattner
9a419de980
stop on the first file mismatch.
...
llvm-svn: 75076
2009-07-09 00:19:21 +00:00
Chris Lattner
425ad95921
Add a new little "FileCheck" utility for regression testing.
...
llvm-svn: 75022
2009-07-08 18:44:05 +00:00