aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove the ability for ADCE to remove unreachable blocks in loop nests, ↵Owen Anderson2008-07-032-75/+0
| | | | | | because, as Eli pointed out, SimplifyCFG already does this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53104 91177308-0d34-0410-b5e6-96231b3b80d8
* - Remove calls to copyKillDeadInfo which is an N^2 function. Instead, ↵Evan Cheng2008-07-0316-260/+225
| | | | | | | | | propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
* isel load folding is disabled at -fast. Now hoist the check up to the top ↵Evan Cheng2008-07-031-8/+27
| | | | | | level to save some time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53096 91177308-0d34-0410-b5e6-96231b3b80d8
* Add newline at the end of Constants.cpp.Matthijs Kooijman2008-07-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53092 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-gcc sometimes marks external declarations hidden, because intializers areAnton Korobeynikov2008-07-031-1/+2
| | | | | | | processed separately. Honour such situation and emit PIC relocations properly in such case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53091 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused function.Bill Wendling2008-07-031-16/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53090 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve dom info.Devang Patel2008-07-031-0/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53089 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep track of inherited analysis (e.g. dominator tree).Devang Patel2008-07-031-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53088 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove extra FIXMEDevang Patel2008-07-031-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53087 91177308-0d34-0410-b5e6-96231b3b80d8
* Reconstruct dom info, if loop is unswitched.Devang Patel2008-07-031-4/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53086 91177308-0d34-0410-b5e6-96231b3b80d8
* LoopUnswitch does not preserve dominator info in all cases.Devang Patel2008-07-031-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53085 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r52988, "Simplify addRegisterKilled and addRegisterDead." TheDan Gohman2008-07-031-18/+18
| | | | | | | 254.gap failure was not due to this mod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53068 91177308-0d34-0410-b5e6-96231b3b80d8
* Use operator new instead of new char[].Dan Gohman2008-07-031-9/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53067 91177308-0d34-0410-b5e6-96231b3b80d8
* Use operator new instead of new char[].Dan Gohman2008-07-031-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53066 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid unnecessarily copying APInt objects.Dan Gohman2008-07-031-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53065 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct a comment.Dan Gohman2008-07-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53064 91177308-0d34-0410-b5e6-96231b3b80d8
* Use std::replace instead of std::find and push_back.Evan Cheng2008-07-031-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53063 91177308-0d34-0410-b5e6-96231b3b80d8
* Undo previous patch. It is not that simple to fix dom info here.Devang Patel2008-07-031-16/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53062 91177308-0d34-0410-b5e6-96231b3b80d8
* - Add LiveVariables::replaceKillInstruction. This does a subset of ↵Evan Cheng2008-07-033-3/+16
| | | | | | | | | instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers. - CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53061 91177308-0d34-0410-b5e6-96231b3b80d8
* commuteInstruction should preserve dead markers.Evan Cheng2008-07-031-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53060 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LiveVariables even more optional, by making it optional in the call to ↵Owen Anderson2008-07-026-71/+31
| | | | | | | | | TargetInstrInfo::convertToThreeAddressInstruction Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53058 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace a few uses of SelectionDAG::getTargetNode withDan Gohman2008-07-024-123/+83
| | | | | | | | | | | | | SelectionDAG::SelectNodeTo in the instruction selector. This updates existing nodes in place instead of creating new ones. Go back to selecting ISD::DBG_LABEL nodes into TargetInstrInfo::DBG_LABEL nodes instead of leaving them unselected, now that SelectNodeTo allows us to update them in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53057 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve dom info while simplifing loop after the unswitch.Devang Patel2008-07-021-2/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53052 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a couple more helper functions to deal withEric Christopher2008-07-021-1/+20
| | | | | | | | creating global constant strings and pointers to global constant strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53051 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r52988. It broke 254.gap on x86-64.Dan Gohman2008-07-021-18/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53050 91177308-0d34-0410-b5e6-96231b3b80d8
* TwoAddressInstructionPass doesn't really require LiveVariables, it just ↵Owen Anderson2008-07-021-14/+67
| | | | | | needs to update it if it's already around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53049 91177308-0d34-0410-b5e6-96231b3b80d8
* VStudio x64 build fixes. Looks like the x64 projects got out of date and ↵Chuck Rose III2008-07-026-101/+87
| | | | | | this brings them up to code. I've built the project with these new vcproj files for win32 and x64 both debug and release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53047 91177308-0d34-0410-b5e6-96231b3b80d8
* Use ADCE instead of just DCE. ADCE will better clean up after jump threading,Owen Anderson2008-07-021-1/+1
| | | | | | | for instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53045 91177308-0d34-0410-b5e6-96231b3b80d8
* Use df_ext_iterator to capture the reachable set without allocating an extra ↵Owen Anderson2008-07-021-17/+14
| | | | | | | | | | set. Also, move large sets and vectors out of instance variables and onto the stack, and give them more reasonable sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53044 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid a redundant call.Owen Anderson2008-07-021-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53040 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to ADCE for pruning unreachable blocks. This addresses the finalOwen Anderson2008-07-022-1/+80
| | | | | | | part of PR2509. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53038 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the default min align of CreateStackTemporary to be 1Mon P Wang2008-07-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53036 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new getMergeValues method that does not needDuncan Sands2008-07-029-83/+63
| | | | | | | | | | | to be passed the list of value types, and use this where appropriate. Inappropriate places are where the value type list is already known and may be long, in which case the existing method is more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53035 91177308-0d34-0410-b5e6-96231b3b80d8
* Use DenseSet rather than SmallPtrSet for the alive set. Using SmallPtrSetOwen Anderson2008-07-021-2/+2
| | | | | | | with a huge "size" parameter is actually quite inefficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53034 91177308-0d34-0410-b5e6-96231b3b80d8
* Have DenseSet::insert return a bool indicating whether the insertion ↵Owen Anderson2008-07-021-2/+2
| | | | | | succeeded or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53033 91177308-0d34-0410-b5e6-96231b3b80d8
* A better fix for PR2503 that doesn't pessimize GVN in the presence of ↵Owen Anderson2008-07-023-13/+41
| | | | | | unreachable blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53032 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed problem in EmitStackConvert where the source and target typeMon P Wang2008-07-023-15/+23
| | | | | | | | have different alignment by creating a stack slot with the max alignment of source and target type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53031 91177308-0d34-0410-b5e6-96231b3b80d8
* instead of aborting on shifts of i1, just implicitly fold them.Chris Lattner2008-07-021-1/+7
| | | | | | | The dag combiner can produce a shift of i1 when folding icmp i1's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53030 91177308-0d34-0410-b5e6-96231b3b80d8
* Update link to testing guide to use the new title.Matthijs Kooijman2008-07-021-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53018 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo compounded by a cut-and-pasto.Duncan Sands2008-07-021-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53012 91177308-0d34-0410-b5e6-96231b3b80d8
* Let AnalyzeNewNode take care of calling ExpungeNode.Duncan Sands2008-07-022-86/+79
| | | | | | | | This makes sure that all new nodes are expunged, not just those the top node of a new subtree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53011 91177308-0d34-0410-b5e6-96231b3b80d8
* - Use a faster priority comparison function if -fast.Evan Cheng2008-07-022-228/+304
| | | | | | | - Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53010 91177308-0d34-0410-b5e6-96231b3b80d8
* optimize StringMap::clearChris Lattner2008-07-021-6/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53009 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new (simple) StringMap::clear method, patch by PratikChris Lattner2008-07-022-4/+7
| | | | | | | Solanki! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53008 91177308-0d34-0410-b5e6-96231b3b80d8
* reuse vectors.Devang Patel2008-07-021-5/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53007 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comment.Devang Patel2008-07-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53006 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve loop data so that it is not fetched everytime it is needed.Devang Patel2008-07-021-69/+85
| | | | | | | Keep track of currentLoop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53005 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the canonical form for getting an empty structure.Bill Wendling2008-07-021-10/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53003 91177308-0d34-0410-b5e6-96231b3b80d8
* Sorry. I couldn't sleep at night knowing I put these ugly casts into the ↵Bill Wendling2008-07-023-8/+8
| | | | | | source tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53001 91177308-0d34-0410-b5e6-96231b3b80d8
* Implemented operator!= for the ImmutableList iterator.Ted Kremenek2008-07-021-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52998 91177308-0d34-0410-b5e6-96231b3b80d8