Commit Graph

75943 Commits

Author SHA1 Message Date
Benjamin Kramer
b758741823 MCInstrAnalysis: Don't crash on instructions with no operands.
llvm-svn: 140027
2011-09-19 17:56:00 +00:00
Andrew Trick
856edc0ef5 [indvars] Fix PR10946: SCEV cannot handle Vector IVs.
llvm-svn: 140026
2011-09-19 17:54:39 +00:00
Jim Grosbach
06677b6b4c Thumb2 assembly parsing and encoding for SVC.
llvm-svn: 140025
2011-09-19 17:40:35 +00:00
Jim Grosbach
a5bdf3b221 Thumb2 assembly parsing and encoding for SUB(register).
llvm-svn: 140024
2011-09-19 17:37:48 +00:00
Stepan Dyatkovskiy
b769edad5b Added regression test for bug #10869.
llvm-svn: 140012
2011-09-19 07:48:08 +00:00
NAKAMURA Takumi
6171669218 Add Win32 support to llvm::llvm_execute_on_thread(). Thanks to Aaron Ballman!
llvm-svn: 140011
2011-09-19 07:41:43 +00:00
Jakob Stoklund Olesen
502c13a9e4 Claimed.
llvm-svn: 140010
2011-09-19 05:34:10 +00:00
Nadav Rotem
a6af03c6fb Fix typos in my prev commit, found by Tobi.
llvm-svn: 140003
2011-09-18 19:00:23 +00:00
Nadav Rotem
1cfdc59e94 setOperationAction should be done on the return value of the type, not the operands.
llvm-svn: 140001
2011-09-18 14:57:03 +00:00
Bill Wendling
f29791020b Remove obsolete .pod files.
llvm-svn: 140000
2011-09-18 12:52:55 +00:00
Bill Wendling
911a44ba8a Fix up the formating and change llvm-gcc to clang.
Note that this example doesn't work anymore!

llvm-svn: 139999
2011-09-18 12:51:05 +00:00
Bill Wendling
2b453ef022 Remove mention of llvm-gcc/llvm-g++ from doc.
llvm-svn: 139998
2011-09-18 12:37:20 +00:00
Nadav Rotem
cfc77bc719 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.

llvm-svn: 139995
2011-09-18 10:39:32 +00:00
Nadav Rotem
4d74f80219 white space cleanups
llvm-svn: 139994
2011-09-18 10:29:29 +00:00
Craig Topper
c5a97d12bb Fix typo by changing Lower256IntVETCC to Lower256IntVSETCC.
llvm-svn: 139993
2011-09-18 08:03:58 +00:00
Benjamin Kramer
547157073b Apply Duncan's test fix from r139986 to the avx version of that test too.
llvm-svn: 139992
2011-09-18 00:41:38 +00:00
Duncan Sands
4149334f09 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.

llvm-svn: 139986
2011-09-17 16:49:39 +00:00
Bruno Cardoso Lopes
f611f6c371 Describe more AVX 128-bit convert instructions without patterns to have
mayLoad = 1

llvm-svn: 139973
2011-09-16 23:41:29 +00:00
Owen Anderson
c1f638997d Bitfield mask instructions are unpredictable if the encoded LSB is higher than the encoded MSB.
llvm-svn: 139972
2011-09-16 23:30:01 +00:00
Owen Anderson
df512e9961 Add a testcase for another corner-case decoding.
llvm-svn: 139970
2011-09-16 23:15:29 +00:00
Owen Anderson
aec67a3ea1 Fix bitfield decoding based on Eli's feedback.
llvm-svn: 139969
2011-09-16 23:04:48 +00:00
Ted Kremenek
484a96fab1 Add ImmutableMapRef and ImmutableSetRef, which consolidate Immutable[Map,Set] and its Factory. This may eventually replace Immtuable[Map,Set].
llvm-svn: 139967
2011-09-16 23:01:25 +00:00
Jim Grosbach
95242bff08 Thumb2 assembly parsing and encoding for SUB(immediate).
llvm-svn: 139966
2011-09-16 22:58:42 +00:00
Owen Anderson
5d23e1e5b4 Thumb2 pre-indexed loads/stores use the restricted GPR set for Rt.
llvm-svn: 139965
2011-09-16 22:42:36 +00:00
Owen Anderson
eae0eee720 Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
llvm-svn: 139964
2011-09-16 22:29:48 +00:00
Jim Grosbach
3a58f722bf Thumb2 assembly parsing and encoding for STRT.
llvm-svn: 139963
2011-09-16 22:27:12 +00:00
Jim Grosbach
41ece87fae Thumb2 assembly parsing and encoding for LDRHT/STRHT.
llvm-svn: 139962
2011-09-16 22:26:01 +00:00
Jim Grosbach
e9f1da5dec Thumb2 assembly parsing and encoding for STREX/STREXB/STREXH/STREXD.
llvm-svn: 139961
2011-09-16 22:22:07 +00:00
Jim Grosbach
f8313f60b3 Thumb2 assembly parsing and encoding for STRD.
llvm-svn: 139960
2011-09-16 22:19:38 +00:00
Jim Grosbach
d0ef17692a Simplify comment. There's no Thumb LDRD(register) encoding. That's ARM only.
llvm-svn: 139959
2011-09-16 22:18:42 +00:00
Owen Anderson
3a487c8c9b Add fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
llvm-svn: 139958
2011-09-16 22:17:02 +00:00
Jim Grosbach
c3834c5da5 Thumb2 assembly parsing and encoding for STRBT.
llvm-svn: 139957
2011-09-16 22:15:51 +00:00
Jim Grosbach
3caa04dc32 Thumb2 assembly parsing and encoding for STRH.
llvm-svn: 139956
2011-09-16 22:12:19 +00:00
Jim Grosbach
771b6c5fe3 Remove test of undocumented format.
llvm-svn: 139955
2011-09-16 22:09:58 +00:00
Jim Grosbach
b181e68ab6 Thumb2 assembly parsing and encoding for STRB.
llvm-svn: 139954
2011-09-16 22:09:19 +00:00
Bruno Cardoso Lopes
396b8136bf 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.

llvm-svn: 139953
2011-09-16 22:02:14 +00:00
Jim Grosbach
f75d317df4 Shuffle a few more thumb2 tests to match the comment headings.
llvm-svn: 139952
2011-09-16 22:01:18 +00:00
Jim Grosbach
bc84a55ed8 Thumb2 tests for STR(literal), STR(register) and STR pre/post indexed immediate.
llvm-svn: 139951
2011-09-16 21:59:13 +00:00
Jim Grosbach
c9eb37a7c9 Shuffle a few tests around.
llvm-svn: 139950
2011-09-16 21:57:10 +00:00
Jim Grosbach
d521731d40 Thumb2 assembly parsing and encoding for STR.
More addressing mode encoding bits. Handle pre increment for STR/STRB/STRH
and STR(register).

llvm-svn: 139949
2011-09-16 21:55:56 +00:00
Chad Rosier
01ea3b0adf Add -rfunc and -rglob options to llvm-extract to support regular
expression matching.

llvm-svn: 139945
2011-09-16 21:09:17 +00:00
Jim Grosbach
371c88528b Tidy up. 80 columns.
llvm-svn: 139944
2011-09-16 21:09:00 +00:00
Owen Anderson
5804085f26 Fix disassembly of Thumb2 LDRSH with a #-0 offset.
llvm-svn: 139943
2011-09-16 21:08:33 +00:00
Jim Grosbach
916a6c71aa Thumb2 assembly parsing and encoding for STR(immediate).
Add aliases for STRB/STRH while there. Tests forthcoming for those.

llvm-svn: 139942
2011-09-16 21:06:12 +00:00
Jim Grosbach
03c39637ee Thumb2 assembly parsing and encoding for STMDB.
llvm-svn: 139940
2011-09-16 20:58:38 +00:00
Bruno Cardoso Lopes
a60e62ad02 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.

llvm-svn: 139939
2011-09-16 20:58:28 +00:00
Jim Grosbach
13af7198d5 Thumb2 assembly parsing and encoding for STMIA.
llvm-svn: 139938
2011-09-16 20:50:13 +00:00
Eric Christopher
381ec749e0 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.

llvm-svn: 139937
2011-09-16 20:36:25 +00:00
Eric Christopher
2e1f5823a1 Migrate this to use clang by default as well.
llvm-svn: 139936
2011-09-16 20:36:22 +00:00
Eric Christopher
3163b0a2ce We now look for clang, then llvm-gcc, then gcc as our compiler. We don't need
this anymore.

llvm-svn: 139935
2011-09-16 20:36:20 +00:00