aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorWei Mi <wmi@google.com>2020-02-13 09:23:27 -0800
committerWei Mi <wmi@google.com>2020-03-04 11:18:37 -0800
commit3c96d01d2e3de63304ca3429d349ec62ae2adef3 (patch)
tree4fa9375416141af02c84ad8c0d515f2b6039e3b9 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parentee9a3eba769787bd87ac47945508751dafa5a46b (diff)
downloadllvm-3c96d01d2e3de63304ca3429d349ec62ae2adef3.zip
llvm-3c96d01d2e3de63304ca3429d349ec62ae2adef3.tar.gz
llvm-3c96d01d2e3de63304ca3429d349ec62ae2adef3.tar.bz2
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
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
0 files changed, 0 insertions, 0 deletions