aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Module.cpp
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@chromium.org>2019-12-18 14:50:19 -0800
committerDerek Schuff <dschuff@chromium.org>2020-01-17 17:23:56 -0800
commitff171acf84204c03f67a46d16ef6adb1b83c4e9b (patch)
tree217c84d74ad4299ac42d770fecbf5d17707d84d1 /llvm/lib/IR/Module.cpp
parentee2de95507a1fc81069c9b521be891abfe1379fb (diff)
downloadllvm-ff171acf84204c03f67a46d16ef6adb1b83c4e9b.zip
llvm-ff171acf84204c03f67a46d16ef6adb1b83c4e9b.tar.gz
llvm-ff171acf84204c03f67a46d16ef6adb1b83c4e9b.tar.bz2
[WebAssembly] Track frame registers through VReg and local allocation
This change has 2 components: Target-independent: add a method getDwarfFrameBase to TargetFrameLowering. It describes how the Dwarf frame base will be encoded. That can be a register (the default), the CFA (which replaces NVPTX-specific logic in DwarfCompileUnit), or a DW_OP_WASM_location descriptr. WebAssembly: Allow WebAssemblyFunctionInfo::getFrameRegister to return the correct virtual register instead of FP32/SP32 after WebAssemblyReplacePhysRegs has run. Make WebAssemblyExplicitLocals store the local it allocates for the frame register. Use this local information to implement getDwarfFrameBase The result is that the DW_AT_frame_base attribute is correctly encoded for each subprogram, and each param and local variable has a correct DW_AT_location that uses DW_OP_fbreg to refer to the frame base. This is a reland of rG3a05c3969c18 with fixes for the expensive-checks and Windows builds Differential Revision: https://reviews.llvm.org/D71681
Diffstat (limited to 'llvm/lib/IR/Module.cpp')
0 files changed, 0 insertions, 0 deletions