Ted Kremenek
20c91421fe
Bug fix in liveness: Only compute liveness information for VarDecls.
...
llvm-svn: 47464
2008-02-22 00:34:10 +00:00
Ted Kremenek
eb653882de
Return "Unknown" when using the value of a function pointer whose value
...
is symbolic.
llvm-svn: 47463
2008-02-21 23:17:39 +00:00
Devang Patel
35519d51d6
print getresult instruction.
...
llvm-svn: 47461
2008-02-21 23:02:20 +00:00
Devang Patel
9fea019759
Use isa<> instead of getTypeID() to check StructType.
...
llvm-svn: 47460
2008-02-21 22:24:17 +00:00
Ted Kremenek
6d2bbd9467
Regression fix: Handle binary operators where both the left and right
...
operands are symbolic lvalues.
llvm-svn: 47459
2008-02-21 22:08:33 +00:00
Eli Friedman
5d8fa828f1
A few minor updates, removing implemented stuff and adding a couple of
...
new things.
llvm-svn: 47458
2008-02-21 21:16:49 +00:00
Chris Lattner
3422b673d1
Make the clobber analysis a bit more smart: we only are careful about
...
early clobbers if the clobber list contains a *register* not some thing
like {memory}, {dirflag} etc.
llvm-svn: 47457
2008-02-21 20:54:31 +00:00
Ted Kremenek
9f1ed12bc4
Added transfer function support for dispatching to functions we don't know
...
about. The default logic is to invalidate the values of all values
passed-by-reference.
llvm-svn: 47456
2008-02-21 19:46:04 +00:00
Nate Begeman
b16d53ea31
add a test case
...
llvm-svn: 47455
2008-02-21 19:44:16 +00:00
Chris Lattner
bdd4c8b04d
Treat clobber operands like early clobbers: if we have
...
any, we force sdisel to do all regalloc for an asm. This
leads to gross but correct codegen.
This fixes the rest of PR2078.
llvm-svn: 47454
2008-02-21 19:43:13 +00:00
Bill Wendling
15526b2e52
Clear PhysRegPartUse for the sub register as well.
...
llvm-svn: 47453
2008-02-21 19:35:27 +00:00
Bill Wendling
963192f40b
Adjust the MaxAlignment for the special register scavenging spill slot.
...
llvm-svn: 47452
2008-02-21 19:33:53 +00:00
Nate Begeman
d45d38d2b7
Handle __attribute__((annotate("string")))
...
llvm-svn: 47451
2008-02-21 19:30:49 +00:00
Ted Kremenek
e82c7a44d6
RemoveDeadBindings should now check for UninitalizedVal, as it is a now
...
an error to cast it to LVal.
llvm-svn: 47450
2008-02-21 19:30:14 +00:00
Ted Kremenek
7328fa6ec8
Regression fix: Handle pointer arithmetic in unary ++/--.
...
llvm-svn: 47449
2008-02-21 19:29:23 +00:00
Evan Cheng
31160f5b98
Help testing.
...
llvm-svn: 47448
2008-02-21 19:20:21 +00:00
Ted Kremenek
7f8ebb73af
Removed bogus assertions regard LValues binding to UnknownVal; they can
...
do so implicitly.
llvm-svn: 47447
2008-02-21 19:15:37 +00:00
Ted Kremenek
d21429a8e7
Remove incorrect casts from UnknownVal to NonLVal.
...
llvm-svn: 47446
2008-02-21 19:10:12 +00:00
Ted Kremenek
b1e3218125
FIX: Promote the correct operand.
...
llvm-svn: 47445
2008-02-21 18:46:24 +00:00
Ted Kremenek
7e4861b3c1
Simplified and generalized transfer function logic for casts, allowing
...
the transfer function to be invoked without an Expr* for the Cast operation.
Added implicit promotions to the transfer function logic for compound
assignments.
llvm-svn: 47444
2008-02-21 18:43:30 +00:00
Ted Kremenek
d2332f9625
Added transfer function support for sizeof(void)
...
llvm-svn: 47443
2008-02-21 18:15:29 +00:00
Eli Friedman
c62dd9d345
Some const initializer tests for stuff I just committed.
...
llvm-svn: 47442
2008-02-21 18:07:36 +00:00
Ted Kremenek
7f0639b039
Major cleanup of path-sensitive analysis engine and the current analysis
...
based on constant. prop. and limited symbolics.
- Renamed class: RValue -> RVal, LValue -> LVal, etc.
- Minor method renamings and interface cleanups.
- Tightened the RVal "type system" so that UninitializedVal and UnknownVal
cannot be cast to LVal or NonLVal. This forces these corner cases values
to be explicitly handled early before being dispatched to plug-in transfer
function logic.
- Major cleanup in the transfer function logic for binary and unary operators.
Still fixing some regressions, but we now explicitly handle Uninitialized
and Unknown values in a more rigorous way.
llvm-svn: 47441
2008-02-21 18:02:17 +00:00
Eli Friedman
a243311f1d
Clean up constant implicit cast emission; fixes a few edge cases
...
invlolving implicit casts that cause both a decay to pointer type and a
type conversion.
llvm-svn: 47440
2008-02-21 17:57:49 +00:00
Eli Friedman
115e989985
Fix brace-enclosed string initializers for char arrays. From pr2079,
...
ahtough I had the fix in my tree previously.
llvm-svn: 47439
2008-02-21 17:45:41 +00:00
Gabor Greif
5c27a96967
Change variable name to Tq (from TQ)
...
because silly gcc 3.4.6 barfs on this
construct.
Type.h defines an "enum TQ", which makes
the parser to err.
llvm-svn: 47438
2008-02-21 17:40:55 +00:00
Dan Gohman
d723b13f14
Change a C-style cast to const_cast, to avoid a -Wcast-qual warning.
...
llvm-svn: 47437
2008-02-21 17:33:24 +00:00
Gabor Greif
4999168309
Added classes SolarisTargetInfo and
...
SolarisSparcV8TargetInfo to be able
to handle "sparc-" triple prefixes.
Please be aware that this is a minimal
kludge, that pretty much duplicates
the features of DarwinPowerPCTargetInfo,
and also incorrectly uses stuff from
the PPC namespace.
But in result "make test" now passes
a lot of tests, the notable exceptions
being the objc rewrite tests and
mandel.c.
llvm-svn: 47436
2008-02-21 16:29:08 +00:00
Andrew Lenharth
7254826c40
Better names as per Evan's request
...
llvm-svn: 47435
2008-02-21 16:11:38 +00:00
Nick Lewycky
5a3db1406a
Simplify this code, no functionality change.
...
llvm-svn: 47434
2008-02-21 09:14:53 +00:00
Nick Lewycky
839adb877a
GlobalValues are Constants, remove redundant code. Also fix typo in a comment.
...
llvm-svn: 47433
2008-02-21 08:34:02 +00:00
Tanya Lattner
3cdf542f5a
Remove llvm-upgrade and update tests.
...
llvm-svn: 47432
2008-02-21 07:42:26 +00:00
Chris Lattner
e86c91f5b2
Dan implemented one multiply issue. Replace it with another. :)
...
llvm-svn: 47431
2008-02-21 06:51:29 +00:00
Andrew Lenharth
95528943e9
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet
...
llvm-svn: 47430
2008-02-21 06:45:13 +00:00
Chris Lattner
3b418d8446
implement codegen support for sizeof(void), fixing PR2080.
...
llvm-svn: 47429
2008-02-21 05:45:29 +00:00
Chris Lattner
4da4f85090
Add support for matching mem operands. This fixes PR1133, patch by
...
Eli Friedman. This implements CodeGen/Generic/2008-02-20-MatchingMem.ll.
llvm-svn: 47428
2008-02-21 05:27:19 +00:00
Chris Lattner
59f18b4de6
testcase for PR1133
...
llvm-svn: 47427
2008-02-21 05:27:08 +00:00
Chris Lattner
83c93d5afd
Fix a (harmless) but where vregs were added to the used reg lists for
...
inline asms.
Fix PR2078 by marking aliases of registers used when a register is
marked used. This prevents EAX from being allocated when AX is listed
in the clobber set for the asm.
llvm-svn: 47426
2008-02-21 04:55:52 +00:00
Devang Patel
ad582fc34b
Let invoke return aggregate value.
...
llvm-svn: 47425
2008-02-21 02:14:01 +00:00
Devang Patel
1f00b535e1
Let function call return aggregate.
...
Now, we have very first multiple return value testcase!
llvm-svn: 47424
2008-02-21 01:54:02 +00:00
Chris Lattner
a2417c9d8b
add some semantic checks for address spaces.
...
llvm-svn: 47423
2008-02-21 01:42:41 +00:00
Devang Patel
c6f915e40d
Add -disable-output option.
...
llvm-svn: 47422
2008-02-21 01:41:25 +00:00
Chris Lattner
05d8cca8b6
add a fixme.
...
llvm-svn: 47421
2008-02-21 01:32:57 +00:00
Chris Lattner
788404f312
Collect and build and process type attributes on pointers. For
...
example, we can now correctly build the type for things like:
_AS1 float * _AS2 *B;
llvm-svn: 47420
2008-02-21 01:32:26 +00:00
Chris Lattner
ed71d60f4d
move some code, no other change.
...
llvm-svn: 47419
2008-02-21 01:08:11 +00:00
Chris Lattner
efedd9ec67
move type attribute processing into the creatively named ProcessTypeAttributes method.
...
llvm-svn: 47418
2008-02-21 01:07:18 +00:00
Chris Lattner
ee0d271819
Correctly handle address space qualifiers in declspecs. This
...
allows us to correctly handle stuff like:
_AS1 float *B;
and to reject stuff like:
_AS1 _AS2* x;
llvm-svn: 47417
2008-02-21 00:48:22 +00:00
Evan Cheng
911f6bd799
Clean up some spilling code using MachineRegisterInfo.
...
llvm-svn: 47416
2008-02-21 00:34:19 +00:00
Chris Lattner
556676a20b
move ConvertDeclSpecToType into Sema
...
llvm-svn: 47415
2008-02-20 23:53:49 +00:00
Chris Lattner
dcee3a9630
rename some methods.
...
llvm-svn: 47414
2008-02-20 23:25:22 +00:00