Evan Cheng
d6865de2d2
Add missing scheduling itineraries for transfers between core registers and VFP registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116983 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 01:12:00 +00:00
Owen Anderson
d7795540d0
Implement correct encodings for NEON vadd, both integer and floating point.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116981 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 00:48:00 +00:00
Michael J. Spencer
dd0a00a6e3
CodeGen-Windows: Only emit _fltused if a VarArg function is called with floating point args.
...
This should be the minimum set of functions that could possibly need it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116978 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 00:08:21 +00:00
Eric Christopher
2d8f6fe610
Custom lower f64 args passed in integer registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116977 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-21 00:01:47 +00:00
Michael J. Spencer
6e56b18e57
Fix Whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116972 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 23:40:27 +00:00
Bill Wendling
01aabdac44
Add encoding for moving a value between two ARM core registers and a doublework
...
extension register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116970 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 23:37:40 +00:00
Jakob Stoklund Olesen
f1583ae84a
Remember to keep track of rematted values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116962 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:50:42 +00:00
Bill Wendling
7d31a169af
Add encodings for movement between ARM core registers and single-precision
...
registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116961 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:44:54 +00:00
Dan Gohman
adb30d211b
Memdep says that an instruction clobbers itself
...
when it means there is no specific clobber instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116960 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:37:41 +00:00
Owen Anderson
75f6df283f
Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry
...
delete PassInfo objects that were created using new-style initialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:22:30 +00:00
Dan Gohman
ba13864483
Factor out the main aliasing check into a separate function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116958 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:11:14 +00:00
Dan Gohman
561ac17d20
Add some comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116957 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:04:02 +00:00
Evan Cheng
134982daa9
More accurate estimate / tracking of register pressure.
...
- Initial register pressure in the loop should be all the live defs into the
loop. Not just those from loop preheader which is often empty.
- When an instruction is hoisted, update register pressure from loop preheader
to the original BB.
- Treat only use of a virtual register as kill since the code is still SSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116956 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:03:58 +00:00
Dale Johannesen
e4d31593c5
Fix crash introduced in 116852. 8573915.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116955 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:03:37 +00:00
Dan Gohman
0b62f95ea8
Fix comments; the type graph is currently a tree, not a DAG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116954 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:02:58 +00:00
Jason W Kim
7ab2af03d8
Cut unneeded global variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116953 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:01:39 +00:00
Jakob Stoklund Olesen
080c316ff8
Move some of the InlineSpiller rematerialization code into LiveRangeEdit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116951 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 22:00:51 +00:00
Dale Johannesen
e93d99cf07
Remove Synthesizable from the Type system; as MMX vector
...
types are no longer Legal on X86, we don't need it.
No functional change. 8499854.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116947 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 21:32:10 +00:00
Jakob Stoklund Olesen
9b25940474
When SimpleRegisterCoalescing is trimming kill flags on a physical register
...
operand, also check if subregisters are killed.
Add <imp-def> operands for subregisters that remain alive after a super register
is killed.
I don't have a testcase for this that reproduces on trunk. <rdar://problem/8441758>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116940 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 18:45:55 +00:00
Rafael Espindola
64e6719ee8
Handle _GLOBAL_OFFSET_TABLE_ correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116932 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 16:46:08 +00:00
Michael J. Spencer
9f608b1919
Use C++03...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116927 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 16:00:45 +00:00
Michael J. Spencer
a9cf7b8443
System-Win32/Path: Fix incorrect assumption in isValid.
...
A recent commit to clang exposed a bug in the Win32 Path code. This is a
minimal fix for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116925 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 15:23:58 +00:00
Chandler Carruth
7283da51b8
Add a comment about ATTRIBUTE_UNUSED to avoid further confusion over when to
...
use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116920 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 08:44:27 +00:00
Chandler Carruth
1cd9708f5c
Remove remaining uses of ATTRIBUTE_UNUSED on variables, and delete three
...
#includes in the process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116919 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 08:27:02 +00:00
Eric Christopher
3659ac22c0
Fix a TODO by removing some unnecesary copies.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116915 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 08:02:24 +00:00
Rafael Espindola
02003caf22
Record sysbols created by aliases. Fixes PR8414.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116910 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 04:57:22 +00:00
NAKAMURA Takumi
f10c519249
Add ATTRIBUTE_UNUSED for -Asserts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116909 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 04:05:29 +00:00
Tobias Grosser
6551360535
Add RegionPass support.
...
A RegionPass is executed like a LoopPass but on the regions detected by the
RegionInfo pass instead of the loops detected by the LoopInfo pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116905 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 01:54:44 +00:00
Douglas Gregor
3e26c3c7d4
Fix CMake build
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116903 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 01:36:56 +00:00
Anders Carlsson
238777eb58
Add a way to emit StringSwitch of clang attribute spellings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116899 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 01:21:53 +00:00
Jim Grosbach
b8e67fc92b
Fix backwards conditional.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116897 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 01:10:01 +00:00
Dan Gohman
f96e4bd2a3
Make CodeGen TBAA-aware.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116890 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 00:31:05 +00:00
Jim Grosbach
8b95c3ebfb
Add dynamic realignment when rematerializing the base register.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116886 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-20 00:02:50 +00:00
Jim Grosbach
f6d7df6f21
Nuke a commented out bit that got missed a while back.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116883 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 23:48:47 +00:00
Jim Grosbach
df7ec2083f
Spelling typo fix. s/incput/input/. Thanks, Bob!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116880 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 23:39:23 +00:00
Jim Grosbach
e4ad387a5a
Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any
...
setup they require. Use this for ARM/Darwin to rematerialize the base
pointer from the frame pointer when required. rdar://8564268
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116879 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 23:27:08 +00:00
Dan Gohman
db4708cf86
Move NoAA out of BasicAliasAnalysis.cpp into its own file, now that
...
it doesn't have a special relationship with BasicAliasAnalysis
anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116876 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 23:09:08 +00:00
Dan Gohman
3da848bbda
Reapply r116831 and r116839, converting AliasAnalysis to use
...
uint64_t, plus fixes for places I missed before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116875 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 22:54:46 +00:00
Douglas Gregor
5ee568ac27
Extend StringRef's edit-distance algorithm to permit an upper bound on the allowed edit distance
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116867 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 22:13:48 +00:00
Jim Grosbach
8155ea4c3a
Update comments to remove obsolete references.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116863 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 21:34:47 +00:00
Dan Gohman
1db839e734
Revert r116831 and r116839, which are breaking selfhost builds.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116858 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 21:06:16 +00:00
Jakob Stoklund Olesen
2594746045
Shrink MachineOperand from 40 to 32 bytes on 64-bit hosts.
...
Pull an unsigned out of the Contents union such that it has the same size as two
pointers and no padding.
Arrange members such that the Contents union and all pointers can be 8-byte
aligned without padding.
This speeds up code generation by 0.8% on a 64-bit host. 32-bit hosts should be
unaffected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116857 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 20:56:32 +00:00
Owen Anderson
205942a4a5
Passes do not need to recursively initialize passes that they preserve, if
...
they do not also require them. This allows us to reduce inter-pass linkage
dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116854 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 20:08:44 +00:00
Dale Johannesen
575cd148ce
Enable using vdup for vector constants which are splat of
...
integers by default, and remove the controlling flag, now
that LICM will hoist such vdup's. 8003375.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116852 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 20:00:17 +00:00
Owen Anderson
879b65b396
Remove extraneous slash.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116851 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 19:54:48 +00:00
Rafael Espindola
bd70118f16
Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 19:31:37 +00:00
Evan Cheng
2312842de0
Re-enable register pressure aware machine licm with fixes. Hoist() may have
...
erased the instruction during LICM so UpdateRegPressureAfter() should not
reference it afterwards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116845 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 18:58:51 +00:00
Dan Gohman
9cb4c7f878
Oops, check in all the files for converting AliasAnalysis to
...
use uint64_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116839 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 18:08:27 +00:00
Michael J. Spencer
8a806aed4b
unittests: Use the correct defines and global variables when building on CMake.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116834 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 18:04:19 +00:00
Michael J. Spencer
01734b1e1b
Fix VC2010 build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116833 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19 18:04:06 +00:00