1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
Commit Graph

40816 Commits

Author SHA1 Message Date
Chris Lattner
a1317640e3 use proper namespace qualifications
llvm-svn: 55259
2008-08-23 22:00:15 +00:00
Chris Lattner
565b9e9b37 Add #include
llvm-svn: 55258
2008-08-23 21:34:34 +00:00
Chris Lattner
98afd37464 add #include
llvm-svn: 55257
2008-08-23 21:33:24 +00:00
Chris Lattner
4623abf761 add #include
llvm-svn: 55252
2008-08-23 20:34:06 +00:00
Chris Lattner
719fad27a8 Split format() out to its own file, add support for formatting
up to three values in one call.

llvm-svn: 55251
2008-08-23 19:48:00 +00:00
Chris Lattner
9ef2c187a0 conditionalize this to work on windows, untested but it should work
according to the intarnetz

llvm-svn: 55248
2008-08-23 19:27:03 +00:00
Chris Lattner
b7914ec04e add a simple mechanism for formatted output. This gives raw_ostream's
all the power and risk of fprintf format strings.  Use them like this:

  OS << format("%10.4f", 42.0) << "\n" << format("%x", 42) << '\n';

llvm-svn: 55246
2008-08-23 19:23:10 +00:00
Anton Korobeynikov
496a2865db Testcase for 64bit maskmovq
llvm-svn: 55239
2008-08-23 15:53:47 +00:00
Anton Korobeynikov
be3a5a5ce9 Provide a 64 bit variant of mmx.maskmovq intrinsic lowering.
Is there way to avoid explicit target check?

llvm-svn: 55238
2008-08-23 15:53:19 +00:00
Bill Wendling
ea70fb8ec9 Reverting r55227. This was causing the following failures in the regression
tests:

Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcread-ptrptr.ll for PR1633
Failed with exit(1) at line 1
while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcread-ptrptr.ll >& /dev/null
child process exited abnormally
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-alloca.ll for PR1633
Failed with exit(1) at line 1
while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-alloca.ll >& /dev/null
child process exited abnormally
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-meta.ll for PR1633
Failed with exit(1) at line 1
while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-meta.ll >& /dev/null
child process exited abnormally
FAIL: ndbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-ptrptr.ll for PR1633
Failed with exit(1) at line 1
while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-ptrptr.ll >& /dev/null
child process exited abnormally
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcwrite-ptrptr.ll for PR1633
Failed with exit(1) at line 1
while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcwrite-ptrptr.ll >& /dev/null
child process exited abnormally

		===  Summary ===

# of expected passes		3021
# of unexpected failures	6
# of expected failures		16
make[1]: *** [check-local] Error 1
make: *** [check] Error 2

llvm-svn: 55233
2008-08-23 09:46:46 +00:00
Chris Lattner
2f629c4b80 Add a new trivial -inst-namer pass which makes it possible to diff the
before/after effects of a pass, crazy!

llvm-svn: 55230
2008-08-23 06:07:02 +00:00
Chris Lattner
0c4ec79e1e Verify that the alignment argument to llvm.memcpy is a constant
integer, PR2318.

llvm-svn: 55228
2008-08-23 05:31:10 +00:00
Chris Lattner
3bc83cafea remove verification for gc intrinsic argument types. it was indented wrong
and tblgen now knows intrinsic prototypes.

llvm-svn: 55227
2008-08-23 05:26:35 +00:00
Chris Lattner
72ee6ebb0a Fix PR2423 by checking all indices for out of range access, not only
indices that start with an array subscript.  x->field[10000] is just 
as bad as (*X)[14][10000].

llvm-svn: 55226
2008-08-23 05:21:06 +00:00
Chris Lattner
9e471bdb4b the bug was apparently fixed long ago, reenable the assertion
llvm-svn: 55224
2008-08-23 03:48:35 +00:00
Dan Gohman
a5ce6c1747 Make MBBMap a DenseMap instead of a std::map.
llvm-svn: 55220
2008-08-23 02:44:46 +00:00
Dan Gohman
a9d5f9b006 Move the point at which FastISel taps into the SelectionDAGISel
process up to a higher level. This allows FastISel to leverage
more of SelectionDAGISel's infastructure, such as updating Machine
PHI nodes.

Also, implement transitioning from SDISel back to FastISel in
the middle of a block, so it's now possible to go back and
forth. This allows FastISel to hand individual CallInsts and other
complicated things off to SDISel to handle, while handling the rest
of the block itself.

To help support this, reorganize the SelectionDAG class so that it
is allocated once and reused throughout a function, instead of
being completely reallocated for each block.

llvm-svn: 55219
2008-08-23 02:25:05 +00:00
Dan Gohman
27de898e15 Avoid creating shift-by-zero SDNodes in the common case of
i8* getelementptr. DAGCombine eliminates these, but this is
a fairly common case.

llvm-svn: 55214
2008-08-23 01:06:51 +00:00
Dan Gohman
6847bc50b9 Move SelectionDAG's constructor out of line.
llvm-svn: 55212
2008-08-23 00:50:30 +00:00
Dan Gohman
b6827db2c0 Add a clear() method to FoldingSet.
llvm-svn: 55210
2008-08-23 00:42:16 +00:00
Dale Johannesen
a8dbf73ffd Test all currently supported atomic builtins on x86-{32,64}.
These just test that they go through the BE.

llvm-svn: 55208
2008-08-22 22:39:21 +00:00
Dale Johannesen
c2d98ad011 Comprehensive test of FE handling of __sync builtins.
llvm-svn: 55206
2008-08-22 21:47:03 +00:00
Dan Gohman
071122d2a3 Reapply r55191 and r55192.
llvm-svn: 55205
2008-08-22 21:28:19 +00:00
Anton Korobeynikov
8e795209d3 Make option variables static, so they won't cause nameclash
llvm-svn: 55203
2008-08-22 21:27:49 +00:00
Bill Wendling
60e176391d Reverting r55190, r55191, and r55192. They broke the build with this error message:
{standard input}:17:bad register name `%sil'
make[4]: *** [libgcc/./_addvsi3.o] Error 1
make[4]: *** Waiting for unfinished jobs....
{standard input}:23:bad register name `%dil'
{standard input}:28:bad register name `%dil'
make[4]: *** [libgcc/./_addvdi3.o] Error 1
{standard input}:18:bad register name `%sil'
make[4]: *** [libgcc/./_subvsi3.o] Error 1

llvm-svn: 55200
2008-08-22 20:51:05 +00:00
Dan Gohman
557a7db2eb Fix the InsertBranch call.
llvm-svn: 55192
2008-08-22 19:26:10 +00:00
Dan Gohman
3b161cdce8 Support non-fallthrough unconditional branches in FastISel.
llvm-svn: 55191
2008-08-22 19:21:41 +00:00
Dan Gohman
897aa30d7c Anyext tweaks for x86. When extloading a value to i32 or i64, choose
instructions that define the full 32 or 64-bit value. When anyexting
from i8 to i16 or i32, it's not necessary to zero out the high
portion of the register.

llvm-svn: 55190
2008-08-22 19:19:31 +00:00
Owen Anderson
4ad6252b70 Fix typo.
llvm-svn: 55189
2008-08-22 18:26:07 +00:00
Dan Gohman
92921499ae Add FastISel support for PHINodes. Machine PHI nodes
are not yet updated properly, but that's a separate
task.

llvm-svn: 55187
2008-08-22 17:37:48 +00:00
Dale Johannesen
95a40e3045 Implement __sync_synchronize on ppc32. Patch by Gary Benson.
llvm-svn: 55186
2008-08-22 17:20:54 +00:00
Dan Gohman
abc71f026a Add an empty() member to FoldingSet.
llvm-svn: 55182
2008-08-22 16:14:23 +00:00
Dan Gohman
3b4af81381 Fix SmallVector's size calculation so that a size of 0 is
handled correctly, and change a few SmallVector uses to use
size 0 to more clearly reflect their intent.

llvm-svn: 55181
2008-08-22 16:07:55 +00:00
Chris Lattner
39ea1a575a improve support for systems that need unistd.h to get STDOUT_FILENO.
Patch contributed by Bjorn Reese!

llvm-svn: 55179
2008-08-22 15:45:00 +00:00
Nicolas Geoffray
00aced70f5 Also overload for char, since the "char" type depends on the host.
llvm-svn: 55173
2008-08-22 08:44:47 +00:00
Owen Anderson
e17306778c Overload for both signed and unsigned char.
llvm-svn: 55171
2008-08-22 07:42:25 +00:00
Chris Lattner
fd64cbf22d consolidate DenseMapInfo implementations, and add one for std::pair.
Patch contributed by m-s.

llvm-svn: 55167
2008-08-22 05:08:25 +00:00
Dale Johannesen
1ac64c3718 Rewrite ppc code generated for __sync_{bool|val}_compare_and_swap
so that lwarx and stwcx are always executed the same number of times.
This is important for performance, I'm told.

llvm-svn: 55163
2008-08-22 03:49:10 +00:00
Dan Gohman
46c93eebcd Add a few comments.
llvm-svn: 55157
2008-08-22 00:28:15 +00:00
Dan Gohman
a398d11527 Factor out the predicate check code from DAGISelEmitter.cpp
and use it in FastISelEmitter.cpp, and make FastISel
subtarget aware. Among other things, this lets it work
properly on x86 targets that don't have SSE, where it
successfully selects x87 instructions.

llvm-svn: 55156
2008-08-22 00:20:26 +00:00
Bill Wendling
c4c6053233 Remove tabs.
llvm-svn: 55154
2008-08-22 00:04:26 +00:00
Bill Wendling
8ff0d8f829 Testcase for PR2585.
llvm-svn: 55151
2008-08-21 23:04:49 +00:00
Bill Wendling
7840023704 Temporarily reverting r55137. This was causing the bootstrap to go into an
infinite loop.

llvm-svn: 55149
2008-08-21 22:40:10 +00:00
Owen Anderson
0b0215d531 Fix write() when the string being written is larger than the buffer. This broke various ObjC testcases
with very long symbol names.

llvm-svn: 55148
2008-08-21 22:39:33 +00:00
Bill Wendling
f105f92904 If part of the mask is "undef", then ignore it as we don't care what goes into it.
llvm-svn: 55147
2008-08-21 22:36:36 +00:00
Bill Wendling
170bd0a562 Fix whitespace. No functionality change.
llvm-svn: 55146
2008-08-21 22:35:37 +00:00
Dan Gohman
4562b2bcfe Add -mattr=sse2 so this test doesn't fail on non-x86 hosts.
llvm-svn: 55145
2008-08-21 22:34:25 +00:00
Dale Johannesen
6fe9da3acc Make x86 and sse2 explicit for non-x86 hosts.
llvm-svn: 55141
2008-08-21 21:26:06 +00:00
Dale Johannesen
aa332f4fca Accept NOT of a constant vector of int.
llvm-svn: 55140
2008-08-21 21:20:09 +00:00
Evan Cheng
ef2509b3ba Fix a number of byval / memcpy / memset related codegen issues.
1. x86-64 byval alignment should be max of 8 and alignment of type. Previously the code was not doing what the commit message was saying.
2. Do not use byte repeat move and store operations. These are slow.

llvm-svn: 55139
2008-08-21 21:00:15 +00:00