Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | rename TargetInstrDescriptor -> TargetInstrDesc. | Chris Lattner | 2008-01-07 | 1 | -5/+5 | |
| | | | | | | | Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695 | |||||
* | Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects | Chris Lattner | 2008-01-07 | 1 | -14/+11 | |
| | | | | | | | | | | | | | | | that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674 | |||||
* | rename isLoad -> isSimpleLoad due to evan's desire to have such a predicate. | Chris Lattner | 2008-01-06 | 1 | -1/+1 | |
| | | | | llvm-svn: 45667 | |||||
* | rename isStore -> mayStore to more accurately reflect what it captures. | Chris Lattner | 2008-01-06 | 1 | -1/+1 | |
| | | | | llvm-svn: 45656 | |||||
* | Add new shorter predicates for testing machine operands for various types: | Chris Lattner | 2007-12-30 | 1 | -7/+5 | |
| | | | | | | | | | | | | e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464 | |||||
* | Remove attribution from file headers, per discussion on llvmdev. | Chris Lattner | 2007-12-29 | 1 | -2/+2 | |
| | | | | llvm-svn: 45418 | |||||
* | Improve branch folding by recgonizing that explict successor relationships ↵ | Christopher Lamb | 2007-12-10 | 1 | -0/+5 | |
| | | | | | | impact the value of fall-through choices. llvm-svn: 44785 | |||||
* | Changed XXX to FIXME, and added comment to the README file | Bill Wendling | 2007-10-25 | 1 | -1/+1 | |
| | | | | llvm-svn: 43359 | |||||
* | Added comment explaining why we are doing this check. | Bill Wendling | 2007-10-25 | 1 | -0/+5 | |
| | | | | llvm-svn: 43353 | |||||
* | Don't branch fold inline asm statements. | Bill Wendling | 2007-10-19 | 1 | -1/+2 | |
| | | | | llvm-svn: 43191 | |||||
* | More explicit keywords. | Dan Gohman | 2007-08-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 40757 | |||||
* | If assertions are not enabled, we should return False here. | Duncan Sands | 2007-07-11 | 1 | -5/+4 | |
| | | | | llvm-svn: 38535 | |||||
* | Make this work with GLIBCXX_DEBUG. | David Greene | 2007-07-10 | 1 | -1/+8 | |
| | | | | llvm-svn: 38516 | |||||
* | Fix misue of iterator pointing to erased object. Uncovered by | David Greene | 2007-06-29 | 1 | -4/+5 | |
| | | | | | | _GLIBCXX_DEBUG. llvm-svn: 37793 | |||||
* | Move CorrectExtraCFGEdges() from BranchFolding.cpp to a MachineBasicBlock ↵ | Evan Cheng | 2007-06-18 | 1 | -75/+4 | |
| | | | | | | method. llvm-svn: 37633 | |||||
* | Make throttle a hidden parameter, per review. | Dale Johannesen | 2007-06-08 | 1 | -6/+11 | |
| | | | | llvm-svn: 37511 | |||||
* | Throttle tail merging; handling blocks with large numbers of predecessors | Dale Johannesen | 2007-06-08 | 1 | -2/+6 | |
| | | | | | | is too slow. llvm-svn: 37509 | |||||
* | Tail merging wasn't working for predecessors of landing pads. PR 1496. | Dale Johannesen | 2007-06-04 | 1 | -0/+22 | |
| | | | | llvm-svn: 37427 | |||||
* | Move ReplaceUsesOfBlockWith() out of BranchFolding into a MachineBasicBlock ↵ | Evan Cheng | 2007-06-04 | 1 | -40/+2 | |
| | | | | | | general facility. llvm-svn: 37408 | |||||
* | Fix CorrectExtraCFGEdges to allow for multiple LandingPad targets. | Dale Johannesen | 2007-06-02 | 1 | -9/+6 | |
| | | | | llvm-svn: 37394 | |||||
* | Implement smarter algorithm for choosing which blocks to tail-merge. | Dale Johannesen | 2007-06-01 | 1 | -28/+43 | |
| | | | | | | | | See test/CodeGen/X86/test-pic-jtbl.ll for a case where it works well; shaves another 10K off our favorite benchmark. I was hesitant about this because of compile speed, but seems to do OK on a bootstrap. llvm-svn: 37392 | |||||
* | Arrange for only 1 of multiple branches to landing pad to be kept. | Dale Johannesen | 2007-05-31 | 1 | -4/+13 | |
| | | | | | | Do not remove empty landing pads (EH table needs to be updated) llvm-svn: 37375 | |||||
* | Changed per review comment. | Dale Johannesen | 2007-05-30 | 1 | -3/+2 | |
| | | | | llvm-svn: 37355 | |||||
* | Make stable_sort in tail merging actually be stable (it never was, but didn't | Dale Johannesen | 2007-05-29 | 1 | -1/+16 | |
| | | | | | | matter until my last change). Reenable tail merging by default. llvm-svn: 37354 | |||||
* | Blocks that cond-br and uncond-br/fallthrough to same block should have | Dale Johannesen | 2007-05-24 | 1 | -1/+4 | |
| | | | | | | only one successor. llvm-svn: 37324 | |||||
* | Fix for PR1444: do not create two successors to the same block. | Dale Johannesen | 2007-05-24 | 1 | -2/+10 | |
| | | | | | | | Temporarily, this breaks CodeGen/Generic/2006-02-12-InsertLibraryCall.ll by exposing an unrelated latent problem; working on that. llvm-svn: 37323 | |||||
* | Two tail merging improvements: | Dale Johannesen | 2007-05-23 | 1 | -40/+44 | |
| | | | | | | | | | When considering blocks with more than 2 predecessors, merge the block with the largest number of matching insns, rather than the first block found. Considering that 1 matching insn is enough to show a win for candidates that already end with a branch. llvm-svn: 37315 | |||||
* | Make tail merging the default, except on powerPC. There was no prior art | Dale Johannesen | 2007-05-22 | 1 | -4/+13 | |
| | | | | | | | for a target-dependent default with a command-line override; this way should be generally usable. llvm-svn: 37285 | |||||
* | Remove some unneeded branches. (spotted by Evan, thanks) | Dale Johannesen | 2007-05-18 | 1 | -0/+1 | |
| | | | | llvm-svn: 37198 | |||||
* | Remove extra CFG edges before doing these passes; it makes them happier. | Dale Johannesen | 2007-05-15 | 1 | -1/+16 | |
| | | | | llvm-svn: 37089 | |||||
* | Do not generate branches to entry block. This fixes several test suite | Dale Johannesen | 2007-05-10 | 1 | -4/+19 | |
| | | | | | | failures on PPC (can happen only when prologue code is null) llvm-svn: 36979 | |||||
* | Make tail merging handle many more cases (all it can, I think). | Dale Johannesen | 2007-05-10 | 1 | -32/+91 | |
| | | | | llvm-svn: 36966 | |||||
* | Handle some non-exit blocks in tail merging. | Dale Johannesen | 2007-05-07 | 1 | -11/+81 | |
| | | | | llvm-svn: 36907 | |||||
* | Drop 'const' | Devang Patel | 2007-05-03 | 1 | -2/+2 | |
| | | | | llvm-svn: 36662 | |||||
* | Use 'static const char' instead of 'static const int'. | Devang Patel | 2007-05-02 | 1 | -2/+2 | |
| | | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652 | |||||
* | Do not use typeinfo to identify pass in pass manager. | Devang Patel | 2007-05-01 | 1 | -0/+4 | |
| | | | | llvm-svn: 36632 | |||||
* | Fix PR1228 and CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll | Chris Lattner | 2007-04-30 | 1 | -2/+8 | |
| | | | | llvm-svn: 36602 | |||||
* | maintain LiveIn when splitting blocks (register scavenging needs it) | Dale Johannesen | 2007-03-20 | 1 | -1/+22 | |
| | | | | llvm-svn: 35226 | |||||
* | Remove isAccessable. | Jim Laskey | 2007-02-22 | 1 | -4/+4 | |
| | | | | llvm-svn: 34497 | |||||
* | Make branch folding behave in the presence of landing pads. | Jim Laskey | 2007-02-21 | 1 | -25/+30 | |
| | | | | llvm-svn: 34476 | |||||
* | Fixes PR 1200 | Dale Johannesen | 2007-02-17 | 1 | -13/+29 | |
| | | | | llvm-svn: 34359 | |||||
* | Change the MachineDebugInfo to MachineModuleInfo to better reflect usage | Jim Laskey | 2007-01-26 | 1 | -6/+6 | |
| | | | | | | for debugging and exception handling. llvm-svn: 33550 | |||||
* | Make LABEL a builtin opcode. | Jim Laskey | 2007-01-26 | 1 | -6/+2 | |
| | | | | llvm-svn: 33537 | |||||
* | Eliminate static ctors from Statistics | Chris Lattner | 2006-12-19 | 1 | -3/+3 | |
| | | | | llvm-svn: 32698 | |||||
* | Detemplatize the Statistic class. The only type it is instantiated with | Chris Lattner | 2006-12-06 | 1 | -3/+3 | |
| | | | | | | is 'unsigned'. llvm-svn: 32279 | |||||
* | Don't transform in another bad case: if the block is empty, it should be | Chris Lattner | 2006-11-18 | 1 | -1/+2 | |
| | | | | | | simplified before we do this xform so that our cost model is accurate. llvm-svn: 31864 | |||||
* | Fix another case we *don't* want to do this xform. | Chris Lattner | 2006-11-18 | 1 | -2/+26 | |
| | | | | llvm-svn: 31861 | |||||
* | make the previous change more aggressive, moving any block with no fallthrough. | Chris Lattner | 2006-11-18 | 1 | -9/+11 | |
| | | | | | | This speeds up yacr2 by 7% on a core2. llvm-svn: 31856 | |||||
* | Minor code layout tweak: if we have something like this: | Chris Lattner | 2006-11-18 | 1 | -0/+50 | |
| | | | | | | | | | | | | | | | if (cond) goto BB2 BB1: ... return; BB2: ... Move BB1 to the end of the function so that the code falls through in the non-return case. This has the effect of moving assert (and other no-return call) bodies and return blocks out of loops. llvm-svn: 31855 | |||||
* | optimize single MBB loops better. In particular, produce: | Chris Lattner | 2006-11-08 | 1 | -0/+17 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LBB1_57: #bb207.i movl 72(%esp), %ecx movb (%ecx,%eax), %cl movl 80(%esp), %edx movb %cl, 1(%edx,%eax) incl %eax cmpl $143, %eax jne LBB1_57 #bb207.i jmp LBB1_64 #cond_next255.i intead of: LBB1_57: #bb207.i movl 72(%esp), %ecx movb (%ecx,%eax), %cl movl 80(%esp), %edx movb %cl, 1(%edx,%eax) incl %eax cmpl $143, %eax je LBB1_64 #cond_next255.i jmp LBB1_57 #bb207.i This eliminates a branch per iteration of the loop. This hurted PPC particularly, because the extra branch meant another dispatch group for each iteration of the loop. llvm-svn: 31530 |