Daniel Dunbar
3a86fe943c
Match declaration to definition (missed a few).
...
llvm-svn: 75456
2009-07-13 06:04:06 +00:00
Daniel Dunbar
334f808562
Match declaration to definition.
...
llvm-svn: 75454
2009-07-13 06:00:13 +00:00
Lang Hames
43edca25b3
Removed some junk code that snuck in to an earlier commit.
...
llvm-svn: 75450
2009-07-13 05:01:19 +00:00
Owen Anderson
53a52215b5
Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp.
...
This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's
the only way I could figure out to make this process vaguely incremental.
llvm-svn: 75445
2009-07-13 04:09:18 +00:00
Daniel Dunbar
65553d4505
Match declaration to definition.
...
llvm-svn: 75440
2009-07-12 23:50:34 +00:00
Chris Lattner
7b9d6ebb9c
remove llvm.part.set.* and llvm.part.select.*. They have never been
...
implemented in codegen, have no frontend to generate them, and are
better implemented with pattern matching (like the ppc backend does
to generate rlwimi/rlwinm etc).
PR4543
llvm-svn: 75430
2009-07-12 21:08:53 +00:00
Torok Edwin
08954aa4e1
Fix assert(0) conversion, as suggested by Chris.
...
llvm-svn: 75423
2009-07-12 20:07:01 +00:00
Jakob Stoklund Olesen
ed0e1a0552
Implement support for promotion of AND/OR/XOR on integer types.
...
The blackfin processor has a legal i16 type, but only logic operations on i32.
llvm-svn: 75419
2009-07-12 18:10:18 +00:00
Jakob Stoklund Olesen
6b9f63cafa
Fix types in PromoteNode handling of CTPOP and friends.
...
llvm-svn: 75418
2009-07-12 17:43:20 +00:00
Torok Edwin
56d0659726
assert(0) -> LLVM_UNREACHABLE.
...
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
2009-07-11 20:10:48 +00:00
Torok Edwin
ccb29cd290
Convert more assert(0)+abort() -> LLVM_UNREACHABLE,
...
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
2009-07-11 13:10:19 +00:00
Evan Cheng
ede2ce71aa
Fix up support for OptionalDefOperand when it defaults to an actual register def. I need this to get ready for major Thumb1 surgery.
...
llvm-svn: 75328
2009-07-11 01:06:50 +00:00
Eli Friedman
106f2885d1
Use CreateStackStoreLoad helper in more places.
...
llvm-svn: 75320
2009-07-11 00:11:07 +00:00
Evan Cheng
b4dfce2dba
Two-address pass should use findCommutedOpIndices to determine what registers are commuted.
...
llvm-svn: 75317
2009-07-11 00:04:23 +00:00
Evan Cheng
1297799096
Use findCommutedOpIndices to find the operands to commute.
...
llvm-svn: 75312
2009-07-10 23:26:12 +00:00
David Greene
c97b778b3c
Make changes suggested by Chris and eliminate newly-added raw_ostream
...
hooks as they're no longer needed.
The major change with this patch is to make formatted_raw_ostream usable
by any client of raw_ostream.
llvm-svn: 75283
2009-07-10 21:14:44 +00:00
Duncan Sands
45210aab86
Avoid compiler warnings if assertions turned off.
...
llvm-svn: 75267
2009-07-10 20:07:07 +00:00
Evan Cheng
f075943584
Remove TargetInstrInfo::CommuteChangesDestination and added findCommutedOpIndices which returns the operand indices which are swapped (when applicable). This allows for some code clean up and future enhancements.
...
llvm-svn: 75264
2009-07-10 19:15:51 +00:00
David Greene
68ba0df07d
Eliminate an unnecessary include.
...
llvm-svn: 75256
2009-07-10 17:55:38 +00:00
David Greene
cd94645665
Redesign this to avoid standard stream classes. This stream class
...
provides pretty -printing of comments and other such things in asm
files.
llvm-svn: 75202
2009-07-09 23:56:35 +00:00
Owen Anderson
1e5f00e7a7
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!?
...
llvm-svn: 75200
2009-07-09 23:48:35 +00:00
Bob Wilson
f76798769f
Fix an apparent copy-and-paste problem in an error message.
...
llvm-svn: 75197
2009-07-09 23:42:59 +00:00
Eli Friedman
2b77eef160
Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned
...
value. Adjust other code to deal with that correctly. Make
DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of
this new flexibility to simplify the code and make it deal with unusual
vectors (like <4 x i1>) correctly. Fixes PR3037.
llvm-svn: 75176
2009-07-09 22:01:03 +00:00
Owen Anderson
092bc51cdb
As Chris pointed out, we don't actually need to pass the context around here.
...
llvm-svn: 75161
2009-07-09 18:44:09 +00:00
Chris Lattner
55b9726596
back out r75156 for now.
...
llvm-svn: 75160
2009-07-09 18:41:57 +00:00
David Greene
67cde99e90
Add some classes to produce pretty-printed asm. We'll use these
...
shortly to provide nicely printed comments and other goodies in
asm files.
llvm-svn: 75156
2009-07-09 18:27:23 +00:00
Owen Anderson
0504e0a222
Thread LLVMContext through MVT and related parts of SDISel.
...
llvm-svn: 75153
2009-07-09 17:57:24 +00:00
Evan Cheng
7452c968e4
Targets sometimes assign fixed stack object to spill certain callee-saved
...
registers based on dynamic conditions. For example, X86 EBP/RBP, when used as
frame register has to be spilled in the first fixed object. It should inform
PEI this so it doesn't get allocated another stack object. Also, it should not
be spilled as other callee-saved registers but rather its spilling and restoring
are being handled by emitPrologue and emitEpilogue. Avoid spilling it twice.
llvm-svn: 75116
2009-07-09 06:53:48 +00:00
Lang Hames
dab7b06de9
Improved tracking of value number kills. VN kills are now represented
...
as an (index,bool) pair. The bool flag records whether the kill is a
PHI kill or not. This code will be used to enable splitting of live
intervals containing PHI-kills.
A slight change to live interval weights introduced an extra spill
into lsr-code-insertion (outside the critical sections). The test
condition has been updated to reflect this.
llvm-svn: 75097
2009-07-09 03:57:02 +00:00
Dan Gohman
6b04136756
Make SelectionDAG::getVectorShuffle work properly for VECTOR_SHUFFLE
...
nodes with operand types that differ from the result type. (This
doesn't normally happen right now, because
SelectionDAGLowering::visitShuffleVector normalizes vector shuffles.)
llvm-svn: 75081
2009-07-09 00:46:33 +00:00
David Goodwin
22c2fba978
Use common code for both ARM and Thumb-2 instruction and register info.
...
llvm-svn: 75067
2009-07-08 23:10:31 +00:00
Duncan Sands
7dcc37b942
Nowadays vectors are only split if they have an even
...
number of elements. Make some simplifications based
on this (in particular SplitVecRes_SETCC). Tighten
up some checking while there.
llvm-svn: 75050
2009-07-08 21:34:03 +00:00
Bill Wendling
9242ff34c6
Use interators instead of counters for loops.
...
llvm-svn: 75046
2009-07-08 20:57:27 +00:00
Owen Anderson
a771459bb1
Push LLVMContext _back_ through IRBuilder.
...
llvm-svn: 75040
2009-07-08 20:50:47 +00:00
Owen Anderson
b17f32945f
Switch GlobalVariable ctors to a sane API, where *either* a context or a module is required.
...
llvm-svn: 75025
2009-07-08 19:03:57 +00:00
Duncan Sands
3f1e2409cc
Remove trailing whitespace. Reorder some methods
...
and cases alphabetically. No functionality change.
llvm-svn: 75001
2009-07-08 11:36:39 +00:00
Nick Lewycky
a21d3daadc
Remove the vicmp and vfcmp instructions. Because we never had a release with
...
these instructions, no autoupgrade or backwards compatibility support is
provided.
llvm-svn: 74991
2009-07-08 03:04:38 +00:00
Owen Anderson
5948fdf68b
Push LLVMContext through GlobalVariables and IRBuilder.
...
llvm-svn: 74985
2009-07-08 01:26:06 +00:00
Chris Lattner
4ac607332d
dag combine sext(setcc) -> vsetcc before legalize. To make this safe,
...
VSETCC must define all bits, which is different than it was documented
to before. Since all targets that implement VSETCC already have this
behavior, and we don't optimize based on this, just change the
documentation. We now get nice code for vec_compare.ll
llvm-svn: 74978
2009-07-08 00:31:33 +00:00
Chris Lattner
f3989abdbf
SelectionDAG::SignBitIsZero doesn't work right for vectors,
...
for now, conservatively return false.
llvm-svn: 74969
2009-07-07 23:28:46 +00:00
Dale Johannesen
4e33115e5e
Operand of asm("call") (the callee function) is represented
...
as "X" constraint and "P" modifier on x86. Make this work.
(Change may not be sufficient to fix it for non-Darwin, but
I'm pretty sure it won't break anything.)
gcc.apple/asm-block-32.c
gcc.apple/asm-block-33.c
llvm-svn: 74967
2009-07-07 23:26:33 +00:00
Chris Lattner
fc74e8241a
add support for legalizing an icmp where the result is illegal (4xi1) but
...
the input is legal (4 x i32)
llvm-svn: 74964
2009-07-07 23:03:54 +00:00
Chris Lattner
f48f3be185
random code cleanups.
...
llvm-svn: 74962
2009-07-07 22:49:15 +00:00
Chris Lattner
30220d8f98
implement support for spliting and scalarizing vector setcc's. This
...
finishes off enough support for vector compares to get the icmp/fcmp
version of 2008-07-23-VSetCC.ll passing.
llvm-svn: 74961
2009-07-07 22:47:46 +00:00
Chris Lattner
f2af7f44e7
lower vector icmp/fcmp to ICMP/FCMP nodes with the right result
...
(vector of bool).
llvm-svn: 74960
2009-07-07 22:41:32 +00:00
Chris Lattner
119421421a
ScalarizeVecRes_ShiftOp and ScalarizeVecRes_BinOp are the same,
...
eliminate the former.
llvm-svn: 74959
2009-07-07 22:28:41 +00:00
Chris Lattner
cc1fed3111
add support for vector legalizing of *_EXTEND.
...
llvm-svn: 74957
2009-07-07 22:27:17 +00:00
Devang Patel
14fd73b08d
Accidently dropped this while removing dead code in previous commit.
...
llvm-svn: 74953
2009-07-07 21:55:14 +00:00
Devang Patel
270d747359
Remove dead code.
...
llvm-svn: 74949
2009-07-07 21:12:32 +00:00
Owen Anderson
5c96ef7c4e
Have scoped mutexes take referenes instead of pointers.
...
llvm-svn: 74931
2009-07-07 18:33:04 +00:00