Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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 | |||||
* | Rewrite of Thumb constant islands handling (exact allowance for padding | Dale Johannesen | 2007-04-29 | 1 | -84/+222 | |
| | | | | | | around islands and jump tables). llvm-svn: 36573 | |||||
* | Doh. ARM::LEApcrel is a single instruction MI. | Evan Cheng | 2007-04-27 | 1 | -5/+3 | |
| | | | | llvm-svn: 36513 | |||||
* | Special handling of LEApcrel and tLEApcrel. | Evan Cheng | 2007-04-27 | 1 | -0/+11 | |
| | | | | llvm-svn: 36504 | |||||
* | Make Thumb funcs containing islands 4-byte aligned. Fix bugs maintaining | Dale Johannesen | 2007-04-23 | 1 | -6/+19 | |
| | | | | | | BBOffsets and BBSizes when adjusting conditional branches. llvm-svn: 36372 | |||||
* | Remove unused constant pool entries. | Evan Cheng | 2007-04-03 | 1 | -32/+60 | |
| | | | | llvm-svn: 35635 | |||||
* | fix off by 1 error in displacement computation | Dale Johannesen | 2007-04-02 | 1 | -0/+5 | |
| | | | | llvm-svn: 35602 | |||||
* | - Track which callee-saved registers are spilled. | Evan Cheng | 2007-03-01 | 1 | -1/+1 | |
| | | | | | | - Some code clean up. llvm-svn: 34783 | |||||
* | Changes requested in review of last pass. Also pulled isThumb into a | Dale Johannesen | 2007-02-28 | 1 | -113/+142 | |
| | | | | | | member, instead of resetting in every function that uses it. llvm-svn: 34764 | |||||
* | Add intelligence about where to break large blocks. | Dale Johannesen | 2007-02-28 | 1 | -23/+73 | |
| | | | | llvm-svn: 34755 | |||||
* | cosmetic changes from review of last patch. obvious | Dale Johannesen | 2007-02-25 | 1 | -2/+2 | |
| | | | | llvm-svn: 34598 | |||||
* | remove crediting of Evan Cheng and me. | Dale Johannesen | 2007-02-25 | 1 | -1/+0 | |
| | | | | llvm-svn: 34568 | |||||
* | Removed WaterListOffset, inserted BBOffsets. Remove TODO item about this | Dale Johannesen | 2007-02-25 | 1 | -102/+105 | |
| | | | | | | | from README. When no water available, use end of block if in range. (More to do here.) llvm-svn: 34563 | |||||
* | rewrite of constant islands | Dale Johannesen | 2007-02-23 | 1 | -73/+262 | |
| | | | | llvm-svn: 34523 | |||||
* | These vectors are frequently large. Use std::vector instead. | Evan Cheng | 2007-02-09 | 1 | -10/+10 | |
| | | | | llvm-svn: 34109 | |||||
* | Add reference counting to constantpool entries. Delete the unused ones. | Evan Cheng | 2007-02-09 | 1 | -36/+113 | |
| | | | | llvm-svn: 34105 | |||||
* | - Branch max. displacement calculation bug. | Evan Cheng | 2007-02-03 | 1 | -9/+20 | |
| | | | | | | - Add debugging info. llvm-svn: 33811 | |||||
* | Use MBB.empty() instead of MBB.size() for speed. | Evan Cheng | 2007-02-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 33789 | |||||
* | Watch out for empty BB. | Evan Cheng | 2007-02-02 | 1 | -0/+1 | |
| | | | | llvm-svn: 33788 | |||||
* | Pasto. Lots of it. | Evan Cheng | 2007-02-01 | 1 | -5/+3 | |
| | | | | llvm-svn: 33762 | |||||
* | - Off by one bugs in maximum displacement calculation / testing. | Evan Cheng | 2007-02-01 | 1 | -15/+28 | |
| | | | | | | | - In thumb mode, a new constpool island BB size should be 4 + 2 to compensate for the potential padding due to alignment requirement. llvm-svn: 33753 | |||||
* | Pessmistically assume the .align 2 before the first constpool entry adds | Evan Cheng | 2007-02-01 | 1 | -2/+12 | |
| | | | | | | two bytes padding. llvm-svn: 33734 | |||||
* | Handle an interesting corner case: the constpool_entry being reference is two | Evan Cheng | 2007-01-31 | 1 | -2/+2 | |
| | | | | | | | | | instructions away, i.e. its address is equal to PC. %r0 = tLDRpci <cp#0> bx CONSTPOOL_ENTRY 0 <cp#0>, 4 llvm-svn: 33728 | |||||
* | When determining whether a pc relative branch / load displacement fits in the | Evan Cheng | 2007-01-31 | 1 | -27/+42 | |
| | | | | | | instruction field, adjust it for PC value (4 for thumb, 8 for arm). llvm-svn: 33711 | |||||
* | Some comments. | Evan Cheng | 2007-01-31 | 1 | -2/+6 | |
| | | | | llvm-svn: 33707 | |||||
* | ConstPool island bug: watch out for cases where UserMI is the last MI of the BB. | Evan Cheng | 2007-01-31 | 1 | -4/+16 | |
| | | | | llvm-svn: 33706 | |||||
* | - Added Thumb constpool island support. | Evan Cheng | 2007-01-31 | 1 | -24/+17 | |
| | | | | | | | - Islands are inserted right after the user MI since thumb LDR cannot encode negative offset. llvm-svn: 33690 | |||||
* | - In thumb mode, if size of MachineFunction is >= 2048, force LR to be | Evan Cheng | 2007-01-30 | 1 | -31/+99 | |
| | | | | | | | | | | | | | spilled (if it is not already). - If LR is spilled, use BL to implement far jumps. LR is not used as a GPR in thumb mode so it can be clobbered if it is properly spilled / restored in prologue / epilogue. - If LR is force spilled but no far jump has been emitted, try undo'ing the spill by: push lr -> delete pop pc -> bx lr llvm-svn: 33650 | |||||
* | Factor GetInstSize() out of constpool island pass. | Evan Cheng | 2007-01-29 | 1 | -69/+4 | |
| | | | | llvm-svn: 33644 | |||||
* | Thumb jumptable support. | Evan Cheng | 2007-01-27 | 1 | -1/+9 | |
| | | | | llvm-svn: 33568 | |||||
* | Conditional branch being fixed up is not the last MI in the BB, there is a | Evan Cheng | 2007-01-26 | 1 | -13/+51 | |
| | | | | | | | | | | | | | unconditional branch following it. Simply invert the condition and swap destinations if the conditional branch can reach the destination of the unconditional branch: beq L1 b L2 => bne L2 b L1 llvm-svn: 33548 | |||||
* | Make LABEL a builtin opcode. | Jim Laskey | 2007-01-26 | 1 | -0/+2 | |
| | | | | llvm-svn: 33537 | |||||
* | SplitBlockBeforeInstr() insert a unconditional branch to the next BB. This | Evan Cheng | 2007-01-26 | 1 | -2/+6 | |
| | | | | | | | is unnecessary when we are fixing up a conditional branch since we will be adding a unconditional branch to the destination of the original branch. llvm-svn: 33517 | |||||
* | Need to scan the function for branches even if there aren't any constants. | Evan Cheng | 2007-01-26 | 1 | -3/+2 | |
| | | | | llvm-svn: 33515 | |||||
* | Forgot to update this. | Evan Cheng | 2007-01-25 | 1 | -1/+1 | |
| | | | | llvm-svn: 33512 | |||||
* | Add comment, fix typo, reduce memory usage, etc. | Evan Cheng | 2007-01-25 | 1 | -9/+14 | |
| | | | | llvm-svn: 33510 | |||||
* | Doh. Skip JT branches. | Evan Cheng | 2007-01-25 | 1 | -1/+2 | |
| | | | | llvm-svn: 33501 | |||||
* | Added (preliminary) branch shortening capability to constantpool island pass. | Evan Cheng | 2007-01-25 | 1 | -7/+130 | |
| | | | | llvm-svn: 33497 | |||||
* | Use PC relative ldr to load from a constantpool in Thumb mode. | Evan Cheng | 2007-01-24 | 1 | -0/+3 | |
| | | | | llvm-svn: 33484 | |||||
* | ARM backend contribution from Apple. | Evan Cheng | 2007-01-19 | 1 | -0/+490 | |
llvm-svn: 33353 |