Chris Lattner
23dfe61ece
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
43fc90ae59
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
c346651d6f
Also delete last unused val#.
...
llvm-svn: 70212
2009-04-27 17:35:19 +00:00
Dan Gohman
a241dec2fc
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
180fa04e35
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
885b9c3688
Break up long multi-mnemonic strings into separate lines for readability.
...
llvm-svn: 70209
2009-04-27 15:13:28 +00:00
Dan Gohman
4aeebb184b
Fix the syntax for a PR number in a test.
...
llvm-svn: 70208
2009-04-27 15:08:34 +00:00
Duncan Sands
8ba0b4d4f2
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
904d654436
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
5c4f46c2e9
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
e903d414ee
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
220d4325b0
Make this test slightly more strict.
...
llvm-svn: 70180
2009-04-27 03:05:26 +00:00
Dan Gohman
744f455d55
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
820b45049b
Handle ands with ~0 correctly too. This fixes PR4052.
...
llvm-svn: 70176
2009-04-27 01:41:10 +00:00
Dan Gohman
74bf1cb52e
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
f84ee5d944
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
eae2abdfa3
make BitstreamCursor's copyable and assignable.
...
llvm-svn: 70159
2009-04-26 21:07:02 +00:00
Chris Lattner
a43dcba929
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
07f3cdb8ba
I cast, therefore I think I know what I'm doing.
...
llvm-svn: 70151
2009-04-26 20:12:38 +00:00
Bill Wendling
d0a7587da5
Use uint64_t instead of unsigned.
...
llvm-svn: 70148
2009-04-26 19:46:41 +00:00
Chris Lattner
4685a9682f
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
2233793a0f
Suppress warnings about conversion shortening 64-bit to 32-bit.
...
llvm-svn: 70138
2009-04-26 18:10:20 +00:00
Sanjiv Gupta
0877e1eabe
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
d31285fdb7
improve documentation on build configurations, patch by
...
Josef Eisl!
llvm-svn: 70087
2009-04-25 22:24:49 +00:00
Chris Lattner
92716db3bb
add testcase for strange types of gep indices
...
llvm-svn: 70085
2009-04-25 22:20:49 +00:00
Chris Lattner
46c25c1285
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
f1cc8abdda
improve documentation around memory lifetimes,
...
patch by Jeffrey Yasskin!
llvm-svn: 70083
2009-04-25 22:10:06 +00:00
Chris Lattner
6d2e830ad8
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
f795b63fb2
testcase and asmparser fix for PR4066
...
llvm-svn: 70080
2009-04-25 21:26:00 +00:00
Chris Lattner
034358326a
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
c23e28732d
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
bbd2110a60
Use intptr_t.
...
llvm-svn: 70076
2009-04-25 21:06:53 +00:00
Mon P Wang
e001e33842
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
cd5a58a3e4
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
aad8bd245f
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
d68b203337
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
b47e34ac59
add support for detecting process features on win64, patch by
...
Nicolas Capens!
llvm-svn: 70057
2009-04-25 18:27:23 +00:00
Dan Gohman
1031d09a38
Refactor the code to grab the low and high parts of a value
...
using EXTRACT_ELEMENT into a utility function.
llvm-svn: 70056
2009-04-25 17:55:53 +00:00
Dan Gohman
d13f1a3b59
Return null instead of false, as appropriate.
...
llvm-svn: 70054
2009-04-25 17:28:45 +00:00
Dan Gohman
a7fae1f865
Add several more icmp simplifications. Transform signed comparisons
...
into unsigned ones when the operands are known to have the same
sign bit value.
llvm-svn: 70053
2009-04-25 17:12:48 +00:00
Dan Gohman
60349bb21e
Add a top-level comment about DAGCombiner's role in the compiler.
...
llvm-svn: 70052
2009-04-25 17:09:45 +00:00
Dan Gohman
9eb5ba6eb7
Handle ands with 0 and shifts by 0 correctly. These aren't
...
common, but indvars shouldn't crash on them. This fixes PR4054.
llvm-svn: 70051
2009-04-25 17:05:40 +00:00
Torok Edwin
285a5fb1d5
Fix g++-4.4.0 warning, it was causing llvm-nm to fail on wrapped BC files:
...
Path.cpp:59: warning: case label value exceeds maximum value for type
magic[0] is a (signed) char, but some case values are unsigned (e.g. 0xde).
When magic[0] was 0xde, the switch has taken the default branch instead of case
0xde branch.
Apparently this was the behaviour with older versions of gcc too, but not with g++.
Now g++-4.4 behaves as gcc, and ignores unsigned case values out of range signed
range.
llvm-svn: 70038
2009-04-25 10:25:12 +00:00
Evan Cheng
696a04eba2
Do not share a single unknown val# for all the live ranges merged into a physical sub-register live interval. When coalescer is merging in clobbered virtaul register live interval into a physical register live interval, give each virtual register val# a separate val# in the physical register live interval. Otherwise, the coalescer would have lost track of the definitions information it needs to make correct coalescing decisions.
...
llvm-svn: 70026
2009-04-25 09:25:19 +00:00
Sanjiv Gupta
9093a67350
Fixed the gep example for i16 type indices.
...
llvm-svn: 70019
2009-04-25 07:27:44 +00:00
Bob Wilson
162870a4b3
Change LowerCallResult method so that CCValAssign::BCvt can be used with
...
f64 types. This is not used for anything yet.
llvm-svn: 70006
2009-04-25 00:33:20 +00:00
Dale Johannesen
493c3bcdc0
Fix PR 4057, a crash doing float->char const folding.
...
This particular one is undefined behavior (although this
isn't related to the crash), so it will no longer do it
at compile time, which seems better.
llvm-svn: 69990
2009-04-24 21:34:13 +00:00
Bob Wilson
0ac8a0cf95
Adjust a comment to reflect what the code does. Splitting a 64-bit argument
...
between registers and the stack may be required with the APCS ABI, but it
isn't tied to using a particular version of the ARM architecture.
llvm-svn: 69978
2009-04-24 17:05:01 +00:00
Bob Wilson
2a47f01759
Fix up some problems with getCopyToReg and getCopyFromReg nodes being
...
chained and "flagged" together. I also made a few changes to handle the
chain and flag values more consistently. I found these problems by
inspection so I'm not aware of anything that breaks because of them
(thus no testcase).
llvm-svn: 69977
2009-04-24 17:00:36 +00:00
Gabor Greif
228f28e1ac
Use a bigger hammer to coerce subversion into english.
...
Patch by Benjamin Kramer!
llvm-svn: 69976
2009-04-24 17:00:03 +00:00