summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMConstantIslandPass.cpp
Commit message (Collapse)AuthorAge
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-02
| | | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite of Thumb constant islands handling (exact allowance for paddingDale Johannesen2007-04-29
| | | | | | | around islands and jump tables). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36573 91177308-0d34-0410-b5e6-96231b3b80d8
* Doh. ARM::LEApcrel is a single instruction MI.Evan Cheng2007-04-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36513 91177308-0d34-0410-b5e6-96231b3b80d8
* Special handling of LEApcrel and tLEApcrel.Evan Cheng2007-04-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36504 91177308-0d34-0410-b5e6-96231b3b80d8
* Make Thumb funcs containing islands 4-byte aligned. Fix bugs maintainingDale Johannesen2007-04-23
| | | | | | | BBOffsets and BBSizes when adjusting conditional branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36372 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused constant pool entries.Evan Cheng2007-04-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35635 91177308-0d34-0410-b5e6-96231b3b80d8
* fix off by 1 error in displacement computationDale Johannesen2007-04-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35602 91177308-0d34-0410-b5e6-96231b3b80d8
* - Track which callee-saved registers are spilled.Evan Cheng2007-03-01
| | | | | | | - Some code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34783 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes requested in review of last pass. Also pulled isThumb into aDale Johannesen2007-02-28
| | | | | | | member, instead of resetting in every function that uses it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34764 91177308-0d34-0410-b5e6-96231b3b80d8
* Add intelligence about where to break large blocks.Dale Johannesen2007-02-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34755 91177308-0d34-0410-b5e6-96231b3b80d8
* cosmetic changes from review of last patch. obviousDale Johannesen2007-02-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34598 91177308-0d34-0410-b5e6-96231b3b80d8
* remove crediting of Evan Cheng and me.Dale Johannesen2007-02-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34568 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed WaterListOffset, inserted BBOffsets. Remove TODO item about thisDale Johannesen2007-02-25
| | | | | | | | from README. When no water available, use end of block if in range. (More to do here.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34563 91177308-0d34-0410-b5e6-96231b3b80d8
* rewrite of constant islandsDale Johannesen2007-02-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34523 91177308-0d34-0410-b5e6-96231b3b80d8
* These vectors are frequently large. Use std::vector instead.Evan Cheng2007-02-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34109 91177308-0d34-0410-b5e6-96231b3b80d8
* Add reference counting to constantpool entries. Delete the unused ones.Evan Cheng2007-02-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34105 91177308-0d34-0410-b5e6-96231b3b80d8
* - Branch max. displacement calculation bug.Evan Cheng2007-02-03
| | | | | | | - Add debugging info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33811 91177308-0d34-0410-b5e6-96231b3b80d8
* Use MBB.empty() instead of MBB.size() for speed.Evan Cheng2007-02-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33789 91177308-0d34-0410-b5e6-96231b3b80d8
* Watch out for empty BB.Evan Cheng2007-02-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33788 91177308-0d34-0410-b5e6-96231b3b80d8
* Pasto. Lots of it.Evan Cheng2007-02-01
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33762 91177308-0d34-0410-b5e6-96231b3b80d8
* - Off by one bugs in maximum displacement calculation / testing.Evan Cheng2007-02-01
| | | | | | | | - In thumb mode, a new constpool island BB size should be 4 + 2 to compensate for the potential padding due to alignment requirement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33753 91177308-0d34-0410-b5e6-96231b3b80d8
* Pessmistically assume the .align 2 before the first constpool entry addsEvan Cheng2007-02-01
| | | | | | | two bytes padding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33734 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle an interesting corner case: the constpool_entry being reference is twoEvan Cheng2007-01-31
| | | | | | | | | | instructions away, i.e. its address is equal to PC. %r0 = tLDRpci <cp#0> bx CONSTPOOL_ENTRY 0 <cp#0>, 4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33728 91177308-0d34-0410-b5e6-96231b3b80d8
* When determining whether a pc relative branch / load displacement fits in theEvan Cheng2007-01-31
| | | | | | | instruction field, adjust it for PC value (4 for thumb, 8 for arm). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33711 91177308-0d34-0410-b5e6-96231b3b80d8
* Some comments.Evan Cheng2007-01-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33707 91177308-0d34-0410-b5e6-96231b3b80d8
* ConstPool island bug: watch out for cases where UserMI is the last MI of the BB.Evan Cheng2007-01-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33706 91177308-0d34-0410-b5e6-96231b3b80d8
* - Added Thumb constpool island support.Evan Cheng2007-01-31
| | | | | | | | - Islands are inserted right after the user MI since thumb LDR cannot encode negative offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33690 91177308-0d34-0410-b5e6-96231b3b80d8
* - In thumb mode, if size of MachineFunction is >= 2048, force LR to beEvan Cheng2007-01-30
| | | | | | | | | | | | | | 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33650 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor GetInstSize() out of constpool island pass.Evan Cheng2007-01-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33644 91177308-0d34-0410-b5e6-96231b3b80d8
* Thumb jumptable support.Evan Cheng2007-01-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33568 91177308-0d34-0410-b5e6-96231b3b80d8
* Conditional branch being fixed up is not the last MI in the BB, there is aEvan Cheng2007-01-26
| | | | | | | | | | | | | | 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33548 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LABEL a builtin opcode.Jim Laskey2007-01-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
* SplitBlockBeforeInstr() insert a unconditional branch to the next BB. ThisEvan Cheng2007-01-26
| | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33517 91177308-0d34-0410-b5e6-96231b3b80d8
* Need to scan the function for branches even if there aren't any constants.Evan Cheng2007-01-26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33515 91177308-0d34-0410-b5e6-96231b3b80d8
* Forgot to update this.Evan Cheng2007-01-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33512 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comment, fix typo, reduce memory usage, etc.Evan Cheng2007-01-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33510 91177308-0d34-0410-b5e6-96231b3b80d8
* Doh. Skip JT branches.Evan Cheng2007-01-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33501 91177308-0d34-0410-b5e6-96231b3b80d8
* Added (preliminary) branch shortening capability to constantpool island pass.Evan Cheng2007-01-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33497 91177308-0d34-0410-b5e6-96231b3b80d8
* Use PC relative ldr to load from a constantpool in Thumb mode.Evan Cheng2007-01-24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33484 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM backend contribution from Apple.Evan Cheng2007-01-19
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33353 91177308-0d34-0410-b5e6-96231b3b80d8