Reid Spencer
142f27dfd4
Remove some clutter and make it keep going instead of stopping at the
...
first difference.
llvm-svn: 32645
2006-12-18 00:37:37 +00:00
Jim Laskey
023e836c5b
Ignore entries with blank names.
...
llvm-svn: 32491
2006-12-12 20:55:58 +00:00
Jim Laskey
b039172d58
Rollback changes to take a different tack.
...
llvm-svn: 32488
2006-12-12 19:26:50 +00:00
Jim Laskey
8a5cea99ed
Honor the command line specification for machine type.
...
llvm-svn: 32483
2006-12-12 16:07:33 +00:00
Reid Spencer
d5ba7eadcc
Provide a script that can track down which optimization pass causes
...
different code to be produced between two llvm builds that differe slightly.
This is useful in tracking down mis-optimization bugs.
llvm-svn: 32435
2006-12-11 17:42:12 +00:00
Reid Spencer
f2048c9717
Allow the input of the test program to be specified.
...
Don't generate the reference output for each comparison.
llvm-svn: 32395
2006-12-09 04:42:33 +00:00
Reid Spencer
6254d95a45
Add the -ldl library option.
...
llvm-svn: 32369
2006-12-08 18:58:38 +00:00
Bill Wendling
f13d78d3b8
What should be the last unnecessary <iostream>s in the library.
...
llvm-svn: 32333
2006-12-07 22:21:48 +00:00
Evan Cheng
7eb095f346
Match TargetInstrInfo changes.
...
llvm-svn: 32107
2006-12-01 22:57:41 +00:00
Reid Spencer
5605ecd40d
Only show the first few lines of difference.
...
llvm-svn: 31901
2006-11-25 04:07:06 +00:00
Reid Spencer
a10284b03f
Add an option to enable lli (interpreter mode) testing.
...
llvm-svn: 31899
2006-11-24 20:34:16 +00:00
Reid Spencer
336bf8354e
Stop early if there is no mis-optimization.
...
llvm-svn: 31893
2006-11-22 03:46:45 +00:00
Chris Lattner
670eb9da78
Fix PR1001, patch by Nikhil Patil!
...
llvm-svn: 31880
2006-11-20 18:54:33 +00:00
Reid Spencer
ce839fd108
Make the awk filter print out which files its eliminating.
...
llvm-svn: 31851
2006-11-18 18:30:18 +00:00
Reid Spencer
e52a08d399
This is a utility for preparing patches against LLVM. It runs cvs diff with
...
the correct options, places the patch content in order that makes sense for
review, and filters cruft out of the patch (like diffs in *.cvs files). It
produces both a NAME.patch.raw (unfiltered) and NAME.patch (filtered) file.
llvm-svn: 31850
2006-11-18 18:02:30 +00:00
Reid Spencer
e5c34cf38e
Provide a list of gccld optimization switches.
...
llvm-svn: 31849
2006-11-18 17:14:09 +00:00
Evan Cheng
e1ca976ce4
Add opcode to TargetInstrDescriptor.
...
llvm-svn: 31804
2006-11-17 01:46:27 +00:00
Reid Spencer
a9ff1e4cec
Use a release version of bugpoint, if found. Include gccld passes.
...
llvm-svn: 31786
2006-11-16 18:32:47 +00:00
Chris Lattner
4a2af4e374
Remove the isTwoAddress property from the CodeGenInstruction class. It should
...
not be used for anything other than backwards compat constraint handling.
Add support for a new DisableEncoding property which contains a list of
registers that should not be encoded by the generated code emitter. Convert
the codeemitter generator to use this, fixing some PPC JIT regressions.
llvm-svn: 31769
2006-11-15 23:23:02 +00:00
Chris Lattner
efcd65f335
ADd support for adding constraints to suboperands
...
llvm-svn: 31748
2006-11-15 02:38:17 +00:00
Chris Lattner
1c86ab0ffe
restore some 'magic' code that I removed: it is needed. Add comments explaining
...
why.
llvm-svn: 31743
2006-11-14 22:17:10 +00:00
Chris Lattner
927a143285
minimal hack to get patterns whose result type is iPTR to be selected.
...
llvm-svn: 31742
2006-11-14 21:50:27 +00:00
Chris Lattner
1cbfe99b60
remove some dead code
...
llvm-svn: 31740
2006-11-14 21:41:35 +00:00
Chris Lattner
7e5cbf9ee0
Add support for nodes that return iPTR.
...
llvm-svn: 31739
2006-11-14 21:32:01 +00:00
Chris Lattner
03cc8c84ef
changes to get ptr_rc to be accepted in patterns. This is needed for ppc preinc
...
stores.
llvm-svn: 31738
2006-11-14 21:18:40 +00:00
Chris Lattner
796d72272b
Fix a bug handling nodes with variable arguments. The code was fixed to assume
...
that there were two input operands before the variable operand portion. This
*happened* to be true for all call instructions, which took a chain and a
destination, but was not true for the PPC BCTRL instruction, whose destination
is implicit.
Making this code more general allows elimination of the custom selection logic
for BCTRL.
llvm-svn: 31732
2006-11-14 18:41:38 +00:00
Reid Spencer
c7d7e1ed9c
Add some output so the user is informed while they wait.
...
llvm-svn: 31700
2006-11-13 16:08:51 +00:00
Reid Spencer
6c8c157f98
Add -lstdc++ to the link line for C++ programs.
...
llvm-svn: 31678
2006-11-11 10:22:48 +00:00
Chris Lattner
6836cbaf9d
allow ptr_rc to explicitly appear in an instructions operand list, it doesn't
...
have to be a subpart of a complex operand.
llvm-svn: 31618
2006-11-10 02:01:40 +00:00
Evan Cheng
8743c67826
Remove M_2_ADDR_FLAG.
...
llvm-svn: 31583
2006-11-09 02:22:54 +00:00
Reid Spencer
872f4226e4
Don't run bugpoint if we can't find a misoptimization.
...
llvm-svn: 31582
2006-11-09 01:47:04 +00:00
Reid Spencer
1d8fddc5b0
Print a usage message if too few arguments to program.
...
llvm-svn: 31581
2006-11-09 00:50:32 +00:00
Reid Spencer
dbb1ac36fa
Add a utility script to find a mis-optimization problem. This sometimes
...
helps when bugpoint can't find the problem directly because it needs the
set of optimizations that cause the program to fail.
llvm-svn: 31580
2006-11-09 00:26:17 +00:00
Evan Cheng
6921c1c0a7
Divide select methods into groups by SelectionDAG node opcodes (ISD::ADD,
...
X86ISD::CMP, etc.) instead of SDNode names (add, x86cmp, etc). We now allow
multiple SDNodes to map to the same SelectionDAG node (e.g. store, indexed
store).
llvm-svn: 31575
2006-11-08 23:01:03 +00:00
Evan Cheng
42fb21c3c5
Always pass the root node to ComplexPattern isel matching function.
...
llvm-svn: 31570
2006-11-08 20:31:10 +00:00
Chris Lattner
c1d27af4b8
emit TIED_TO correctly
...
llvm-svn: 31484
2006-11-07 01:27:55 +00:00
Chris Lattner
908ea22022
Mark predicate operands as such in operand info.
...
llvm-svn: 31483
2006-11-06 23:53:31 +00:00
Chris Lattner
e1960fc065
simplify the way operand flags and constraints are handled, making it easier
...
to extend.
llvm-svn: 31481
2006-11-06 23:49:51 +00:00
Chris Lattner
04b6336b73
recognize ppc's blr instruction as predicated
...
llvm-svn: 31480
2006-11-06 21:44:54 +00:00
Chris Lattner
97e9292cf3
regenerate
...
llvm-svn: 31472
2006-11-05 23:28:58 +00:00
Jeff Cohen
e1003da1a2
Unbreak VC++ build.
...
llvm-svn: 31464
2006-11-05 19:31:28 +00:00
Evan Cheng
8e65006b5e
Clean up some code.
...
llvm-svn: 31451
2006-11-04 09:40:23 +00:00
Chris Lattner
8dac4564af
Parse PredicateOperand's. When an instruction takes one, have the generated
...
isel fill in the instruction operands with the 'execute always' value
automatically.
llvm-svn: 31448
2006-11-04 05:12:02 +00:00
Chris Lattner
f7ad33f01b
First steps to getting PredicateOperand's to work. This handles instruction
...
and pat pattern definitions. Codegen is not right for them yet.
llvm-svn: 31444
2006-11-04 01:35:50 +00:00
Chris Lattner
5eca521156
eliminate need for the NumMIOperands field in Operand.
...
llvm-svn: 31432
2006-11-03 23:45:17 +00:00
Reid Spencer
da581ac715
Remove an unused variable.
...
llvm-svn: 31403
2006-11-03 01:48:30 +00:00
Chris Lattner
f6b840a1ae
silence warning
...
llvm-svn: 31402
2006-11-03 01:45:13 +00:00
Reid Spencer
d41f385ed9
Don't write out variables that are never used.
...
llvm-svn: 31396
2006-11-03 01:28:12 +00:00
Chris Lattner
71ce2c5de5
silence warnings
...
llvm-svn: 31392
2006-11-03 01:11:05 +00:00
Reid Spencer
01f5071a4d
Revert last patch which causes tblgen to segfault (why, I'm not sure).
...
llvm-svn: 31383
2006-11-02 21:07:40 +00:00
Reid Spencer
0d18610609
For PR786:
...
Remove unused variables.
llvm-svn: 31381
2006-11-02 20:46:16 +00:00
Reid Spencer
4bafa71dc1
For PR786:
...
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380
2006-11-02 20:25:50 +00:00
Evan Cheng
05d73e7209
Tied-to constraint must be op_with_larger_idx = op_with_smaller_idx or else throw an exception.
...
llvm-svn: 31361
2006-11-01 23:03:11 +00:00
Evan Cheng
a585562f95
Not meant to be checked in.
...
llvm-svn: 31334
2006-11-01 00:27:59 +00:00
Evan Cheng
c566892bd5
Add operand constraints to TargetInstrInfo.
...
llvm-svn: 31333
2006-11-01 00:27:05 +00:00
Reid Spencer
bddf9a66ec
80 cols fix.
...
llvm-svn: 31050
2006-10-19 15:24:04 +00:00
Evan Cheng
f872538d4b
Passing isel root and use operands to ComplexPattern functions, these should do the usual load folding checks as well.
...
llvm-svn: 30972
2006-10-16 06:33:44 +00:00
Evan Cheng
513dc7ed5f
When checking if a load can be folded, we check if there is any non-direct
...
way to reach the load via any nodes that would be folded. Start from the
root of the matched sub-tree.
llvm-svn: 30956
2006-10-14 08:30:15 +00:00
Evan Cheng
c7283044d1
Really remove dead nodes from isel queue.
...
llvm-svn: 30923
2006-10-12 23:18:52 +00:00
Evan Cheng
5ff49d9410
Use RemoveDeadNode to kill dead node.
...
llvm-svn: 30917
2006-10-12 20:35:19 +00:00
Evan Cheng
65264c811f
Prior load folding check on chain operand was too strict. It requires the
...
chain operand to point to the load being folded. Now we relax this, traversing
up the chain, if it doesn't reach the load, then it's ok. We will create a
TokenFactor (of all the chain operands and the load's chain) to capture all
the control flow dependencies.
llvm-svn: 30897
2006-10-12 02:08:53 +00:00
Evan Cheng
7a185e0164
Added properties such as SDNPHasChain to ComplexPattern.
...
llvm-svn: 30890
2006-10-11 21:02:01 +00:00
Chris Lattner
461eba5c63
regenerate
...
llvm-svn: 30888
2006-10-11 18:13:09 +00:00
Chris Lattner
0c0f2eacfc
Add support for let expressions around an mdef. This implements a new part
...
of Regression/TableGen/MultiClass.td.
llvm-svn: 30887
2006-10-11 18:12:44 +00:00
Chris Lattner
822d1b259e
Special case tblgen generated code for patterns like (and X, 255) or (or X, 42).
...
The dag/inst combiners often 'simplify' the masked value based on whether
or not the bits are live or known zero/one. This is good and dandy, but
often causes special case patterns to fail, such as alpha's CMPBGE pattern,
which looks like "(set GPRC:$RC, (setuge (and GPRC:$RA, 255), (and GPRC:$RB, 255)))".
Here the pattern for (and X, 255) should match actual dags like (and X, 254) if
the dag combiner proved that the missing bits are already zero (one for 'or').
For CodeGen/Alpha/cmpbge.ll:test2 for example, this results in:
sll $16,1,$0
cmpbge $0,$17,$0
ret $31,($26),1
instead of:
sll $16,1,$0
and $0,254,$0
and $17,255,$1
cmpule $1,$0,$0
ret $31,($26),1
... and requires no target-specific code.
llvm-svn: 30871
2006-10-11 04:05:55 +00:00
Chris Lattner
ad597308ad
Split some code out into a new method. The generated code is exactly
...
identical, this is just a refactoring.
llvm-svn: 30868
2006-10-11 03:35:34 +00:00
Evan Cheng
084d415941
Predicate function on the node should be matched before its childrean' matching
...
code. This is especially important now matching ISD::LOAD also requires a
Predicate_Load call.
llvm-svn: 30845
2006-10-09 21:02:17 +00:00
Chris Lattner
b007ac9ecf
regenerate
...
llvm-svn: 30799
2006-10-07 07:15:19 +00:00
Chris Lattner
b5b2e0340e
Bugfix: this allows multiclasses to have default arguments.
...
llvm-svn: 30798
2006-10-07 07:14:48 +00:00
Chris Lattner
d55928d5f6
Fix more static dtor issues
...
llvm-svn: 30725
2006-10-04 21:52:35 +00:00
Jim Laskey
dca41cb87b
Wrong directory.
...
llvm-svn: 30669
2006-09-29 17:31:45 +00:00
Jim Laskey
654a319cca
Fix search file for -release.
...
llvm-svn: 30647
2006-09-28 18:45:11 +00:00
Jim Laskey
b9f4391b46
Add support for -release-asserts.
...
llvm-svn: 30646
2006-09-28 17:49:20 +00:00
Chris Lattner
4aa2739696
This:
...
AggregateString += "\0\0";
Doesn't add two nuls to the AggregateString (for obvious reasons), which
broke the asmprinter when the first character of an asm string was not
literal text.
llvm-svn: 30625
2006-09-27 16:44:09 +00:00
Chris Lattner
7c98cc2aab
Actually, name the method PrintSpecial to match other stuff in AsmPrinter.h
...
llvm-svn: 30618
2006-09-26 23:47:10 +00:00
Chris Lattner
10e06fa138
Add support for ${:foo} syntax, where "foo" is passed into "printSpecial" and
...
has no associated operand. This is useful for portably encoding stuff like
the comment character into an asm string.
llvm-svn: 30617
2006-09-26 23:45:08 +00:00
Chris Lattner
86f1992481
don't allow 'imm' or specific imms, like '1' on the LHS of a binop.
...
This shrinks X86GenDAGISel by ~330 lines.
llvm-svn: 30574
2006-09-21 20:46:13 +00:00
Chris Lattner
28d7124afb
Fit to 80 columns.
...
llvm-svn: 30572
2006-09-21 18:28:27 +00:00
Jim Laskey
a46690e7de
Trim the home directory from the dejagnu test
...
llvm-svn: 30519
2006-09-20 09:20:22 +00:00
Evan Cheng
c5be7540d2
Allow PatFrag to be a leaf node.
...
llvm-svn: 30498
2006-09-19 19:08:04 +00:00
Evan Cheng
f020ff9440
Add result of a Xform to isel queue.
...
llvm-svn: 30497
2006-09-19 18:40:15 +00:00
Chris Lattner
87d05ea43b
If multiple predicates are listed, they must all pass
...
llvm-svn: 30476
2006-09-19 00:41:36 +00:00
Chris Lattner
7498e29ca4
There!
...
llvm-svn: 30473
2006-09-18 22:41:07 +00:00
Chris Lattner
b54881691d
Fix Regression/TableGen/2006-09-18-LargeInt.td
...
llvm-svn: 30472
2006-09-18 22:28:27 +00:00
Jim Laskey
86b2204935
Switching to NewNightlyTest.php
...
llvm-svn: 30394
2006-09-15 17:03:36 +00:00
Chris Lattner
8b65094e0f
Relax this check.
...
llvm-svn: 30381
2006-09-14 23:54:24 +00:00
Jim Laskey
eda9265efc
No longer used, and confuses maintainers
...
llvm-svn: 30248
2006-09-11 16:02:58 +00:00
Evan Cheng
f82eb13e3b
1) With X86 lowering change, the following can no longer happen since
...
the branch's chain is also produced by cmp.
[ch, r : ld]
^ ^
| |
[XX]--/ \- [flag : cmp]
^ ^
| |
\---[br flag]-
Remove an isel check which prevents loads from being folded into cmp / test
instructions.
2) Whenever possible, delete a selected node to allow more load folding
opportunities. Note not all nodes can be deleted after it has been
selected. Some may have simply morphed; some have not changed at all (e.g.
EntryToken).
llvm-svn: 30242
2006-09-11 02:24:43 +00:00
Evan Cheng
9d17d65cc4
Generated isel should favors explicit constant operand (+2) over an operand with a predicate (+1).
...
llvm-svn: 30180
2006-09-08 07:26:39 +00:00
Chris Lattner
382ed3f1d9
Fix JIT encoding of two-addr instructions.
...
llvm-svn: 30111
2006-09-05 03:01:52 +00:00
Chris Lattner
59a4d8dfcd
Fix a long-standing wart in the code generator: two-address instruction lowering
...
actually *removes* one of the operands, instead of just assigning both operands
the same register. This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.
Changing this also gets rid of a bunch of hacky code in various places.
This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.
llvm-svn: 30108
2006-09-05 02:12:02 +00:00
Chris Lattner
997e7e3d45
Make sure to clear CurDefmPrefix = 0, otherwise stuff after a defm won't
...
parse right. This fixes TableGen/MultiClass.td
llvm-svn: 30037
2006-09-01 22:07:27 +00:00
Chris Lattner
4c597bb380
fix an assertion with multidefs. Def inside of multiclasses don't need to
...
be complete.
llvm-svn: 30034
2006-09-01 21:59:03 +00:00
Chris Lattner
67e2187a04
regenerate
...
llvm-svn: 30029
2006-09-01 21:14:42 +00:00
Chris Lattner
948354e18e
Add often-requested support for defining "multiclasses" which can be instantiated.
...
This allows you to define multiple definitions with one line, encouraging
more .td file factoring.
llvm-svn: 30027
2006-09-01 21:13:49 +00:00
Evan Cheng
77da6a9609
Issue cvs co with -P option to prune empty directories. Remove the unnecessary
...
update stage.
llvm-svn: 29955
2006-08-29 18:01:18 +00:00
Reid Spencer
3e62da9ed1
Add virtual methods to all subclasses so they are not overloaded.
...
llvm-svn: 29930
2006-08-28 00:12:25 +00:00
Chris Lattner
7890c00e2c
Use compiler.h instead of hand rolling our own macro
...
llvm-svn: 29913
2006-08-27 13:16:24 +00:00
Evan Cheng
10a7268b85
Do not emit getTargetNode() and SelectNodeTo() which takes more than 3
...
SDOperand arguments. Use the variants which take an array and number instead.
llvm-svn: 29906
2006-08-27 08:11:28 +00:00
Evan Cheng
1c3d571e4b
SelectNodeTo now returns a SDNode*.
...
llvm-svn: 29901
2006-08-26 08:00:10 +00:00
Evan Cheng
36c38110c4
Minor getCopyToReg() call change.
...
llvm-svn: 29900
2006-08-26 07:39:28 +00:00
Evan Cheng
2db7799507
Select() no longer require Result operand by reference.
...
llvm-svn: 29898
2006-08-26 05:34:46 +00:00
Evan Cheng
930bc5331d
Remove dead code.
...
llvm-svn: 29897
2006-08-26 01:34:15 +00:00
Evan Cheng
2cc7e2ce0c
A bit more clean up.
...
llvm-svn: 29893
2006-08-26 01:02:19 +00:00
Evan Cheng
b96b719724
- Clean up tablegen dag isel generator code.
...
- Clean up the code generated by tablegen:
* AddToISelQueue now takes one argument.
* ComplexPattern matching condition can now be shared.
* Eliminate passing unnecessary arguments to emit routines.
* Eliminate some unneeded SDOperand declarations in select routines.
* Other minor clean ups.
- This reduces foot print slightly: X86ISelDAGToDAG.o is reduced from 971k
to 823k.
llvm-svn: 29892
2006-08-26 00:59:04 +00:00
Patrick Jenkins
6c18e5e7b7
Corrected an error that was introduced yesterday that caused the GCC
...
version to be left blank if the build failed.
Also corrected a problem where if the build failed the nightly tester
would still try to read the results of the Dejagnutests log even
though it didnt exist.
llvm-svn: 29829
2006-08-22 18:11:19 +00:00
Patrick Jenkins
d3d74dec7b
The new nightly tester should stop outputing a message stating the
...
testresults directory is not present unless the script is run as verbose.
llvm-svn: 29797
2006-08-21 20:45:57 +00:00
Patrick Jenkins
253fe71c46
These changes reflect the changes in the database for how tests are stored
...
and bring the handing of dejagnu tests into compliance with this new scheme.
llvm-svn: 29772
2006-08-18 18:00:21 +00:00
Patrick Jenkins
8a8893471f
Changing the format dejagnu tests are submitted. We used to only submit multisource information for pass fail. Now we submit all pass/fail test information. This should fix the issue where some results were not being reported.
...
llvm-svn: 29757
2006-08-17 22:11:03 +00:00
Patrick Jenkins
de01f0e1c2
My last commit added some experimental features I have been working on. This commit rolls those back.
...
llvm-svn: 29738
2006-08-16 22:32:20 +00:00
Patrick Jenkins
ca80c08de2
Changed the call to countloc.sh so that the correct topdirectory of the llvm build is set.
...
llvm-svn: 29736
2006-08-16 22:18:41 +00:00
Evan Cheng
7fb75bbc8d
SelectNodeTo() may return a SDOperand that is different from the input.
...
llvm-svn: 29726
2006-08-16 07:30:09 +00:00
Chris Lattner
9611f01574
The generated runloop shouldn't require Select to update 'Result'. In fact
...
we'd like to remove result entirely.
llvm-svn: 29713
2006-08-15 23:42:26 +00:00
Chris Lattner
3771e3035f
allow Select to return the node being selected if RAU isn't needed.
...
llvm-svn: 29712
2006-08-15 23:27:50 +00:00
Reid Spencer
452be375b7
Simplify this a little bit.
...
llvm-svn: 29695
2006-08-15 03:50:10 +00:00
Reid Spencer
9d1b18e36e
This script takes arguments so remove the check for number of arguments,
...
just check the first arg to see if its -topdir.
llvm-svn: 29694
2006-08-15 03:48:22 +00:00
Reid Spencer
7f2ce5b626
Make all tools that use llvmdo have a -topdir option that allows the top
...
source dir for LLVM to be specified explicitly. This removes the dependency
on the llvm-config script. If the option is not given, then the scripts use
llvm-config which should be both built and in the PATH. This arrangement
provides a useful default for most developers but also allows the nightly
tester to execute countloc.sh before llvm-config is built and without
altering the PATH.
llvm-svn: 29663
2006-08-14 18:49:05 +00:00
Patrick Jenkins
08a5429d76
Added some comments to clarify code around sub TestDirectory
...
llvm-svn: 29658
2006-08-14 16:07:14 +00:00
Reid Spencer
accb07b254
1. fix bug by ensuring we start at the llvm source root.
...
2. make use of the -code-only option on llvmdo
3. Add some debug print statements to find #1
llvm-svn: 29655
2006-08-13 19:03:06 +00:00
Reid Spencer
e309e97cbd
Count the documentation. Otherwise we take a 30,000 hit in the LOC on the
...
nightly test graph. And, documentation is important.
llvm-svn: 29654
2006-08-13 18:59:40 +00:00
Reid Spencer
283f511a60
Use the new -code-only option to llvmdo so that we only count things that
...
are considered to be code. This will give a drop in the LOC count on the
nightly testers, but it is more accurate than previous estimates.
llvm-svn: 29653
2006-08-13 18:29:21 +00:00
Reid Spencer
08a7d6413f
Add a -code-only option which restricts llvmdo to visiting just those
...
files that are considered to be code. Documentation is excluded.
llvm-svn: 29652
2006-08-13 18:28:27 +00:00
Reid Spencer
24b0f0757f
Changes for LLVM coding standard compliance:
...
1. Remove tabs
2. Wrap to 80 columns
3. Put spaces between "if" or "elsif" and expression
4. Put { on same line as if statement.
5. Make indentation be 2 spaces.
Functionality change:
Run utils/countloc.sh after the build is done. This is necessary because
that script now uses llvm-config to find the top src directory.
llvm-svn: 29651
2006-08-13 09:53:02 +00:00
Reid Spencer
21f214fa6b
Lexer.cpp is a generated file both in lib/AsmParser and projects/Stacker
...
so we remove it from being counted.
llvm-svn: 29641
2006-08-11 23:58:58 +00:00
Reid Spencer
69ce7523c9
Weed out some cruft and add in some missing extensions.
...
llvm-svn: 29638
2006-08-11 23:51:05 +00:00
Reid Spencer
89414d003f
Weed out cruft that should not be counted and add in extensions we
...
previously missed.
llvm-svn: 29637
2006-08-11 23:50:27 +00:00
Patrick Jenkins
2428c13b4e
Added two flags (-submit-server and -submit-script) which allow the user to specify where the test results are submitted too. If these are not specified they default to the LLVM.org server.
...
llvm-svn: 29633
2006-08-11 23:02:09 +00:00
Reid Spencer
8966f69927
Make this script not care where it is run from by getting the llvm src
...
root from the llvm-config script.
llvm-svn: 29632
2006-08-11 21:55:31 +00:00
Reid Spencer
c8a4b914d4
Make llvmdo and llvmgrep invulnerable to where they are run from by getting
...
the llvm source root from the llvm-config command. The dependency now is
that the correct llvm-config command is in the path. For most developers
this is the case.
llvm-svn: 29630
2006-08-11 21:53:27 +00:00
Reid Spencer
15ed5aec07
Clean up the HTML output. Add a -filedetails option to report the number of
...
lines contributed by each user to each file.
llvm-svn: 29624
2006-08-11 20:44:17 +00:00
Reid Spencer
d06abd82a2
Remove blank line at end of file, removing test user "foo" from CVS history.
...
llvm-svn: 29623
2006-08-11 19:42:11 +00:00
Reid Spencer
8746dd4a70
Drop the -details option, it was broken. If you want to know about a
...
particular directory, just pass that directory to the script. Also, clean
up the HTML output, put list of skipped dirs at the end, and make a few
other minor improvements.
llvm-svn: 29620
2006-08-11 18:36:55 +00:00
Evan Cheng
963d61dc86
Use SmallVector instead.
...
llvm-svn: 29619
2006-08-11 18:33:41 +00:00
Evan Cheng
5950c56f73
- Prevent some functions from being inlined to eliminate the code size bloat
...
introduced by previous commit.
- SelectCode now returns a SDNode*. If it is not null, the selected node
produces the same number of results as the input node. The seletion loop
is responsible for calling ReplaceAllUsesWith() to replace the input node
with the output target node. For other cases, e.g. when load is folded,
the selection code is responsible for calling ReplaceAllUsesOfValueWith()
and SelectCode returns NULL.
- Other clean ups.
llvm-svn: 29602
2006-08-11 08:59:35 +00:00
Reid Spencer
99112f11ec
Fix a comment.
...
llvm-svn: 29590
2006-08-09 19:40:13 +00:00
Chris Lattner
947ac60771
Revert previous patch
...
llvm-svn: 29585
2006-08-09 16:44:44 +00:00
Tanya Lattner
3707c6e4e3
Reverting back to original 1.8 version so I can manually merge in patch.
...
llvm-svn: 29584
2006-08-09 16:41:21 +00:00
Evan Cheng
3a9bcad4c4
Merge some NightlyTest.pl changes.
...
llvm-svn: 29579
2006-08-09 05:45:12 +00:00
Chris Lattner
7b1362fa52
Start eliminating temporary vectors used to create DAG nodes. Instead, pass
...
in the start of an array and a count of operands where applicable. In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap. In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.
I updated a lot of code calling getNode that takes a vector, but ran out of
time. The rest of the code should be updated, and these methods should be
removed.
We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.
It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.
llvm-svn: 29566
2006-08-08 02:23:42 +00:00
Patrick Jenkins
b2c90ef2c6
Removed unneccesary output from nightly tester
...
llvm-svn: 29565
2006-08-08 02:03:53 +00:00
Evan Cheng
c6627fc5d7
Making TableGen'd instruction selection code non-recursive. This fixes PR805.
...
llvm-svn: 29548
2006-08-07 22:17:58 +00:00
Patrick Jenkins
9ca71b7632
Reinstated the sending of a list of all dejagnutests run. Also fixed a rather embarresing error introduced during version 1.41 where i commented out the actual sending of the data to the results server.
...
llvm-svn: 29538
2006-08-07 01:54:37 +00:00
Patrick Jenkins
e9d04e428a
no longer sending the list of all dejagnu tests because it is too big at the present time
...
llvm-svn: 29537
2006-08-06 21:47:43 +00:00
Patrick Jenkins
81b25121b6
Changed a = to a .= so we now append tests we have performed to the master list of all tests instead of assigning it as the master list.
...
llvm-svn: 29531
2006-08-04 21:42:58 +00:00
Patrick Jenkins
a24161d470
Made some more changes to the print statements in the nightly tester. The last commit was a preemptive strike.
...
llvm-svn: 29526
2006-08-04 17:55:01 +00:00
Patrick Jenkins
92b5a09795
Encapsulated all of the print statements in "if( $VERBOSE) { }". The testing script will be absoutely silent now except for errors, which will still be printed to the annoyance of the user.
...
llvm-svn: 29525
2006-08-04 17:53:27 +00:00
Patrick Jenkins
0f14694533
We should now send the correct list of dejagnu tests instead of the csv file of test results when we submit results back to the nightly tester.
...
llvm-svn: 29523
2006-08-04 17:40:54 +00:00
Reid Spencer
7b84a401c4
Print an error message if the lib directory (first argument) is not a
...
directory.
llvm-svn: 29508
2006-08-03 19:10:03 +00:00
Patrick Jenkins
7ec4fed8cf
One of the directories we were searching in for .o and .a files was wrong. We now search /lib instead of /libs.
...
llvm-svn: 29496
2006-08-03 16:28:58 +00:00
Chris Lattner
6f475f0904
Remove some extraneous newlines.
...
llvm-svn: 29492
2006-08-03 00:42:26 +00:00
Chris Lattner
8afa040b03
Really add support for compilers without noinline
...
llvm-svn: 29491
2006-08-03 00:26:13 +00:00
Patrick Jenkins
a100384417
We now only search the following directories for .o and .a files:
...
utils/
libs/
tools/
Release/ & Debug/
as per Chris.
llvm-svn: 29488
2006-08-02 23:48:07 +00:00
Patrick Jenkins
cc89dd84d7
Removed some dead code and hopefully fixed the issue where the total list of tests was not being sent
...
llvm-svn: 29476
2006-08-02 18:37:40 +00:00
Reid Spencer
eb2516f29e
Fix a problem with use of undefined variables. Print an error message if
...
the first argument is omitted. Attempt to use a standard/default font.
Make the generation of the DOT file readable.
llvm-svn: 29429
2006-08-01 08:09:03 +00:00
Evan Cheng
64b9364083
Pass N by reference to select functions to prevent gcc from allocating more stack.
...
llvm-svn: 29423
2006-08-01 01:07:48 +00:00
Evan Cheng
1335c08549
Remove an unneeded match condition: the type check for root node has been
...
moved to outside the actual select routine.
llvm-svn: 29415
2006-07-31 19:01:58 +00:00
Andrew Lenharth
c9b52f1f1b
fix externals
...
llvm-svn: 29409
2006-07-29 04:27:34 +00:00
Evan Cheng
09f9f995f5
Split each select function for a particular opcode into multiple ones. One
...
per possible ValueType of the node. e.g. Select_add is split into Select_add_i8,
Select_add_i16, etc.
For opcodes which do not produce a non-chain result, it is split on the
ValueType of its first non-chain operand. e.g. Select_store.
On X86 / Mac OS X, Select_store used to be the largest function. It had a stack
frame size of 8.5k. Now the largest one is Store_i32 with a frame size of 3.1k.
llvm-svn: 29404
2006-07-28 22:51:01 +00:00
Evan Cheng
1ffea6db32
Clean up.
...
llvm-svn: 29378
2006-07-28 01:19:22 +00:00
Patrick Jenkins
25437ea178
Removed some unneccesary printing from the nightly tester.
...
llvm-svn: 29377
2006-07-28 01:06:18 +00:00
Evan Cheng
5f0e94c299
Rename IsFoldableBy to CanBeFoldedleBy
...
llvm-svn: 29376
2006-07-28 01:03:48 +00:00
Evan Cheng
3b5f1c6248
Remove InFlightSet hack. No longer needed.
...
llvm-svn: 29373
2006-07-28 00:47:19 +00:00
Reid Spencer
dc6201bb05
Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
...
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument.
Patch contributed by Anton Korobeynikov. Thanks!
llvm-svn: 29368
2006-07-27 23:00:30 +00:00
Patrick Jenkins
bee251acdd
Removed some unneccesary print statemnts
...
llvm-svn: 29362
2006-07-27 21:01:39 +00:00
Patrick Jenkins
bf01a5d7a7
ChangeDir now returns the correct value
...
llvm-svn: 29361
2006-07-27 20:21:26 +00:00
Evan Cheng
35cdbdb796
Remove dead code.
...
llvm-svn: 29359
2006-07-27 19:59:34 +00:00
Patrick Jenkins
32c79d77eb
Fixed a stupid error where changedir returned false upon success.
...
llvm-svn: 29357
2006-07-27 19:22:06 +00:00
Patrick Jenkins
9d77695860
Added more descriptive output to singlesource,multisource tests.
...
llvm-svn: 29353
2006-07-27 19:00:01 +00:00
Patrick Jenkins
83e48f5155
Removed some clutter that was left over from development.
...
Changed how changedir worked. Hopefully now when it fails it will tell us why.
llvm-svn: 29352
2006-07-27 18:28:50 +00:00
Evan Cheng
1e640aeee8
Let each target specific isel provide routine to check if a chain producing node is foldable by another.
...
llvm-svn: 29335
2006-07-27 06:36:49 +00:00
Patrick Jenkins
68d735bbca
I made a stupid mistake when adding support for -use-gmake. ~PJ
...
llvm-svn: 29321
2006-07-27 01:24:35 +00:00
Patrick Jenkins
c839718eec
added support for the -use-gmake option. This will come in handy when running the test on SunOS.
...
llvm-svn: 29319
2006-07-27 01:17:17 +00:00
Patrick Jenkins
ba02cd76ce
This change will allow support for SunOS to the testing script. It adds a check to see if we're running on SunOS and if so, then uses gmake instead of make.
...
llvm-svn: 29316
2006-07-27 01:03:46 +00:00
Evan Cheng
978280e425
Fix for bug 840. Only use noinline attribute if gcc version >= 3.4
...
llvm-svn: 29311
2006-07-26 23:06:27 +00:00
Reid Spencer
4198005703
Add a feature for debugging library dependency cycles, -why option. This
...
implies -flat and will produce a list of all the symbols for each library
that another library depends on. Run the output through c++filt for
better readability. Also, don't generate a temporary file for storing the
dependent library names. Perl can handle it in a %hash.
llvm-svn: 29273
2006-07-25 19:12:06 +00:00
Patrick Jenkins
77199e9893
Fixing a syntax error and adding buildtype to the .a and .o file size information.
...
llvm-svn: 29270
2006-07-23 22:57:28 +00:00
Patrick Jenkins
ac3524e81d
When the ability to gather .a and .o file sizes was added, it changed the directory the perl script was in so when we tried to run dejagnu tests, everything failed.
...
llvm-svn: 29269
2006-07-23 21:38:07 +00:00
Patrick Jenkins
b8bacbaf5d
added status message during nightly test
...
llvm-svn: 29263
2006-07-22 00:00:08 +00:00
Evan Cheng
a80a26a5f8
Removed a hack intended to allow (store (op (load))) folding. Will handle this with preprocessing.
...
llvm-svn: 29258
2006-07-21 22:19:51 +00:00
Patrick Jenkins
889052bcba
Added a check to skip dejagnu test results gathering if we did not run dejagnu tests
...
llvm-svn: 29252
2006-07-21 21:58:06 +00:00
Patrick Jenkins
3d34e1c416
Fixed an issue of variable scope that prevented file size from being submitted to the server.
...
llvm-svn: 29251
2006-07-21 21:43:09 +00:00
Jim Laskey
085a8477a7
Eliminate data relocations by using NULL instead of global empty list.
...
llvm-svn: 29250
2006-07-21 21:15:20 +00:00
Jim Laskey
a67adda697
Use an enumeration to eliminate data relocations.
...
llvm-svn: 29249
2006-07-21 20:57:35 +00:00
Patrick Jenkins
79ee516a92
Added code to get .a and .o file sizes and submit them to the server in the nightly report.
...
llvm-svn: 29248
2006-07-21 19:51:40 +00:00
Patrick Jenkins
e23fc52a3a
Fixed issue where nightly test always tells you you need to use -nickname
...
llvm-svn: 29241
2006-07-21 01:39:42 +00:00
Patrick Jenkins
335a1ff9e5
The nightly tester will no longer report numbers instead of tests performed.
...
llvm-svn: 29240
2006-07-21 01:34:01 +00:00
Evan Cheng
94c6f2c3b5
Also checks for noResults field.
...
llvm-svn: 29235
2006-07-20 23:36:20 +00:00
Patrick Jenkins
b246f08be0
We now fail and print an error message if a nightly tester does not specify a nickname on the command line
...
llvm-svn: 29230
2006-07-20 22:28:43 +00:00
Patrick Jenkins
93ab06eda2
Fixed a problem that caused the script to abort right before it sent out the information
...
llvm-svn: 29218
2006-07-20 16:54:43 +00:00
Patrick Jenkins
9f7c5e1b28
Removed the portion that determines which tests are newly passing/failing because we no longer keep the previos days list on the testing machines.
...
Added functionality to send lists of all tests, all passing tests, all failing tests all unexpected failing tests.
llvm-svn: 29209
2006-07-19 17:52:51 +00:00
Evan Cheng
0675bc6539
Make sub- and super- register classes const.
...
llvm-svn: 29200
2006-07-19 05:58:18 +00:00
Chris Lattner
8d82c97338
Fix a bug handling instructions, like blr, which just consist of a text
...
string. The return value of printInstruction should be true for these.
llvm-svn: 29196
2006-07-19 01:39:06 +00:00
Evan Cheng
abd650f034
Add code size to target instruction use it as the 3rd isel sorting tie-breaker.
...
llvm-svn: 29193
2006-07-19 00:24:41 +00:00
Evan Cheng
708ca90182
Make sub- super- reg-class tables static.
...
llvm-svn: 29190
2006-07-18 22:18:31 +00:00
Patrick Jenkins
9ec7ba3d02
yet another change to get the correct gcc version for the nightly test results.
...
llvm-svn: 29188
2006-07-18 21:21:53 +00:00
Chris Lattner
4ec74164ba
Fix case where identical cases were not detected across case #0 , because
...
instructions not handled would have a case value of #0 , throwing things off.
This marginally shrinks the X86 asmprinter, but shrinks the sparc asmwriter
by 25 lines.
llvm-svn: 29187
2006-07-18 19:27:30 +00:00
Chris Lattner
77571f3b5e
Fix an accidentally duplicated line that caused tblgen to crash on itanium.
...
Add an assert that catches the real problem earlier.
llvm-svn: 29185
2006-07-18 19:06:01 +00:00
Chris Lattner
7ee758d987
Maximally group commands. When all instructions within a command set have a
...
series of identical commands, handle them all with one switch. In the case
of the x86 at&t asm printer, only 3 switches are needed for all instructions.
llvm-svn: 29184
2006-07-18 18:28:27 +00:00
Chris Lattner
5ea6af7b07
Change generator to remove operands as it processes them. No change in
...
generated file.
llvm-svn: 29183
2006-07-18 17:56:07 +00:00
Chris Lattner
39569f417f
Handle the last operand more intelligently. When emitting the \n, also
...
return from the asmprinter to make the generated asmprinter both more
efficient and smaller.
llvm-svn: 29182
2006-07-18 17:50:22 +00:00
Chris Lattner
2c14435831
Emit switches with 1/2 cases as unconditional code or an if/then/else for
...
tidyness.
llvm-svn: 29181
2006-07-18 17:43:54 +00:00
Chris Lattner
b84950e599
Steal bits from the asm string index to use for operand information. On both
...
x86 and ppc, this gets us 4 more bits to play with, since the string indices
both only use 12 bits.
llvm-svn: 29180
2006-07-18 17:38:46 +00:00
Chris Lattner
c4f6ee6c6d
Merge operand info and asmstr idx into a single 32-bit field. No other change.
...
llvm-svn: 29179
2006-07-18 17:32:27 +00:00
Patrick Jenkins
6d30beb37e
Minor output changes.
...
llvm-svn: 29178
2006-07-18 17:21:30 +00:00
Chris Lattner
12ac6ac958
Completely change the structure of the generated asmprinter to be more table
...
based and less switch-statements-with-hundreds-of-cases based. This shrinks
the x86 asmprinters to about 1/3 their previous size.
Other improvements coming.
llvm-svn: 29177
2006-07-18 17:18:03 +00:00
Patrick Jenkins
aef7b87361
If a gccpath is specified when invoking the nightly test script we will hopefully now use that gcc for the gcc version. Also fixed some 80 char column stuff.
...
llvm-svn: 29162
2006-07-17 16:41:19 +00:00
Evan Cheng
1910357655
Use __attribute__((noinline)) only if compiled by gcc.
...
llvm-svn: 29161
2006-07-16 06:14:37 +00:00
Evan Cheng
22ef77c90c
Parameterize target node ValueType to allow more sharing of emit functions.
...
Also reduce the number of arguments passed to emit functions and removed a
hack.
llvm-svn: 29160
2006-07-16 06:12:52 +00:00
Evan Cheng
ff3dc2868c
Reduce instruction selection code size and stack frame size by factoring
...
code that emit target specific nodes into emit functions that are uniquified
and shared among selection routines.
e.g. This reduces X86ISelDAGToDAG.o (release) from ~2M to ~1.5M. Stack frame
size of Select_store from ~13k down to ~8k.
This is the first step. Further work to enable more sharing will follow.
llvm-svn: 29158
2006-07-15 08:45:20 +00:00
Chris Lattner
6c71767f88
The generated index array should be const.
...
llvm-svn: 29155
2006-07-14 23:14:02 +00:00
Chris Lattner
e6892852be
Emit the string information for the asm writer as a single large string
...
and index into it, instead of emitting it like this:
static const char * const OpStrs[] = {
"PHINODE\n", // PHI
0, // INLINEASM
"adc ", // ADC32mi
"adc ", // ADC32mi8
...
The old way required thousands of relocations that slows down link time and
dynamic load times.
This also cuts about 10K off each of the X86 asmprinters, and should shrink
the others as well.
llvm-svn: 29152
2006-07-14 22:59:11 +00:00
Patrick Jenkins
1e93371212
Fixed an issue where the user specified gcc was not the gcc we report to the nightly test server.
...
llvm-svn: 29144
2006-07-14 20:44:09 +00:00
Jim Laskey
a140e5e06c
Clean up.
...
llvm-svn: 29137
2006-07-13 22:17:08 +00:00
Jim Laskey
a96045b549
1. Simplfy bit operations.
...
2. Coalesce instruction cases.
llvm-svn: 29135
2006-07-13 21:02:53 +00:00
Patrick Jenkins
af67797298
Syntax error. I will run perl -c before commiting perl scripts.
...
llvm-svn: 29133
2006-07-13 16:58:42 +00:00
Patrick Jenkins
1b959dfcc6
Fixed some small bugs exposed when trying to get a sparc machine to run the script. Specifically some misnamed variables.
...
llvm-svn: 29132
2006-07-13 16:56:48 +00:00
Jim Laskey
e3cc434032
Move base value of instruction to lookup table to prepare for case reduction.
...
llvm-svn: 29122
2006-07-12 19:15:43 +00:00
Jim Laskey
d19ba2cf6c
It was pointed out that DEBUG() is only available with -debug.
...
llvm-svn: 29106
2006-07-11 18:25:13 +00:00
Jim Laskey
4c0d841280
Ensure that dump calls that are associated with asserts are removed from
...
non-debug build.
llvm-svn: 29105
2006-07-11 17:58:07 +00:00
Jim Laskey
9b46a1235a
Reduce bloat in target libraries by removing per machine instruction assertion
...
from code emitter generation.
llvm-svn: 29097
2006-07-11 01:25:59 +00:00
Patrick Jenkins
f920192ee6
Fixed some output issues where newlines were not being printed after error messages
...
llvm-svn: 29082
2006-07-10 18:35:41 +00:00
Patrick Jenkins
7aeda4b1ef
Fixed an issue that tried to cat externalprogramstable.txt from the testresults directory when it doesnt exist.
...
llvm-svn: 29080
2006-07-10 16:36:19 +00:00
Patrick Jenkins
57cbccde81
Syntax error in NewNightlyTest.pl
...
llvm-svn: 29074
2006-07-07 21:47:24 +00:00
Patrick Jenkins
60f82a42f5
Fixed a variable naming issue for the External Program Results table. Also fixed an issue with printing the sent data to a sentdata.txt
...
llvm-svn: 29073
2006-07-07 21:40:34 +00:00
Patrick Jenkins
00f6c95af4
Updated comments at top of file to reflect relevant command line options.
...
llvm-svn: 29065
2006-07-07 18:50:51 +00:00
Patrick Jenkins
5f597717ab
Added the -noremoveresults option which will not remove the $WebDir from the nightly test runs.
...
llvm-svn: 29056
2006-07-07 17:31:38 +00:00
Patrick Jenkins
c3d3d02ba2
Fixed variable naming issue that prevented $Prefix-senddata.txt from having any information
...
llvm-svn: 29046
2006-07-07 17:08:02 +00:00
Chris Lattner
28cf368f82
tblgen uses EH
...
llvm-svn: 29034
2006-07-07 00:21:17 +00:00
Patrick Jenkins
aa5eacf36e
Fixed a bug that looked for -Warnings.txt and -Tests.txt in ridiculous places.
...
llvm-svn: 29027
2006-07-06 22:32:15 +00:00
Patrick Jenkins
9433f62ad0
The first commit of NewNightlyTest.pl which instead of generating a webpage submits the results of the test to a central server for storage and display.
...
llvm-svn: 29023
2006-07-06 21:19:32 +00:00
Evan Cheng
90a25bcd6f
Ugly hack! Add helper functions InsertInFlightSetEntry and
...
RemoveInFlightSetEntry. They are used in place of direct set operators to
reduce instruction selection function stack size.
llvm-svn: 28987
2006-06-29 23:57:05 +00:00
Evan Cheng
55368f109b
Added -disable-cbe to disable C backend testing.
...
llvm-svn: 28981
2006-06-29 00:54:37 +00:00
Evan Cheng
6f9d475186
Fix -extraflags
...
llvm-svn: 28937
2006-06-27 20:30:28 +00:00
Evan Cheng
b001b267de
Rename EXTRA_FLAGS to EXTRA_OPTIONS.
...
llvm-svn: 28872
2006-06-20 18:49:13 +00:00
Chris Lattner
093d9771df
Fix an error message regression. Print:
...
LI8: (LI8:i64 (imm:i64):$imm)
instead of:
LI8: (LI8:MVT::i64 (imm:MVT::i64):$imm)
llvm-svn: 28868
2006-06-20 00:56:37 +00:00
Chris Lattner
88f2956ac8
Don't require src/dst patterns to be able to fully resolve their types,
...
because information about one can help refine the other. This allows us to
write:
def : Pat<(i32 (extload xaddr:$src, i8)),
(LBZX xaddr:$src)>;
as:
def : Pat<(extload xaddr:$src, i8),
(LBZX xaddr:$src)>;
because tblgen knows LBZX returns i32.
llvm-svn: 28865
2006-06-20 00:31:27 +00:00
Chris Lattner
25273f71bf
Make sure to use the result of the pattern to infer the result type of the
...
instruction, and the result type of the instruction to refine the pattern.
This allows us to write things like this:
def : Pat<(v2i64 (bitconvert (v16i8 VR128:$src))), (v2i64 VR128:$src)>;
as:
def : Pat<(v2i64 (bitconvert (v16i8 VR128:$src))), (VR128:$src)>
and fixes a ppc64 issue.
llvm-svn: 28863
2006-06-20 00:18:02 +00:00
Chris Lattner
dfcd07cc4c
Improve a comment.
...
llvm-svn: 28833
2006-06-16 18:25:06 +00:00
Evan Cheng
07d8ccec50
Instructions with variable operands (variable_ops) can have a number required
...
operands. e.g.
def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst, variable_ops),
"call {*}$dst", [(X86call GR32:$dst)]>;
TableGen should emit operand informations for the "required" operands.
Added a target instruction info flag M_VARIABLE_OPS to indicate the target
instruction may have more operands in addition to the minimum required
operands.
llvm-svn: 28791
2006-06-15 07:22:16 +00:00
Evan Cheng
3d60e7e72b
Allow more use of iPTR in patterns.
...
llvm-svn: 28790
2006-06-15 00:16:37 +00:00
Evan Cheng
434153a2b4
Added support for variable_ops.
...
llvm-svn: 28788
2006-06-14 22:22:20 +00:00
Evan Cheng
191886d10f
Fix support for optional input flag.
...
llvm-svn: 28784
2006-06-14 19:27:50 +00:00
Evan Cheng
fe3e6e1967
getOperandNum(): error if specified operand number is out of range.
...
llvm-svn: 28775
2006-06-13 21:47:27 +00:00
Chris Lattner
d1b52e51fa
Add a new -compileflags options, remove old externals location specifiers.
...
People should just use -with-externals.
llvm-svn: 28756
2006-06-12 19:03:17 +00:00
Chris Lattner
f506d91be6
Wrap to 80 cols
...
llvm-svn: 28743
2006-06-09 23:59:44 +00:00
Evan Cheng
45e0a3c8fa
Add -extraflags FLAGS to pass extra compilation options.
...
llvm-svn: 28707
2006-06-07 05:28:07 +00:00
Reid Spencer
00ee1dc6ea
Don't build tblgen with -pedantic or -Wno-long-long
...
llvm-svn: 28638
2006-06-01 18:20:23 +00:00
Evan Cheng
1e9556ee06
Can't trust NodeDepth when checking for possibility of load folding creating
...
a cycle. This increase the search space and will increase compile time (in
practice it appears to be small, e.g. 176.gcc goes from 62 sec to 65 sec)
that will be addressed later.
llvm-svn: 28476
2006-05-25 20:16:55 +00:00
Evan Cheng
2a4c04d35a
Fixed a really ugly bug. The TableGen'd isel is not freeing the "inflight set"
...
correctly. That is causing non-deterministic behavior (and possibly preventing
some load folding from happening).
llvm-svn: 28458
2006-05-25 00:21:44 +00:00
Chris Lattner
b3aa8ccfe0
Don't make zero-sized static arrays
...
llvm-svn: 28448
2006-05-24 17:31:02 +00:00
Chris Lattner
f604017e47
Patches to make the LLVM sources more -pedantic clean. Patch provided
...
by Anton Korobeynikov! This is a step towards closing PR786.
llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Evan Cheng
accb9d0378
Now that iPTR is a fully resolved type. We end up losing the type check for
...
patterns that look like this:
def : Pat<(i32 (X86Wrapper tconstpool :$dst)), (MOV32ri tconstpool :$dst)>;
InsertOneTypeCheck should copy the type from the resolved pattern to the
unresolved one as long as there types are different.
llvm-svn: 28389
2006-05-19 07:24:32 +00:00
Evan Cheng
00c1318055
lib/Target/Target.td
...
llvm-svn: 28386
2006-05-18 20:42:07 +00:00
Evan Cheng
fcdfdcaa96
Don't generate getCalleeSaveReg and getCalleeSaveRegClasses anymore.
...
llvm-svn: 28376
2006-05-18 00:08:46 +00:00
Evan Cheng
3cfed5af84
Typo
...
llvm-svn: 28366
2006-05-17 20:55:51 +00:00
Evan Cheng
5dc3e33623
Remove PointerType from target definition. Use abstract type MVT::iPTR to
...
represent pointer type.
llvm-svn: 28363
2006-05-17 20:37:59 +00:00
Evan Cheng
d4a056116c
Allow patterns to refer to physical registers that belong to multiple
...
register classes.
llvm-svn: 28323
2006-05-16 07:05:30 +00:00
Reid Spencer
fa5fca78ee
Don't try to reference uninitialized data. Make sure we can find "nm".
...
llvm-svn: 28277
2006-05-13 02:48:45 +00:00
Evan Cheng
409dd126bf
Noop instruction
...
llvm-svn: 28241
2006-05-12 07:47:00 +00:00
Evan Cheng
3d1e1ffd9b
Unused instruction
...
llvm-svn: 28240
2006-05-12 07:42:01 +00:00
Evan Cheng
d6549daf76
Also add super- register classes info.
...
llvm-svn: 28221
2006-05-11 07:30:26 +00:00
Evan Cheng
2af8a9f980
Watch out for the following case:
...
1. Use expects a chain output.
2. Node is expanded into multiple target ops.
3. One of the inner node produces a chain, the outer most one doesn't.
llvm-svn: 28209
2006-05-10 02:47:57 +00:00
Evan Cheng
0655b538d6
Fix a load folding bug. It is exposed by a multi- resulting instructions
...
def : Pat<> pattern.
llvm-svn: 28208
2006-05-10 00:05:46 +00:00
Evan Cheng
87b66b9aec
Add sub-register class information.
...
llvm-svn: 28195
2006-05-09 06:34:26 +00:00
Reid Spencer
f1f21b12c7
Attempt to get this script working on Darwin.
...
llvm-svn: 28085
2006-05-03 18:16:01 +00:00
Evan Cheng
ca3dc213dc
Set isStore of instructions with ISD::TRUNCSTORE root node.
...
llvm-svn: 28075
2006-05-03 02:08:34 +00:00
Chris Lattner
8cbad2f76a
Put instruction names into the first non TargetInstrInfo namespace found.
...
llvm-svn: 28043
2006-05-01 23:46:16 +00:00
Chris Lattner
da6162633a
instructions can be in different namespaces. Make sure to use the right
...
one for each instruction.
llvm-svn: 28038
2006-05-01 17:01:17 +00:00
Evan Cheng
0bae850dda
Formating
...
llvm-svn: 28036
2006-05-01 09:30:17 +00:00
Evan Cheng
efcb0061df
Mark instructions whose pattern is (store ...) isStore.
...
llvm-svn: 28032
2006-05-01 09:04:20 +00:00
Evan Cheng
9f21c2daf4
Remove the temporary option: -no-isel-fold-inflight
...
llvm-svn: 28012
2006-04-28 18:54:11 +00:00
Evan Cheng
3466555d87
When isel'ing a node, mark its operands "InFlight" before selecting them. These
...
nodes should not be folded into other nodes.
This fixes the miscompilation of PR 749.
Temporarily under flag control.
llvm-svn: 28002
2006-04-28 02:08:10 +00:00
Nate Begeman
7ed816f900
JumpTable support! What this represents is working asm and jit support for
...
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947
2006-04-22 18:53:45 +00:00
Reid Spencer
5e33caae17
Remove the extraneous --defined-only option to nm. This is the default and
...
some versions of nm don't recognize it (its a gnu option).
llvm-svn: 27928
2006-04-21 05:29:25 +00:00
Reid Spencer
05e3e8fdc9
Don't require the "dot" program if -flat option is given, and don't produce
...
any of the fancy graphs or other output. Just produce the flat, makefile
style output on stdout.
llvm-svn: 27921
2006-04-20 23:09:57 +00:00
Reid Spencer
ff132fb460
Remove the llvm-config directory. Its now in tools.
...
llvm-svn: 27918
2006-04-20 21:16:32 +00:00
Reid Spencer
d9b9561f39
llvm-config doesn't live here anymore ==> tools
...
llvm-svn: 27917
2006-04-20 21:15:41 +00:00
Reid Spencer
a0ed587d20
Update the library dependencies for 1.8 with SparcV9 now gone.
...
llvm-svn: 27910
2006-04-20 19:50:53 +00:00
Reid Spencer
416e895b56
Remove Burg as a directory to be considered.
...
llvm-svn: 27906
2006-04-20 18:47:13 +00:00
Chris Lattner
12b122aa2e
remove some stuff
...
llvm-svn: 27903
2006-04-20 18:43:59 +00:00
Reid Spencer
304e12f0ba
Burg not needed any more now that SparcV9 is gone.
...
llvm-svn: 27901
2006-04-20 18:39:19 +00:00
Chris Lattner
56e4ca77c6
Don't fill in fields that no longer exist.
...
llvm-svn: 27898
2006-04-20 18:32:22 +00:00
Evan Cheng
adc5e703ca
Rename AddedCost to AddedComplexity.
...
llvm-svn: 27841
2006-04-19 20:36:09 +00:00
Evan Cheng
318120f8ad
Allow "let AddedCost = n in" to increase pattern complexity.
...
llvm-svn: 27834
2006-04-19 18:07:24 +00:00
Chris Lattner
d664951c95
Fix a build failure on Vladimir's tester.
...
llvm-svn: 27785
2006-04-18 00:21:25 +00:00
Chris Lattner
81fa159ca9
Encode a cost of zero as a cost of 1.
...
llvm-svn: 27745
2006-04-17 05:25:16 +00:00
Chris Lattner
d134f32a85
Really, I can count!
...
llvm-svn: 27743
2006-04-17 05:05:52 +00:00
Chris Lattner
aee09fc8aa
assign stable opcodes to the various altivec ops.
...
llvm-svn: 27741
2006-04-17 00:47:18 +00:00
Chris Lattner
dab7d994ef
PPCPerfectShuffle.h is autogenerated, don't include it in the LOC counts.
...
llvm-svn: 27740
2006-04-17 00:46:09 +00:00
Chris Lattner
dd8376ca78
Rename BuildShuffleTable -> PerfectShuffle
...
llvm-svn: 27738
2006-04-17 00:35:34 +00:00
Chris Lattner
4833bf9285
rename the table
...
llvm-svn: 27737
2006-04-17 00:33:35 +00:00
Chris Lattner
a6a36551d3
Initial checking of a perfect shuffle generation program for 4-element
...
Altivec vectors.
llvm-svn: 27736
2006-04-17 00:30:41 +00:00
Reid Spencer
860522ab68
Allow an option, -with-externals, to be specified that provides the location
...
of the external tests. This turns into --with-externals option to configure.
llvm-svn: 27700
2006-04-14 13:53:56 +00:00
Reid Spencer
599a575d0e
Add missing things to the distribution.
...
llvm-svn: 27650
2006-04-13 06:27:20 +00:00
Chris Lattner
f4571f20bd
one too many l's
...
llvm-svn: 27641
2006-04-13 04:21:31 +00:00
Reid Spencer
f51d58020e
Fix a typo in the name of a file.
...
llvm-svn: 27636
2006-04-12 23:15:10 +00:00
Reid Spencer
486a137d9c
Additional files to distribute.
...
llvm-svn: 27627
2006-04-12 20:54:01 +00:00
Reid Spencer
2790312ad7
Add the llvm-config directory to the EXTRA_DIST line so it gets distributed
...
even though its not being built currently. This prevents dist-check from
failing because configure can't find llvm-config.in.in
llvm-svn: 27623
2006-04-12 19:06:14 +00:00
Andrew Lenharth
d35df8adf9
make recovering running_Olden data easier when the nightly tester eats the graphs
...
llvm-svn: 27615
2006-04-12 17:41:19 +00:00
Chris Lattner
1659f983ff
Fix a typo: Instr* -> Intr*
...
llvm-svn: 27568
2006-04-10 22:02:59 +00:00
Chris Lattner
9f8d5b538e
Infer element types for shuffle masks
...
llvm-svn: 27456
2006-04-06 20:36:51 +00:00
Chris Lattner
7f54d730f1
rename a method, to avoid confusion with llvm intrinsics.
...
llvm-svn: 27455
2006-04-06 20:19:52 +00:00
Chris Lattner
9eacf6b01c
Adjust the Intrinsics.gen interface a little bit
...
llvm-svn: 27345
2006-04-02 03:35:30 +00:00
Chris Lattner
914742aa1e
regenerate
...
llvm-svn: 27313
2006-03-31 21:54:11 +00:00
Chris Lattner
5fabd2c311
Generalize the previous binary operator support and add a string concatenation
...
operation. This implements Regression/TableGen/strconcat.td.
llvm-svn: 27312
2006-03-31 21:53:49 +00:00
Chris Lattner
ef86937943
Allow bits init values to be used in patterns, turn them into ints.
...
llvm-svn: 27286
2006-03-31 05:25:56 +00:00
Chris Lattner
f9e5ac8c9a
Final bugfix for PR724. GCC won't inline varargs functions, so use one to
...
validate the prototype of intrinsic functions. This prevents GCC from going
crazy and inlining too much stuff, eventually running out of memory.
llvm-svn: 27283
2006-03-31 04:48:26 +00:00
Chris Lattner
7ae6895610
When emitting code for the verifier, instead of emitting each case statement
...
independently, batch up checks so that identically typed intrinsics share
verifier code. This dramatically reduces the size of the verifier function,
which should help avoid GCC running out of memory compiling Verifier.cpp.
llvm-svn: 27281
2006-03-31 04:24:58 +00:00
Chris Lattner
8fd532e8a4
regenerate
...
llvm-svn: 27264
2006-03-30 22:51:12 +00:00
Chris Lattner
39d2d17cb3
Implement Regression/TableGen/DagDefSubst.ll
...
llvm-svn: 27263
2006-03-30 22:50:40 +00:00
Evan Cheng
86b5b7cf18
Don't sort the names before outputing the intrinsic name table. It causes a
...
mismatch against the enum table.
This is a part of Sabre's master plan to drive me nuts with subtle bugs that
happens to only affect x86 be. :-)
llvm-svn: 27237
2006-03-28 22:25:56 +00:00
Chris Lattner
723cb246c9
Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum value. Split them into separate enums.
...
Also, don't emit dynamic checks when we can compute them statically
llvm-svn: 27202
2006-03-28 00:41:33 +00:00
Chris Lattner
424516c95a
Only compute intrinsic valuetypes when in a target .td file.
...
llvm-svn: 27197
2006-03-28 00:15:00 +00:00
Chris Lattner
8a2ffaea1d
revert this, it breaks things.
...
llvm-svn: 27196
2006-03-28 00:03:08 +00:00
Chris Lattner
50f432af88
Add support for decoding iPTR to the right pointer type.
...
llvm-svn: 27188
2006-03-27 22:48:18 +00:00
Chris Lattner
a092011a5c
Print error messages like this:
...
tblgen: In STVEBX: Intrinsic 'llvm.ppc.altivec.stvebx' expects 3 operands, not 2 operands!
instead of like this:
tblgen: In STVEBX: Intrinsic 'intrinsic_void expects 3 operands, not 2 operands!
llvm-svn: 27185
2006-03-27 22:21:18 +00:00
Chris Lattner
ed2f2220da
Add a missing check which cause an invalid .td file to crash tblgen
...
llvm-svn: 27126
2006-03-25 22:12:44 +00:00
Chris Lattner
e7a3b00d6a
When failing selection for an intrinsic, print this:
...
Cannot yet select: intrinsic %llvm.ppc.altivec.lvx
instead of this:
Cannot yet select: 0x9b047e0: v4i32,ch = INTRINSIC 0x9b04540:1, 0x9b04710, 0x9b04790, 0x9b04540
llvm-svn: 27110
2006-03-25 06:47:53 +00:00
Chris Lattner
de644c5e88
Change approach so that we get codegen for free for intrinsics. With this,
...
intrinsics that don't take pointer arguments now work. For example, we can
compile this:
int test3( __m128d *A) {
return _mm_movemask_pd(*A);
}
int test4( __m128 *A) {
return _mm_movemask_ps(*A);
}
to this:
_test3:
movl 4(%esp), %eax
movapd (%eax), %xmm0
movmskpd %xmm0, %eax
ret
_test4:
movl 4(%esp), %eax
movaps (%eax), %xmm0
movmskps %xmm0, %eax
ret
llvm-svn: 27090
2006-03-24 23:10:39 +00:00
Chris Lattner
d054091a40
fix 80 column violations
...
llvm-svn: 27084
2006-03-24 21:52:20 +00:00
Chris Lattner
92a040dbbf
Parse intrinsics correctly and perform type propagation. This doesn't currently
...
emit the code to select intrinsics, but that is next :)
llvm-svn: 27082
2006-03-24 21:48:51 +00:00
Jim Laskey
1716e53341
Add dwarf register numbering to register data.
...
llvm-svn: 27081
2006-03-24 21:15:58 +00:00
Chris Lattner
f91acdb005
Make sure to initialize the TheDef field!
...
llvm-svn: 27078
2006-03-24 20:25:01 +00:00
Chris Lattner
522211a435
Move CodeGenIntrinsic implementation to CodeGenTarget.cpp with the rest of
...
the CodeGen* implementations.
Parse the MVT::ValueType for each operand of the intrinsics.
llvm-svn: 27075
2006-03-24 19:49:31 +00:00
Chris Lattner
e6a8522990
extract some more information from the intrinsic table
...
llvm-svn: 27022
2006-03-24 01:13:55 +00:00
Reid Spencer
76fdc46b2c
Remove the interpreter component as its not working at the moment.
...
llvm-svn: 27021
2006-03-24 01:10:39 +00:00
Reid Spencer
a8d2ddbdb9
Add a .cvsignore file to get rid of notices about gram.tab.[ch]
...
llvm-svn: 27012
2006-03-23 23:46:47 +00:00
Reid Spencer
825547e65e
Add new generated files to be ignored.
...
llvm-svn: 27011
2006-03-23 23:45:32 +00:00
Reid Spencer
897fb36cec
Ignore temporary files generated by building.
...
llvm-svn: 27010
2006-03-23 23:44:24 +00:00
Reid Spencer
fa5014e918
Update to llvm-config tool, by Erik Kidd:
...
1. Check for Perl and only build llvm-config if its available.
2. Add some virtual components
3. Don't depend on "standard" location for Perl, but configured location
4. Document the tool with a POD file.
This version is now ready for testing by users.
llvm-svn: 27005
2006-03-23 23:21:29 +00:00
Reid Spencer
df1ebfd8ae
A little script to find LLVM symbols. Ideally this would use c++filt for
...
both input and output to render everything in C++, but that will be the
next patch. For now, it just runs nm and greps each .o or .a file for
the desired symbol.
llvm-svn: 27003
2006-03-23 23:04:50 +00:00
Reid Spencer
14c00d8272
Don't print out ugly command line when building LibDeps.txt.
...
llvm-svn: 27001
2006-03-23 22:42:50 +00:00
Reid Spencer
b2fb37b983
Updated for library changes:
...
1. LLVMCBackend.o now depends on LLVMCodeGen.o (why we're not sure)
2. LLVMExecutionEngine.o no longer depends on LLVMInterpreter.o nor LLVMJIT.o
Thanks, Chris.
llvm-svn: 26976
2006-03-23 06:15:27 +00:00
Evan Cheng
b632a1d0d5
Allow result node to be a simple leaf node. This enable bitconvert patterns
...
like this:
def : Pat<(v4i32 (bitconvert (v4f32 VR128:$src))), (v4i32 VR128:$src)>;
llvm-svn: 26968
2006-03-23 02:35:32 +00:00
Reid Spencer
5b747af8e1
These changes are necessary to support the new llvm-config tool. llvm-config
...
is a handy tool for users of LLVM who want to be able to quickly get
information about LLVM's configuration. It is intended to be used in the
command line of other tools. Documentation will be forthcoming in a
subsequent patch.
llvm-svn: 26952
2006-03-22 15:59:55 +00:00
Evan Cheng
d21f479c5f
Don't forget to promote xform function to an explicit node for def : Pat<>
...
patterns.
llvm-svn: 26929
2006-03-21 20:44:17 +00:00
Chris Lattner
4da595f4c8
minor code simplification
...
llvm-svn: 26918
2006-03-21 06:42:58 +00:00
Reid Spencer
fcd146d8c2
Cause the various warnings list to be generated via a <ul> list with
...
text enclosed in <tt>. This ensures that (a) the text is in a fixed width
font (to indicated generated text) and (b) the text wraps without causing
the page width to be extended. The main result of this is that the report
will wrap to conform to the window size in which it is displayed instead of
having a very wide length if a warning message is long.
llvm-svn: 26916
2006-03-21 01:21:39 +00:00
Evan Cheng
e87add642d
The node wrapped in PatLeaf<> should be treated as a leaf even if it isn't
...
one, i.e. don't select it.
llvm-svn: 26909
2006-03-20 22:53:06 +00:00
Evan Cheng
38a1075865
It should be ok for a xform output type to be different from input type.
...
llvm-svn: 26899
2006-03-20 08:09:17 +00:00
Evan Cheng
f0effde00d
Copy matching pattern's output type info to instruction result pattern.
...
The instruction patterns do not contain enough information to resolve the
exact type of the destination if it of a generic vector type.
llvm-svn: 26892
2006-03-20 06:04:09 +00:00
Chris Lattner
eb65663732
Add a new SDTCisIntVectorOfSameSize type constraint
...
llvm-svn: 26890
2006-03-20 05:39:48 +00:00
Reid Spencer
502bb9af8b
The library dependency file in flat format. This file is generated by the
...
makefile using the utils/GenLibDeps.pl script with the -flat option. It
records the dependencies between libraries in such a way that the
llvm-config script can easily read it (in makefile dependency format).
llvm-svn: 26876
2006-03-19 22:12:30 +00:00
Reid Spencer
d6bae0ca62
First cut at the Makefile for llvm-config. This initial version just provides
...
the rule for building the LibDeps.txt file using GenLibDeps.pl. This needs
to be done from time to time manually in order to keep LibDeps.txt up to
date.
llvm-svn: 26875
2006-03-19 22:10:53 +00:00
Reid Spencer
44ff229183
Add a -flat option for generating the library dependencies in a flat
...
format with one library per line, similar to a makefile dependency list.
llvm-svn: 26873
2006-03-19 22:08:01 +00:00
Evan Cheng
a1f9db3ad4
getEnumName() missed v8i8, v4i16, and v2i32 types
...
llvm-svn: 26869
2006-03-19 07:57:34 +00:00
Chris Lattner
d7cabc0f81
Fix miscodegen of V_SET0 in PPC.
...
llvm-svn: 26836
2006-03-18 00:40:36 +00:00
Reid Spencer
ee167cb334
Use the <tt> tag instead of <pre> tag to get code/file/warning lists to
...
wrap but also still be in a fixed-width font.
llvm-svn: 26825
2006-03-17 17:43:01 +00:00
Chris Lattner
6c339fec5a
allow the GCCBuiltinName field to be optional
...
llvm-svn: 26784
2006-03-15 19:15:26 +00:00
Jeff Cohen
4bf914ebcc
Fix VC++ build error.
...
llvm-svn: 26773
2006-03-15 02:51:05 +00:00