Evan Cheng
2ff2da89ab
- Removing the infamous r2rMap_ and rep() method. Now the coalescer will update
...
register defs and uses after each successful coalescing.
- Also removed a number of hacks and fixed some subtle kill information bugs.
llvm-svn: 47167
2008-02-15 18:24:29 +00:00
Evan Cheng
9215129f4e
Added CommuteChangesDestination(). This returns true if commuting the specified
...
machine instr will change its definition register.
llvm-svn: 47166
2008-02-15 18:21:33 +00:00
Eli Friedman
bd258284e0
Split out incomplete arrays from VariableArrayType into
...
IncompleteArrayType. This should make code dealing with both incomplete
and variable length arrays much more readable, plus it allows properly
making the distinction between isVariableArrayType() and
isVariablyModifiedType(). The patch is a little big, but it's
strightforward. so I don't think there should be any issues.
llvm-svn: 47165
2008-02-15 18:16:39 +00:00
Evan Cheng
78b0edb957
Remove unnecessary #include.
...
llvm-svn: 47164
2008-02-15 18:12:09 +00:00
Dan Gohman
a36ade5595
Use StoreSDNode::getValue instead of calling getOperand directly
...
with a hard-coded operand number.
llvm-svn: 47163
2008-02-15 18:11:59 +00:00
Dale Johannesen
67b818f503
Remove warning about 64-bit code on processor
...
that doesn't support it. Per Chris.
llvm-svn: 47162
2008-02-15 18:09:51 +00:00
Lauro Ramos Venancio
eab51d3a04
It is not safe to call fork in PrintStackTrace. Sometimes it freezes the program.
...
llvm-svn: 47161
2008-02-15 18:05:54 +00:00
Chris Lattner
287c734075
Fix PR2041: restrict is not a keyword in c90.
...
llvm-svn: 47160
2008-02-15 18:02:59 +00:00
Eli Friedman
9e805b24fd
Part of clearing up the whole VariableArrayType + incomplete arrays
...
thing. Some cleanups that can be done independently of the fix.
llvm-svn: 47158
2008-02-15 12:53:51 +00:00
Eli Friedman
783a5c262b
Remove unnecessary references to VariableArrayType from Analysis.
...
llvm-svn: 47157
2008-02-15 12:28:27 +00:00
Eli Friedman
a682d39639
Remove useless parameter from isConstantSizeType.
...
llvm-svn: 47156
2008-02-15 12:20:59 +00:00
Anders Carlsson
1a84106117
Get rid of AttributeList in the AST and use the new Attr class instead
...
llvm-svn: 47155
2008-02-15 07:04:12 +00:00
Eli Friedman
78e47634b2
Get rid of outdated code that masks type errors. Fixes PR2036.
...
llvm-svn: 47154
2008-02-15 06:56:02 +00:00
Eli Friedman
e9d0954c06
Nevermind, these tests work... I messed up my testing.
...
llvm-svn: 47153
2008-02-15 06:29:53 +00:00
Eli Friedman
a01cfa75eb
Partial fix for struct compatibility; there's still something messy
...
going on with mixing scopes, though.
llvm-svn: 47152
2008-02-15 06:03:44 +00:00
Dan Gohman
4490ef5b07
Change MemOperand's size and offset to be 64-bit.
...
llvm-svn: 47151
2008-02-15 01:29:57 +00:00
Devang Patel
a42c3147cc
Fix PR2028
...
llvm-svn: 47150
2008-02-15 01:24:49 +00:00
Dale Johannesen
401a4d72d5
nocona, core2 and penryn support 64 bit.
...
llvm-svn: 47149
2008-02-15 01:22:41 +00:00
Chris Lattner
1dd86b1154
Support vector constant zeros, thanks to Zack Rusin for the testcase.
...
llvm-svn: 47148
2008-02-15 00:57:28 +00:00
Ted Kremenek
bc0ba39a1e
Added boilerplate transfer function support for pointer arithmetic operations.
...
llvm-svn: 47147
2008-02-15 00:52:26 +00:00
Ted Kremenek
e161afc4dd
Added --grsimple-view option to clang driver; this is the same as
...
--grsimple except that it visualizes the ExplodedGraph using dot and
outputs the current function being analyzed. --grsimple is now silent
except when it emits diagnostics.
llvm-svn: 47146
2008-02-15 00:35:38 +00:00
Dale Johannesen
6ca3ccf519
Rewrite tblgen handling of subtarget features so
...
it follows the order of the enum, not alphabetical.
The motivation is to make -mattr=+ssse3,+sse41
select SSE41 as it ought to. Added "ignored"
enum values of 0 to PPC and SPU to avoid compiler
warnings.
llvm-svn: 47143
2008-02-14 23:35:16 +00:00
Ted Kremenek
8e6f6e05c3
Added "symbol iterators" for RValues, allowing easy iteration over the symbols
...
referenced by an RValue, instead of having to query the type of the RValue.
Modified ValueState::RemoveDeadBindings to also prune dead symbols.
llvm-svn: 47142
2008-02-14 23:25:54 +00:00
Devang Patel
2e622e4c2b
If loop header is also loop exiting block then OrigPN is incoming value for B loop header.
...
Fixes PR 2030.
llvm-svn: 47141
2008-02-14 23:18:47 +00:00
Ted Kremenek
5b70a22656
When visualizing ExplodedNodes created by GRExprEngine, color nodes with
...
null-dereferences or bad control-flow red.
llvm-svn: 47140
2008-02-14 22:54:53 +00:00
Ted Kremenek
5d8bab7ecd
Don't analyze functions when we have parse errors.
...
llvm-svn: 47139
2008-02-14 22:54:17 +00:00
Dan Gohman
c354ebddd1
Fix a warning about comparison between signed and unsigned,
...
being consistent with the rest of the APInt implementation.
llvm-svn: 47138
2008-02-14 22:38:45 +00:00
Ted Kremenek
d3122cb83c
Renamed GRConstants => GRSimpleVals.
...
Moved driver logic for --grsimple to GRSimpleVals.cpp.
llvm-svn: 47137
2008-02-14 22:36:46 +00:00
Ted Kremenek
bd8957b6b2
#include cleanups in GRExprEngine.cpp/GRExprEngine.h. Moved GRExprEngine to
...
clang namespace.
llvm-svn: 47136
2008-02-14 22:16:04 +00:00
Ted Kremenek
64de207c52
Partitioned definition/implementation of GRExperEngine into .h and .cpp.
...
Still some cleanup to do, but this initial checkin compiles and runs correctly.
llvm-svn: 47135
2008-02-14 22:13:12 +00:00
Ted Kremenek
cf7cf8e8b0
Migrated transfer functions for binary operators for simple value tracking
...
from RValues to GRTransferFuncs/GRSimpleVals.
llvm-svn: 47131
2008-02-14 19:37:24 +00:00
Chris Lattner
99a59b6ba0
ParseCompoundStatementBody expects to only be called with { as the current
...
token. Diagnose when the { is missing in objc @try blocks instead of aborting.
llvm-svn: 47130
2008-02-14 19:27:54 +00:00
Chris Lattner
70e294660a
Fix PR2029
...
llvm-svn: 47129
2008-02-14 19:18:13 +00:00
Chris Lattner
558a3ba17f
Fix a miscompilation from Dan's recent apintification.
...
llvm-svn: 47128
2008-02-14 18:48:56 +00:00
Nate Begeman
4b3210a3ec
Fix single precision FP constants on SPU. They are actually legal,
...
which allows us to kill a target-specific node.
llvm-svn: 47127
2008-02-14 18:43:04 +00:00
Ted Kremenek
4bad8f7ad6
Migrated transfer functions for unary "~" and "-" to GRTransferFuncs/GRSimpleVals.
...
llvm-svn: 47126
2008-02-14 18:40:24 +00:00
Ted Kremenek
3ca942969e
Started partitioning of transfer function logic (and thus the policy behind
...
these operations) into GRTransferFuncs and its subclasses. Originally all
of this logic was handled by the class RValue, but in reality different
analyses will want more flexibility on how they evaluate different values.
Transfer functions migrated so far: "Cast"
llvm-svn: 47125
2008-02-14 18:28:23 +00:00
Duncan Sands
551d3e6303
Rename CFEBuildInstrs.html to GCCFEBuildInstrs.html.
...
Update all references to it and place a redirection
page at the old address.
llvm-svn: 47124
2008-02-14 17:53:22 +00:00
Ted Kremenek
747c777bde
Moved Rvalues.h from "Analysis/" to "include/clang/Analysis/PathSensitive".
...
llvm-svn: 47123
2008-02-14 17:30:51 +00:00
Duncan Sands
4c95dbd69f
In TargetLowering::LowerCallTo, don't assert that
...
the return value is zero-extended if it isn't
sign-extended. It may also be any-extended.
Also, if a floating point value was returned
in a larger floating point type, pass 1 as the
second operand to FP_ROUND, which tells it
that all the precision is in the original type.
I think this is right but I could be wrong.
Finally, when doing libcalls, set isZExt on
a parameter if it is "unsigned". Currently
isSExt is set when signed, and nothing is
set otherwise. This should be right for all
calls to standard library routines.
llvm-svn: 47122
2008-02-14 17:28:50 +00:00
Nate Begeman
53e1b3f9d5
Change how FP immediates are handled.
...
1) ConstantFP is now expand by default
2) ConstantFP is not turned into TargetConstantFP during Legalize
if it is legal.
This allows ConstantFP to be handled like Constant, allowing for
targets that can encode FP immediates as MachineOperands.
As a bonus, fix up Itanium FP constants, which now correctly match,
and match more constants! Hooray.
llvm-svn: 47121
2008-02-14 08:57:00 +00:00
Nate Begeman
a338594236
Completed note
...
llvm-svn: 47120
2008-02-14 08:19:48 +00:00
Tanya Lattner
5429dbf6c7
Remove llvm-upgrade
...
llvm-svn: 47119
2008-02-14 07:57:12 +00:00
Anders Carlsson
b0aad621fd
Address comments from Chris.
...
llvm-svn: 47118
2008-02-14 07:43:43 +00:00
Nate Begeman
26b76b69f4
Support a new type of MachineOperand, MO_FPImmediate, used for holding
...
FP Immediates, crazily enough
llvm-svn: 47117
2008-02-14 07:39:30 +00:00
Chris Lattner
89acd61805
simplify code, no functionality change.
...
llvm-svn: 47116
2008-02-14 07:39:01 +00:00
Nate Begeman
64db2b9615
Move some useful operands up into the all-targets .td
...
llvm-svn: 47115
2008-02-14 07:25:46 +00:00
Nate Begeman
94ea004023
Nuke dead comment
...
llvm-svn: 47114
2008-02-14 07:23:11 +00:00
Nick Lewycky
9592bb0390
Testcase for PR2032.
...
llvm-svn: 47113
2008-02-14 07:15:11 +00:00
Anders Carlsson
b853a1a049
Add Attr.h which is an AST-level class for GCC attributes.
...
llvm-svn: 47112
2008-02-14 07:14:34 +00:00