Jakob Stoklund Olesen
c04876b607
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>
llvm-svn: 116940
2010-10-20 18:45:55 +00:00
Rafael Espindola
0a50bbaee1
Handle _GLOBAL_OFFSET_TABLE_ correctly.
...
llvm-svn: 116932
2010-10-20 16:46:08 +00:00
Michael J. Spencer
fd40803107
Use C++03...
...
llvm-svn: 116927
2010-10-20 16:00:45 +00:00
Michael J. Spencer
2da558d210
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.
llvm-svn: 116925
2010-10-20 15:23:58 +00:00
Chandler Carruth
7763c845be
Add a comment about ATTRIBUTE_UNUSED to avoid further confusion over when to
...
use it.
llvm-svn: 116920
2010-10-20 08:44:27 +00:00
Chandler Carruth
55850cad48
Remove remaining uses of ATTRIBUTE_UNUSED on variables, and delete three
...
#includes in the process.
llvm-svn: 116919
2010-10-20 08:27:02 +00:00
Eric Christopher
78c7e84ce5
Fix a TODO by removing some unnecesary copies.
...
llvm-svn: 116915
2010-10-20 08:02:24 +00:00
Rafael Espindola
749c19f614
Record sysbols created by aliases. Fixes PR8414.
...
llvm-svn: 116910
2010-10-20 04:57:22 +00:00
NAKAMURA Takumi
0f54a81d63
Add ATTRIBUTE_UNUSED for -Asserts.
...
llvm-svn: 116909
2010-10-20 04:05:29 +00:00
Tobias Grosser
88ce93b0eb
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.
llvm-svn: 116905
2010-10-20 01:54:44 +00:00
Douglas Gregor
1e64599cb3
Fix CMake build
...
llvm-svn: 116903
2010-10-20 01:36:56 +00:00
Anders Carlsson
cb8b02dd95
Add a way to emit StringSwitch of clang attribute spellings.
...
llvm-svn: 116899
2010-10-20 01:21:53 +00:00
Jim Grosbach
ebb4bc2c05
Fix backwards conditional.
...
llvm-svn: 116897
2010-10-20 01:10:01 +00:00
Dan Gohman
c781a28a1d
Make CodeGen TBAA-aware.
...
llvm-svn: 116890
2010-10-20 00:31:05 +00:00
Jim Grosbach
c77e19ac99
Add dynamic realignment when rematerializing the base register.
...
llvm-svn: 116886
2010-10-20 00:02:50 +00:00
Jim Grosbach
5f33ecfc98
Nuke a commented out bit that got missed a while back.
...
llvm-svn: 116883
2010-10-19 23:48:47 +00:00
Jim Grosbach
b390dd1bd5
Spelling typo fix. s/incput/input/. Thanks, Bob!
...
llvm-svn: 116880
2010-10-19 23:39:23 +00:00
Jim Grosbach
a8c0be5343
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
llvm-svn: 116879
2010-10-19 23:27:08 +00:00
Dan Gohman
399ef0b44a
Move NoAA out of BasicAliasAnalysis.cpp into its own file, now that
...
it doesn't have a special relationship with BasicAliasAnalysis
anymore.
llvm-svn: 116876
2010-10-19 23:09:08 +00:00
Dan Gohman
befe1767ff
Reapply r116831 and r116839, converting AliasAnalysis to use
...
uint64_t, plus fixes for places I missed before.
llvm-svn: 116875
2010-10-19 22:54:46 +00:00
Douglas Gregor
a598c0fbce
Extend StringRef's edit-distance algorithm to permit an upper bound on the allowed edit distance
...
llvm-svn: 116867
2010-10-19 22:13:48 +00:00
Jim Grosbach
d7916d7468
Update comments to remove obsolete references.
...
llvm-svn: 116863
2010-10-19 21:34:47 +00:00
Dan Gohman
de3c49438f
Revert r116831 and r116839, which are breaking selfhost builds.
...
llvm-svn: 116858
2010-10-19 21:06:16 +00:00
Jakob Stoklund Olesen
02d7f65c49
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.
llvm-svn: 116857
2010-10-19 20:56:32 +00:00
Owen Anderson
deee1e18f1
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.
llvm-svn: 116854
2010-10-19 20:08:44 +00:00
Dale Johannesen
ee87cbe4e9
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.
llvm-svn: 116852
2010-10-19 20:00:17 +00:00
Owen Anderson
933c8cc6ed
Remove extraneous slash.
...
llvm-svn: 116851
2010-10-19 19:54:48 +00:00
Rafael Espindola
5f43aeb079
Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.
...
llvm-svn: 116848
2010-10-19 19:31:37 +00:00
Evan Cheng
1c8dafd12a
Re-enable register pressure aware machine licm with fixes. Hoist() may have
...
erased the instruction during LICM so UpdateRegPressureAfter() should not
reference it afterwards.
llvm-svn: 116845
2010-10-19 18:58:51 +00:00
Dan Gohman
37a9b813f5
Oops, check in all the files for converting AliasAnalysis to
...
use uint64_t.
llvm-svn: 116839
2010-10-19 18:08:27 +00:00
Michael J. Spencer
fcc19613cd
unittests: Use the correct defines and global variables when building on CMake.
...
llvm-svn: 116834
2010-10-19 18:04:19 +00:00
Michael J. Spencer
da05a8149b
Fix VC2010 build.
...
llvm-svn: 116833
2010-10-19 18:04:06 +00:00
Owen Anderson
65610b8589
Factor out the call-once implementation into its own macro.
...
llvm-svn: 116832
2010-10-19 18:02:06 +00:00
Dan Gohman
03f86df2e5
Change AliasAnalysis and its clients to use uint64_t instead of unsigned
...
for representing object sizes, for consistency with other parts of LLVM.
llvm-svn: 116831
2010-10-19 18:00:02 +00:00
Jason W Kim
ccbc75257a
Fixing r116753 r116756 r116777
...
The failures in r116753 r116756 were caused by a python issue -
Python likes to append 'L' suffix to stringified numbers if the number
is larger than a machine int. Unfortunately, this causes a divergence of
behavior between 32 and 64 bit python versions.
I re-crafted elf-dump/common_dump to take care of these issues by:
1. always printing 0x (makes for easy sed/regex)
2. always print fixed length (exactly 2 + numBits/4 digits long)
by mod ((2^numBits) - 1)
3. left-padded with '0'
There is a residual common routine that is also used by
macho-dump (dataToHex) , so I left the 'section_data' test values alone.
llvm-svn: 116823
2010-10-19 17:39:10 +00:00
Owen Anderson
46990c17f7
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which
...
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
llvm-svn: 116820
2010-10-19 17:21:58 +00:00
Daniel Dunbar
6ff550c84d
Revert r116781 "- Add a hook for target to determine whether an instruction def
...
is", which breaks some nightly tests.
llvm-svn: 116816
2010-10-19 17:14:24 +00:00
Dan Gohman
6e3755905e
Consistently use AliasAnalysis::UnknownSize instead of hardcoding ~0u.
...
llvm-svn: 116815
2010-10-19 17:06:23 +00:00
Mikhail Glushenkov
0c09a4b97f
GlobalOpt: EvaluateFunction() must not evaluate stores to weak_odr globals.
...
Fixes PR8389.
llvm-svn: 116812
2010-10-19 16:47:23 +00:00
Mikhail Glushenkov
e0b70cf701
Trailing whitespace.
...
llvm-svn: 116811
2010-10-19 16:47:15 +00:00
Che-Liang Chiou
1733b45be9
Add test case mov.ll for PTX device function
...
llvm-svn: 116806
2010-10-19 13:21:51 +00:00
Che-Liang Chiou
bc4f00f42d
Add lower argument and return of device function
...
llvm-svn: 116805
2010-10-19 13:14:40 +00:00
Bill Wendling
f937f0ed59
Fix spelling.
...
llvm-svn: 116804
2010-10-19 10:18:23 +00:00
Chandler Carruth
3f16e8b729
First step to allowing the resource directory of Clang to be adjusted for
...
strange packaging environments. The primary result of this is to expose
a (normally empty) CLANG_RESOURCE_DIR string in the autoconf and CMake builds.
This will in turn be used by a subsequent commit to Clang.
Regenerated configure and config.h.in thanks to Nick. =D
llvm-svn: 116802
2010-10-19 08:21:25 +00:00
Michael J. Spencer
e528f2588f
X86: Add MS-CRT libcalls.
...
llvm-svn: 116801
2010-10-19 07:32:52 +00:00
Michael J. Spencer
cd6be63d05
Fix Whitespace.
...
llvm-svn: 116800
2010-10-19 07:32:42 +00:00
NAKAMURA Takumi
4a85646d6c
lib/CodeGen/TargetLoweringObjectFileImpl.cpp: Tweak to emit ".{section}${name}" instead of ".{section}$linkonce_{name}" for linkonce sections.
...
It seems GNU ld/PECOFF relies on section names, linking with g++'s libstdc++.a would fail.
llvm-svn: 116791
2010-10-19 03:24:42 +00:00
Andrew Trick
3df2830391
Fix for machine licm assert: RCCost <= RegPressure[RCId]
...
in MultiSource/Benchmarks/VersaBench/beamformer/beamformer.
SmallSet.insert returns true if the element is inserted.
llvm-svn: 116790
2010-10-19 02:50:50 +00:00
Rafael Espindola
2ba55832f3
Fix PR8300 by remembering to keep the bitcast in all cases.
...
llvm-svn: 116788
2010-10-19 02:02:57 +00:00
NAKAMURA Takumi
1c62027520
lib/System/Win32/ThreadLocal.inc: Suppress "unused" warning on -Asserts.
...
llvm-svn: 116785
2010-10-19 01:22:01 +00:00