Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 80 column | Jim Grosbach | 2010-07-27 | 1 | -4/+4 | |
| | | | | llvm-svn: 109513 | |||||
* | fix typo | Jim Grosbach | 2010-07-27 | 1 | -1/+1 | |
| | | | | llvm-svn: 109511 | |||||
* | It's better to have the arrays, which would trigger the creation of stack | Bill Wendling | 2010-07-27 | 3 | -3/+33 | |
| | | | | | | | | | protectors, to be near the stack protectors on the stack. Accomplish this by tagging the stack object with a predicate that indicates that it would trigger this. In the prolog-epilog inserter, assign these objects to the stack after the stack protector but before the other objects. llvm-svn: 109481 | |||||
* | Add SplitEditor to SplitKit. This class will be used to edit live intervals and | Jakob Stoklund Olesen | 2010-07-26 | 4 | -10/+305 | |
| | | | | | | | | rewrite instructions for live range splitting. Still work in progress. llvm-svn: 109469 | |||||
* | Fix a use-after-free. | Dan Gohman | 2010-07-26 | 1 | -2/+0 | |
| | | | | llvm-svn: 109468 | |||||
* | Using llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value. | Bill Wendling | 2010-07-26 | 2 | -5/+5 | |
| | | | | llvm-svn: 109462 | |||||
* | The "excess register pressure" returned by HighRegPressure() is not accurate ↵ | Evan Cheng | 2010-07-26 | 1 | -41/+20 | |
| | | | | | | enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling. llvm-svn: 109449 | |||||
* | Handle Values with no value in getCopyFromRegs. | Dan Gohman | 2010-07-26 | 1 | -0/+4 | |
| | | | | llvm-svn: 109415 | |||||
* | A block dominates itself, by definition. | Dan Gohman | 2010-07-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 109402 | |||||
* | Pacify gcc-4.5 which wrongly thinks that RExcess (passed as the Excess ↵ | Duncan Sands | 2010-07-26 | 1 | -1/+2 | |
| | | | | | | | | parameter) may be used uninitialized in the callers of HighRegPressure. llvm-svn: 109393 | |||||
* | Factored out a bit of common code to mark VNInfos for deletion. | Lang Hames | 2010-07-26 | 1 | -40/+22 | |
| | | | | llvm-svn: 109388 | |||||
* | Add comments. | Evan Cheng | 2010-07-25 | 1 | -4/+16 | |
| | | | | llvm-svn: 109383 | |||||
* | Fix crashes when scheduling a CopyToReg node -- getMachineOpcode asserts on | Bob Wilson | 2010-07-25 | 1 | -2/+2 | |
| | | | | | | those. Radar 8231572. llvm-svn: 109367 | |||||
* | Add hook to insert late LLVM=>LLVM passes just before isel | Anton Korobeynikov | 2010-07-24 | 1 | -0/+2 | |
| | | | | llvm-svn: 109354 | |||||
* | Change ScheduleDAGInstrs::Defs and ::Uses to be variable-size vectors | Bob Wilson | 2010-07-24 | 2 | -3/+4 | |
| | | | | | | | instead of fixed size arrays, so that increasing FirstVirtualRegister to 16K won't cause a compile time performance regression. llvm-svn: 109330 | |||||
* | Use current working directory when Dirname is empty. This only happens when ↵ | Devang Patel | 2010-07-24 | 1 | -0/+5 | |
| | | | | | | absolute source file path is used on compiler command line. llvm-svn: 109302 | |||||
* | Add an ILP scheduler. This is a register pressure aware scheduler that's | Evan Cheng | 2010-07-24 | 2 | -12/+76 | |
| | | | | | | | | | | | | appropriate for targets without detailed instruction iterineries. The scheduler schedules for increased instruction level parallelism in low register pressure situation; it schedules to reduce register pressure when the register pressure becomes high. On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2 by 16%. llvm-svn: 109300 | |||||
* | Remove too-strict assertion. We may want the vreg copy of the physical register | Jim Grosbach | 2010-07-23 | 1 | -1/+0 | |
| | | | | | | | to be of a different register class. For example, in Thumb1 if the live-in is a high register, we want the vreg to be a low register. rdar://8224931 llvm-svn: 109291 | |||||
* | Revert r109262. | Devang Patel | 2010-07-23 | 1 | -5/+0 | |
| | | | | llvm-svn: 109285 | |||||
* | - Allow target to specify when is register pressure "too high". In most cases, | Evan Cheng | 2010-07-23 | 1 | -56/+124 | |
| | | | | | | | | | | | | | it's too late to start backing off aggressive latency scheduling when most of the registers are in use so the threshold should be a bit tighter. - Correctly handle live out's and extract_subreg etc. - Enable register pressure aware scheduling by default for hybrid scheduler. For ARM, this is almost always a win on # of instructions. It's runtime neutral for most of the tests. But for some kernels with high register pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by 54 and sped up by 20%. llvm-svn: 109279 | |||||
* | Use the proper type for shift counts. This fixes a bootstrap error. | Dan Gohman | 2010-07-23 | 1 | -1/+4 | |
| | | | | llvm-svn: 109265 | |||||
* | IF directory name is empty then try to extract one using absolute file name. | Devang Patel | 2010-07-23 | 1 | -0/+5 | |
| | | | | llvm-svn: 109262 | |||||
* | DAGCombine (shl (anyext x, c)) to (anyext (shl x, c)) if the high bits | Dan Gohman | 2010-07-23 | 1 | -1/+21 | |
| | | | | | | are not demanded. This often allows the anyext to be folded away. llvm-svn: 109242 | |||||
* | Make SDNode::dump() print a newline at the end. | Dan Gohman | 2010-07-23 | 1 | -0/+1 | |
| | | | | llvm-svn: 109234 | |||||
* | 80-col. | Eric Christopher | 2010-07-23 | 1 | -8/+12 | |
| | | | | llvm-svn: 109205 | |||||
* | remove the JIT "NeedsExactSize" feature and supporting logic. | Chris Lattner | 2010-07-22 | 1 | -13/+0 | |
| | | | | llvm-svn: 109167 | |||||
* | keep in 80 cols | Gabor Greif | 2010-07-22 | 1 | -2/+4 | |
| | | | | llvm-svn: 109122 | |||||
* | mass elimination of reliance on automatic iterator dereferencing | Gabor Greif | 2010-07-22 | 3 | -7/+7 | |
| | | | | llvm-svn: 109103 | |||||
* | undo 80 column trespassing I caused | Gabor Greif | 2010-07-22 | 2 | -3/+5 | |
| | | | | llvm-svn: 109092 | |||||
* | Re-apply r109079 with fix. | Evan Cheng | 2010-07-22 | 1 | -28/+26 | |
| | | | | llvm-svn: 109083 | |||||
* | Revert r109079, which broke a lot of CodeGen tests. | Owen Anderson | 2010-07-22 | 1 | -25/+27 | |
| | | | | llvm-svn: 109082 | |||||
* | Initial modifications to MCAssembler and TargetMachine for the MCJIT. | Reid Kleckner | 2010-07-22 | 1 | -0/+18 | |
| | | | | | | Patch by Olivier Meurant! llvm-svn: 109080 | |||||
* | Initialize RegLimit only when register pressure is being tracked. | Evan Cheng | 2010-07-22 | 1 | -27/+25 | |
| | | | | llvm-svn: 109079 | |||||
* | More register pressure aware scheduling work. | Evan Cheng | 2010-07-21 | 1 | -81/+84 | |
| | | | | llvm-svn: 109064 | |||||
* | For ARM/Darwin, add a dwarf entry indicating whether a function is arm or thumb | Jim Grosbach | 2010-07-21 | 1 | -0/+4 | |
| | | | | | | rdar://8202967 llvm-svn: 109057 | |||||
* | Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). | Owen Anderson | 2010-07-21 | 23 | -43/+45 | |
| | | | | llvm-svn: 109045 | |||||
* | 80 column and trailing whitespace cleanup | Jim Grosbach | 2010-07-21 | 1 | -171/+173 | |
| | | | | llvm-svn: 109037 | |||||
* | Disallow null as a named metadata operand. | Dan Gohman | 2010-07-21 | 1 | -2/+2 | |
| | | | | | | | | | | | Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself. One should never delete or destroy an MDNode explicitly. MDNodes implicitly go away when there are no references to them (implementation details aside). llvm-svn: 109028 | |||||
* | Changed OStream templates to functions on raw_ostream, removed the unused ↵ | Lang Hames | 2010-07-21 | 2 | -51/+25 | |
| | | | | | | "renderWarnings" function. llvm-svn: 109003 | |||||
* | Teach bottom up pre-ra scheduler to track register pressure. Work in progress. | Evan Cheng | 2010-07-21 | 2 | -22/+242 | |
| | | | | llvm-svn: 108991 | |||||
* | Change the createSpiller interface to take a MachineFunctionPass argument. | Jakob Stoklund Olesen | 2010-07-20 | 6 | -60/+64 | |
| | | | | | | | | The spillers can pluck the analyses they need from the pass reference. Switch some never-null pointers to references. llvm-svn: 108969 | |||||
* | Implement loop splitting analysis. | Jakob Stoklund Olesen | 2010-07-20 | 2 | -19/+183 | |
| | | | | | | | Determine which loop exit blocks need a 'pre-exit' block inserted. Recognize when this would be impossible. llvm-svn: 108941 | |||||
* | Fix test for switch statements and increase | Dale Johannesen | 2010-07-20 | 1 | -2/+3 | |
| | | | | | | threshold a bit per experimentation. llvm-svn: 108935 | |||||
* | Appease the colonials. | Jakob Stoklund Olesen | 2010-07-20 | 2 | -4/+4 | |
| | | | | llvm-svn: 108845 | |||||
* | Beginning SplitKit - utility classes for live range splitting. | Jakob Stoklund Olesen | 2010-07-20 | 4 | -1/+261 | |
| | | | | | | | | | This is a work in progress. So far we have some basic loop analysis to help determine where it is useful to split a live range around a loop. The actual loop splitting code from Splitter.cpp is also going to move in here. llvm-svn: 108842 | |||||
* | Updated css classes for the pressure table legend. | Lang Hames | 2010-07-20 | 1 | -3/+3 | |
| | | | | llvm-svn: 108839 | |||||
* | Oops - I tables render poorly in Chrome without this explicit height ↵ | Lang Hames | 2010-07-20 | 1 | -1/+1 | |
| | | | | | | specification. llvm-svn: 108824 | |||||
* | Use run-length encoding to represent identical adjacent cells in the pressure | Lang Hames | 2010-07-20 | 2 | -34/+104 | |
| | | | | | | | | and interval table. Reduces output HTML file sizes by ~80% in my test cases. Also fix access of private member type by << operator. llvm-svn: 108823 | |||||
* | Added support for turning HTML indentation on and off (indentation off by ↵ | Lang Hames | 2010-07-20 | 2 | -86/+123 | |
| | | | | | | | | default). Reduces output file size ~20% on my test cases. llvm-svn: 108822 | |||||
* | Switched to rendering after allocation (but before rewriting) in PBQP. | Lang Hames | 2010-07-20 | 3 | -38/+77 | |
| | | | | | | | Updated renderer to use allocation information from VirtRegMap (if available) to render spilled intervals differently. llvm-svn: 108815 |