summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix the verification for overloaded intrinsic types. Check that they areDan Gohman2007-08-161-6/+19
| | | | | | what they're supposed to be before using them. llvm-svn: 41130
* Add some more comments to GVN.Owen Anderson2007-08-161-0/+14
| | | | llvm-svn: 41129
* Add MVT::fAny for overloading intrinsics on floating-point types.Dan Gohman2007-08-161-0/+14
| | | | llvm-svn: 41128
* Cache non-local memory dependence analysis. This is a significant compileOwen Anderson2007-08-161-2/+22
| | | | | | time performance win in most cases. llvm-svn: 41126
* This adds a bunch of static functions that implement unsignedChris Lattner2007-08-161-0/+566
| | | | | | | | | | | two's complement bignum arithmetic. They could be used to implement much of APInt, but the idea is they are enough to implement APFloat as well, which the current APInt interface is not suited for. Patch by Neil Booth! llvm-svn: 41124
* Improve error handling in the linker by:Reid Spencer2007-08-161-6/+6
| | | | | | | | | | | | | 1. Eliminate redundant error messages. LinkInFile and LinkInArchive already call the error() method in each case so there's no use telling the user again that an item couldn't be linked in. 2. Improve the formatting of error messages (separating content). 3. Change the wording for the warning about unrecognized files. Make it clear that the file is being ignored. llvm-svn: 41121
* Fix some kill info update bugs; add hidden option -disable-rematerialization ↵Evan Cheng2007-08-162-1/+16
| | | | | | to turn off remat for debugging. llvm-svn: 41118
* Ensure that error messages a propagated from calls to LinkInModule so they getReid Spencer2007-08-161-3/+4
| | | | | | reported to the end user. llvm-svn: 41117
* Implement FPOWI ExpandOp.Lauro Ramos Venancio2007-08-151-0/+5
| | | | | | Fix PR1287. llvm-svn: 41112
* Properly use const qualifiersAnton Korobeynikov2007-08-151-1/+1
| | | | llvm-svn: 41111
* If the source of a move is in spill slot, the reload may be folded to ↵Evan Cheng2007-08-151-13/+19
| | | | | | essentially a load from stack slot. It's ok to mark the stack slot value as available for reuse. But it should not be clobbered since the destination of the move is live. llvm-svn: 41109
* Move ReturnAddrIndex variable to X86MachineFunctionInfo structure. This fixedAnton Korobeynikov2007-08-153-14/+24
| | | | | | hard to catch bugs with retaddr lowering llvm-svn: 41104
* add a note.Chris Lattner2007-08-151-0/+3
| | | | llvm-svn: 41103
* Dominance frontier is now required.Devang Patel2007-08-151-1/+1
| | | | llvm-svn: 41096
* Cleanup removeBlocks. Devang Patel2007-08-151-56/+70
| | | | | | | Use dominance frontier to fixup incoming edges of successor blocks not domianted by DeadBB. Use df_iterator to walk and delete basic blocks dominated by DeadBB. llvm-svn: 41095
* Remove unneeded header file.Reid Spencer2007-08-151-1/+0
| | | | llvm-svn: 41094
* Avoid triangle loops.Devang Patel2007-08-151-4/+16
| | | | llvm-svn: 41093
* Break infinite loop.Devang Patel2007-08-141-15/+17
| | | | llvm-svn: 41091
* Avoid nested loops at the moment.Devang Patel2007-08-141-0/+4
| | | | llvm-svn: 41090
* - If a def is dead, do not spill it.Evan Cheng2007-08-141-61/+115
| | | | | | | - If the defs of a spilled rematerializable MI are dead after the spill store is deleted, delete the def MI as well. llvm-svn: 41086
* Fix for PR1596: AdjustCopiesBackFrom() should conservatively check if any of ↵Evan Cheng2007-08-141-0/+13
| | | | | | its sub-registers may overlap with the interval of the copy that's being coalesced. llvm-svn: 41084
* If a MI's def is remat as well as spilled, and the store is later deemed ↵Evan Cheng2007-08-141-2/+29
| | | | | | dead, mark the def operand as isDead. llvm-svn: 41083
* Fix dominance frontier update while removing blocks.Devang Patel2007-08-141-7/+30
| | | | llvm-svn: 41082
* Eliminate PHI nodes with constant values during normal GVN processing, even whenOwen Anderson2007-08-141-1/+21
| | | | | | they're not related to eliminating a load. llvm-svn: 41081
* Be more aggressive in pruning unnecessary PHI nodes when doing PHI construction.Owen Anderson2007-08-141-28/+47
| | | | llvm-svn: 41080
* Make GVN iterative.Owen Anderson2007-08-141-1/+16
| | | | llvm-svn: 41078
* Fix a case where GVN was failing to return true when it had, in fact, modifiedOwen Anderson2007-08-141-2/+11
| | | | | | the function. llvm-svn: 41077
* Assert sooner. Fix wordings.Devang Patel2007-08-141-3/+2
| | | | llvm-svn: 41075
* If a spilled value is being reused and the use is a kill, that means there areEvan Cheng2007-08-141-18/+32
| | | | | | | no more uses within the MBB and the spilled value isn't live out of the MBB. Then it's safe to delete the spill store. llvm-svn: 41069
* If a rematerializable def is not deleted, i.e. it is also spilled, check if theEvan Cheng2007-08-141-11/+20
| | | | | | spilled value is available for reuse. llvm-svn: 41067
* Kill info update bugs.Evan Cheng2007-08-142-2/+3
| | | | llvm-svn: 41064
* Handle last value assignments.Devang Patel2007-08-141-14/+42
| | | | llvm-svn: 41063
* StartValue is already calculated.Devang Patel2007-08-141-1/+0
| | | | llvm-svn: 41062
* Re-implement trivial rematerialization. This allows def MIs whose live ↵Evan Cheng2007-08-135-273/+379
| | | | | | intervals that are coalesced to be rematerialized. llvm-svn: 41060
* Fix a typo pointd out by Maarten ter Huurne.Evan Cheng2007-08-131-1/+1
| | | | llvm-svn: 41059
* Preserve simple analysis.Devang Patel2007-08-131-4/+5
| | | | llvm-svn: 41054
* Preserve dominator info.Devang Patel2007-08-131-32/+46
| | | | llvm-svn: 41053
* Add methods to erase basic block entry.Devang Patel2007-08-131-0/+24
| | | | llvm-svn: 41052
* If NewBB dominates DestBB then DestBB is not part of NewBB's dominance frontier.Devang Patel2007-08-131-1/+5
| | | | llvm-svn: 41051
* move assertion into mutex guard, a partial fix for PR1606.Chris Lattner2007-08-131-1/+1
| | | | llvm-svn: 41050
* When x86 addresses matching exceeds its recursion limit, check toDan Gohman2007-08-131-6/+12
| | | | | | | see if the base register is already occupied before assuming it can be used. This fixes bogus code generation in the accompanying testcase. llvm-svn: 41049
* Fix PR1607Chris Lattner2007-08-131-3/+3
| | | | llvm-svn: 41048
* Constant fold: getelementptr (i8* inttoptr (i64 1 to i8*), i32 -1)Chris Lattner2007-08-131-1/+23
| | | | | | | | | | | | | | | | | | | | Into: inttoptr (i64 0 to i8*) -> null This occurs in the example in PR1602. With this fixed, we now compile the example in PR1602 into fully "devirtualized" code: define void @_Z1g1S(%struct.S* noalias %s) { entry: %tmp131415 = getelementptr %struct.S* %s, i32 0, i32 0 ; <i32 (...)***> [#uses=1] %tmp16 = load i32 (...)*** %tmp131415, align 4 ; <i32 (...)**> [#uses=1] %tmp26277 = load i32 (...)** %tmp16 ; <i32 (...)*> [#uses=1] %tmp2829 = bitcast i32 (...)* %tmp26277 to void (%struct.S*)* ; <void (%struct.S*)*> [#uses=1] tail call void %tmp2829( %struct.S* %s ) ret void } This still has the vtable dispatch (as required) but does not have any pointer to method cruft left. llvm-svn: 41046
* Kill info update bugs.Evan Cheng2007-08-131-5/+2
| | | | llvm-svn: 41043
* Split loops and do CFG cleanup.Devang Patel2007-08-121-24/+106
| | | | llvm-svn: 41029
* Remove unused variables.Reid Spencer2007-08-121-2/+2
| | | | llvm-svn: 41028
* No need to remove dead range from soon-to-be-dead live interval. Its val# ↵Evan Cheng2007-08-121-3/+3
| | | | | | may be out of whack. llvm-svn: 41024
* constant fold ptrtoint(inttoptr) with target data when available. This allowsChris Lattner2007-08-111-2/+17
| | | | | | | | | | us to fold the entry block of PR1602 to false instead of: br i1 icmp eq (i32 and (i32 ptrtoint (void (%struct.S*)* inttoptr (i64 1 to void (%struct.S*)*) to i32), i32 1), i32 0), label %cond_next, label %cond_true llvm-svn: 41023
* Transform a load from an undef/zero global into an undef/global even if weChris Lattner2007-08-111-0/+33
| | | | | | | | | | | | | | | | | | | | | have complex pointer manipulation going on. This allows us to compile stuff like this: __m128i foo(__m128i x){ static const unsigned int c_0[4] = { 0, 0, 0, 0 }; __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0); x = _mm_unpacklo_epi8(x, v_Zero); return x; } into: _foo: xorps %xmm1, %xmm1 punpcklbw %xmm1, %xmm0 ret llvm-svn: 41022
* expand a noteChris Lattner2007-08-111-3/+22
| | | | llvm-svn: 41021
OpenPOWER on IntegriCloud