Commit Graph

94422 Commits

Author SHA1 Message Date
Owen Anderson 2ef668840a Add correct NEON encodings for vtbl and vtbx.
llvm-svn: 117513
2010-10-28 00:18:46 +00:00
Owen Anderson 14be930317 Add correct NEON encodings for vext, vtrn, vuzp, and vzip.
llvm-svn: 117512
2010-10-27 23:56:39 +00:00
Bob Wilson 6c55007edb Fix compiler warnings about signed/unsigned comparisons.
llvm-svn: 117511
2010-10-27 23:49:00 +00:00
Dale Johannesen 16bb87a90e Teach InstCombine not to use Add and Neg on FP. PR 8490.
llvm-svn: 117510
2010-10-27 23:45:18 +00:00
Evan Cheng 59bbc545e0 Shifter ops are not always free. Do not fold them (especially to form
complex load / store addressing mode) when they have higher cost and
when they have more than one use.

llvm-svn: 117509
2010-10-27 23:41:30 +00:00
Dale Johannesen 7fd51bc1e6 Add D and Q register names to ARM inline asm handling.
No aliasing is needed, these work as given in the BE.

llvm-svn: 117508
2010-10-27 23:34:42 +00:00
Devang Patel 1bee63f325 Fix context info for enums.
Radar 8595129

llvm-svn: 117507
2010-10-27 23:23:58 +00:00
Evan Cheng cbdf7e874a Putting r117193 back except for the compile time cost. Rather than assuming fallthroughs uses all registers, just gather the union of all successor liveins.
llvm-svn: 117506
2010-10-27 23:17:17 +00:00
Jim Grosbach 338de3ee56 Refactor ARM STR/STRB instruction patterns into STR{B}i12 and STR{B}rs, like
the LDR instructions have. This makes the literal/register forms of the
instructions explicit and allows us to assign scheduling itineraries
appropriately. rdar://8477752

llvm-svn: 117505
2010-10-27 23:12:14 +00:00
Blaine Garst 03b99365e3 small tweaks to reflect statements of what really ever shipped. ABI is, and has been, accurate for what we ship.
llvm-svn: 117504
2010-10-27 22:59:01 +00:00
Jim Ingham 517b3b21ca Replace unnecessary dynamic_cast with static_cast.
llvm-svn: 117503
2010-10-27 22:58:34 +00:00
Owen Anderson 9f371e7efa Tests for NEON encoding of vrev.
llvm-svn: 117502
2010-10-27 22:54:49 +00:00
Owen Anderson fadb951e5b Provide correct encodings for NEON vcvt, which has its own special immediate encoding
for specifying fractional bits for fixed point conversions.

llvm-svn: 117501
2010-10-27 22:49:00 +00:00
John McCall ff78c8a3ef Don't override explicit visibility attributes on class members with
type-based visibility.

llvm-svn: 117500
2010-10-27 22:31:22 +00:00
Douglas Gregor 7e8c4e061b Make AST deserialization for class template specializations lazier, by
not loading the specializations of a class template until some AST
consumer needs them.

llvm-svn: 117498
2010-10-27 22:21:36 +00:00
Caroline Tice 7d54a2e8d5 Make SBFrame::GetDescription a little more descriptive.
llvm-svn: 117497
2010-10-27 22:07:28 +00:00
Jim Grosbach 055de2c789 Trailing whitespace
llvm-svn: 117496
2010-10-27 21:39:08 +00:00
Owen Anderson ed9652f959 Provide correct encodings for the get_lane and set_lane variants of vmov.
llvm-svn: 117495
2010-10-27 21:28:09 +00:00
Rafael Espindola f8537165bd Add support for R_386_TLS_GD, R_386_TLS_LE_32, R_386_TLS_IE and R_386_TLS_LE.
llvm-svn: 117494
2010-10-27 21:23:52 +00:00
Caroline Tice 7b9da4a550 Fix bugs attempting to write to API log after it has been
disabled.

llvm-svn: 117493
2010-10-27 21:23:37 +00:00
Blaine Garst 2314079ef0 reconcile missing typos & delete obsolete pre-SnowLeopard section w.r.t. prior repository for this document
llvm-svn: 117492
2010-10-27 21:22:46 +00:00
John McCall 3a7f6926d1 Restore r117403 (fixing IR gen for bool atomics), this time being less
aggressive about the form we expect bools to be in.  I don't really have
time to fix all the sources right now.

llvm-svn: 117486
2010-10-27 20:58:56 +00:00
Kevin Enderby 5e7cb5fc27 Added the x86 instruction ud2b (2nd official undefined instruction).
llvm-svn: 117485
2010-10-27 20:46:49 +00:00
Fariborz Jahanian dd6907bd77 Decay array/function types of a statement-expression.
// rdar: // 8600553.

llvm-svn: 117484
2010-10-27 20:44:00 +00:00
Jim Grosbach f4ea7084c5 JIT imm12 encoding for constant pool entry references.
llvm-svn: 117483
2010-10-27 20:39:40 +00:00
Bob Wilson c7334a146e SelectionDAG shuffle nodes do not allow operands with different numbers of
elements than the result vector type.  So, when an instruction like:

%8 = shufflevector <2 x float> %4, <2 x float> %7, <4 x i32> <i32 1, i32 0, i32 3, i32 2>

is translated to a DAG, each operand is changed to a concat_vectors node that appends 2 undef elements.  That is:

shuffle [a,b], [c,d] is changed to:
shuffle [a,b,u,u], [c,d,u,u]

That's probably the right thing for x86 but for NEON, we'd much rather have:

shuffle [a,b,c,d], undef

Teach the DAG combiner how to do that transformation for ARM.  Radar 8597007.

llvm-svn: 117482
2010-10-27 20:38:28 +00:00
Rafael Espindola 24c8b04d5f Implement R_X86_64_GOTTPOFF, R_X86_64_TLSGD and R_X86_64_TPOFF32.
llvm-svn: 117481
2010-10-27 20:28:07 +00:00
Douglas Gregor e0fb32c261 Lazily load the next friend in the chain of FriendDecls, to eliminate
some excessive recursion and deserialization.

llvm-svn: 117480
2010-10-27 20:23:41 +00:00
Fariborz Jahanian 5701585780 patch to do array-to-pointer conversion in a
statement-expression. // rdar: //8600553

llvm-svn: 117479
2010-10-27 20:10:28 +00:00
Jim Grosbach 333b0a9e74 ARM JIT fix for LDRi12 and company.
llvm-svn: 117478
2010-10-27 19:55:59 +00:00
Benjamin Kramer 14807270be Replace pointer arithmetic with StringRef::substr.
llvm-svn: 117477
2010-10-27 19:53:52 +00:00
Douglas Gregor 417e87cb96 Lazily load the "next" namespace in the chain of NamespaceDecls, to
eliminate some excessive recursion and deserialization.

llvm-svn: 117476
2010-10-27 19:49:05 +00:00
Owen Anderson 40d24a4abf Provide correct NEON encodings for vdup.
llvm-svn: 117475
2010-10-27 19:25:54 +00:00
Michael J. Spencer 7db918f1e9 x86-Win32: Switch ftol2 calling convention from stdcall to C.
llvm-svn: 117474
2010-10-27 18:52:38 +00:00
Michael J. Spencer 0f83d96852 COFF: Add IMAGE_SCN_MEM_READ to text sections.
There are currently 100 references to COFF::IMAGE_SCN in 6 files
and 11 different functions. Section to attribute mapping really
needs to happen in one place to avoid problems like this.

llvm-svn: 117473
2010-10-27 18:52:29 +00:00
Michael J. Spencer fbdab0d633 Fix whitespace.
llvm-svn: 117472
2010-10-27 18:52:20 +00:00
Rafael Espindola 095fa9e5cc Set default type and flags for .init and .fini.
llvm-svn: 117471
2010-10-27 18:45:20 +00:00
Caroline Tice 04a339a084 Flush the prompts immediately in the breakpoint command input readers, to make
sure they come out at the correct times.

llvm-svn: 117470
2010-10-27 18:34:42 +00:00
Owen Anderson fbdeab911a Tests for NEON encoding of vmovl, vmovn, vqmovn, and vqmovun.
llvm-svn: 117469
2010-10-27 18:17:12 +00:00
Devang Patel d4efc4d26f Give a name to nameless argument.
llvm-svn: 117468
2010-10-27 18:08:31 +00:00
Owen Anderson 5fa98baef7 Tests for NEON encoding of vcls, vclz, and vcnt.
llvm-svn: 117466
2010-10-27 18:05:25 +00:00
Owen Anderson 6b5af599c0 Tests for NEON encoding of vneg and vqneg.
llvm-svn: 117463
2010-10-27 17:57:26 +00:00
Rafael Espindola 26496e6835 Produce an error for an invalid use of .symver.
llvm-svn: 117462
2010-10-27 17:56:18 +00:00
Jim Grosbach ba1c6cd62f The new LDR* instruction patterns should handle the necessary encoding of
operands in the TableGen'erated bits, so we don't need to do the additional
magic explicitly.

llvm-svn: 117461
2010-10-27 17:52:51 +00:00
Owen Anderson 1e5eb98ed8 Tests for NEON encoding of vabs and vqabs.
llvm-svn: 117460
2010-10-27 17:50:07 +00:00
Owen Anderson 8576a42cf3 Add correct NEON encodings for vsli and vsri.
llvm-svn: 117459
2010-10-27 17:40:08 +00:00
Owen Anderson d7e8135e1e Add correct NEON encodings for vsra and vrsra.
llvm-svn: 117458
2010-10-27 17:29:29 +00:00
Douglas Gregor f5a1854655 Introduce libclang-level options for C++ precompiled preambles,
separating out chaining precompiled preambles from non-chaining ones.

llvm-svn: 117457
2010-10-27 17:24:53 +00:00
Rafael Espindola 9d798a07e4 Revert r117403 as it caused PR8480.
llvm-svn: 117456
2010-10-27 17:13:49 +00:00
Jim Grosbach 8bf1483a3d The immediate operands of an LDRi12 instruction doesn't need the addrmode2
encoding tricks. Handle the 'imm doesn't fit in the insn' case.

llvm-svn: 117454
2010-10-27 16:50:31 +00:00