aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add an outline of the DragonEgg gcc plugin.Duncan Sands2009-10-111-2/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83765 91177308-0d34-0410-b5e6-96231b3b80d8
* implement rdar://7293527, a trivial instcombine that llvm-gccChris Lattner2009-10-112-1/+20
| | | | | | | | gets but clang doesn't, because it is implemented in GCC's fold routine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83761 91177308-0d34-0410-b5e6-96231b3b80d8
* add a helper for matching "1".Chris Lattner2009-10-111-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83760 91177308-0d34-0410-b5e6-96231b3b80d8
* implement a transformation in jump threading that is currentlyChris Lattner2009-10-112-64/+252
| | | | | | | | | | | done by condprop, but do it in a much more general form. The basic idea is that we can do a limited form of tail duplication in the case when we have a branch on a phi. Moving the branch up in to the predecessor block makes instruction selection much easier and encourages chained jump threadings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83759 91177308-0d34-0410-b5e6-96231b3b80d8
* another testcase jump threading shouldn't crash on.Chris Lattner2009-10-111-0/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83758 91177308-0d34-0410-b5e6-96231b3b80d8
* rename a file, remove a poorly reduced testcase.Chris Lattner2009-10-112-142/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83757 91177308-0d34-0410-b5e6-96231b3b80d8
* restructure some code, no functionality change.Chris Lattner2009-10-111-33/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83756 91177308-0d34-0410-b5e6-96231b3b80d8
* factor some code better and move a function, no functionality change.Chris Lattner2009-10-111-81/+55
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83755 91177308-0d34-0410-b5e6-96231b3b80d8
* make jump threading on a phi with undef inputs happen.Chris Lattner2009-10-112-30/+86
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83754 91177308-0d34-0410-b5e6-96231b3b80d8
* there is no need to run mem2reg after jump threading at LTO time now.Chris Lattner2009-10-111-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83753 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a bunch of bad formatting, delete the dead Chris Lattner2009-10-111-61/+59
| | | | | | | ConstantInt::TheTrueVal/TheFalseVal members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83752 91177308-0d34-0410-b5e6-96231b3b80d8
* merge two tests.Chris Lattner2009-10-112-13/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83751 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify some run lines, convert a test to filecheck.Chris Lattner2009-10-116-7/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83750 91177308-0d34-0410-b5e6-96231b3b80d8
* Update release notes blurb on the static analyzer.Ted Kremenek2009-10-111-3/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83749 91177308-0d34-0410-b5e6-96231b3b80d8
* rewrite LCSSA to use SSAUpdate, to only return true if it modifiesChris Lattner2009-10-111-154/+130
| | | | | | | the IR, and to implement the FIXME'd optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83748 91177308-0d34-0410-b5e6-96231b3b80d8
* clean up and simplify some code. Don't use setvector when things will beChris Lattner2009-10-111-28/+23
| | | | | | | | inserted only once, just use vector. Don't compute ExitBlocks unless we need it, change std::sort to array_pod_sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83747 91177308-0d34-0410-b5e6-96231b3b80d8
* switch GVN to use SSAUpdater. Besides removing a lot of complexityChris Lattner2009-10-102-153/+40
| | | | | | | | | from GVN, this also speeds it up, inserts fewer PHI nodes (see the testcase) and allows it to remove more loads (due to fewer PHI nodes standing in the way). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83746 91177308-0d34-0410-b5e6-96231b3b80d8
* add a simple helper method.Chris Lattner2009-10-102-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83745 91177308-0d34-0410-b5e6-96231b3b80d8
* add ability for clients of SSAUpdater to find out about theChris Lattner2009-10-102-2/+19
| | | | | | | PHI nodes inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83744 91177308-0d34-0410-b5e6-96231b3b80d8
* clarifyChris Lattner2009-10-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83743 91177308-0d34-0410-b5e6-96231b3b80d8
* remove dead codeChris Lattner2009-10-101-65/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83742 91177308-0d34-0410-b5e6-96231b3b80d8
* add the ability to get a rewritten value from the middle of a block,Chris Lattner2009-10-102-6/+119
| | | | | | | | not just at the end. Add a big comment explaining when this could be useful (which never happens for jump threading). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83741 91177308-0d34-0410-b5e6-96231b3b80d8
* rename GetValueInBlock -> GetValueAtEndOfBlock to better reflect Chris Lattner2009-10-102-15/+15
| | | | | | | what it does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83740 91177308-0d34-0410-b5e6-96231b3b80d8
* It seems that OR operation does not affect status reg at all.Anton Korobeynikov2009-10-102-12/+22
| | | | | | | Remove impdef of SRW. This fixes PR4779 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83739 91177308-0d34-0410-b5e6-96231b3b80d8
* fix broken linkChris Lattner2009-10-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83738 91177308-0d34-0410-b5e6-96231b3b80d8
* final changes.Chris Lattner2009-10-101-31/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83737 91177308-0d34-0410-b5e6-96231b3b80d8
* down to 'major changes'Chris Lattner2009-10-101-19/+50
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83736 91177308-0d34-0410-b5e6-96231b3b80d8
* more updatesChris Lattner2009-10-101-43/+64
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83735 91177308-0d34-0410-b5e6-96231b3b80d8
* add a link to the GSG for info on how to check out svn trunkChris Lattner2009-10-101-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83734 91177308-0d34-0410-b5e6-96231b3b80d8
* x86 uses 5 operands for most memory refs now.Chris Lattner2009-10-101-6/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83733 91177308-0d34-0410-b5e6-96231b3b80d8
* More spelling and grammar tweaks.Duncan Sands2009-10-101-16/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83728 91177308-0d34-0410-b5e6-96231b3b80d8
* More spelling fixes.Benjamin Kramer2009-10-101-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83724 91177308-0d34-0410-b5e6-96231b3b80d8
* Spelling fixes.Duncan Sands2009-10-101-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83722 91177308-0d34-0410-b5e6-96231b3b80d8
* more tweaksChris Lattner2009-10-101-4/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83721 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an inappropriate line in the description of theDuncan Sands2009-10-101-7/+3
| | | | | | | clang static analyser. Decrease duplication in the text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83720 91177308-0d34-0410-b5e6-96231b3b80d8
* continue decoding chris scribble.Chris Lattner2009-10-101-31/+51
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83719 91177308-0d34-0410-b5e6-96231b3b80d8
* remove some dead passesChris Lattner2009-10-101-111/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83717 91177308-0d34-0410-b5e6-96231b3b80d8
* checkpoint.Chris Lattner2009-10-101-26/+74
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83716 91177308-0d34-0410-b5e6-96231b3b80d8
* fix broken anchors.Chris Lattner2009-10-101-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83715 91177308-0d34-0410-b5e6-96231b3b80d8
* use a typedef instead of spelling out an insane type. Yay for auto someday.Chris Lattner2009-10-101-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83707 91177308-0d34-0410-b5e6-96231b3b80d8
* Change jump threading to use the new SSAUpdater class instead of Chris Lattner2009-10-101-16/+43
| | | | | | | | | | | DemoteRegToStack. This makes it more efficient (because it isn't creating a ton of load/stores that are eventually removed by a later mem2reg), and more slightly more effective (because those load/stores don't get in the way of threading). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83706 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement an efficient and fully general SSA update mechanism that Chris Lattner2009-10-103-0/+304
| | | | | | | works on unstructured CFGs. This implements PR217, our oldest open PR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83705 91177308-0d34-0410-b5e6-96231b3b80d8
* add some WeakVH::operator='s. Without these, assigningChris Lattner2009-10-101-0/+9
| | | | | | | | | a Value* to a WeakVH was constructing a temporary WeakVH (due to the implicit assignment operator). This avoids that cost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83704 91177308-0d34-0410-b5e6-96231b3b80d8
* change some static_cast into cast, pointed out by Gabor.Chris Lattner2009-10-101-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83703 91177308-0d34-0410-b5e6-96231b3b80d8
* add a version of PHINode::getIncomingBlock that takes a raw Chris Lattner2009-10-101-8/+18
| | | | | | | Use, to complement the version that takes a use_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83702 91177308-0d34-0410-b5e6-96231b3b80d8
* random tidyingChris Lattner2009-10-102-12/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83701 91177308-0d34-0410-b5e6-96231b3b80d8
* Create a new InstrEmitter class for translating SelectionDAG nodesDan Gohman2009-10-105-183/+263
| | | | | | | | | into MachineInstrs. This is mostly just moving the code from ScheduleDAGSDNodesEmit.cpp into a new class. This decouples MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83699 91177308-0d34-0410-b5e6-96231b3b80d8
* Make getMachineNode return a MachineSDNode* instead of a generic SDNode*Dan Gohman2009-10-102-59/+71
| | | | | | | | since it won't do any folding. This will help avoid some inconvenient casting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83698 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a no-longer-necessary #include.Dan Gohman2009-10-101-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83697 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace X86's CanRematLoadWithDispOperand by calling the target-independentDan Gohman2009-10-103-28/+8
| | | | | | | | MachineInstr::isInvariantLoad instead, which has the benefit of being more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83696 91177308-0d34-0410-b5e6-96231b3b80d8