summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Added missing include.Tanya Lattner2004-02-051-0/+1
| | | | llvm-svn: 11129
* Fixed Chris' typo.Tanya Lattner2004-02-051-1/+1
| | | | llvm-svn: 11128
* Implement optimizations for handling large basic blocks.Chris Lattner2004-02-051-29/+77
| | | | llvm-svn: 11126
* Modify the two address instruction pass to remove the duplicateAlkis Evlogimenos2004-02-047-170/+160
| | | | | | operand of the instruction and thus simplify the register allocation. llvm-svn: 11124
* Minor speedup, don't query ValueMap each time through the loopChris Lattner2004-02-041-6/+3
| | | | llvm-svn: 11123
* Take away the default iostream argument of createMachineFunctionPrinterPass(),Brian Gaeke2004-02-041-6/+6
| | | | | | at Chris's request. llvm-svn: 11120
* Two changes:Chris Lattner2004-02-041-5/+12
| | | | | | | | | | | | | 1. Don't scan to the end of alloca instructions in the caller function to insert inlined allocas, just insert at the top. This saves a lot of time inlining into functions with a lot of allocas. 2. Use splice to move the alloca instructions over, instead of remove/insert. This allows us to transfer a block at a time, and eliminates a bunch of silly symbol table manipulations. This speeds up the inliner on the testcase in PR209 from 1.73s -> 1.04s (67%) llvm-svn: 11118
* IMULri* instructions do not require their first two registers operandsAlkis Evlogimenos2004-02-042-7/+9
| | | | | | to be the same (IOW they are not two address instructions). llvm-svn: 11117
* Optimize the case where we are inlining a function that contains only one ↵Chris Lattner2004-02-041-37/+67
| | | | | | | | | | | basic block, and that basic block ends with a return instruction. In this case, we can just splice the cloned "body" of the function directly into the source basic block, avoiding a lot of rearrangement and splitBasicBlock's linear scan over the split block. This speeds up the inliner on the testcase in PR209 from 2.3s to 1.7s, a 35% reduction. llvm-svn: 11116
* Adjust to the new BasicBlock ctor, which requires a function parameterChris Lattner2004-02-042-2/+2
| | | | llvm-svn: 11114
* Adjust to the new BB ctorChris Lattner2004-02-041-24/+8
| | | | llvm-svn: 11113
* Remove unneeded code now that splitBasicBlock does the "right thing"Chris Lattner2004-02-041-5/+0
| | | | llvm-svn: 11111
* When splitting a basic block, insert the new half immediately after the firstChris Lattner2004-02-041-1/+1
| | | | | | half. llvm-svn: 11110
* More refactoring. Move alloca instructions and handle invoke instructionsChris Lattner2004-02-041-129/+132
| | | | | | | before we delete the original call site, allowing slight simplifications of code, but nothing exciting. llvm-svn: 11109
* Move the cloning of the function body much earlier in the inlinefunctionChris Lattner2004-02-041-52/+54
| | | | | | | | | | process. The only optimization we did so far is to avoid creating a PHI node, then immediately destroying it in the common case where the callee has one return statement. Instead, we just don't create the return value. This has no noticable performance impact, but paves the way for future improvements. llvm-svn: 11108
* Give CloneBasicBlock an optional function argument to specify which functionChris Lattner2004-02-042-13/+10
| | | | | | | | to add the cloned block to. This allows the block to be added to the function immediately, and all of the instructions to be immediately added to the function symbol table, which speeds up the inliner from 3.7 -> 3.38s on the PR209. llvm-svn: 11107
* If changing a parent, don't add then remove the object from the leak detectorChris Lattner2004-02-041-5/+5
| | | | llvm-svn: 11106
* In BasicBlock::splitBasicBlock, just use islist::splice to move the ↵Chris Lattner2004-02-031-8/+3
| | | | | | | | | | | instructions, instead of a loop that is really inefficient with large basic blocks. This speeds up the inliner pass on the testcase in PR209 from 13.8s to 2.24s which still isn't exactly speedy, but is a lot better. :) llvm-svn: 11105
* Bunch up all locally used allocas by the block they are allocated in, andChris Lattner2004-02-031-13/+74
| | | | | | | process them all as a group. This speeds up SRoA/mem2reg from 28.46s to 0.62s on the testcase from PR209. llvm-svn: 11100
* Handle extremely trivial cases extremely efficiently. This speeds upChris Lattner2004-02-031-17/+30
| | | | | | SRoA/mem2reg from 41.2s to 27.5s on the testcase in PR209. llvm-svn: 11099
* Generate ftst instructions for comparison against zeroChris Lattner2004-02-031-0/+9
| | | | llvm-svn: 11098
* Add the ftst instructionChris Lattner2004-02-031-1/+3
| | | | llvm-svn: 11095
* Add support for one argument OneArgFP instructionsChris Lattner2004-02-031-3/+4
| | | | llvm-svn: 11094
* When an instruction like: A += B had both A and B virtual registersAlkis Evlogimenos2004-02-032-10/+24
| | | | | | spilled, A was loaded from its stack location twice. This fixes the bug. llvm-svn: 11093
* Revert changes. Will implement this using a different set of primitivesAlkis Evlogimenos2004-02-021-9/+3
| | | | llvm-svn: 11091
* Fix debugging output.Alkis Evlogimenos2004-02-021-1/+1
| | | | llvm-svn: 11088
* Correctly update def/use information for modified machine operands.Alkis Evlogimenos2004-02-021-3/+9
| | | | llvm-svn: 11087
* Should be more careful. The previously applied change made all countsAlkis Evlogimenos2004-02-021-10/+6
| | | | | | outside of loops = 0. llvm-svn: 11085
* Floating point negates are -0.0 - X, not 0.0 - XChris Lattner2004-02-021-5/+13
| | | | llvm-svn: 11084
* Disable (x - (y - z)) => (x + (z - y)) optimization for floating point.Chris Lattner2004-02-021-1/+2
| | | | llvm-svn: 11083
* Update commentChris Lattner2004-02-021-1/+1
| | | | llvm-svn: 11082
* No need to declare implicit uses/defs of ST0Chris Lattner2004-02-021-1/+1
| | | | llvm-svn: 11081
* Make deadarghaX0r warning louder.Brian Gaeke2004-02-021-1/+1
| | | | | | (I just love typing haX0r. haX0r haX0r haX0r.) llvm-svn: 11079
* Generate the fchs instruction to negate a floating point numberChris Lattner2004-02-022-1/+15
| | | | llvm-svn: 11078
* Add support for OneArgFPRW instructions, fix a couple of typeosChris Lattner2004-02-021-12/+43
| | | | llvm-svn: 11077
* Include PowerPC.h. Flesh out the stub versions of addPassesToEmitAssembly()Brian Gaeke2004-02-021-3/+13
| | | | | | and addPassesToJITCompile() slightly. llvm-svn: 11076
* Add comments describing how you would add prototypes for factory methods forBrian Gaeke2004-02-021-0/+15
| | | | | | PowerPC-specific passes here. llvm-svn: 11073
* Codegen -0.0 correctly. Do not use fldz! This is another -0.0 == +0.0 ↵Chris Lattner2004-02-021-4/+4
| | | | | | problem, arg. llvm-svn: 11070
* Create an object for tracking physical register usage. This will lookAlkis Evlogimenos2004-02-021-106/+116
| | | | | | much better when I get rid of the reserved registers. llvm-svn: 11066
* Second half of a fix for PR218 & ↵Chris Lattner2004-02-011-4/+43
| | | | | | | | | | test/Regression/Assembler/2004-02-01-NegativeZero.llx. Basically we store floating point values as their integral components, instead of relying on the semantics of floating point < to differentiate between values. This is likely to make the map search be faster anyway. llvm-svn: 11064
* Change weight array into a vector and make it as big as the number ofAlkis Evlogimenos2004-02-011-17/+25
| | | | | | | | | | | registers (not as the max number of registers). Change toSpill from a std::set into a std::vector<bool>. Use the reverse iterator adapter to do a reverse scan of allocatable registers. llvm-svn: 11061
* Use std::map::count() instead of std::map::find() != std::map::end()Alkis Evlogimenos2004-02-011-5/+3
| | | | | | where appropriate. llvm-svn: 11060
* Change string for joined intervals.Alkis Evlogimenos2004-02-011-1/+1
| | | | llvm-svn: 11057
* FpMOV is also a move instruction.Alkis Evlogimenos2004-02-011-1/+2
| | | | llvm-svn: 11055
* Change xor to ^.Alkis Evlogimenos2004-02-011-1/+1
| | | | llvm-svn: 11054
* Disable tail duplication in any "hard" cases, where it might break SSA form.Chris Lattner2004-02-011-1/+27
| | | | llvm-svn: 11052
* Fix a bug in a recent checkinChris Lattner2004-02-011-1/+1
| | | | llvm-svn: 11050
* Fix the count of the number of instructions removedChris Lattner2004-02-011-0/+1
| | | | llvm-svn: 11049
* Missed one silly assert :-)Alkis Evlogimenos2004-02-011-1/+1
| | | | llvm-svn: 11048
* Simplify joinIntervals() code.Alkis Evlogimenos2004-02-011-62/+57
| | | | llvm-svn: 11047
OpenPOWER on IntegriCloud