Eli Friedman
635d9692b6
Make sure we don't crash when -miphoneos-version-min is specified on x86. Hopefully this will fix gcc testsuite failures.
...
llvm-svn: 138856
2011-08-31 16:19:51 +00:00
Bill Wendling
6470e07e20
Fix off-by-one error Benjamin noticed.
...
llvm-svn: 138832
2011-08-30 21:23:24 +00:00
Bill Wendling
7a9c3033a4
Enable compact unwind info by default. This only applies to Darwin when CFI is
...
disabled.
llvm-svn: 138826
2011-08-30 20:54:11 +00:00
Rafael Espindola
c21742112b
Emit segmented-stack specific code into function prologues for
...
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
2011-08-30 19:39:58 +00:00
Andrew Trick
210bf8351d
findDeadCallerSavedReg fix: Missing NULL terminator in register arrays.
...
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
2011-08-12 00:49:19 +00:00
Bill Wendling
ee61946783
The compact unwinding offsets are divided by 8 on 64-bit machines.
...
llvm-svn: 136065
2011-07-26 08:03:49 +00:00
Bill Wendling
43ab71a9a8
Update the comment. This feature is available only on Darwin at the moment. Though it's not Darwin-specific.
...
llvm-svn: 135951
2011-07-25 20:15:15 +00:00
Bill Wendling
2dc0005b3c
Changed disabled code into a flag.
...
llvm-svn: 135924
2011-07-25 18:04:49 +00:00
Bill Wendling
1d10909cb7
Remove dead variable.
...
llvm-svn: 135923
2011-07-25 18:01:27 +00:00
Bill Wendling
b97270d58a
After we've modified the prolog to save volatile registers, generate the compact
...
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
2011-07-25 18:00:28 +00:00
Bill Wendling
28b6e12d9d
Mark instructions which are part of the frame setup with the MachineInstr::FrameSetup flag.
...
llvm-svn: 135645
2011-07-21 00:44:56 +00:00
Bill Wendling
ed93564c7a
Remove unused function.
...
llvm-svn: 135635
2011-07-20 23:07:42 +00:00
Bill Wendling
01bd7d9dc0
Remove the now defunct getCompactUnwindEncoding method from the frame lowering code.
...
llvm-svn: 135634
2011-07-20 23:04:09 +00:00
Evan Cheng
67c033e6b8
Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for
...
better location welcome).
llvm-svn: 135438
2011-07-18 22:29:13 +00:00
Bill Wendling
2d825b5ecf
* Redo the permutation encoding for frameless stacks to be more like what the
...
unwind library expects.
* Comment the permutation encoding for frameless stacks.
llvm-svn: 135202
2011-07-14 22:01:34 +00:00
Bill Wendling
d11ea81db0
Add code to handle a "frameless" unwind stack.
...
The frameless unwind stack has a special encoding, the algorithm for which is in
"permuteEncode".
llvm-svn: 135103
2011-07-13 23:03:31 +00:00
Bill Wendling
ee6e776be2
Don't emit the FDE end label if the last thing emitted was a compact unwind and
...
not the FDE
llvm-svn: 135020
2011-07-13 00:49:09 +00:00
Bill Wendling
0402e8fe4b
Assign variable before we test it.
...
llvm-svn: 135015
2011-07-13 00:23:39 +00:00
Bill Wendling
ed3c44224b
Fix obvious think-o.
...
llvm-svn: 135014
2011-07-13 00:20:09 +00:00
Bill Wendling
929b90ff32
Clean up the handling of an EBP/RBP unwind frame pointer. In particular, don't
...
assert when the frame pointer is -1 (i.e., the function is "frameless").
Still to do: "frameless" unwind information.
llvm-svn: 135013
2011-07-13 00:16:14 +00:00
Bill Wendling
667be58220
Use ArrayRef instead of a std::vector&.
...
llvm-svn: 134595
2011-07-07 04:42:01 +00:00
Bill Wendling
b6adf46f62
Add a target hook to encode the compact unwind information.
...
llvm-svn: 134577
2011-07-07 00:54:13 +00:00
Nick Lewycky
34a425b075
Fit banner in 80-col and adjust whitespace. No functionality changes.
...
llvm-svn: 132964
2011-06-14 03:23:52 +00:00
Charles Davis
7ed40cbded
Put FrameSetup flag on x86 instructions that set up the call frame. No
...
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
2011-06-12 01:45:54 +00:00
Rafael Espindola
fc9bae6f8b
Replace the -unwind-tables option with a per function flag. This is more
...
LTO friendly as we can now correctly merge files compiled with or without
-fasynchronous-unwind-tables.
llvm-svn: 132033
2011-05-25 03:44:17 +00:00
Rafael Espindola
80cb3cb1d6
Print all the moves at a given label instead of just the first one.
...
Remove previous DwarfCFI hack.
llvm-svn: 130187
2011-04-26 03:58:56 +00:00
Rafael Espindola
a01cdb0e37
Add 129518 back with a fix for when we are producing eh just because of 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
2011-04-15 15:11:06 +00:00
Chris Lattner
0ab5e2cded
Fix a ton of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129558
2011-04-15 05:18:47 +00:00
NAKAMURA Takumi
b5e3e9dd27
Revert r129518, "Change ELF systems to use CFI for producing the EH tables. This reduces the"
...
It broke several builds.
llvm-svn: 129557
2011-04-15 03:35:57 +00:00
Rafael Espindola
aa2a7cd828
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: 129518
2011-04-14 15:18:53 +00:00
NAKAMURA Takumi
521eb7c11e
Target/X86: [PR8777][PR8778] Tweak alloca/chkstk for Windows targets.
...
FIXME: Some cleanups would be needed.
llvm-svn: 128206
2011-03-24 07:07:00 +00:00
NAKAMURA Takumi
d4e5003a3f
Target/X86: Always emit "push/pop GPRs" in prologue/epilogue and emit "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
2011-02-27 08:47:19 +00:00
NAKAMURA Takumi
1850c80afb
Target/X86: Tweak allocating shadow area (aka home) on Win64. It must be enough for caller to allocate one.
...
llvm-svn: 124949
2011-02-05 15:11:32 +00:00
NAKAMURA Takumi
f7f319d4d3
Target/X86: Fix whitespace.
...
llvm-svn: 124946
2011-02-05 15:10:54 +00:00
Carl Norum
ecd90b5946
Test commit - fix a double 'should' in a comment.
...
llvm-svn: 124652
2011-02-01 07:38:42 +00:00
Evan Cheng
d22a4a1fd6
Patches to build EFI with Clang/LLVM. By Carl Norum.
...
llvm-svn: 124639
2011-02-01 01:14:13 +00:00
Anton Korobeynikov
4d9de6be4b
Cleanup
...
llvm-svn: 123475
2011-01-14 21:57:58 +00:00
Jakob Stoklund Olesen
bbb1a54b84
Fix a few more places that should use MBB::getLastNonDebugInstr().
...
llvm-svn: 123408
2011-01-13 22:47:43 +00:00
Jakob Stoklund Olesen
4bc5e38960
Teach frame lowering to ignore debug values after the terminators.
...
llvm-svn: 123399
2011-01-13 21:28:52 +00:00
Anton Korobeynikov
2f93128109
Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.
...
llvm-svn: 123170
2011-01-10 12:39:04 +00:00