Chris Lattner
04bf64d43c
eliminate the v[if]cmp versions of these tests, now that [if]cmp+sext works.
...
llvm-svn: 74980
2009-07-08 00:49:35 +00:00
Chris Lattner
dc84b31d94
Change these tests to use [fi]cmp+sext instead of v[fi]cmp. No
...
functionality change.
llvm-svn: 74979
2009-07-08 00:46:57 +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
e3241b5719
hopefully fix the build on windows.
...
llvm-svn: 74977
2009-07-08 00:29:32 +00:00
Evan Cheng
b61e3a83ee
Add a todo.
...
llvm-svn: 74976
2009-07-08 00:05:05 +00:00
Douglas Gregor
abd6813ff9
The canonical type of typeof or decltype with a dependent type is itself,
...
not Context.DependentTy. I'll let Anders check in the test case for this one...
llvm-svn: 74975
2009-07-08 00:03:05 +00:00
Evan Cheng
f0080b734a
Also statically set bit 25 for BR_JT instructions.
...
llvm-svn: 74974
2009-07-07 23:45:10 +00:00
Owen Anderson
155dccd87c
LLVMContext-ification.
...
llvm-svn: 74973
2009-07-07 23:43:39 +00:00
Evan Cheng
2cff076cfe
Statically encode bit 25 to indicate immediate form of data processing instructions. Patch by Sean Callanan.
...
llvm-svn: 74972
2009-07-07 23:40:25 +00:00
Douglas Gregor
d3cb356d14
Overload resolution prefers non-templates to templates
...
llvm-svn: 74971
2009-07-07 23:38:56 +00:00
Bill Wendling
69bf0a1e2a
--- Reverse-merging (from foreign repository) r74952 into '.':
...
U lib/Target/X86/X86RegisterInfo.cpp
U lib/Target/X86/X86RegisterInfo.h
Temporarily revert. This was causing an infinite loop in the linker on Leopard.
llvm-svn: 74970
2009-07-07 23:37:49 +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
9e5b64b7b7
Commit the file I actually changed as part of last
...
patch, instead of one I didn't.
llvm-svn: 74968
2009-07-07 23:28:22 +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
Douglas Gregor
9fc6097145
Template argument deduction from a call has improved a bit
...
llvm-svn: 74966
2009-07-07 23:12:18 +00:00
Douglas Gregor
e81f3e71f8
Improve template argument deduction from a call. In particular,
...
implement C++ [temp.deduct.call]p3b3, which allows a template-id
parameter to match a derived class of the argument, while deducing
template arguments.
llvm-svn: 74965
2009-07-07 23:09:34 +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
cbbf747b7b
add a trivial test that vector compares work.
...
llvm-svn: 74963
2009-07-07 22:51:09 +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
Bob Wilson
b1a1437a01
Change NEON vldN/vstN intrinsics to specify "N" as an immediate operand
...
instead of having a separate intrinsic for each value.
llvm-svn: 74958
2009-07-07 22:27:20 +00:00
Chris Lattner
cc1fed3111
add support for vector legalizing of *_EXTEND.
...
llvm-svn: 74957
2009-07-07 22:27:17 +00:00
Jeffrey Yasskin
90b081ac15
Fix http://llvm.org/PR4481 : Make llvm-config print the right include paths when
...
srcdir!=objdir.
llvm-svn: 74956
2009-07-07 22:15:37 +00:00
Devang Patel
64eafd43ff
Disable loop index split for now and let nightly tester verify its usefulness.
...
llvm-svn: 74955
2009-07-07 22:09:42 +00:00
Chris Lattner
87d4f309f5
verify that the fcmp version of this works just as well as the
...
vfcmp version. We actually get better code for this silly testcase.
llvm-svn: 74954
2009-07-07 22:07:47 +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
Bill Wendling
7a87a78c6c
DWARF requires frame moves be specified at specific times. If you have a
...
prologue like this:
__Z3fooi:
Leh_func_begin1:
LBB1_0: ## entry
pushl %ebp
Llabel1:
movl %esp, %ebp
Llabel2:
pushl %esi
Llabel3:
subl $20, %esp
call "L1$pb"
"L1$pb":
popl %esi
The "pushl %ebp" needs a table entry specifying the offset. The "movl %esp,
%ebp" makes %ebp the new stack frame register, so that needs to be specified in
DWARF. And "pushl %esi" saves the callee-saved %esi register, which also needs
to be specified in DWARF.
Before, all of this logic was in one method. This didn't work too well, because
as you can see there are multiple FDE line entries that need to be created.
This fix creates the "MachineMove" objects directly when they're needed; instead
of waiting until the end, and losing information.
llvm-svn: 74952
2009-07-07 21:53:07 +00:00
Nate Begeman
425038cc6d
Extra vector element initializers in OpenCL is an error, not a warning.
...
llvm-svn: 74951
2009-07-07 21:53:06 +00:00
Owen Anderson
8ec8c97f81
LLVMContext-ifiy the implementation of the C API.
...
llvm-svn: 74950
2009-07-07 21:33:58 +00:00
Devang Patel
270d747359
Remove dead code.
...
llvm-svn: 74949
2009-07-07 21:12:32 +00:00
Owen Anderson
fac7b59579
LLVM Context-ification.
...
llvm-svn: 74948
2009-07-07 21:07:14 +00:00
Dan Gohman
ab84a6ec1e
Fix a typo and a grammaro in a comment.
...
llvm-svn: 74947
2009-07-07 20:47:48 +00:00
Evan Cheng
d0611f9a37
Add Thumb2 movcc instructions.
...
llvm-svn: 74946
2009-07-07 20:39:03 +00:00
Evan Cheng
39d8075edc
Add missing tests.
...
llvm-svn: 74945
2009-07-07 20:38:08 +00:00
Chris Lattner
a1e11f530e
Implement parsing support for the .comm directive. Patch by
...
Kevin Enderby!
llvm-svn: 74944
2009-07-07 20:30:46 +00:00
Sebastian Redl
86be854fa8
Implement checking of exception spec compatibility for overriding virtual functions.
...
llvm-svn: 74943
2009-07-07 20:29:57 +00:00
Owen Anderson
e9f9804762
LLVMContext-ify the bitcode reader.
...
llvm-svn: 74942
2009-07-07 20:18:58 +00:00
Dan Gohman
628af7a4bc
Add a paragraph about the Add->FAdd API change.
...
llvm-svn: 74941
2009-07-07 20:05:15 +00:00
Evan Cheng
02a44edf12
Add BX and BXr9 encodings. Patch by Sean Callanan.
...
llvm-svn: 74938
2009-07-07 19:16:24 +00:00
Anders Carlsson
1f9648da17
Some (most) type trait expressions require that the argument passed in is a complete type.
...
llvm-svn: 74937
2009-07-07 19:06:02 +00:00
Mike Stump
54731d5cde
Fix build.
...
llvm-svn: 74936
2009-07-07 18:52:14 +00:00
Fariborz Jahanian
385db80cc5
Diagnose, and not crash, when taking address of property expression.
...
llvm-svn: 74935
2009-07-07 18:50:52 +00:00
Owen Anderson
32bc1e1a3b
Use LLVMContext in the LLLexer.
...
llvm-svn: 74934
2009-07-07 18:44:11 +00:00
Chris Lattner
19032f3206
fix a bug in post-order iterators with external storage, patch by
...
Olaf Krzikalla!
llvm-svn: 74933
2009-07-07 18:43:48 +00:00
Chris Lattner
a8b6961b6c
fix some type confusion in ReadVBR64: "Piece" should be only 32 bits,
...
not 64, because we read at most 32 bits at a time. OTOH, "Result" must
be 64-bits and insertion into it must be 64-bit clean. Thanks to Ivan
Sorokin for bringing this up.
llvm-svn: 74932
2009-07-07 18:39:49 +00:00
Owen Anderson
5c96ef7c4e
Have scoped mutexes take referenes instead of pointers.
...
llvm-svn: 74931
2009-07-07 18:33:04 +00:00
Chris Lattner
f840ed7ed4
Fix lli to print an error and exit when EE returns null but no string. Patch
...
by Eric Rannaud!
llvm-svn: 74930
2009-07-07 18:31:09 +00:00
Chris Lattner
72a743fc47
"BinaryObject.h was implicitly converting between uint{16,32,64}_t to
...
uint8_t (via 'foo & 255'), i replaced this with an explicit (uint8_t)
cast which is equivalent, faster and more correct (silences
type-related warnings). Also, following coding standards I replaced
post-increment with pre-increment."
Patch by Ryan Flynn!
llvm-svn: 74929
2009-07-07 18:28:00 +00:00