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