summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* rewrite RecursivelyDeleteTriviallyDeadInstructions to use a more efficientChris Lattner2008-11-281-16/+26
| | | | | | formulation that doesn't require set lookups or scanning a set. llvm-svn: 60203
* remove some weirdness that came from the LSR code that hasChris Lattner2008-11-281-8/+1
| | | | | | | nothing to do with dead instruction elimination. No tests in dejagnu depend on this, so I don't know what it was needed for. llvm-svn: 60202
* rewrite a big chunk of how DSE does recursive dead operand Chris Lattner2008-11-281-181/+105
| | | | | | | elimination to use more modern infrastructure. Also do a bunch of small cleanups. llvm-svn: 60201
* Scrap some boilerplate.Mikhail Glushenkov2008-11-281-35/+15
| | | | llvm-svn: 60200
* Support multiple compilation graph definitions. Not terribly useful, but ↵Mikhail Glushenkov2008-11-281-42/+51
| | | | | | makes the code more generic. llvm-svn: 60199
* Add 'hidden' and 'really_hidden' option properties.Mikhail Glushenkov2008-11-283-3/+53
| | | | llvm-svn: 60198
* Documentation: clarify what is meant by 'multiple edges'.Mikhail Glushenkov2008-11-281-1/+2
| | | | llvm-svn: 60197
* delete ErasePossiblyDeadInstructionTree, replacing uses of it withChris Lattner2008-11-271-41/+9
| | | | | | RecursivelyDeleteTriviallyDeadInstructions. llvm-svn: 60196
* Simplify LoopStrengthReduce::DeleteTriviallyDeadInstructions byChris Lattner2008-11-271-21/+20
| | | | | | | making it use RecursivelyDeleteTriviallyDeadInstructions to do the heavy lifting. llvm-svn: 60195
* enhance RecursivelyDeleteTriviallyDeadInstructions to makeChris Lattner2008-11-271-0/+9
| | | | | | PHIs dead if they are single-value. llvm-svn: 60194
* Enhance RecursivelyDeleteTriviallyDeadInstructions to optionallyChris Lattner2008-11-272-9/+21
| | | | | | return a list of deleted instructions. llvm-svn: 60193
* use continue to reduce indentationChris Lattner2008-11-271-18/+19
| | | | llvm-svn: 60192
* remove doConstantPropagation and dceInstruction, they are justChris Lattner2008-11-273-66/+34
| | | | | | | | | | wrappers around the interesting code and use an obscure iterator abstraction that dates back many many years. Move EraseDeadInstructions to Transforms/Utils and name it RecursivelyDeleteTriviallyDeadInstructions. llvm-svn: 60191
* simplify code.Chris Lattner2008-11-271-4/+12
| | | | llvm-svn: 60190
* simplify this logic.Chris Lattner2008-11-271-4/+6
| | | | llvm-svn: 60189
* Also update the README.Nick Lewycky2008-11-271-7/+1
| | | | llvm-svn: 60188
* Chris prefers icmp/select over udiv!Nick Lewycky2008-11-273-10/+19
| | | | llvm-svn: 60187
* Add a synthetic missed optimization.Nick Lewycky2008-11-271-0/+24
| | | | llvm-svn: 60186
* Add a couple of missed optimizations on integer vectors. Multiply and divideNick Lewycky2008-11-273-6/+44
| | | | | | by 1, as well as multiply by -1. llvm-svn: 60182
* remove dead diagChris Lattner2008-11-271-2/+0
| | | | llvm-svn: 60181
* defensive patch: if CGP is merging a block with the entry block, make sureChris Lattner2008-11-271-1/+8
| | | | | | it ends up being the entry block. llvm-svn: 60180
* Fix PR3138: if we merge the entry block into another block, make sure toChris Lattner2008-11-272-0/+19
| | | | | | move the other block back up into the entry position! llvm-svn: 60179
* Silence a warning.Nick Lewycky2008-11-271-1/+1
| | | | | | | Despite changing the order of evaluation, this doesn't actually change the meaning of the statement. llvm-svn: 60177
* fix build on some machines. thanks buildbotNuno Lopes2008-11-271-0/+1
| | | | llvm-svn: 60175
* fix my previous commit r60064: compare strings instead of pointersNuno Lopes2008-11-271-1/+10
| | | | llvm-svn: 60174
* switch InstCombine::visitLoadInst to use Chris Lattner2008-11-272-45/+54
| | | | | | FindAvailableLoadedValue llvm-svn: 60169
* improve const correctness.Chris Lattner2008-11-272-4/+4
| | | | llvm-svn: 60168
* enhance FindAvailableLoadedValue to make use of AliasAnalysisChris Lattner2008-11-271-1/+20
| | | | | | if it has it. llvm-svn: 60167
* move FindAvailableLoadedValue from JumpThreading to Transforms/Utils.Chris Lattner2008-11-273-63/+85
| | | | llvm-svn: 60166
* Get rid of bogus "control may reach end of non-void function ‘...’ beingBill Wendling2008-11-271-2/+2
| | | | | | inlined" message. llvm-svn: 60165
* simplify this code a bit.Chris Lattner2008-11-271-4/+4
| | | | llvm-svn: 60164
* Use the new MergeBasicBlockIntoOnlyPred function.Chris Lattner2008-11-271-19/+1
| | | | llvm-svn: 60163
* move MergeBasicBlockIntoOnlyPred to Transforms/Utils.Chris Lattner2008-11-273-31/+41
| | | | llvm-svn: 60162
* XFAil test due to reverting of patch.Bill Wendling2008-11-271-0/+1
| | | | llvm-svn: 60161
* Fix order of evaluation.Sebastian Redl2008-11-271-1/+1
| | | | llvm-svn: 60160
* rename ThreadBlock to ProcessBlock, since it does other things thanChris Lattner2008-11-271-4/+4
| | | | | | just simple threading. llvm-svn: 60157
* Comment out code that isn't entirely correct.Bill Wendling2008-11-271-1/+3
| | | | llvm-svn: 60156
* Fixed HTML closing tag, cleaned up some spacing.Misha Brukman2008-11-271-2/+2
| | | | llvm-svn: 60153
* ImmutableList::getInternalPointer() returns a const ImmutableListImpl<T>* ↵Zhongxing Xu2008-11-271-1/+1
| | | | | | pointer, which must be converted to void* explicitly. llvm-svn: 60152
* Factory objects should not be temporary. It caches all objects in the set.Zhongxing Xu2008-11-271-3/+4
| | | | llvm-svn: 60151
* RegionViewMap factory is actually not used. All GDMs should use factories fromZhongxing Xu2008-11-271-2/+0
| | | | | | GDMContext. llvm-svn: 60150
* Removing redundant semicolons. No functionality change.Sanjiv Gupta2008-11-271-2/+2
| | | | llvm-svn: 60149
* Make jump threading substantially more powerful, in the following ways:Chris Lattner2008-11-272-0/+307
| | | | | | | | | | | | | | | | | 1. Make it fold blocks separated by an unconditional branch. This enables jump threading to see a broader scope. 2. Make jump threading able to eliminate locally redundant loads when they feed the branch condition of a block. This frequently occurs due to reg2mem running. 3. Make jump threading able to eliminate *partially redundant* loads when they feed the branch condition of a block. This is common in code with lots of loads and stores like C++ code and 255.vortex. This implements thread-loads.ll and rdar://6402033. Per the fixme's, several pieces of this should be moved into Transforms/Utils. llvm-svn: 60148
* Test commit.Daniel Dunbar2008-11-271-0/+1
| | | | llvm-svn: 60147
* Add comments.Zhongxing Xu2008-11-271-0/+2
| | | | llvm-svn: 60146
* Eliminate a compile time warning.Evan Cheng2008-11-271-1/+1
| | | | llvm-svn: 60145
* Add license comments.Zhongxing Xu2008-11-272-0/+26
| | | | llvm-svn: 60144
* Add support for pluggable components of static analyzer.Zhongxing Xu2008-11-276-20/+101
| | | | | | | | | | - Creator function pointers are saved in ManagerRegistry. - The Register* class is used to notify ManagerRegistry new module is available. - AnalysisManager queries ManagerRegistry for configurable module. Then it passes them to GRExprEngine, in turn to GRStateManager. llvm-svn: 60143
* Add implicit conversions for Objective-C qualified ids, e.g.,Douglas Gregor2008-11-272-3/+38
| | | | | | | | | | | | id<P0> The intended overloading behavior of these entities isn't entirely clear, and GCC seems to have some strange limitations (e.g., the inability to overload on id<P0> vs. id<P1>). We'll want to revisit these semantics and determine just how Objective-C++ overloading should really work. llvm-svn: 60142
* Avoid inserting noop's in the middle of a loop.Evan Cheng2008-11-272-1/+39
| | | | llvm-svn: 60141
OpenPOWER on IntegriCloud