Duncan Sands
37c1f5267b
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
51c75c0c95
Fix read after free found by valgrind.
...
llvm-svn: 52309
2008-06-16 07:34:17 +00:00
Evan Cheng
03553bb59a
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
e546c55e59
Make indexing empty basic blocks an option for the moment.
...
llvm-svn: 52306
2008-06-16 07:10:49 +00:00
Chris Lattner
03bea79b23
add a const version of stripPointerCasts
...
llvm-svn: 52305
2008-06-16 06:43:06 +00:00
Chris Lattner
fb46605e47
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
2d33297d00
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
fa48258a61
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
b35d9b5e07
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
d813091cde
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
98ad816f58
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
f5c1170702
this is unneeded now.
...
llvm-svn: 52298
2008-06-16 04:25:39 +00:00
Chris Lattner
91f4a0ff58
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
0701828be3
resolve PR2453 by adding a run line.
...
llvm-svn: 52296
2008-06-16 04:22:39 +00:00
Chris Lattner
1c9922703f
Fix the crash on SimplifyLibCalls/2005-05-20-sprintf-crash.ll
...
llvm-svn: 52295
2008-06-16 04:10:21 +00:00
Chris Lattner
7d6aac85c4
fix pr2460
...
llvm-svn: 52294
2008-06-16 04:02:40 +00:00
Duncan Sands
075293ff46
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
0bc21c0551
LegalizeTypes support for INSERT_VECTOR_ELT with
...
a non-constant index.
llvm-svn: 52292
2008-06-15 20:00:14 +00:00
Wojciech Matyjewicz
ae9753b29d
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
c6a6618e6a
Add a missing semicolon.
...
llvm-svn: 52290
2008-06-15 18:02:47 +00:00
Argyrios Kyrtzidis
aea2be2610
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
2cc0abf260
Fix the sys::Path::getSuffix() implementation.
...
llvm-svn: 52288
2008-06-15 15:15:19 +00:00
Argyrios Kyrtzidis
cb16b095c5
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
bddf2fd699
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
5037fe21aa
Append "exe" suffix to executable files.
...
llvm-svn: 52285
2008-06-15 12:01:16 +00:00
Argyrios Kyrtzidis
24f99985b8
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
b1bfff53fe
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
8bf66ee13b
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
f88d50bfcc
add missing atomic intrinsic from gcc
...
llvm-svn: 52270
2008-06-14 05:48:15 +00:00
Chris Lattner
a88cd4ea2a
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
fb79059b85
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
2c580f0323
Remove unnecessary target lines.
...
llvm-svn: 52261
2008-06-13 22:12:16 +00:00
Eli Friedman
795749845d
Remove unnecessary target lines.
...
llvm-svn: 52260
2008-06-13 22:10:32 +00:00
Eli Friedman
5de0a77a9b
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
9ad8c54aab
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
Eli Friedman
9833a1b407
Make sure SimplifyStoreAtEndOfBlock doesn't mess with loops; the
...
structure checks are incorrect if the blocks aren't distinct.
Fixes PR2435.
llvm-svn: 52257
2008-06-13 21:17:49 +00:00
Duncan Sands
8651e9c584
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.
llvm-svn: 52254
2008-06-13 19:07:40 +00:00
Dan Gohman
01cd2d9263
Fix an error in the two-address example.
...
llvm-svn: 52253
2008-06-13 17:55:57 +00:00
Wojciech Matyjewicz
25a7f5de92
Use recently added getTruncateOrZeroExtend method to make the code shorter.
...
llvm-svn: 52251
2008-06-13 17:02:03 +00:00
Matthijs Kooijman
c5d12eb318
XFAIL some tests that became failing due to the extra error reporting recently. PR's are created for these.
...
llvm-svn: 52250
2008-06-13 16:52:35 +00:00
Nick Lewycky
ed169d531d
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.
llvm-svn: 52248
2008-06-13 04:38:55 +00:00
Gabor Greif
431e9560b7
fix a minor deviation from the original in my previous commit
...
llvm-svn: 52247
2008-06-12 21:51:29 +00:00
Gabor Greif
f6d8e77027
op_iterator-ify some loops, low hanging fruit only, there is more
...
llvm-svn: 52246
2008-06-12 21:37:33 +00:00
Evan Cheng
2d788ce3fb
Fix some tests.
...
llvm-svn: 52245
2008-06-12 21:23:38 +00:00
Evan Cheng
89553cc42e
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.
...
llvm-svn: 52244
2008-06-12 21:15:59 +00:00
Evan Cheng
70fe16353a
Revert 52223.
...
llvm-svn: 52243
2008-06-12 20:55:39 +00:00
Owen Anderson
accdca1b03
Switch GVN to use ScopedHashTable.
...
llvm-svn: 52242
2008-06-12 19:25:32 +00:00
Dale Johannesen
b50a845d4e
Improve description of -emit-llvm.
...
llvm-svn: 52238
2008-06-12 17:04:09 +00:00
Matthijs Kooijman
bf29ca681c
Don't try to compile tests for the ev56 alpha subtarget, which hasn't been
...
supported since r33492.
llvm-svn: 52237
2008-06-12 13:44:26 +00:00
Matthijs Kooijman
48e8f0e50f
Pass -silence-passes to bugpoint in testcases, this makes two out of three bugpoint testcases work again.
...
llvm-svn: 52236
2008-06-12 13:12:11 +00:00
Matthijs Kooijman
3bb1276ed2
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.
llvm-svn: 52235
2008-06-12 13:09:43 +00:00
Matthijs Kooijman
4ba5df8a68
Add -silence-passes option to bugpoint. This option suppresses output generated
...
when bugpoint is running passes in a child process.
llvm-svn: 52234
2008-06-12 13:02:26 +00:00
Matthijs Kooijman
1cc695efd7
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
llvm-svn: 52233
2008-06-12 12:53:35 +00:00
Matthijs Kooijman
616e484be4
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.
llvm-svn: 52230
2008-06-12 10:47:18 +00:00
Duncan Sands
39a5391079
If queried as to whether an operation is legal
...
for a particular MVT, return false if the type
is illegal rather than barfing.
llvm-svn: 52229
2008-06-12 09:01:30 +00:00
Matthijs Kooijman
653be276b5
Add line continuation character so the avoid dup loop header test actually runs.
...
llvm-svn: 52228
2008-06-12 08:49:04 +00:00
Gabor Greif
0babc61631
op_iterator-ify some loops, fix 80col violations
...
llvm-svn: 52226
2008-06-11 21:38:51 +00:00
Anton Korobeynikov
729c4e95e2
Properly lower DYNAMIC_STACKALLOC - bracket all black magic with
...
CALLSEQ_BEGIN & CALLSEQ_END.
llvm-svn: 52225
2008-06-11 20:16:42 +00:00
Evan Cheng
933c743042
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.
llvm-svn: 52224
2008-06-11 19:18:20 +00:00
Evan Cheng
f3c2902ead
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.
llvm-svn: 52223
2008-06-11 19:07:54 +00:00
Gordon Henriksen
a612cac935
Don't send checkpoints to stderr for the vmcore.ml test.
...
llvm-svn: 52218
2008-06-11 14:58:01 +00:00
Matthijs Kooijman
b2fc72bfbf
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.
llvm-svn: 52217
2008-06-11 14:05:05 +00:00
Gabor Greif
6fd3ceab84
remove bogus comment
...
llvm-svn: 52216
2008-06-11 13:53:41 +00:00
Gabor Greif
a34fe27548
op_iterator-ify dropAllReferences
...
llvm-svn: 52215
2008-06-11 11:45:26 +00:00
Duncan Sands
bf17080ec2
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.
llvm-svn: 52214
2008-06-11 11:42:12 +00:00
Gordon Henriksen
a2fef0c117
Better test for availability of __gnu_cxx::stdio_filebuf.
...
If this doesn't work, I'll write a configure test.
llvm-svn: 52213
2008-06-11 10:46:24 +00:00
Matthijs Kooijman
3453c7bcb5
Clarify a comment.
...
llvm-svn: 52212
2008-06-11 09:00:12 +00:00
Gabor Greif
945f2f7fed
op_iterator-ify loops
...
llvm-svn: 52191
2008-06-10 22:03:26 +00:00
Duncan Sands
a8bccd3e08
Small doc fix.
...
llvm-svn: 52190
2008-06-10 20:54:01 +00:00
Dale Johannesen
1b09297a92
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.
llvm-svn: 52188
2008-06-10 18:01:54 +00:00
Dale Johannesen
5867e1576a
Suppress ObjC FE warnings, which cause the test to fail.
...
Warnings are legitimate.
llvm-svn: 52187
2008-06-10 18:00:45 +00:00
Dale Johannesen
3978cc5f3b
Add -w to inhibit gcc warnings, which causes the
...
harness to fail the tests. The warning all appear
legitimate.
llvm-svn: 52186
2008-06-10 18:00:09 +00:00
Dale Johannesen
01b7cae58d
Fix parameter spelling: sse not sse1
...
llvm-svn: 52185
2008-06-10 17:57:58 +00:00
Matthijs Kooijman
6c0890a169
Ignore stderr for some more tests that expect warnings there.
...
This fixes 2 testcases.
llvm-svn: 52184
2008-06-10 16:13:38 +00:00
Matthijs Kooijman
07f4eecd2a
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.
llvm-svn: 52183
2008-06-10 16:10:32 +00:00
Matthijs Kooijman
a2f743eaff
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.
llvm-svn: 52182
2008-06-10 16:04:47 +00:00
Matthijs Kooijman
400c49c781
Remove double pipes in RUN commandlines.
...
This fixes 5 testcases that were not being run properly before.
llvm-svn: 52180
2008-06-10 15:11:36 +00:00
Matthijs Kooijman
6436685110
Remove trailing whitespace after line continuations in test cases to them work.
...
This fixes two test cases that were not being run properly before.
llvm-svn: 52179
2008-06-10 15:07:07 +00:00
Matthijs Kooijman
d1057f49b4
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.
llvm-svn: 52178
2008-06-10 15:04:14 +00:00
Matthijs Kooijman
d4f2f2e86f
Remove some debug output from tblgen. This fixes a test.
...
llvm-svn: 52177
2008-06-10 14:53:49 +00:00
Matthijs Kooijman
c62a5aaa1d
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.
llvm-svn: 52176
2008-06-10 14:37:44 +00:00
Matthijs Kooijman
30a07a5504
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.
llvm-svn: 52174
2008-06-10 12:57:32 +00:00
Matthijs Kooijman
d66e18aaf6
Suppress the (stderr) output of -aa-eval, this fixes 5 tests.
...
llvm-svn: 52173
2008-06-10 12:39:15 +00:00
Matthijs Kooijman
0747a60377
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.
llvm-svn: 52172
2008-06-10 12:28:43 +00:00
Gabor Greif
8030749993
adjust calls to ConstantFP::get to new API
...
llvm-svn: 52165
2008-06-10 01:52:17 +00:00
Dan Gohman
1b095b443c
Convert several tests to use temporary files instead of redundantly
...
executing the test commands.
llvm-svn: 52163
2008-06-10 00:36:41 +00:00
Dan Gohman
632a55e2cc
Fix two more not-grep tests that were missing llvm-dis.
...
llvm-svn: 52159
2008-06-09 22:36:45 +00:00
Dan Gohman
e38cc01244
Teach isGAPlusOffset to respect a GlobalAddressSDNode's offset
...
value, which is something that apparently isn't used much.
llvm-svn: 52158
2008-06-09 22:05:52 +00:00
Dan Gohman
27ae953278
Re-apply 52002, allowing the verifier to accept non-MRV struct return
...
types on functions, with adjustments so that it accepts both
new-style aggregate returns and old-style MRV returns, including those
with only a single member.
llvm-svn: 52157
2008-06-09 21:26:13 +00:00
Dan Gohman
6001b91d8e
CodeGen support for aggregate-value function arguments.
...
llvm-svn: 52156
2008-06-09 21:19:23 +00:00
Duncan Sands
7192a54772
Update the build instructions.
...
llvm-svn: 52153
2008-06-09 20:24:05 +00:00
Duncan Sands
67d0f332d5
Various tweaks related to apint codegen. No functionality
...
change for non-funky-sized integers.
llvm-svn: 52151
2008-06-09 15:48:25 +00:00
Dan Gohman
d485e4eb5c
Handle empty aggregate values.
...
llvm-svn: 52150
2008-06-09 15:21:47 +00:00
Dan Gohman
3ab46f1383
AsmParser support for immediate constant aggregate values.
...
llvm-svn: 52149
2008-06-09 14:45:02 +00:00
Dan Gohman
6e384fc28e
CPPBackend support for extractvalue and insertvalue.
...
llvm-svn: 52147
2008-06-09 14:12:10 +00:00
Dan Gohman
7be3fc7c97
Abort on an unrecognized opcode.
...
llvm-svn: 52146
2008-06-09 14:09:13 +00:00
Dan Gohman
62f63f4320
Update the CPP backend for the ConstantFP::get API change.
...
llvm-svn: 52144
2008-06-09 14:08:11 +00:00
Duncan Sands
93b6609ae2
Remove some DAG combiner assumptions about sizes
...
of integer types. Fix the isMask APInt method to
actually work (hopefully) rather than crashing
because it adds apints of different bitwidths.
It looks like isShiftedMask is also broken, but
I'm leaving that one to the APInt people (it is
not used anywhere).
llvm-svn: 52142
2008-06-09 11:32:28 +00:00
Duncan Sands
d0cd426131
Test that prune-eh doesn't make deductions based
...
on bodies of functions with weak linkage.
llvm-svn: 52141
2008-06-09 11:28:41 +00:00
Rafael Espindola
29479df2ac
add support for PIC on linux x86-64
...
llvm-svn: 52139
2008-06-09 09:52:31 +00:00
Chris Lattner
9c9f531a47
lower calls to abs to inline code, PR2337
...
llvm-svn: 52138
2008-06-09 08:26:51 +00:00
Chris Lattner
dbd595f22d
Fix PR2411, where ip constant prop would propagate the
...
result of a weak function.
llvm-svn: 52137
2008-06-09 07:58:07 +00:00
Bill Wendling
54a6cbf12a
Small formatting changes.
...
llvm-svn: 52136
2008-06-09 07:51:45 +00:00
Chris Lattner
77e8ac4d03
use 'continue' to make the function linker simpler. When linking a strong
...
function into a weak function, zap the weak function body so that the
strong one overrides it. This fixes PR2410
llvm-svn: 52135
2008-06-09 07:47:34 +00:00
Chris Lattner
228a5f1867
minor changes to short circuit the 'no linkage' case earlier for
...
function bodies. We now don't try to unify types or handling type
mismatches if when linking an internal foo to an external foo.
llvm-svn: 52134
2008-06-09 07:36:11 +00:00
Chris Lattner
ec7441b365
simplify function visibility handling.
...
llvm-svn: 52133
2008-06-09 07:25:28 +00:00
Tanya Lattner
d18ce727e1
Create dirs as needed.
...
llvm-svn: 52131
2008-06-09 07:14:31 +00:00
Gabor Greif
7f39fb522b
removed two implicitly closed </p> tags to get it validate
...
llvm-svn: 52123
2008-06-09 06:06:18 +00:00
Tanya Lattner
610e89dfc5
Update with new release.
...
llvm-svn: 52121
2008-06-09 06:02:09 +00:00
Dan Gohman
e30c937df3
Add a note in the API Changes section about the ConstantFP::get change.
...
llvm-svn: 52119
2008-06-09 04:36:34 +00:00
Anton Korobeynikov
286175d545
Use proper icon :)
...
llvm-svn: 52118
2008-06-09 04:21:50 +00:00
Anton Korobeynikov
3cd6223490
Fix few validations errors
...
llvm-svn: 52117
2008-06-09 04:20:10 +00:00
Anton Korobeynikov
2a67ecb664
Add footer
...
llvm-svn: 52116
2008-06-09 04:17:51 +00:00
Anton Korobeynikov
4167db94bf
Remove obsolete CompilerDriver.html and provie a new one, based on autogenerated file form
...
LLVMC-Reference.rst
llvm-svn: 52115
2008-06-09 04:15:49 +00:00
Chris Lattner
5baa413833
linkify, this requires pulling CodeGenerator.html into 2.3.
...
llvm-svn: 52114
2008-06-09 04:00:08 +00:00
Chris Lattner
f54043b3d7
Add a simple, but efficient, generic scoped hash table
...
llvm-svn: 52112
2008-06-09 00:42:10 +00:00
Chris Lattner
c57ba6c14b
grammaro
...
llvm-svn: 52111
2008-06-08 23:40:40 +00:00
Chris Lattner
54d1210f7a
final edits from me, simplify the ia64 section.
...
llvm-svn: 52110
2008-06-08 23:12:47 +00:00
Chris Lattner
ed716055f6
more edits
...
llvm-svn: 52109
2008-06-08 23:06:47 +00:00
Dan Gohman
721b3721be
Add notes about two known X86-64 limitations.
...
llvm-svn: 52108
2008-06-08 23:05:11 +00:00
Chris Lattner
b7bc2aa3ed
several edits
...
llvm-svn: 52107
2008-06-08 22:59:35 +00:00
Dan Gohman
aa4a946a0c
Add some links to doxygen documentation.
...
llvm-svn: 52106
2008-06-08 22:57:59 +00:00
Dan Gohman
8709a80646
Describe MachineMemOperands.
...
llvm-svn: 52105
2008-06-08 22:49:27 +00:00
Dan Gohman
e70672453a
Fix a grammero.
...
llvm-svn: 52104
2008-06-08 22:44:43 +00:00
Gordon Henriksen
f78a57bb09
Revert a bad edit from r52095.
...
llvm-svn: 52103
2008-06-08 22:05:11 +00:00
Chris Lattner
c75fd52044
add vmkit and rewrite clang section
...
llvm-svn: 52102
2008-06-08 21:58:17 +00:00
Chris Lattner
625a3d8301
start edits.
...
llvm-svn: 52100
2008-06-08 21:34:41 +00:00
Chris Lattner
b076b00fdf
add more notes.
...
llvm-svn: 52099
2008-06-08 21:19:07 +00:00
Duncan Sands
11dd424539
Remove comparison methods for MVT. The main cause
...
of apint codegen failure is the DAG combiner doing
the wrong thing because it was comparing MVT's using
< rather than comparing the number of bits. Removing
the < method makes this mistake impossible to commit.
Instead, add helper methods for comparing bits and use
them.
llvm-svn: 52098
2008-06-08 20:54:56 +00:00
Chris Lattner
b4866ef30c
Limit the icmp+phi merging optimization to the cases where it is profitable:
...
don't make i1 phis when it won't be possible to eliminate them.
llvm-svn: 52097
2008-06-08 20:52:11 +00:00
Chris Lattner
94fd4474f4
add some html escapes
...
llvm-svn: 52096
2008-06-08 20:25:30 +00:00
Duncan Sands
5644846da3
Using llc always rather than sometimes using LLC.
...
Try to improve language in various places. Use
X86 always rather than sometimes using x86. Add
some minor Ada info.
llvm-svn: 52095
2008-06-08 20:18:35 +00:00
Duncan Sands
0bc1526b6d
Fix spelling.
...
llvm-svn: 52094
2008-06-08 19:38:43 +00:00
Anton Korobeynikov
b4b2f0f741
Remove invalid test
...
llvm-svn: 52093
2008-06-08 16:59:10 +00:00
Anton Korobeynikov
486c7d3fa5
Add win64
...
llvm-svn: 52091
2008-06-08 10:24:13 +00:00
Anton Korobeynikov
f7c5a6e805
This was fixed
...
llvm-svn: 52090
2008-06-08 10:23:46 +00:00
Chris Lattner
7795ea929a
add some notes.
...
llvm-svn: 52087
2008-06-08 02:45:07 +00:00
Bruno Cardoso Lopes
041604ba9f
Added FP instruction formats.
...
llvm-svn: 52086
2008-06-08 01:39:36 +00:00
Bill Wendling
b7272db9f6
Temporarily reverting r52056. It's causing PPC to fail to bootstrap.
...
llvm-svn: 52085
2008-06-08 01:36:24 +00:00
Bruno Cardoso Lopes
f09c372191
Added support for FP Registers
...
llvm-svn: 52079
2008-06-07 21:32:41 +00:00
Chris Lattner
4595a72c79
Update VC project files, patch by Cédric Venet!
...
llvm-svn: 52077
2008-06-07 19:33:54 +00:00
Evan Cheng
89200c9177
Speculatively execute a block when the the block is the then part of a triangle shape and it contains a single, side effect free, cheap instruction. The branch is eliminated by adding a select instruction. i.e.
...
Turn
BB:
%t1 = icmp
br i1 %t1, label %BB1, label %BB2
BB1:
%t3 = add %t2, c
br label BB2
BB2:
=>
BB:
%t1 = icmp
%t4 = add %t2, c
%t3 = select i1 %t1, %t2, %t3
llvm-svn: 52073
2008-06-07 08:52:29 +00:00
Evan Cheng
003b4b0cd2
Fix run line.
...
llvm-svn: 52072
2008-06-07 08:40:16 +00:00
Evan Cheng
1a0835017a
Revert r52046. It broke cbe on x86 / Mac OS X.
...
llvm-svn: 52071
2008-06-07 07:50:29 +00:00
Dan Gohman
f6743d70ab
CodeGen support for insertvalue and extractvalue, and for loads and
...
stores of aggregate values.
llvm-svn: 52069
2008-06-07 02:02:36 +00:00
Owen Anderson
0bd08cf64c
Connect successors before creating the DAG node for the branch. This has
...
no visible functionality change, but enables a future patch where node creation
will update the CFG if it decides to create an unconditional rather than a conditional branch.
llvm-svn: 52067
2008-06-07 00:00:23 +00:00
Gabor Greif
cbcc495c1b
get rid of ExtractValueInst::init's Value argument, it is already passed to the UnaryInstruction ctor
...
llvm-svn: 52064
2008-06-06 21:06:32 +00:00
Evan Cheng
0b8f2c53a2
Typo.
...
llvm-svn: 52062
2008-06-06 21:00:10 +00:00
Gabor Greif
21ba184b27
make ExtractValueInst derived from UnaryInstruction
...
llvm-svn: 52061
2008-06-06 20:28:12 +00:00
Evan Cheng
c324be32c4
Enable stack coloring by default.
...
llvm-svn: 52057
2008-06-06 19:52:44 +00:00
Evan Cheng
9bf9110d93
PPC preferred loop alignment is 16.
...
llvm-svn: 52056
2008-06-06 19:50:46 +00:00
Devang Patel
8549e4ca07
LoopSimplify preserves AA.
...
llvm-svn: 52053
2008-06-06 17:50:58 +00:00
Devang Patel
656a917ad9
Print debug message only if there are dead passes.
...
llvm-svn: 52052
2008-06-06 17:50:36 +00:00
Owen Anderson
f7647e432c
Include loop deletion and the ADCE rewrite in the release notes.
...
llvm-svn: 52048
2008-06-06 16:23:15 +00:00
Anton Korobeynikov
089018fb05
Testcase for PR2418
...
llvm-svn: 52047
2008-06-06 16:08:56 +00:00
Anton Korobeynikov
f69bc3df9b
Handle assembler identifiers specially in CBE. This fixes PR2418.
...
llvm-svn: 52046
2008-06-06 16:08:26 +00:00
Duncan Sands
f1123e58fc
Tighten up the abstraction slightly.
...
llvm-svn: 52045
2008-06-06 12:49:32 +00:00
Duncan Sands
13237ac3b9
Wrap MVT::ValueType in a struct to get type safety
...
and better control the abstraction. Rename the type
to MVT. To update out-of-tree patches, the main
thing to do is to rename MVT::ValueType to MVT, and
rewrite expressions like MVT::getSizeInBits(VT) in
the form VT.getSizeInBits(). Use VT.getSimpleVT()
to extract a MVT::SimpleValueType for use in switch
statements (you will get an assert failure if VT is
an extended value type - these shouldn't exist after
type legalization).
This results in a small speedup of codegen and no
new testsuite failures (x86-64 linux).
llvm-svn: 52044
2008-06-06 12:08:01 +00:00
Zhou Sheng
1152ca9101
As Chris suggested, handle the situation if ShAmt larger than BitWidth,
...
otherwise, opt might crash.
llvm-svn: 52041
2008-06-06 08:32:05 +00:00
Evan Cheng
6d7a144453
Refine stack slot interval weight computation.
...
llvm-svn: 52040
2008-06-06 07:54:39 +00:00
Anton Korobeynikov
5b3e396c24
Turn stdout into binary mode during bitcode emission.
...
This is necessary on windows targets, since stdout is in text mode there.
Patch by Julien Lerouge!
llvm-svn: 52038
2008-06-06 07:24:01 +00:00
Anton Korobeynikov
5e8644071d
Provide hooks for libgcc symbols' address resolution inside lli on mingw32.
...
Patch by Julien Lerouge!
llvm-svn: 52037
2008-06-06 07:20:07 +00:00
Bruno Cardoso Lopes
1a6e0d613f
Added custom isel for MUL, SDIVREM, UDIVREM, SMUL_LOHI and UMUL_LOHI nodes
...
MUL is not anymore directly matched because its a pseudoinstruction.
LogicI class fixed to zero-extend immediates.
llvm-svn: 52036
2008-06-06 06:37:31 +00:00
Bruno Cardoso Lopes
4eed3afda0
Added custom SELECT_CC lowering
...
Added special isel for ADDE,SUBE and new patterns to match SUBC,ADDC
llvm-svn: 52031
2008-06-06 00:58:26 +00:00
Dan Gohman
1d304a99d7
Revert 52002.
...
llvm-svn: 52030
2008-06-05 23:57:06 +00:00
Chris Lattner
3816aa7ef7
Expose a public interface to this pass.
...
llvm-svn: 52029
2008-06-05 23:45:18 +00:00
Chris Lattner
0282d0247e
Let libcall semantics decide whether it knows about functions
...
with definitions or not.
llvm-svn: 52028
2008-06-05 23:38:34 +00:00
Evan Cheng
c7007a7211
Warn of potential violations of strict aliasing rules.
...
llvm-svn: 52027
2008-06-05 23:00:08 +00:00
Evan Cheng
9e76c047d1
Don't break strict aliasing.
...
llvm-svn: 52026
2008-06-05 22:59:21 +00:00
Devang Patel
33aac00892
Describe loop index split.
...
llvm-svn: 52021
2008-06-05 21:44:00 +00:00
Dan Gohman
ae408aa83f
Wording fixes. Thanks Bill!
...
llvm-svn: 52017
2008-06-05 18:45:33 +00:00
Owen Anderson
05d1cd99b3
Remove debugging code.
...
llvm-svn: 52016
2008-06-05 18:43:34 +00:00
Gabor Greif
80ae8a7194
fix typos, tweak stuff, make it to validate
...
llvm-svn: 52015
2008-06-05 18:39:01 +00:00
Owen Anderson
65dc2b2e06
Use the newly created helper on LiveIntervals.
...
llvm-svn: 52013
2008-06-05 17:22:53 +00:00
Owen Anderson
35e2dfe1cf
Add a helper for constructing new live ranges that ended from an instruction to the end of its MBB.
...
llvm-svn: 52012
2008-06-05 17:15:43 +00:00
Dan Gohman
b0ec18bd81
Move i128 on x86-64 from the codegen section to the x86-specific section.
...
llvm-svn: 52010
2008-06-05 16:15:39 +00:00
Dan Gohman
4277e7e49a
Add a note about improved alignment detection.
...
llvm-svn: 52009
2008-06-05 15:49:29 +00:00
Dan Gohman
23254a8f83
Add a note mentioning --view-sunit-dags improvements.
...
llvm-svn: 52008
2008-06-05 15:46:36 +00:00
Dan Gohman
46105567f7
Expand the bullet item about i128 support and APInt usage in codegen.
...
llvm-svn: 52007
2008-06-05 15:43:11 +00:00
Zhou Sheng
c775e462a8
Add a test case for opt -instcombine bug fix in revision 52003.
...
llvm-svn: 52004
2008-06-05 14:25:11 +00:00
Zhou Sheng
fbe1dc240c
If BitWidth equals to ShtAmt, the RHSKnownZero[BitWidth-ShiftAmt-1] will
...
crash the opt. Just fix this.
Test case in llvm/test/Transforms/InstCombine/2008-06-05-ashr-crash.ll
llvm-svn: 52003
2008-06-05 14:23:44 +00:00
Matthijs Kooijman
5eef32ba94
Change the Verifier to support returning first class aggregrates.
...
Add a testcase for functions returning first class aggregrates.
llvm-svn: 52002
2008-06-05 14:00:36 +00:00
Zhou Sheng
3f8de8b130
Add a test case for APInt bug fix in r51999.
...
llvm-svn: 52000
2008-06-05 13:42:21 +00:00
Zhou Sheng
1247c07742
As comments said, for negative value, the arithmetic
...
over-shift-right should return -1. So here it should be signed-extended,
when bitwidth larger than 64.
test case: llvm/test/ExecutionEngine/2008-06-05-APInt-OverAShr.ll
llvm-svn: 51999
2008-06-05 13:27:38 +00:00
Nick Lewycky
0702adc65e
Escape "$#".
...
llvm-svn: 51998
2008-06-05 12:54:44 +00:00
Matthijs Kooijman
812989b147
Learn ScalarReplAggregrates how stores and loads of first class aggregrates
...
work and how to replace them into individual values. Also, when trying to
replace an aggregrate that is used by load or store with a single (large)
integer, don't crash (but don't replace the aggregrate either).
Also adds a testcase for both structs and arrays.
llvm-svn: 51997
2008-06-05 12:51:53 +00:00
Gordon Henriksen
03a4ad4db9
Move this to the proper section.
...
I misread Optimizer Improvements as Other Improvements for some reason.
llvm-svn: 51996
2008-06-05 12:51:50 +00:00
Gordon Henriksen
03d9625286
Adding release notes for bindings improvements.
...
llvm-svn: 51995
2008-06-05 12:48:32 +00:00
Matthijs Kooijman
e0c5adc158
Let StructRetPromotion check if all if its users are really calls or invokesn,
...
not other instructions. This fixes a crash with the added testcase.
llvm-svn: 51992
2008-06-05 08:57:20 +00:00
Matthijs Kooijman
463f86639d
Let StructRetPromotion check if it's users are really calling it and not
...
passing its pointer. Fixes test with added testcase.
llvm-svn: 51991
2008-06-05 08:48:32 +00:00
Matthijs Kooijman
230d6fbfeb
Use use_iterator::getOperandNo instead of CallSite::hasArgument to check if a
...
function is passed as an argument instead of called. Also do this check a bit
earlier.
llvm-svn: 51990
2008-06-05 08:34:25 +00:00
Matthijs Kooijman
b0dffd691c
* Make CallSite::hasArgument const and let it take a const parameter.
...
llvm-svn: 51989
2008-06-05 08:04:58 +00:00
Chris Lattner
6cb64030e5
more updates and random notes, including changes up through Week-of-Mon-20080324.
...
llvm-svn: 51988
2008-06-05 08:02:49 +00:00
Matthijs Kooijman
5afc2740b7
Update comments and documentation to reflect that GCSE and ValueNumbering are
...
deprecated by the GVN and GVNPRE passes.
llvm-svn: 51983
2008-06-05 07:55:49 +00:00
Bill Wendling
18fbf1bc37
Cast because I think I know what I'm doing. There are warnings about converting
...
from 64-bit to 32-bit.
llvm-svn: 51982
2008-06-05 07:35:27 +00:00
Matthijs Kooijman
63a2cb59b0
Fix 80 column violations.
...
llvm-svn: 51981
2008-06-05 07:26:15 +00:00
Bill Wendling
b80d63268a
Remove unused parameter. Some clients might use -Werror when compiling and
...
cause drama.
llvm-svn: 51980
2008-06-05 07:24:08 +00:00
Chris Lattner
618a99f920
add llvmc2 notes, stack realignment.
...
llvm-svn: 51979
2008-06-05 06:57:39 +00:00
Chris Lattner
a1a4c9a227
various status updates.
...
llvm-svn: 51978
2008-06-05 06:35:40 +00:00
Chris Lattner
b711222b27
Start adding 2.3 content.
...
llvm-svn: 51977
2008-06-05 06:25:56 +00:00
Evan Cheng
976b1eee81
Fix a memcpy lowering bug. Even though the memcpy alignment is smaller than the desired alignment, the frame destination alignment may still be larger than the desired alignment. Don't change its alignment to something smaller.
...
llvm-svn: 51970
2008-06-04 23:37:54 +00:00
Owen Anderson
61c7f2a633
Remove unneeded #include.
...
llvm-svn: 51955
2008-06-04 18:28:10 +00:00
Chris Lattner
09ebde227e
Fix inst_iterator example.
...
llvm-svn: 51954
2008-06-04 18:20:42 +00:00
Evan Cheng
9e27316337
Oops. Should not be enabled by default.
...
llvm-svn: 51953
2008-06-04 18:09:20 +00:00
Chris Lattner
c596ec04e1
Rewrite a bunch of the CBE's inline asm code, giving it the
...
ability to handle indirect input operands. This fixes PR2407.
llvm-svn: 51952
2008-06-04 18:03:28 +00:00
Owen Anderson
3a697779fe
Correctly construct live intervals for the copies we inserted into the predecessors of a block containing a PHI.
...
llvm-svn: 51950
2008-06-04 17:55:58 +00:00
Evan Cheng
805cde4fbf
Revert this.
...
llvm-svn: 51949
2008-06-04 17:21:44 +00:00
Matthijs Kooijman
2353f35989
Replace two manual loops with calls to CallSite::hasArguments (no functional changes).
...
llvm-svn: 51947
2008-06-04 16:57:50 +00:00
Matthijs Kooijman
d901e5842f
Add CallSite::hasArgument to allow for seeing if a call passes a certain value as an argument quickly.
...
llvm-svn: 51946
2008-06-04 16:31:12 +00:00
Matthijs Kooijman
76d8dec5db
Add a Name parameter to two of the init methods of GetElementPointer to make the name setting more consistent.
...
llvm-svn: 51945
2008-06-04 16:14:12 +00:00
Matthijs Kooijman
a6bb22e9bc
Fix example to be valid LLVM assembly.
...
llvm-svn: 51942
2008-06-04 15:46:35 +00:00
Matthijs Kooijman
cfd41dbd5e
Implement the two constructors in InsertValueInst and ExtractValueInst.
...
Add a Name argment to two init methods in these classes as well to make things
a bit more consistent.
llvm-svn: 51937
2008-06-04 14:40:55 +00:00
Evan Cheng
12a0222a01
Add a stack slot coloring pass. Not yet enabled.
...
llvm-svn: 51934
2008-06-04 09:18:41 +00:00
Evan Cheng
a15e7eb29b
LowerSubregs should not clobber any analysis.
...
llvm-svn: 51933
2008-06-04 09:17:16 +00:00
Evan Cheng
eecdf659e8
Move #include to right place.
...
llvm-svn: 51932
2008-06-04 09:16:33 +00:00
Evan Cheng
c5b3a3bea5
Register if-converter pass for -debug-pass.
...
llvm-svn: 51931
2008-06-04 09:15:51 +00:00
Evan Cheng
93af6ce129
More pass manager debugging outputs.
...
llvm-svn: 51930
2008-06-04 09:13:31 +00:00
Duncan Sands
fc3c489b52
Change packed struct layout so that field sizes
...
are the same as in unpacked structs, only field
positions differ. This only matters for structs
containing x86 long double or an apint; it may
cause backwards compatibility problems if someone
has bitcode containing a packed struct with a
field of one of those types.
The issue is that only 10 bytes are needed to
hold an x86 long double: the store size is 10
bytes, but the ABI size is 12 or 16 bytes (linux/
darwin) which comes from rounding the store size
up by the alignment. Because it seemed silly not
to pack an x86 long double into 10 bytes in a
packed struct, this is what was done. I now
think this was a mistake. Reserving the ABI size
for an x86 long double field even in a packed
struct makes things more uniform: the ABI size is
now always used when reserving space for a type.
This means that developers are less likely to
make mistakes. It also makes life easier for the
CBE which otherwise could not represent all LLVM
packed structs (PR2402).
Front-end people might need to adjust the way
they create LLVM structs - see following change
to llvm-gcc.
llvm-svn: 51928
2008-06-04 08:21:45 +00:00
Chris Lattner
6449690da4
Add #includes required by GCC 4.3, thanks for Zhongxing Xu
...
for reporting this.
llvm-svn: 51926
2008-06-04 04:46:14 +00:00
Bruno Cardoso Lopes
326a03732e
Some Mips minor fixes
...
Added support for mips little endian arch => mipsel
llvm-svn: 51923
2008-06-04 01:45:25 +00:00
Owen Anderson
c777d9e6fe
We need to subtract one from this index because live ranges are open at the end.
...
llvm-svn: 51922
2008-06-04 00:38:56 +00:00
Scott Michel
a7d8649f78
Fix spellnig error
...
llvm-svn: 51917
2008-06-03 19:13:20 +00:00
Owen Anderson
6c871c0866
Testcase for LoopIndexSplit and DomFrontier.
...
llvm-svn: 51916
2008-06-03 18:32:27 +00:00
Owen Anderson
2df82e7cec
LoopIndexSplit can sometimes result in cases where a block in its own domfrontier.
...
Don't crash when we encounter one of these.
llvm-svn: 51915
2008-06-03 18:29:48 +00:00
Dale Johannesen
4c75de7f39
Expand documentation of StringConstantPrefix.
...
llvm-svn: 51911
2008-06-03 18:15:03 +00:00
Dale Johannesen
83e468ae23
Prevent a crash in debug dumps.
...
llvm-svn: 51910
2008-06-03 18:14:29 +00:00
Dale Johannesen
355b74acc2
Add StringConstantPrefix to control what the
...
assembler names of string constants look like.
llvm-svn: 51909
2008-06-03 18:09:06 +00:00
Scott Michel
c0e9ff6e52
Find a better place to output hex constants corresponding to integers.
...
llvm-svn: 51904
2008-06-03 15:39:51 +00:00
Bruno Cardoso Lopes
2dd8fdc78a
Fixed bug in bad behavior in calculateFrameObjectOffsets,
...
the solution commited is different from the previous patch to
avoid int and unsigned comparison
llvm-svn: 51899
2008-06-03 08:46:59 +00:00
Evan Cheng
097826643b
Do not run loop-aligner at -fast (e.g. -O0).
...
llvm-svn: 51898
2008-06-03 06:56:08 +00:00
Scott Michel
499c119d7c
Revert this patch
...
llvm-svn: 51897
2008-06-03 06:18:19 +00:00
Dan Gohman
25b3b49dbc
nounwindify.
...
llvm-svn: 51893
2008-06-03 01:21:11 +00:00
Devang Patel
ab85d6b6af
"Unable to schedule <A> required by <B>" is more helpful then
...
"Unable to handle Pass that requires lower level Analysis pass"
llvm-svn: 51892
2008-06-03 01:20:02 +00:00
Devang Patel
bb4720c43f
Add debugging aid.
...
llvm-svn: 51891
2008-06-03 01:02:16 +00:00
Dan Gohman
2ad7e7341c
Fix whitespace in whitespace-significant pseudocode in a comment.
...
llvm-svn: 51890
2008-06-03 00:57:21 +00:00
Dan Gohman
3db11c2bd9
Constant folding for insertvalue and extractvalue.
...
llvm-svn: 51889
2008-06-03 00:15:20 +00:00
Devang Patel
7314d0ee3c
Update dom tree. Fix PR 2372.
...
llvm-svn: 51887
2008-06-02 22:52:56 +00:00
Dan Gohman
057240f4f0
Fold adds and subtracts of zero immediately, instead of waiting
...
for dagcombine to do this.
llvm-svn: 51886
2008-06-02 22:27:05 +00:00
Scott Michel
5793cbcf44
Minor cosmetic patch so that the hex equivalent of a decimal
...
constant shows up in the assembly language output. Helps with
debugging without a HP calculator having to be handy.
llvm-svn: 51885
2008-06-02 22:19:12 +00:00
Scott Michel
d831cc49e5
Add necessary 64-bit support so that gcc frontend compiles (mostly). Current
...
issue is operand promotion for setcc/select... but looks like the fundamental
stuff is implemented for CellSPU.
llvm-svn: 51884
2008-06-02 22:18:03 +00:00
Dan Gohman
4e8a512f80
Implement CBE support for first-class structs and array values,
...
and insertvalue and extractvalue instructions.
First-class array values are not trivial because C doesn't
support them. The approach I took here is to wrap all arrays
in structs. Feedback is welcome.
The 2007-01-15-NamedArrayType.ll test needed to be modified
because it has a "not grep" for a string that now exists,
because array types now have associated struct types, and
those struct types have names.
llvm-svn: 51881
2008-06-02 21:30:49 +00:00
Dan Gohman
9494a03df8
Update the polygen grammer for the new insertvalue and extractvalue syntax.
...
llvm-svn: 51879
2008-06-02 19:47:09 +00:00
Chris Lattner
2e01a69e72
Remove unneeded code I added.
...
llvm-svn: 51878
2008-06-02 18:39:07 +00:00
Dan Gohman
92d62b43c2
Fix the position of MemOperands in nodes that use variadic_ops
...
in DAGISelEmitter output. This bug was recently uncovered by the
addition of patterns for CALL32m and CALL64m, which are nodes
that now have both MemOperands and variadic_ops.
This bug was especially visible with PIC in various configurations,
because the new patterns are matching the indirect call code used
in many PIC configurations.
llvm-svn: 51877
2008-06-02 17:40:38 +00:00
Owen Anderson
0908deccc2
Correctly handle removed instructions at the beginning of MBBs when renumbering.
...
llvm-svn: 51876
2008-06-02 17:36:36 +00:00
Wojciech Matyjewicz
416867a81b
Fixes PR2395. Looking for a constant in a GEP tail (when the first GEP
...
is longer than the second one) should stop after finding one. Added break
instruction guarantees it. It also changes difference between offsets to
absolute value of this difference in the condition.
llvm-svn: 51875
2008-06-02 17:26:12 +00:00
Steve Naroff
0803b73953
update vc configure project for renaming of
...
hash_map/hash_set/iterator to have a .h suffix.
llvm-svn: 51867
2008-06-02 16:37:36 +00:00
Rafael Espindola
d04cd22ff4
Don't use the GOT for symbols that are not externally visible.
...
llvm-svn: 51865
2008-06-02 07:52:43 +00:00
Chris Lattner
a12a6de683
move CannotBeNegativeZero to ValueTracking. Simplify some signbit comparisons.
...
llvm-svn: 51864
2008-06-02 01:29:46 +00:00
Chris Lattner
965c769b3c
move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits
...
out of instcombine into a new file in libanalysis. This also teaches
ComputeNumSignBits about the number of sign bits in a constantint.
llvm-svn: 51863
2008-06-02 01:18:21 +00:00