Chris Lattner
d3b295c23f
fix testcase to properly check for the patch in r73195.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73380 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 05:46:02 +00:00
Chris Lattner
c5718d073c
"This patch implements the method with the GetModuleFileName function for windows."
...
Patch by Benjamin Kramer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 05:38:04 +00:00
Chris Lattner
3771071dd8
remove extraneous const qualifier
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73373 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 04:42:32 +00:00
Chris Lattner
2e06dd2101
I got J and K backward, many thanks to Eli for spotting this!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73372 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 04:39:05 +00:00
Chris Lattner
8792232f99
remove some old CVS-specific arguments that don't work with SVN.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73369 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 04:18:54 +00:00
Chris Lattner
88d7e403d0
add a new static method to portably determine whether a patch is
...
absolute or not, based on a patch by Gregory Curfman!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73368 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 04:17:07 +00:00
Chris Lattner
e4935150c7
implement support for the 'K' asm constraint, PR4347
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73366 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 04:01:39 +00:00
Dan Gohman
a119de86a0
Fix old-style type names in comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73362 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 23:30:43 +00:00
Dan Gohman
bd59d7b603
Implement more aggressive folding of add operand lists when
...
they contain multiplications of constants with add operations.
This helps simplify several kinds of things; in particular it
helps simplify expressions like ((-1 * (%a + %b)) + %a) to %b,
as expressions like this often come up in loop trip count
computations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:58:51 +00:00
Dan Gohman
444f49150d
Specialize DenseMapInfo for SCEVHandle, so that SCEVHandles can be
...
used as keys in DenseMaps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:55:07 +00:00
Dan Gohman
7f7c4366ca
Check for the short-circuiting condition before performing
...
the potentially expensive erase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:53:57 +00:00
Dan Gohman
4dfad29547
Do compare constant SCEV values in SCEVComplexityCompare, because
...
even though the order doesn't matter at the top level of an expression,
it does matter when the constant is a subexpression of an n-ary
expression, because n-ary expressions are sorted lexicographically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:51:25 +00:00
Dan Gohman
a82752c9eb
Convert several parts of the ScalarEvolution framework to use
...
SmallVector instead of std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73357 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:47:23 +00:00
Dan Gohman
ea73f3c2e1
Add another item to the list of things that indvars does.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73355 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:38:41 +00:00
Duncan Sands
ec08da01fc
Testcase for PR4332.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73353 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:22:42 +00:00
Evan Cheng
90f95f88c6
Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 20:22:55 +00:00
Torok Edwin
caf6b2bbaf
Fix CMake build. Patch from Ingmar Vanhassel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73342 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 13:39:56 +00:00
Owen Anderson
ca399021d4
Add an early implementation of a partial inlining pass. The idea behind this
...
is that, for functions whose bodies are entirely guarded by an if-statement, it
can be profitable to pull the test out of the callee and into the caller.
This code has had some cursory testing, but still has a number of known issues
on the LLVM test suite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73338 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 08:26:32 +00:00
Bruno Cardoso Lopes
ae9163f0e2
Introduce new BinaryObject (blob) class, ELF Writer modified to use it. BinaryObject.h by Aaron Gray
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73333 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 07:53:21 +00:00
Douglas Gregor
956244b337
Add output of the SFINAE bit for Clang's diagnostics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73331 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 07:24:49 +00:00
Shantonu Sen
1a1ee832c9
Add myself, test commit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73320 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 02:03:17 +00:00
Nick Lewycky
a142c9302b
Unlike the other instructions, GEP really does need to look at the type of a
...
pointer. This fixes kimwitu++. Pointed out by Frits van Bommel on review!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73299 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 19:09:52 +00:00
Sanjiv Gupta
dcb6da3efd
The subprogram descriptor for a function may be missing (llvm-ld linking two static functions with same name), so pick up the compilation unit for the function from the first valid debug loc of its instructions.
...
This patch also emits debug info for structure (aggregate types in
general) types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73295 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 17:35:54 +00:00
Dan Gohman
4d8414f420
Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical
...
induction variable when the addrec to be expanded does not require
a wider type. This eliminates the need for IndVarSimplify to
micro-manage SCEV expansions, because SCEVExpander now
automatically expands them in the form that IndVarSimplify considers
to be canonical. (LSR still micro-manages its SCEV expansions,
because it's optimizing for the target, rather than for
other optimizations.)
Also, this uses the new getAnyExtendExpr, which has more clever
expression simplification logic than the IndVarSimplify code it
replaces, and this cleans up some ugly expansions in code such as
the included masked-iv.ll testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73294 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 16:25:49 +00:00
Dan Gohman
2ce84c8d47
Add a ScalarEvolution::getAnyExtendExpr utility function for performing
...
extension with unspecified bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73293 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 15:56:47 +00:00
Evan Cheng
e7d6df7353
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73291 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 09:12:55 +00:00
Devang Patel
daf9e02893
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73282 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 02:16:18 +00:00
Bruno Cardoso Lopes
7e0b551e2a
Type change cleanup on JCE and MCE. Patch by Aaron Gray
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73271 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 23:51:56 +00:00
Dan Gohman
0de1951a33
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73270 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 23:31:14 +00:00
Dan Gohman
f53e6b5c13
Add -m32 to llvm-gcc commands, so that this test behaves as expected
...
on systems which default to a 64-bit target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73265 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 23:02:02 +00:00
Owen Anderson
a21f31bca5
Improve style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73258 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 22:07:19 +00:00
Owen Anderson
5b6139a4d1
This is supposed to be a preorder numbering of the dominator tree, not the CFG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73257 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 21:50:22 +00:00
Owen Anderson
fdf72c6607
Now with less iterator invalidation, and other forms of crashing!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73256 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 21:41:29 +00:00
Evan Cheng
4a274e573d
If killed register is defined by implicit_def, do not clear it since it's live range may overlap another def of same register.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73255 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 21:34:26 +00:00
Chris Lattner
69074a51f9
second half of fix for PR4366: don't zap store to null of
...
non-default addrspaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73253 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 21:01:07 +00:00
Evan Cheng
cd799b99cb
Mark some pattern-less instructions as neverHasSideEffects.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73252 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 20:46:18 +00:00
Devang Patel
5d96fdac41
Document noredzone and noimplicitfloat function attributes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 19:45:19 +00:00
Devang Patel
9217f793bf
Clear AbstractInstanceRootMap at the end of the function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73244 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 19:24:05 +00:00
Dan Gohman
e54aba5fa9
Don't do (x - (y - z)) --> (x + (z - y)) on floating-point types, because
...
it may round differently. This fixes PR4374.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73243 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 19:23:25 +00:00
Dan Gohman
194ae785e1
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73241 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 19:03:05 +00:00
Dale Johannesen
5d0da6be21
Testcase for llvm-gcc patch 73238.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73239 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 18:41:53 +00:00
Bill Wendling
e71bd5aead
Waste time fixing something that should have been fixed before.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73236 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 18:02:40 +00:00
Nick Lewycky
93531e4986
Keep callers of a weak function calling it, instead of the non-weak equivalent.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73235 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 17:16:48 +00:00
Arnold Schwaighofer
bbd8c33ee6
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73233 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 16:26:57 +00:00
Nick Lewycky
b3c36c9c9a
Don't forget to match the calling convention when producing a thunk.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73231 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 16:04:00 +00:00
Nick Lewycky
8728d7a3ea
Given two identical weak functions, produce one internal function and two weak
...
thunks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73230 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 15:56:56 +00:00
Duncan Sands
7e0842fb21
Tweak GenLibDeps.pl so it works on solaris.
...
Patch by Edward O'Callaghan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73228 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 14:23:42 +00:00
Nicolas Geoffray
e91208c963
After obtaining the lock, look if the function has been codegen'd by
...
another thread.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73227 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 14:11:08 +00:00
Nick Lewycky
f343b69f47
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73225 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 13:24:41 +00:00
Duncan Sands
45db29c6f1
Add clang support to the nightly test script.
...
Patch by Edward O'Callaghan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73224 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 13:02:52 +00:00