1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

954 Commits

Author SHA1 Message Date
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