aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Module.cpp
diff options
context:
space:
mode:
authorZhaoshi Zheng <zhaoshiz@quicinc.com>2022-07-08 11:48:44 -0700
committerZhaoshi Zheng <zhaoshiz@quicinc.com>2022-08-05 11:46:41 -0700
commit99e50e583867ac35ace36f5da50b3a3ff7c51d2e (patch)
treec785bc4477778dbebfffa1429c026b570fea0f89 /clang/lib/Basic/Module.cpp
parentf1eb945f9a5037b1fac6da02405047b24c0c2de5 (diff)
downloadllvm-99e50e583867ac35ace36f5da50b3a3ff7c51d2e.zip
llvm-99e50e583867ac35ace36f5da50b3a3ff7c51d2e.tar.gz
llvm-99e50e583867ac35ace36f5da50b3a3ff7c51d2e.tar.bz2
[WinEH][ARM64] Split Unwind Info for Fucntions Larger than 1MB
Create function segments and emit unwind info of them. A segment must be less than 1MB and no prolog or epilog is splitted between two segments. This patch should generate correct, though not optimal, unwind info for large functions. Currently it only generate pacted info (.pdata) only for functions that are less than 1MB (single-segment functions). This is NFC from before this patch. The next step is to enable (.pdata) only unwind info for the first segment or segments that have neither prolog or epilog in a multi-segment function. Another future work item is to further split segments that require more than 255 code words or have more than 65535 epilogs. Reference: https://docs.microsoft.com/en-us/cpp/build/arm64-exception-handling#function-fragments Differential Revision: https://reviews.llvm.org/D130049
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
0 files changed, 0 insertions, 0 deletions