Chris Lattner [Mon, 16 Jun 2008 17:04:06 +0000 (17:04 +0000)]
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
Owen Anderson [Mon, 16 Jun 2008 16:58:24 +0000 (16:58 +0000)]
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
Matthijs Kooijman [Mon, 16 Jun 2008 14:13:46 +0000 (14:13 +0000)]
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
Matthijs Kooijman [Mon, 16 Jun 2008 13:28:31 +0000 (13:28 +0000)]
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
Matthijs Kooijman [Mon, 16 Jun 2008 13:13:08 +0000 (13:13 +0000)]
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
Matthijs Kooijman [Mon, 16 Jun 2008 13:03:44 +0000 (13:03 +0000)]
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
Matthijs Kooijman [Mon, 16 Jun 2008 12:57:37 +0000 (12:57 +0000)]
80 column fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52316
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Mon, 16 Jun 2008 12:48:21 +0000 (12:48 +0000)]
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
Matthijs Kooijman [Mon, 16 Jun 2008 12:21:25 +0000 (12:21 +0000)]
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
Matthijs Kooijman [Mon, 16 Jun 2008 12:20:05 +0000 (12:20 +0000)]
Add comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52313
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Mon, 16 Jun 2008 10:14:09 +0000 (10:14 +0000)]
Minor comment fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52312
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Mon, 16 Jun 2008 09:38:23 +0000 (09:38 +0000)]
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
Duncan Sands [Mon, 16 Jun 2008 08:14:38 +0000 (08:14 +0000)]
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
Evan Cheng [Mon, 16 Jun 2008 07:34:17 +0000 (07:34 +0000)]
Fix read after free found by valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52309
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 16 Jun 2008 07:33:11 +0000 (07:33 +0000)]
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
Owen Anderson [Mon, 16 Jun 2008 07:10:49 +0000 (07:10 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 06:43:06 +0000 (06:43 +0000)]
add a const version of stripPointerCasts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2008 06:38:26 +0000 (06:38 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 06:30:22 +0000 (06:30 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 06:28:01 +0000 (06:28 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 06:19:11 +0000 (06:19 +0000)]
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
Owen Anderson [Mon, 16 Jun 2008 06:18:41 +0000 (06:18 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 06:10:11 +0000 (06:10 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 04:25:39 +0000 (04:25 +0000)]
this is unneeded now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52298
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2008 04:25:29 +0000 (04:25 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 04:22:39 +0000 (04:22 +0000)]
resolve PR2453 by adding a run line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2008 04:10:21 +0000 (04:10 +0000)]
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
Chris Lattner [Mon, 16 Jun 2008 04:02:40 +0000 (04:02 +0000)]
fix pr2460
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52294
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 15 Jun 2008 20:12:31 +0000 (20:12 +0000)]
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
Duncan Sands [Sun, 15 Jun 2008 20:00:14 +0000 (20:00 +0000)]
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
Wojciech Matyjewicz [Sun, 15 Jun 2008 19:07:39 +0000 (19:07 +0000)]
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
Wojciech Matyjewicz [Sun, 15 Jun 2008 18:02:47 +0000 (18:02 +0000)]
Add a missing semicolon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52290
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 15 Jun 2008 15:20:16 +0000 (15:20 +0000)]
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
Argyrios Kyrtzidis [Sun, 15 Jun 2008 15:15:19 +0000 (15:15 +0000)]
Fix the sys::Path::getSuffix() implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52288
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 15 Jun 2008 13:48:12 +0000 (13:48 +0000)]
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
Argyrios Kyrtzidis [Sun, 15 Jun 2008 12:07:01 +0000 (12:07 +0000)]
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
Argyrios Kyrtzidis [Sun, 15 Jun 2008 12:01:16 +0000 (12:01 +0000)]
Append "exe" suffix to executable files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52285
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 15 Jun 2008 03:54:39 +0000 (03:54 +0000)]
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
Duncan Sands [Sat, 14 Jun 2008 17:48:34 +0000 (17:48 +0000)]
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
Wojciech Matyjewicz [Sat, 14 Jun 2008 16:48:22 +0000 (16:48 +0000)]
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
Andrew Lenharth [Sat, 14 Jun 2008 05:48:15 +0000 (05:48 +0000)]
add missing atomic intrinsic from gcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52270
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Jun 2008 00:49:48 +0000 (00:49 +0000)]
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
Evan Cheng [Fri, 13 Jun 2008 23:58:02 +0000 (23:58 +0000)]
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
Eli Friedman [Fri, 13 Jun 2008 22:12:16 +0000 (22:12 +0000)]
Remove unnecessary target lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52261
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 13 Jun 2008 22:10:32 +0000 (22:10 +0000)]
Remove unnecessary target lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52260
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 13 Jun 2008 22:02:12 +0000 (22:02 +0000)]
Don't skip over instructions other than loads that might read memory
when trying to sink stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52259
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Jun 2008 21:43:41 +0000 (21:43 +0000)]
Protect ChangeCompareStride from situations in which it is possible
for it to generate use-before-def IR, such as in this testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52258
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 13 Jun 2008 21:17:49 +0000 (21:17 +0000)]
Make sure SimplifyStoreAtEndOfBlock doesn't mess with loops; the
structure checks are incorrect if the blocks aren't distinct.
Fixes PR2435.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52257
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 13 Jun 2008 19:07:40 +0000 (19:07 +0000)]
Disable some DAG combiner optimizations that may be
wrong for volatile loads and stores. In fact this
is almost all of them! There are three types of
problems: (1) it is wrong to change the width of
a volatile memory access. These may be used to
do memory mapped i/o, in which case a load can have
an effect even if the result is not used. Consider
loading an i32 but only using the lower 8 bits. It
is wrong to change this into a load of an i8, because
you are no longer tickling the other three bytes. It
is also unwise to make a load/store wider. For
example, changing an i16 load into an i32 load is
wrong no matter how aligned things are, since the
fact of loading an additional 2 bytes can have
i/o side-effects. (2) it is wrong to change the
number of volatile load/stores: they may be counted
by the hardware. (3) it is wrong to change a volatile
load/store that requires one memory access into one
that requires several. For example on x86-32, you
can store a double in one processor operation, but to
store an i64 requires two (two i32 stores). In a
multi-threaded program you may want to bitcast an i64
to a double and store as a double because that will
occur atomically, and be indivisible to other threads.
So it would be wrong to convert the store-of-double
into a store of an i64, because this will become two
i32 stores - no longer atomic. My policy here is
to say that the number of processor operations for
an illegal operation is undefined. So it is alright
to change a store of an i64 (requires at least two
stores; but could be validly lowered to memcpy for
example) into a store of double (one processor op).
In short, if the new store is legal and has the same
size then I say that the transform is ok. It would
also be possible to say that transforms are always
ok if before they were illegal, whether after they
are illegal or not, but that's more awkward to do
and I doubt it buys us anything much.
However this exposed an interesting thing - on x86-32
a store of i64 is considered legal! That is because
operations are marked legal by default, regardless of
whether the type is legal or not. In some ways this
is clever: before type legalization this means that
operations on illegal types are considered legal;
after type legalization there are no illegal types
so now operations are only legal if they really are.
But I consider this to be too cunning for mere mortals.
Better to do things explicitly by testing AfterLegalize.
So I have changed things so that operations with illegal
types are considered illegal - indeed they can never
map to a machine operation. However this means that
the DAG combiner is more conservative because before
it was "accidentally" performing transforms where the
type was illegal because the operation was nonetheless
marked legal. So in a few such places I added a check
on AfterLegalize, which I suppose was actually just
forgotten before. This causes the DAG combiner to do
slightly more than it used to, which resulted in the X86
backend blowing up because it got a slightly surprising
node it wasn't expecting, so I tweaked it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52254
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Jun 2008 17:55:57 +0000 (17:55 +0000)]
Fix an error in the two-address example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52253
91177308-0d34-0410-b5e6-
96231b3b80d8
Wojciech Matyjewicz [Fri, 13 Jun 2008 17:02:03 +0000 (17:02 +0000)]
Use recently added getTruncateOrZeroExtend method to make the code shorter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52251
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Fri, 13 Jun 2008 16:52:35 +0000 (16:52 +0000)]
XFAIL some tests that became failing due to the extra error reporting recently. PR's are created for these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52250
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 13 Jun 2008 04:38:55 +0000 (04:38 +0000)]
Crash less. The i64 restriction in BinomialCoefficient caused some problems
with code that was expecting different bit widths for different values.
Make getTruncateOrZeroExtend a method on ScalarEvolution, and use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52248
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 12 Jun 2008 21:51:29 +0000 (21:51 +0000)]
fix a minor deviation from the original in my previous commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52247
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 12 Jun 2008 21:37:33 +0000 (21:37 +0000)]
op_iterator-ify some loops, low hanging fruit only, there is more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52246
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jun 2008 21:23:38 +0000 (21:23 +0000)]
Fix some tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52245
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jun 2008 21:15:59 +0000 (21:15 +0000)]
Do not speculatively execute an instruction by hoisting it to its predecessor BB if any of its operands are defined but not used in BB. The transformation will prevent the operand from being sunk into the use block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52244
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 12 Jun 2008 20:55:39 +0000 (20:55 +0000)]
Revert 52223.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52243
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 12 Jun 2008 19:25:32 +0000 (19:25 +0000)]
Switch GVN to use ScopedHashTable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52242
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 12 Jun 2008 17:04:09 +0000 (17:04 +0000)]
Improve description of -emit-llvm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52238
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 12 Jun 2008 13:44:26 +0000 (13:44 +0000)]
Don't try to compile tests for the ev56 alpha subtarget, which hasn't been
supported since r33492.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52237
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 12 Jun 2008 13:12:11 +0000 (13:12 +0000)]
Pass -silence-passes to bugpoint in testcases, this makes two out of three bugpoint testcases work again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52236
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 12 Jun 2008 13:09:43 +0000 (13:09 +0000)]
Let bugpoint display generated messages on stderr only if no interpreter was
found, this ensures that messages like "Found gcc" end up on stdout where they
belong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52235
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 12 Jun 2008 13:02:26 +0000 (13:02 +0000)]
Add -silence-passes option to bugpoint. This option suppresses output generated
when bugpoint is running passes in a child process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52234
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 12 Jun 2008 12:53:35 +0000 (12:53 +0000)]
Fix redirection of stderr in sys::Program::ExecuteAndWait. There was logic
error that caused it to redirect stderr to stdout too often.
This fix is applied identically to the win32 code as well, but that is
untested.
--Thi line, and those below, will be ignored--
M System/Unix/Program.inc
M System/Win32/Program.inc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52233
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 12 Jun 2008 10:47:18 +0000 (10:47 +0000)]
Make I/O redirection handling in sys::Program a bit more consistent. No
functional changes. Win32 code is untested, but should work fine.
In the unix variant, rename RedirectFD to RedirectIO and let that function
handle empty and null paths instead of doing that in the caller 3 times. This
is the same as win32 already does it.
In the win32 variant, use Path::isEmpty() instead of checking the resulting
c_str() manually. This is the same as unix already does it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52230
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 12 Jun 2008 09:01:30 +0000 (09:01 +0000)]
If queried as to whether an operation is legal
for a particular MVT, return false if the type
is illegal rather than barfing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52229
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 12 Jun 2008 08:49:04 +0000 (08:49 +0000)]
Add line continuation character so the avoid dup loop header test actually runs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52228
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 11 Jun 2008 21:38:51 +0000 (21:38 +0000)]
op_iterator-ify some loops, fix 80col violations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52226
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 11 Jun 2008 20:16:42 +0000 (20:16 +0000)]
Properly lower DYNAMIC_STACKALLOC - bracket all black magic with
CALLSEQ_BEGIN & CALLSEQ_END.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52225
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jun 2008 19:18:20 +0000 (19:18 +0000)]
For now, avoid generating FP select instructions in order to speculatively execute integer arithmetic instructions. FP selects are more likely to be expensive (even compared to branch on fcmp). This is not a wonderful solution but I rather err on the side of conservative.
This fixes the heapsort performance regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52224
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jun 2008 19:07:54 +0000 (19:07 +0000)]
Avoid duplicating loop header which leads to unnatural loops (and just seem like general badness to me, likely to cause code explosion).
Patch by Florian Brandner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52223
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 11 Jun 2008 14:58:01 +0000 (14:58 +0000)]
Don't send checkpoints to stderr for the vmcore.ml test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52218
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Wed, 11 Jun 2008 14:05:05 +0000 (14:05 +0000)]
Teach instruction combining about the extractvalue. It can succesfully fold
useless insert-extract chains, similar to how it folds them for vectors.
Add a testcase for this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52217
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 11 Jun 2008 13:53:41 +0000 (13:53 +0000)]
remove bogus comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52216
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 11 Jun 2008 11:45:26 +0000 (11:45 +0000)]
op_iterator-ify dropAllReferences
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52215
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 11 Jun 2008 11:42:12 +0000 (11:42 +0000)]
Sometimes (rarely) nodes held in LegalizeTypes
maps can be deleted. This happens when RAUW
replaces a node N with another equivalent node
E, deleting the first node. Solve this by
adding (N, E) to ReplacedNodes, which is already
used to remap nodes to replacements. This means
that deleted nodes are being allowed in maps,
which can be delicate: the memory may be reused
for a new node which might get confused with the
old deleted node pointer hanging around in the
maps, so detect this and flush out maps if it
occurs (ExpungeNode). The expunging operation
is expensive, however it never occurs during
a llvm-gcc bootstrap or anywhere in the nightly
testsuite. It occurs three times in "make check":
Alpha/illegal-element-type.ll,
PowerPC/illegal-element-type.ll and
X86/mmx-shift.ll. If expunging proves to be too
expensive then there are other more complicated
ways of solving the problem.
In the normal case this patch adds the overhead
of a few more map lookups, which is hopefully
negligable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52214
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 11 Jun 2008 10:46:24 +0000 (10:46 +0000)]
Better test for availability of __gnu_cxx::stdio_filebuf.
If this doesn't work, I'll write a configure test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52213
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Wed, 11 Jun 2008 09:00:12 +0000 (09:00 +0000)]
Clarify a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52212
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 10 Jun 2008 22:03:26 +0000 (22:03 +0000)]
op_iterator-ify loops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52191
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 10 Jun 2008 20:54:01 +0000 (20:54 +0000)]
Small doc fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52190
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 10 Jun 2008 18:01:54 +0000 (18:01 +0000)]
Use %link not %llvmgxx (which includes -c) to do the link.
The test still fails because an expected symbol is not
present, and I don't see why it should be.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52188
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 10 Jun 2008 18:00:45 +0000 (18:00 +0000)]
Suppress ObjC FE warnings, which cause the test to fail.
Warnings are legitimate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52187
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 10 Jun 2008 18:00:09 +0000 (18:00 +0000)]
Add -w to inhibit gcc warnings, which causes the
harness to fail the tests. The warning all appear
legitimate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52186
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 10 Jun 2008 17:57:58 +0000 (17:57 +0000)]
Fix parameter spelling: sse not sse1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52185
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 16:13:38 +0000 (16:13 +0000)]
Ignore stderr for some more tests that expect warnings there.
This fixes 2 testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52184
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 16:10:32 +0000 (16:10 +0000)]
Fix some more quoting issues in RUN lines, this time regarding unintended
variable expansions involving the $ character.
This fixes 4 tests that were not running properly before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52183
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 16:04:47 +0000 (16:04 +0000)]
Fix some escaping and quoting in RUN lines, mainly involving { and <. In two
cases quoting of <{ didn't work out, so I changed the grep to check for }>
instead.
This fixes 7 testcases that were not properly running before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52182
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 15:11:36 +0000 (15:11 +0000)]
Remove double pipes in RUN commandlines.
This fixes 5 testcases that were not being run properly before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52180
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 15:07:07 +0000 (15:07 +0000)]
Remove trailing whitespace after line continuations in test cases to them work.
This fixes two test cases that were not being run properly before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52179
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 15:04:14 +0000 (15:04 +0000)]
Let some more tests ignore expected output on stderr.
Also, use > %t instead of -o %t for output in one test since that also works
when %t already exists.
This fixes 6 testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52178
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 14:53:49 +0000 (14:53 +0000)]
Remove some debug output from tblgen. This fixes a test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52177
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 14:37:44 +0000 (14:37 +0000)]
Fix some llvm-gcc warnings in testcases, mostly by adding includes or adding
declarations. These are the fixes that I was pretty confident about, there are
still a lot of other llvm-gcc warnings of which I'm not sure if they can be
safely ignored or fixed, without breaking the test case.
This fixes 11 testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52176
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 12:57:32 +0000 (12:57 +0000)]
For all RUN lines starting with "not", redirect stderr to /dev/null so tests
don't fail when (expected) error output is produced. This fixes 17 tests.
While I was there, I also made all RUN lines of the form "not llvm-as..." a bit
more consistent, they now all redirect stderr and stdout to /dev/null and use
input redirect to read their input.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52174
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 12:39:15 +0000 (12:39 +0000)]
Suppress the (stderr) output of -aa-eval, this fixes 5 tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52173
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 10 Jun 2008 12:28:43 +0000 (12:28 +0000)]
Change llvm.exp so it no longer ignores some errors when executing dejagnu
tests. This breaks 80 tests in the tree.
The interesting part here is that this no longer ignores syntax errors
in RUN command lines. Some tests have not been working all the time because of
this.
The tricky part is that it now also views any stderr output as an error. This
can be suppressed in tcl 8.5, but let's not add this dependency. Instead, all
testcases should be changed to redirect stderr if they expect stderr output.
This holds in particular for lines like:
; RUN: not llvm-as < %s
where an error is expected (but I think I can solve this by modifying the not
script). Also, compilations resulting in warnings will now also fail (so
the warnings should be fixed, disabled or redirected...).
I'll continue with fixing the testcases that are broken now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52172
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 10 Jun 2008 01:52:17 +0000 (01:52 +0000)]
adjust calls to ConstantFP::get to new API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52165
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 10 Jun 2008 00:36:41 +0000 (00:36 +0000)]
Convert several tests to use temporary files instead of redundantly
executing the test commands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52163
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jun 2008 22:36:45 +0000 (22:36 +0000)]
Fix two more not-grep tests that were missing llvm-dis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52159
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jun 2008 22:05:52 +0000 (22:05 +0000)]
Teach isGAPlusOffset to respect a GlobalAddressSDNode's offset
value, which is something that apparently isn't used much.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52158
91177308-0d34-0410-b5e6-
96231b3b80d8