1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib
Reid Kleckner c7b264dacb [codeview] Implement FPO data assembler directives
Summary:
This adds a set of new directives that describe 32-bit x86 prologues.
The directives are limited and do not expose the full complexity of
codeview FPO data. They are merely a convenience for the compiler to
generate more readable assembly so we don't need to generate tons of
labels in CodeGen. If our prologue emission changes in the future, we
can change the set of available directives to suit our needs. These are
modelled after the .seh_ directives, which use a different format that
interacts with exception handling.

The directives are:
  .cv_fpo_proc _foo
  .cv_fpo_pushreg ebp/ebx/etc
  .cv_fpo_setframe ebp/esi/etc
  .cv_fpo_stackalloc 200
  .cv_fpo_endprologue
  .cv_fpo_endproc
  .cv_fpo_data _foo

I tried to follow the implementation of ARM EHABI CFI directives by
sinking most directives out of MCStreamer and into X86TargetStreamer.
This helps avoid polluting non-X86 code with WinCOFF specific logic.

I used cdb to confirm that this can show locals in parent CSRs in a few
cases, most importantly the one where we use ESI as a frame pointer,
i.e. the one in http://crbug.com/756153#c28

Once we have cdb integration in debuginfo-tests, we can add integration
tests there.

Reviewers: majnemer, hans

Subscribers: aemerson, mgorny, kristof.beyls, llvm-commits, hiraditya

Differential Revision: https://reviews.llvm.org/D38776

llvm-svn: 315513
2017-10-11 21:24:33 +00:00
..
Analysis [SCEV] Properly handle the case of a non-constant start with a zero accum in ScalarEvolution::createAddRecFromPHIWithCastsImpl 2017-10-11 19:05:14 +00:00
AsmParser Remove unused variables. No functionality change. 2017-10-08 19:11:02 +00:00
BinaryFormat llvm-dwarfdump: implement --find for .apple_names 2017-09-28 18:10:52 +00:00
Bitcode Bitcode: add an auto-upgrade for LTO section name 2017-10-06 18:06:59 +00:00
CodeGen [codeview] Implement FPO data assembler directives 2017-10-11 21:24:33 +00:00
DebugInfo Re-land "[llvm-dwarfdump] Print type names in DW_AT_type DIEs" 2017-10-10 14:15:25 +00:00
Demangle
ExecutionEngine Convert an ErrorOr to Expected. 2017-10-11 16:56:33 +00:00
Fuzzer [FuzzerUtil] Partially revert D38481 on FuzzerUtil 2017-10-04 01:05:34 +00:00
FuzzMutate Move some CLI utils out of llvm-isel-fuzzer and into the library 2017-09-02 23:43:04 +00:00
IR Silence MSVC warnings about unsigned wrapping without UB 2017-10-11 01:40:38 +00:00
IRReader Move the stripping of invalid debug info from the Verifier to AutoUpgrade. 2017-10-02 18:31:29 +00:00
LineEditor
Linker
LTO Convert the last uses of ErrorOr in include/llvm/Object. 2017-10-11 18:07:18 +00:00
MC [codeview] Implement FPO data assembler directives 2017-10-11 21:24:33 +00:00
Object Convert the last uses of ErrorOr in include/llvm/Object. 2017-10-11 18:07:18 +00:00
ObjectYAML AMDGPU: Add and set AMDGPU-specific e_flags 2017-10-05 16:19:18 +00:00
Option Revert "Revert r311552: [Bash-autocompletion] Add support for static analyzer flags" 2017-08-29 00:09:31 +00:00
Passes Rename OptimizationDiagnosticInfo.* to OptimizationRemarkEmitter.* 2017-10-09 23:19:02 +00:00
ProfileData [ProfileData] Fix data racing in merging indexed profiles 2017-10-05 17:05:20 +00:00
Support [llvm-rc] Use proper search algorithm for finding resources. 2017-10-11 20:12:09 +00:00
TableGen [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
Target [codeview] Implement FPO data assembler directives 2017-10-11 21:24:33 +00:00
Testing
ToolDrivers Convert the archive writer to use Error. 2017-09-21 23:13:36 +00:00
Transforms [NFC] Convert OptimizationRemarkEmitter old emit() calls to new closure 2017-10-11 17:12:59 +00:00
WindowsManifest Fix bug 34608 by moving private header out of public header. 2017-09-14 23:01:13 +00:00
XRay [XRay][tools] Support arg1 logging entries in the basic logging mode 2017-10-05 05:18:17 +00:00
CMakeLists.txt Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
LLVMBuild.txt Re-apply "Introduce FuzzMutate library" 2017-08-21 22:57:06 +00:00