Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ReuseFrameIndexVals is used in multiple files, so it can't be static. | Dan Gohman | 2010-04-15 | 1 | -2/+5 |
| | | | | llvm-svn: 101379 | ||||
* | Fix a bunch of namespace polution. | Dan Gohman | 2010-04-15 | 1 | -1/+1 |
| | | | | llvm-svn: 101376 | ||||
* | Add const qualifiers to CodeGen's use of LLVM IR constructs. | Dan Gohman | 2010-04-15 | 1 | -1/+1 |
| | | | | llvm-svn: 101334 | ||||
* | use DebugLoc default ctor instead of DebugLoc::getUnknownLoc() | Chris Lattner | 2010-04-02 | 1 | -2/+1 |
| | | | | llvm-svn: 100214 | ||||
* | Fix a very bad typo. Since the register number was off by one, the ARM | Bob Wilson | 2010-03-20 | 1 | -1/+1 |
| | | | | | | | | load/store optimizer would incorrectly think that registers D26 and D28 were consecutive and would generate a VLDM instruction to load them. The assembler was not convinced. llvm-svn: 99043 | ||||
* | Make sure the LR gets pushed in functions that use vaargs. This fixes | Jim Grosbach | 2010-03-10 | 1 | -0/+4 |
| | | | | | | 400.perlbench for the nightly tests. llvm-svn: 98183 | ||||
* | Change the Value argument to eliminateFrameIndex to a type-tagged value. This | Jim Grosbach | 2010-03-09 | 1 | -2/+5 |
| | | | | | | | | | | is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. llvm-svn: 98086 | ||||
* | scavenged frame index value re-use gets confused when more than one base | Jim Grosbach | 2010-03-09 | 1 | -1/+1 |
| | | | | | | | | register is involved for thumb1. Work around this for the moment by only re-using SP-relative offsets. This is temporary 'til the code can distinguish multiple base registers. llvm-svn: 98071 | ||||
* | pr6478: The frame pointer spill frame index is only defined when there is a | Bob Wilson | 2010-03-04 | 1 | -1/+3 |
| | | | | | | frame pointer. llvm-svn: 97755 | ||||
* | Create a stack frame on ARM when | Jakob Stoklund Olesen | 2010-02-24 | 1 | -41/+41 |
| | | | | | | | | | | | - Function uses all scratch registers AND - Function does not use any callee saved registers AND - Stack size is too big to address with immediate offsets. In this case a register must be scavenged to calculate the address of a stack object, and the scavenger needs a spare register or emergency spill slot. llvm-svn: 97071 | ||||
* | Remove an unused variable. Was this intentional? | Chandler Carruth | 2010-02-24 | 1 | -1/+0 |
| | | | | llvm-svn: 97022 | ||||
* | handle very large call frames when require SPAdj != 0 for Thumb1 | Jim Grosbach | 2010-02-24 | 1 | -1/+1 |
| | | | | llvm-svn: 97013 | ||||
* | Spelling. s/suppor /support / | Jim Grosbach | 2010-02-23 | 1 | -3/+3 |
| | | | | llvm-svn: 96954 | ||||
* | Updated version of r96634 (which was reverted due to failing 176.gcc and | Jim Grosbach | 2010-02-22 | 1 | -0/+10 |
| | | | | | | | | 126.gcc nightly tests. These failures uncovered latent bugs that machine DCE could remove one half of a stack adjust down/up pair, causing PEI to assert. This update fixes that, and the tests now pass. llvm-svn: 96822 | ||||
* | Clean up a bit and fix for when SPAdj != 0 | Jim Grosbach | 2010-02-22 | 1 | -3/+2 |
| | | | | llvm-svn: 96818 | ||||
* | The predicate index isn't fixed, so scan for it to make sure we get the proper | Jim Grosbach | 2010-02-22 | 1 | -2/+3 |
| | | | | | | | | | value. Thumb2 uses the tADJCALLSTACK* instructions, and doesn't need t2 versions, so remove the FIXME entry. llvm-svn: 96817 | ||||
* | Revert 96634. It causes assertion failures for 126.gcc and 176.gcc in | Bob Wilson | 2010-02-19 | 1 | -12/+3 |
| | | | | | | the armv6 nightly tests. llvm-svn: 96691 | ||||
* | Radar 7636153. In the presence of large call frames, it's not sufficient | Jim Grosbach | 2010-02-19 | 1 | -3/+12 |
| | | | | | | | | | for ARM to just check if a function has a FP to determine if it's safe to simplify the stack adjustment pseudo ops prior to eliminating frame indices. Allow targets to override the default behavior and does so for ARM and Thumb2. llvm-svn: 96634 | ||||
* | Teach MachineFrameInfo to track maximum alignment while stack objects are being | Evan Cheng | 2010-02-13 | 1 | -8/+0 |
| | | | | | | | | | | created. This ensures it's updated at all time. It means targets which perform dynamic stack alignment would know whether it is required and whether frame pointer register cannot be made available register allocation. This is a fix for rdar://7625239. Sorry, I can't create a reasonably sized test case. llvm-svn: 96069 | ||||
* | As of r79039, we still try to eliminate the frame pointer on leaf functions, | Jim Grosbach | 2010-02-02 | 1 | -1/+1 |
| | | | | | | even when -disable-fp-elim is specified. llvm-svn: 95161 | ||||
* | constify a method argument. | Chris Lattner | 2010-01-26 | 1 | -3/+4 |
| | | | | llvm-svn: 94612 | ||||
* | For aligned load/store instructions, it's only required to know whether a | Jim Grosbach | 2010-01-19 | 1 | -0/+8 |
| | | | | | | | | | | | function can support dynamic stack realignment. That's a much easier question to answer at instruction selection stage than whether the function actually will have dynamic alignment prologue. This allows the removal of the stack alignment heuristic pass, and improves code quality for cases where the heuristic would result in dynamic alignment code being generated when it was not strictly necessary. llvm-svn: 93885 | ||||
* | 80 column violations | Jim Grosbach | 2010-01-06 | 1 | -4/+6 |
| | | | | llvm-svn: 92876 | ||||
* | Addressing mode 6 (load/store) instructions can't encode an immediate offset | Jim Grosbach | 2010-01-06 | 1 | -1/+4 |
| | | | | | | for stack references. llvm-svn: 92871 | ||||
* | Use proper move instructions. Make the verifier happy. | Jakob Stoklund Olesen | 2009-12-22 | 1 | -1/+1 |
| | | | | llvm-svn: 91914 | ||||
* | Dynamic stack realignment use of sp register as source/dest register | Anton Korobeynikov | 2009-12-06 | 1 | -4/+27 |
| | | | | | | | | | | in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode. Emit the following code instead: mov r4, sp bic r4, r4, #15 mov sp, r4 llvm-svn: 90724 | ||||
* | Factor the stack alignment calculations out into a target independent pass. | Jim Grosbach | 2009-12-02 | 1 | -63/+2 |
| | | | | | | No functionality change. llvm-svn: 90336 | ||||
* | Move default FrameReg val to getFrameIndexReference(). Otherwise, debug info ↵ | Jim Grosbach | 2009-11-22 | 1 | -1/+2 |
| | | | | | | can get bogus values. llvm-svn: 89618 | ||||
* | Generate more correct debug info for frame indices. | Jim Grosbach | 2009-11-22 | 1 | -35/+50 |
| | | | | llvm-svn: 89576 | ||||
* | Revert 89562. We're being sneakier than I was giving us credit for, and this | Jim Grosbach | 2009-11-21 | 1 | -4/+1 |
| | | | | | | isn't necessary. llvm-svn: 89568 | ||||
* | Darwin requires a frame pointer for all non-leaf functions to support correct | Jim Grosbach | 2009-11-21 | 1 | -1/+4 |
| | | | | | | backtraces. llvm-svn: 89562 | ||||
* | Make the pass class name more explicit. | Jim Grosbach | 2009-11-16 | 1 | -4/+6 |
| | | | | llvm-svn: 88964 | ||||
* | make pass name a bit more clear | Jim Grosbach | 2009-11-16 | 1 | -1/+1 |
| | | | | llvm-svn: 88961 | ||||
* | Detect need for autoalignment of the stack earlier to catch spills more | Jim Grosbach | 2009-11-15 | 1 | -2/+45 |
| | | | | | | | conservatively. eliminateFrameIndex() machinery adjust to handle addr mode 6 (vld1/vst1) used for spills. Fix tests to expect aligned Q-reg spilling llvm-svn: 88874 | ||||
* | Add a bool flag to StackObjects telling whether they reference spill | David Greene | 2009-11-12 | 1 | -2/+4 |
| | | | | | | | | | | | | | slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022 | ||||
* | Now that the default is 'enabled,' a separate command line option for ARM is | Jim Grosbach | 2009-11-09 | 1 | -8/+1 |
| | | | | | | not necessary. llvm-svn: 86621 | ||||
* | Enable dynamic stack realignment by default. | Jim Grosbach | 2009-11-09 | 1 | -1/+1 |
| | | | | llvm-svn: 86604 | ||||
* | Set dynamic stack realignment to real values. | Jim Grosbach | 2009-11-09 | 1 | -11/+3 |
| | | | | llvm-svn: 86602 | ||||
* | Use Unified Assembly Syntax for the ARM backend. | Jim Grosbach | 2009-11-09 | 1 | -4/+4 |
| | | | | llvm-svn: 86494 | ||||
* | Use aligned load/store instructions for spilling Q registers when we know ↵ | Jim Grosbach | 2009-11-08 | 1 | -2/+2 |
| | | | | | | the stack slot is 128 bit aligned llvm-svn: 86425 | ||||
* | Grammar. | Jim Grosbach | 2009-11-04 | 1 | -1/+1 |
| | | | | llvm-svn: 86068 | ||||
* | Now that the memory leak from McCat/08-main has been fixed (86056), re-enable | Jim Grosbach | 2009-11-04 | 1 | -3/+9 |
| | | | | | | | aggressive testing of dynamic stack alignment. Note that this is off by default, and enabled for LLCBETA nightly results. llvm-svn: 86064 | ||||
* | If a function has no stack frame at all, dynamic realignment isn't necessary. | Jim Grosbach | 2009-11-04 | 1 | -0/+1 |
| | | | | llvm-svn: 86057 | ||||
* | dynamic stack realignment necessitates scanning the floating point callee- | Jim Grosbach | 2009-11-04 | 1 | -2/+2 |
| | | | | | | saved instructions even if no stack adjustment for those saves is needed. llvm-svn: 86056 | ||||
* | Fix PR5367. QPR_8 is the super regclass of DPR_8 and SPR_8. | Evan Cheng | 2009-11-03 | 1 | -2/+9 |
| | | | | llvm-svn: 85871 | ||||
* | Revert r85049, it is causing PR5367 | Anton Korobeynikov | 2009-11-03 | 1 | -0/+2 |
| | | | | llvm-svn: 85847 | ||||
* | Make use of imm12 version of Thumb2 ldr / str instructions more aggressively. | Evan Cheng | 2009-11-01 | 1 | -6/+16 |
| | | | | llvm-svn: 85743 | ||||
* | Dial back the realignment a bit. | Jim Grosbach | 2009-10-30 | 1 | -9/+3 |
| | | | | llvm-svn: 85546 | ||||
* | To get more thorough testing from llc-beta nightly runs, do dynamic stack | Jim Grosbach | 2009-10-29 | 1 | -4/+9 |
| | | | | | | realignment regardless of whether it's strictly necessary. llvm-svn: 85476 | ||||
* | Cleanup now that frame index scavenging via post-pass is working for ARM and ↵ | Jim Grosbach | 2009-10-28 | 1 | -31/+4 |
| | | | | | | Thumb2. llvm-svn: 85406 |