Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Enable re-materialization of instructions which have virtual register ↵ | Evan Cheng | 2008-02-22 | 3 | -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 Lattner | 2008-02-22 | 2 | -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 Patel | 2008-02-22 | 1 | -0/+13 | |
| | | | | llvm-svn: 47473 | |||||
* | Print ret instruction that returns aggregates. | Devang Patel | 2008-02-22 | 1 | -2/+17 | |
| | | | | llvm-svn: 47472 | |||||
* | Read and write getresult. | Devang Patel | 2008-02-22 | 3 | -1/+17 | |
| | | | | llvm-svn: 47471 | |||||
* | Start using GPR's to copy around mmx value instead of mmx regs. | Chris Lattner | 2008-02-22 | 2 | -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 Lattner | 2008-02-22 | 1 | -18/+17 | |
| | | | | llvm-svn: 47469 | |||||
* | Fix compiler warning. | Evan Cheng | 2008-02-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 47468 | |||||
* | Fix a regression in 403.gcc and 186.crafty introduced in 47383. To test | Dan Gohman | 2008-02-22 | 2 | -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 simplified | Ted Kremenek | 2008-02-22 | 3 | -13/+13 | |
| | | | | | | assumption logic for lval::DeclVal. llvm-svn: 47466 | |||||
* | Bug fix: For transfer function for unary "!", compare the subexpression value | Ted Kremenek | 2008-02-22 | 1 | -1/+2 | |
| | | | | | | against '0' of the same bit-width. llvm-svn: 47465 | |||||
* | Bug fix in liveness: Only compute liveness information for VarDecls. | Ted Kremenek | 2008-02-22 | 1 | -6/+7 | |
| | | | | llvm-svn: 47464 | |||||
* | Return "Unknown" when using the value of a function pointer whose value | Ted Kremenek | 2008-02-21 | 1 | -1/+5 | |
| | | | | | | is symbolic. llvm-svn: 47463 | |||||
* | print getresult instruction. | Devang Patel | 2008-02-21 | 1 | -0/+1 | |
| | | | | llvm-svn: 47461 | |||||
* | Use isa<> instead of getTypeID() to check StructType. | Devang Patel | 2008-02-21 | 2 | -7/+6 | |
| | | | | llvm-svn: 47460 | |||||
* | Regression fix: Handle binary operators where both the left and right | Ted Kremenek | 2008-02-21 | 1 | -5/+1 | |
| | | | | | | operands are symbolic lvalues. llvm-svn: 47459 | |||||
* | A few minor updates, removing implemented stuff and adding a couple of | Eli Friedman | 2008-02-21 | 1 | -83/+110 | |
| | | | | | | new things. llvm-svn: 47458 | |||||
* | Make the clobber analysis a bit more smart: we only are careful about | Chris Lattner | 2008-02-21 | 1 | -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 know | Ted Kremenek | 2008-02-21 | 1 | -4/+14 | |
| | | | | | | | about. The default logic is to invalidate the values of all values passed-by-reference. llvm-svn: 47456 | |||||
* | add a test case | Nate Begeman | 2008-02-21 | 1 | -0/+7 | |
| | | | | llvm-svn: 47455 | |||||
* | Treat clobber operands like early clobbers: if we have | Chris Lattner | 2008-02-21 | 2 | -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 Wendling | 2008-02-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 47453 | |||||
* | Adjust the MaxAlignment for the special register scavenging spill slot. | Bill Wendling | 2008-02-21 | 1 | -0/+3 | |
| | | | | llvm-svn: 47452 | |||||
* | Handle __attribute__((annotate("string"))) | Nate Begeman | 2008-02-21 | 6 | -7/+52 | |
| | | | | llvm-svn: 47451 | |||||
* | RemoveDeadBindings should now check for UninitalizedVal, as it is a now | Ted Kremenek | 2008-02-21 | 2 | -2/+13 | |
| | | | | | | an error to cast it to LVal. llvm-svn: 47450 | |||||
* | Regression fix: Handle pointer arithmetic in unary ++/--. | Ted Kremenek | 2008-02-21 | 1 | -2/+2 | |
| | | | | llvm-svn: 47449 | |||||
* | Help testing. | Evan Cheng | 2008-02-21 | 1 | -0/+7 | |
| | | | | llvm-svn: 47448 | |||||
* | Removed bogus assertions regard LValues binding to UnknownVal; they can | Ted Kremenek | 2008-02-21 | 1 | -4/+8 | |
| | | | | | | do so implicitly. llvm-svn: 47447 | |||||
* | Remove incorrect casts from UnknownVal to NonLVal. | Ted Kremenek | 2008-02-21 | 1 | -2/+2 | |
| | | | | llvm-svn: 47446 | |||||
* | FIX: Promote the correct operand. | Ted Kremenek | 2008-02-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 47445 | |||||
* | Simplified and generalized transfer function logic for casts, allowing | Ted Kremenek | 2008-02-21 | 6 | -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 Kremenek | 2008-02-21 | 1 | -5/+9 | |
| | | | | llvm-svn: 47443 | |||||
* | Some const initializer tests for stuff I just committed. | Eli Friedman | 2008-02-21 | 1 | -0/+13 | |
| | | | | llvm-svn: 47442 | |||||
* | Major cleanup of path-sensitive analysis engine and the current analysis | Ted Kremenek | 2008-02-21 | 10 | -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 Friedman | 2008-02-21 | 1 | -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 Friedman | 2008-02-21 | 1 | -3/+6 | |
| | | | | | | ahtough I had the fix in my tree previously. llvm-svn: 47439 | |||||
* | Change variable name to Tq (from TQ) | Gabor Greif | 2008-02-21 | 1 | -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 Gohman | 2008-02-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 47437 | |||||
* | Added classes SolarisTargetInfo and | Gabor Greif | 2008-02-21 | 1 | -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 request | Andrew Lenharth | 2008-02-21 | 3 | -20/+22 | |
| | | | | llvm-svn: 47435 | |||||
* | Simplify this code, no functionality change. | Nick Lewycky | 2008-02-21 | 1 | -5/+2 | |
| | | | | llvm-svn: 47434 | |||||
* | GlobalValues are Constants, remove redundant code. Also fix typo in a comment. | Nick Lewycky | 2008-02-21 | 1 | -3/+1 | |
| | | | | llvm-svn: 47433 | |||||
* | Remove llvm-upgrade and update tests. | Tanya Lattner | 2008-02-21 | 90 | -1460/+1482 | |
| | | | | llvm-svn: 47432 | |||||
* | Dan implemented one multiply issue. Replace it with another. :) | Chris Lattner | 2008-02-21 | 1 | -12/+33 | |
| | | | | llvm-svn: 47431 | |||||
* | Atomic op support. If any gcc test uses __sync builtins, it might start ↵ | Andrew Lenharth | 2008-02-21 | 13 | -12/+589 | |
| | | | | | | failing on archs that haven't implemented them yet llvm-svn: 47430 | |||||
* | implement codegen support for sizeof(void), fixing PR2080. | Chris Lattner | 2008-02-21 | 3 | -15/+45 | |
| | | | | llvm-svn: 47429 | |||||
* | Add support for matching mem operands. This fixes PR1133, patch by | Chris Lattner | 2008-02-21 | 1 | -1/+7 | |
| | | | | | | Eli Friedman. This implements CodeGen/Generic/2008-02-20-MatchingMem.ll. llvm-svn: 47428 | |||||
* | testcase for PR1133 | Chris Lattner | 2008-02-21 | 1 | -0/+9 | |
| | | | | llvm-svn: 47427 | |||||
* | Fix a (harmless) but where vregs were added to the used reg lists for | Chris Lattner | 2008-02-21 | 2 | -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 Patel | 2008-02-21 | 3 | -3/+14 | |
| | | | | llvm-svn: 47425 |