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
Owen Anderson
5a542e7eda
Move non-trivial methods out of line to avoid code-size bloat.
...
llvm-svn: 55138
2008-08-21 20:58:52 +00:00
David Greene
e14ab14892
Fix ComputeMaskedBits to handle phis correctly. We need to take the
...
minimum of the known zeros.
llvm-svn: 55137
2008-08-21 20:45:12 +00:00
Mon P Wang
bf7b94fd29
Treat floating point ST1 the same as ST0 when lowering for a call result
...
llvm-svn: 55135
2008-08-21 19:54:16 +00:00
Owen Anderson
2e728c44d5
Remove unneeded #include.
...
llvm-svn: 55134
2008-08-21 19:51:25 +00:00
Dan Gohman
07ec8e6f4a
Add libcalls for the new rounding opcodes.
...
llvm-svn: 55133
2008-08-21 18:38:14 +00:00
Dan Gohman
3ccc1c2aaf
Fix a typo that Dale noticed.
...
llvm-svn: 55132
2008-08-21 18:13:12 +00:00
Dan Gohman
b5635a2c51
Add libm-oriented ISD opcodes for rounding operations.
...
llvm-svn: 55130
2008-08-21 17:55:02 +00:00
Dan Gohman
7c434de476
Have FastISel skip the multiply by 1 for getelementptr on i8*.
...
llvm-svn: 55129
2008-08-21 17:37:05 +00:00
Anton Korobeynikov
5bbfc7e05f
Allow inline asm nodes with empty bodies inside JIT.
...
This unbreaks explicit reg vars inside JIT, which are
implemented in such hacky way :)
llvm-svn: 55128
2008-08-21 17:33:01 +00:00
Chris Lattner
ae658fe7e1
Switch from an O(n) method to an O(1) method for changing non-constant
...
operands.
llvm-svn: 55127
2008-08-21 17:31:45 +00:00
Dan Gohman
42fa2945d3
getelementptr doesn't work on x86-64 yet, because it
...
has MOV64ri32 and no plain MOV64ri.
llvm-svn: 55126
2008-08-21 17:28:42 +00:00
Dan Gohman
f4269f7bea
MVT::getMVT uses iPTR for pointer types, while we need the actual
...
intptr_t type in this case. FastISel can now select simple
getelementptr instructions.
llvm-svn: 55125
2008-08-21 17:25:26 +00:00
Dan Gohman
4b801d38a1
Simplify SelectRoot's interface, and factor out some common code
...
from all targets.
llvm-svn: 55124
2008-08-21 16:36:34 +00:00
Dan Gohman
512af985d7
Elements in DeadNodeSet are checked for use_empty() before they
...
are actually deleted, so it's not necessary to remove re-used
nodes from the set.
llvm-svn: 55123
2008-08-21 16:24:54 +00:00
Dan Gohman
e8fc6c5a30
SelectionDAGISel::SelectRootInit does not need to be virtual.
...
llvm-svn: 55122
2008-08-21 16:06:51 +00:00
Dan Gohman
5af74620dc
Make HandleSDNode::getValue return an SDValue instead of
...
the full SDUse, which isn't needed.
llvm-svn: 55121
2008-08-21 16:02:46 +00:00
Dan Gohman
e5a492f261
Don't silently ignore errors when opening output streams.
...
llvm-svn: 55120
2008-08-21 15:33:45 +00:00
Bill Wendling
2ba1a2b516
Clean up whitespace.
...
llvm-svn: 55117
2008-08-21 08:38:54 +00:00
Chris Lattner
bb8a53802b
remove redundant include
...
llvm-svn: 55116
2008-08-21 06:41:07 +00:00
Chris Lattner
16121a7f73
Fix the build with gcc 4.3 as the host, patch by Zhongxing Xu!
...
llvm-svn: 55115
2008-08-21 06:25:28 +00:00
Owen Anderson
902453c302
Implement operator<< in terms of basic types rather than [u]int*_t, which is better for portability. There might be some way to factor this all with metaprogramming magic, but I'm not sure how offhand.
...
llvm-svn: 55114
2008-08-21 06:20:47 +00:00
Nick Lewycky
7b87c4d8a4
Revert r54876 r54877 r54906 and r54907. Evan found that these caused a 20%
...
slowdown in bzip2.
llvm-svn: 55113
2008-08-21 05:56:10 +00:00
Chris Lattner
a87eb40ef4
unbreak the CBE on treeadd an many others.
...
llvm-svn: 55112
2008-08-21 05:51:43 +00:00
Nick Lewycky
d9012655db
Fix build on GCC 4.3.
...
llvm-svn: 55110
2008-08-21 05:36:03 +00:00
Eli Friedman
fdab2ca258
Remove size_t operator; this unbreaks the build on Linux. Committing on
...
the suggestion of resistor.
If this breaks some other platform, please go ahead and back this out.
llvm-svn: 55106
2008-08-21 04:28:31 +00:00
Chris Lattner
4c3c0bfddf
recommit bcreader, handling packed structs correctly. Apparently
...
people want fast *and* correct. Sheesh.
llvm-svn: 55102
2008-08-21 02:34:16 +00:00
Daniel Dunbar
812da224c0
Revert 55090, regressions in:
...
- Postgres
- llvm-test/SingleSource/UnitTests/{2006-01-23-InitializedBitField,
2004-11-28-GlobalBoolLayout, 2003-05-02-DependentPHI}
llvm-svn: 55100
2008-08-21 01:54:58 +00:00
Dan Gohman
a6e647dd7c
Basic fast-isel support for instructions with constant int operands.
...
llvm-svn: 55099
2008-08-21 01:41:07 +00:00
Evan Cheng
45c46520da
Type of first GEP operand is always the same as the target pointer type.
...
llvm-svn: 55097
2008-08-21 01:19:11 +00:00
Dan Gohman
e628777073
Remove the code that limited FastISel to certain fixed signatures.
...
llvm-svn: 55096
2008-08-21 00:35:26 +00:00
Dan Gohman
1af9c028bc
Improve the doxygen comment for SelectInstructions::SelectInstructions.
...
llvm-svn: 55094
2008-08-21 00:19:43 +00:00
Dan Gohman
4ab3376173
Begin making more use of the FastISelEmitter class.
...
llvm-svn: 55093
2008-08-21 00:19:05 +00:00
Owen Anderson
2c1d54952b
Use raw_ostream throughout the AsmPrinter.
...
llvm-svn: 55092
2008-08-21 00:14:44 +00:00
Chris Lattner
f1d087c627
Fix an N^2 issue handling constant resolution due to RAUW in large arrays
...
this speeds up the bcreader from 6.67s to 0.12s on a testcase Daniel
provided. rdar://6158117
llvm-svn: 55090
2008-08-21 00:11:50 +00:00