Chris Lattner
849dcd928a
Apply a patch from Nathan Keynes, which speeds up llvm-link on
...
the testcases in PR1860 from taking more than 1 hour (when I killed it)
to taking 1s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52347 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 19:48:08 +00:00
Owen Anderson
31ec841be1
Remove special case handling of empty MBBs now that we assign indices to them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52345 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 19:32:40 +00:00
Chris Lattner
f6f4f7a149
handle vectors. Any integers that got here would necessarily be different already.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52341 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 18:27:53 +00:00
Chris Lattner
bc1c82a0f7
Simplify ResolveTypes by pulling the null case out into the one
...
client that cares and simplifying its control flow.
Remove the DestST argument to ResolveTypes and RecursiveResolveTypes*
which are dead now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 18:19:05 +00:00
Evan Cheng
69d5053f9c
Iterating over SmallPtrSet is not deterministic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52339 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 18:17:09 +00:00
Chris Lattner
371ca83d8b
simplify RecursiveResolveTypes and ResolveTypes by pulling the naming out of
...
ResolveTypes into the one place that needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52338 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 18:11:40 +00:00
Chris Lattner
e846db6675
Add a new flag that disables symbol lookup with dlsym when set. This allows
...
a JIT client to completely control symbol lookup with the LazyFunctionCreator
interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52335 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 17:44:14 +00:00
Chris Lattner
16228c08b4
Add support for icache invalidation on non-darwin ppc systems.
...
Patch by Gary Benson!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52332 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 17:04:06 +00:00
Owen Anderson
1fbb4545d4
Re-enable empty block indexing by default, since it doesn't seem to have any
...
impact on code quality or compile time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52329 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 16:58:24 +00:00
Matthijs Kooijman
0a9aaf46be
Make BuildSubAggregate use FindInsertedElement again to prevent it from
...
inserting extractvalues. In particular, this prevents the insertion of
extractvalues that can't be folded away later. Also add an example of when this
stuff is needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52328 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 14:13:46 +00:00
Matthijs Kooijman
9772891219
Make the InsertBefore argument to FindInsertedValue optional, so you can find an inserted value without modifying the code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52319 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 13:28:31 +00:00
Matthijs Kooijman
0a7413dad8
Pass around Instruction* instead of Instruction& in FindInsertedValue and friends.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52318 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 13:13:08 +00:00
Matthijs Kooijman
d47e6aeb93
Make testcase check for extractvalue instead of extractelement.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52317 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 13:03:44 +00:00
Matthijs Kooijman
710eb236e6
80 column fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52316 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 12:57:37 +00:00
Matthijs Kooijman
b23d5adbc8
Move FindScalarValue from InstructionCombining.cpp to ValueTracking.cpp. While
...
I'm at it, rename it to FindInsertedValue.
The only functional change is that newly created instructions are no longer
added to instcombine's worklist, but that is not really necessary anyway (and
I'll commit some improvements next that will completely remove the need).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52315 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 12:48:21 +00:00
Matthijs Kooijman
cdbada613e
Store the result of multiple identical run lines in a temporary file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52314 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 12:21:25 +00:00
Matthijs Kooijman
069f42a058
Add comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52313 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 12:20:05 +00:00
Argyrios Kyrtzidis
4bd3225088
Minor comment fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52312 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 10:14:09 +00:00
Matthijs Kooijman
d38a89287d
Fix PR numbers, I accidentally switched two digits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52311 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 09:38:23 +00:00
Duncan Sands
ad205a7687
Allow these transforms for types like i256 while
...
still excluding types like i1 (not byte sized)
and i120 (loading an i120 requires loading an i64,
an i32, an i16 and an i8, which is expensive).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52310 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 08:14:38 +00:00
Evan Cheng
7a15391c8d
Fix read after free found by valgrind.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52309 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 07:34:17 +00:00
Evan Cheng
58dcb0e0cd
Add option to commuteInstruction() which forces it to create a new (commuted) instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52308 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 07:33:11 +00:00
Owen Anderson
3557801289
Make indexing empty basic blocks an option for the moment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52306 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 07:10:49 +00:00
Chris Lattner
0ad4d9be03
add a const version of stripPointerCasts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52305 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 06:43:06 +00:00
Chris Lattner
25df20f169
simplify some code by using a helper function. This really really
...
wants a 'nocapture' predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52304 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 06:38:26 +00:00
Chris Lattner
defa1c8034
move a bunch of predicates up into their own section
...
in this file, no other changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 06:30:22 +00:00
Chris Lattner
e7275794d3
Other parts of this code treat noalias arguments as objects for
...
the purposes of escape analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52302 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 06:28:01 +00:00
Chris Lattner
845f0d2f0f
If we are checking to see if the result of a call aliases a
...
pointer derived from a local allocation, if the local allocation
never escapes, the pointers can't alias. This implements PR2436
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52301 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 06:19:11 +00:00
Owen Anderson
8892b6f307
Assign indices to empty basic blocks. This will be necessary for StrongPHIElimination in the near future.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52300 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 06:18:41 +00:00
Chris Lattner
a413960a48
Refactor basicaa's main alias function somethin' fierce.
...
This fixes several minor bugs (such as returning noalias
for comparisons between external weak functions an null) but
is mostly a cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52299 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 06:10:11 +00:00
Chris Lattner
5db5bf425d
this is unneeded now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52298 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 04:25:39 +00:00
Chris Lattner
9e4ff94ff7
Switch from generating the int128 typedefs based on targetdata to generating
...
them based on the end-compiler's capabilities. This fixes PR2453
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52297 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 04:25:29 +00:00
Chris Lattner
5465cc59f0
resolve PR2453 by adding a run line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52296 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 04:22:39 +00:00
Chris Lattner
077707ccc0
Fix the crash on SimplifyLibCalls/2005-05-20-sprintf-crash.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52295 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 04:10:21 +00:00
Chris Lattner
6520aa0f5e
fix pr2460
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52294 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 04:02:40 +00:00
Duncan Sands
ec87aa87fe
The transforms in visitEXTRACT_VECTOR_ELT are
...
not valid if the load is volatile. Hopefully
all wrong DAG combiner transforms of volatile
loads and stores have now been caught.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52293 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 20:12:31 +00:00
Duncan Sands
7d0d846064
LegalizeTypes support for INSERT_VECTOR_ELT with
...
a non-constant index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52292 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 20:00:14 +00:00
Wojciech Matyjewicz
8a08769bad
Fix PR2434. When scanning for exising binary operator to reuse don't
...
take into account the instrucion pointed by InsertPt. Thanks to it,
returning the new value of InsertPt to the InsertBinop() caller can be
avoided. The bug was, actually, in visitAddRecExpr() method which wasn't
correctly handling changes of InsertPt. There shouldn't be any
performance regression, as -gvn pass (run after -indvars) removes any
redundant binops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52291 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 19:07:39 +00:00
Wojciech Matyjewicz
93c534623c
Add a missing semicolon.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52290 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 18:02:47 +00:00
Argyrios Kyrtzidis
48cca1fd46
Add an "exe" suffix only if the output file has no suffix at all.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52289 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 15:20:16 +00:00
Argyrios Kyrtzidis
fc19988bcb
Fix the sys::Path::getSuffix() implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52288 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 15:15:19 +00:00
Argyrios Kyrtzidis
1662183a83
Make sure all produced executable files have "exe" suffix on Windows.
...
With this more general way, -native and -native-cbe options are handled too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52287 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 13:48:12 +00:00
Argyrios Kyrtzidis
e2bc1cb711
Make sure that the current executable filename has "exe" suffix on Windows.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52286 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 12:07:01 +00:00
Argyrios Kyrtzidis
5b90a7296c
Append "exe" suffix to executable files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52285 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 12:01:16 +00:00
Argyrios Kyrtzidis
f1844d2f58
Fix the environment block that is passed to the CreateProcess function.
...
This bug made llvm-ld unable to function with "-native" option, since the process that was used to call 'gcc' was crashing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52284 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15 03:54:39 +00:00
Duncan Sands
184a876ee6
Remove a redundant AfterLegalize check. Turn
...
on some code when !AfterLegalize - but since
this whole code section is turned off by an
"if (0)" it's not really turning anything on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52276 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-14 17:48:34 +00:00
Wojciech Matyjewicz
5d2bc857ec
Change 'while' loop to 'do' loop.
...
Add a safety measure. It isn't safe to assume in ScalarEvolutionExpander that
all loops are in canonical form (but it should be safe for loops that have
AddRecs).
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52275 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-14 16:48:22 +00:00
Andrew Lenharth
507a58ac9b
add missing atomic intrinsic from gcc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52270 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-14 05:48:15 +00:00
Chris Lattner
c5dc660ea0
Fix a case where tailcallelim wouldn't set the changed bit when it made a change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52267 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-14 00:49:48 +00:00
Evan Cheng
87bb991aa8
Teach the spiller to commute instructions in order to fold a reload. This hits 410 times on 444.namd and 122 times on 252.eon.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52266 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-13 23:58:02 +00:00