Sanjiv Gupta
f1177e1be7
Allow i16 type indices to gep.
...
llvm-svn: 69946
2009-04-24 02:37:54 +00:00
Dan Gohman
9d13b714f5
Factor out a bit of code that appears in several places into a
...
utility function.
llvm-svn: 69937
2009-04-23 23:13:24 +00:00
Dan Gohman
313018c1d3
Handle Void types in ComputeValueVTs. This doesn't currently occur,
...
but this change makes the code more general and easier to adapt for
new purposes.
llvm-svn: 69935
2009-04-23 22:50:03 +00:00
Dan Gohman
46ab8008a8
Fix spurious indentation in a comment.
...
llvm-svn: 69934
2009-04-23 22:41:05 +00:00
David Greene
ddac45edb9
Fix a documentation bug.
...
llvm-svn: 69923
2009-04-23 21:27:58 +00:00
David Greene
a92a50c7c2
Make BinOps typed and require a type specifier for !nameconcat. This
...
allows binops to be used in typed contexts such as when passing
arguments to classes.
llvm-svn: 69921
2009-04-23 21:25:15 +00:00
Evan Cheng
ff776c8193
Update comments.
...
llvm-svn: 69919
2009-04-23 20:39:31 +00:00
Evan Cheng
f20fb20367
Fix an obvious type.
...
llvm-svn: 69918
2009-04-23 20:18:13 +00:00
Dan Gohman
3499a53e1d
Explicitly pass -tailcallopt=false to these tests so that they
...
work as intended no matter what the default setting of that
option is.
llvm-svn: 69911
2009-04-23 19:39:41 +00:00
Dale Johannesen
ab02315fdb
Testcase for 69795.
...
llvm-svn: 69901
2009-04-23 18:04:04 +00:00
Dan Gohman
ea9a6d22d3
Fix an error in this test.
...
llvm-svn: 69893
2009-04-23 15:22:28 +00:00
Dan Gohman
c0f47d6ec1
Change SCEVExpander's expandCodeFor to provide more flexibility
...
with the persistent insertion point, and change IndVars to make
use of it. This fixes a bug where IndVars was holding on to a
stale insertion point and forcing the SCEVExpander to continue to
use it.
This fixes PR4038.
llvm-svn: 69892
2009-04-23 15:16:49 +00:00
Sanjiv Gupta
0457bf4420
Banksel immediate constant will always immediately follow the GA/ES, so scan an insn from beginnin to find out the banksel operand.
...
llvm-svn: 69883
2009-04-23 10:34:58 +00:00
Nick Lewycky
32cfba44df
Simplify trunc(extend(x)) in SCEVs, just for completeness. Also fix some odd
...
whitespace in the same file.
llvm-svn: 69870
2009-04-23 05:15:08 +00:00
Owen Anderson
0c0498a365
Testcase for PR3909.
...
llvm-svn: 69868
2009-04-23 04:33:42 +00:00
Owen Anderson
caa90b2561
Testcase for PR2639.
...
llvm-svn: 69867
2009-04-23 04:30:52 +00:00
Owen Anderson
bf7354995a
Testcase for PR2537.
...
llvm-svn: 69866
2009-04-23 04:26:42 +00:00
Owen Anderson
f04f0e15c7
Fix typo.
...
llvm-svn: 69865
2009-04-23 04:24:19 +00:00
Owen Anderson
a1a09bc01f
Testcase for PR3085.
...
llvm-svn: 69863
2009-04-23 04:21:14 +00:00
Owen Anderson
d4b3279a3f
Add testcase from PR3086.
...
llvm-svn: 69862
2009-04-23 04:14:03 +00:00
Dan Gohman
6a4629e856
Add support for printing MO_ExternalSymbol operands in
...
memory operand tuples. This doesn't ever come up in normal
code however.
llvm-svn: 69848
2009-04-23 00:57:37 +00:00
Dan Gohman
4523a11557
Add more ulimit limits, to catch more kinds of runaway behavior.
...
llvm-svn: 69847
2009-04-23 00:28:31 +00:00
Owen Anderson
d2cf86afcb
Use the testcase from PR2791.
...
llvm-svn: 69846
2009-04-23 00:15:26 +00:00
Evan Cheng
bdfff0ba69
Make sure both operands have binary instructions have the same type.
...
llvm-svn: 69844
2009-04-22 23:39:28 +00:00
Evan Cheng
faa208ae5f
A few more places where the check of use_empty is needed.
...
llvm-svn: 69842
2009-04-22 23:09:16 +00:00
Evan Cheng
2af546d5fa
Avoid deferencing use_begin() if value does not have a use.
...
llvm-svn: 69836
2009-04-22 22:45:37 +00:00
David Greene
e41e6599cf
Allow defm to inherit from multiple multiclasses.
...
llvm-svn: 69832
2009-04-22 22:17:51 +00:00
David Greene
0698602922
Implement !nameconcat to concatenate strings and look up the resulting
...
name in the symbol table, returning an object.
llvm-svn: 69822
2009-04-22 20:18:10 +00:00
Duncan Sands
bd414a0baa
Testcase for PR2958.
...
llvm-svn: 69818
2009-04-22 18:55:17 +00:00
Devang Patel
7daece3796
Fix cut-n-pasto.
...
llvm-svn: 69816
2009-04-22 18:51:05 +00:00
David Greene
9d99a33f27
Implement multiclass inheritance.
...
llvm-svn: 69810
2009-04-22 16:42:54 +00:00
Dan Gohman
d6edb69103
Simplify trivial cast-of-cast SCEVs.
...
llvm-svn: 69809
2009-04-22 16:20:48 +00:00
Dan Gohman
0ab6ecf6a1
SCEVExpander's InsertCastOfTo knows how to move existing cast
...
instructions in order to avoid inserting new ones. However, if
the cast instruction is the SCEVExpander's InsertPt, this
causes subsequently emitted instructions to be inserted near
the cast, and not at the location of the original insert point.
Fix this by adjusting the insert point in such cases.
This fixes PR4009.
llvm-svn: 69808
2009-04-22 16:11:16 +00:00
Dan Gohman
471996598f
Use BasicBlock::iterator instead of Instruction* for insert points,
...
to better handle inserting instructions at the end of a block.
llvm-svn: 69807
2009-04-22 16:05:50 +00:00
Dan Gohman
5a677884a1
Make SCEVExpanders private methods private, instead of protected.
...
llvm-svn: 69806
2009-04-22 16:00:36 +00:00
Dan Gohman
6cf471ad30
Use CloneModule's ValueMap in more places, instead of looking
...
up functions by name.
llvm-svn: 69805
2009-04-22 15:57:18 +00:00
Dan Gohman
640b379ae6
ISD::ADD_PARTS is gone; use ISD::SMUL_LOHI as an example instead.
...
llvm-svn: 69804
2009-04-22 15:55:31 +00:00
Sanjiv Gupta
60c6705684
Make the function begin label start after ther data pointer.
...
The address of data frame for function can be obtained by subtracting 2 from the function begin label.
llvm-svn: 69801
2009-04-22 12:02:36 +00:00
Duncan Sands
6f29099800
These tests are x86 specific.
...
llvm-svn: 69798
2009-04-22 10:39:51 +00:00
Owen Anderson
309568c469
Real fix for PR3549, by using caching for predecessor counts in addition to the predecessors themselves. This halves the time
...
to optimize the testcase, beyond what my previous patch did.
llvm-svn: 69792
2009-04-22 08:50:12 +00:00
Owen Anderson
1cf271e1d8
Add caching of predecessor counts as well as predecessors themselves.
...
llvm-svn: 69791
2009-04-22 08:46:33 +00:00
Owen Anderson
b36babc111
Use PredIteratorCache in LCSSA, which gives a 37% overall speedup on the testcase from PR3549. More improvements to come.
...
llvm-svn: 69788
2009-04-22 08:09:13 +00:00
Owen Anderson
dd6babaa30
Fix for PR3946, in which SmallVector could behave strangely in corner cases.
...
Patch by Peter Johnson.
llvm-svn: 69785
2009-04-22 07:16:54 +00:00
Chris Lattner
60c88b66da
use predicate instead of hand-rolled loop
...
llvm-svn: 69752
2009-04-21 23:37:18 +00:00
Dan Gohman
4cb9d25f4a
De-pImpl-ify ScalarEvolution. The pImpl pattern doesn't provide much
...
practical benefit in the case of ScalarEvolution, and it's otherwise
a nuisance.
llvm-svn: 69749
2009-04-21 23:15:49 +00:00
Evan Cheng
a36c6c6819
It has finally happened. Spiller is now using live interval info.
...
This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue.
llvm-svn: 69743
2009-04-21 22:46:52 +00:00
Dan Gohman
19990f2310
When turning (ashr(shl(x, n), n)) into sext(trunc(x)), the width of the
...
type to truncate to should be the number of bits of the value that are
preserved, not the number that are clobbered with sign-extension.
This fixes regressions in ldecod.
llvm-svn: 69704
2009-04-21 20:18:36 +00:00
Mikhail Glushenkov
1b37a864d2
Support --with-llvmgccdir and friends in llvmc, take 2.
...
Should now work when building with objdir != srcdir and when llvm-gcc is not
available.
Thanks to Duncan Sands for testing and advice!
llvm-svn: 69700
2009-04-21 19:46:10 +00:00
Devang Patel
17f434a8f0
Test case for revision 69683.
...
llvm-svn: 69684
2009-04-21 17:21:01 +00:00
Chris Lattner
95aad4d625
fix a crash on a pointless but valid zero-length memset, rdar://6808691
...
llvm-svn: 69680
2009-04-21 16:52:12 +00:00