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
Rafael Espindola
9f3a003d3c
Add support for .cfi_signal_frame. Fixes pr11762.
...
llvm-svn: 148733
2012-01-23 21:51:52 +00:00
Chris Lattner
cfea666af2
Various public StringMap methods take or return "MapEntryTy", make it public.
...
llvm-svn: 148732
2012-01-23 21:42:52 +00:00
Lang Hames
73f7de854c
copyImplicitOps is redundant here - the loop above already copies these ops.
...
llvm-svn: 148725
2012-01-23 21:15:01 +00:00
Jakob Stoklund Olesen
dd6ae694d6
Fix PR11829. PostRA LICM was too aggressive.
...
This fixes a typo in r148589.
llvm-svn: 148724
2012-01-23 21:01:15 +00:00
Jakob Stoklund Olesen
7c2c3ef5cd
Simplify debug output.
...
llvm-svn: 148723
2012-01-23 21:01:11 +00:00
Devang Patel
3c6289f43a
Intel syntax: Parse memory operand with empty base reg, e.g. DWORD PTR [4*RDI]
...
llvm-svn: 148721
2012-01-23 20:20:06 +00:00
Jim Grosbach
0eeacbfe2e
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.
llvm-svn: 148718
2012-01-23 19:39:08 +00:00
Matt Beaumont-Gay
ea859b30be
Silence warnings in -asserts build
...
llvm-svn: 148715
2012-01-23 18:46:04 +00:00
Devang Patel
9698de5bf3
Intel syntax: Parse segment registers.
...
llvm-svn: 148712
2012-01-23 18:31:58 +00:00
Chris Lattner
6d71b145da
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 :)
llvm-svn: 148700
2012-01-23 15:20:12 +00:00
Chris Lattner
7f4e7ce468
revert r148688 too, this isn't safe for DenseMap use. When DenseMap resizes, it will need to copy around arbitrary pointers
...
llvm-svn: 148699
2012-01-23 15:10:41 +00:00
Chris Lattner
4dbbd66de9
revert r148691 and 148693
...
llvm-svn: 148698
2012-01-23 15:09:44 +00:00