llvm-project/llvm/lib
Wei Mi 3c96d01d2e Generate Callee Saved Register (CSR) related cfi directives like .cfi_restore.
https://reviews.llvm.org/D42848 only handled CFA related cfi directives but
didn't handle CSR related cfi. The patch adds the CSR part. Basically it reuses
the framework created in D42848. For each basicblock, the patch tracks which
CSR set have been saved at its CFG predecessors's exits, and compare the CSR
set with the set at its previous basicblock's exit (The previous block is the
block laid before the current block). If the saved CSR set at its previous
basicblock's exit is larger, .cfi_restore will be inserted.

The patch also generates proper .cfi_restore in epilogue to make sure the
saved CSR set is consistent for the incoming edges of each block.

Differential Revision: https://reviews.llvm.org/D74303
2020-03-04 11:18:37 -08:00
..
Analysis [ConstantFolding] Always return something from ConstantFoldConstant 2020-03-04 18:24:47 +01:00
AsmParser Revert "Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP"" 2020-03-02 14:02:13 -08:00
BinaryFormat Avoid including FileSystem.h from MemoryBuffer.h 2020-02-29 12:30:23 -08:00
Bitcode [Bitcode] Fix -Wswitch after c5ec8890c9 2020-03-03 10:02:34 -08:00
Bitstream Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
CodeGen Generate Callee Saved Register (CSR) related cfi directives like .cfi_restore. 2020-03-04 11:18:37 -08:00
DWARFLinker [DWARFLinker][NFC] Remove usages of "const object::ObjectFile" from DWARFLinker. 2020-02-28 13:26:22 +03:00
DebugInfo Revert "Fix GSYM tests to run the yaml files and fix test failures on some machines." 2020-03-04 10:21:54 -08:00
Demangle Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
ExecutionEngine [ORC] Skip ST_File symbols in MaterializationUnit interfaces / resolution. 2020-03-03 16:15:44 -08:00
Frontend [NFC] Revert unnecessary parts of b91c267380 2020-02-15 01:38:58 -06:00
FuzzMutate Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Fuzzer
IR Revert "Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP"" 2020-03-02 14:02:13 -08:00
IRReader
LTO [LTO] onfig::addSaveTemps: clear ResolutionFile upon an error 2020-03-02 17:49:04 -08:00
LineEditor Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Linker IR Linking: Support merging Warning+Max module metadata flags 2020-02-07 16:29:58 -08:00
MC [MCDwarf] Change emitListsTableHeaderStart to use a reference and fold Start/End symbols generation into it 2020-03-03 16:20:40 -08:00
MCA Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Object [NFC] Fix typo in error message 2020-02-24 18:22:05 +01:00
ObjectYAML [yaml2obj] - Address post commit comments for D74764 2020-02-25 13:26:46 +03:00
Option Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Passes [PassManager] adjust VectorCombine placement 2020-03-04 11:10:49 -05:00
ProfileData [Coverage] Collect all function records in an object (D69471 followup) 2020-03-02 12:01:09 -08:00
Remarks Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Support Revert abb00753 "build: reduce CMake handling for zlib" (PR44780) 2020-03-03 11:03:09 +01:00
TableGen Explicitly include <cassert> when using assert 2020-03-02 22:45:28 +01:00
Target Generate Callee Saved Register (CSR) related cfi directives like .cfi_restore. 2020-03-04 11:18:37 -08:00
Testing
TextAPI [llvm][MachO] fix adding weak def syms 2020-03-02 17:00:24 -08:00
ToolDrivers [llvm] Replace SmallStr.str().str() with std::string conversion operator. 2020-01-29 21:16:46 -08:00
Transforms [CodeGenPrepare] Handle ExtractValueInst in dupRetToEnableTailCallOpts 2020-03-04 11:10:32 -08:00
WindowsManifest Try to fix WindowsManifest CMake logic on Windows 2020-02-28 17:24:03 -08:00
XRay Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
CMakeLists.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00
LLVMBuild.txt [Dsymutil][Debuginfo][NFC] Reland: Refactor dsymutil to separate DWARF optimizing part. #2. 2020-01-08 14:15:31 +03:00