oota-llvm.git
13 years agoThis is a prototype of an experimental register allocation
Andrew Trick [Fri, 22 Oct 2010 23:09:15 +0000 (23:09 +0000)]
This is a prototype of an experimental register allocation
framework. It's purpose is not to improve register allocation per se,
but to make it easier to develop powerful live range splitting. I call
it the basic allocator because it is as simple as a global allocator
can be but provides the building blocks for sophisticated register
allocation with live range splitting.

A minimal implementation is provided that trivially spills whenever it
runs out of registers. I'm checking in now to get high-level design
and style feedback. I've only done minimal testing. The next step is
implementing a "greedy" allocation algorithm that does some register
reassignment and makes better splitting decisions.

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

13 years agoAdd tests for NEON encoding of vqdmlsl.
Owen Anderson [Fri, 22 Oct 2010 23:08:47 +0000 (23:08 +0000)]
Add tests for NEON encoding of vqdmlsl.

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

13 years agoDo not install libBugpointPasses.dylib for Apple builds. Radar 8585383.
Bob Wilson [Fri, 22 Oct 2010 23:04:17 +0000 (23:04 +0000)]
Do not install libBugpointPasses.dylib for Apple builds.  Radar 8585383.

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

13 years agoAdd tests for NEON encoding of vmlsl.
Owen Anderson [Fri, 22 Oct 2010 23:02:27 +0000 (23:02 +0000)]
Add tests for NEON encoding of vmlsl.

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

13 years agoAdd more verification of LiveIntervals.
Jakob Stoklund Olesen [Fri, 22 Oct 2010 22:48:58 +0000 (22:48 +0000)]
Add more verification of LiveIntervals.

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

13 years agoBe more strict about detecting multi-use blocks for isolation.
Jakob Stoklund Olesen [Fri, 22 Oct 2010 22:48:56 +0000 (22:48 +0000)]
Be more strict about detecting multi-use blocks for isolation.

When a block has exactly two uses and the register is both live-in and live-out,
don't isolate the block. We would be inserting two copies, so we haven't really
made any progress.

If the live-in and live-out values separate into disconnected components after
splitting, we would be making progress. We can't detect that for now.

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

13 years agotidy up.
Jim Grosbach [Fri, 22 Oct 2010 22:15:48 +0000 (22:15 +0000)]
tidy up.

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

13 years agoARM mode encoding information for CLZ, RBIT, REV*, and PKH*.
Jim Grosbach [Fri, 22 Oct 2010 22:12:16 +0000 (22:12 +0000)]
ARM mode encoding information for CLZ, RBIT, REV*, and PKH*.

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

13 years agoFix the name of libLLVMHello.dylib so that it does not get installed for
Bob Wilson [Fri, 22 Oct 2010 22:10:57 +0000 (22:10 +0000)]
Fix the name of libLLVMHello.dylib so that it does not get installed for
Apple builds.  Radar 8585383.

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

13 years agoRemove duplicate test.
Jim Grosbach [Fri, 22 Oct 2010 22:04:28 +0000 (22:04 +0000)]
Remove duplicate test.

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

13 years agotidy up.
Jim Grosbach [Fri, 22 Oct 2010 22:01:56 +0000 (22:01 +0000)]
tidy up.

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

13 years agoFileCheck-ize a few tests.
Jim Grosbach [Fri, 22 Oct 2010 21:55:03 +0000 (21:55 +0000)]
FileCheck-ize a few tests.

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

13 years agoUnbreak build.
Evan Cheng [Fri, 22 Oct 2010 21:49:09 +0000 (21:49 +0000)]
Unbreak build.

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

13 years agoTeach instcombine to set the alignment arguments for NEON load/store intrinsics.
Bob Wilson [Fri, 22 Oct 2010 21:41:48 +0000 (21:41 +0000)]
Teach instcombine to set the alignment arguments for NEON load/store intrinsics.

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

13 years agoTransfer implicit ops when forming load multiple and return instructions.
Evan Cheng [Fri, 22 Oct 2010 21:29:58 +0000 (21:29 +0000)]
Transfer implicit ops when forming load multiple and return instructions.

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

13 years agoAdd tests for the correct encoding of NEON vmls.
Owen Anderson [Fri, 22 Oct 2010 20:31:24 +0000 (20:31 +0000)]
Add tests for the correct encoding of NEON vmls.

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

13 years agoBe more strict when detecting critical edges before loop splitting.
Jakob Stoklund Olesen [Fri, 22 Oct 2010 20:28:23 +0000 (20:28 +0000)]
Be more strict when detecting critical edges before loop splitting.

An exit block with a critical edge must only have predecessors in the loop, or
just before the loop. This guarantees that the inserted copies in the loop
predecessors dominate the exit block.

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

13 years agoAdd print methods
Jakob Stoklund Olesen [Fri, 22 Oct 2010 20:28:21 +0000 (20:28 +0000)]
Add print methods

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

13 years agoAdd correct NEON encodings for vqdmlal.
Owen Anderson [Fri, 22 Oct 2010 19:35:48 +0000 (19:35 +0000)]
Add correct NEON encodings for vqdmlal.

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

13 years agoAdd the encoding information for the rest of the ARM mode multiply instructions.
Jim Grosbach [Fri, 22 Oct 2010 19:15:30 +0000 (19:15 +0000)]
Add the encoding information for the rest of the ARM mode multiply instructions.

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

13 years agoI hate line endings.
Michael J. Spencer [Fri, 22 Oct 2010 19:14:39 +0000 (19:14 +0000)]
I hate line endings.

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

13 years agoProvide correct encodings for NEON vmlal.
Owen Anderson [Fri, 22 Oct 2010 19:05:25 +0000 (19:05 +0000)]
Provide correct encodings for NEON vmlal.

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

13 years agoLoadable modules are not supported on Cygwin. PR 6655.
Oscar Fuentes [Fri, 22 Oct 2010 19:03:24 +0000 (19:03 +0000)]
Loadable modules are not supported on Cygwin. PR 6655.

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

13 years agoSilence compiler warnings.
Evan Cheng [Fri, 22 Oct 2010 18:57:05 +0000 (18:57 +0000)]
Silence compiler warnings.

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

13 years agoProvide correct NEON encodings for vmla.
Owen Anderson [Fri, 22 Oct 2010 18:54:37 +0000 (18:54 +0000)]
Provide correct NEON encodings for vmla.

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

13 years agoEndian: Get rid of LLVM_IS_HOST_BIG_ENDIAN.
Michael J. Spencer [Fri, 22 Oct 2010 18:45:12 +0000 (18:45 +0000)]
Endian: Get rid of LLVM_IS_HOST_BIG_ENDIAN.

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

13 years agoTemporarily revert r117079; it broke a tester. Radar 6635085.
Stuart Hastings [Fri, 22 Oct 2010 18:44:22 +0000 (18:44 +0000)]
Temporarily revert r117079; it broke a tester.  Radar 6635085.

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

13 years agoMore ARM multiply instuction binary encodings.
Jim Grosbach [Fri, 22 Oct 2010 18:35:16 +0000 (18:35 +0000)]
More ARM multiply instuction binary encodings.

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

13 years agoAdd fastcc cc: pass and return VFP / NEON values in registers. Controlled by -arm...
Evan Cheng [Fri, 22 Oct 2010 18:23:05 +0000 (18:23 +0000)]
Add fastcc cc: pass and return VFP / NEON values in registers. Controlled by -arm-fastcc for now.

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

13 years agoAdd testscases for encoding of NEON vdqmull.
Owen Anderson [Fri, 22 Oct 2010 17:57:37 +0000 (17:57 +0000)]
Add testscases for encoding of NEON vdqmull.

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

13 years agoParameterize a bit of ARM encoding information, simplifying some instruction
Jim Grosbach [Fri, 22 Oct 2010 17:42:06 +0000 (17:42 +0000)]
Parameterize a bit of ARM encoding information, simplifying some instruction
definitions.

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

13 years agoAvoid stalled file dependency when tablegenning.
Oscar Fuentes [Fri, 22 Oct 2010 17:37:42 +0000 (17:37 +0000)]
Avoid stalled file dependency when tablegenning.

Patch by Frits van Bommel!

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

13 years agoMake some symbols static, move classes into anonymous namespaces.
Benjamin Kramer [Fri, 22 Oct 2010 17:35:07 +0000 (17:35 +0000)]
Make some symbols static, move classes into anonymous namespaces.

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

13 years agoDon't try to guess svn version when current path is a symlink.
Oscar Fuentes [Fri, 22 Oct 2010 17:16:26 +0000 (17:16 +0000)]
Don't try to guess svn version when current path is a symlink.

See PR 8473.

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

13 years agoMore ARM multiply instruction encoding information.
Jim Grosbach [Fri, 22 Oct 2010 17:16:17 +0000 (17:16 +0000)]
More ARM multiply instruction encoding information.

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

13 years agoTeach CMake to only touch tablegen-generated files if anything
Oscar Fuentes [Fri, 22 Oct 2010 16:20:10 +0000 (16:20 +0000)]
Teach CMake to only touch tablegen-generated files if anything
actually changed.

Patch by Frits van Bommel!

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

13 years agoMaking the e_machine configurable by the target backend in ELFObjectWriter.
Wesley Peck [Fri, 22 Oct 2010 15:52:49 +0000 (15:52 +0000)]
Making the e_machine configurable by the target backend in ELFObjectWriter.

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

13 years agolli: On Cygwin-1.5, lli crashes at invoking destructors in atexit handler.
NAKAMURA Takumi [Fri, 22 Oct 2010 14:53:59 +0000 (14:53 +0000)]
lli: On Cygwin-1.5, lli crashes at invoking destructors in atexit handler.

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

13 years agoStandardise all build-mode affecting {EN,DIS}ABLE_* make options to
Peter Collingbourne [Fri, 22 Oct 2010 12:54:34 +0000 (12:54 +0000)]
Standardise all build-mode affecting {EN,DIS}ABLE_* make options to
test equality to 1, and fix/update documentation to reflect this

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

13 years agotest/Makefile: Force lit -j1 on Cygwin.
NAKAMURA Takumi [Fri, 22 Oct 2010 09:40:37 +0000 (09:40 +0000)]
test/Makefile: Force lit -j1 on Cygwin.

lit -jN causes crash on Cygwin's python.

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

13 years agoRename LLVM_IS_TARGET_BIG_ENDIAN to LLVM_IS_HOST_BIG_ENDIAN to reflect what it actual...
Michael J. Spencer [Fri, 22 Oct 2010 08:47:28 +0000 (08:47 +0000)]
Rename LLVM_IS_TARGET_BIG_ENDIAN to LLVM_IS_HOST_BIG_ENDIAN to reflect what it actually means.

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

13 years agoReverting r117031 to cleanup valgrind errors.
Andrew Trick [Fri, 22 Oct 2010 03:58:29 +0000 (03:58 +0000)]
Reverting r117031 to cleanup valgrind errors.
It doesn't look like anything is wrong with the checkin,
but the new test cases expose a mem bug in AsmParser.

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

13 years agoAdd some basic ret instruction support to arm fast-isel.
Eric Christopher [Fri, 22 Oct 2010 01:28:00 +0000 (01:28 +0000)]
Add some basic ret instruction support to arm fast-isel.

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

13 years agoFixed handling of immediate operand sizes, which
Sean Callanan [Fri, 22 Oct 2010 01:24:11 +0000 (01:24 +0000)]
Fixed handling of immediate operand sizes, which
weren't properly reflecting the OperandSize attribute
of the instruction leading to improper decoding of
certain instructions with the 66H prefix.  Also added
a test case for this.

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

13 years agoWin32/Signals.inc: DontRemoveFileOnSignal(): Please acquire the CriticalSection.
NAKAMURA Takumi [Fri, 22 Oct 2010 01:23:50 +0000 (01:23 +0000)]
Win32/Signals.inc: DontRemoveFileOnSignal(): Please acquire the CriticalSection.

It choked BugPoint on Mingw.

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

13 years agoARM binary encoding for some of the multiply instructions.
Jim Grosbach [Thu, 21 Oct 2010 22:52:30 +0000 (22:52 +0000)]
ARM binary encoding for some of the multiply instructions.

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

13 years agoTest case for r117075. Radar 6635085.
Stuart Hastings [Thu, 21 Oct 2010 22:43:32 +0000 (22:43 +0000)]
Test case for r117075.  Radar 6635085.

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

13 years agoAdd tests for NEON encoding of vmull.
Owen Anderson [Thu, 21 Oct 2010 22:19:53 +0000 (22:19 +0000)]
Add tests for NEON encoding of vmull.

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

13 years agoARM binary encodings for MVN variants.
Jim Grosbach [Thu, 21 Oct 2010 22:19:32 +0000 (22:19 +0000)]
ARM binary encodings for MVN variants.

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

13 years agoAdd tests for NEON encoding of vqdmulh and vqrdmulh.
Owen Anderson [Thu, 21 Oct 2010 22:05:33 +0000 (22:05 +0000)]
Add tests for NEON encoding of vqdmulh and vqrdmulh.

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

13 years agoTrailing whitespace.
Jim Grosbach [Thu, 21 Oct 2010 22:04:05 +0000 (22:04 +0000)]
Trailing whitespace.

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

13 years agoARM Binary encoding information for BFC/BFI instructions.
Jim Grosbach [Thu, 21 Oct 2010 22:03:21 +0000 (22:03 +0000)]
ARM Binary encoding information for BFC/BFI instructions.

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

13 years agoAdd some more documentation.
Dan Gohman [Thu, 21 Oct 2010 21:55:35 +0000 (21:55 +0000)]
Add some more documentation.

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

13 years agoAdd tests for NEON vmul encoding.
Owen Anderson [Thu, 21 Oct 2010 21:51:58 +0000 (21:51 +0000)]
Add tests for NEON vmul encoding.

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

13 years agoThese don't need to be virtual.
Eric Christopher [Thu, 21 Oct 2010 21:47:51 +0000 (21:47 +0000)]
These don't need to be virtual.

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

13 years agoRename this test to better reflect its contents.
Owen Anderson [Thu, 21 Oct 2010 21:40:15 +0000 (21:40 +0000)]
Rename this test to better reflect its contents.

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

13 years agoFix type in passes.
Tobias Grosser [Thu, 21 Oct 2010 21:16:03 +0000 (21:16 +0000)]
Fix type in passes.

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

13 years agoAdd tests for NEON encodings of vaddhn and vraddhn.
Owen Anderson [Thu, 21 Oct 2010 20:56:57 +0000 (20:56 +0000)]
Add tests for NEON encodings of vaddhn and vraddhn.

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

13 years agoFix Warnings.
Michael J. Spencer [Thu, 21 Oct 2010 20:49:38 +0000 (20:49 +0000)]
Fix Warnings.

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

13 years agoX86: Base _fltused on the FunctionType of the called value instead of the potentially...
Michael J. Spencer [Thu, 21 Oct 2010 20:49:23 +0000 (20:49 +0000)]
X86: Base _fltused on the FunctionType of the called value instead of the potentially null "CalledFunction". Thanks Duncan!

This is needed for indirect calls.

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

13 years agoMove the encoding logic for Q registers into getMachineOpValue().
Owen Anderson [Thu, 21 Oct 2010 20:49:13 +0000 (20:49 +0000)]
Move the encoding logic for Q registers into getMachineOpValue().

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

13 years agoAdd tests for NEON encodings of vqadd, which was already correctly encoded.
Owen Anderson [Thu, 21 Oct 2010 20:42:04 +0000 (20:42 +0000)]
Add tests for NEON encodings of vqadd, which was already correctly encoded.

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

13 years agoTrailing whitespace.
Mikhail Glushenkov [Thu, 21 Oct 2010 20:40:39 +0000 (20:40 +0000)]
Trailing whitespace.

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

13 years agoSupport: Add Endian.h
Michael J. Spencer [Thu, 21 Oct 2010 20:28:21 +0000 (20:28 +0000)]
Support: Add Endian.h

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

13 years agoARM encodes Q registers as 2xregno (i.e. the number of the D register that correspond...
Owen Anderson [Thu, 21 Oct 2010 20:21:49 +0000 (20:21 +0000)]
ARM encodes Q registers as 2xregno (i.e. the number of the D register that corresponds to the lower
half of the Q register), rather than with just regno.  This allows us to unify the encodings for
a lot of different NEON instrucitons that differ only in whether they have Q or D register operands.

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

13 years agoHandle storing args to the stack for calls.
Eric Christopher [Thu, 21 Oct 2010 20:09:54 +0000 (20:09 +0000)]
Handle storing args to the stack for calls.

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

13 years agoAdding initial AsmParser implementation for the MBlaze backend. It is
Wesley Peck [Thu, 21 Oct 2010 19:48:38 +0000 (19:48 +0000)]
Adding initial AsmParser implementation for the MBlaze backend. It is
mostly based on the ARM AsmParser at this time and is not particularly
functional.

Changed the MBlaze data layout from:
    "E-p:32:32-i8:8:8-i16:16:16-i64:32:32-f64:32:32-v64:32:32-v128:32:32-n32"
to:
    "E-p:32:32:32-i8:8:8-i16:16:16"
because the MicroBlaze doesn't have i64, f64, v64, or v128 data types.

Cleaned up the MBlaze source code:
    1. The floating point register class has been removed. The
       MicroBlaze does not have floating point registers. Floating
       point values are simply stored in integer registers.
    2. Renaming the CPURegs register class to GPR to reflect the
       standard naming.
    3. Removing a lot of stale code from AsmPrinter after
       the conversion to InstPrinter.
    4. Simplified sign extended loads by marking them as
       expanded in ISelLowering.

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

13 years agoExplain what "constant" means here.
Dan Gohman [Thu, 21 Oct 2010 19:45:09 +0000 (19:45 +0000)]
Explain what "constant" means here.

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

13 years agoMore load/store refactoring, call reg+offset simplification from within
Eric Christopher [Thu, 21 Oct 2010 19:40:30 +0000 (19:40 +0000)]
More load/store refactoring, call reg+offset simplification from within
the emitter to handle the addresses. Only simplify the offset if we need
to - also fix bug where in addrmode 5 we weren't dividing the offset by
4, which showed up due to not always lowering.

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

13 years agotrailing whitespace
Jim Grosbach [Thu, 21 Oct 2010 19:38:40 +0000 (19:38 +0000)]
trailing whitespace

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

13 years agoUpdate comments.
Dan Gohman [Thu, 21 Oct 2010 19:01:22 +0000 (19:01 +0000)]
Update comments.

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

13 years agoAdd correct NEON encodings for vhadd and vrhadd.
Owen Anderson [Thu, 21 Oct 2010 18:55:04 +0000 (18:55 +0000)]
Add correct NEON encodings for vhadd and vrhadd.

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

13 years agoDon't include the destination interval in the union when computing
Jakob Stoklund Olesen [Thu, 21 Oct 2010 18:47:08 +0000 (18:47 +0000)]
Don't include the destination interval in the union when computing
Parent - union(Y, ...). Doh.

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

13 years agoPermit landing pad successor blocks when verifying basic blocks that end in an
Jakob Stoklund Olesen [Thu, 21 Oct 2010 18:47:06 +0000 (18:47 +0000)]
Permit landing pad successor blocks when verifying basic blocks that end in an
unconditional branch.

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

13 years agoAdd correct encodings for NEON vaddw.s* and vaddw.u*.
Owen Anderson [Thu, 21 Oct 2010 18:20:25 +0000 (18:20 +0000)]
Add correct encodings for NEON vaddw.s* and vaddw.u*.

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

13 years agoProvide correct NEON encodings for vaddl.u* and vaddl.s*.
Owen Anderson [Thu, 21 Oct 2010 18:09:17 +0000 (18:09 +0000)]
Provide correct NEON encodings for vaddl.u* and vaddl.s*.

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

13 years agoDo not recurse into symbol refs that have a variant kind. This prevents us
Rafael Espindola [Thu, 21 Oct 2010 18:00:20 +0000 (18:00 +0000)]
Do not recurse into symbol refs that have a variant kind. This prevents us
from losing the variant when producing a relocation on an alias.

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

13 years agoMore tweaks to X86 instructions to allow the 'w' suffix in places it makes
Kevin Enderby [Thu, 21 Oct 2010 17:16:46 +0000 (17:16 +0000)]
More tweaks to X86 instructions to allow the 'w' suffix in places it makes
sense, when the instruction takes the 16-bit ax register or m16 memory
location.  These changes to llvm-mc matches what the darwin assembler allows
for these instructions.  Also added the missing flex (without the wait prefix)
and ud2a as an alias to ud2 (still to add ud2b).

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

13 years agoAlignLoc is never used for anything - zap it (gcc-4.6 warning).
Duncan Sands [Thu, 21 Oct 2010 16:07:10 +0000 (16:07 +0000)]
AlignLoc is never used for anything - zap it (gcc-4.6 warning).

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

13 years agoThe return value of this call is not used, so no point
Duncan Sands [Thu, 21 Oct 2010 16:06:28 +0000 (16:06 +0000)]
The return value of this call is not used, so no point
in assigning it to a variable (gcc-4.6 warning).

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

13 years agoRetOp is not actually used for anything useful (though
Duncan Sands [Thu, 21 Oct 2010 16:05:44 +0000 (16:05 +0000)]
RetOp is not actually used for anything useful (though
it looks like maybe it was supposed to be used in the
test...), so zap it (gcc-4.6 warning).

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

13 years agoThe variable liTRC is not used for anything useful, zap it
Duncan Sands [Thu, 21 Oct 2010 16:04:43 +0000 (16:04 +0000)]
The variable liTRC is not used for anything useful, zap it
(gcc-4.6 warning).

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

13 years agoRemove some variables that are never really used
Duncan Sands [Thu, 21 Oct 2010 16:03:28 +0000 (16:03 +0000)]
Remove some variables that are never really used
(gcc-4.6 warns about these).

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

13 years agoAdd parentheses to pacify gcc, which warns otherwise.
Duncan Sands [Thu, 21 Oct 2010 16:02:12 +0000 (16:02 +0000)]
Add parentheses to pacify gcc, which warns otherwise.

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

13 years agoArgh, completely forgot to add this to the release notes!
Duncan Sands [Thu, 21 Oct 2010 14:40:02 +0000 (14:40 +0000)]
Argh, completely forgot to add this to the release notes!
Better late than never, right?

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

13 years agoFix the cleanup process of exception information in JIT. Now JIT
Duncan Sands [Thu, 21 Oct 2010 08:57:29 +0000 (08:57 +0000)]
Fix the cleanup process of exception information in JIT.  Now JIT
deregisters registered by it FDE structures allowing consecutive
JIT runs to succeed.  Patch by Yuri.  Fixes PR8285.

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

13 years agoFix whitespace.
Bill Wendling [Thu, 21 Oct 2010 06:25:08 +0000 (06:25 +0000)]
Fix whitespace.

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

13 years agoRemoving stale AsmPrinter directory from MicroBlaze backend.
Wesley Peck [Thu, 21 Oct 2010 05:05:06 +0000 (05:05 +0000)]
Removing stale AsmPrinter directory from MicroBlaze backend.

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

13 years agoDeleted lib/Target/MBlaze/AsmPrinter/CMakeLists.txt. This way the
Oscar Fuentes [Thu, 21 Oct 2010 05:01:26 +0000 (05:01 +0000)]
Deleted lib/Target/MBlaze/AsmPrinter/CMakeLists.txt. This way the
CMake build does not try to build that library, which collides with
MBlaze/InstPrinter.

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

13 years agoRecommit 116986 with capitalization typo fixed.
Wesley Peck [Thu, 21 Oct 2010 03:57:26 +0000 (03:57 +0000)]
Recommit 116986 with capitalization typo fixed.

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

13 years agoputback r116983 and fix simple-fp-encoding.ll tests
Andrew Trick [Thu, 21 Oct 2010 03:40:16 +0000 (03:40 +0000)]
putback r116983 and fix simple-fp-encoding.ll tests

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

13 years agoReverting the commit 116986. It was breaking the build on llvm-x86_64-linux though it
Wesley Peck [Thu, 21 Oct 2010 03:34:22 +0000 (03:34 +0000)]
Reverting the commit 116986. It was breaking the build on llvm-x86_64-linux though it
compiles on OS X. I'll ensure that it builds on a linux machine before committing
again.

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

13 years agoRevert r116983, which is breaking all the buildbots.
Owen Anderson [Thu, 21 Oct 2010 03:11:16 +0000 (03:11 +0000)]
Revert r116983, which is breaking all the buildbots.

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

13 years agoMajor update of the MicroBlaze backend. The new features are:
Wesley Peck [Thu, 21 Oct 2010 03:09:55 +0000 (03:09 +0000)]
Major update of the MicroBlaze backend. The new features are:
    1. A delay slot filler that searches for valid instructions
       to fill the delay slot with. Previously NOPs would always
       be inserted into delay slots.
    2. Support for MC based instruction printer added.
    3. Support for MC based machine code generation and ELF
       file generation. ELF file generation does not yet
       completely work as much of the ELF support infrastructure
       is still x86/x86-64 specific.
    4. General clean up of the MBlaze backend code. Much of the
       tablegen code has been cleanup and simplified.

Bug Fixes:
    1. Removed duplicate periods from subtarget feature descriptions.
    2. Many of the instructions had bad machine code information
       in the tablegen files. Much of this has been fixed.

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

13 years agoAdding the EM_MBLAZE value to the machine architectures enumeration to
Wesley Peck [Thu, 21 Oct 2010 02:52:59 +0000 (02:52 +0000)]
Adding the EM_MBLAZE value to the machine architectures enumeration to
support future ELF file generation by the MBlaze backend.

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

13 years agoX86: Add alloca probing to dynamic alloca on Windows. Fixes PR8424.
Michael J. Spencer [Thu, 21 Oct 2010 01:41:01 +0000 (01:41 +0000)]
X86: Add alloca probing to dynamic alloca on Windows. Fixes PR8424.

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

13 years agoAdd missing scheduling itineraries for transfers between core registers and VFP regis...
Evan Cheng [Thu, 21 Oct 2010 01:12:00 +0000 (01:12 +0000)]
Add missing scheduling itineraries for transfers between core registers and VFP registers.

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

13 years agoImplement correct encodings for NEON vadd, both integer and floating point.
Owen Anderson [Thu, 21 Oct 2010 00:48:00 +0000 (00:48 +0000)]
Implement correct encodings for NEON vadd, both integer and floating point.

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

13 years agoCodeGen-Windows: Only emit _fltused if a VarArg function is called with floating...
Michael J. Spencer [Thu, 21 Oct 2010 00:08:21 +0000 (00:08 +0000)]
CodeGen-Windows: Only emit _fltused if a VarArg function is called with floating point args.
This should be the minimum set of functions that could possibly need it.

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

13 years agoCustom lower f64 args passed in integer registers.
Eric Christopher [Thu, 21 Oct 2010 00:01:47 +0000 (00:01 +0000)]
Custom lower f64 args passed in integer registers.

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