Chris Lattner
e7c14013f5
Fix isNegatibleForFree to not return true for ConstantFP nodes
...
after legalize. Just because a constant is legal (e.g. 0.0 in SSE)
doesn't mean that its negated value is legal (-0.0). We could make
this stronger by checking to see if the negated constant is actually
legal post negation, but it doesn't seem like a big deal.
llvm-svn: 47591
2008-02-26 07:04:54 +00:00
Ted Kremenek
ce3563445c
Fixed inverted condition.
...
llvm-svn: 47590
2008-02-26 03:44:25 +00:00
Evan Cheng
1da250097b
Fix PR2076. CodeGenPrepare now sinks address computation for inline asm memory
...
operands into inline asm block.
llvm-svn: 47589
2008-02-26 02:42:37 +00:00
Ted Kremenek
5affb58dd6
Do include ParenExpr in the CFG; only include their subexpression.
...
llvm-svn: 47588
2008-02-26 02:37:08 +00:00
Evan Cheng
ccc0c996a4
Refactor inline asm constraint matching code out of SDIsel into TargetLowering.
...
llvm-svn: 47587
2008-02-26 02:33:44 +00:00
Ted Kremenek
06b671097d
Added lazy "symbolication" of parameter variables and global variables.
...
Added recording of divide-by-zero and divide-by-uninitialized nodes.
llvm-svn: 47586
2008-02-26 02:15:56 +00:00
Devang Patel
443018e55e
Remove debugging help.
...
llvm-svn: 47585
2008-02-26 01:42:38 +00:00
Nick Kledzik
7d870df864
test svn commit capability
...
llvm-svn: 47584
2008-02-26 01:36:52 +00:00
Devang Patel
bbfd874cb4
Update bitcode reader and writer to handle multiple return values.
...
Take 2.
llvm-svn: 47583
2008-02-26 01:29:32 +00:00
Chris Lattner
b7e656b177
add parsing, ast building and pretty printing support for C++ throw expressions.
...
Patch by Mike Stump!
llvm-svn: 47582
2008-02-26 00:51:44 +00:00
Chris Lattner
7768313c13
Fix PR2092 by making sure the sign of the enum value follows the
...
sign of its type in the early exit case. No testcase, because this
doesn't manifest as a failure.
llvm-svn: 47581
2008-02-26 00:33:57 +00:00
Chris Lattner
a3343a86ea
fix const correctness.
...
llvm-svn: 47580
2008-02-26 00:32:36 +00:00
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