oota-llvm.git
12 years agoARM asm parser, just issue a warning for a duplicate reg in a list.
Jim Grosbach [Thu, 8 Dec 2011 21:34:20 +0000 (21:34 +0000)]
ARM asm parser, just issue a warning for a duplicate reg in a list.

For better 'gas' compatibility.

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

12 years agoFilter "sink to" candidate blocks sooner. This avoids unnecessary computation to...
Devang Patel [Thu, 8 Dec 2011 21:33:23 +0000 (21:33 +0000)]
Filter "sink to" candidate blocks sooner. This avoids unnecessary computation to determine whether the block dominates all uses or not.

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

12 years agoPass a GlobalAddress instead of an ExternalSymbol to LowerCallTo in
Akira Hatanaka [Thu, 8 Dec 2011 21:05:38 +0000 (21:05 +0000)]
Pass a GlobalAddress instead of an ExternalSymbol to LowerCallTo in
MipsTargetLowering::LowerGlobalTLSAddress. This is necessary to have
call16(__tls_get_addr) emitted instead of got_disp(__tls_get_addr) when the
target is Mips64.

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

12 years agoARM VSUB implied destination operand form aliases.
Jim Grosbach [Thu, 8 Dec 2011 20:56:26 +0000 (20:56 +0000)]
ARM VSUB implied destination operand form aliases.

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

12 years agoTidy up a bit.
Jim Grosbach [Thu, 8 Dec 2011 20:53:19 +0000 (20:53 +0000)]
Tidy up a bit.

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

12 years agoDon't explicitly marked libm rounding ops as legal on SSE4.1/AVX. There don't seem...
Owen Anderson [Thu, 8 Dec 2011 20:51:38 +0000 (20:51 +0000)]
Don't explicitly marked libm rounding ops as legal on SSE4.1/AVX.  There don't seem to be patterns for these, so I don't know why they were marked legal in the first place.
Fixes failures caused by r146171.

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

12 years agoARM VQADD implied destination operand form aliases.
Jim Grosbach [Thu, 8 Dec 2011 20:49:43 +0000 (20:49 +0000)]
ARM VQADD implied destination operand form aliases.

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

12 years agoARM a few more VMUL implied destination operand form aliases.
Jim Grosbach [Thu, 8 Dec 2011 20:42:35 +0000 (20:42 +0000)]
ARM a few more VMUL implied destination operand form aliases.

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

12 years agoImplement 64-bit support for thread local storage handling.
Akira Hatanaka [Thu, 8 Dec 2011 20:34:32 +0000 (20:34 +0000)]
Implement 64-bit support for thread local storage handling.

- Modify lowering of global TLS address nodes.
- Modify isel of ThreadPointer.
- Wrap target global TLS address nodes that are operands of loads with WrapperPIC.
- Remove Mips-specific DAG nodes TlsGd, TprelHi and TprelLo, which can be
  substituted with other existing nodes.

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

12 years agoTeach SelectionDAG to match more calls to libm functions onto existing SDNodes. ...
Owen Anderson [Thu, 8 Dec 2011 19:32:14 +0000 (19:32 +0000)]
Teach SelectionDAG to match more calls to libm functions onto existing SDNodes.  Mark these nodes as illegal by default, unless the target declares otherwise.

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

12 years agoARM assembler support for register name aliases.
Jim Grosbach [Thu, 8 Dec 2011 19:27:38 +0000 (19:27 +0000)]
ARM assembler support for register name aliases.

rdar://10550084

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

12 years agoMake MachineInstr instruction property queries more flexible. This change all
Evan Cheng [Thu, 8 Dec 2011 19:23:10 +0000 (19:23 +0000)]
Make MachineInstr instruction property queries more flexible. This change all
clients to decide whether to look inside bundled instructions and whether
the query should return true if any / all bundled instructions have the
queried property.

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

12 years agoAdd test for r146163.
Evan Cheng [Thu, 8 Dec 2011 19:21:39 +0000 (19:21 +0000)]
Add test for r146163.

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

12 years agoMany of the SSE patterns should not be selected when AVX is available. This led to...
Evan Cheng [Thu, 8 Dec 2011 19:00:42 +0000 (19:00 +0000)]
Many of the SSE patterns should not be selected when AVX is available. This led to the following code in X86Subtarget.cpp

  if (HasAVX)
    X86SSELevel = NoMMXSSE;

This is so patterns that are predicated on hasSSE3, etc. would not be selected when avx is available. Instead, the AVX variant is selected.
However, this breaks instructions which do not have AVX variants.

The right way to fix this is for the SSE but not-AVX patterns to predicate on something like hasSSE3() && !hasAVX().
Then we can take out the hack in X86Subtarget.cpp. Patterns which do not have AVX variants do not need to change.

However, we need to audit all the patterns before we make the change. This patch is workaround that fixes one specific case,
the prefetch instructions. rdar://10538297

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

12 years agoRevert r146143, "Fix bug 9905: Failure in code selection for llvm intrinsics
Daniel Dunbar [Thu, 8 Dec 2011 17:32:18 +0000 (17:32 +0000)]
Revert r146143, "Fix bug 9905: Failure in code selection for llvm intrinsics
sqrt/exp (fix for FSQRT, FSIN, FCOS, FPOWI, FPOW, FLOG, FLOG2, FLOG10, FEXP,
FEXP2).", it is failing tests.

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

12 years agotest/CodeGen/X86/vec_compare-2.ll: Add explicit -mtriple=i686-linux.
NAKAMURA Takumi [Thu, 8 Dec 2011 15:24:09 +0000 (15:24 +0000)]
test/CodeGen/X86/vec_compare-2.ll: Add explicit -mtriple=i686-linux.

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

12 years agoSrc2 and src3 were accidentally swapped for the FMA4 rr patterns. Undo this and fix...
Jan Sjödin [Thu, 8 Dec 2011 14:43:19 +0000 (14:43 +0000)]
Src2 and src3 were accidentally swapped for the FMA4 rr patterns. Undo this and fix the encoding.

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

12 years agoFix a bug in the integer-promotion of bitcast operations on vector types.
Nadav Rotem [Thu, 8 Dec 2011 13:10:01 +0000 (13:10 +0000)]
Fix a bug in the integer-promotion of bitcast operations on vector types.
We must not issue a bitcast operation for integer-promotion of vector types, because the
location of the values in the vector may be different.

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

12 years agoFix bug 9905: Failure in code selection for llvm intrinsics sqrt/exp (fix for FSQRT...
Stepan Dyatkovskiy [Thu, 8 Dec 2011 07:55:03 +0000 (07:55 +0000)]
Fix bug 9905: Failure in code selection for llvm intrinsics sqrt/exp (fix for FSQRT, FSIN, FCOS, FPOWI, FPOW, FLOG, FLOG2, FLOG10, FEXP, FEXP2).

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

12 years agoMTCTR needs to be glued to BCTR so that CTR is not marked dead in MTCTR (another...
Hal Finkel [Thu, 8 Dec 2011 04:36:44 +0000 (04:36 +0000)]
MTCTR needs to be glued to BCTR so that CTR is not marked dead in MTCTR (another find by -verify-machineinstrs)

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

12 years agoReverting r145899 as it breaks clang self-hosting
Pete Cooper [Thu, 8 Dec 2011 03:24:10 +0000 (03:24 +0000)]
Reverting r145899 as it breaks clang self-hosting

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

12 years agoARM NEON two-operand aliases for VSHL(immediate).
Jim Grosbach [Thu, 8 Dec 2011 01:30:04 +0000 (01:30 +0000)]
ARM NEON two-operand aliases for VSHL(immediate).

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

12 years agoDrop the HasInlineAsm flag.
Jakob Stoklund Olesen [Thu, 8 Dec 2011 01:22:39 +0000 (01:22 +0000)]
Drop the HasInlineAsm flag.

It is not used any more. We are tracking inline assembly misalignments
directly through the BBInfo.Unalign and KnownBits fields.

A simple conservative size estimate is not good enough since it can
cause alignment padding to be underestimated.

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

12 years agoARM NEON two-operand aliases for VSHL(register).
Jim Grosbach [Thu, 8 Dec 2011 01:12:35 +0000 (01:12 +0000)]
ARM NEON two-operand aliases for VSHL(register).

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

12 years agoSimplify offset verification.
Jakob Stoklund Olesen [Thu, 8 Dec 2011 01:10:05 +0000 (01:10 +0000)]
Simplify offset verification.

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

12 years agoFix copy/past-o.
Jim Grosbach [Thu, 8 Dec 2011 01:02:26 +0000 (01:02 +0000)]
Fix copy/past-o.

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

12 years agoARM NEON two-operand aliases for VMUL.
Jim Grosbach [Thu, 8 Dec 2011 00:59:47 +0000 (00:59 +0000)]
ARM NEON two-operand aliases for VMUL.

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

12 years agoDon't include alignment padding in BBInfo.Size.
Jakob Stoklund Olesen [Thu, 8 Dec 2011 00:55:02 +0000 (00:55 +0000)]
Don't include alignment padding in BBInfo.Size.

Compute alignment padding before and after basic blocks dynamically.

Heed basic block alignment.

This simplifies bookkeeping because we don't have to constantly add and
remove padding from BBInfo.Size.  It also makes it possible to track the
extra known alignment bits we get after a tBR_JTr terminator and when
entering an aligned basic block.

This makes the ARMConstantIslandPass aware of aligned basic blocks.

It is tricky to model block alignment correctly when dealing with inline
assembly and tBR_JTr instructions that have variable size.  If inline
assembly turns out to be smaller than expected, that may cause following
alignment padding to be larger than expected.  This could cause constant
pool entries to move out of range.

To avoid that problem, we use the worst case alignment padding following
inline assembly. This may cause slightly suboptimal constant island
placement in aligned basic blocks following inline assembly.  Normal
functions should be unaffected.

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

12 years agoARM VFP support 'fmrs/fmsr' aliases for 'vldr'
Jim Grosbach [Thu, 8 Dec 2011 00:52:55 +0000 (00:52 +0000)]
ARM VFP support 'fmrs/fmsr' aliases for 'vldr'

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

12 years agoARM VFP support 'flds/fldd' aliases for 'vldr'
Jim Grosbach [Thu, 8 Dec 2011 00:49:29 +0000 (00:49 +0000)]
ARM VFP support 'flds/fldd' aliases for 'vldr'

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

12 years agoARM optional destination operand variants for VEXT instructions.
Jim Grosbach [Thu, 8 Dec 2011 00:43:47 +0000 (00:43 +0000)]
ARM optional destination operand variants for VEXT instructions.

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

12 years agoTidy up.
Jim Grosbach [Thu, 8 Dec 2011 00:41:54 +0000 (00:41 +0000)]
Tidy up.

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

12 years agoFix 80-column.
Chad Rosier [Thu, 8 Dec 2011 00:38:45 +0000 (00:38 +0000)]
Fix 80-column.
Simplify code.

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

12 years agoARM assembler aliases for "add Rd, #-imm" to "sub Rd, #imm".
Jim Grosbach [Thu, 8 Dec 2011 00:31:07 +0000 (00:31 +0000)]
ARM assembler aliases for "add Rd, #-imm" to "sub Rd, #imm".

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

12 years agoAdd Tsan annotations to the pass system.
Nick Lewycky [Thu, 8 Dec 2011 00:15:41 +0000 (00:15 +0000)]
Add Tsan annotations to the pass system.

Perhaps once(&func) should be hoisted into lib/Support.

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

12 years agoFix comments.
Chad Rosier [Thu, 8 Dec 2011 00:11:31 +0000 (00:11 +0000)]
Fix comments.

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

12 years agoEngineBuilder: support for custom TargetOptions. Fixes the
Peter Collingbourne [Wed, 7 Dec 2011 23:58:57 +0000 (23:58 +0000)]
EngineBuilder: support for custom TargetOptions.  Fixes the
ExceptionDemo example.

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

12 years agoFix comments.
Chad Rosier [Wed, 7 Dec 2011 23:57:55 +0000 (23:57 +0000)]
Fix comments.

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

12 years agoARM assembly, allow 'asl' as a synonym for 'lsl' in shifted-register operands.
Jim Grosbach [Wed, 7 Dec 2011 23:40:58 +0000 (23:40 +0000)]
ARM assembly, allow 'asl' as a synonym for 'lsl' in shifted-register operands.

For 'gas' compatibility.

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

12 years agoModify class ReadHardware and add definition of 64-bit version of instruction
Akira Hatanaka [Wed, 7 Dec 2011 23:31:26 +0000 (23:31 +0000)]
Modify class ReadHardware and add definition of 64-bit version of instruction
RDHWR.

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

12 years agoAdd newline.
Akira Hatanaka [Wed, 7 Dec 2011 23:26:03 +0000 (23:26 +0000)]
Add newline.

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

12 years agoAdd 64-bit HWR29 register.
Akira Hatanaka [Wed, 7 Dec 2011 23:23:52 +0000 (23:23 +0000)]
Add 64-bit HWR29 register.

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

12 years ago32 to 64-bit anyext pattern.
Akira Hatanaka [Wed, 7 Dec 2011 23:21:19 +0000 (23:21 +0000)]
32 to 64-bit anyext pattern.

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

12 years ago32 to 64-bit zext pattern.
Akira Hatanaka [Wed, 7 Dec 2011 23:14:41 +0000 (23:14 +0000)]
32 to 64-bit zext pattern.

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

12 years agoARM two-operand aliases for VAND/VEOR/VORR instructions.
Jim Grosbach [Wed, 7 Dec 2011 23:08:12 +0000 (23:08 +0000)]
ARM two-operand aliases for VAND/VEOR/VORR instructions.

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

12 years agoARM two-operand aliases for VADDW instructions.
Jim Grosbach [Wed, 7 Dec 2011 23:01:10 +0000 (23:01 +0000)]
ARM two-operand aliases for VADDW instructions.

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

12 years agoARM two-operand aliases for VADD instructions.
Jim Grosbach [Wed, 7 Dec 2011 22:52:54 +0000 (22:52 +0000)]
ARM two-operand aliases for VADD instructions.

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

12 years agoFlesh out a bit more of the bitcode use-list ordering preservation code.
Chad Rosier [Wed, 7 Dec 2011 22:49:05 +0000 (22:49 +0000)]
Flesh out a bit more of the bitcode use-list ordering preservation code.
Nothing too interesting at this point, but comments are welcome.
Part of rdar://9860654 and PR5680.

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

12 years agoVariable cleanup. Based on past patch submittals variable names have
Bruno Cardoso Lopes [Wed, 7 Dec 2011 22:35:30 +0000 (22:35 +0000)]
Variable cleanup. Based on past patch submittals variable names have
been normalized and more descriptive comments added. Patch by Reed
Kotler and Jack Carter.

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

12 years agoMake sure we correctly set LiveRegGens when a call is unscheduled. <rdar://problem...
Eli Friedman [Wed, 7 Dec 2011 22:24:28 +0000 (22:24 +0000)]
Make sure we correctly set LiveRegGens when a call is unscheduled.  <rdar://problem/10460321>.  No testcase because this is very sensitive to scheduling.

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

12 years ago64-bit WrapperPICPat patterns.
Akira Hatanaka [Wed, 7 Dec 2011 22:11:43 +0000 (22:11 +0000)]
64-bit WrapperPICPat patterns.

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

12 years agoconfigure: Don't warn about compiler-rt checked out into projects/.
Daniel Dunbar [Wed, 7 Dec 2011 22:07:03 +0000 (22:07 +0000)]
configure: Don't warn about compiler-rt checked out into projects/.

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

12 years agoFix an assertion in the scheduler. PR11386. No testcase included because it's rathe...
Eli Friedman [Wed, 7 Dec 2011 22:06:02 +0000 (22:06 +0000)]
Fix an assertion in the scheduler.  PR11386.  No testcase included because it's rather delicate.

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

12 years agoDefine base class for WrapperPICPat.
Akira Hatanaka [Wed, 7 Dec 2011 21:54:54 +0000 (21:54 +0000)]
Define base class for WrapperPICPat.

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

12 years agoModify LowerFCOPYSIGN to handle Mips64.
Akira Hatanaka [Wed, 7 Dec 2011 21:48:50 +0000 (21:48 +0000)]
Modify LowerFCOPYSIGN to handle Mips64.

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

12 years agoUpdate bcanalyzer to handle new USELIST_BLOCK/USELIST_CODE_ENTRY.
Chad Rosier [Wed, 7 Dec 2011 21:45:13 +0000 (21:45 +0000)]
Update bcanalyzer to handle new USELIST_BLOCK/USELIST_CODE_ENTRY.

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

12 years agoBegin adding experimental support for preserving use-list ordering of bitcode
Chad Rosier [Wed, 7 Dec 2011 21:44:12 +0000 (21:44 +0000)]
Begin adding experimental support for preserving use-list ordering of bitcode
files.  First, add a new block USELIST_BLOCK to the bitcode format.  This is
where USELIST_CODE_ENTRYs will be stored.  The format of the USELIST_CODE_ENTRYs
have not yet been defined.  Add support in the BitcodeReader for parsing the
USELIST_BLOCK.
Part of rdar://9860654 and PR5680.

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

12 years agoThese global variables aren't thread-safe, STATISTIC is. Andy Trick tells me
Nick Lewycky [Wed, 7 Dec 2011 21:35:59 +0000 (21:35 +0000)]
These global variables aren't thread-safe, STATISTIC is. Andy Trick tells me
that he isn't using these any more, so just delete them.

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

12 years agoHave cmake build llvm-cov. Patch by arrowdodger.
Duncan Sands [Wed, 7 Dec 2011 20:54:41 +0000 (20:54 +0000)]
Have cmake build llvm-cov.  Patch by arrowdodger.

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

12 years agoValueEnumerator - debug dump().
Chad Rosier [Wed, 7 Dec 2011 20:44:46 +0000 (20:44 +0000)]
ValueEnumerator - debug dump().

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

12 years agoFix comment.
Akira Hatanaka [Wed, 7 Dec 2011 20:15:01 +0000 (20:15 +0000)]
Fix comment.

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

12 years agoFix comment.
Akira Hatanaka [Wed, 7 Dec 2011 20:13:53 +0000 (20:13 +0000)]
Fix comment.

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

12 years agoFix 64-bit immediate patterns.
Akira Hatanaka [Wed, 7 Dec 2011 20:10:24 +0000 (20:10 +0000)]
Fix 64-bit immediate patterns.

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

12 years agoNuke inadvertant debugging commit.
Jim Grosbach [Wed, 7 Dec 2011 19:56:16 +0000 (19:56 +0000)]
Nuke inadvertant debugging commit.

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

12 years agoDarwin assembler improved relocs when w/o subsections_via_symbols.
Jim Grosbach [Wed, 7 Dec 2011 19:46:59 +0000 (19:46 +0000)]
Darwin assembler improved relocs when w/o subsections_via_symbols.

When the file isn't being built with subsections-via-symbols, symbol
differences involving non-local symbols can be resolved more aggressively.
Needed for gas compatibility.

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

12 years agoRemove unneeded semicolon.
Jakub Staszak [Wed, 7 Dec 2011 19:46:10 +0000 (19:46 +0000)]
Remove unneeded semicolon.
Skip two looking up at BlockChain.

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

12 years agoThumb2 alias for long-form pop and friends.
Jim Grosbach [Wed, 7 Dec 2011 18:32:28 +0000 (18:32 +0000)]
Thumb2 alias for long-form pop and friends.
rdar://10542474

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

12 years agoAlso pass in correct initializer here.
Bill Wendling [Wed, 7 Dec 2011 18:18:11 +0000 (18:18 +0000)]
Also pass in correct initializer here.

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

12 years agoARM support the .arm and .thumb directives for assembly mode switching.
Jim Grosbach [Wed, 7 Dec 2011 18:04:19 +0000 (18:04 +0000)]
ARM support the .arm and .thumb directives for assembly mode switching.

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

12 years agoCorrect initializer in example.
Bill Wendling [Wed, 7 Dec 2011 18:02:44 +0000 (18:02 +0000)]
Correct initializer in example.

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

12 years agoARM NEON VCLT(register) is a pseudo aliasing VCGT(register).
Jim Grosbach [Wed, 7 Dec 2011 17:51:15 +0000 (17:51 +0000)]
ARM NEON VCLT(register) is a pseudo aliasing VCGT(register).

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

12 years agoTidy up. Move MachO tests to MachO directory.
Jim Grosbach [Wed, 7 Dec 2011 17:50:28 +0000 (17:50 +0000)]
Tidy up. Move MachO tests to MachO directory.

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

12 years agoRemove unused include.
Duncan Sands [Wed, 7 Dec 2011 17:18:31 +0000 (17:18 +0000)]
Remove unused include.

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

12 years agoWhen doing "opt -O2" verify the bitcode like is done for
Duncan Sands [Wed, 7 Dec 2011 17:14:20 +0000 (17:14 +0000)]
When doing "opt -O2" verify the bitcode like is done for
"opt -std-compile-opts".

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

12 years agoFix a bunch of SSE/AVX patterns to use proper memop types. In particular, not using...
Craig Topper [Wed, 7 Dec 2011 08:30:53 +0000 (08:30 +0000)]
Fix a bunch of SSE/AVX patterns to use proper memop types. In particular, not using integer loads other than v2i64/v4i64 since the others are all promoted.

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

12 years agoAdjust the stack by one pointer size for all frameless stacks.
Bill Wendling [Wed, 7 Dec 2011 07:58:55 +0000 (07:58 +0000)]
Adjust the stack by one pointer size for all frameless stacks.

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

12 years agoFix off-by-one error when encoding the stack size for a frameless stack.
Bill Wendling [Wed, 7 Dec 2011 07:49:49 +0000 (07:49 +0000)]
Fix off-by-one error when encoding the stack size for a frameless stack.

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

12 years agoAdd bundle aware API for querying instruction properties and switch the code
Evan Cheng [Wed, 7 Dec 2011 07:15:52 +0000 (07:15 +0000)]
Add bundle aware API for querying instruction properties and switch the code
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.

For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.

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

12 years agoAdding missing anchor to DATDeltaAlgorithm.
David Blaikie [Wed, 7 Dec 2011 06:44:23 +0000 (06:44 +0000)]
Adding missing anchor to DATDeltaAlgorithm.

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

12 years agomake CR spill and restore 64-bit clean (no functional change), and fix some other...
Hal Finkel [Wed, 7 Dec 2011 06:34:06 +0000 (06:34 +0000)]
make CR spill and restore 64-bit clean (no functional change), and fix some other problems found with -verify-machineinstrs

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

12 years agomake base register selection used in eliminateFrameIndex 64-bit clean
Hal Finkel [Wed, 7 Dec 2011 06:34:02 +0000 (06:34 +0000)]
make base register selection used in eliminateFrameIndex 64-bit clean

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

12 years agoset mayStore and mayLoad on CR pseudos
Hal Finkel [Wed, 7 Dec 2011 06:33:57 +0000 (06:33 +0000)]
set mayStore and mayLoad on CR pseudos

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

12 years ago64-bit LR8 load should use X11 not R11
Hal Finkel [Wed, 7 Dec 2011 06:32:37 +0000 (06:32 +0000)]
64-bit LR8 load should use X11 not R11

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

12 years agoEliminate delta argument from AdjustBBOffsetsAfter.
Jakob Stoklund Olesen [Wed, 7 Dec 2011 05:17:30 +0000 (05:17 +0000)]
Eliminate delta argument from AdjustBBOffsetsAfter.

The block offset can be computed from the previous block. That is more
robust than keeping track of a delta.

Eliminate one redundant AdjustBBOffsetsAfter call.

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

12 years agoCompute some alignment information for each basic block.
Jakob Stoklund Olesen [Wed, 7 Dec 2011 04:17:35 +0000 (04:17 +0000)]
Compute some alignment information for each basic block.

These fields are not used for anything yet.

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

12 years agoZap unnecessary isIntDivCheap() check. PR11485. No testcase because this doesn...
Eli Friedman [Wed, 7 Dec 2011 03:55:52 +0000 (03:55 +0000)]
Zap unnecessary isIntDivCheap() check.  PR11485.  No testcase because this doesn't affect any in-tree target.

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

12 years agoARM tidy up and remove no longer needed InstAlias definitions.
Jim Grosbach [Wed, 7 Dec 2011 01:50:36 +0000 (01:50 +0000)]
ARM tidy up and remove no longer needed InstAlias definitions.

The TokenAlias handling of data type suffices renders these unnecessary.

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

12 years agoMove common expression into a method.
Jakob Stoklund Olesen [Wed, 7 Dec 2011 01:22:52 +0000 (01:22 +0000)]
Move common expression into a method.

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

12 years agoARM Implement ARM ARM Table A7-3 via TokenAlias.
Jim Grosbach [Wed, 7 Dec 2011 01:17:58 +0000 (01:17 +0000)]
ARM Implement ARM ARM Table A7-3 via TokenAlias.

Data type suffix aliasing. Previously handled via lots of instruction
aliases. Cleanup of those forthcoming.

rdar://10435076

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

12 years agoGroup BBSizes and BBOffsets into a single vector<BasicBlockInfo>.
Jakob Stoklund Olesen [Wed, 7 Dec 2011 01:08:25 +0000 (01:08 +0000)]
Group BBSizes and BBOffsets into a single vector<BasicBlockInfo>.

No functional change is intended.

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

12 years agoAdd missing check.
Jakob Stoklund Olesen [Wed, 7 Dec 2011 01:08:22 +0000 (01:08 +0000)]
Add missing check.

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

12 years agoARM: NEON SHLL instruction immediate operand range checking.
Jim Grosbach [Wed, 7 Dec 2011 01:07:24 +0000 (01:07 +0000)]
ARM: NEON SHLL instruction immediate operand range checking.

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

12 years agoSupport vector bitcasts in the AsmPrinter. PR11495.
Eli Friedman [Wed, 7 Dec 2011 00:50:54 +0000 (00:50 +0000)]
Support vector bitcasts in the AsmPrinter.  PR11495.

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

12 years agoAdd a few moreLocal/Global R_MIPS_GOT related fixups and
Bruno Cardoso Lopes [Wed, 7 Dec 2011 00:28:57 +0000 (00:28 +0000)]
Add a few moreLocal/Global R_MIPS_GOT related fixups and
make the addend fixup code a bit more generic

Patch by Jack Carter.

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

12 years agoAdd MachineOperand IsInternalRead flag.
Jakob Stoklund Olesen [Wed, 7 Dec 2011 00:22:07 +0000 (00:22 +0000)]
Add MachineOperand IsInternalRead flag.

This flag is used when bundling machine instructions.  It indicates
whether the operand reads a value defined inside or outside its bundle.

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

12 years agoFix an optimization involving EXTRACT_SUBVECTOR in DAGCombine so it behaves correctly...
Eli Friedman [Wed, 7 Dec 2011 00:11:56 +0000 (00:11 +0000)]
Fix an optimization involving EXTRACT_SUBVECTOR in DAGCombine so it behaves correctly.  PR11494.

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

12 years agoRemove unneeded type.
Jakub Staszak [Wed, 7 Dec 2011 00:08:00 +0000 (00:08 +0000)]
Remove unneeded type.

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

12 years agoARM: Parameterize the immediate operand type for NEON VSHLL.
Jim Grosbach [Wed, 7 Dec 2011 00:02:17 +0000 (00:02 +0000)]
ARM: Parameterize the immediate operand type for NEON VSHLL.

No functional change yet. Will be implementing range-checked immediates
for better diagnostics and disambiguation of instructions.

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

12 years ago- Remove unneeded #includes.
Jakub Staszak [Tue, 6 Dec 2011 23:59:33 +0000 (23:59 +0000)]
- Remove unneeded #includes.
- Remove unused types/fields.
- Add some constantness.

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

12 years agoExtend AsmMatcher token literal matching to allow aliasing.
Jim Grosbach [Tue, 6 Dec 2011 23:43:54 +0000 (23:43 +0000)]
Extend AsmMatcher token literal matching to allow aliasing.

For example, ARM allows:
    vmov.u32 s4, #0  -> vmov.i32, #0
'u32' is a more specific designator for the 32-bit integer type specifier
and is legal for any instruction which accepts 'i32' as a datatype suffix.

We want to say,
    def : TokenAlias<".u32", ".i32">;

This works by marking the match class of 'From' as a subclass of the
match class of 'To'.

rdar://10435076

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