Dan Gohman
3e6e188ee3
Remove an obsolete comment.
...
llvm-svn: 70262
2009-04-27 22:12:34 +00:00
Dale Johannesen
27b4f222cf
Fix PR 4086, a bug in FP IV elimination.
...
llvm-svn: 70247
2009-04-27 21:03:15 +00:00
Evan Cheng
093e4c578d
Fix PR4076. Correctly create live interval of physical register with two-address update.
...
llvm-svn: 70245
2009-04-27 20:42:46 +00:00
Dan Gohman
e99f98262c
Permit ChangeCompareStride to rewrite a comparison when the factor
...
between the comparison's iv stride and the candidate stride is
exactly -1.
llvm-svn: 70244
2009-04-27 20:35:32 +00:00
Jeffrey Yasskin
41f2477a50
Add tests for WeakVH and AssertingVH. These pointed out that the overloads for
...
the comparison operators were not only unnecessary in the presence of the
implicit conversion; they caused ambiguous overload errors. So I deleted them.
llvm-svn: 70243
2009-04-27 20:32:07 +00:00
Dan Gohman
7646637379
Teach getZeroExtendExpr and getSignExtendExpr to use trip-count
...
information to simplify [sz]ext({a,+,b}) to {zext(a),+,[zs]ext(b)},
as appropriate.
These functions and the trip count code each call into the other, so
this requires careful handling to avoid infinite recursion. During
the initial trip count computation, conservative SCEVs are used,
which are subsequently discarded once the trip count is actually
known.
Among other benefits, this change lets LSR automatically eliminate
some unnecessary zext-inreg and sext-inreg operation where the
operand is an induction variable.
llvm-svn: 70241
2009-04-27 20:16:15 +00:00
Chris Lattner
0e3f50d8cf
give bitstreamreader an API to ignore names for blocks/records,
...
only llvm-bcanalyzer wants this info.
llvm-svn: 70239
2009-04-27 20:04:08 +00:00
Owen Anderson
7ca3521d6a
Don't skip the CopyMI when removing kill markers.
...
This should have no effect on generated code, but makes the intermediate state
of the coalescer more sane.
llvm-svn: 70238
2009-04-27 19:55:47 +00:00
Duncan Sands
bfa037705e
Now that PR2957 is resolved, remove a bunch of
...
no-longer needed workarounds.
llvm-svn: 70234
2009-04-27 19:33:03 +00:00
Dale Johannesen
95743b2efd
Test for (llvm-gcc) 70231.
...
llvm-svn: 70233
2009-04-27 19:15:09 +00:00
Nate Begeman
c79f731531
Revert accidental testcase reduction
...
llvm-svn: 70226
2009-04-27 18:42:40 +00:00
Nate Begeman
8d6d4b9289
2nd attempt, fixing SSE4.1 issues and implementing feedback from duncan.
...
PR2957
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle
mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes
as the shuffle mask. A value of -1 represents UNDEF.
In addition to eliminating the creation of illegal BUILD_VECTORS just to
represent shuffle masks, we are better about canonicalizing the shuffle mask,
resulting in substantially better code for some classes of shuffles.
llvm-svn: 70225
2009-04-27 18:41:29 +00:00
Chris Lattner
1cf8069c5f
Print statistics for each record kind saying the number of bits
...
and % abbreviated. For example:
Record Histogram:
Count # Bits % Abv Record Kind
25738 3424174 100.00 SM_SLOC_INSTANTIATION_ENTRY
814 562079 100.00 SM_SLOC_FILE_ENTRY
798 34110 SM_HEADER_FILE_INFO
3 91104 100.00 SM_SLOC_BUFFER_BLOB
3 498 100.00 SM_SLOC_BUFFER_ENTRY
1 465 SM_LINE_TABLE
llvm-svn: 70215
2009-04-27 18:15:27 +00:00
Chris Lattner
bf419a9328
clean up the output of llvm-bcanalyzer by using printf
...
instead of ostreams for formatting.
llvm-svn: 70214
2009-04-27 17:59:34 +00:00
Evan Cheng
0f85bd368c
Fix PR4056. It's possible a physical register def is dead if its implicit use is deleted by two-address pass.
...
llvm-svn: 70213
2009-04-27 17:36:47 +00:00
Evan Cheng
a630ce5fff
Also delete last unused val#.
...
llvm-svn: 70212
2009-04-27 17:35:19 +00:00
Dan Gohman
2986972118
Rename GR8_ABCD to GR8_ABCD_L and create GR8_ABCD_H, and use these
...
to precisely describe the h-register subreg register classes.
Thanks to Jakob Stoklund Olesen for spotting this and for the
initial patch!
Also, make getStoreRegOpcode and getLoadRegOpcode aware of the
needs of h registers.
llvm-svn: 70211
2009-04-27 16:41:36 +00:00
Dan Gohman
ec542ca65e
Rename GR8_, GR16_, GR32_, and GR64_ to GR8_ABCD, GR16_ABCD,
...
GR32_ABCD, and GR64_ABCD, respectively, to help describe them.
llvm-svn: 70210
2009-04-27 16:33:14 +00:00
Dan Gohman
ba99bddf1f
Break up long multi-mnemonic strings into separate lines for readability.
...
llvm-svn: 70209
2009-04-27 15:13:28 +00:00
Dan Gohman
3266391e86
Fix the syntax for a PR number in a test.
...
llvm-svn: 70208
2009-04-27 15:08:34 +00:00
Duncan Sands
75bc2250ca
Fix some confusion in the Ada f-e build instructions between
...
building without optimization and building with checking.
llvm-svn: 70205
2009-04-27 11:21:35 +00:00
Mon P Wang
e15bf109be
Revised 68749 to allow matching of load/stores for address spaces < 256.
...
llvm-svn: 70197
2009-04-27 07:22:10 +00:00
Nick Lewycky
f44a5bf158
Under unusual circumstances (jitting a function that causes the creation of
...
another stub, but then never calling the jitted function) can cause the JIT to
leave a stub in place. Judging by the comments this is a known deficiency, so
we're just not going to use AssertingVH for the StubToFunctionTy map.
Also shorten some lines longer than 80 columns.
This fixes the "make check" failure with ocaml on x86-64 linux.
llvm-svn: 70185
2009-04-27 05:09:44 +00:00
Sanjiv Gupta
1f8555a07f
Now that any size of integer indices are allowed for sequential types, remove the unneccessary gyan about promoting them.
...
llvm-svn: 70181
2009-04-27 03:21:00 +00:00
Dan Gohman
58440cf305
Make this test slightly more strict.
...
llvm-svn: 70180
2009-04-27 03:05:26 +00:00
Dan Gohman
be36f5ccda
When transforming sext(trunc(load(x))) into sext(smaller load(x)),
...
the trunc is directly replaced with the smaller load, so don't
try to create a new sext node. This fixes PR4050.
llvm-svn: 70179
2009-04-27 02:00:55 +00:00
Dan Gohman
05c1d372b7
Handle ands with ~0 correctly too. This fixes PR4052.
...
llvm-svn: 70176
2009-04-27 01:41:10 +00:00
Dan Gohman
6019e07b3b
Improve bugpoint's error messages when it runs out of memory,
...
or when some other std::exception is thrown.
llvm-svn: 70175
2009-04-27 01:30:37 +00:00
Chris Lattner
a6fdf5a8c9
Add two new record types to the blockinfo block:
...
BLOCKNAME and SETRECORDNAME. This allows a bitcode
file to be self describing with pretty names for
records and blocks in addition to numbers. This
enhances llvm-bcanalyzer to use this to print prettily.
llvm-svn: 70165
2009-04-26 22:21:57 +00:00
Chris Lattner
0d0d3e56dd
make BitstreamCursor's copyable and assignable.
...
llvm-svn: 70159
2009-04-26 21:07:02 +00:00
Chris Lattner
277800a643
Make a major API change to BitstreamReader: split all the reading
...
state out of the BitstreamReader class into a BitstreamCursor class.
Doing this allows the client to have multiple cursors into the same
file, each with potentially different live block stacks and
abbreviation records.
llvm-svn: 70157
2009-04-26 20:59:02 +00:00
Bill Wendling
5bf1a6e986
I cast, therefore I think I know what I'm doing.
...
llvm-svn: 70151
2009-04-26 20:12:38 +00:00
Bill Wendling
febab5d928
Use uint64_t instead of unsigned.
...
llvm-svn: 70148
2009-04-26 19:46:41 +00:00
Chris Lattner
0ba740892e
revert an incorrect patch. This causes crashes all over the place on a
...
64-bit build.
llvm-svn: 70147
2009-04-26 19:44:20 +00:00
Bill Wendling
995f81c5ce
Suppress warnings about conversion shortening 64-bit to 32-bit.
...
llvm-svn: 70138
2009-04-26 18:10:20 +00:00
Sanjiv Gupta
8d319047c5
Any size of integral indices are allowed in gep for indexing into sequential types. Also adding a test case to check the indices type allowed into struct.
...
llvm-svn: 70134
2009-04-26 17:14:35 +00:00
Chris Lattner
1c1595f9ef
improve documentation on build configurations, patch by
...
Josef Eisl!
llvm-svn: 70087
2009-04-25 22:24:49 +00:00
Chris Lattner
73b5b5adae
add testcase for strange types of gep indices
...
llvm-svn: 70085
2009-04-25 22:20:49 +00:00
Chris Lattner
abd9bc89c5
Add a new TypeBuilder helper class, which eases making LLVM IR types.
...
Patch by Jeffrey Yasskin!
llvm-svn: 70084
2009-04-25 22:14:04 +00:00
Chris Lattner
dc5f7c6f83
improve documentation around memory lifetimes,
...
patch by Jeffrey Yasskin!
llvm-svn: 70083
2009-04-25 22:10:06 +00:00
Chris Lattner
0cb8977c0a
aDd support for building a subset of the llvm tools, patch by Jeffrey Yasskin!
...
llvm-svn: 70082
2009-04-25 22:08:52 +00:00
Chris Lattner
4c73d7a9b8
testcase and asmparser fix for PR4066
...
llvm-svn: 70080
2009-04-25 21:26:00 +00:00
Chris Lattner
cde89e48b2
Allow aliasee to be a GEP or bitcast instead of just a bitcast.
...
The real fix for this whole mess is to require the operand of the
alias to be a *GlobalValue* (not a general constant, including
constant exprs) but allow the operand and the alias type to be
unrelated.
This fixes PR4066
llvm-svn: 70079
2009-04-25 21:23:19 +00:00
Chris Lattner
6a6d3cc852
Update docs to not mention gcse/loadvn and mention memdep and
...
new stuff. PR3924.
llvm-svn: 70077
2009-04-25 21:11:37 +00:00
Bill Wendling
13535ceb10
Use intptr_t.
...
llvm-svn: 70076
2009-04-25 21:06:53 +00:00
Mon P Wang
0f3b758f01
size() should return a size_t; avoids a warning for 64 bit machines.
...
llvm-svn: 70072
2009-04-25 20:46:59 +00:00
Evan Cheng
80ad2e6b42
Reuse unused val#'s to avoid running out of memory in extreme cases.
...
llvm-svn: 70069
2009-04-25 20:20:15 +00:00
Chris Lattner
24061b532d
DenseMap.h needs <new> because it explicitly calls operator new/delete.
...
Patch by John McCall!
llvm-svn: 70068
2009-04-25 19:50:14 +00:00
Chris Lattner
b869a0ade1
Fix PR4040: APInt's string constructor is too strict
...
patch by Jeff Yasskin!
llvm-svn: 70058
2009-04-25 18:34:04 +00:00
Chris Lattner
3ad60b18cb
add support for detecting process features on win64, patch by
...
Nicolas Capens!
llvm-svn: 70057
2009-04-25 18:27:23 +00:00