Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Allow ArraySubscriptExpr to be a base node for vector dereference. This | Nate Begeman | 2008-02-19 | 1 | -1/+1 |
| | | | | | | | | | allows you to do things like typedef __attribute__(( ocu_vector_type(4))) float float4; float4 *x; float y = x[0][2]; llvm-svn: 47295 | ||||
* | Added FIXME for properly handling local arrays using symbolic LValues. | Ted Kremenek | 2008-02-19 | 1 | -0/+5 |
| | | | | | | For now we just treat their values as "Unknown." llvm-svn: 47294 | ||||
* | --grsimple now reports the number of nodes in the ExplodedGraph for | Ted Kremenek | 2008-02-19 | 6 | -25/+61 |
| | | | | | | | | | an analyzed function. GRExprEngine now records stores to "uninitialized lvalues" (which are sinks in the ExplodedGraph). llvm-svn: 47293 | ||||
* | A global without initializer must be emitted as weak. | Lauro Ramos Venancio | 2008-02-19 | 2 | -0/+6 |
| | | | | | | Fix Olden/bh test. llvm-svn: 47292 | ||||
* | - When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should ↵ | Evan Cheng | 2008-02-18 | 8 | -60/+129 |
| | | | | | | | | check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type. - X86 now normalize SCALAR_TO_VECTOR to (BIT_CONVERT (v4i32 SCALAR_TO_VECTOR)). Get rid of X86ISD::S2VEC. llvm-svn: 47290 | ||||
* | Added "size()" and "empty()" methods to ExplodedGraphImpl. | Ted Kremenek | 2008-02-18 | 1 | -1/+9 |
| | | | | llvm-svn: 47289 | ||||
* | Added more assertions and checks in transfer function logic to check for | Ted Kremenek | 2008-02-18 | 4 | -15/+97 |
| | | | | | | UninitializedVals and UnknownVals. llvm-svn: 47288 | ||||
* | Correctly fold divide-by-constant, even when faced with overflow. | Nick Lewycky | 2008-02-18 | 3 | -2/+50 |
| | | | | llvm-svn: 47287 | ||||
* | Implement multi-dimension array initalizer. | Lauro Ramos Venancio | 2008-02-18 | 2 | -65/+97 |
| | | | | | | Fix McCat/08-main test. llvm-svn: 47286 | ||||
* | Running -grsimple now emits diagnostics about the time spent analyzing each ↵ | Ted Kremenek | 2008-02-18 | 3 | -9/+41 |
| | | | | | | | | | | | | function. Will probably make this a separate command line option later. Added "--analyze-function" option to the driver to (gradually) allow different analyses to only be run on specific functions. Currently only --grsimple uses this option. llvm-svn: 47285 | ||||
* | Temporary solution to push analysis through to analyzing PCRE. | Ted Kremenek | 2008-02-18 | 1 | -2/+4 |
| | | | | | | We will implement symbol "unification" later. llvm-svn: 47284 | ||||
* | Chris pointed out that it's not necessary to set i64 MUL to Expand | Dan Gohman | 2008-02-18 | 1 | -12/+10 |
| | | | | | | | on x86-32 since i64 itself is not a Legal type. And, update some comments. llvm-svn: 47282 | ||||
* | - Remove the previous check which broke coalescer-commute3.ll | Evan Cheng | 2008-02-18 | 1 | -5/+5 |
| | | | | | | - For now, conservatively ignore copy MI whose source is a physical register. Commuting its def MI can cause a physical register live interval to be live through a loop (since we know it's live coming into the def MI). llvm-svn: 47281 | ||||
* | upgrade some tests. | Chris Lattner | 2008-02-18 | 1 | -39/+43 |
| | | | | llvm-svn: 47280 | ||||
* | Add a note | Nate Begeman | 2008-02-18 | 1 | -0/+3 |
| | | | | llvm-svn: 47279 | ||||
* | Add a note about sext from i1 plus flags use. | Chris Lattner | 2008-02-18 | 1 | -0/+52 |
| | | | | llvm-svn: 47278 | ||||
* | Don't mark scalar integer multiplication as Expand on x86, since x86 | Dan Gohman | 2008-02-18 | 2 | -5/+14 |
| | | | | | | | | | | | | | has plain one-result scalar integer multiplication instructions. This avoids expanding such instructions into MUL_LOHI sequences that must be special-cased at isel time, and avoids the problem with that code that provented memory operands from being folded. This fixes PR1874, addressesing the most common case. The uncommon cases of optimizing multiply-high operations will require work in DAGCombiner. llvm-svn: 47277 | ||||
* | Transforming -A + -B --> -(A + B) isn't safe for FP, thanks | Chris Lattner | 2008-02-18 | 1 | -4/+6 |
| | | | | | | to Dale for noticing this! llvm-svn: 47276 | ||||
* | minor code simplification, no functionality change. | Chris Lattner | 2008-02-18 | 1 | -8/+6 |
| | | | | llvm-svn: 47275 | ||||
* | make this just a bit more strict. | Chris Lattner | 2008-02-18 | 1 | -1/+1 |
| | | | | llvm-svn: 47274 | ||||
* | Simplify caller updating using a CallSite, as | Duncan Sands | 2008-02-18 | 3 | -22/+21 |
| | | | | | | | | requested by Chris. While there, do the same for an existing function committed by someone called "lattner" :) llvm-svn: 47273 | ||||
* | don't bother calling getUnderlyingObject for non-pointers. | Chris Lattner | 2008-02-18 | 1 | -1/+2 |
| | | | | llvm-svn: 47272 | ||||
* | Fix a missing space in the description of the find-bugs option. | Dan Gohman | 2008-02-18 | 1 | -1/+1 |
| | | | | llvm-svn: 47271 | ||||
* | Add more supported constraints. | Anders Carlsson | 2008-02-18 | 2 | -0/+3 |
| | | | | llvm-svn: 47270 | ||||
* | Tweak fix for http://llvm.org/bugs/show_bug.cgi?id=2000 to work across typedefs. | Steve Naroff | 2008-02-18 | 2 | -1/+11 |
| | | | | llvm-svn: 47269 | ||||
* | Since we're not checking for the more general AllocationInst first, we need ↵ | Owen Anderson | 2008-02-18 | 1 | -1/+1 |
| | | | | | | | | to explicitly check that Object is an Argument before casting it to one. llvm-svn: 47268 | ||||
* | New helper function getMBBFromIndex() that given an index in any instruction ↵ | Roman Levenstein | 2008-02-18 | 2 | -16/+30 |
| | | | | | | of an MBB returns a pointer the MBB. Reviewed by Evan. llvm-svn: 47267 | ||||
* | Add support to GVN for performing sret return slot optimization. This means ↵ | Owen Anderson | 2008-02-18 | 2 | -2/+94 |
| | | | | | | | | | | | that, if an sret function tail calls another sret function, it should pass its own sret parameter to the tail callee, allowing it to fill in the correct return value. llvm-gcc does not emit this by default. Instead, it allocates space in the caller for the sret of the tail call and then uses memcpy to copy the result into the caller's sret parameter. This optimization detects and optimizes that case. llvm-svn: 47265 | ||||
* | I got the predicate backwards in my last patch. The comment is correct, the ↵ | Owen Anderson | 2008-02-18 | 1 | -1/+1 |
| | | | | | | code was not. llvm-svn: 47264 | ||||
* | This check is not correct for mallocs, so exclude them earlier. | Owen Anderson | 2008-02-18 | 1 | -2/+2 |
| | | | | llvm-svn: 47263 | ||||
* | For now, avoid commuting def MI for copy MI's whose source is not killed. ↵ | Evan Cheng | 2008-02-18 | 1 | -0/+7 |
| | | | | | | That simply trade a live interval for another and because only the non-two-address operands can be folded into loads, may end up pessimising code. llvm-svn: 47262 | ||||
* | switch simplifycfg from using vectors for most things to smallvectors, | Chris Lattner | 2008-02-18 | 1 | -14/+12 |
| | | | | | | this speeds it up 2.3% on eon. llvm-svn: 47261 | ||||
* | More bitfield improvements. | Anders Carlsson | 2008-02-18 | 1 | -19/+53 |
| | | | | llvm-svn: 47260 | ||||
* | Fix bug where we would report the wrong value for __alignof__ with an expr ↵ | Anders Carlsson | 2008-02-18 | 1 | -5/+6 |
| | | | | | | that is not a type. llvm-svn: 47259 | ||||
* | optimize away stackrestore calls that have no intervening alloca or call. | Chris Lattner | 2008-02-18 | 2 | -13/+58 |
| | | | | llvm-svn: 47258 | ||||
* | upgrade this test. | Chris Lattner | 2008-02-18 | 1 | -11/+11 |
| | | | | llvm-svn: 47257 | ||||
* | Clarify that 'sret' only applies to pointers, and | Duncan Sands | 2008-02-18 | 1 | -2/+3 |
| | | | | | | only applies to the first parameter. llvm-svn: 47256 | ||||
* | Make the definition of the noalias attribute clearer. | Owen Anderson | 2008-02-18 | 1 | -2/+3 |
| | | | | llvm-svn: 47255 | ||||
* | Duncan pointed out that we can fast fail here, because the sret parameter of | Owen Anderson | 2008-02-18 | 1 | -1/+2 |
| | | | | | | a function must be the first parameter. llvm-svn: 47254 | ||||
* | Fix a comment, and a bug where we weren't applying the tail call logic in ↵ | Owen Anderson | 2008-02-18 | 1 | -6/+8 |
| | | | | | | cases that failed the first test. llvm-svn: 47253 | ||||
* | Fix bugs that Chris noticed in my last patch. | Owen Anderson | 2008-02-18 | 1 | -9/+17 |
| | | | | llvm-svn: 47252 | ||||
* | simplify some code, BreakUpSubtract always returns nonnull now. | Chris Lattner | 2008-02-18 | 1 | -4/+2 |
| | | | | llvm-svn: 47251 | ||||
* | bitcasts of pointers are always pointers. | Chris Lattner | 2008-02-18 | 1 | -5/+2 |
| | | | | | | | If we see a memcpy of a pointer, make sure to check later uses of the pointer as well. llvm-svn: 47250 | ||||
* | Add support for setting parameters to CallSite. | Owen Anderson | 2008-02-18 | 1 | -0/+9 |
| | | | | llvm-svn: 47249 | ||||
* | Add a predicate to Argument to check for the StructRet attribute. | Owen Anderson | 2008-02-17 | 2 | -0/+11 |
| | | | | llvm-svn: 47248 | ||||
* | Teach getModRefInfo that memcpy, memmove, and memset don't "capture" memory ↵ | Owen Anderson | 2008-02-17 | 1 | -3/+13 |
| | | | | | | | | | addresses. Also, noalias arguments are be considered "like" stack allocated ones for this purpose, because the only way they can be modref'ed is if they escape somewhere in the current function. llvm-svn: 47247 | ||||
* | Turn handling of parameter attributes back on, fixing the ObjC breakage | Nate Begeman | 2008-02-17 | 2 | -2/+3 |
| | | | | llvm-svn: 47246 | ||||
* | Revert this temporarily, it's breaking objc :/ | Nate Begeman | 2008-02-17 | 1 | -2/+2 |
| | | | | llvm-svn: 47245 | ||||
* | Fold (-x + -y) -> -(x+y) which promotes better association, fixing | Chris Lattner | 2008-02-17 | 2 | -2/+22 |
| | | | | | | the second half of PR2047 llvm-svn: 47244 | ||||
* | Handle parameter attributes | Nate Begeman | 2008-02-17 | 1 | -3/+3 |
| | | | | llvm-svn: 47243 |