Jim Grosbach
e151b15949
NEON VST4(one lane) assembly parsing and encoding.
...
llvm-svn: 148836
2012-01-24 18:53:13 +00:00
Owen Anderson
7492e4ff85
Widen the instruction encoder that TblGen emits to a 64 bits, which should accomodate every target I can think of offhand.
...
llvm-svn: 148833
2012-01-24 18:37:29 +00:00
Jim Grosbach
a78348fcda
NEON VLD4(one lane) assembly parsing and encoding.
...
llvm-svn: 148832
2012-01-24 18:37:25 +00:00
Jakob Stoklund Olesen
c81d459349
Fix old doxygen comment.
...
llvm-svn: 148825
2012-01-24 18:09:18 +00:00
Jakob Stoklund Olesen
3ff9738293
Add an (interleave A, B, ...) SetTheory operator.
...
This will interleave the elements from two or more lists.
llvm-svn: 148824
2012-01-24 18:06:05 +00:00
Chandler Carruth
f26c121c21
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.
llvm-svn: 148822
2012-01-24 18:00:44 +00:00
Jim Grosbach
f3607eac5d
NEON Two-operand assembly aliases for VSRA.
...
llvm-svn: 148821
2012-01-24 17:55:36 +00:00
Jim Grosbach
47f7ce80b8
Remove redundant test file.
...
llvm-svn: 148820
2012-01-24 17:55:32 +00:00
Jim Grosbach
630dd380c7
NEON Two-operand assembly aliases for VSLI.
...
llvm-svn: 148819
2012-01-24 17:49:15 +00:00
Jim Grosbach
42c0f99aa0
NEON Two-operand assembly aliases for VSRI.
...
llvm-svn: 148818
2012-01-24 17:46:58 +00:00
Jim Grosbach
703b0bb646
Tidy up.
...
llvm-svn: 148817
2012-01-24 17:46:54 +00:00
Jim Grosbach
e00b69bf5b
NEON add correct predicates for some asm aliases.
...
llvm-svn: 148815
2012-01-24 17:23:29 +00:00
David Blaikie
1040475c84
Reword comment based on feedback by Duncan Sands.
...
llvm-svn: 148809
2012-01-24 16:18:30 +00:00
Chris Lattner
380a325520
basic instcombine support for CDS.
...
llvm-svn: 148806
2012-01-24 14:31:22 +00:00
Chris Lattner
c67dced045
C++, CBE, and TLOF support for ConstantDataSequential
...
llvm-svn: 148805
2012-01-24 14:17:05 +00:00
Chris Lattner
70c46f210a
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.
llvm-svn: 148804
2012-01-24 14:04:40 +00:00
Elena Demikhovsky
ee8c87b433
ZERO_EXTEND operation is optimized for AVX.
...
v8i16 -> v8i32, v4i32 -> v4i64 - used vpunpck* instructions.
llvm-svn: 148803
2012-01-24 13:54:13 +00:00
Chris Lattner
9713727d0b
add more support for ConstantDataSequential
...
llvm-svn: 148802
2012-01-24 13:41:11 +00:00
Evgeniy Stepanov
a0474f4619
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.
llvm-svn: 148800
2012-01-24 13:05:33 +00:00
Benjamin Kramer
06164017c0
Bit pack DIE structures better.
...
16 bits are sufficient to store attributes, tags and forms.
llvm-svn: 148799
2012-01-24 12:08:28 +00:00
Eric Christopher
15458de186
Fix the testcases for the previous patch.
...
rdar://10278198
llvm-svn: 148795
2012-01-24 10:11:49 +00:00
Eric Christopher
afc99847bf
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
llvm-svn: 148794
2012-01-24 09:43:28 +00:00
Chris Lattner
55e4ae9dcd
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
llvm-svn: 148793
2012-01-24 09:31:43 +00:00
Chris Lattner
c616f8a90f
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.
llvm-svn: 148792
2012-01-24 09:01:07 +00:00
Chris Lattner
1c091db526
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.
...
llvm-svn: 148791
2012-01-24 08:58:57 +00:00
Chris Lattner
e9cf212d3f
teach valuetracking about ConstantDataSequential
...
llvm-svn: 148790
2012-01-24 07:54:10 +00:00
Chris Lattner
265280c247
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).
llvm-svn: 148788
2012-01-24 05:49:24 +00:00
Chris Lattner
d5993b31dd
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.
llvm-svn: 148786
2012-01-24 05:43:50 +00:00
Chris Lattner
e534fbc8f6
Add some accessor methods to CAZ and UndefValue that help simplify clients.
...
Make some CDS methods public.
llvm-svn: 148785
2012-01-24 05:42:11 +00:00
Anton Korobeynikov
16e0f2bde3
Use correct register class for am2offset register operands.
...
This pacifies machine verifier
llvm-svn: 148782
2012-01-24 04:58:56 +00:00
Jakob Stoklund Olesen
c6598ae00f
Preserve <def,undef> flags in CoalesceExtSubRegs.
...
This won't have an effect until EliminateRegSequences() starts setting
the undef flags.
llvm-svn: 148779
2012-01-24 04:44:01 +00:00
Chris Lattner
df67e07d2e
implement the ConstantDataSequential accessor methods.
...
No need for 'getOperand' :)
llvm-svn: 148778
2012-01-24 04:43:41 +00:00
Craig Topper
7311a89449
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.
...
llvm-svn: 148771
2012-01-24 03:03:17 +00:00
Jim Grosbach
3be662b372
NEON VST4(multiple 4 element structures) assembly parsing.
...
llvm-svn: 148764
2012-01-24 00:58:13 +00:00
Jim Grosbach
ca32a49eb5
NEON VLD4(multiple 4 element structures) assembly parsing.
...
llvm-svn: 148762
2012-01-24 00:43:17 +00:00
Jim Grosbach
345c1df4df
Tidy up. Remove some vertical space for readability.
...
llvm-svn: 148761
2012-01-24 00:43:12 +00:00
Chandler Carruth
55876621c9
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.
llvm-svn: 148759
2012-01-24 00:30:17 +00:00
Jim Grosbach
522c9aefea
Fix typo.
...
llvm-svn: 148757
2012-01-24 00:12:39 +00:00
Jim Grosbach
a4687dcf5a
NEON VST3(single element from one lane) assembly parsing.
...
llvm-svn: 148755
2012-01-24 00:07:41 +00:00
Devang Patel
48ee4a8277
Fix typo.
...
llvm-svn: 148751
2012-01-23 23:56:33 +00:00
Jim Grosbach
048162ddf9
NEON VST3(multiple 3-element structures) assembly parsing.
...
llvm-svn: 148748
2012-01-23 23:45:44 +00:00
David Blaikie
cafc52ba9a
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.
llvm-svn: 148746
2012-01-23 23:27:47 +00:00
Jim Grosbach
8035fac461
NEON VLD3(multiple 3-element structures) assembly parsing.
...
llvm-svn: 148745
2012-01-23 23:20:46 +00:00
Anton Korobeynikov
62624b5220
Add missed mayStore flag to STREXD / t2STREXD
...
llvm-svn: 148742
2012-01-23 22:57:52 +00:00
Chris Lattner
860d90844c
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.
llvm-svn: 148741
2012-01-23 22:57:10 +00:00
Bill Wendling
22382365ff
Remove extraneous ';'s.
...
llvm-svn: 148740
2012-01-23 22:55:02 +00:00
David Blaikie
eed9085fca
Remove dead default.
...
llvm-svn: 148738
2012-01-23 22:37:11 +00:00
Devang Patel
327773a25b
Intel syntax: Robustify parsing of memory operand's displacement experssion.
...
llvm-svn: 148737
2012-01-23 22:35:25 +00:00
David Blaikie
0c22143732
Simplify llvm: 🆑 :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:🆑 :Option
0 | (Option vtable pointer)
8 | int NumOccurrences
12 | int Flags
16 | unsigned int Position
20 | unsigned int AdditionalVals
24 | class llvm:🆑 :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:🆑 :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:🆑 :Option * NextRegistered
32 | const char * ArgStr
40 | const char * HelpStr
48 | const char * ValueStr
sizeof=56, dsize=56, align=8
nvsize=56, nvalign=8
llvm-svn: 148736
2012-01-23 22:22:44 +00:00
Jim Grosbach
dd667a11d3
NEON VLD3 lane-indexed assembly parsing and encoding.
...
llvm-svn: 148734
2012-01-23 21:53:26 +00:00