Jakub Staszak [Thu, 23 Jun 2011 23:52:11 +0000 (23:52 +0000)]
Calculate backedge probability correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133776
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 23 Jun 2011 22:29:00 +0000 (22:29 +0000)]
Tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133770
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 23 Jun 2011 21:56:59 +0000 (21:56 +0000)]
Missing files for the BlockFrequency analysis added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133767
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 23 Jun 2011 21:45:20 +0000 (21:45 +0000)]
Introduce BlockFrequency analysis for BasicBlocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133766
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 23 Jun 2011 21:07:47 +0000 (21:07 +0000)]
Add support for movntil/movntiq mnemonics. Reported on llvmdev.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133759
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 23 Jun 2011 20:40:23 +0000 (20:40 +0000)]
PR10180: Fix a instcombine crash with FP vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133756
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 23 Jun 2011 18:24:27 +0000 (18:24 +0000)]
Fix build for (some versions of?) MinGW. Patch by Ruben Van Boxem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133741
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Jun 2011 18:15:47 +0000 (18:15 +0000)]
Rename TargetOptions::StackAlignment to StackAlignmentOverride.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133739
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Jun 2011 18:15:17 +0000 (18:15 +0000)]
Remove TargetOptions.h dependency from ARMSubtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133738
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 23 Jun 2011 18:10:13 +0000 (18:10 +0000)]
PTX: Always use registers for return values, but use .param space for device
parameters if SM >= 2.0
- Update test cases to be more robust against register allocation changes
- Bump up the number of registers to 128 per type
- Include Python script to re-generate register file with any number of
registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133736
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 23 Jun 2011 18:10:08 +0000 (18:10 +0000)]
PTX: Fixup test cases for device param changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133735
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 23 Jun 2011 18:10:07 +0000 (18:10 +0000)]
PTX: Whitespace fixes and remove commented out code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133734
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 23 Jun 2011 18:10:05 +0000 (18:10 +0000)]
PTX: Prevent DCE from eliminating st.param calls, and unify the handling of
st.param and ld.param
FIXME: Test cases still need to be updated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133733
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 23 Jun 2011 18:10:03 +0000 (18:10 +0000)]
PTX: Use .param space for parameters in device functions for SM >= 2.0
FIXME: DCE is eliminating the final st.param.x calls, figure out why
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133732
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 23 Jun 2011 18:00:32 +0000 (18:00 +0000)]
cmake+lit: final cleanup related to the recent churn
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133729
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Jun 2011 17:54:54 +0000 (17:54 +0000)]
Remove TargetOptions.h dependency from X86Subtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133726
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 23 Jun 2011 17:52:36 +0000 (17:52 +0000)]
cmake+lit: handle ENABLE_ASSERTIONS feature properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133725
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 23 Jun 2011 14:19:39 +0000 (14:19 +0000)]
Revert "revert 133714"
This reverts commit
e8e00f5efb4a22238f2407bf813de4606f30c5aa.
The cmake build on OS X is still broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133718
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 23 Jun 2011 14:02:13 +0000 (14:02 +0000)]
Add missing file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133717
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Thu, 23 Jun 2011 13:56:01 +0000 (13:56 +0000)]
revert 133714
It broke the build worse.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133716
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 23 Jun 2011 13:37:38 +0000 (13:37 +0000)]
133713 broke the build, revert it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133714
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Thu, 23 Jun 2011 12:45:54 +0000 (12:45 +0000)]
Support: make floating-exception header private
It has only one user. This eliminates the last include of
config.h from the public headers -- ideally, config.h
shouldn't even be installed by `make install` anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133713
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Thu, 23 Jun 2011 12:34:31 +0000 (12:34 +0000)]
Don't include config.h in public headers
Replace it with llvm-config.h, which defines a subset of
config.h's macros "so that they can be in exported headers
and won't override package specific directives", e.g.,
PACKAGE_NAME.
Endian.h wasn't using any macros at all though, so just delete
the include there instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133712
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Thu, 23 Jun 2011 12:21:33 +0000 (12:21 +0000)]
remove CMake mode_t define
It's now replaced with a simple ifdef _MSC_VER in the one
place it's needed (clang's FileManager.h header).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133711
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan Noblesmith [Thu, 23 Jun 2011 12:11:37 +0000 (12:11 +0000)]
CppBackend: fixup for api change
This broke after r133364.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133709
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Thu, 23 Jun 2011 09:09:15 +0000 (09:09 +0000)]
Reinstate r133513 (reverted in r133700) with an additional fix for a
-Wshorten-64-to-32 warning in Instructions.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133708
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 23 Jun 2011 07:55:41 +0000 (07:55 +0000)]
Use a reference. Don't make a useless copy of the vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133707
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 23 Jun 2011 07:44:54 +0000 (07:44 +0000)]
Formatting changes. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133706
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 23 Jun 2011 06:24:52 +0000 (06:24 +0000)]
Revert r133513:
"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."
Due to some additional warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133700
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 23 Jun 2011 05:13:28 +0000 (05:13 +0000)]
Use the presence of the __compact_unwind section to indicate that a target
supports compact unwind info instead of having a separate flag indicating this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133685
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 23 Jun 2011 03:41:29 +0000 (03:41 +0000)]
Move more logic to shouldTailDuplicate and only duplicate regular bb before
register allocation if it has a indirectbr or if we can duplicate it to
every predecessor.
This fixes the SingleSource/Benchmarks/Shootout-C++/matrix.cpp regression but
keeps the previous improvements to sunspider.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133682
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Jun 2011 01:53:43 +0000 (01:53 +0000)]
Get rid of one getStackAlignment(). RegisterInfo shouldn't need to know about stack alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133679
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 23 Jun 2011 01:06:23 +0000 (01:06 +0000)]
Some skeleton code to emit the compact unwind. If the information is unable to
be emitted in a compact way, we then default to emitting a CIE and FDE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133676
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 23 Jun 2011 00:23:04 +0000 (00:23 +0000)]
Allow the AsmInfo to query for the compact unwind section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133670
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 23 Jun 2011 00:12:58 +0000 (00:12 +0000)]
Allow the AsmInfo to query the TLOF to see if it supports compact unwind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133669
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 23 Jun 2011 00:09:43 +0000 (00:09 +0000)]
80-column violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133668
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 22 Jun 2011 23:23:19 +0000 (23:23 +0000)]
lit support for REQUIRES: asserts.
Take #2. Don't piggyback on the existing config.build_mode. Instead,
define a new lit feature for each build feature we need (currently
just "asserts"). Teach both autoconf'd and cmake'd Makefiles to define
this feature within test/lit.site.cfg. This doesn't require any lit
harness changes and should be more robust across build systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133664
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 22 Jun 2011 23:16:51 +0000 (23:16 +0000)]
Add a flag that indicates whether a target supports compact unwind info or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133662
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 22 Jun 2011 22:31:57 +0000 (22:31 +0000)]
Reenable tail duplication of bb with just an unconditional jump, but
don't remove blocks that have their address taken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133659
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 22 Jun 2011 22:22:24 +0000 (22:22 +0000)]
Add a __LD,__compact_unwind section.
If the linker supports it, this will hold the CIE and FDE information in a
compact format. The implementation of the compact unwinding emission is coming
soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133658
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 22 Jun 2011 21:13:46 +0000 (21:13 +0000)]
Fix the implementation of ConstantRange::sub(ConstantRange). Patch by Xi Wang!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133648
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 22 Jun 2011 21:13:23 +0000 (21:13 +0000)]
Revert r133607. This is causing failures in the Clang gccTestSuite.
Specifically, gcc.c-torture/compile/pr21356.c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133646
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 22 Jun 2011 21:07:27 +0000 (21:07 +0000)]
Move class methods out-of-line. This reduces the indentation, and is more in
line with LLVM's general coding style.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133645
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 22 Jun 2011 20:56:56 +0000 (20:56 +0000)]
New binops need debug loc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133642
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Jun 2011 20:41:53 +0000 (20:41 +0000)]
test/Unit: Fix enable shared test to follow check that we have actually loaded
the site config.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133641
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Jun 2011 20:40:30 +0000 (20:40 +0000)]
Add missing header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133640
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Jun 2011 20:14:52 +0000 (20:14 +0000)]
Move ARMMachObjectWriter to its own file.
Just tidy up a bit. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133638
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 22 Jun 2011 19:52:36 +0000 (19:52 +0000)]
Set debug loc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133636
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 22 Jun 2011 19:42:14 +0000 (19:42 +0000)]
Needs a triple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133634
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 22 Jun 2011 18:55:03 +0000 (18:55 +0000)]
Emit trailing padding on constant vectors when TargetData says that the vector
is larger than the sum of the elements (including per-element padding).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133631
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Wed, 22 Jun 2011 16:07:03 +0000 (16:07 +0000)]
PTX: Fix FrameIndex mapping bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133619
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Wed, 22 Jun 2011 09:24:39 +0000 (09:24 +0000)]
Replace the existing forms of ConstantArray::get() with a single form
that takes an ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133615
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Wed, 22 Jun 2011 09:10:19 +0000 (09:10 +0000)]
Make ConstantVector::get() always take an ArrayRef, never a std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133614
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Bailey [Wed, 22 Jun 2011 09:04:30 +0000 (09:04 +0000)]
Test Commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133613
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Wed, 22 Jun 2011 08:55:11 +0000 (08:55 +0000)]
Eliminate a temporary std::vector in ConstantStruct::get().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133612
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Wed, 22 Jun 2011 08:50:06 +0000 (08:50 +0000)]
Extend ConstantUniqueMap with a new template parameter ValRefType,
representing a constant reference to ValType. Normally this is just
"const ValType &", but when ValType is a std::vector we want to use
ArrayRef as the reference type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133611
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 22 Jun 2011 05:43:36 +0000 (05:43 +0000)]
Only do config-time substitution of LLVM_BUILD_MODE in
test/lit.site.cfg, not Unit/test/lit.site.cfg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133608
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 22 Jun 2011 04:01:58 +0000 (04:01 +0000)]
Reenable the optimization added in 133415, but change the definition of a "simple" bb to
be one with only one unconditional branch and no phis. Duplicating the phis in this case
is possible, but requeres liveness analysis or breaking edges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133607
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Wed, 22 Jun 2011 02:09:50 +0000 (02:09 +0000)]
PTX: Add signed integer comparisons
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133599
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Wed, 22 Jun 2011 00:43:56 +0000 (00:43 +0000)]
PTX: Add .address_size directive if PTX version >= 2.3
Patch by Wei-Ren Chen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133589
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 22 Jun 2011 00:03:42 +0000 (00:03 +0000)]
Test case for r133560.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133585
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Tue, 21 Jun 2011 23:19:23 +0000 (23:19 +0000)]
Unbreak the CMake build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133574
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 21 Jun 2011 23:02:36 +0000 (23:02 +0000)]
After register is spilled there should not be any DBG_VALUE referring the same register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133569
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 21 Jun 2011 22:55:50 +0000 (22:55 +0000)]
Consolidate some TableGen diagnostic helper functions.
TableGen had diagnostic printers sprinkled about in a few places. Pull them
together into a single location in Error.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133568
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 21 Jun 2011 22:54:23 +0000 (22:54 +0000)]
Fix some trailing issues from my introduction of MVT::untyped and its use for REGISTER_SEQUENCE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133567
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 21 Jun 2011 22:45:41 +0000 (22:45 +0000)]
Add support for assembling "movq" when it's correct to do so, while continuing
to emit "movd" across the board to continue supporting a Darwin assembler bug.
This is the reincarnation of r133452.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133565
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 21 Jun 2011 22:40:24 +0000 (22:40 +0000)]
Add verbose EH table printing to SjLj exception tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133561
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 21 Jun 2011 22:36:03 +0000 (22:36 +0000)]
There could be more than one DBG_VALUE instructions for variables where all of them have offset based on one register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133560
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 21 Jun 2011 22:30:20 +0000 (22:30 +0000)]
Improve the comment printing for the EH table. This gives a much more detailed
explanation of what the EH table describes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133559
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 21 Jun 2011 22:10:57 +0000 (22:10 +0000)]
Handle the memory-ness of all U+ ARM constraints.
Noticed on inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133553
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 21 Jun 2011 19:46:09 +0000 (19:46 +0000)]
Remove r130409, as requested by Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133536
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Jun 2011 19:00:54 +0000 (19:00 +0000)]
Reorg. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133533
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 21 Jun 2011 17:35:13 +0000 (17:35 +0000)]
Revert r133452: "Emit movq for 64-bit register to XMM register moves..."
This is breaking compiler-rt and llvm-gcc builds on MacOSX when not using
the integrated assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133524
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Tue, 21 Jun 2011 17:18:15 +0000 (17:18 +0000)]
Add support for sadd.with.overflow and uadd.with.overflow intrinsics to the CBackend by emitting definitions for each intrinsic that occurs in the module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133522
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 21 Jun 2011 15:43:52 +0000 (15:43 +0000)]
IVUsers no longer needs to record the phis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133518
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 21 Jun 2011 15:37:05 +0000 (15:37 +0000)]
Remove deprecated forms of StringMap::GetOrCreateValue().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133517
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 21 Jun 2011 15:36:24 +0000 (15:36 +0000)]
Remove some unnecessary uses of c_str().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133516
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 21 Jun 2011 14:58:30 +0000 (14:58 +0000)]
Remove unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133514
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 21 Jun 2011 10:33:19 +0000 (10:33 +0000)]
Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133513
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 21 Jun 2011 10:02:43 +0000 (10:02 +0000)]
Don't use PN->replaceUsesOfWith() to change a PHINode's incoming blocks,
because it won't work after my phi operand changes, because the incoming
blocks will no longer be Uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133512
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 21 Jun 2011 08:33:49 +0000 (08:33 +0000)]
Add a reduced test case for the buildbot failure (clang self-hosted
build) caused by r133435.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133509
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Jun 2011 06:22:33 +0000 (06:22 +0000)]
use the MapEntryTy typedef instead of writing it out long form,
add some fixme's about methods that should be removed.
Merged from type-system-rewrite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133504
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Jun 2011 06:01:08 +0000 (06:01 +0000)]
Teach dag combine to match halfword byteswap patterns.
1. (((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8)
=> (bswap x) >> 16
2. ((x&0xff)<<8)|((x&0xff00)>>8)|((x&0xff000000)>>8)|((x&0x00ff0000)<<8))
=> (rotl (bswap x) 16)
This allows us to eliminate most of the def : Pat patterns for ARM rev16
revsh instructions. It catches many more cases for ARM and x86.
rdar://
9609108
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133503
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 21 Jun 2011 03:22:38 +0000 (03:22 +0000)]
indvars -disable-iv-rewrite: Adds support for eliminating identity
ops.
This is a rewrite of the IV simplification algorithm used by
-disable-iv-rewrite. To avoid perturbing the default mode, I
temporarily split the driver and created SimplifyIVUsersNoRewrite. The
idea is to avoid doing opcode/pattern matching inside
IndVarSimplify. SCEV already does it. We want to optimize with the
full generality of SCEV, but optimize def-use chains top down on-demand rather
than rewriting the entire expression bottom-up. This was easy to do
for operations that SCEV can prove are identity function. So we're now
eliminating bitmasks and zero extends this way.
A result of this rewrite is that indvars -disable-iv-rewrite no longer
requires IVUsers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133502
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 21 Jun 2011 02:09:03 +0000 (02:09 +0000)]
Revert r133435 and r133449 to appease buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133499
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 21 Jun 2011 01:28:11 +0000 (01:28 +0000)]
Add A0 and A1 to the list of registers used for returning a value in order to
handle functions with return type Complex long long.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133497
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 21 Jun 2011 01:02:03 +0000 (01:02 +0000)]
Coding style fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133496
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 21 Jun 2011 00:40:49 +0000 (00:40 +0000)]
Re-apply 132758 and 132768 which were speculatively reverted in 132777.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133494
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 21 Jun 2011 00:35:15 +0000 (00:35 +0000)]
Don't mark the eh.dispatch.setup with a memory access marker. We want this to
stick around even during fast isel.
<rdar://problem/
9637156>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133493
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 20 Jun 2011 23:20:43 +0000 (23:20 +0000)]
Completely short-circuit out ARC optimization if the ARC runtime
functions do not appear in the module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133478
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 20 Jun 2011 22:12:24 +0000 (22:12 +0000)]
Remove the subclassing. This will be moved to the ASM printer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133473
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 20 Jun 2011 20:56:05 +0000 (20:56 +0000)]
Skip fields that don't exist in the Register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133470
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Mon, 20 Jun 2011 18:42:48 +0000 (18:42 +0000)]
PTX: Fix conversion between predicates and value types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133454
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 20 Jun 2011 18:33:26 +0000 (18:33 +0000)]
Emit movq for 64-bit register to XMM register moves, but continue to accept
movd when assembling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133452
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Mon, 20 Jun 2011 17:46:19 +0000 (17:46 +0000)]
Fix a check for PHINodes with two incoming values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133449
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Mon, 20 Jun 2011 17:08:56 +0000 (17:08 +0000)]
PTX: Fix if-then-else formatting and add missing asserts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133447
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 20 Jun 2011 17:04:08 +0000 (17:04 +0000)]
Disable again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133446
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Mon, 20 Jun 2011 15:56:20 +0000 (15:56 +0000)]
PTX: Add basic register spilling code
The current implementation generates stack loads/stores, which are
really just mov instructions from/to "special" registers. This may
not be the most efficient implementation, compared to an approach where
the stack registers are directly folded into instructions, but this is
easier to implement and I have yet to see a case where ptxas is unable
to see through this kind of register usage and know what is really
going on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133443
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Divacky [Mon, 20 Jun 2011 15:28:39 +0000 (15:28 +0000)]
Don't apply on PPC64 the 32bit ADDIC optimizations as there's no overflow
with 32bit values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133439
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Mon, 20 Jun 2011 14:46:47 +0000 (14:46 +0000)]
This is an automatically reduced test case that crashed in GVN, at some
point during the development of the phi operand changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133436
91177308-0d34-0410-b5e6-
96231b3b80d8