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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Craig Topper [Sun, 22 Jan 2012 19:15:14 +0000 (19:15 +0000)]
Add target specific ISD node types for SSE/AVX vector shuffle instructions and change all the code that used to create intrinsic nodes to create the new nodes instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148664
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 22 Jan 2012 14:08:34 +0000 (14:08 +0000)]
Add an option to disable buggy copy propagation pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148662
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 22 Jan 2012 12:14:35 +0000 (12:14 +0000)]
unittests/Support/Casting.cpp: [PR8226] Workaround for MSVC|Debug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148659
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 22 Jan 2012 12:07:33 +0000 (12:07 +0000)]
Add fused multiple+add instructions from VFPv4.
Patch by Ana Pazos!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148658
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Sun, 22 Jan 2012 09:26:00 +0000 (09:26 +0000)]
Remove trailing spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148655
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Sun, 22 Jan 2012 09:02:48 +0000 (09:02 +0000)]
Remove trailing spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148654
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Sun, 22 Jan 2012 09:01:03 +0000 (09:01 +0000)]
Basic runtime dynamic loading capabilities added to ELFObjectFile, implemented
in a subclass named DyldELFObject. This class supports rebasing the object file
it represents by re-mapping section addresses to the actual memory addresses
the object was placed in. This is required for MC-JIT implementation on ELF with
debugging support.
Patch reviewed on llvm-commits.
Developed together with Ashok Thirumurthi and Andrew Kaylor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148653
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Sun, 22 Jan 2012 07:05:02 +0000 (07:05 +0000)]
Split the lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h header to smaller logical headers.
ELF and MachO implementations of RuntimeDyldImpl go into their own header files now.
Reviewed on llvm-commits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148652
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 22 Jan 2012 03:07:48 +0000 (03:07 +0000)]
Make code a little less verbose.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148651
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 22 Jan 2012 01:17:04 +0000 (01:17 +0000)]
Help GCC along with code that's actually unreachable.
Unfortunately I don't think there's a fix for this that will work upstream and
also satisfy Clang's -Wunreachable-code, which is a pity. But I'll give it some
more thought -perhaps there's some way out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148645
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 22 Jan 2012 01:15:56 +0000 (01:15 +0000)]
Remove unused X86 ISD node type defines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148644
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 22 Jan 2012 00:41:20 +0000 (00:41 +0000)]
Move some vector shift patterns into their instruction definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148643
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 21 Jan 2012 18:37:15 +0000 (18:37 +0000)]
Add memory patterns for some of the fp<->integer conversion instructions. Fold some patterns into instruction definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148641
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sat, 21 Jan 2012 18:02:01 +0000 (18:02 +0000)]
Remove unreachable defaults from gtest.
This will ensure LLVM and Clang build -Wswitch-enum-redundant-default (an on-by-default warning I'm about to add to Clang).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148639
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 21 Jan 2012 10:42:44 +0000 (10:42 +0000)]
Remove unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148635
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 21 Jan 2012 08:49:33 +0000 (08:49 +0000)]
Fix PR11819 introduced by r148537. I'd commit the test case, but the generated code is terrible as it gets fully scalarized. Expect a future commit to fix that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148632
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 21 Jan 2012 03:31:03 +0000 (03:31 +0000)]
Fix an obvious typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148622
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sat, 21 Jan 2012 00:58:53 +0000 (00:58 +0000)]
Handle register masks in LiveVariables.
A register mask operand kills any live physreg that isn't preserved.
Unlike an implicit-def operand, the clobbered physregs are never live
afterwards.
This means LiveVariables has to track a much smaller number of live
physregs, and it should spend much less time in addRegisterDead().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148609
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 21 Jan 2012 00:21:53 +0000 (00:21 +0000)]
RuntimeDyld alignment adjustment from MachO file.
The MachO file stores section alignment as log2(alignment-in-bytes). The
allocation routines want the raw alignment-in-bytes value, so adjust
for that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148604
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 21 Jan 2012 00:07:56 +0000 (00:07 +0000)]
Thumb2 'add rd, pc, imm' alternate form for 'adr' instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148601
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 20 Jan 2012 22:48:59 +0000 (22:48 +0000)]
Delete an unused member variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148594
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 20 Jan 2012 22:44:03 +0000 (22:44 +0000)]
Fix inverted condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148593
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 20 Jan 2012 22:32:05 +0000 (22:32 +0000)]
Intel syntax: Robustify register parsing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148591
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 20 Jan 2012 22:27:12 +0000 (22:27 +0000)]
Support register masks in MachineLICM.
Only PostRA LICM is affected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148589
91177308-0d34-0410-b5e6-
96231b3b80d8