summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* ParseDevang Patel2008-02-192-1/+11
| | | | | | %b = getresult {i32, i32} %a, i32 1 llvm-svn: 47349
* Add GetResultInst. First step for multiple return value support.Devang Patel2008-02-193-0/+34
| | | | llvm-svn: 47348
* Generated files for checkin 47342.Dale Johannesen2008-02-193-267/+267
| | | | llvm-svn: 47344
* Forgot a file, goes with 47342.Dale Johannesen2008-02-191-3/+3
| | | | llvm-svn: 47343
* Expand ParameterAttributes to 32 bits (in preparationDale Johannesen2008-02-1911-63/+82
| | | | | | | for adding alignment info, not there yet). Clean up interfaces to reference ParameterAttributes consistently. llvm-svn: 47342
* Fixed bug in APInt::Profile() where the BitWidth field was not included in theTed Kremenek2008-02-191-0/+2
| | | | | | | profile of the APSInt object. This caused unexpected Profile collisions where none should have occurred. llvm-svn: 47338
* fix some byval problems in the cbe. Closes PR2065Andrew Lenharth2008-02-191-7/+5
| | | | llvm-svn: 47337
* random cleanups.Chris Lattner2008-02-191-7/+4
| | | | llvm-svn: 47334
* Don't fold and's into test instructions if they have multiple uses.Chris Lattner2008-02-191-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | This compiles test-nofold.ll into: _test: movl $15, %ecx andl 4(%esp), %ecx testl %ecx, %ecx movl $42, %eax cmove %ecx, %eax ret instead of: _test: movl 4(%esp), %eax movl %eax, %ecx andl $15, %ecx testl $15, %eax movl $42, %eax cmove %ecx, %eax ret llvm-svn: 47330
* Fix a compiler warning.Duncan Sands2008-02-191-1/+1
| | | | llvm-svn: 47328
* remove the LowerSelect pass. The last client was the old Sparc backend, ↵Chris Lattner2008-02-196-110/+0
| | | | | | which is long dead by now. llvm-svn: 47323
* remove the lower packed pass. It can never work and even the parts that Chris Lattner2008-02-191-448/+0
| | | | | | | could work don't work fully. This fixes PR1705. Oh yeah, we don't have packed types anymore either ;-) llvm-svn: 47322
* Refactor this method a bit, and correct a test that was completely wrong but ↵Owen Anderson2008-02-191-7/+11
| | | | | | happened to work out anyways. :-) llvm-svn: 47321
* isa+cast -> dyncast.Chris Lattner2008-02-191-2/+2
| | | | llvm-svn: 47320
* simplify this code again, try 2 :)Chris Lattner2008-02-191-7/+5
| | | | llvm-svn: 47319
* Fix a comment.Owen Anderson2008-02-191-1/+1
| | | | llvm-svn: 47318
* In addition to arguments passed to it, memcpy (and all other calls) can ↵Owen Anderson2008-02-191-1/+2
| | | | | | ModRef pointers that alias their arguments as well. This fixes PR2057. llvm-svn: 47317
* Major improvements to yesterday's return slot optimization. Remove some ↵Owen Anderson2008-02-191-14/+39
| | | | | | | | unneccessary constraints, and add some others that should have been in from the first place. Document the whole thing better. llvm-svn: 47315
* Fix some minor issues folding undef, PR2052Chris Lattner2008-02-191-1/+3
| | | | llvm-svn: 47314
* fdiv/frem of undef can produce undef, because the undef operand Chris Lattner2008-02-191-4/+11
| | | | | | | can be a SNaN. We could be more aggressive and turn this into unreachable, but that is less nice, and not really worth it. llvm-svn: 47313
* regenerateChris Lattner2008-02-193-3431/+4591
| | | | llvm-svn: 47312
* Fix PR2060 by rejecting invalid types for integer constants.Chris Lattner2008-02-191-11/+15
| | | | llvm-svn: 47311
* Factor the profitability check for return slot optimization out into a ↵Owen Anderson2008-02-191-14/+26
| | | | | | | | static function. At some point in the future, this check will become smarter. llvm-svn: 47310
* An sret parameter is required to be the first parameter, so there's no need ↵Owen Anderson2008-02-191-8/+3
| | | | | | | | to loop over all the parameters of the callee looking for it. llvm-svn: 47309
* Cleanup some of my patches from yesterday. Refactor the check for which xformOwen Anderson2008-02-191-22/+23
| | | | | | | to apply to a memcpy into processInstruction. Also, fix a bug in the check due to missing braces. llvm-svn: 47307
* Fix Transforms/GVN/memcpy.ll, which Chris broke in r47275 by reordering the ↵Owen Anderson2008-02-191-1/+2
| | | | | | branches. memcpy's are a kind of CallInst. llvm-svn: 47305
* PR1909: Tail merging pass ran wild. It makes no sense to merge blocks in ↵Evan Cheng2008-02-191-3/+12
| | | | | | order to save a single instruction since a branch will be inserted for each BB. llvm-svn: 47301
* Me not like duplicated comments.Evan Cheng2008-02-191-4/+4
| | | | llvm-svn: 47300
* - When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should ↵Evan Cheng2008-02-186-60/+107
| | | | | | | | 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
* Correctly fold divide-by-constant, even when faced with overflow.Nick Lewycky2008-02-181-2/+27
| | | | llvm-svn: 47287
* Chris pointed out that it's not necessary to set i64 MUL to ExpandDan Gohman2008-02-181-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.llEvan Cheng2008-02-181-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 Lattner2008-02-181-39/+43
| | | | llvm-svn: 47280
* Add a noteNate Begeman2008-02-181-0/+3
| | | | llvm-svn: 47279
* Add a note about sext from i1 plus flags use.Chris Lattner2008-02-181-0/+52
| | | | llvm-svn: 47278
* Don't mark scalar integer multiplication as Expand on x86, since x86Dan Gohman2008-02-181-5/+6
| | | | | | | | | | | | | 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, thanksChris Lattner2008-02-181-4/+6
| | | | | | to Dale for noticing this! llvm-svn: 47276
* minor code simplification, no functionality change.Chris Lattner2008-02-181-8/+6
| | | | llvm-svn: 47275
* Simplify caller updating using a CallSite, asDuncan Sands2008-02-182-22/+20
| | | | | | | | 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 Lattner2008-02-181-1/+2
| | | | llvm-svn: 47272
* Since we're not checking for the more general AllocationInst first, we need ↵Owen Anderson2008-02-181-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 Levenstein2008-02-181-16/+0
| | | | | | 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 Anderson2008-02-181-2/+66
| | | | | | | | | | | 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 Anderson2008-02-181-1/+1
| | | | | | code was not. llvm-svn: 47264
* This check is not correct for mallocs, so exclude them earlier.Owen Anderson2008-02-181-2/+2
| | | | llvm-svn: 47263
* For now, avoid commuting def MI for copy MI's whose source is not killed. ↵Evan Cheng2008-02-181-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 Lattner2008-02-181-14/+12
| | | | | | this speeds it up 2.3% on eon. llvm-svn: 47261
* optimize away stackrestore calls that have no intervening alloca or call.Chris Lattner2008-02-181-10/+18
| | | | llvm-svn: 47258
* Duncan pointed out that we can fast fail here, because the sret parameter ofOwen Anderson2008-02-181-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 Anderson2008-02-181-6/+8
| | | | | | cases that failed the first test. llvm-svn: 47253
OpenPOWER on IntegriCloud