Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 | ||||
* | Unbreak VC++ build. | Jeff Cohen | 2006-11-05 | 1 | -0/+1 |
| | | | | llvm-svn: 31464 | ||||
* | For PR786: | Reid Spencer | 2006-11-02 | 1 | -2/+0 |
| | | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380 | ||||
* | give branch folding a simple heuristic to decide which block to split so that | Chris Lattner | 2006-11-01 | 1 | -6/+49 |
| | | | | | | | it inserts an uncond branch where it is less likely to cause a problem. This fixes some perf issues on ppc. llvm-svn: 31354 | ||||
* | make tail merging more aggressive. If two blocks share a common tail, but the | Chris Lattner | 2006-11-01 | 1 | -16/+53 |
| | | | | | | | tail is not an entire block for either of them, pick one, split it, then merge the common part. llvm-svn: 31336 |