summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FrameLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Only run MF.verify() with EXPENSIVE_CHECKS=1.Jakob Stoklund Olesen2011-09-241-1/+1
| | | | llvm-svn: 140441
* Reenable compact unwind by default. However, also emit the old version of unwindBill Wendling2011-09-061-8/+1
| | | | | | information for older linkers. llvm-svn: 139206
* Revert r138826 until PR10834 can be fixed.Bill Wendling2011-09-021-1/+8
| | | | llvm-svn: 139018
* Spelling and grammar fixes to problems found by Duncan.Rafael Espindola2011-08-311-2/+2
| | | | llvm-svn: 138858
* Make sure we don't crash when -miphoneos-version-min is specified on x86. ↵Eli Friedman2011-08-311-1/+2
| | | | | | Hopefully this will fix gcc testsuite failures. llvm-svn: 138856
* Fix off-by-one error Benjamin noticed.Bill Wendling2011-08-301-1/+1
| | | | llvm-svn: 138832
* Enable compact unwind info by default. This only applies to Darwin when CFI isBill Wendling2011-08-301-9/+1
| | | | | | disabled. llvm-svn: 138826
* Emit segmented-stack specific code into function prologues forRafael Espindola2011-08-301-1/+160
| | | | | | | | | | | | X86. Modify the pass added in the previous patch to call this new code. This new prologues generated will call a libgcc routine (__morestack) to allocate more stack space from the heap when required Patch by Sanjoy Das. llvm-svn: 138812
* findDeadCallerSavedReg fix: Missing NULL terminator in register arrays.Andrew Trick2011-08-121-2/+2
| | | | | | Fix by Ivan Baev. Sorry I don't have a unit test, but the fix is obvious so I don't want to delay it. llvm-svn: 137404
* The compact unwinding offsets are divided by 8 on 64-bit machines.Bill Wendling2011-07-261-2/+4
| | | | llvm-svn: 136065
* Update the comment. This feature is available only on Darwin at the moment. ↵Bill Wendling2011-07-251-1/+2
| | | | | | Though it's not Darwin-specific. llvm-svn: 135951
* Changed disabled code into a flag.Bill Wendling2011-07-251-1/+7
| | | | llvm-svn: 135924
* Remove dead variable.Bill Wendling2011-07-251-1/+0
| | | | llvm-svn: 135923
* After we've modified the prolog to save volatile registers, generate the compactBill Wendling2011-07-251-5/+249
| | | | | | | | | | | unwind encoding for that function. This simply crawls through the prolog looking for machine instrs marked as "frame setup". It can calculate from these what the compact unwind should look like. This is currently disabled because of needed linker support. But initial tests look good. llvm-svn: 135922
* Mark instructions which are part of the frame setup with the ↵Bill Wendling2011-07-211-9/+20
| | | | | | MachineInstr::FrameSetup flag. llvm-svn: 135645
* Remove unused function.Bill Wendling2011-07-201-64/+0
| | | | llvm-svn: 135635
* Remove the now defunct getCompactUnwindEncoding method from the frame ↵Bill Wendling2011-07-201-115/+0
| | | | | | lowering code. llvm-svn: 135634
* Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions forEvan Cheng2011-07-181-17/+0
| | | | | | better location welcome). llvm-svn: 135438
* * Redo the permutation encoding for frameless stacks to be more like what theBill Wendling2011-07-141-44/+73
| | | | | | | unwind library expects. * Comment the permutation encoding for frameless stacks. llvm-svn: 135202
* Add code to handle a "frameless" unwind stack.Bill Wendling2011-07-131-13/+55
| | | | | | | The frameless unwind stack has a special encoding, the algorithm for which is in "permuteEncode". llvm-svn: 135103
* Don't emit the FDE end label if the last thing emitted was a compact unwind andBill Wendling2011-07-131-7/+15
| | | | | | not the FDE llvm-svn: 135020
* Assign variable before we test it.Bill Wendling2011-07-131-2/+1
| | | | llvm-svn: 135015
* Fix obvious think-o.Bill Wendling2011-07-131-1/+1
| | | | llvm-svn: 135014
* Clean up the handling of an EBP/RBP unwind frame pointer. In particular, don'tBill Wendling2011-07-131-23/+26
| | | | | | | | assert when the frame pointer is -1 (i.e., the function is "frameless"). Still to do: "frameless" unwind information. llvm-svn: 135013
* Use ArrayRef instead of a std::vector&.Bill Wendling2011-07-071-2/+2
| | | | llvm-svn: 134595
* Add a target hook to encode the compact unwind information.Bill Wendling2011-07-071-0/+98
| | | | llvm-svn: 134577
* Fit banner in 80-col and adjust whitespace. No functionality changes.Nick Lewycky2011-06-141-2/+2
| | | | llvm-svn: 132964
* Put FrameSetup flag on x86 instructions that set up the call frame. NoCharles Davis2011-06-121-5/+13
| | | | | | | | | functionality change. Later on, we'll use the flag to emit SEH pseudo-ops that describe how the call frame was built. llvm-svn: 132880
* Replace the -unwind-tables option with a per function flag. This is moreRafael Espindola2011-05-251-1/+1
| | | | | | | LTO friendly as we can now correctly merge files compiled with or without -fasynchronous-unwind-tables. llvm-svn: 132033
* Print all the moves at a given label instead of just the first one.Rafael Espindola2011-04-261-9/+0
| | | | | | Remove previous DwarfCFI hack. llvm-svn: 130187
* Add 129518 back with a fix for when we are producing eh just because of ↵Rafael Espindola2011-04-151-1/+11
| | | | | | | | | debug info. Change ELF systems to use CFI for producing the EH tables. This reduces the size of the clang binary in Debug builds from 690MB to 679MB. llvm-svn: 129571
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-3/+3
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Revert r129518, "Change ELF systems to use CFI for producing the EH tables. ↵NAKAMURA Takumi2011-04-151-11/+1
| | | | | | | | This reduces the" It broke several builds. llvm-svn: 129557
* Change ELF systems to use CFI for producing the EH tables. This reduces theRafael Espindola2011-04-141-1/+11
| | | | | | size of the clang binary in Debug builds from 690MB to 679MB. llvm-svn: 129518
* Target/X86: [PR8777][PR8778] Tweak alloca/chkstk for Windows targets.NAKAMURA Takumi2011-03-241-45/+51
| | | | | FIXME: Some cleanups would be needed. llvm-svn: 128206
* Target/X86: Always emit "push/pop GPRs" in prologue/epilogue and emit ↵NAKAMURA Takumi2011-02-271-17/+39
| | | | | | | | "spill/reload frames" for XMMs. It improves Win64's prologue/epilogue but it would not affect ia32 and amd64 (lack of nonvolatile XMMs). llvm-svn: 126568
* Target/X86: Tweak allocating shadow area (aka home) on Win64. It must be ↵NAKAMURA Takumi2011-02-051-5/+0
| | | | | | enough for caller to allocate one. llvm-svn: 124949
* Target/X86: Fix whitespace.NAKAMURA Takumi2011-02-051-3/+3
| | | | llvm-svn: 124946
* Test commit - fix a double 'should' in a comment.Carl Norum2011-02-011-1/+1
| | | | llvm-svn: 124652
* Patches to build EFI with Clang/LLVM. By Carl Norum.Evan Cheng2011-02-011-2/+6
| | | | llvm-svn: 124639
* CleanupAnton Korobeynikov2011-01-141-6/+1
| | | | llvm-svn: 123475
* Fix a few more places that should use MBB::getLastNonDebugInstr().Jakob Stoklund Olesen2011-01-131-1/+1
| | | | llvm-svn: 123408
* Teach frame lowering to ignore debug values after the terminators.Jakob Stoklund Olesen2011-01-131-5/+6
| | | | llvm-svn: 123399
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-0/+999
and fixes here and there. llvm-svn: 123170
OpenPOWER on IntegriCloud