oota-llvm.git
12 years agoSynthesize x86 max/min instructions also for vectors (i.e. produce
Duncan Sands [Sat, 17 Sep 2011 16:49:39 +0000 (16:49 +0000)]
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

12 years agoDescribe more AVX 128-bit convert instructions without patterns to have
Bruno Cardoso Lopes [Fri, 16 Sep 2011 23:41:29 +0000 (23:41 +0000)]
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

12 years agoBitfield mask instructions are unpredictable if the encoded LSB is higher than the...
Owen Anderson [Fri, 16 Sep 2011 23:30:01 +0000 (23:30 +0000)]
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

12 years agoAdd a testcase for another corner-case decoding.
Owen Anderson [Fri, 16 Sep 2011 23:15:29 +0000 (23:15 +0000)]
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

12 years agoFix bitfield decoding based on Eli's feedback.
Owen Anderson [Fri, 16 Sep 2011 23:04:48 +0000 (23:04 +0000)]
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

12 years agoAdd ImmutableMapRef and ImmutableSetRef, which consolidate Immutable[Map,Set] and...
Ted Kremenek [Fri, 16 Sep 2011 23:01:25 +0000 (23:01 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for SUB(immediate).
Jim Grosbach [Fri, 16 Sep 2011 22:58:42 +0000 (22:58 +0000)]
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

12 years agoThumb2 pre-indexed loads/stores use the restricted GPR set for Rt.
Owen Anderson [Fri, 16 Sep 2011 22:42:36 +0000 (22:42 +0000)]
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

12 years agoFix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
Owen Anderson [Fri, 16 Sep 2011 22:29:48 +0000 (22:29 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for STRT.
Jim Grosbach [Fri, 16 Sep 2011 22:27:12 +0000 (22:27 +0000)]
Thumb2 assembly parsing and encoding for STRT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139963 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for LDRHT/STRHT.
Jim Grosbach [Fri, 16 Sep 2011 22:26:01 +0000 (22:26 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for STREX/STREXB/STREXH/STREXD.
Jim Grosbach [Fri, 16 Sep 2011 22:22:07 +0000 (22:22 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for STRD.
Jim Grosbach [Fri, 16 Sep 2011 22:19:38 +0000 (22:19 +0000)]
Thumb2 assembly parsing and encoding for STRD.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139960 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSimplify comment. There's no Thumb LDRD(register) encoding. That's ARM only.
Jim Grosbach [Fri, 16 Sep 2011 22:18:42 +0000 (22:18 +0000)]
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

12 years agoAdd fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
Owen Anderson [Fri, 16 Sep 2011 22:17:02 +0000 (22:17 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for STRBT.
Jim Grosbach [Fri, 16 Sep 2011 22:15:51 +0000 (22:15 +0000)]
Thumb2 assembly parsing and encoding for STRBT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139957 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for STRH.
Jim Grosbach [Fri, 16 Sep 2011 22:12:19 +0000 (22:12 +0000)]
Thumb2 assembly parsing and encoding for STRH.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139956 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove test of undocumented format.
Jim Grosbach [Fri, 16 Sep 2011 22:09:58 +0000 (22:09 +0000)]
Remove test of undocumented format.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139955 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for STRB.
Jim Grosbach [Fri, 16 Sep 2011 22:09:19 +0000 (22:09 +0000)]
Thumb2 assembly parsing and encoding for STRB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139954 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd mayLoad attribute to AVX convert instructions, since non of them
Bruno Cardoso Lopes [Fri, 16 Sep 2011 22:02:14 +0000 (22:02 +0000)]
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

12 years agoShuffle a few more thumb2 tests to match the comment headings.
Jim Grosbach [Fri, 16 Sep 2011 22:01:18 +0000 (22:01 +0000)]
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

12 years agoThumb2 tests for STR(literal), STR(register) and STR pre/post indexed immediate.
Jim Grosbach [Fri, 16 Sep 2011 21:59:13 +0000 (21:59 +0000)]
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

12 years agoShuffle a few tests around.
Jim Grosbach [Fri, 16 Sep 2011 21:57:10 +0000 (21:57 +0000)]
Shuffle a few tests around.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139950 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for STR.
Jim Grosbach [Fri, 16 Sep 2011 21:55:56 +0000 (21:55 +0000)]
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

12 years agoAdd -rfunc and -rglob options to llvm-extract to support regular
Chad Rosier [Fri, 16 Sep 2011 21:09:17 +0000 (21:09 +0000)]
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

12 years agoTidy up. 80 columns.
Jim Grosbach [Fri, 16 Sep 2011 21:09:00 +0000 (21:09 +0000)]
Tidy up. 80 columns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139944 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix disassembly of Thumb2 LDRSH with a #-0 offset.
Owen Anderson [Fri, 16 Sep 2011 21:08:33 +0000 (21:08 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for STR(immediate).
Jim Grosbach [Fri, 16 Sep 2011 21:06:12 +0000 (21:06 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for STMDB.
Jim Grosbach [Fri, 16 Sep 2011 20:58:38 +0000 (20:58 +0000)]
Thumb2 assembly parsing and encoding for STMDB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139940 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix PR10884.
Bruno Cardoso Lopes [Fri, 16 Sep 2011 20:58:28 +0000 (20:58 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for STMIA.
Jim Grosbach [Fri, 16 Sep 2011 20:50:13 +0000 (20:50 +0000)]
Thumb2 assembly parsing and encoding for STMIA.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139938 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMove the AC_PROG_CC checks earlier in the configure file. The lateness
Eric Christopher [Fri, 16 Sep 2011 20:36:25 +0000 (20:36 +0000)]
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

12 years agoMigrate this to use clang by default as well.
Eric Christopher [Fri, 16 Sep 2011 20:36:22 +0000 (20:36 +0000)]
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

12 years agoWe now look for clang, then llvm-gcc, then gcc as our compiler. We don't need
Eric Christopher [Fri, 16 Sep 2011 20:36:20 +0000 (20:36 +0000)]
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

12 years agoHave the llvm configure process look for clang, then llvm-gcc, and then gcc
Eric Christopher [Fri, 16 Sep 2011 20:36:16 +0000 (20:36 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for SSUB16/SSUB8.
Jim Grosbach [Fri, 16 Sep 2011 18:52:36 +0000 (18:52 +0000)]
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

12 years agoThumb2 assembly parsing and encoding for SSAX.
Jim Grosbach [Fri, 16 Sep 2011 18:37:10 +0000 (18:37 +0000)]
Thumb2 assembly parsing and encoding for SSAX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139929 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix a minor bug in fs::create_directories. Patch by Albert Wong.
Eli Friedman [Fri, 16 Sep 2011 18:36:31 +0000 (18:36 +0000)]
Fix a minor bug in fs::create_directories. Patch by Albert Wong.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139928 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SSAT16.
Jim Grosbach [Fri, 16 Sep 2011 18:33:22 +0000 (18:33 +0000)]
Thumb2 assembly parsing and encoding for SSAT16.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139927 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SSAT.
Jim Grosbach [Fri, 16 Sep 2011 18:32:30 +0000 (18:32 +0000)]
Thumb2 assembly parsing and encoding for SSAT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139926 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SRS.
Jim Grosbach [Fri, 16 Sep 2011 18:25:22 +0000 (18:25 +0000)]
Thumb2 assembly parsing and encoding for SRS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139925 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMMUSD/SMUSDX.
Jim Grosbach [Fri, 16 Sep 2011 18:08:48 +0000 (18:08 +0000)]
Thumb2 assembly parsing and encoding for SMMUSD/SMUSDX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139923 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMMULWB/SMULWT.
Jim Grosbach [Fri, 16 Sep 2011 18:07:18 +0000 (18:07 +0000)]
Thumb2 assembly parsing and encoding for SMMULWB/SMULWT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139922 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMMULL.
Jim Grosbach [Fri, 16 Sep 2011 18:05:48 +0000 (18:05 +0000)]
Thumb2 assembly parsing and encoding for SMMULL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139921 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix comment.
Jim Grosbach [Fri, 16 Sep 2011 18:03:00 +0000 (18:03 +0000)]
Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139919 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMULBB/SMULBT/SMULTB/SMULTT.
Jim Grosbach [Fri, 16 Sep 2011 18:02:36 +0000 (18:02 +0000)]
Thumb2 assembly parsing and encoding for SMULBB/SMULBT/SMULTB/SMULTT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139918 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMMUAD'dib.
Jim Grosbach [Fri, 16 Sep 2011 17:58:21 +0000 (17:58 +0000)]
Thumb2 assembly parsing and encoding for SMMUAD'dib.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139917 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMMUL/SMMULR.
Jim Grosbach [Fri, 16 Sep 2011 17:56:06 +0000 (17:56 +0000)]
Thumb2 assembly parsing and encoding for SMMUL/SMMULR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139916 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPort over more Thumb2 assembly tests to disassembly tests.
Owen Anderson [Fri, 16 Sep 2011 17:56:04 +0000 (17:56 +0000)]
Port over more Thumb2 assembly tests to disassembly tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139915 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPort over more Thumb2 assembly tests to disassembly tests.
Owen Anderson [Fri, 16 Sep 2011 17:22:48 +0000 (17:22 +0000)]
Port over more Thumb2 assembly tests to disassembly tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139912 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMMLS/SMMLSR.
Jim Grosbach [Fri, 16 Sep 2011 17:16:55 +0000 (17:16 +0000)]
Thumb2 assembly parsing and encoding for SMMLS/SMMLSR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139911 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMMLA/SMMLAR.
Jim Grosbach [Fri, 16 Sep 2011 17:15:18 +0000 (17:15 +0000)]
Thumb2 assembly parsing and encoding for SMMLA/SMMLAR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139910 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLSLD/SMLSLDX.
Jim Grosbach [Fri, 16 Sep 2011 17:10:44 +0000 (17:10 +0000)]
Thumb2 assembly parsing and encoding for SMLSLD/SMLSLDX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139909 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLSD/SMLSDX.
Jim Grosbach [Fri, 16 Sep 2011 17:08:45 +0000 (17:08 +0000)]
Thumb2 assembly parsing and encoding for SMLSD/SMLSDX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139908 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLAWB/SMLAWT.
Jim Grosbach [Fri, 16 Sep 2011 17:03:01 +0000 (17:03 +0000)]
Thumb2 assembly parsing and encoding for SMLAWB/SMLAWT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139907 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLALD/SMLALDX.
Jim Grosbach [Fri, 16 Sep 2011 16:58:03 +0000 (16:58 +0000)]
Thumb2 assembly parsing and encoding for SMLALD/SMLALDX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139906 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLALBB/SMLALBT/SMLALTB/SMLALTT.
Jim Grosbach [Fri, 16 Sep 2011 16:53:25 +0000 (16:53 +0000)]
Thumb2 assembly parsing and encoding for SMLALBB/SMLALBT/SMLALTB/SMLALTT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139905 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoKill some dead code.
Jim Grosbach [Fri, 16 Sep 2011 16:45:40 +0000 (16:45 +0000)]
Kill some dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139904 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTidy up a bit.
Jim Grosbach [Fri, 16 Sep 2011 16:39:25 +0000 (16:39 +0000)]
Tidy up a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139903 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLAL.
Jim Grosbach [Fri, 16 Sep 2011 16:38:00 +0000 (16:38 +0000)]
Thumb2 assembly parsing and encoding for SMLAL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139902 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTest case trial and error. Not sure the proper way to check MBB names.
Andrew Trick [Fri, 16 Sep 2011 03:57:19 +0000 (03:57 +0000)]
Test case trial and error. Not sure the proper way to check MBB names.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139900 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReduced a stronger test case for coalescer bug PR10920.
Andrew Trick [Fri, 16 Sep 2011 03:46:49 +0000 (03:46 +0000)]
Reduced a stronger test case for coalescer bug PR10920.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139898 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoNamespacify.
Benjamin Kramer [Fri, 16 Sep 2011 00:35:06 +0000 (00:35 +0000)]
Namespacify.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139892 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLAD/SMLADX.
Jim Grosbach [Fri, 16 Sep 2011 00:09:37 +0000 (00:09 +0000)]
Thumb2 assembly parsing and encoding for SMLAD/SMLADX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139884 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSpill mode: Hoist back-copies locally.
Jakob Stoklund Olesen [Fri, 16 Sep 2011 00:03:35 +0000 (00:03 +0000)]
Spill mode: Hoist back-copies locally.

The leaveIntvAfter() function normally inserts a back-copy after the
requested instruction, making the back-copy kill the live range.

In spill mode, try to insert the back-copy before the last use instead.
That means the last use becomes the kill instead of the back-copy.  This
lowers the register pressure because the last use can now redefine the
same register it was reading.

This will also improve compile time: The back-copy isn't a kill, so
hoisting it in hoistCopiesForSize() won't force a recomputation of the
source live range.  Similarly, if the back-copy isn't hoisted by the
splitter, the spiller will not attempt hoisting it locally.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139883 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDisable local spill hoisting for non-killing copies.
Jakob Stoklund Olesen [Fri, 16 Sep 2011 00:03:33 +0000 (00:03 +0000)]
Disable local spill hoisting for non-killing copies.

If the source register is live after the copy being spilled, there is no
point to hoisting it.  Hoisting inside a basic block only serves to
resolve interferences by shortening the live range of the source.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139882 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SMLABB/SMLABT/SMLATB/SMLATT.
Jim Grosbach [Fri, 16 Sep 2011 00:00:23 +0000 (00:00 +0000)]
Thumb2 assembly parsing and encoding for SMLABB/SMLABT/SMLATB/SMLATT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139881 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SHSUB16/SHSUB8.
Jim Grosbach [Thu, 15 Sep 2011 23:58:56 +0000 (23:58 +0000)]
Thumb2 assembly parsing and encoding for SHSUB16/SHSUB8.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139880 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove incorrect comments.
Jim Grosbach [Thu, 15 Sep 2011 23:45:50 +0000 (23:45 +0000)]
Remove incorrect comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139877 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDon't attach annotations to MCInst's. Instead, have the disassembler return, and...
Owen Anderson [Thu, 15 Sep 2011 23:38:46 +0000 (23:38 +0000)]
Don't attach annotations to MCInst's.  Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139876 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agouse 64-bit types instead of off_t/size_t to avoid the issue when
Ivan Krasin [Thu, 15 Sep 2011 23:13:00 +0000 (23:13 +0000)]
use 64-bit types instead of off_t/size_t to avoid the issue when
gold plugin is built with Large File Support (sizeof(off_t) == 64 on i686)
and the rest of LLVM is built w/o Large File Support
(sizeof(off_t) == 32 on i686) which corrupts the stack.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139873 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a fixme note!
Bruno Cardoso Lopes [Thu, 15 Sep 2011 23:04:24 +0000 (23:04 +0000)]
Add a fixme note!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139872 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SHADD16/SHADD8.
Jim Grosbach [Thu, 15 Sep 2011 22:36:10 +0000 (22:36 +0000)]
Thumb2 assembly parsing and encoding for SHADD16/SHADD8.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139871 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SHASX/SHSAX.
Jim Grosbach [Thu, 15 Sep 2011 22:34:29 +0000 (22:34 +0000)]
Thumb2 assembly parsing and encoding for SHASX/SHSAX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139870 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMinor cleanup.
Eli Friedman [Thu, 15 Sep 2011 22:26:18 +0000 (22:26 +0000)]
Minor cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139869 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUnbreak the build for compilers that don't include cstdint everywhere.
Benjamin Kramer [Thu, 15 Sep 2011 22:26:16 +0000 (22:26 +0000)]
Unbreak the build for compilers that don't include cstdint everywhere.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139868 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SEV.W.
Jim Grosbach [Thu, 15 Sep 2011 22:24:20 +0000 (22:24 +0000)]
Thumb2 assembly parsing and encoding for SEV.W.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139866 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUse a more efficient lowering for Unordered/Monotonic atomic load/store on Thumb1.
Eli Friedman [Thu, 15 Sep 2011 22:18:49 +0000 (22:18 +0000)]
Use a more efficient lowering for Unordered/Monotonic atomic load/store on Thumb1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139865 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd the remaining AVX versions of instructions to X86InstrInfo, this
Bruno Cardoso Lopes [Thu, 15 Sep 2011 22:15:52 +0000 (22:15 +0000)]
Add the remaining AVX versions of instructions to X86InstrInfo, this
time for describing high latency ones and for recognizting loads
from the same base pointer

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139864 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SEL.
Jim Grosbach [Thu, 15 Sep 2011 22:01:09 +0000 (22:01 +0000)]
Thumb2 assembly parsing and encoding for SEL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139861 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDWARF: Reset the state after parsing a line table prologue and remove an unnecessary...
Benjamin Kramer [Thu, 15 Sep 2011 21:59:13 +0000 (21:59 +0000)]
DWARF: Reset the state after parsing a line table prologue and remove an unnecessary lookup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139859 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SBFX.
Jim Grosbach [Thu, 15 Sep 2011 21:58:42 +0000 (21:58 +0000)]
Thumb2 assembly parsing and encoding for SBFX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139858 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFactor out partial register update checks for some SSE instructions.
Bruno Cardoso Lopes [Thu, 15 Sep 2011 21:42:23 +0000 (21:42 +0000)]
Factor out partial register update checks for some SSE instructions.
Also add the AVX versions and add comments!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139854 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSome legalization fixes for atomic load and store.
Eli Friedman [Thu, 15 Sep 2011 21:20:49 +0000 (21:20 +0000)]
Some legalization fixes for atomic load and store.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139851 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agollvm-dwarfdump: Add an option to print out line info for a specific address
Benjamin Kramer [Thu, 15 Sep 2011 21:17:40 +0000 (21:17 +0000)]
llvm-dwarfdump: Add an option to print out line info for a specific address

Usage:
$ llvm-dwarfdump -address=0x0000000100000ed4 a.out.dSYM/Contents/Resources/DWARF/a.out
xxx.c:6:0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139850 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd some missing 'CHECK' lines and tidy up others.
Jim Grosbach [Thu, 15 Sep 2011 21:17:38 +0000 (21:17 +0000)]
Add some missing 'CHECK' lines and tidy up others.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139849 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoCommandLine: Add support for 64 bit unsigned integer options.
Benjamin Kramer [Thu, 15 Sep 2011 21:17:37 +0000 (21:17 +0000)]
CommandLine: Add support for 64 bit unsigned integer options.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139848 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDWARF: Don't crash when looking up an invalid address.
Benjamin Kramer [Thu, 15 Sep 2011 21:08:54 +0000 (21:08 +0000)]
DWARF: Don't crash when looking up an invalid address.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139846 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd an option to disable spill hoisting.
Jakob Stoklund Olesen [Thu, 15 Sep 2011 21:06:00 +0000 (21:06 +0000)]
Add an option to disable spill hoisting.

When -split-spill-mode is enabled, spill hoisting is performed by
SplitKit instead of by InlineSpiller.  This hidden command line option
is for testing the splitter spill mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139845 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SBC.
Jim Grosbach [Thu, 15 Sep 2011 21:04:10 +0000 (21:04 +0000)]
Thumb2 assembly parsing and encoding for SBC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139844 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SASX.
Jim Grosbach [Thu, 15 Sep 2011 21:01:23 +0000 (21:01 +0000)]
Thumb2 assembly parsing and encoding for SASX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139843 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReapply r139759. Disable IV rewriting by default. See PR10916.
Andrew Trick [Thu, 15 Sep 2011 20:58:37 +0000 (20:58 +0000)]
Reapply r139759. Disable IV rewriting by default. See PR10916.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139842 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for SADD16/SADD8.
Jim Grosbach [Thu, 15 Sep 2011 20:57:39 +0000 (20:57 +0000)]
Thumb2 assembly parsing and encoding for SADD16/SADD8.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139841 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for RSB.
Jim Grosbach [Thu, 15 Sep 2011 20:54:14 +0000 (20:54 +0000)]
Thumb2 assembly parsing and encoding for RSB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139839 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDWARF: Put all the pieces we have together and provide a single accessor to DIContext...
Benjamin Kramer [Thu, 15 Sep 2011 20:43:22 +0000 (20:43 +0000)]
DWARF: Put all the pieces we have together and provide a single accessor to DIContext that provides line information when given an address.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139836 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDWARF: Remove accessors that parse the whole line table section in one go, this can...
Benjamin Kramer [Thu, 15 Sep 2011 20:43:18 +0000 (20:43 +0000)]
DWARF: Remove accessors that parse the whole line table section in one go, this can't possibly work.

The address size is specified by the compile unit associated with a line table, there is no global address size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139835 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for RRX.
Jim Grosbach [Thu, 15 Sep 2011 19:52:43 +0000 (19:52 +0000)]
Thumb2 assembly parsing and encoding for RRX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139831 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for ROR.
Jim Grosbach [Thu, 15 Sep 2011 19:50:04 +0000 (19:50 +0000)]
Thumb2 assembly parsing and encoding for ROR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139830 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThumb2 assembly parsing and encoding for REV16/REVSH.
Jim Grosbach [Thu, 15 Sep 2011 19:46:13 +0000 (19:46 +0000)]
Thumb2 assembly parsing and encoding for REV16/REVSH.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139828 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThe the MC disassembler C API to print in verbose mode. Perhaps there should be...
Owen Anderson [Thu, 15 Sep 2011 18:37:20 +0000 (18:37 +0000)]
The the MC disassembler C API to print in verbose mode.  Perhaps there should be a parameter to request verbose mode?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139821 91177308-0d34-0410-b5e6-96231b3b80d8