Evan Cheng
6c6518787b
Iterating over SmallPtrSet is not deterministic.
...
llvm-svn: 52339
2008-06-16 18:17:09 +00:00
Chris Lattner
cebf7d79b3
simplify RecursiveResolveTypes and ResolveTypes by pulling the naming out of
...
ResolveTypes into the one place that needs it.
llvm-svn: 52338
2008-06-16 18:11:40 +00:00
Chris Lattner
b2c9317b8d
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.
llvm-svn: 52335
2008-06-16 17:44:14 +00:00
Chris Lattner
ddfa0590ae
Add support for icache invalidation on non-darwin ppc systems.
...
Patch by Gary Benson!
llvm-svn: 52332
2008-06-16 17:04:06 +00:00
Owen Anderson
3c4bb80d78
Re-enable empty block indexing by default, since it doesn't seem to have any
...
impact on code quality or compile time.
llvm-svn: 52329
2008-06-16 16:58:24 +00:00
Matthijs Kooijman
2ba9a750dd
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.
llvm-svn: 52328
2008-06-16 14:13:46 +00:00
Matthijs Kooijman
544c9b2fb0
Make the InsertBefore argument to FindInsertedValue optional, so you can find an inserted value without modifying the code.
...
llvm-svn: 52319
2008-06-16 13:28:31 +00:00
Matthijs Kooijman
238b1e8d69
Pass around Instruction* instead of Instruction& in FindInsertedValue and friends.
...
llvm-svn: 52318
2008-06-16 13:13:08 +00:00
Matthijs Kooijman
bdd5cae51c
Make testcase check for extractvalue instead of extractelement.
...
llvm-svn: 52317
2008-06-16 13:03:44 +00:00
Matthijs Kooijman
dedcf00fcc
80 column fixes.
...
llvm-svn: 52316
2008-06-16 12:57:37 +00:00
Matthijs Kooijman
1dd7d9cdc1
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).
llvm-svn: 52315
2008-06-16 12:48:21 +00:00
Matthijs Kooijman
e01197eaa9
Store the result of multiple identical run lines in a temporary file.
...
llvm-svn: 52314
2008-06-16 12:21:25 +00:00
Matthijs Kooijman
fedd2bd496
Add comment.
...
llvm-svn: 52313
2008-06-16 12:20:05 +00:00
Argyrios Kyrtzidis
65f671fd74
Minor comment fix.
...
llvm-svn: 52312
2008-06-16 10:14:09 +00:00
Matthijs Kooijman
f6b1a51a94
Fix PR numbers, I accidentally switched two digits.
...
llvm-svn: 52311
2008-06-16 09:38:23 +00:00
Duncan Sands
78bdcc813e
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).
llvm-svn: 52310
2008-06-16 08:14:38 +00:00
Evan Cheng
93d91a771c
Fix read after free found by valgrind.
...
llvm-svn: 52309
2008-06-16 07:34:17 +00:00
Evan Cheng
2dfe8c2435
Add option to commuteInstruction() which forces it to create a new (commuted) instruction.
...
llvm-svn: 52308
2008-06-16 07:33:11 +00:00
Owen Anderson
114ce854d1
Make indexing empty basic blocks an option for the moment.
...
llvm-svn: 52306
2008-06-16 07:10:49 +00:00
Chris Lattner
ffb6425556
add a const version of stripPointerCasts
...
llvm-svn: 52305
2008-06-16 06:43:06 +00:00
Chris Lattner
0bc9e4aa8f
simplify some code by using a helper function. This really really
...
wants a 'nocapture' predicate.
llvm-svn: 52304
2008-06-16 06:38:26 +00:00
Chris Lattner
35be1f6c83
move a bunch of predicates up into their own section
...
in this file, no other changes.
llvm-svn: 52303
2008-06-16 06:30:22 +00:00
Chris Lattner
12453dd555
Other parts of this code treat noalias arguments as objects for
...
the purposes of escape analysis.
llvm-svn: 52302
2008-06-16 06:28:01 +00:00
Chris Lattner
e987a3bdd1
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
llvm-svn: 52301
2008-06-16 06:19:11 +00:00
Owen Anderson
1077c28bb1
Assign indices to empty basic blocks. This will be necessary for StrongPHIElimination in the near future.
...
llvm-svn: 52300
2008-06-16 06:18:41 +00:00
Chris Lattner
4e38446b34
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.
llvm-svn: 52299
2008-06-16 06:10:11 +00:00
Chris Lattner
63195a4694
this is unneeded now.
...
llvm-svn: 52298
2008-06-16 04:25:39 +00:00
Chris Lattner
0b945db11c
Switch from generating the int128 typedefs based on targetdata to generating
...
them based on the end-compiler's capabilities. This fixes PR2453
llvm-svn: 52297
2008-06-16 04:25:29 +00:00
Chris Lattner
61de4d6454
resolve PR2453 by adding a run line.
...
llvm-svn: 52296
2008-06-16 04:22:39 +00:00
Chris Lattner
ac4fe3f51c
Fix the crash on SimplifyLibCalls/2005-05-20-sprintf-crash.ll
...
llvm-svn: 52295
2008-06-16 04:10:21 +00:00
Chris Lattner
09554fd076
fix pr2460
...
llvm-svn: 52294
2008-06-16 04:02:40 +00:00
Duncan Sands
2dffe1cc15
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.
llvm-svn: 52293
2008-06-15 20:12:31 +00:00
Duncan Sands
2671518b8b
LegalizeTypes support for INSERT_VECTOR_ELT with
...
a non-constant index.
llvm-svn: 52292
2008-06-15 20:00:14 +00:00
Wojciech Matyjewicz
58f5cc8864
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.
llvm-svn: 52291
2008-06-15 19:07:39 +00:00
Wojciech Matyjewicz
0f03682725
Add a missing semicolon.
...
llvm-svn: 52290
2008-06-15 18:02:47 +00:00
Argyrios Kyrtzidis
7236092c4c
Add an "exe" suffix only if the output file has no suffix at all.
...
llvm-svn: 52289
2008-06-15 15:20:16 +00:00
Argyrios Kyrtzidis
6f81329b15
Fix the sys::Path::getSuffix() implementation.
...
llvm-svn: 52288
2008-06-15 15:15:19 +00:00
Argyrios Kyrtzidis
fb24e9922d
Make sure all produced executable files have "exe" suffix on Windows.
...
With this more general way, -native and -native-cbe options are handled too.
llvm-svn: 52287
2008-06-15 13:48:12 +00:00
Argyrios Kyrtzidis
5528f7cca9
Make sure that the current executable filename has "exe" suffix on Windows.
...
llvm-svn: 52286
2008-06-15 12:07:01 +00:00
Argyrios Kyrtzidis
b42d541919
Append "exe" suffix to executable files.
...
llvm-svn: 52285
2008-06-15 12:01:16 +00:00
Argyrios Kyrtzidis
121cf54264
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.
llvm-svn: 52284
2008-06-15 03:54:39 +00:00
Duncan Sands
fa6e02c4dc
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.
llvm-svn: 52276
2008-06-14 17:48:34 +00:00
Wojciech Matyjewicz
f66a7fe9de
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
llvm-svn: 52275
2008-06-14 16:48:22 +00:00
Andrew Lenharth
327c3e7559
add missing atomic intrinsic from gcc
...
llvm-svn: 52270
2008-06-14 05:48:15 +00:00
Chris Lattner
f9d43c9853
Fix a case where tailcallelim wouldn't set the changed bit when it made a change.
...
llvm-svn: 52267
2008-06-14 00:49:48 +00:00
Evan Cheng
2e99c9cbf8
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.
...
llvm-svn: 52266
2008-06-13 23:58:02 +00:00
Eli Friedman
88cdc65941
Remove unnecessary target lines.
...
llvm-svn: 52261
2008-06-13 22:12:16 +00:00
Eli Friedman
46782c75fe
Remove unnecessary target lines.
...
llvm-svn: 52260
2008-06-13 22:10:32 +00:00
Eli Friedman
11d4c94933
Don't skip over instructions other than loads that might read memory
...
when trying to sink stores.
llvm-svn: 52259
2008-06-13 22:02:12 +00:00
Dan Gohman
7f1fcc4339
Protect ChangeCompareStride from situations in which it is possible
...
for it to generate use-before-def IR, such as in this testcase.
llvm-svn: 52258
2008-06-13 21:43:41 +00:00