summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAge
* * Added class commentsMisha Brukman2004-02-10
| | | | | | | | * Doxygenified existing comments * Compactified code to be more consistent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11268 91177308-0d34-0410-b5e6-96231b3b80d8
* Doxygen-ify comments, make function prototypes more consistent in format.Misha Brukman2004-02-10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11259 91177308-0d34-0410-b5e6-96231b3b80d8
* Add global methods that prevent us from using ilist::iterators asAlkis Evlogimenos2004-02-09
| | | | | | | random access iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11248 91177308-0d34-0410-b5e6-96231b3b80d8
* SchedGraph doesn't need to be friends with SchedGraphNodeCommon anymore.Brian Gaeke2004-02-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11240 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that all of the derived types have disciplined interfaces, we can eliminateChris Lattner2004-02-09
| | | | | | | | all of the ad-hoc storage of contained types. This allows getContainedType to not be virtual, and allows us to entirely delete the TypeIterator class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11230 91177308-0d34-0410-b5e6-96231b3b80d8
* Increase encapsulation of the StructType class, eliminating the ↵Chris Lattner2004-02-09
| | | | | | getElementTypes() member git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11227 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve encapsulation in the FunctionType class, by adding ↵Chris Lattner2004-02-09
| | | | | | | | | param_(iterator/begin/end) members, and eliminating the getParamTypes() method, and the associated typedef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11223 91177308-0d34-0410-b5e6-96231b3b80d8
* rename the "exceptional" destination of an invoke instruction to the ↵Chris Lattner2004-02-08
| | | | | | 'unwind' dest git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11202 91177308-0d34-0410-b5e6-96231b3b80d8
* Substantially improve the DSA code by removing 'forwarding' nodes fromChris Lattner2004-02-08
| | | | | | | | | | DSGraphs while they are forwarding. When the last reference to the forwarding node is dropped, the forwarding node is autodeleted. This should simplify removeTriviallyDead nodes, and is only (efficiently) possible because we are using an ilist of dsnodes now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11175 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode>Chris Lattner2004-02-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11173 91177308-0d34-0410-b5e6-96231b3b80d8
* One of the 'annoying' things about ilists is that the iterators don't behaveChris Lattner2004-02-08
| | | | | | | | quite the same as for non-intrusive lists of pointers to nodes. To support transitioning code bases, add a new 'compatibility' iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11172 91177308-0d34-0410-b5e6-96231b3b80d8
* Change to use iterators instead of direct accessChris Lattner2004-02-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11170 91177308-0d34-0410-b5e6-96231b3b80d8
* Abstract out the Nodes collection. Instead of providing a getNodes() method,Chris Lattner2004-02-07
| | | | | | | | provide node_begin/end iterators, which are only guaranteed to be bidirectional, not random access. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11165 91177308-0d34-0410-b5e6-96231b3b80d8
* Actually USE isForwarding methodChris Lattner2004-02-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11160 91177308-0d34-0410-b5e6-96231b3b80d8
* As Alkis pointed out to me, I forgot to commit this... :(Chris Lattner2004-02-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11159 91177308-0d34-0410-b5e6-96231b3b80d8
* Use autoconf answers from config.h (FIXME, should autoconf this fileBrian Gaeke2004-02-06
| | | | | | | | | directly instead). Fix LockHolder/MutexLocker typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11156 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix grammar.Misha Brukman2004-02-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11153 91177308-0d34-0410-b5e6-96231b3b80d8
* Modify the two address instruction pass to remove the duplicateAlkis Evlogimenos2004-02-04
| | | | | | | operand of the instruction and thus simplify the register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11124 91177308-0d34-0410-b5e6-96231b3b80d8
* Include <iosfwd> and <string> instead of <iostream>.Brian Gaeke2004-02-04
| | | | | | | | Take away the default iostream argument of createMachineFunctionPrinterPass(), at Chris's request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11121 91177308-0d34-0410-b5e6-96231b3b80d8
* Check in header file I forgot before.Chris Lattner2004-02-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11115 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete the BasicBlock ctor that only takes a BasicBlock to insert before. ThisChris Lattner2004-02-04
| | | | | | | | fails when the basic block points to the function->end. Instead, require that the client pass in the function AND the basicblock to insert into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11112 91177308-0d34-0410-b5e6-96231b3b80d8
* When an instruction like: A += B had both A and B virtual registersAlkis Evlogimenos2004-02-03
| | | | | | | spilled, A was loaded from its stack location twice. This fixes the bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11093 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert changes. Will implement this using a different set of primitivesAlkis Evlogimenos2004-02-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11091 91177308-0d34-0410-b5e6-96231b3b80d8
* Add MachineOperand::setDef() and MachineOperand::setUse() so that theAlkis Evlogimenos2004-02-02
| | | | | | | TwoAddressInstructionPass can correctly update use/def information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11086 91177308-0d34-0410-b5e6-96231b3b80d8
* Add prototype for llvm::allocatePowerPCTargetMachine().Brian Gaeke2004-02-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11072 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct the method I just added to actually return false sometimesChris Lattner2004-02-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11069 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new method to ConstantFPChris Lattner2004-02-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11068 91177308-0d34-0410-b5e6-96231b3b80d8
* The first half of a fix for PR218 & ↵Chris Lattner2004-02-01
| | | | | | test/Regression/Assembler/2004-02-01-NegativeZero.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11063 91177308-0d34-0410-b5e6-96231b3b80d8
* Add MRegisterInfo::getNumRegs().Alkis Evlogimenos2004-02-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11058 91177308-0d34-0410-b5e6-96231b3b80d8
* Add commentsChris Lattner2004-02-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11042 91177308-0d34-0410-b5e6-96231b3b80d8
* Merge safe parts from last night's buggy commit. These do not breakAlkis Evlogimenos2004-01-31
| | | | | | | any test cases :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11032 91177308-0d34-0410-b5e6-96231b3b80d8
* Add two static methods to avoid having client code explicitly compare againstChris Lattner2004-01-31
| | | | | | | FirstVirtualRegister git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11031 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert last night's changes as they broke some tests. Will remerge parts of ↵Alkis Evlogimenos2004-01-31
| | | | | | the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11029 91177308-0d34-0410-b5e6-96231b3b80d8
* Several performance enhancements and cleanups from Chris.Alkis Evlogimenos2004-01-31
| | | | | | | | Simplification of LiveIntervals::Interval::overlaps() and addition of examples to overlaps() and liveAt() to make them clearer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11028 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new pointsToConstantMemory method to the AliasAnalysis interfaceChris Lattner2004-01-30
| | | | | | | which can be implemented to improve the quality of mod-ref information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11020 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new lazily constructed mapping from Idx's the MBB they representChris Lattner2004-01-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11017 91177308-0d34-0410-b5e6-96231b3b80d8
* Give clients of MachineFunctionPrinter the ability to specify a banner andBrian Gaeke2004-01-30
| | | | | | | choose an ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11016 91177308-0d34-0410-b5e6-96231b3b80d8
* Doxygenify comments.Misha Brukman2004-01-30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11014 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep track of all of the globals inserted into the scalar mapChris Lattner2004-01-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10995 91177308-0d34-0410-b5e6-96231b3b80d8
* Pull the ScalarMap out into something that is more structured than what we hadChris Lattner2004-01-28
| | | | | | | | before. This allows us to have a place to implement optimizations in a structured way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10994 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor tweaksChris Lattner2004-01-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10983 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comments, allow DSNode "copy ctor" to ignore outgoing links, add moreChris Lattner2004-01-27
| | | | | | | structured access to the globals list, add a couple helper methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10982 91177308-0d34-0410-b5e6-96231b3b80d8
* * cloneReachable* and clonePartiallyInto are not obsoleteChris Lattner2004-01-27
| | | | | | | | | * Make AssertNodeInGraph not be HORRIBLY time consuming * Eliminate the dead mergeInGlobalsGraph method *** Add the definition for the new ReachabilityCloner class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10981 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix failing test cases with joined live intervals. It turns out thatAlkis Evlogimenos2004-01-23
| | | | | | | | | | when joining we need to check if we overlap with the second interval or any of its aliases. Also make joining intervals the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10973 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new flag, other minor modificationsChris Lattner2004-01-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10969 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix grammarChris Lattner2004-01-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10968 91177308-0d34-0410-b5e6-96231b3b80d8
* Add option to join live intervals. Two intervals are joined if thereAlkis Evlogimenos2004-01-22
| | | | | | | | | | | | | | | is a move between two registers, at least one of the registers is virtual and the two live intervals do not overlap. This results in about 40% reduction in intervals, 30% decrease in the register allocators running time and a 20% increase in peephole optimizations (mainly move eliminations). The option can be enabled by passing -join-liveintervals where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10965 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminated the CompletedNodes argument to the cloneReachable* methods. ThisChris Lattner2004-01-22
| | | | | | | | | map was only used to implement a marginal GlobalsGraph optimization, and it actually slows the analysis down (due to the overhead of keeping it), so just eliminate it entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10955 91177308-0d34-0410-b5e6-96231b3b80d8
* It doesn't make sense for one side to be const, but not the other.Chris Lattner2004-01-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10952 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove const qualifier (all Value*'s are nonconst in DSA, so it's not clearChris Lattner2004-01-22
| | | | | | | | | why this one was) Add new method proto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10950 91177308-0d34-0410-b5e6-96231b3b80d8