summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Enable re-materialization of instructions which have virtual register ↵Evan Cheng2008-02-223-48/+212
| | | | | | | | operands if the definition of the operand also reaches its uses. llvm-svn: 47475
* copy mmx values from/to memory with GPRs on x86-32 Chris Lattner2008-02-222-3/+28
| | | | | | | | instead of with mmx registers. This horribleness is apparently done by gcc to avoid having to insert emms in places that really should have it. This is the second half of rdar://5741668. llvm-svn: 47474
* Print getresult instruction properly.Devang Patel2008-02-221-0/+13
| | | | llvm-svn: 47473
* Print ret instruction that returns aggregates.Devang Patel2008-02-221-2/+17
| | | | llvm-svn: 47472
* Read and write getresult.Devang Patel2008-02-223-1/+17
| | | | llvm-svn: 47471
* Start using GPR's to copy around mmx value instead of mmx regs.Chris Lattner2008-02-222-0/+46
| | | | | | | | | | GCC apparently does this, and code depends on not having to do emms when this happens. This is x86-64 only so far, second half should handle x86-32. rdar://5741668 llvm-svn: 47470
* minor cleanups to LSBaseSDNode.Chris Lattner2008-02-221-18/+17
| | | | llvm-svn: 47469
* Fix compiler warning.Evan Cheng2008-02-221-1/+1
| | | | llvm-svn: 47468
* Fix a regression in 403.gcc and 186.crafty introduced in 47383. To testDan Gohman2008-02-222-28/+30
| | | | | | | that a value is >= 32, check that all of the high bits are zero, not just one or more. llvm-svn: 47467
* Added "assumption" logic for lval::FuncVal and lval::GotoLabel, and simplifiedTed Kremenek2008-02-223-13/+13
| | | | | | assumption logic for lval::DeclVal. llvm-svn: 47466
* Bug fix: For transfer function for unary "!", compare the subexpression valueTed Kremenek2008-02-221-1/+2
| | | | | | against '0' of the same bit-width. llvm-svn: 47465
* Bug fix in liveness: Only compute liveness information for VarDecls.Ted Kremenek2008-02-221-6/+7
| | | | llvm-svn: 47464
* Return "Unknown" when using the value of a function pointer whose valueTed Kremenek2008-02-211-1/+5
| | | | | | is symbolic. llvm-svn: 47463
* print getresult instruction.Devang Patel2008-02-211-0/+1
| | | | llvm-svn: 47461
* Use isa<> instead of getTypeID() to check StructType.Devang Patel2008-02-212-7/+6
| | | | llvm-svn: 47460
* Regression fix: Handle binary operators where both the left and rightTed Kremenek2008-02-211-5/+1
| | | | | | operands are symbolic lvalues. llvm-svn: 47459
* A few minor updates, removing implemented stuff and adding a couple of Eli Friedman2008-02-211-83/+110
| | | | | | new things. llvm-svn: 47458
* Make the clobber analysis a bit more smart: we only are careful about Chris Lattner2008-02-211-3/+13
| | | | | | | early clobbers if the clobber list contains a *register* not some thing like {memory}, {dirflag} etc. llvm-svn: 47457
* Added transfer function support for dispatching to functions we don't knowTed Kremenek2008-02-211-4/+14
| | | | | | | about. The default logic is to invalidate the values of all values passed-by-reference. llvm-svn: 47456
* add a test caseNate Begeman2008-02-211-0/+7
| | | | llvm-svn: 47455
* Treat clobber operands like early clobbers: if we haveChris Lattner2008-02-212-2/+27
| | | | | | | | | 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
* Clear PhysRegPartUse for the sub register as well.Bill Wendling2008-02-211-1/+1
| | | | llvm-svn: 47453
* Adjust the MaxAlignment for the special register scavenging spill slot.Bill Wendling2008-02-211-0/+3
| | | | llvm-svn: 47452
* Handle __attribute__((annotate("string")))Nate Begeman2008-02-216-7/+52
| | | | llvm-svn: 47451
* RemoveDeadBindings should now check for UninitalizedVal, as it is a nowTed Kremenek2008-02-212-2/+13
| | | | | | an error to cast it to LVal. llvm-svn: 47450
* Regression fix: Handle pointer arithmetic in unary ++/--.Ted Kremenek2008-02-211-2/+2
| | | | llvm-svn: 47449
* Help testing.Evan Cheng2008-02-211-0/+7
| | | | llvm-svn: 47448
* Removed bogus assertions regard LValues binding to UnknownVal; they canTed Kremenek2008-02-211-4/+8
| | | | | | do so implicitly. llvm-svn: 47447
* Remove incorrect casts from UnknownVal to NonLVal.Ted Kremenek2008-02-211-2/+2
| | | | llvm-svn: 47446
* FIX: Promote the correct operand.Ted Kremenek2008-02-211-1/+1
| | | | llvm-svn: 47445
* Simplified and generalized transfer function logic for casts, allowingTed Kremenek2008-02-216-63/+33
| | | | | | | | | 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
* Added transfer function support for sizeof(void)Ted Kremenek2008-02-211-5/+9
| | | | llvm-svn: 47443
* Some const initializer tests for stuff I just committed.Eli Friedman2008-02-211-0/+13
| | | | llvm-svn: 47442
* Major cleanup of path-sensitive analysis engine and the current analysisTed Kremenek2008-02-2110-1095/+1074
| | | | | | | | | | | | | | | | 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
* Clean up constant implicit cast emission; fixes a few edge cases Eli Friedman2008-02-211-24/+24
| | | | | | | invlolving implicit casts that cause both a decay to pointer type and a type conversion. llvm-svn: 47440
* Fix brace-enclosed string initializers for char arrays. From pr2079, Eli Friedman2008-02-211-3/+6
| | | | | | ahtough I had the fix in my tree previously. llvm-svn: 47439
* Change variable name to Tq (from TQ)Gabor Greif2008-02-211-2/+2
| | | | | | | | | 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
* Change a C-style cast to const_cast, to avoid a -Wcast-qual warning.Dan Gohman2008-02-211-1/+1
| | | | llvm-svn: 47437
* Added classes SolarisTargetInfo andGabor Greif2008-02-211-0/+67
| | | | | | | | | | | | | | | | | | 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
* Better names as per Evan's requestAndrew Lenharth2008-02-213-20/+22
| | | | llvm-svn: 47435
* Simplify this code, no functionality change.Nick Lewycky2008-02-211-5/+2
| | | | llvm-svn: 47434
* GlobalValues are Constants, remove redundant code. Also fix typo in a comment.Nick Lewycky2008-02-211-3/+1
| | | | llvm-svn: 47433
* Remove llvm-upgrade and update tests.Tanya Lattner2008-02-2190-1460/+1482
| | | | llvm-svn: 47432
* Dan implemented one multiply issue. Replace it with another. :)Chris Lattner2008-02-211-12/+33
| | | | llvm-svn: 47431
* Atomic op support. If any gcc test uses __sync builtins, it might start ↵Andrew Lenharth2008-02-2113-12/+589
| | | | | | failing on archs that haven't implemented them yet llvm-svn: 47430
* implement codegen support for sizeof(void), fixing PR2080.Chris Lattner2008-02-213-15/+45
| | | | llvm-svn: 47429
* Add support for matching mem operands. This fixes PR1133, patch byChris Lattner2008-02-211-1/+7
| | | | | | Eli Friedman. This implements CodeGen/Generic/2008-02-20-MatchingMem.ll. llvm-svn: 47428
* testcase for PR1133Chris Lattner2008-02-211-0/+9
| | | | llvm-svn: 47427
* Fix a (harmless) but where vregs were added to the used reg lists for Chris Lattner2008-02-212-9/+41
| | | | | | | | | | 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
* Let invoke return aggregate value.Devang Patel2008-02-213-3/+14
| | | | llvm-svn: 47425
OpenPOWER on IntegriCloud