Craig Topper [Sun, 19 Feb 2012 01:39:49 +0000 (01:39 +0000)]
Add vmfunc instruction to X86 assembler and disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150899
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Charles [Sat, 18 Feb 2012 22:56:41 +0000 (22:56 +0000)]
Fix issue with bitwise and precedence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150897
91177308-0d34-0410-b5e6-
96231b3b80d8
Talin [Sat, 18 Feb 2012 21:00:49 +0000 (21:00 +0000)]
Hashing.h - utilities for hashing various data types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150890
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 18 Feb 2012 19:46:02 +0000 (19:46 +0000)]
White space fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150886
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 18 Feb 2012 17:51:43 +0000 (17:51 +0000)]
Temporarily disable this assert. Looks like it found a similar issue when
building bullet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150885
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 18 Feb 2012 17:22:58 +0000 (17:22 +0000)]
Don't skip debug instructions when looking for the insertion point of
the cast. If we do, we can end up with
inst1
--------------- < Insertion point
dbg inst
new inst
instead of the desired
inst1
new inst
--------------- < Insertion point
dbg inst
Another option would be for InsertNoopCastOfTo (or its callers) to move the
insertion point and we would end up with
inst1
dbg inst
new inst
--------------- < Insertion point
but that complicates the callers. This fixes PR12018 (and firefox's build).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150884
91177308-0d34-0410-b5e6-
96231b3b80d8
Jia Liu [Sat, 18 Feb 2012 12:03:15 +0000 (12:03 +0000)]
Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150878
91177308-0d34-0410-b5e6-
96231b3b80d8
David Meyer [Sat, 18 Feb 2012 10:03:19 +0000 (10:03 +0000)]
On Cygwin/MingW, add SharedLibDir and LLVMToolDir to the library search path, since shared libraries are placed in 'bin'. (static libraries are still in 'lib').
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150876
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2012 08:34:12 +0000 (08:34 +0000)]
Add X86InstrSVM.td that I forgot to add in r150873.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150874
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2012 08:19:49 +0000 (08:19 +0000)]
Add X86 assembler and disassembler support for AMD SVM instructions. Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150873
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 18 Feb 2012 04:34:17 +0000 (04:34 +0000)]
Trivial cleanup to group the generic 'armvN' cases with the 'arm' case,
etc. No functionality changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150867
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 18 Feb 2012 03:29:25 +0000 (03:29 +0000)]
Fix a rather nasty regression from r150690: LHS != RHS does not imply LHS->stripPointerCasts() != RHS->stripPointerCasts().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150863
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Sat, 18 Feb 2012 01:38:41 +0000 (01:38 +0000)]
Fix documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150860
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 18 Feb 2012 00:05:45 +0000 (00:05 +0000)]
Testcase for the previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150852
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 23:43:40 +0000 (23:43 +0000)]
Bring HMEditor into line with LLVM coding standards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150851
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 17 Feb 2012 23:03:39 +0000 (23:03 +0000)]
Ignore the lifetime intrinsics in fast-isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150848
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 17 Feb 2012 21:44:51 +0000 (21:44 +0000)]
Don't print out pointer values in SUnit::dump().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150842
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Fri, 17 Feb 2012 21:40:48 +0000 (21:40 +0000)]
Sink variable into assert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150841
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 21:29:41 +0000 (21:29 +0000)]
Add support for regmask slots to HMEditor. Also fixes a comment error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150840
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Fri, 17 Feb 2012 19:26:00 +0000 (19:26 +0000)]
Fix typo in comment ldopen() -> dlopen().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150836
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 17 Feb 2012 19:23:15 +0000 (19:23 +0000)]
Handle regmask operands in ARMInstrInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150833
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Fri, 17 Feb 2012 19:18:29 +0000 (19:18 +0000)]
Put back the initializing the targets in the disassembler API with a comment as
to why this is needed. This broke the darwin's otool(1) program. This change
was made in r144385.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150832
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 17 Feb 2012 19:07:59 +0000 (19:07 +0000)]
Fix ARMBaseInstrInfo::getInstrLatency for calls.
Calls always clobber CPSR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150831
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 17 Feb 2012 19:07:56 +0000 (19:07 +0000)]
Transfer regmasks to MRI.
MRI keeps track of which physregs have been used. Make sure it gets
updated with all the regmask-clobbered registers.
Delete the closePhysRegsUsed() function which isn't necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150830
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 17 Feb 2012 18:59:53 +0000 (18:59 +0000)]
Calls and invokes with the new clang.arc.no_objc_arc_exceptions
metadata may still unwind, but only in ways that the ARC
optimizer doesn't need to consider. This permits more
aggressive optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150829
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 18:44:18 +0000 (18:44 +0000)]
Refactor 'handleMove' code in live intervals. Clients of LiveIntervals won't see
any changes.
Internally this adds a private inner class HMEditor, to LiveIntervals. HMEditor provides
an API for updating live intervals when code is moved or bundled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150826
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 17 Feb 2012 18:33:38 +0000 (18:33 +0000)]
Remove a comment about an alternative approach that wouldn't
actually work, at least as described. LLVM Metadata is not
intended to suppress LLVM IR rules, as it can be stripped at
any time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150821
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Feb 2012 17:35:10 +0000 (17:35 +0000)]
Tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150820
91177308-0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Fri, 17 Feb 2012 17:31:15 +0000 (17:31 +0000)]
Generate the correct EH frame section types on Solaris, this time without breaking other platforms...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150819
91177308-0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Fri, 17 Feb 2012 16:51:02 +0000 (16:51 +0000)]
Revert r150814. It turns out that there is a good reason for this after all...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150818
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 17 Feb 2012 16:40:44 +0000 (16:40 +0000)]
Revert r150288, "Allow Post-RA LICM to hoist reserved register reads."
This caused miscompilations on out-of-tree targets, and possibly i386 as
well.
I'll find some other way of hoisting %rip-relative loads from loops
containing calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150816
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Fri, 17 Feb 2012 16:39:47 +0000 (16:39 +0000)]
Fix typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150815
91177308-0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Fri, 17 Feb 2012 16:32:07 +0000 (16:32 +0000)]
Don't lazily allocate eh_frame. We're not lazily allocating things like the LSDA, which are only used when the eh frame is used, so this lazy allocation doesn't really make sense.
Fix the type of eh_frame on Solaris so that Sun ld doesn't fail to combine them (thus making it impossible for the unwind library to find them and breaking exceptions).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150814
91177308-0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Fri, 17 Feb 2012 16:30:39 +0000 (16:30 +0000)]
... and it's probably best to use the correct alignment, rather than just guessing that it's the same as the size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150813
91177308-0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Fri, 17 Feb 2012 16:05:50 +0000 (16:05 +0000)]
It turns out that putting an 8-byte symbol in a 4-byte section makes Solaris ld sulk. GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons...
Thanks to Anton, Duncan and Rafael for helping me track this down.
Pointy hat to Rafael for introducing the bug in the first place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150811
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 17 Feb 2012 09:55:20 +0000 (09:55 +0000)]
Remove question.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150809
91177308-0d34-0410-b5e6-
96231b3b80d8
Jia Liu [Fri, 17 Feb 2012 08:55:11 +0000 (08:55 +0000)]
remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150805
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 17 Feb 2012 07:08:46 +0000 (07:08 +0000)]
Typo in variable name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150796
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 17 Feb 2012 07:02:34 +0000 (07:02 +0000)]
Remove the last of the old vector_shuffle patterns from X86 isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150795
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 17 Feb 2012 06:59:21 +0000 (06:59 +0000)]
Add support for invariant.start inside the static constructor evaluator. This is
useful to represent a variable that is const in the source but can't be constant
in the IR because of a non-trivial constructor. If globalopt evaluates the
constructor, and there was an invariant.start with no matching invariant.end
possible, it will mark the global constant afterwards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150794
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 17 Feb 2012 02:20:26 +0000 (02:20 +0000)]
Do not promote i32 arguments to i64. This was causing unnecessary sign extension
instructions to be emitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150782
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Feb 2012 02:12:54 +0000 (02:12 +0000)]
Remove redundant comment. Use a more efficient datatype.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150780
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 17 Feb 2012 02:09:28 +0000 (02:09 +0000)]
Fix some grammar-os and formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150779
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 01:54:11 +0000 (01:54 +0000)]
Reverse iterator - should be incrementing rather than decrementing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150778
91177308-0d34-0410-b5e6-
96231b3b80d8
Jia Liu [Fri, 17 Feb 2012 01:23:50 +0000 (01:23 +0000)]
add Emacs tag and fix some comment error in file headers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150775
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 17 Feb 2012 01:21:28 +0000 (01:21 +0000)]
[fast-isel] Add support for returning non-legal types with no sign- or zero-
entend flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150774
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 01:11:37 +0000 (01:11 +0000)]
MachineScheduler shouldn't use/preserve LiveDebugVariables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150773
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 00:51:32 +0000 (00:51 +0000)]
Oops - isRegLiveIntoSuccessor is used in non-assert builds now. Remove NDEBUG guards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150771
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 00:27:16 +0000 (00:27 +0000)]
Re-enable 150652 and 150654 - Make FPSCR non-reserved, and make MachineCSE bail on reserved registers. This *should* be safe as of r150786.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150769
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 17 Feb 2012 00:18:18 +0000 (00:18 +0000)]
Turn off assertion, conservatively compute liveness for live-in un-allocatable registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150768
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Thu, 16 Feb 2012 22:52:29 +0000 (22:52 +0000)]
Remove comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150739
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 16 Feb 2012 22:45:33 +0000 (22:45 +0000)]
Remove unnecessary assignment to temporary, ResultReg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150737
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 16 Feb 2012 22:42:48 +0000 (22:42 +0000)]
Use –mcpu=generic, so that the test will not fail when run on an Intel Atom
processor, due to the Atom scheduler producing an instruction sequence that is
different from that which is expected.
Patch by Michael Spencer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150736
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 16 Feb 2012 18:54:41 +0000 (18:54 +0000)]
Update credits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150715
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 16 Feb 2012 18:22:39 +0000 (18:22 +0000)]
Note x86 regmask operands in release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150712
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 16 Feb 2012 17:56:06 +0000 (17:56 +0000)]
Remove the YMM_HI_6_15 hack.
Call clobbers are now represented with register mask operands. The
regmask can easily represent the fact that xmm6 is call-preserved while
ymm6 isn't. This is automatically computed by TableGen from the
CalleeSavedRegs containing xmm6.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150709
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 16 Feb 2012 17:56:02 +0000 (17:56 +0000)]
Use the same CALL instructions for Windows as for everything else.
The different calling conventions and call-preserved registers are
represented with regmask operands that are added dynamically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150708
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Thu, 16 Feb 2012 17:48:20 +0000 (17:48 +0000)]
Remove trailing whitespace. Add newline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150706
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 16 Feb 2012 17:29:50 +0000 (17:29 +0000)]
Disable machine copy propagation for now. It's known to be buggy (PR11940) and introduces subtle miscompiles in many places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150703
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 16 Feb 2012 15:19:59 +0000 (15:19 +0000)]
Revert "InstSimplify: Strip pointer casts early."
Turns out this isn't safe, because the code below depends on LHS and RHS having
the same type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150695
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 16 Feb 2012 15:03:04 +0000 (15:03 +0000)]
InstSimplify: Strip pointer casts early.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150694
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 16 Feb 2012 13:49:39 +0000 (13:49 +0000)]
InstSimplify: Ignore pointer casts when constant folding compares between pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150690
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 16 Feb 2012 10:28:10 +0000 (10:28 +0000)]
s/ModAttrBehavior/ModFlagBehavior/g to be consistent with how module flags are named elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150679
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 16 Feb 2012 10:25:07 +0000 (10:25 +0000)]
Add 'exception handling' to my description.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150678
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 16 Feb 2012 10:23:43 +0000 (10:23 +0000)]
Add blurb about module flags and reformat a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150677
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 16 Feb 2012 09:48:07 +0000 (09:48 +0000)]
Remove extraneous #include and spelling mistake introduced in r150669.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150670
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 16 Feb 2012 09:17:04 +0000 (09:17 +0000)]
Modify the algorithm when traversing the DAGCombiner's worklist to be O(log N) for all operations. This fixes a horrible worst case with lots of nodes where 99% of the time was being spent in std::remove.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150669
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 16 Feb 2012 08:12:24 +0000 (08:12 +0000)]
VMCore/AsmWriter.cpp: Tweak to check #INF and #NAN earlier.
With MSVCRT, prior checker missed emission of #INF and #NAN.
FIXME: Checking should be simpler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150667
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Thu, 16 Feb 2012 06:28:33 +0000 (06:28 +0000)]
Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed.
Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150664
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Thu, 16 Feb 2012 04:58:48 +0000 (04:58 +0000)]
Template specialize SmallVector::push_back based on POD-ness of the type. Reduces clang binary by 188KB
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150662
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 16 Feb 2012 04:19:15 +0000 (04:19 +0000)]
VMCore/AsmWriter.cpp: Use APFloat instead of atof(3).
atof(3) might behave differently among platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150661
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 16 Feb 2012 02:32:10 +0000 (02:32 +0000)]
Oop - r150653 + r150654 broke one of my test cases. Backing out for now...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150655
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 16 Feb 2012 02:28:14 +0000 (02:28 +0000)]
FPSCR shouldn't be reserved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150654
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 16 Feb 2012 02:19:35 +0000 (02:19 +0000)]
MachineCSE shouldn't extend the live ranges of reserved or allocatable registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150653
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 16 Feb 2012 01:10:50 +0000 (01:10 +0000)]
Give a description of the Objective-C garbage collection module flags.
The rule governing the flags is this:
no-gc + no-gc = no-gc
no-gc + gc = no-gc
no-gc + gc-only = error
gc + gc = gc
gc + gc-only = gc-only
gc-only + gc-only = gc-only
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150646
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 16 Feb 2012 00:41:10 +0000 (00:41 +0000)]
loop-rotate shouldn't hoist alloca instructions out of a loop. Patch by Patrik Hägglund, with slightly modified test. Issue reported by Patrik Hägglund on llvmdev.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150642
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 16 Feb 2012 00:02:50 +0000 (00:02 +0000)]
Enable register mask operands for x86 calls.
Call instructions no longer have a list of 43 call-clobbered registers.
Instead, they get a single register mask operand with a bit vector of
call-preserved registers.
This saves a lot of memory, 42 x 32 bytes = 1344 bytes per call
instruction, and it speeds up building call instructions because those
43 imp-def operands no longer need to be added to use-def lists. (And
removed and shifted and re-added for every explicit call operand).
Passes like LiveVariables, LiveIntervals, RAGreedy, PEI, and
BranchFolding are significantly faster because they can deal with call
clobbers in bulk.
Overall, clang -O2 is between 0% and 8% faster, uniformly distributed
depending on call density in the compiled code. Debug builds using
clang -O0 are 0% - 3% faster.
I have verified that this patch doesn't change the assembly generated
for the LLVM nightly test suite when building with -disable-copyprop
and -disable-branch-fold.
Branch folding behaves slightly differently in a few cases because call
instructions have different hash values now.
Copy propagation flushes its data structures when it crosses a register
mask operand. This causes it to leave a few dead copies behind, on the
order of 20 instruction across the entire nightly test suite, including
SPEC. Fixing this properly would require the pass to use different data
structures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150638
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 15 Feb 2012 23:44:05 +0000 (23:44 +0000)]
Remove extraneous tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150636
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 15 Feb 2012 23:43:37 +0000 (23:43 +0000)]
Add a test for generating Objective-C metadata from module flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150635
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 15 Feb 2012 23:42:54 +0000 (23:42 +0000)]
Handle register masks in branch folding.
Don't attempt to move instructions with regmask operands. They are most
likely calls anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150634
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 15 Feb 2012 23:34:15 +0000 (23:34 +0000)]
Fix library visibility problems with VLIWPacketizer.
The existing framework for postra scheduling is library local. We want to keep it that way. Soon we will have a more general MachineScheduler interface. At that time, various bits will be exposed to targets. In the meantime, the VLIWPacketizer wants to use ScheduleDAGInstrs directly, so it needs to wrapped in a PIMPL to avoid exposing it to the target interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150633
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 15 Feb 2012 23:27:50 +0000 (23:27 +0000)]
Use the enum instead of 'unsigned'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150632
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Wed, 15 Feb 2012 23:21:33 +0000 (23:21 +0000)]
Make LiveIntervals::handleMove() bundle aware.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150630
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 15 Feb 2012 22:47:53 +0000 (22:47 +0000)]
Use 'getDataNoRel' for the section kind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150628
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Wed, 15 Feb 2012 22:45:51 +0000 (22:45 +0000)]
Fix assertion condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150627
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 15 Feb 2012 22:44:10 +0000 (22:44 +0000)]
Add a test for the Objective-C garbage collection metadata stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150626
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 15 Feb 2012 22:36:15 +0000 (22:36 +0000)]
Modify the code that emits the module flags to use the new module flags accessor
method. This allows the target lowering code to not have to deal with MDNodes.
Also, avoid leaking memory like a sieve by not creating a global variable for
the image info section, but just emitting the code directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150624
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 15 Feb 2012 22:34:20 +0000 (22:34 +0000)]
Add a module flags accessor method which returns the flags in a vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150623
91177308-0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Wed, 15 Feb 2012 22:13:07 +0000 (22:13 +0000)]
Add function for computing the edit distance of two arrays.
Accomplished by moving the body of StringRef::edit_distance into
a separate function that accepts two ArrayRefs, and making
StringRef::edit_distance a wrapper around the new function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150621
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 15 Feb 2012 22:06:21 +0000 (22:06 +0000)]
Don't expose DefaultVLIWScheduler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150619
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 15 Feb 2012 19:24:11 +0000 (19:24 +0000)]
utils: Kill NewNightlyTest.pl, which has been replaced by LNT (as far as I know).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150610
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Wed, 15 Feb 2012 19:04:53 +0000 (19:04 +0000)]
Remove overly conservative assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150608
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 15 Feb 2012 18:55:14 +0000 (18:55 +0000)]
Generic "VLIW" packetizer based on a DFA generated from target itinerary.
Patch by Sundeep!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150607
91177308-0d34-0410-b5e6-
96231b3b80d8
Sirish Pande [Wed, 15 Feb 2012 18:52:27 +0000 (18:52 +0000)]
Optimize redundant sign extends and negation of predicates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150606
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 15 Feb 2012 18:34:25 +0000 (18:34 +0000)]
Revert "Replacing HexagonOptimizeSZExtends with HexagonPeephole."
This reverts commit
1656806a944bbd23e98c6e578810fe02495ab741.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150605
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 15 Feb 2012 18:32:25 +0000 (18:32 +0000)]
Revert "Optimize redundant sign extends and negation of predicates"
as it's breaking the build.
This reverts commit
11241abca5e2a313412fed594bb9d9fa2a2057fb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150604
91177308-0d34-0410-b5e6-
96231b3b80d8
Sirish Pande [Wed, 15 Feb 2012 18:31:35 +0000 (18:31 +0000)]
Replacing HexagonOptimizeSZExtends with HexagonPeephole.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150603
91177308-0d34-0410-b5e6-
96231b3b80d8
Sirish Pande [Wed, 15 Feb 2012 18:22:18 +0000 (18:22 +0000)]
Optimize redundant sign extends and negation of predicates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150601
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 15 Feb 2012 17:36:21 +0000 (17:36 +0000)]
Add braces to if clause to make symmetric with associate else clause.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150591
91177308-0d34-0410-b5e6-
96231b3b80d8
David Meyer [Wed, 15 Feb 2012 15:09:06 +0000 (15:09 +0000)]
For ELF, also call fixSymbolsInTLSFixups() on expressions passed to EmitValue (literal values). Previously only called on expressions in instructions. New test cases added to tls.s, tls-i386.s. Resolves PR11981.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150582
91177308-0d34-0410-b5e6-
96231b3b80d8