Commit Graph

76500 Commits

Author SHA1 Message Date
Jim Grosbach
7649b0b8c7 Thumb2 assembly parsing and encoding for SUB(register).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140024 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19 17:37:48 +00:00
Stepan Dyatkovskiy
76034c5f54 Added regression test for bug #10869.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140012 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19 07:48:08 +00:00
NAKAMURA Takumi
92ec8e1427 Add Win32 support to llvm::llvm_execute_on_thread(). Thanks to Aaron Ballman!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140011 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19 07:41:43 +00:00
Jakob Stoklund Olesen
0a3eb60952 Claimed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140010 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-19 05:34:10 +00:00
Nadav Rotem
ca6f296b48 Fix typos in my prev commit, found by Tobi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140003 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 19:00:23 +00:00
Nadav Rotem
354efd88db setOperationAction should be done on the return value of the type, not the operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140001 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 14:57:03 +00:00
Bill Wendling
bed95e01ff Remove obsolete .pod files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140000 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 12:52:55 +00:00
Bill Wendling
88816ec963 Fix up the formating and change llvm-gcc to clang.
Note that this example doesn't work anymore!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139999 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 12:51:05 +00:00
Bill Wendling
ea55c83e7f Remove mention of llvm-gcc/llvm-g++ from doc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139998 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 12:37:20 +00:00
Nadav Rotem
91e43fd17a When promoting integer vectors we often create ext-loads. This patch adds a
dag-combine optimization to implement the ext-load efficiently (using shuffles).

For example the type <4 x i8> is stored in memory as i32, but it needs to
find its way into a <4 x i32> register. Previously we scalarized the memory
access, now we use shuffles.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139995 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 10:39:32 +00:00
Nadav Rotem
b6266fb602 white space cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139994 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 10:29:29 +00:00
Craig Topper
89af15ee11 Fix typo by changing Lower256IntVETCC to Lower256IntVSETCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139993 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 08:03:58 +00:00
Benjamin Kramer
5778fef314 Apply Duncan's test fix from r139986 to the avx version of that test too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139992 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18 00:41:38 +00:00
Duncan Sands
6bcd2196e5 Synthesize x86 max/min instructions also for vectors (i.e. produce
maxps and maxpd).  This broke the sse41-blend.ll testcase by causing
maxpd to be produced rather than a cmp+blend pair, which is the reason
I tweaked it.  Gives a small speedup on doduc with dragonegg when the
GCC vectorizer is used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-17 16:49:39 +00:00
Bruno Cardoso Lopes
2c693dc126 Describe more AVX 128-bit convert instructions without patterns to have
mayLoad = 1

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139973 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 23:41:29 +00:00
Owen Anderson
cb77551927 Bitfield mask instructions are unpredictable if the encoded LSB is higher than the encoded MSB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139972 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 23:30:01 +00:00
Owen Anderson
be290af0d8 Add a testcase for another corner-case decoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139970 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 23:15:29 +00:00
Owen Anderson
8b22778431 Fix bitfield decoding based on Eli's feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139969 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 23:04:48 +00:00
Ted Kremenek
166e0539c9 Add ImmutableMapRef and ImmutableSetRef, which consolidate Immutable[Map,Set] and its Factory. This may eventually replace Immtuable[Map,Set].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139967 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 23:01:25 +00:00
Jim Grosbach
f67e8554bf Thumb2 assembly parsing and encoding for SUB(immediate).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139966 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:58:42 +00:00
Owen Anderson
e4f2df945a Thumb2 pre-indexed loads/stores use the restricted GPR set for Rt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139965 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:42:36 +00:00
Owen Anderson
89db0f690c Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139964 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:29:48 +00:00
Jim Grosbach
47313df81c Thumb2 assembly parsing and encoding for STRT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139963 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:27:12 +00:00
Jim Grosbach
18ceae2a70 Thumb2 assembly parsing and encoding for LDRHT/STRHT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139962 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:26:01 +00:00
Jim Grosbach
4a1d200c2f Thumb2 assembly parsing and encoding for STREX/STREXB/STREXH/STREXD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139961 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:22:07 +00:00
Jim Grosbach
e45451eea9 Thumb2 assembly parsing and encoding for STRD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139960 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:19:38 +00:00
Jim Grosbach
75d7428275 Simplify comment. There's no Thumb LDRD(register) encoding. That's ARM only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139959 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:18:42 +00:00
Owen Anderson
8a28bdcbcc Add fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139958 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:17:02 +00:00
Jim Grosbach
e041af7e0e Thumb2 assembly parsing and encoding for STRBT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139957 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:15:51 +00:00
Jim Grosbach
c71ed786c3 Thumb2 assembly parsing and encoding for STRH.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139956 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:12:19 +00:00
Jim Grosbach
59c5076094 Remove test of undocumented format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139955 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:09:58 +00:00
Jim Grosbach
76ca6d9bcd Thumb2 assembly parsing and encoding for STRB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139954 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:09:19 +00:00
Bruno Cardoso Lopes
7291272ab2 Add mayLoad attribute to AVX convert instructions, since non of them
are declared with load patterns. This fix the crash in PR10941. No testcases,
since a fold is triggered and then converted back to the register form
afterwards.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139953 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:02:14 +00:00
Jim Grosbach
2e7a94137b Shuffle a few more thumb2 tests to match the comment headings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139952 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 22:01:18 +00:00
Jim Grosbach
5320b40d9e Thumb2 tests for STR(literal), STR(register) and STR pre/post indexed immediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139951 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 21:59:13 +00:00
Jim Grosbach
0bb7c6e8d6 Shuffle a few tests around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139950 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 21:57:10 +00:00
Jim Grosbach
ee2c2a4f98 Thumb2 assembly parsing and encoding for STR.
More addressing mode encoding bits. Handle pre increment for STR/STRB/STRH
and STR(register).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139949 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 21:55:56 +00:00
Chad Rosier
4e0a55d0d1 Add -rfunc and -rglob options to llvm-extract to support regular
expression matching.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139945 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 21:09:17 +00:00
Jim Grosbach
947a24cd64 Tidy up. 80 columns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139944 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 21:09:00 +00:00
Owen Anderson
705b48ff86 Fix disassembly of Thumb2 LDRSH with a #-0 offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139943 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 21:08:33 +00:00
Jim Grosbach
642caea2c6 Thumb2 assembly parsing and encoding for STR(immediate).
Add aliases for STRB/STRH while there. Tests forthcoming for those.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139942 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 21:06:12 +00:00
Jim Grosbach
36343d85cd Thumb2 assembly parsing and encoding for STMDB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139940 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:58:38 +00:00
Bruno Cardoso Lopes
08ecb711ac Fix PR10884.
This PR basically reports a problem where a crash in generated code
happened due to %rbp being clobbered:

  pushq %rbp
  movq  %rsp, %rbp
  ....
  vmovmskps %ymm12, %ebp
  ....
  movq  %rbp, %rsp
  popq  %rbp
  ret

Since Eric's r123367 commit, the default stack alignment for x86 32-bit
has changed to be 16-bytes. Since then, the MaxStackAlignmentHeuristicPass
hasn't been really used, but with AVX it becomes useful again, since per
ABI compliance we don't always align the stack to 256-bit, but only when
there are 256-bit incoming arguments.

ReserveFP was only used by this pass, but there's no RA target hook that
uses getReserveFP() to check for the presence of FP (since nothing was
triggering the pass to run, the uses of getReserveFP() were removed
through time without being noticed). Change this pass to use
setForceFramePointer, which is properly called by MachineFunction
hasFP method.

The testcase is very big and dependent on RA, not sure if it's worth
adding to test/CodeGen/X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139939 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:58:28 +00:00
Jim Grosbach
8213c96655 Thumb2 assembly parsing and encoding for STMIA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139938 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:50:13 +00:00
Eric Christopher
ffee5728af Move the AC_PROG_CC checks earlier in the configure file. The lateness
of the original check meant that configure was caching the default
CC check and using that instead of the result of AC_PROG_CC in both
configure checks and during compilation.

This wasn't affecting C++ so it was hard to notice.

Regenerate configure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139937 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:36:25 +00:00
Eric Christopher
04f138e225 Migrate this to use clang by default as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139936 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:36:22 +00:00
Eric Christopher
48dbeecd7e We now look for clang, then llvm-gcc, then gcc as our compiler. We don't need
this anymore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139935 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:36:20 +00:00
Eric Christopher
42634836e9 Have the llvm configure process look for clang, then llvm-gcc, and then gcc
on all platforms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139934 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:36:16 +00:00
Jim Grosbach
3335029b1f Thumb2 assembly parsing and encoding for SSUB16/SSUB8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139931 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 18:52:36 +00:00
Jim Grosbach
50bd470d85 Thumb2 assembly parsing and encoding for SSAX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139929 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 18:37:10 +00:00