Evan Cheng
d0a66e438f
Add a ARM specific pre-allocation pass that re-schedule loads / stores from
...
consecutive addresses togther. This makes it easier for the post-allocation pass
to form ldm / stm.
This is step 1. We are still missing a lot of ldm / stm opportunities because
of register allocation are not done in the desired order. More enhancements
coming.
llvm-svn: 73291
2009-06-13 09:12:55 +00:00
Devang Patel
bcc1187643
llvm.dbg.region.end() intrinsic is not required to be in _last_ basic block in a function. If that happens then any basic block that follows (lexically) the block with regin.end will not have scope info available. LexicalScopeStack relies on processing basic block in CFG order, but this processing order is not guaranteed. Things get complicated when the optimizer gets a chance to optimizer IR with dbg intrinsics.
...
Apply defensive patch to preserve at least one lexical scope till the end of function.
llvm-svn: 73282
2009-06-13 02:16:18 +00:00
Bruno Cardoso Lopes
9cb41aaf57
Type change cleanup on JCE and MCE. Patch by Aaron Gray
...
llvm-svn: 73271
2009-06-12 23:51:56 +00:00
Dan Gohman
67ec24b541
Adjust this test's regex strings so that they work regardless
...
of the target's pointer size. This avoids the need for -m32 on
the llvm-gcc command-line, which some targets may not support.
llvm-svn: 73270
2009-06-12 23:31:14 +00:00
Dan Gohman
e27a52f9b1
Add -m32 to llvm-gcc commands, so that this test behaves as expected
...
on systems which default to a 64-bit target.
llvm-svn: 73265
2009-06-12 23:02:02 +00:00
Owen Anderson
a3bb398631
Improve style.
...
llvm-svn: 73258
2009-06-12 22:07:19 +00:00
Owen Anderson
247bdbde16
This is supposed to be a preorder numbering of the dominator tree, not the CFG.
...
llvm-svn: 73257
2009-06-12 21:50:22 +00:00
Owen Anderson
8c879bba61
Now with less iterator invalidation, and other forms of crashing!
...
llvm-svn: 73256
2009-06-12 21:41:29 +00:00
Evan Cheng
98216808fe
If killed register is defined by implicit_def, do not clear it since it's live range may overlap another def of same register.
...
llvm-svn: 73255
2009-06-12 21:34:26 +00:00
Chris Lattner
75c88a3730
second half of fix for PR4366: don't zap store to null of
...
non-default addrspaces.
llvm-svn: 73253
2009-06-12 21:01:07 +00:00
Evan Cheng
2f784781aa
Mark some pattern-less instructions as neverHasSideEffects.
...
llvm-svn: 73252
2009-06-12 20:46:18 +00:00
Devang Patel
95b4743214
Document noredzone and noimplicitfloat function attributes.
...
llvm-svn: 73246
2009-06-12 19:45:19 +00:00
Devang Patel
8d9aa4249a
Clear AbstractInstanceRootMap at the end of the function.
...
llvm-svn: 73244
2009-06-12 19:24:05 +00:00
Dan Gohman
f9b0419cd8
Don't do (x - (y - z)) --> (x + (z - y)) on floating-point types, because
...
it may round differently. This fixes PR4374.
llvm-svn: 73243
2009-06-12 19:23:25 +00:00
Dan Gohman
43f66023c3
Give Instruction::isSameOperationAs a corresponding comment to note
...
the relationship with MergeFunctions.cpp's isEquivalentOperation,
and make a trivial code reordering so that the two functions are
easier to compare.
Fix the name of Instruction::isSameOperationAs in MergeFunction.cpp's
isEquivalentOperation's comment, and fix a nearby 80-column violation.
llvm-svn: 73241
2009-06-12 19:03:05 +00:00
Dale Johannesen
b5be21ef41
Testcase for llvm-gcc patch 73238.
...
llvm-svn: 73239
2009-06-12 18:41:53 +00:00
Bill Wendling
94a47465af
Waste time fixing something that should have been fixed before.
...
llvm-svn: 73236
2009-06-12 18:02:40 +00:00
Nick Lewycky
32fec8ff24
Keep callers of a weak function calling it, instead of the non-weak equivalent.
...
llvm-svn: 73235
2009-06-12 17:16:48 +00:00
Arnold Schwaighofer
780e3addf8
Fix Bug 4278: X86-64 with -tailcallopt calling convention
...
out of sync with regular cc.
The only difference between the tail call cc and the normal
cc was that one parameter register - R9 - was reserved for
calling functions through a function pointer. After time the
tail call cc has gotten out of sync with the regular cc.
We can use R11 which is also caller saved but not used as
parameter register for potential function pointers and
remove the special tail call cc on x86-64.
llvm-svn: 73233
2009-06-12 16:26:57 +00:00
Nick Lewycky
effec6b472
Don't forget to match the calling convention when producing a thunk.
...
llvm-svn: 73231
2009-06-12 16:04:00 +00:00
Nick Lewycky
1e36649f95
Given two identical weak functions, produce one internal function and two weak
...
thunks.
llvm-svn: 73230
2009-06-12 15:56:56 +00:00
Duncan Sands
92153907f3
Tweak GenLibDeps.pl so it works on solaris.
...
Patch by Edward O'Callaghan.
llvm-svn: 73228
2009-06-12 14:23:42 +00:00
Nicolas Geoffray
72523163ad
After obtaining the lock, look if the function has been codegen'd by
...
another thread.
llvm-svn: 73227
2009-06-12 14:11:08 +00:00
Nick Lewycky
cc239d7680
This test is wrong. If you have two weak functions F and G you can't make
...
either one call the other since either one can be replaced at link time, and
they need to be independent.
llvm-svn: 73225
2009-06-12 13:24:41 +00:00
Duncan Sands
f0b761540d
Add clang support to the nightly test script.
...
Patch by Edward O'Callaghan.
llvm-svn: 73224
2009-06-12 13:02:52 +00:00
Duncan Sands
7d79ddff64
Credits for Edward O'Callaghan.
...
llvm-svn: 73223
2009-06-12 12:52:24 +00:00
Nick Lewycky
5b80791480
Add an "are types equivalent" operation that ignores the types that a pointer
...
points to while analyzing all other fields.
Use FoldingSetNodeID to produce a good hash. This dramatically decreases run
times.
Emit thunks. This means that it can look at all functions regardless of what
the linkage is or if the address is taken, but unfortunately some small
functions can be even shorter than the thunk because our backend doesn't yet
realize it can just turn these into jumps. This means that this pass will
pessimize code on average.
llvm-svn: 73222
2009-06-12 08:04:51 +00:00
Nick Lewycky
61f78a2674
Fix regular expression.
...
llvm-svn: 73221
2009-06-12 05:39:02 +00:00
Nick Lewycky
bbce41f698
Don't remove aggregate-typed module level constants before encoding functions
...
since functions may contain aggregate constants too.
llvm-svn: 73220
2009-06-12 05:20:12 +00:00
Nick Lewycky
127b1cc900
In an XFAIL line, treat "XFAIL: foo*bar" as a regular expression to be matched
...
against the target triple, instead of equivalent to "XFAIL: *".
llvm-svn: 73219
2009-06-12 05:18:32 +00:00
Oscar Fuentes
9f16ef410d
CMake: New variable LLVM_LIBDIR_SUFFIX.
...
Patch by Ingmar Vanhassel!
llvm-svn: 73216
2009-06-12 02:49:53 +00:00
Misha Brukman
5f9665b84a
Update script to tell the user where to get the CodeSourcery crosstool, if it's
...
not found.
llvm-svn: 73213
2009-06-12 02:04:47 +00:00
Misha Brukman
797945ae86
Added two scripts to aid with building Linux/x86 -> Linux/ARM crosstools, using
...
CodeSourcery's provided GCC-based crosstools, from which we use binutils.
llvm-svn: 73212
2009-06-12 01:55:57 +00:00
Nick Lewycky
e3b5c81cb8
XFAIL this on PPC Linux. This keeps showing up in the buildbot and isn't easy to fix, and I'd like it to stop masking
...
real failures.
llvm-svn: 73211
2009-06-11 23:43:02 +00:00
Eli Friedman
74e9f6c070
Misc x86 README updates: remove a couple of already-fixed issues,
...
add a few suggestions from looking at some assembly code.
llvm-svn: 73210
2009-06-11 23:07:04 +00:00
Bruno Cardoso Lopes
2b429fb48f
Use forward declarations and move TargetELFWriterInfo impl to a new file.
...
llvm-svn: 73209
2009-06-11 22:13:00 +00:00
Dale Johannesen
60e261db11
Test for rev 73205 (PR 4349)
...
llvm-svn: 73206
2009-06-11 20:48:09 +00:00
Bill Wendling
dea5417ce0
Alphabetize.
...
llvm-svn: 73203
2009-06-11 20:13:35 +00:00
Bill Wendling
038b8dd7b5
Remove unused parameter warnings.
...
llvm-svn: 73202
2009-06-11 20:10:02 +00:00
Bruno Cardoso Lopes
9b68e8653f
Support for ELF Visibility
...
Emission for globals, using the correct data sections
Function alignment can be computed for each target using TargetELFWriterInfo
Some small fixes
llvm-svn: 73201
2009-06-11 19:16:03 +00:00
Chris Lattner
e0360f8ae8
Fix 4366: store to null in non-default addr space should not be
...
turned into unreachable.
llvm-svn: 73195
2009-06-11 17:54:56 +00:00
Sanjiv Gupta
4d678059ba
Generate libcalls for floating point arithmetic and casting operations.
...
llvm-svn: 73194
2009-06-11 16:50:48 +00:00
Duncan Sands
9b5e3effef
Cosmetic changes to parameter attribute verification.
...
llvm-svn: 73188
2009-06-11 08:11:03 +00:00
Duncan Sands
c12241a948
Avoid leaking memory in an error path. Noticed
...
by cppcheck.
llvm-svn: 73187
2009-06-11 08:09:49 +00:00
Sanjiv Gupta
1f8f8ce400
More formatting.
...
llvm-svn: 73185
2009-06-11 06:55:48 +00:00
Sanjiv Gupta
04cb690c99
Fixed source comments. No functionality change.
...
llvm-svn: 73184
2009-06-11 06:49:55 +00:00
Oscar Fuentes
fd06248a88
CMake: Documented how to cross-compile with CMake.
...
llvm-svn: 73181
2009-06-11 04:45:08 +00:00
Oscar Fuentes
cfe2266e89
CMake: Fixed parallel build problem related to native tblgen when
...
cross-compiling.
llvm-svn: 73180
2009-06-11 04:16:10 +00:00
Oscar Fuentes
c2d42ced17
CMake: Updated list of files on lib/CodeGen/CMakeLists.txt.
...
llvm-svn: 73174
2009-06-10 22:53:59 +00:00
Jay Foad
5affd7b2c9
Implement and use new method Function::hasAddressTaken().
...
llvm-svn: 73164
2009-06-10 08:41:11 +00:00