oota-llvm.git
13 years agoRename the encoder method for t_cbtarget to match.
Jim Grosbach [Thu, 9 Dec 2010 19:04:53 +0000 (19:04 +0000)]
Rename the encoder method for t_cbtarget to match.

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

13 years agoThumb needs a few different encoding schemes for branch targets. Rename
Jim Grosbach [Thu, 9 Dec 2010 19:01:46 +0000 (19:01 +0000)]
Thumb needs a few different encoding schemes for branch targets. Rename
t_brtarget to be more specific.

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

13 years ago80-column fixes.
Bob Wilson [Thu, 9 Dec 2010 18:43:35 +0000 (18:43 +0000)]
80-column fixes.

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

13 years agoARM stm/ldm instructions require more than one register in the register list.
Jim Grosbach [Thu, 9 Dec 2010 18:31:13 +0000 (18:31 +0000)]
ARM stm/ldm instructions require more than one register in the register list.
Otherwise, a plain str/ldr should be used instead. Make sure we account for
that in prologue/epilogue code generation.
rdar://8745460

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

13 years agoAdd a license comment to the generated arm_neon.h header.
Bob Wilson [Thu, 9 Dec 2010 18:31:01 +0000 (18:31 +0000)]
Add a license comment to the generated arm_neon.h header.
Remove the previous header.  I don't think we need to expose to end users
that we use TableGen to produce our version of arm_neon.h, and that header
was also using doubleslash comments which could be a problem when using it
in strict C89 compilations.

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

13 years agoAdded register reassignment prototype to RAGreedy. It's a simple
Andrew Trick [Thu, 9 Dec 2010 18:15:21 +0000 (18:15 +0000)]
Added register reassignment prototype to RAGreedy. It's a simple
heuristic to reshuffle register assignments when we can't find an
available reg.

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

13 years agoMore code not compiled by CMake. :(.
Michael J. Spencer [Thu, 9 Dec 2010 18:06:07 +0000 (18:06 +0000)]
More code not compiled by CMake. :(.

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

13 years agoCMake: Add FileUpdate to the build.
Michael J. Spencer [Thu, 9 Dec 2010 17:54:44 +0000 (17:54 +0000)]
CMake: Add FileUpdate to the build.

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

13 years agoMissed FileUpdate because CMake doesn't build it yet :(.
Michael J. Spencer [Thu, 9 Dec 2010 17:48:55 +0000 (17:48 +0000)]
Missed FileUpdate because CMake doesn't build it yet :(.

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

13 years agoSupport/Windows/PathV2: Fix header comment.
Michael J. Spencer [Thu, 9 Dec 2010 17:37:42 +0000 (17:37 +0000)]
Support/Windows/PathV2: Fix header comment.

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

13 years agoFix whitespace.
Michael J. Spencer [Thu, 9 Dec 2010 17:37:32 +0000 (17:37 +0000)]
Fix whitespace.

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

13 years agoSupport: Move c_str from SmallVector back to SmallString and add a free standing
Michael J. Spencer [Thu, 9 Dec 2010 17:37:18 +0000 (17:37 +0000)]
Support: Move c_str from SmallVector back to SmallString and add a free standing
templated c_str in Windows.h to replace it.

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

13 years agoSupport/FileSystem: Change file_status predicate functions that cannot fail to
Michael J. Spencer [Thu, 9 Dec 2010 17:37:02 +0000 (17:37 +0000)]
Support/FileSystem: Change file_status predicate functions that cannot fail to
return their result instead of an error_code. Also add some missing predicate
functions.

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

13 years agoSupport/MemoryBuffer: Replace all uses of std::string *ErrMsg with error_code &ec...
Michael J. Spencer [Thu, 9 Dec 2010 17:36:48 +0000 (17:36 +0000)]
Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with error_code &ec. And fix clients.

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

13 years agoAdd ROTR and ROTRV mips32 instructions. Patch by Akira Hatanaka
Bruno Cardoso Lopes [Thu, 9 Dec 2010 17:32:30 +0000 (17:32 +0000)]
Add ROTR and ROTRV mips32 instructions. Patch by Akira Hatanaka

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

13 years agoFix delay slot filler for non mips1 targets. Patch by Akira Hatanaka
Bruno Cardoso Lopes [Thu, 9 Dec 2010 17:31:11 +0000 (17:31 +0000)]
Fix delay slot filler for non mips1 targets. Patch by Akira Hatanaka

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

13 years agoDont' feed ILA two inputs - it takes just one.
Kalle Raiskila [Thu, 9 Dec 2010 16:17:31 +0000 (16:17 +0000)]
Dont' feed ILA two inputs - it takes just one.

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

13 years agotidy up.
Jim Grosbach [Thu, 9 Dec 2010 16:15:41 +0000 (16:15 +0000)]
tidy up.

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

13 years ago80 columns.
Jim Grosbach [Thu, 9 Dec 2010 16:14:46 +0000 (16:14 +0000)]
80 columns.

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

13 years agoenhance memcpyopt to zap memcpy's that have the same src/dst.
Chris Lattner [Thu, 9 Dec 2010 07:45:45 +0000 (07:45 +0000)]
enhance memcpyopt to zap memcpy's that have the same src/dst.

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

13 years agofix PR8753, eliminating a case where we'd infinitely make a
Chris Lattner [Thu, 9 Dec 2010 07:39:50 +0000 (07:39 +0000)]
fix PR8753, eliminating a case where we'd infinitely make a
substitution because it doesn't actually change the IR.  Patch by
Jakub Staszak!

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

13 years agoRewrite the darwin tlv support to use a chain and return to copying
Eric Christopher [Thu, 9 Dec 2010 06:25:53 +0000 (06:25 +0000)]
Rewrite the darwin tlv support to use a chain and return to copying
the output to the correct register. Fixes a hidden problem uncovered
by the last patch where we'd try to DAG combine our MVT::Other node
oddly.

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

13 years agoTake the first step towards making LVI non-recursive: get rid of the LVIQuery abstrac...
Owen Anderson [Thu, 9 Dec 2010 06:14:58 +0000 (06:14 +0000)]
Take the first step towards making LVI non-recursive: get rid of the LVIQuery abstraction.

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

13 years ago80-col fixups.
Eric Christopher [Thu, 9 Dec 2010 04:48:06 +0000 (04:48 +0000)]
80-col fixups.

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

13 years agoReworking the stack layout generated by the MBlaze backend.
Wesley Peck [Thu, 9 Dec 2010 03:42:04 +0000 (03:42 +0000)]
Reworking the stack layout generated by the MBlaze backend.

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

13 years agoFix encoding of the immediate operands on post-indexed LDR and friends.
Owen Anderson [Thu, 9 Dec 2010 02:56:12 +0000 (02:56 +0000)]
Fix encoding of the immediate operands on post-indexed LDR and friends.

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

13 years agoReally check that the bits that will become zero are actually already zero
Dan Gohman [Thu, 9 Dec 2010 02:52:17 +0000 (02:52 +0000)]
Really check that the bits that will become zero are actually already zero
before eliminating the operation that zeros them. This fixes rdar://8739316.

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

13 years agoFix up some comments.
Eric Christopher [Thu, 9 Dec 2010 01:57:45 +0000 (01:57 +0000)]
Fix up some comments.

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

13 years agoFix Thumb2 fixups for ldr.
Owen Anderson [Thu, 9 Dec 2010 01:51:07 +0000 (01:51 +0000)]
Fix Thumb2 fixups for ldr.

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

13 years agoAdd a textual message to the assert.
Jim Grosbach [Thu, 9 Dec 2010 01:23:51 +0000 (01:23 +0000)]
Add a textual message to the assert.

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

13 years agoAdd a sanity check assert() for t2ADD/SUBrSPi instructions that they really are
Jim Grosbach [Thu, 9 Dec 2010 01:22:19 +0000 (01:22 +0000)]
Add a sanity check assert() for t2ADD/SUBrSPi instructions that they really are
referencing the stack pointer as they say they are.

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

13 years agoWhen using multiple instructions to reference a frame index, make sure to
Jim Grosbach [Thu, 9 Dec 2010 01:22:13 +0000 (01:22 +0000)]
When using multiple instructions to reference a frame index, make sure to
update the opcode when necessary as well as the source register.

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

13 years agoThe add/sub SP instructions are really pseudos. The assembler should ignore
Jim Grosbach [Thu, 9 Dec 2010 01:21:27 +0000 (01:21 +0000)]
The add/sub SP instructions are really pseudos. The assembler should ignore
them.

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

13 years agoIntervalMap iterators are heavyweight, so avoid copying them around and use
Jakob Stoklund Olesen [Thu, 9 Dec 2010 01:06:52 +0000 (01:06 +0000)]
IntervalMap iterators are heavyweight, so avoid copying them around and use
references instead.

Similarly, IntervalMap::begin() is almost as expensive as find(), so use find(x)
instead of begin().advanceTo(x);

This makes RegAllocBasic run another 5% faster.

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

13 years agoRemove unused variables
Matt Beaumont-Gay [Thu, 9 Dec 2010 01:04:43 +0000 (01:04 +0000)]
Remove unused variables

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

13 years agoFix typo in Thumb2 branch fixup.
Owen Anderson [Thu, 9 Dec 2010 01:02:09 +0000 (01:02 +0000)]
Fix typo in Thumb2 branch fixup.

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

13 years agoStop confusing people, it's not really a chain, or a tumor.
Eric Christopher [Thu, 9 Dec 2010 00:57:19 +0000 (00:57 +0000)]
Stop confusing people, it's not really a chain, or a tumor.

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

13 years agoRemove extraneous semicolon.
Bill Wendling [Thu, 9 Dec 2010 00:51:54 +0000 (00:51 +0000)]
Remove extraneous semicolon.

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

13 years agoAttempt to make the bit-twiddling readable resulted in the binary value being
Bill Wendling [Thu, 9 Dec 2010 00:44:33 +0000 (00:44 +0000)]
Attempt to make the bit-twiddling readable resulted in the binary value being
overwritten.

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

13 years agoThe BLX instruction is encoded differently than the BL, because why not? In
Bill Wendling [Thu, 9 Dec 2010 00:39:08 +0000 (00:39 +0000)]
The BLX instruction is encoded differently than the BL, because why not? In
particular, the immediate has 20-bits of value instead of 21. And bit 0 is '0'
always. Going through the BL fixup encoding was trashing the "bit 0 is '0'"
invariant.

Attempt to get the encoding at slightly more correct with this.

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

13 years agoRemove extraneous copy from DAG conversion for darwin tls. This was
Eric Christopher [Thu, 9 Dec 2010 00:27:58 +0000 (00:27 +0000)]
Remove extraneous copy from DAG conversion for darwin tls. This was
popping up at O0 when it wasn't folded and the fast allocator would
complain.

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

13 years agoFix Thumb2 BCC encoding and fixups.
Owen Anderson [Thu, 9 Dec 2010 00:27:41 +0000 (00:27 +0000)]
Fix Thumb2 BCC encoding and fixups.

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

13 years agoAdd rsp to the uses for the same reason as 32-bit.
Eric Christopher [Thu, 9 Dec 2010 00:26:41 +0000 (00:26 +0000)]
Add rsp to the uses for the same reason as 32-bit.

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

13 years agoDW_FORM_data1 may not provide sufficient room for vtable index, use _udata instead.
Devang Patel [Thu, 9 Dec 2010 00:10:40 +0000 (00:10 +0000)]
DW_FORM_data1 may not provide sufficient room for vtable index, use _udata instead.
This fixes radar 8730409.

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

13 years agoAllow a slash, '/', as a prefix separator for X86. rdar://8741045
Kevin Enderby [Wed, 8 Dec 2010 23:57:59 +0000 (23:57 +0000)]
Allow a slash, '/', as a prefix separator for X86.  rdar://8741045

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

13 years agoProperly deal with empty intervals when checking for interference.
Jakob Stoklund Olesen [Wed, 8 Dec 2010 23:51:35 +0000 (23:51 +0000)]
Properly deal with empty intervals when checking for interference.

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

13 years agoStyle nit and whitespace cleanup
Jason W Kim [Wed, 8 Dec 2010 23:35:25 +0000 (23:35 +0000)]
Style nit and whitespace cleanup

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

13 years agoMove this test to tlv* to make it easier to notice versus linux tls
Eric Christopher [Wed, 8 Dec 2010 23:33:23 +0000 (23:33 +0000)]
Move this test to tlv* to make it easier to notice versus linux tls
support.

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

13 years agoClean up the add/sub w/ SP source reg instructions in Thumb2 a bit. Add a FIXME
Jim Grosbach [Wed, 8 Dec 2010 23:30:19 +0000 (23:30 +0000)]
Clean up the add/sub w/ SP source reg instructions in Thumb2 a bit. Add a FIXME
for more thorough cleanup.

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

13 years agoFix T2TwoRegImm and use it for t2ADDrSPi12 and friends.
Jim Grosbach [Wed, 8 Dec 2010 23:24:29 +0000 (23:24 +0000)]
Fix T2TwoRegImm and use it for t2ADDrSPi12 and friends.

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

13 years agoRemoved dead comment.
Jason W Kim [Wed, 8 Dec 2010 23:19:44 +0000 (23:19 +0000)]
Removed dead comment.

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

13 years agoARM/MC/ELF TPsoft is now a proper pseudo inst.
Jason W Kim [Wed, 8 Dec 2010 23:14:44 +0000 (23:14 +0000)]
ARM/MC/ELF TPsoft is now a proper pseudo inst.
Added test to check bl __aeabi_read_tp gets emitted properly for ELF/ASM
as well as ELF/OBJ (including fixup)

Also added support for ELF::R_ARM_TLS_IE32

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

13 years agoT2TwoRegImm isn't right for t2SUBrSPi12. Use T2I instead.
Jim Grosbach [Wed, 8 Dec 2010 23:13:01 +0000 (23:13 +0000)]
T2TwoRegImm isn't right for t2SUBrSPi12. Use T2I instead.

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

13 years agoAdd operand encoding for Thumb2 subw SP + imm. rdar://8745434
Jim Grosbach [Wed, 8 Dec 2010 23:12:09 +0000 (23:12 +0000)]
Add operand encoding for Thumb2 subw SP + imm. rdar://8745434

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

13 years agoAdd operand encoding for Thumb2 addw Rn + imm. rdar://8745434
Jim Grosbach [Wed, 8 Dec 2010 23:04:16 +0000 (23:04 +0000)]
Add operand encoding for Thumb2 addw Rn + imm. rdar://8745434

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

13 years agoSupport the "target" encodings for the CB[N]Z instructions.
Bill Wendling [Wed, 8 Dec 2010 23:01:43 +0000 (23:01 +0000)]
Support the "target" encodings for the CB[N]Z instructions.

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

13 years agoFix an obvious cut-n-paste error.
Evan Cheng [Wed, 8 Dec 2010 23:01:18 +0000 (23:01 +0000)]
Fix an obvious cut-n-paste error.

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

13 years agoImplement very primitive hinting support in RegAllocGreedy.
Jakob Stoklund Olesen [Wed, 8 Dec 2010 22:57:16 +0000 (22:57 +0000)]
Implement very primitive hinting support in RegAllocGreedy.

The hint is simply tried first and then forgotten if it couldn't be allocated
immediately.

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

13 years agoAdd operand encoding for Thumb2 addw SP + imm. rdar://8745434
Jim Grosbach [Wed, 8 Dec 2010 22:50:19 +0000 (22:50 +0000)]
Add operand encoding for Thumb2 addw SP + imm. rdar://8745434

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

13 years agoParameterize opcode encoding bits for Thumb2 extended precision integer
Jim Grosbach [Wed, 8 Dec 2010 22:38:41 +0000 (22:38 +0000)]
Parameterize opcode encoding bits for Thumb2 extended precision integer
multiply instructions.

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

13 years agoAdd operators for "_lane" variants of some saturating Neon multiply intrinsics
Bob Wilson [Wed, 8 Dec 2010 22:36:08 +0000 (22:36 +0000)]
Add operators for "_lane" variants of some saturating Neon multiply intrinsics
so they can be implemented without separate clang builtins.

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

13 years agoFix operand encoding for Thumb2 extended precision multiplies. rdar://8745555
Jim Grosbach [Wed, 8 Dec 2010 22:29:28 +0000 (22:29 +0000)]
Fix operand encoding for Thumb2 extended precision multiplies. rdar://8745555

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

13 years agoStore (priority,regnum) pairs in the priority queue instead of providing an
Jakob Stoklund Olesen [Wed, 8 Dec 2010 22:22:41 +0000 (22:22 +0000)]
Store (priority,regnum) pairs in the priority queue instead of providing an
abstract priority queue interface in subclasses that want to override the
priority calculations.

Subclasses must provide a getPriority() implementation instead.

This approach requires less code as long as priorities are expressable as simple
floats, and it avoids the dangers of defining potentially expensive priority
comparison functions.

It also should speed up priority_queue operations since they no longer have to
chase pointers when comparing registers. This is not measurable, though.

Preferably, we shouldn't use floats to guide code generation. The use of floats
here is derived from the use of floats for spill weights. Spill weights have a
dynamic range that doesn't lend itself easily to a fixpoint implementation.

When someone invents a stable spill weight representation, it can be reused for
allocation priorities.

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

13 years agoReword comment slightly.
Eric Christopher [Wed, 8 Dec 2010 22:21:42 +0000 (22:21 +0000)]
Reword comment slightly.

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

13 years agoFixed some dependencies in RegAllocPBQP.h . Thanks to Borja Ferrer for pointing out...
Lang Hames [Wed, 8 Dec 2010 22:15:32 +0000 (22:15 +0000)]
Fixed some dependencies in RegAllocPBQP.h . Thanks to Borja Ferrer for pointing out this issue.

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

13 years agoSimplify T2 operand assignment notation a bit. No need to specify a bit range
Jim Grosbach [Wed, 8 Dec 2010 22:10:43 +0000 (22:10 +0000)]
Simplify T2 operand assignment notation a bit. No need to specify a bit range
for the source field when it's the whole thing that's being referenced.

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

13 years agoUse type's file info while describing inheritance relationship.
Devang Patel [Wed, 8 Dec 2010 21:46:37 +0000 (21:46 +0000)]
Use type's file info while describing inheritance relationship.

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

13 years agoAdd operators for vabdl and vabal so they can be implemented without builtins.
Bob Wilson [Wed, 8 Dec 2010 21:39:04 +0000 (21:39 +0000)]
Add operators for vabdl and vabal so they can be implemented without builtins.

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

13 years agoRemove unused function parameter.
Bob Wilson [Wed, 8 Dec 2010 21:39:00 +0000 (21:39 +0000)]
Remove unused function parameter.

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

13 years agoFix comment.
Eric Christopher [Wed, 8 Dec 2010 21:35:09 +0000 (21:35 +0000)]
Fix comment.

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

13 years agoTrim includes.
Jakob Stoklund Olesen [Wed, 8 Dec 2010 21:12:00 +0000 (21:12 +0000)]
Trim includes.

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

13 years agoAdd support to create debug info for functions and methods.
Devang Patel [Wed, 8 Dec 2010 20:42:44 +0000 (20:42 +0000)]
Add support to create debug info for functions and methods.

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

13 years agoTweak ARM fixup value adjustments for Thumb to better handle the half-word
Jim Grosbach [Wed, 8 Dec 2010 20:32:07 +0000 (20:32 +0000)]
Tweak ARM fixup value adjustments for Thumb to better handle the half-word
ordering of thumb mode.

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

13 years agoAdd support to create class type.
Devang Patel [Wed, 8 Dec 2010 20:18:20 +0000 (20:18 +0000)]
Add support to create class type.

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

13 years agoAdd an operator for vaba so it can be implemented using vabd.
Bob Wilson [Wed, 8 Dec 2010 20:09:10 +0000 (20:09 +0000)]
Add an operator for vaba so it can be implemented using vabd.

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

13 years agoGeneralize PostRAHazardRecognizer so it can be used in any pass for
Andrew Trick [Wed, 8 Dec 2010 20:04:29 +0000 (20:04 +0000)]
Generalize PostRAHazardRecognizer so it can be used in any pass for
both forward and backward scheduling. Rename it to
ScoreboardHazardRecognizer (Scoreboard is one word). Remove integer
division from the scoreboard's critical path.

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

13 years agoUse this new fangled StringSwitch technology.
Bill Wendling [Wed, 8 Dec 2010 20:02:49 +0000 (20:02 +0000)]
Use this new fangled StringSwitch technology.

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

13 years agoImprove comment.
Owen Anderson [Wed, 8 Dec 2010 19:31:11 +0000 (19:31 +0000)]
Improve comment.

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

13 years agoAdd initializer.
Jim Grosbach [Wed, 8 Dec 2010 15:36:45 +0000 (15:36 +0000)]
Add initializer.

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

13 years agoCleanup table a bit.
Bill Wendling [Wed, 8 Dec 2010 13:03:15 +0000 (13:03 +0000)]
Cleanup table a bit.

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

13 years agoAdd comments.
Evan Cheng [Wed, 8 Dec 2010 06:29:02 +0000 (06:29 +0000)]
Add comments.

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

13 years agoStub out RegAllocGreedy.
Jakob Stoklund Olesen [Wed, 8 Dec 2010 03:26:16 +0000 (03:26 +0000)]
Stub out RegAllocGreedy.

This new register allocator is initially identical to RegAllocBasic, but it will
receive all of the tricks that RegAllocBasic won't get.

RegAllocGreedy will eventually replace linear scan.

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

13 years agoFix newlines.
Bill Wendling [Wed, 8 Dec 2010 02:46:25 +0000 (02:46 +0000)]
Fix newlines.

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

13 years agobuild: Shared libraries shouldn't used RPATH on Darwin, only main executables
Daniel Dunbar [Wed, 8 Dec 2010 02:29:26 +0000 (02:29 +0000)]
build: Shared libraries shouldn't used RPATH on Darwin, only main executables
should use that.

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

13 years agoRegenerate this for Daniel.
Eric Christopher [Wed, 8 Dec 2010 02:02:14 +0000 (02:02 +0000)]
Regenerate this for Daniel.

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

13 years agoAdd support for loading from a constant pool.
Bill Wendling [Wed, 8 Dec 2010 01:57:09 +0000 (01:57 +0000)]
Add support for loading from a constant pool.

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

13 years agoAdd support to create vector, array, enums etc...
Devang Patel [Wed, 8 Dec 2010 01:50:15 +0000 (01:50 +0000)]
Add support to create vector, array, enums etc...

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

13 years agobuild: Don't force -flat_namespace or '-undefined suppress' on unsuspecting users...
Daniel Dunbar [Wed, 8 Dec 2010 01:48:05 +0000 (01:48 +0000)]
build: Don't force -flat_namespace or '-undefined suppress' on unsuspecting users of LLVM makefiles, these options really shouldn't be used on Darwin.

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

13 years agoautoconf: Stop lying to me.
Daniel Dunbar [Wed, 8 Dec 2010 01:48:03 +0000 (01:48 +0000)]
autoconf: Stop lying to me.

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

13 years agoLet target asm backends see assembler flags as they go by. Use that to handle
Jim Grosbach [Wed, 8 Dec 2010 01:16:55 +0000 (01:16 +0000)]
Let target asm backends see assembler flags as they go by. Use that to handle
thumb vs. arm mode differences in WriteNopData().

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

13 years agoMove RABasic::addMBBLiveIns to the base class, it is generally useful.
Jakob Stoklund Olesen [Wed, 8 Dec 2010 01:06:06 +0000 (01:06 +0000)]
Move RABasic::addMBBLiveIns to the base class, it is generally useful.

Minor optimization to the use of IntervalMap iterators. They are fairly
heavyweight, so prefer SI.valid() over SI != end().

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

13 years agoSimplify the byte reordering logic slightly.
Owen Anderson [Wed, 8 Dec 2010 00:21:33 +0000 (00:21 +0000)]
Simplify the byte reordering logic slightly.

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

13 years agoVLDR fixups need special handling under Thumb. While the encoding is the same,
Owen Anderson [Wed, 8 Dec 2010 00:18:36 +0000 (00:18 +0000)]
VLDR fixups need special handling under Thumb.  While the encoding is the same,
the order of the bytes in the data stream is flipped around.

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

13 years agoAdd operators for vadd[lw] and vsub[lw]
Bob Wilson [Wed, 8 Dec 2010 00:14:04 +0000 (00:14 +0000)]
Add operators for vadd[lw] and vsub[lw]
so they can be implemented without clang builtins.

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

13 years agoGlobal variable does not need linkage name.
Devang Patel [Wed, 8 Dec 2010 00:06:22 +0000 (00:06 +0000)]
Global variable does not need linkage name.

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

13 years agoAdd support to create local variable's debug info.
Devang Patel [Tue, 7 Dec 2010 23:58:00 +0000 (23:58 +0000)]
Add support to create local variable's debug info.

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

13 years agoAdd operators for vmlal{_n,_lane} and vmlsl{_n,_lane}
Bob Wilson [Tue, 7 Dec 2010 23:53:37 +0000 (23:53 +0000)]
Add operators for vmlal{_n,_lane} and vmlsl{_n,_lane}
so they can be implemented without clang builtins.

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

13 years agoEmit vmovl intrinsics first in the arm_neon.h header
Bob Wilson [Tue, 7 Dec 2010 23:53:32 +0000 (23:53 +0000)]
Emit vmovl intrinsics first in the arm_neon.h header
so they can be used in the implementations of other intrinsics.

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

13 years agoLayout each section independently. With the testcase in PR8711:
Rafael Espindola [Tue, 7 Dec 2010 23:32:26 +0000 (23:32 +0000)]
Layout each section independently. With the testcase in PR8711:

before:
        4 assembler - Number of assembler layout and relaxation steps
    78563 assembler - Number of emitted assembler fragments
  8693904 assembler - Number of emitted object file bytes
   271223 assembler - Number of evaluated fixups
330771677 assembler - Number of fragment layouts
     5958 assembler - Number of relaxed instructions
  2508361 mcexpr    - Number of MCExpr evaluations

real 0m26.123s
user 0m25.694s
sys 0m0.388s

after:

      4 assembler - Number of assembler layout and relaxation steps
  78563 assembler - Number of emitted assembler fragments
8693904 assembler - Number of emitted object file bytes
 271223 assembler - Number of evaluated fixups
 231507 assembler - Number of fragment layouts
   5958 assembler - Number of relaxed instructions
2508361 mcexpr    - Number of MCExpr evaluations

real 0m2.500s
user 0m2.113s
sys 0m0.273s

And yes, the outputs are identical :-)

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

13 years agoFix a warning about a variable which is only used in an assertion.
Matt Beaumont-Gay [Tue, 7 Dec 2010 23:26:21 +0000 (23:26 +0000)]
Fix a warning about a variable which is only used in an assertion.

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