oota-llvm.git
12 years agoLower 64-bit immediates using MipsAnalyzeImmediate that has just been added.
Akira Hatanaka [Wed, 25 Jan 2012 03:01:35 +0000 (03:01 +0000)]
Lower 64-bit immediates using MipsAnalyzeImmediate that has just been added.

Add a test case to show fewer instructions are needed to load an immediate
with the new way of loading immediates.

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

12 years agoRevert r148901 because it crashes llvm tests.
Argyrios Kyrtzidis [Wed, 25 Jan 2012 02:42:41 +0000 (02:42 +0000)]
Revert r148901 because it crashes llvm tests.

Original log:
    Introduce a new ConstantVector::getSplat constructor function to
    simplify a really common case.

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

12 years agoIntroduce a new ConstantVector::getSplat constructor function to
Chris Lattner [Wed, 25 Jan 2012 01:53:58 +0000 (01:53 +0000)]
Introduce a new ConstantVector::getSplat constructor function to
simplify a really common case.

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

12 years agoAdd class MipsAnalyzeImmediate which comes up with an instruction sequence to
Akira Hatanaka [Wed, 25 Jan 2012 01:43:36 +0000 (01:43 +0000)]
Add class MipsAnalyzeImmediate which comes up with an instruction sequence to
load an immediate.

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

12 years agoRemove the Type::getNumElements() method, which is only called in 4 places,
Chris Lattner [Wed, 25 Jan 2012 01:32:59 +0000 (01:32 +0000)]
Remove the Type::getNumElements() method, which is only called in 4 places,
did something extremely surprising, and shadowed actually useful
implementations that had completely different behavior.

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

12 years agoUse the right method to get the # elements in a CDS.
Chris Lattner [Wed, 25 Jan 2012 01:27:20 +0000 (01:27 +0000)]
Use the right method to get the # elements in a CDS.

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

12 years agoNEON VLD4(all lanes) assembly parsing and encoding.
Jim Grosbach [Wed, 25 Jan 2012 00:01:08 +0000 (00:01 +0000)]
NEON VLD4(all lanes) assembly parsing and encoding.

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

12 years agoTidy up. Rename VLD4DUP patterns for consistency.
Jim Grosbach [Tue, 24 Jan 2012 23:47:07 +0000 (23:47 +0000)]
Tidy up. Rename VLD4DUP patterns for consistency.

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

12 years agoNEON VLD3(all lanes) assembly parsing and encoding.
Jim Grosbach [Tue, 24 Jan 2012 23:47:04 +0000 (23:47 +0000)]
NEON VLD3(all lanes) assembly parsing and encoding.

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

12 years agoAdditional methods for SmallString.
Talin [Tue, 24 Jan 2012 23:43:59 +0000 (23:43 +0000)]
Additional methods for SmallString.

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

12 years agoSet correct <def,undef> flags when lowering REG_SEQUENCE.
Jakob Stoklund Olesen [Tue, 24 Jan 2012 23:28:42 +0000 (23:28 +0000)]
Set correct <def,undef> flags when lowering REG_SEQUENCE.

A REG_SEQUENCE instruction is lowered into a sequence of partial defs:

  %vreg7:ssub_0<def,undef> = COPY %vreg20:ssub_0
  %vreg7:ssub_1<def> = COPY %vreg2
  %vreg7:ssub_2<def> = COPY %vreg2
  %vreg7:ssub_3<def> = COPY %vreg2

The first def needs an <undef> flag to indicate it is the beginning of
the live range, while the other defs are read-modify-write.  Previously,
we depended on LiveIntervalAnalysis to notice and fix the missing
<def,undef>, but that solution was never robust, it was causing problems
with ProcessImplicitDefs and the lowering of chained REG_SEQUENCE
instructions.

This fixes PR11841.

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

12 years agoUse the standard MachineFunction::print() after SlotIndexes.
Jakob Stoklund Olesen [Tue, 24 Jan 2012 23:28:38 +0000 (23:28 +0000)]
Use the standard MachineFunction::print() after SlotIndexes.

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

12 years agoSign-extend 32-bit integer arguments when they are passed in 64-bit registers,
Akira Hatanaka [Tue, 24 Jan 2012 23:18:43 +0000 (23:18 +0000)]
Sign-extend 32-bit integer arguments when they are passed in 64-bit registers,
which is what N32/64 does.

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

12 years agoPass CCState by reference.
Akira Hatanaka [Tue, 24 Jan 2012 22:07:36 +0000 (22:07 +0000)]
Pass CCState by reference.

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

12 years agoPattern for f32 to i64 conversion.
Akira Hatanaka [Tue, 24 Jan 2012 22:05:25 +0000 (22:05 +0000)]
Pattern for f32 to i64 conversion.

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

12 years agoARM Darwin symbol ref differences w/o subsection-via-symbols.
Jim Grosbach [Tue, 24 Jan 2012 21:45:25 +0000 (21:45 +0000)]
ARM Darwin symbol ref differences w/o subsection-via-symbols.

When not using subsections via symbols, the assembler can resolve
symbol differences (including pcrel references) to non-local
labels at assembly time, not just those in the same atom.

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

12 years agoIntel Syntax: Extend special hand coded logic, to recognize special instructions...
Devang Patel [Tue, 24 Jan 2012 21:43:36 +0000 (21:43 +0000)]
Intel Syntax: Extend special hand coded logic, to recognize special instructions, for intel syntax.

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

12 years ago64-bit sign extension in register instructions.
Akira Hatanaka [Tue, 24 Jan 2012 21:41:09 +0000 (21:41 +0000)]
64-bit sign extension in register instructions.

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

12 years agoTidy up. Trailing whitespace.
Jim Grosbach [Tue, 24 Jan 2012 21:06:59 +0000 (21:06 +0000)]
Tidy up. Trailing whitespace.

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

12 years agoSink assert-only variables into the asserts
Matt Beaumont-Gay [Tue, 24 Jan 2012 19:43:30 +0000 (19:43 +0000)]
Sink assert-only variables into the asserts

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

12 years ago[asan] enable asan only for the functions that have Attribute::AddressSafety
Kostya Serebryany [Tue, 24 Jan 2012 19:34:43 +0000 (19:34 +0000)]
[asan] enable asan only for the functions that have Attribute::AddressSafety

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

12 years agoNEON VST4(one lane) assembly parsing and encoding.
Jim Grosbach [Tue, 24 Jan 2012 18:53:13 +0000 (18:53 +0000)]
NEON VST4(one lane) assembly parsing and encoding.

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

12 years agoWiden the instruction encoder that TblGen emits to a 64 bits, which should accomodate...
Owen Anderson [Tue, 24 Jan 2012 18:37:29 +0000 (18:37 +0000)]
Widen the instruction encoder that TblGen emits to a 64 bits, which should accomodate every target I can think of offhand.

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

12 years agoNEON VLD4(one lane) assembly parsing and encoding.
Jim Grosbach [Tue, 24 Jan 2012 18:37:25 +0000 (18:37 +0000)]
NEON VLD4(one lane) assembly parsing and encoding.

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

12 years agoFix old doxygen comment.
Jakob Stoklund Olesen [Tue, 24 Jan 2012 18:09:18 +0000 (18:09 +0000)]
Fix old doxygen comment.

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

12 years agoAdd an (interleave A, B, ...) SetTheory operator.
Jakob Stoklund Olesen [Tue, 24 Jan 2012 18:06:05 +0000 (18:06 +0000)]
Add an (interleave A, B, ...) SetTheory operator.

This will interleave the elements from two or more lists.

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

12 years agoUndo an over zealous rename. This bit of the CMake build really is
Chandler Carruth [Tue, 24 Jan 2012 18:00:44 +0000 (18:00 +0000)]
Undo an over zealous rename. This bit of the CMake build really is
dealing in the host triple, be honest about it and document the decision
to default the target triple to the host triple unless overridden.

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

12 years agoNEON Two-operand assembly aliases for VSRA.
Jim Grosbach [Tue, 24 Jan 2012 17:55:36 +0000 (17:55 +0000)]
NEON Two-operand assembly aliases for VSRA.

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

12 years agoRemove redundant test file.
Jim Grosbach [Tue, 24 Jan 2012 17:55:32 +0000 (17:55 +0000)]
Remove redundant test file.

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

12 years agoNEON Two-operand assembly aliases for VSLI.
Jim Grosbach [Tue, 24 Jan 2012 17:49:15 +0000 (17:49 +0000)]
NEON Two-operand assembly aliases for VSLI.

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

12 years agoNEON Two-operand assembly aliases for VSRI.
Jim Grosbach [Tue, 24 Jan 2012 17:46:58 +0000 (17:46 +0000)]
NEON Two-operand assembly aliases for VSRI.

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

12 years agoTidy up.
Jim Grosbach [Tue, 24 Jan 2012 17:46:54 +0000 (17:46 +0000)]
Tidy up.

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

12 years agoNEON add correct predicates for some asm aliases.
Jim Grosbach [Tue, 24 Jan 2012 17:23:29 +0000 (17:23 +0000)]
NEON add correct predicates for some asm aliases.

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

12 years agoReword comment based on feedback by Duncan Sands.
David Blaikie [Tue, 24 Jan 2012 16:18:30 +0000 (16:18 +0000)]
Reword comment based on feedback by Duncan Sands.

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

12 years agobasic instcombine support for CDS.
Chris Lattner [Tue, 24 Jan 2012 14:31:22 +0000 (14:31 +0000)]
basic instcombine support for CDS.

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

12 years agoC++, CBE, and TLOF support for ConstantDataSequential
Chris Lattner [Tue, 24 Jan 2012 14:17:05 +0000 (14:17 +0000)]
C++, CBE, and TLOF support for ConstantDataSequential

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

12 years agoRearrange argument order of ::get methods so that LLVMContext comes first,
Chris Lattner [Tue, 24 Jan 2012 14:04:40 +0000 (14:04 +0000)]
Rearrange argument order of ::get methods so that LLVMContext comes first,
add a ConstantDataArray::getString method that corresponds to the (to be
removed) StringRef version of ConstantArray::get, but is dramatically more
efficient.

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

12 years agoZERO_EXTEND operation is optimized for AVX.
Elena Demikhovsky [Tue, 24 Jan 2012 13:54:13 +0000 (13:54 +0000)]
ZERO_EXTEND operation is optimized for AVX.
  v8i16 -> v8i32, v4i32 -> v4i64 - used vpunpck* instructions.

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

12 years agoadd more support for ConstantDataSequential
Chris Lattner [Tue, 24 Jan 2012 13:41:11 +0000 (13:41 +0000)]
add more support for ConstantDataSequential

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

12 years agoAn option to selectively enable part of ARM EHABI support.
Evgeniy Stepanov [Tue, 24 Jan 2012 13:05:33 +0000 (13:05 +0000)]
An option to selectively enable part of ARM EHABI support.

This change adds an new option --arm-enable-ehabi-descriptors that
enables emitting unwinding descriptors. This provides a mode with a
working backtrace() without the (currently broken) exception support.

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

12 years agoBit pack DIE structures better.
Benjamin Kramer [Tue, 24 Jan 2012 12:08:28 +0000 (12:08 +0000)]
Bit pack DIE structures better.

16 bits are sufficient to store attributes, tags and forms.

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

12 years agoFix the testcases for the previous patch.
Eric Christopher [Tue, 24 Jan 2012 10:11:49 +0000 (10:11 +0000)]
Fix the testcases for the previous patch.

rdar://10278198

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

12 years agoRemove generation of DW_AT_sibling. Nothing as far as I can tell uses it.
Eric Christopher [Tue, 24 Jan 2012 09:43:28 +0000 (09:43 +0000)]
Remove generation of DW_AT_sibling. Nothing as far as I can tell uses it.
Saves about 1.5% on debug info size.

rdar://10278198

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

12 years agoAdd AsmPrinter (aka MCLowering) support for ConstantDataSequential,
Chris Lattner [Tue, 24 Jan 2012 09:31:43 +0000 (09:31 +0000)]
Add AsmPrinter (aka MCLowering) support for ConstantDataSequential,
and clean up some other misc stuff.  Unlike ConstantArray, we will
prefer to emit .fill directives for "String" arrays that all have
the same value, since they are denser than emitting a .ascii

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

12 years agoAdd various "string" methods to ConstantDataSequential, which have the
Chris Lattner [Tue, 24 Jan 2012 09:01:07 +0000 (09:01 +0000)]
Add various "string" methods to ConstantDataSequential, which have the
same semantics as ConstantArray's but much more efficient because they
don't have to return std::string's.  The ConstantArray methods will
eventually be removed.

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

12 years agoadd ::drop_back() and ::drop_front() methods, which are like pop_front/pop_back on...
Chris Lattner [Tue, 24 Jan 2012 08:58:57 +0000 (08:58 +0000)]
add ::drop_back() and ::drop_front() methods, which are like pop_front/pop_back on a vector, but a) aren't destructive to "this", and b) can take a # elements to drop.

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

12 years agoteach valuetracking about ConstantDataSequential
Chris Lattner [Tue, 24 Jan 2012 07:54:10 +0000 (07:54 +0000)]
teach valuetracking about ConstantDataSequential

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

12 years agoswitch SCEV to use the new ConstantFoldLoadThroughGEPIndices function
Chris Lattner [Tue, 24 Jan 2012 05:49:24 +0000 (05:49 +0000)]
switch SCEV to use the new ConstantFoldLoadThroughGEPIndices function
instead of its own hard coded thing, allowing it to handle
ConstantDataSequential and fixing some obscure bugs (e.g. it would
previously crash on a CAZ of vector type).

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

12 years agoSplit the interesting bits of ConstantFoldLoadThroughGEPConstantExpr
Chris Lattner [Tue, 24 Jan 2012 05:43:50 +0000 (05:43 +0000)]
Split the interesting bits of ConstantFoldLoadThroughGEPConstantExpr
out into a new ConstantFoldLoadThroughGEPIndices (more useful) function
and rewrite it to be simpler, more efficient, and to handle the new
ConstantDataSequential type.

Enhance ConstantFoldLoadFromConstPtr to handle ConstantDataSequential.

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

12 years agoAdd some accessor methods to CAZ and UndefValue that help simplify clients.
Chris Lattner [Tue, 24 Jan 2012 05:42:11 +0000 (05:42 +0000)]
Add some accessor methods to CAZ and UndefValue that help simplify clients.
Make some CDS methods public.

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

12 years agoUse correct register class for am2offset register operands.
Anton Korobeynikov [Tue, 24 Jan 2012 04:58:56 +0000 (04:58 +0000)]
Use correct register class for am2offset register operands.
This pacifies machine verifier

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

12 years agoPreserve <def,undef> flags in CoalesceExtSubRegs.
Jakob Stoklund Olesen [Tue, 24 Jan 2012 04:44:01 +0000 (04:44 +0000)]
Preserve <def,undef> flags in CoalesceExtSubRegs.

This won't have an effect until EliminateRegSequences() starts setting
the undef flags.

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

12 years agoimplement the ConstantDataSequential accessor methods.
Chris Lattner [Tue, 24 Jan 2012 04:43:41 +0000 (04:43 +0000)]
implement the ConstantDataSequential accessor methods.

No need for 'getOperand' :)

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

12 years agoAdd comments near load pattern fragments indicating that all integer vector loads...
Craig Topper [Tue, 24 Jan 2012 03:03:17 +0000 (03:03 +0000)]
Add comments near load pattern fragments indicating that all integer vector loads are promoted to v2i64 or v4i64 so that no one tries to reintroduce pattern fragments for other types.

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

12 years agoNEON VST4(multiple 4 element structures) assembly parsing.
Jim Grosbach [Tue, 24 Jan 2012 00:58:13 +0000 (00:58 +0000)]
NEON VST4(multiple 4 element structures) assembly parsing.

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

12 years agoNEON VLD4(multiple 4 element structures) assembly parsing.
Jim Grosbach [Tue, 24 Jan 2012 00:43:17 +0000 (00:43 +0000)]
NEON VLD4(multiple 4 element structures) assembly parsing.

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

12 years agoTidy up. Remove some vertical space for readability.
Jim Grosbach [Tue, 24 Jan 2012 00:43:12 +0000 (00:43 +0000)]
Tidy up. Remove some vertical space for readability.

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

12 years agoRevert r148686 (and r148694, a fix to it) due to a serious layering
Chandler Carruth [Tue, 24 Jan 2012 00:30:17 +0000 (00:30 +0000)]
Revert r148686 (and r148694, a fix to it) due to a serious layering
violation -- MC cannot depend on CodeGen.

Specifically, the MCTargetDesc component of each target is actually
a subcomponent of the MC library. As such, it cannot depend on the
target-independent code generator, because MC itself cannot depend on
the target-independent code generator. This change moved a flag from the
ARM MCTargetDesc file ARMMCAsmInfo.cpp to the CodeGen layer in
ARMException.cpp, leaving behind an 'extern' to refer back to it. That
layering order isn't viable givin the constraints outlined above.
Commandline flags are designed to be static specifically to avoid these
types of bugs.

Fixing this is likely going to require some non-trivial refactoring.

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

12 years agoFix typo.
Jim Grosbach [Tue, 24 Jan 2012 00:12:39 +0000 (00:12 +0000)]
Fix typo.

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

12 years agoNEON VST3(single element from one lane) assembly parsing.
Jim Grosbach [Tue, 24 Jan 2012 00:07:41 +0000 (00:07 +0000)]
NEON VST3(single element from one lane) assembly parsing.

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

12 years agoFix typo.
Devang Patel [Mon, 23 Jan 2012 23:56:33 +0000 (23:56 +0000)]
Fix typo.

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

12 years agoNEON VST3(multiple 3-element structures) assembly parsing.
Jim Grosbach [Mon, 23 Jan 2012 23:45:44 +0000 (23:45 +0000)]
NEON VST3(multiple 3-element structures) assembly parsing.

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

12 years agoChanging bitfield enums to unsigned ints.
David Blaikie [Mon, 23 Jan 2012 23:27:47 +0000 (23:27 +0000)]
Changing bitfield enums to unsigned ints.

This was suggested by Chandler Carruth on the basis of past experience with
esoteric compilers/quirks relating to signed enums.

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

12 years agoNEON VLD3(multiple 3-element structures) assembly parsing.
Jim Grosbach [Mon, 23 Jan 2012 23:20:46 +0000 (23:20 +0000)]
NEON VLD3(multiple 3-element structures) assembly parsing.

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

12 years agoAdd missed mayStore flag to STREXD / t2STREXD
Anton Korobeynikov [Mon, 23 Jan 2012 22:57:52 +0000 (22:57 +0000)]
Add missed mayStore flag to STREXD / t2STREXD

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

12 years agostart the implementation of a new ConstantDataVector and ConstantDataArray
Chris Lattner [Mon, 23 Jan 2012 22:57:10 +0000 (22:57 +0000)]
start the implementation of a new ConstantDataVector and ConstantDataArray
classes, per PR1324.  Not all of their helper functions are implemented,
nothing creates them, and the rest of the compiler doesn't handle them yet.

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

12 years agoRemove extraneous ';'s.
Bill Wendling [Mon, 23 Jan 2012 22:55:02 +0000 (22:55 +0000)]
Remove extraneous ';'s.

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

12 years agoRemove dead default.
David Blaikie [Mon, 23 Jan 2012 22:37:11 +0000 (22:37 +0000)]
Remove dead default.

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

12 years agoIntel syntax: Robustify parsing of memory operand's displacement experssion.
Devang Patel [Mon, 23 Jan 2012 22:35:25 +0000 (22:35 +0000)]
Intel syntax: Robustify parsing of memory operand's displacement experssion.

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

12 years agoSimplify llvm::cl::Option by using a bit field instead of manual bit packing.
David Blaikie [Mon, 23 Jan 2012 22:22:44 +0000 (22:22 +0000)]
Simplify llvm::cl::Option by using a bit field instead of manual bit packing.

This still preserves the same total layout.

Previously it looked like:
*** Dumping AST Record Layout
   0 | class llvm::cl::Option
   0 |   (Option vtable pointer)
   8 |   int NumOccurrences
  12 |   int Flags
  16 |   unsigned int Position
  20 |   unsigned int AdditionalVals
  24 |   class llvm::cl::Option * NextRegistered
  32 |   const char * ArgStr
  40 |   const char * HelpStr
  48 |   const char * ValueStr
  sizeof=56, dsize=56, align=8
  nvsize=56, nvalign=8

Now it looks like:
*** Dumping AST Record Layout
   0 | class llvm::cl::Option
   0 |   (Option vtable pointer)
   8 |   int NumOccurrences
  12 |   enum NumOccurrencesFlag Occurrences
  12 |   unsigned int Value
  12 |   enum OptionHidden HiddenFlag
  12 |   enum FormattingFlags Formatting
  13 |   unsigned int Misc
  16 |   unsigned int Position
  20 |   unsigned int AdditionalVals
  24 |   class llvm::cl::Option * NextRegistered
  32 |   const char * ArgStr
  40 |   const char * HelpStr
  48 |   const char * ValueStr
  sizeof=56, dsize=56, align=8
  nvsize=56, nvalign=8

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

12 years agoNEON VLD3 lane-indexed assembly parsing and encoding.
Jim Grosbach [Mon, 23 Jan 2012 21:53:26 +0000 (21:53 +0000)]
NEON VLD3 lane-indexed assembly parsing and encoding.

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

12 years agoAdd support for .cfi_signal_frame. Fixes pr11762.
Rafael Espindola [Mon, 23 Jan 2012 21:51:52 +0000 (21:51 +0000)]
Add support for .cfi_signal_frame. Fixes pr11762.

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

12 years agoVarious public StringMap methods take or return "MapEntryTy", make it public.
Chris Lattner [Mon, 23 Jan 2012 21:42:52 +0000 (21:42 +0000)]
Various public StringMap methods take or return "MapEntryTy", make it public.

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

12 years agocopyImplicitOps is redundant here - the loop above already copies these ops.
Lang Hames [Mon, 23 Jan 2012 21:15:01 +0000 (21:15 +0000)]
copyImplicitOps is redundant here - the loop above already copies these ops.

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

12 years agoFix PR11829. PostRA LICM was too aggressive.
Jakob Stoklund Olesen [Mon, 23 Jan 2012 21:01:15 +0000 (21:01 +0000)]
Fix PR11829. PostRA LICM was too aggressive.

This fixes a typo in r148589.

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

12 years agoSimplify debug output.
Jakob Stoklund Olesen [Mon, 23 Jan 2012 21:01:11 +0000 (21:01 +0000)]
Simplify debug output.

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

12 years agoIntel syntax: Parse memory operand with empty base reg, e.g. DWORD PTR [4*RDI]
Devang Patel [Mon, 23 Jan 2012 20:20:06 +0000 (20:20 +0000)]
Intel syntax: Parse memory operand with empty base reg, e.g. DWORD PTR [4*RDI]

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

12 years agoSimplify some NEON assembly pseudo definitions.
Jim Grosbach [Mon, 23 Jan 2012 19:39:08 +0000 (19:39 +0000)]
Simplify some NEON assembly pseudo definitions.

Let the generic token alias definitions handle the data subtype
suffices. We don't need explicit versions for each.

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

12 years agoSilence warnings in -asserts build
Matt Beaumont-Gay [Mon, 23 Jan 2012 18:46:04 +0000 (18:46 +0000)]
Silence warnings in -asserts build

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

12 years agoIntel syntax: Parse segment registers.
Devang Patel [Mon, 23 Jan 2012 18:31:58 +0000 (18:31 +0000)]
Intel syntax: Parse segment registers.

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

12 years agoconvert CAZ, UndefValue, and CPN to use DenseMap's again, this time without
Chris Lattner [Mon, 23 Jan 2012 15:20:12 +0000 (15:20 +0000)]
convert CAZ, UndefValue, and CPN to use DenseMap's again, this time without
using OwningPtr.  OwningPtr would barf when the densemap had to reallocate,
which doesn't appear to happen on the regression test suite, but obviously
happens in real life :)

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

12 years agorevert r148688 too, this isn't safe for DenseMap use. When DenseMap resizes, it...
Chris Lattner [Mon, 23 Jan 2012 15:10:41 +0000 (15:10 +0000)]
revert r148688 too, this isn't safe for DenseMap use.  When DenseMap resizes, it will need to copy around arbitrary pointers

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

12 years agorevert r148691 and 148693
Chris Lattner [Mon, 23 Jan 2012 15:09:44 +0000 (15:09 +0000)]
revert r148691 and 148693

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

12 years agoImplemented AddressSanitizer::getPassName()
Alexander Potapenko [Mon, 23 Jan 2012 11:22:43 +0000 (11:22 +0000)]
Implemented AddressSanitizer::getPassName()

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

12 years agoARMAsmPrinter.cpp: Try to fix up r148686. EnableARMEHABI was also here.
NAKAMURA Takumi [Mon, 23 Jan 2012 09:14:42 +0000 (09:14 +0000)]
ARMAsmPrinter.cpp: Try to fix up r148686. EnableARMEHABI was also here.

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

12 years agoswitch UndefValue and ConstantPointerNull over to DenseMap's for uniquing.
Chris Lattner [Mon, 23 Jan 2012 08:52:32 +0000 (08:52 +0000)]
switch UndefValue and ConstantPointerNull over to DenseMap's for uniquing.

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

12 years agoFix broken link.
Nick Lewycky [Mon, 23 Jan 2012 08:47:21 +0000 (08:47 +0000)]
Fix broken link.

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

12 years agoReplace a use of ConstantUniqueMap for CAZ constants with a simple DenseMap.
Chris Lattner [Mon, 23 Jan 2012 08:42:38 +0000 (08:42 +0000)]
Replace a use of ConstantUniqueMap for CAZ constants with a simple DenseMap.
Now that the type system rewrite has landed, there is no need for its
complexity and std::map'ness.

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

12 years agoallow OwningPtr to be copy constructed if null, which is required to
Chris Lattner [Mon, 23 Jan 2012 08:19:57 +0000 (08:19 +0000)]
allow OwningPtr to be copy constructed if null, which is required to
make them be a valuetype in a DenseMap.

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

12 years agoCustom lower PCMPEQ/PCMPGT intrinsics to target specific nodes and remove the intrins...
Craig Topper [Mon, 23 Jan 2012 08:18:28 +0000 (08:18 +0000)]
Custom lower PCMPEQ/PCMPGT intrinsics to target specific nodes and remove the intrinsic patterns.

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

12 years agoAn option to selectively enable parts of ARM EHABI support.
Evgeniy Stepanov [Mon, 23 Jan 2012 07:57:39 +0000 (07:57 +0000)]
An option to selectively enable parts of ARM EHABI support.

This change adds an new value to the --arm-enable-ehabi option that
disables emitting unwinding descriptors. This mode gives a working
backtrace() without the (currently broken) exception support.

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

12 years agoUpdate more places to use target specific nodes for vector shifts instead of intrinsics.
Craig Topper [Mon, 23 Jan 2012 06:46:22 +0000 (06:46 +0000)]
Update more places to use target specific nodes for vector shifts instead of intrinsics.

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

12 years agoCustom lower vector shift intrinsics to target specific nodes and remove the patterns...
Craig Topper [Mon, 23 Jan 2012 06:16:53 +0000 (06:16 +0000)]
Custom lower vector shift intrinsics to target specific nodes and remove the patterns that are no longer needed.

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

12 years agoAvoid using an invalidated iterator.
Rafael Espindola [Mon, 23 Jan 2012 05:07:16 +0000 (05:07 +0000)]
Avoid using an invalidated iterator.

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

12 years agoThe iteration order over a std::set<Module*> depends on the addresses of the
Rafael Espindola [Mon, 23 Jan 2012 03:41:53 +0000 (03:41 +0000)]
The iteration order over a std::set<Module*> depends on the addresses of the
modules. Avoid that to make the order the linker sees the modules deterministic.

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

12 years agoRemove pattern fragments for v32i8, v16i16, v8i32, v16i8, v8i16, and v4i32 loads...
Craig Topper [Mon, 23 Jan 2012 00:06:44 +0000 (00:06 +0000)]
Remove pattern fragments for v32i8, v16i16, v8i32, v16i8, v8i16, and v4i32 loads. All integer vector loads are promoted to v2i64 or v4i64 so these pattern fragments can never match. Fix or remove patterns that used these fragments.

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

12 years agoMake Value::isDereferenceablePointer() handle unreachable code blocks. (This
Nick Lewycky [Mon, 23 Jan 2012 00:05:17 +0000 (00:05 +0000)]
Make Value::isDereferenceablePointer() handle unreachable code blocks. (This
returns false in the event the computation feeding into the pointer is
unreachable, which maybe ought to be true -- but this is at least consistent
with undef->isDereferenceablePointer().) Fixes PR11825!

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

12 years agoCombine X86 CMPPD and CMPPS node types. Simplifies selection code and pattern matching.
Craig Topper [Sun, 22 Jan 2012 23:36:02 +0000 (23:36 +0000)]
Combine X86 CMPPD and CMPPS node types. Simplifies selection code and pattern matching.

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

12 years agoMerge PCMPEQB/PCMPEQW/PCMPEQD/PCMPEQQ and PCMPGTB/PCMPGTW/PCMPGTD/PCMPGTQ X86 ISD...
Craig Topper [Sun, 22 Jan 2012 22:42:16 +0000 (22:42 +0000)]
Merge PCMPEQB/PCMPEQW/PCMPEQD/PCMPEQQ and PCMPGTB/PCMPGTW/PCMPGTD/PCMPGTQ X86 ISD node types into only two node types. Simplifying opcode selection and pattern matching.

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

12 years agoUse Attributes::None instead of 0 after r148553 change on Attributes from unsigned...
Nicolas Geoffray [Sun, 22 Jan 2012 20:05:26 +0000 (20:05 +0000)]
Use Attributes::None instead of 0 after r148553 change on Attributes from unsigned to their own class.

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