oota-llvm.git
13 years agoRemove try/catch(...) from Win32/Signals.inc.
Mikhail Glushenkov [Wed, 27 Oct 2010 09:09:04 +0000 (09:09 +0000)]
Remove try/catch(...) from Win32/Signals.inc.

catch(...) is used in Win32/Signals.inc for catching Win32 structured
exceptions, but according to [1], this is wrong.

We can't simply change try/catch to __try/__finally, since this syntax is not
supported by MinGW. We can use __try/__finally on MSVC and __try1/__except1
macros on MinGW [2], but I think that that solution obfuscates the code too
much.

The use of try/catch(...) in Signals.inc makes it impossible to link
MinGW-compiled libSystem with llvm-gcc compiled executables. I propose that we
just remove try/catch(...) from Signals.inc, since the meaning of the code won't
change.

[1] http://members.cox.net/doug_web/eh.htm
[2] http://article.gmane.org/gmane.comp.compilers.llvm.cvs/81315

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

13 years agoIt is confusing to call a random-access iterator 'InputIterator'.
Mikhail Glushenkov [Wed, 27 Oct 2010 07:39:54 +0000 (07:39 +0000)]
It is confusing to call a random-access iterator 'InputIterator'.

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

13 years agoTrailing whitespace.
Mikhail Glushenkov [Wed, 27 Oct 2010 07:39:48 +0000 (07:39 +0000)]
Trailing whitespace.

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

13 years agoYet another tweak to X86 instructions to add ud2a as an alias to ud2
Kevin Enderby [Wed, 27 Oct 2010 03:01:02 +0000 (03:01 +0000)]
Yet another tweak to X86 instructions to add ud2a as an alias to ud2
(still to add ud2b).

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

13 years agoAnother tweak to X86 instructions to add the missing flex instruction (without
Kevin Enderby [Wed, 27 Oct 2010 02:53:04 +0000 (02:53 +0000)]
Another tweak to X86 instructions to add the missing flex instruction (without
the wait prefix).

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

13 years agoTweaks to X86 instructions to allow the 'w' suffix in places it makes
Kevin Enderby [Wed, 27 Oct 2010 02:32:19 +0000 (02:32 +0000)]
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.  Done differently than in r117031 that
caused a valgrind error which was later reverted.

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

13 years agoLDRi12 machine instructions handle negative offset operands normally (simple
Jim Grosbach [Wed, 27 Oct 2010 01:19:41 +0000 (01:19 +0000)]
LDRi12 machine instructions handle negative offset operands normally (simple
integer values), not with the addrmode2 encoding.

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

13 years agoRandom cleanups and format changes.
Bill Wendling [Wed, 27 Oct 2010 01:07:41 +0000 (01:07 +0000)]
Random cleanups and format changes.

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

13 years agoAdded some aliases to the fcomip and fucompi Intel instructions. So that llvm-mc
Kevin Enderby [Wed, 27 Oct 2010 00:59:28 +0000 (00:59 +0000)]
Added some aliases to the fcomip and fucompi Intel instructions. So that llvm-mc
will accept versions that the darwin assembler allows.  Forms ending in "pi" and
forms without all the operands.

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

13 years agoHandle critical loop predecessors by making both inside and outside registers
Jakob Stoklund Olesen [Wed, 27 Oct 2010 00:39:07 +0000 (00:39 +0000)]
Handle critical loop predecessors by making both inside and outside registers
live out.

This doesn't prevent us from inserting a loop preheader later on, if that is
better.

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

13 years agoCompute critical loop predecessors in the same way as critical loop exits.
Jakob Stoklund Olesen [Wed, 27 Oct 2010 00:39:05 +0000 (00:39 +0000)]
Compute critical loop predecessors in the same way as critical loop exits.

Critical edges going into a loop are not as bad as critical exits. We can handle
them by splitting the critical edge, or by having both inside and outside
registers live out of the predecessor.

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

13 years agoPhysical registers trivially have multiple connected components all the time.
Jakob Stoklund Olesen [Wed, 27 Oct 2010 00:39:01 +0000 (00:39 +0000)]
Physical registers trivially have multiple connected components all the time.
Only virtuals should be requires to be connected.

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

13 years agoOne more spot where the new arm mode LDR instruction representation
Jim Grosbach [Wed, 27 Oct 2010 00:38:16 +0000 (00:38 +0000)]
One more spot where the new arm mode LDR instruction representation
doesn't need the additional addrmode2 register operand. Missed it the first
time around.

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

13 years agoAdding disassembler to the MicroBlaze backend.
Wesley Peck [Wed, 27 Oct 2010 00:23:01 +0000 (00:23 +0000)]
Adding disassembler to the MicroBlaze backend.

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

13 years agoSplit ARM::LDRB into LDRBi12 and LDRBrs. Adjust accordingly. Continuing on
Jim Grosbach [Wed, 27 Oct 2010 00:19:44 +0000 (00:19 +0000)]
Split ARM::LDRB into LDRBi12 and LDRBrs. Adjust accordingly. Continuing on
rdar://8477752.

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

13 years agoSince I parameterized this bit, I should probably actually use said parameter.
Jim Grosbach [Tue, 26 Oct 2010 23:58:04 +0000 (23:58 +0000)]
Since I parameterized this bit, I should probably actually use said parameter.

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

13 years agoEnable clang autocompletion by default.
Dan Gohman [Tue, 26 Oct 2010 23:24:54 +0000 (23:24 +0000)]
Enable clang autocompletion by default.

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

13 years agoUse a MemIntrinsicSDNode for ISD::PREFETCH, which touches
Dale Johannesen [Tue, 26 Oct 2010 23:11:10 +0000 (23:11 +0000)]
Use a MemIntrinsicSDNode for ISD::PREFETCH, which touches
memory, so a MachineMemOperand is useful (not propagated
into the MachineInstr yet).  No functional change except
for dump output.

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

13 years agoRemove the vector of live vregs. I thought we would need to track
Andrew Trick [Tue, 26 Oct 2010 22:58:24 +0000 (22:58 +0000)]
Remove the vector of live vregs. I thought we would need to track
them, but hopefully we won't. And this is not the right data structure
to do it anyway.

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

13 years agoAdd correct NEON encodings for vqshl, vqshrn, vqshrun, vqrshl, vqshrn, and vqrshrun.
Owen Anderson [Tue, 26 Oct 2010 22:50:46 +0000 (22:50 +0000)]
Add correct NEON encodings for vqshl, vqshrn, vqshrun, vqrshl, vqshrn, and vqrshrun.

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

13 years agoFirst part of refactoring ARM addrmode2 (load/store) instructions to be more
Jim Grosbach [Tue, 26 Oct 2010 22:37:02 +0000 (22:37 +0000)]
First part of refactoring ARM addrmode2 (load/store) instructions to be more
explicit about the operands. Split out the different variants into separate
instructions. This gives us the ability to, among other things, assign
different scheduling itineraries to the variants. rdar://8477752.

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

13 years agoAfter splitting, compute connected components of all new registers, not just for
Jakob Stoklund Olesen [Tue, 26 Oct 2010 22:36:09 +0000 (22:36 +0000)]
After splitting, compute connected components of all new registers, not just for
the remainder register.

Example:

bb0:
  x = 1
bb1:
  use(x)
  ...
  x = 2
  jump bb1

When x is isolated in bb1, the inner part breaks into two components, x1 and x2:

bb0:
  x0 = 1
bb1:
  x1 = x0
  use(x1)
  ...
  x2 = 2
  x0 = x2
  jump bb1

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

13 years agoVerify that live intervals are connected. If there are multiple connected
Jakob Stoklund Olesen [Tue, 26 Oct 2010 22:36:07 +0000 (22:36 +0000)]
Verify that live intervals are connected. If there are multiple connected
components, each should get its own virtual register.

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

13 years agoCall RenumberValues for all new registers created during splitting. This is
Jakob Stoklund Olesen [Tue, 26 Oct 2010 22:36:05 +0000 (22:36 +0000)]
Call RenumberValues for all new registers created during splitting. This is
necessary to get correct hasPHIKill flags.

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

13 years agoPreserve PHIDef bits in cloned values during splitting.
Jakob Stoklund Olesen [Tue, 26 Oct 2010 22:36:02 +0000 (22:36 +0000)]
Preserve PHIDef bits in cloned values during splitting.

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

13 years agoAssign source ordering to nodes created for StoreInst.
Devang Patel [Tue, 26 Oct 2010 22:14:52 +0000 (22:14 +0000)]
Assign source ordering to nodes created for StoreInst.

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

13 years agoCorrect NEON encodings for vshrn, vrshl, vrshr, vrshrn.
Owen Anderson [Tue, 26 Oct 2010 21:58:41 +0000 (21:58 +0000)]
Correct NEON encodings for vshrn, vrshl, vrshr, vrshrn.

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

13 years agoFileCheck'ize
Jim Grosbach [Tue, 26 Oct 2010 21:26:47 +0000 (21:26 +0000)]
FileCheck'ize

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

13 years agoAdd tests for NEON encoding of vshll.
Owen Anderson [Tue, 26 Oct 2010 21:21:47 +0000 (21:21 +0000)]
Add tests for NEON encoding of vshll.

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

13 years agoSimplify classes for shift instructions, which are never commutable.
Owen Anderson [Tue, 26 Oct 2010 21:13:59 +0000 (21:13 +0000)]
Simplify classes for shift instructions, which are never commutable.

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

13 years agoTests for NEON encoding of vshr.
Owen Anderson [Tue, 26 Oct 2010 21:08:42 +0000 (21:08 +0000)]
Tests for NEON encoding of vshr.

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

13 years agoProvide correct NEON encodings for vshl, register and immediate forms.
Owen Anderson [Tue, 26 Oct 2010 20:56:57 +0000 (20:56 +0000)]
Provide correct NEON encodings for vshl, register and immediate forms.

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

13 years agoTeach MachineBasicBlock::print() to annotate instructions and blocks with
Jakob Stoklund Olesen [Tue, 26 Oct 2010 20:21:46 +0000 (20:21 +0000)]
Teach MachineBasicBlock::print() to annotate instructions and blocks with
SlotIndexes when available.

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

13 years agoRemmeber to print full live interval on verification error.
Jakob Stoklund Olesen [Tue, 26 Oct 2010 20:21:43 +0000 (20:21 +0000)]
Remmeber to print full live interval on verification error.

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

13 years agoAdd support for .ident.
Rafael Espindola [Tue, 26 Oct 2010 19:35:47 +0000 (19:35 +0000)]
Add support for .ident.

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

13 years agoGrammar.
Jim Grosbach [Tue, 26 Oct 2010 19:34:41 +0000 (19:34 +0000)]
Grammar.

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

13 years agoNuke extraneous comment. It's applicable elsewhere, but not in this func.
Jim Grosbach [Tue, 26 Oct 2010 19:22:23 +0000 (19:22 +0000)]
Nuke extraneous comment. It's applicable elsewhere, but not in this func.

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

13 years agoTests for NEON encoding of vrecpe, vrecps, vrsqrte, and vsqrts.
Owen Anderson [Tue, 26 Oct 2010 18:43:13 +0000 (18:43 +0000)]
Tests for NEON encoding of vrecpe, vrecps, vrsqrte, and vsqrts.

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

13 years agoJakob's review of the basic register allocator.
Andrew Trick [Tue, 26 Oct 2010 18:34:01 +0000 (18:34 +0000)]
Jakob's review of the basic register allocator.

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

13 years agoTests for NEON encodings of vpmin and vpmax.
Owen Anderson [Tue, 26 Oct 2010 18:31:47 +0000 (18:31 +0000)]
Tests for NEON encodings of vpmin and vpmax.

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

13 years agoAdd correct NEON encoding for vpadal.
Owen Anderson [Tue, 26 Oct 2010 18:18:03 +0000 (18:18 +0000)]
Add correct NEON encoding for vpadal.

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

13 years agohandle X86::EH_RETURN64 and X86::EH_RETURN.
Rafael Espindola [Tue, 26 Oct 2010 18:09:55 +0000 (18:09 +0000)]
handle X86::EH_RETURN64 and X86::EH_RETURN.

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

13 years agoTests for NEON encoding of vpadd and vpaddl.
Owen Anderson [Tue, 26 Oct 2010 18:04:51 +0000 (18:04 +0000)]
Tests for NEON encoding of vpadd and vpaddl.

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

13 years agos/beginScope/beginInstruction/g
Devang Patel [Tue, 26 Oct 2010 17:49:02 +0000 (17:49 +0000)]
s/beginScope/beginInstruction/g
s/endScope/endInstruction/g

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

13 years agoAdd NEON encodings for vmov and vmvn of immediates.
Owen Anderson [Tue, 26 Oct 2010 17:40:54 +0000 (17:40 +0000)]
Add NEON encodings for vmov and vmvn of immediates.

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

13 years agoDon't verify physical registers going into landing pads.
Jakob Stoklund Olesen [Tue, 26 Oct 2010 16:49:23 +0000 (16:49 +0000)]
Don't verify physical registers going into landing pads.
Magic is happening that we don't understand.

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

13 years agoImplement some relaxations for arithmetic instructions. The limitation
Rafael Espindola [Tue, 26 Oct 2010 14:09:12 +0000 (14:09 +0000)]
Implement some relaxations for arithmetic instructions. The limitation
on RIP relative relocations looks artificial, but this is a superset of
what we were able to do before.

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

13 years agoYet another thing that was forgotten to be added to the release notes...
Duncan Sands [Tue, 26 Oct 2010 12:43:36 +0000 (12:43 +0000)]
Yet another thing that was forgotten to be added to the release notes...

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

13 years agoChange v64 datalayout in SPU.
Kalle Raiskila [Tue, 26 Oct 2010 10:45:47 +0000 (10:45 +0000)]
Change v64 datalayout in SPU.
The SPU ABI does not mention v64, and all examples
in C suggest v128 are treated similarily to arrays,
we use array alignment for v64 too. This makes the
alignment of e.g. [2 x <2 x i32>] behave "intuitively"
and similar to as if the elements were e.g. i32s.

This also makes an "unaligned store" test to be
aligned, with different (but functionally equivalent)
code generated.

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

13 years agoCMake: Build utils/KillTheDoctor only on MSVC for now.
NAKAMURA Takumi [Tue, 26 Oct 2010 05:08:27 +0000 (05:08 +0000)]
CMake: Build utils/KillTheDoctor only on MSVC for now.

Mingw does not have the header <dbghelp.h>.
Thanks to Daniel Newton, testing it on mingw.

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

13 years agoUse instruction itinerary to determine what instructions are 'cheap'.
Evan Cheng [Tue, 26 Oct 2010 02:08:50 +0000 (02:08 +0000)]
Use instruction itinerary to determine what instructions are 'cheap'.

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

13 years agoNEON vmov's are in Neon domain.
Evan Cheng [Tue, 26 Oct 2010 02:03:05 +0000 (02:03 +0000)]
NEON vmov's are in Neon domain.

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

13 years agoFor statistics that are only used in functions declared in !NDEBUG, wrap the
Nick Lewycky [Tue, 26 Oct 2010 00:51:57 +0000 (00:51 +0000)]
For statistics that are only used in functions declared in !NDEBUG, wrap the
declarations in !NDEBUG to avoid -Wunused-variable warnings. Patch by
Matt Beaumont-Gay!

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

13 years agoInlineSpiller can also update LiveStacks.
Jakob Stoklund Olesen [Tue, 26 Oct 2010 00:11:35 +0000 (00:11 +0000)]
InlineSpiller can also update LiveStacks.

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

13 years agoMake the spiller responsible for updating the LiveStacks analysis.
Jakob Stoklund Olesen [Tue, 26 Oct 2010 00:11:33 +0000 (00:11 +0000)]
Make the spiller responsible for updating the LiveStacks analysis.

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

13 years agoWhen the "true" and "false" blocks of a diamond if-conversion are the same,
Bob Wilson [Tue, 26 Oct 2010 00:02:24 +0000 (00:02 +0000)]
When the "true" and "false" blocks of a diamond if-conversion are the same,
do not double-count the duplicate instructions by counting once from the
beginning and again from the end.  Keep track of where the duplicates from
the beginning ended and don't go past that point when counting duplicates
at the end.  Radar 8589805.

This change causes one of the MC/ARM/simple-fp-encoding tests to produce
different (better!) code without the vmovne instruction being tested.
I changed the test to produce vmovne and vmoveq instructions but moving
between register files in the opposite direction.  That's not quite the same
but predicated versions of those instructions weren't being tested before,
so at least the test coverage is not any worse, just different.

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

13 years agoChange if-conversion to keep track of the extra cost due to microcoded
Bob Wilson [Tue, 26 Oct 2010 00:02:21 +0000 (00:02 +0000)]
Change if-conversion to keep track of the extra cost due to microcoded
instructions separately from the count of non-predicated instructions.  The
instruction count is used in places to determine how many instructions to
copy, predicate, etc. and things get confused if that count includes the
extra cost for microcoded ops.

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

13 years agoTidy up redundant check.
Bob Wilson [Tue, 26 Oct 2010 00:02:19 +0000 (00:02 +0000)]
Tidy up redundant check.

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

13 years agoNeuter r117193 as it causes significant post-ra scheduler compile time regression.
Evan Cheng [Mon, 25 Oct 2010 23:56:21 +0000 (23:56 +0000)]
Neuter r117193 as it causes significant post-ra scheduler compile time regression.

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

13 years agoTests for NEON encoding of vmax.
Owen Anderson [Mon, 25 Oct 2010 23:45:34 +0000 (23:45 +0000)]
Tests for NEON encoding of vmax.

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

13 years agoTests for NEON encoding of vmin.
Owen Anderson [Mon, 25 Oct 2010 23:35:36 +0000 (23:35 +0000)]
Tests for NEON encoding of vmin.

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

13 years agoProduce the headers directly in the Finish method. This allows us to use
Rafael Espindola [Mon, 25 Oct 2010 22:26:55 +0000 (22:26 +0000)]
Produce the headers directly in the Finish method. This allows us to use
the existing streamer methods that are endian safe.

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

13 years agoAn stdcall function calling a non-stdcall function
Dale Johannesen [Mon, 25 Oct 2010 22:17:05 +0000 (22:17 +0000)]
An stdcall function calling a non-stdcall function
cannot use tailcall.  PR 8461.

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

13 years agoSupport TBAA attachments on calls. This is somewhat experimental.
Dan Gohman [Mon, 25 Oct 2010 21:38:20 +0000 (21:38 +0000)]
Support TBAA attachments on calls. This is somewhat experimental.

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

13 years agoSimplify.
Devang Patel [Mon, 25 Oct 2010 21:31:46 +0000 (21:31 +0000)]
Simplify.
Do not count use of sdisel for single call instruction.

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

13 years agoAdd correct encodings for NEON vabal.
Owen Anderson [Mon, 25 Oct 2010 21:29:04 +0000 (21:29 +0000)]
Add correct encodings for NEON vabal.

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

13 years agoFix chaining in TBAA's pointsToConstantMemory.
Dan Gohman [Mon, 25 Oct 2010 21:24:55 +0000 (21:24 +0000)]
Fix chaining in TBAA's pointsToConstantMemory.

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

13 years agoUpdate SelectBasicBlock signature. This should have been committed with r117310.
Devang Patel [Mon, 25 Oct 2010 21:04:12 +0000 (21:04 +0000)]
Update SelectBasicBlock signature. This should have been committed with r117310.

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

13 years agoAdd counters to count basic blocks and machine basic blocks with out of order line...
Devang Patel [Mon, 25 Oct 2010 20:55:43 +0000 (20:55 +0000)]
Add counters to count basic blocks and machine basic blocks with out of order line number info.
Add counters to count how many basic blocks are entirely selected by fastisel.

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

13 years agoAdd correct NEON encodings for vaba.
Owen Anderson [Mon, 25 Oct 2010 20:52:57 +0000 (20:52 +0000)]
Add correct NEON encodings for vaba.

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

13 years agoAdd simple counter to count no. of basic blocks without any line number information...
Devang Patel [Mon, 25 Oct 2010 20:45:32 +0000 (20:45 +0000)]
Add simple counter to count no. of basic blocks without any line number information. At -O0, these basic block coule cause less than optimial debugging experience.

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

13 years agoTests for NEON encoding of vabdl.
Owen Anderson [Mon, 25 Oct 2010 20:36:28 +0000 (20:36 +0000)]
Tests for NEON encoding of vabdl.

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

13 years agoAdd tests for NEON encoding of vabd.
Owen Anderson [Mon, 25 Oct 2010 20:29:27 +0000 (20:29 +0000)]
Add tests for NEON encoding of vabd.

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

13 years agoOnly read one bit for testing for a readonly type, leaving the other
Dan Gohman [Mon, 25 Oct 2010 20:22:29 +0000 (20:22 +0000)]
Only read one bit for testing for a readonly type, leaving the other
bits open for future uses.

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

13 years agoMC/AsmParser: Fix relative precedence of {+,-} and comparison ops.
Daniel Dunbar [Mon, 25 Oct 2010 20:18:56 +0000 (20:18 +0000)]
MC/AsmParser: Fix relative precedence of {+,-} and comparison ops.

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

13 years agoMC/AsmLexer: Fix bug in source location for Slash token.
Daniel Dunbar [Mon, 25 Oct 2010 20:18:53 +0000 (20:18 +0000)]
MC/AsmLexer: Fix bug in source location for Slash token.

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

13 years agotweak test.
Daniel Dunbar [Mon, 25 Oct 2010 20:18:49 +0000 (20:18 +0000)]
tweak test.

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

13 years agollvm-mc: Teach -as-lex to print the raw token string as well.
Daniel Dunbar [Mon, 25 Oct 2010 20:18:46 +0000 (20:18 +0000)]
llvm-mc: Teach -as-lex to print the raw token string as well.

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

13 years agoMC/AsmParser: Rewrite test to actually check some parts of expression parsing,
Daniel Dunbar [Mon, 25 Oct 2010 20:18:41 +0000 (20:18 +0000)]
MC/AsmParser: Rewrite test to actually check some parts of expression parsing,
now that we have macros and friends. Uncovered a bug in macro expansion...

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

13 years agoAttempt to provide correct encodings for NEON vbit and vbif, even though we can't...
Owen Anderson [Mon, 25 Oct 2010 20:17:22 +0000 (20:17 +0000)]
Attempt to provide correct encodings for NEON vbit and vbif, even though we can't test them at the moment.

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

13 years agoProvide correct NEON encodings for vbsl.
Owen Anderson [Mon, 25 Oct 2010 20:13:13 +0000 (20:13 +0000)]
Provide correct NEON encodings for vbsl.

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

13 years agoimm12 operands aren't Thumb2 only, so rename the printer helper function.
Jim Grosbach [Mon, 25 Oct 2010 20:00:01 +0000 (20:00 +0000)]
imm12 operands aren't Thumb2 only, so rename the printer helper function.

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

13 years agoAdd a comment.
Dan Gohman [Mon, 25 Oct 2010 19:47:25 +0000 (19:47 +0000)]
Add a comment.

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

13 years agoMake the description of the hotpatch attribute even more generic. Spotted by
Charles Davis [Mon, 25 Oct 2010 19:07:39 +0000 (19:07 +0000)]
Make the description of the hotpatch attribute even more generic. Spotted by
Michael Spencer.

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

13 years agoAdd correct instruction encodings for vbic, vorn, and vmvn.
Owen Anderson [Mon, 25 Oct 2010 18:43:52 +0000 (18:43 +0000)]
Add correct instruction encodings for vbic, vorn, and vmvn.

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

13 years agoAdd a virtual destructor.
Rafael Espindola [Mon, 25 Oct 2010 18:38:32 +0000 (18:38 +0000)]
Add a virtual destructor.

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

13 years agoProvide correct NEON encodings for vand, veor, and vorr.
Owen Anderson [Mon, 25 Oct 2010 18:28:30 +0000 (18:28 +0000)]
Provide correct NEON encodings for vand, veor, and vorr.

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

13 years agoAdd tests for NEON encoding of vtst.
Owen Anderson [Mon, 25 Oct 2010 18:10:34 +0000 (18:10 +0000)]
Add tests for NEON encoding of vtst.

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

13 years agoAdd NEON encoding tests for vcgt and vacgt.
Owen Anderson [Mon, 25 Oct 2010 18:03:59 +0000 (18:03 +0000)]
Add NEON encoding tests for vcgt and vacgt.

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

13 years agoAdd support for emitting ARM file attributes.
Rafael Espindola [Mon, 25 Oct 2010 17:50:35 +0000 (17:50 +0000)]
Add support for emitting ARM file attributes.

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

13 years agoAdd tests for NEON encodings of vcge and vacge.
Owen Anderson [Mon, 25 Oct 2010 17:49:32 +0000 (17:49 +0000)]
Add tests for NEON encodings of vcge and vacge.

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

13 years agoAdd a warning about our inability to test the encoding of vceq with immediate zero.
Owen Anderson [Mon, 25 Oct 2010 17:33:02 +0000 (17:33 +0000)]
Add a warning about our inability to test the encoding of vceq with immediate zero.

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

13 years agoIn which I learn how to forward declare template classes.
Jakob Stoklund Olesen [Mon, 25 Oct 2010 17:27:30 +0000 (17:27 +0000)]
In which I learn how to forward declare template classes.

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

13 years agoAdd tests for NEON encoding of vceq.
Owen Anderson [Mon, 25 Oct 2010 17:20:26 +0000 (17:20 +0000)]
Add tests for NEON encoding of vceq.

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

13 years agoAdd tests for NEON encoding of vsubhn and vrsubhn.
Owen Anderson [Mon, 25 Oct 2010 17:12:46 +0000 (17:12 +0000)]
Add tests for NEON encoding of vsubhn and vrsubhn.

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

13 years agoUpdate comments; BasicAA is no longer necessarily the end of the chain.
Dan Gohman [Mon, 25 Oct 2010 16:29:52 +0000 (16:29 +0000)]
Update comments; BasicAA is no longer necessarily the end of the chain.

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

13 years agoMake hotpatch attribute description a little less Wintel-specific.
Charles Davis [Mon, 25 Oct 2010 16:29:03 +0000 (16:29 +0000)]
Make hotpatch attribute description a little less Wintel-specific.

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

13 years agoReintroduce these asserts, now that BasicAA is a normal AliasAnalysis pass.
Dan Gohman [Mon, 25 Oct 2010 16:28:57 +0000 (16:28 +0000)]
Reintroduce these asserts, now that BasicAA is a normal AliasAnalysis pass.

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

13 years agoFix a case where instcombine was stripping metadata (and alignment)
Dan Gohman [Mon, 25 Oct 2010 16:16:27 +0000 (16:16 +0000)]
Fix a case where instcombine was stripping metadata (and alignment)
from stores when folding in bitcasts.

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

13 years agoAdd a new 'hotpatch' attribute. This attribute will insert a two-byte no-op
Charles Davis [Mon, 25 Oct 2010 15:37:09 +0000 (15:37 +0000)]
Add a new 'hotpatch' attribute. This attribute will insert a two-byte no-op
instruction at the beginning of each function that has the attribute, allowing
the function to be easily hooked and/or patched.

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