summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-10-07 21:14:45 +0000
committerHeejin Ahn <aheejin@gmail.com>2019-10-07 21:14:45 +0000
commit58af5be28dafedafba3fb20ba35ac0ae4f2c570a (patch)
tree59feabbe3af168b6a55cbad7a9b496c75f533f4d /lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
parentf5d700ac05cb3b3fdb22619186ce9f0376dcca10 (diff)
downloadbcm5719-llvm-58af5be28dafedafba3fb20ba35ac0ae4f2c570a.tar.gz
bcm5719-llvm-58af5be28dafedafba3fb20ba35ac0ae4f2c570a.zip
[WebAssembly] Add memory intrinsics handling to mayThrow()
Summary: Previously, `WebAssembly::mayThrow()` assumed all inputs are global addresses. But when intrinsics, such as `memcpy`, `memmove`, or `memset` are lowered to external symbols in instruction selection and later emitted as library calls. And these functions don't throw. This patch adds handling to those memory intrinsics to `mayThrow` function. But while most of libcalls don't throw, we can't guarantee all of them don't throw, so currently we conservatively return true for all other external symbols. I think a better way to solve this problem is to embed 'nounwind' info in `TargetLowering::CallLoweringInfo`, so that we can access the info from the backend. This will also enable transferring 'nounwind' properties of LLVM IR instructions. Currently we don't transfer that info and we can only access properties of callee functions, if the callees are within the module. Other targets don't need this info in the backend because they do all the processing before isel, but it will help us because that info will reduce code size increase in fixing unwind destination mismatches in CFGStackify. But for now we return false for these memory intrinsics and true for all other libcalls conservatively. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68553 llvm-svn: 373967
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud