Ted Kremenek
f699882a76
Fixed bug in CFG construction when a CompoundStmt ended with a NullStmt.
...
This caused the whole body to get dropped from the CFG.
llvm-svn: 47579
2008-02-26 00:22:58 +00:00
Ted Kremenek
733f810600
Added FIXME.
...
llvm-svn: 47578
2008-02-26 00:20:52 +00:00
Devang Patel
767338ccec
Pass const vectors by reference.
...
llvm-svn: 47577
2008-02-26 00:12:13 +00:00
Eli Friedman
ad7d8edeeb
Add missing include (for ptrdiff_t).
...
llvm-svn: 47576
2008-02-25 23:35:32 +00:00
Dan Gohman
a790af3a88
Revert the assert for MUL_LOHI with an unused high result; Chris
...
pointed out that this isn't correct at -O0.
llvm-svn: 47575
2008-02-25 22:43:48 +00:00
Andrew Lenharth
dddb68c63a
when making bytecode modules, link as library
...
llvm-svn: 47574
2008-02-25 22:41:55 +00:00
Dale Johannesen
65b404d61c
Revise previous patch per review.
...
llvm-svn: 47573
2008-02-25 22:29:22 +00:00
Ted Kremenek
7845b2607a
Minor bug fix in LiveVariables: don't "kill" decls referenced by a DeclStmt
...
that aren't VarDecls.
llvm-svn: 47572
2008-02-25 22:28:54 +00:00
Dan Gohman
8c7a9228de
Factor the assert for indexed loads/stores out of LoadSDNode
...
and StoreSDNode into LSBaseSDNode.
llvm-svn: 47570
2008-02-25 22:16:29 +00:00
Dan Gohman
0be2f3b941
Add an assert to verify that we don't see an
...
{S,U}MUL_LOHI with an unused high value.
llvm-svn: 47569
2008-02-25 22:15:55 +00:00
Eli Friedman
0992b38a78
Fix a little typo... per cfe-dev, this was apparently causing test
...
failures on OS X in some cases. (Thank you valgrind.)
llvm-svn: 47568
2008-02-25 22:11:40 +00:00
Dan Gohman
2ff975e749
Remove the hack that turned an {S,U}MUL_LOHI with an unused high
...
result into a MUL late in the X86 codegen process. ISD::MUL is
once again Legal on X86, so this is no longer needed. And, the
hack was suboptimal; see PR1874 for details.
llvm-svn: 47567
2008-02-25 21:57:04 +00:00
Dan Gohman
432e4a6742
Make some static variables const.
...
llvm-svn: 47566
2008-02-25 21:39:34 +00:00
Chris Lattner
f5c619f98c
clarify comment, this is undefined behavior in any case, even if it only
...
bits VC++ right now.
llvm-svn: 47565
2008-02-25 21:38:21 +00:00
Ted Kremenek
3ed28de5cc
doxygenify some comments.
...
llvm-svn: 47564
2008-02-25 21:33:32 +00:00
Chris Lattner
0f5a7ddc39
add an assertion to catch a null PATypeHolder, patch by Erick Tryzelaar
...
llvm-svn: 47563
2008-02-25 21:28:46 +00:00
Ted Kremenek
3a6fd9c177
Better handling of calls to functions via function pointers.
...
llvm-svn: 47562
2008-02-25 21:16:03 +00:00
Dan Gohman
1f372edd97
Convert MaskedValueIsZero and all its users to use APInt. Also add
...
a SignBitIsZero function to simplify a common use case.
llvm-svn: 47561
2008-02-25 21:11:39 +00:00
Chris Lattner
eb85ab44f2
convert tabs to spaces, patch by Mike Stump!
...
llvm-svn: 47560
2008-02-25 21:04:36 +00:00
Chris Lattner
451aea8e81
add LSBaseSDNode::getOffset at Dan's request.
...
llvm-svn: 47558
2008-02-25 19:31:21 +00:00
Evan Cheng
548677022c
All remat'ed loads cannot be folded into two-address code. Not just argument loads. This change doesn't really have any impact on codegen.
...
llvm-svn: 47557
2008-02-25 19:24:01 +00:00
Chris Lattner
8483d43749
prune #includes, fit in 80 cols.
...
llvm-svn: 47556
2008-02-25 19:21:38 +00:00
Chris Lattner
149a242743
make this self contained.
...
llvm-svn: 47555
2008-02-25 19:20:57 +00:00
Dale Johannesen
32d84b1772
Expand removal of MMX memory copies to allow 1 level
...
of TokenFactor underneath chain (seems to be enough)
llvm-svn: 47554
2008-02-25 19:20:14 +00:00
Lauro Ramos Venancio
4400a85ce8
Revert an incorrect part of my previuos patch.
...
llvm-svn: 47553
2008-02-25 19:08:51 +00:00
Dan Gohman
6610e9ec83
Add a new method to SDNode/SDOperand named getValueSizeInBits
...
that combines getValueType and MVT::getSizeInBits, since this
occurrs frequently.
llvm-svn: 47552
2008-02-25 19:08:02 +00:00
Lauro Ramos Venancio
8983891531
Fix PR2086.
...
llvm-svn: 47551
2008-02-25 19:03:15 +00:00
Ted Kremenek
eb079dc502
Fixed bug in RemoveDeadBindings when performing the mark-and-sweep over the
...
symbolic store: VarDecl's inserted into the sweep may not always bind to
anything; handle this special case just like bindings to uninitialized values.
llvm-svn: 47550
2008-02-25 18:56:23 +00:00
Ted Kremenek
3866746569
Expanded transfer function support for divide-by-zero checking to include
...
"remainder-by-zero" checking (operator '%').
llvm-svn: 47549
2008-02-25 18:42:54 +00:00
Ted Kremenek
b23cc7191f
Added hack to transfer function logic to handle the case where a DeclRefExpr
...
wrapping an EnumConstantDecl evaluates to an integer type that has a different
signedness than the APSInt stored in the EnumConstantDecl. Will file a Bugzilla
report.
llvm-svn: 47548
2008-02-25 18:34:45 +00:00
Ted Kremenek
6f92e2294a
Added transfer function support for checking for divide-by-zero errors.
...
llvm-svn: 47547
2008-02-25 17:51:31 +00:00
Duncan Sands
896c519d19
In debug builds check that the key property holds: all
...
result and operand types are legal.
llvm-svn: 47546
2008-02-25 16:21:21 +00:00
Evan Cheng
589a9fb6dc
Correctly determine whether a argument load can be folded into its uses.
...
llvm-svn: 47545
2008-02-25 08:50:41 +00:00
Owen Anderson
df1d2b02f9
Fix an issue where GVN was performing the return slot optimization when it was
...
not safe. This is fixed by more aggressively checking that the return slot is
not used elsewhere in the function.
llvm-svn: 47544
2008-02-25 04:08:09 +00:00
Chris Lattner
cb0d62c70d
enable digraphs for C94, thanks to Neil for pointing this out.
...
llvm-svn: 47543
2008-02-25 04:01:39 +00:00
Evan Cheng
01d6257e81
Temporarily reverting 46959.
...
llvm-svn: 47542
2008-02-25 03:57:32 +00:00
Owen Anderson
40dca46ddb
Fix an issue where GVN would try to use an instruction before its definition when performing return slot optimization.
...
llvm-svn: 47541
2008-02-25 00:40:41 +00:00
Chris Lattner
5329e7e5ed
Fix PR2090, a typo in digraph processing.
...
llvm-svn: 47540
2008-02-24 19:05:57 +00:00
Chris Lattner
89a62c8fff
Update comment.
...
llvm-svn: 47539
2008-02-24 19:04:33 +00:00
Steve Naroff
f0ed31aafe
Move the initialization of SEL/objc_selector from Sema::Sema() to Sema::ActOnTranslationUnitScope() and make sure the type/struct get inserted into the translation unit scope.
...
Bug submitted by David Chisnall (thanks!).
llvm-svn: 47538
2008-02-24 16:25:02 +00:00
Duncan Sands
ba3d7e8e7d
Add support to LegalizeTypes for building legal vectors
...
out of illegal elements (BUILD_VECTOR). Uses and beefs
up BUILD_PAIR, though it didn't really have to. Like
most of LegalizeTypes, does not support soft-float.
This cures all "make check" vector building failures.
llvm-svn: 47537
2008-02-24 07:36:03 +00:00
Ted Kremenek
72be068ab3
Two more Windows-related fixes:
...
- More enum signeness bitfield fixes (MSVC treats enums as signed).
- Fixed in Lex/HeaderSearch.cpp an unsafe copy between two
HeaderSearch::PerFileInfo entries in a common vector. The copy involved two
calls to getFileInfo() within the assignment; these calls could have
side-effects that enlarged the internal vector, and with MSVC this would
invalidate one of the values in the assignment.
Patch by Argiris Kirtzidis!
llvm-svn: 47536
2008-02-24 03:55:14 +00:00
Ted Kremenek
d87eef89c8
In FileManager: use full paths to unique files and directories on Windows,
...
since inodes are bogus abstraction on that platform.
Patch by Argiris Kirtzidis!
llvm-svn: 47535
2008-02-24 03:15:25 +00:00
Bill Wendling
a7d1ed4c98
Some platforms use the same name for 32-bit and 64-bit registers (like
...
%r3 on PPC) in their ASM files. However, it's hard for humans to read
during debugging. Adding a new field to the register data that lets you
specify a different name to be printed than the one that goes into the
ASM file -- %x3 instead of %r3, for instance.
llvm-svn: 47534
2008-02-24 00:56:13 +00:00
Evan Cheng
2f18c39720
Backing out r47521 for now. This has broken a number of tests.
...
llvm-svn: 47533
2008-02-23 19:32:32 +00:00
Scott Michel
7d5eaec6dd
Merge current work back to tree to minimize diffs and drift. Major highlights
...
for CellSPU modifications:
- SPUInstrInfo.td refactoring: "multiclass" really is _your_ friend.
- Other improvements based on refactoring effort in SPUISelLowering.cpp,
esp. in SPUISelLowering::PerformDAGCombine(), where zero amount shifts and
rotates are now eliminiated, other scalar-to-vector-to-scalar silliness
is also eliminated.
- 64-bit operations are being implemented, _muldi3.c gcc runtime now
compiles and generates the right code. More work still needs to be done.
llvm-svn: 47532
2008-02-23 18:41:37 +00:00
Zhou Sheng
aae582ba99
Testcase for Revision 47478.
...
llvm-svn: 47531
2008-02-23 10:59:51 +00:00
Eli Friedman
401675b0de
Minor code cleanup.
...
llvm-svn: 47530
2008-02-23 07:32:49 +00:00
Evan Cheng
504c645b3e
Rematerialization logic was overly conservative when it comes to loads from fixed stack slots.
...
llvm-svn: 47529
2008-02-23 03:38:34 +00:00
Evan Cheng
405827dc26
Update test.
...
llvm-svn: 47527
2008-02-23 02:57:25 +00:00