Evan Cheng
a347f85dbe
Starting to refactor Target to separate out code that's needed to fully describe
...
target machine from those that are only needed by codegen. The goal is to
sink the essential target description into MC layer so we can start building
MC based tools without needing to link in the entire codegen.
First step is to refactor TargetRegisterInfo. This patch added a base class
MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to
separate register description from the rest of the stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133782 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-24 01:44:41 +00:00
Jakub Staszak
66dddd1da3
Calculate backedge probability correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133776 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 23:52:11 +00:00
Jim Grosbach
0edb05b9e4
Tidy up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133770 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 22:29:00 +00:00
Jakub Staszak
fd9533b4a3
Missing files for the BlockFrequency analysis added.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133767 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 21:56:59 +00:00
Jakub Staszak
44eb49c2a1
Introduce BlockFrequency analysis for BasicBlocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133766 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 21:45:20 +00:00
Eli Friedman
a390a1aa48
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
2011-06-23 21:07:47 +00:00
Eli Friedman
00805fae5b
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
2011-06-23 20:40:23 +00:00
Eli Friedman
aeebc35886
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
2011-06-23 18:24:27 +00:00
Evan Cheng
f05589d043
Rename TargetOptions::StackAlignment to StackAlignmentOverride.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133739 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 18:15:47 +00:00
Evan Cheng
df214fa517
Remove TargetOptions.h dependency from ARMSubtarget.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133738 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 18:15:17 +00:00
Justin Holewinski
d8149c1bef
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
2011-06-23 18:10:13 +00:00
Justin Holewinski
6b1131e5ff
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
2011-06-23 18:10:08 +00:00
Justin Holewinski
486ca24c08
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
2011-06-23 18:10:07 +00:00
Justin Holewinski
a5ccb4e974
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
2011-06-23 18:10:05 +00:00
Justin Holewinski
67a9184861
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
2011-06-23 18:10:03 +00:00
Andrew Trick
28578e3137
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
2011-06-23 18:00:32 +00:00
Evan Cheng
ef41ff618f
Remove TargetOptions.h dependency from X86Subtarget.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133726 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 17:54:54 +00:00
Andrew Trick
75d33878ab
cmake+lit: handle ENABLE_ASSERTIONS feature properly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133725 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 17:52:36 +00:00
Rafael Espindola
83471853b1
Revert "revert 133714"
...
This reverts commit e8e00f5efb
.
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
2011-06-23 14:19:39 +00:00
Rafael Espindola
385f46146c
Add missing file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133717 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 14:02:13 +00:00
Dylan Noblesmith
e8e00f5efb
revert 133714
...
It broke the build worse.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133716 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 13:56:01 +00:00
Rafael Espindola
cd34486581
133713 broke the build, revert it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133714 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 13:37:38 +00:00
Dylan Noblesmith
5417eed201
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
2011-06-23 12:45:54 +00:00
Dylan Noblesmith
4e5885dc0f
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
2011-06-23 12:34:31 +00:00
Dylan Noblesmith
3fa9a42fdd
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
2011-06-23 12:21:33 +00:00
Dylan Noblesmith
4dd26ddf8e
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
2011-06-23 12:11:37 +00:00
Jay Foad
95c3e48f95
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
2011-06-23 09:09:15 +00:00
Bill Wendling
5b46e8e6b8
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
2011-06-23 07:55:41 +00:00
Bill Wendling
a8c9e6a943
Formatting changes. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133706 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 07:44:54 +00:00
Eric Christopher
e59fbc04ad
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
2011-06-23 06:24:52 +00:00
Bill Wendling
4c0c446d74
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
2011-06-23 05:13:28 +00:00
Rafael Espindola
9dbbd87938
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
2011-06-23 03:41:29 +00:00
Evan Cheng
2fa82bc3da
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
2011-06-23 01:53:43 +00:00
Bill Wendling
e3cd13f0e2
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
2011-06-23 01:06:23 +00:00
Bill Wendling
533c9ac021
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
2011-06-23 00:23:04 +00:00
Bill Wendling
de0cea7e49
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
2011-06-23 00:12:58 +00:00
Bill Wendling
3f2ea825bd
80-column violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133668 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-23 00:09:43 +00:00
Andrew Trick
f2a58425cd
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
2011-06-22 23:23:19 +00:00
Bill Wendling
1a3ab63cb5
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
2011-06-22 23:16:51 +00:00
Rafael Espindola
d6379a993c
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
2011-06-22 22:31:57 +00:00
Bill Wendling
aa0a8f3177
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
2011-06-22 22:22:24 +00:00
Nick Lewycky
e6240e8b83
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
2011-06-22 21:13:46 +00:00
Chad Rosier
f78b5952c3
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
2011-06-22 21:13:23 +00:00
Bill Wendling
bbdffa9ab0
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
2011-06-22 21:07:27 +00:00
Devang Patel
df3ad6697b
New binops need debug loc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133642 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 20:56:56 +00:00
Daniel Dunbar
46d061c0fb
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
2011-06-22 20:41:53 +00:00
Jim Grosbach
d7d71a1859
Add missing header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133640 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 20:40:30 +00:00
Jim Grosbach
2fc6898886
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
2011-06-22 20:14:52 +00:00
Devang Patel
a098bf1239
Set debug loc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133636 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 19:52:36 +00:00
Nick Lewycky
6d3a0e287b
Needs a triple.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133634 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-22 19:42:14 +00:00