Chris Lattner
d895b277ea
Fix inst_iterator example.
...
llvm-svn: 51954
2008-06-04 18:20:42 +00:00
Evan Cheng
a9cf0ff766
Oops. Should not be enabled by default.
...
llvm-svn: 51953
2008-06-04 18:09:20 +00:00
Chris Lattner
7e3db1af97
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
503cf18547
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
9048a25037
Revert this.
...
llvm-svn: 51949
2008-06-04 17:21:44 +00:00
Matthijs Kooijman
a03f85df05
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
de47a7518d
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
318e1df0e4
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
1923146775
Fix example to be valid LLVM assembly.
...
llvm-svn: 51942
2008-06-04 15:46:35 +00:00
Matthijs Kooijman
2f6b694afc
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
2fc7954878
Add a stack slot coloring pass. Not yet enabled.
...
llvm-svn: 51934
2008-06-04 09:18:41 +00:00
Evan Cheng
7504610c97
LowerSubregs should not clobber any analysis.
...
llvm-svn: 51933
2008-06-04 09:17:16 +00:00
Evan Cheng
9153a5316c
Move #include to right place.
...
llvm-svn: 51932
2008-06-04 09:16:33 +00:00
Evan Cheng
523ad8a09a
Register if-converter pass for -debug-pass.
...
llvm-svn: 51931
2008-06-04 09:15:51 +00:00
Evan Cheng
20d22b220a
More pass manager debugging outputs.
...
llvm-svn: 51930
2008-06-04 09:13:31 +00:00
Duncan Sands
5a6c6a92c1
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
5839247e92
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
5a4d1d0fd3
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
f9c76de0bb
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
38dc44ecab
Fix spellnig error
...
llvm-svn: 51917
2008-06-03 19:13:20 +00:00
Owen Anderson
3f738eb65b
Testcase for LoopIndexSplit and DomFrontier.
...
llvm-svn: 51916
2008-06-03 18:32:27 +00:00
Owen Anderson
2a072a6923
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
5b060922a3
Expand documentation of StringConstantPrefix.
...
llvm-svn: 51911
2008-06-03 18:15:03 +00:00
Dale Johannesen
2803c991a5
Prevent a crash in debug dumps.
...
llvm-svn: 51910
2008-06-03 18:14:29 +00:00
Dale Johannesen
c0cd6cd4d4
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
0acfa8cc1d
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
dbf310acbc
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
cbb64ece8a
Do not run loop-aligner at -fast (e.g. -O0).
...
llvm-svn: 51898
2008-06-03 06:56:08 +00:00
Scott Michel
5c7e594b97
Revert this patch
...
llvm-svn: 51897
2008-06-03 06:18:19 +00:00
Dan Gohman
9562f7f0c8
nounwindify.
...
llvm-svn: 51893
2008-06-03 01:21:11 +00:00
Devang Patel
edc62adcd9
"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
390d72740e
Add debugging aid.
...
llvm-svn: 51891
2008-06-03 01:02:16 +00:00
Dan Gohman
5c60e1fdff
Fix whitespace in whitespace-significant pseudocode in a comment.
...
llvm-svn: 51890
2008-06-03 00:57:21 +00:00
Dan Gohman
fbf0f6cf8e
Constant folding for insertvalue and extractvalue.
...
llvm-svn: 51889
2008-06-03 00:15:20 +00:00
Devang Patel
b1798d2be0
Update dom tree. Fix PR 2372.
...
llvm-svn: 51887
2008-06-02 22:52:56 +00:00
Dan Gohman
626f8e4454
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
3918ece044
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
5323d58281
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
5a9c2a3434
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
0af6616fbb
Update the polygen grammer for the new insertvalue and extractvalue syntax.
...
llvm-svn: 51879
2008-06-02 19:47:09 +00:00
Chris Lattner
3e1cd5c9bf
Remove unneeded code I added.
...
llvm-svn: 51878
2008-06-02 18:39:07 +00:00
Dan Gohman
385b7d76ed
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
54660d1fcf
Correctly handle removed instructions at the beginning of MBBs when renumbering.
...
llvm-svn: 51876
2008-06-02 17:36:36 +00:00
Wojciech Matyjewicz
06e4c8a420
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
e79dd8c21a
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
feec40a71f
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
ea60f0ccc3
move CannotBeNegativeZero to ValueTracking. Simplify some signbit comparisons.
...
llvm-svn: 51864
2008-06-02 01:29:46 +00:00
Chris Lattner
4960857273
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
Owen Anderson
7700de3137
Fix two issues that Eli Friedman pointed out, where would misoptimized code like:
...
char a[200];
init(a, a+200);
OR
int a[200];
char* b = (char*)a;
char* c = (char*)a;
foo(b, c);
llvm-svn: 51850
2008-06-01 22:26:26 +00:00
Owen Anderson
d194f76cb4
Test for PR2401
...
llvm-svn: 51849
2008-06-01 21:55:55 +00:00