From: Heejin Ahn <aheejin@gmail.com> Date: Wed, 30 Jan 2019 23:53:36 +0000 (+0000) Subject: [WebAssembly] Remove TODO on wasm.extract.exception intrinsic (NFC) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0527d9ef0522678a3c38ff17f8c113e2ca921bbe;p=llvm [WebAssembly] Remove TODO on wasm.extract.exception intrinsic (NFC) Summary: We planned to delete this intrinsic and do custom lowering from `wasm.get.exception`, which has a token argument, to `EXTRACT_EXCEPTION`, a wasm pseudo instruction that simulates popping a value from the wasm stack. To do that, we need to introduce a new `WebAssemblyISD` node for this, which itself is not a problem, but also have to introduce the `WebAssemblyISD` namespace in SelectionDAGBuilder.cpp. I don't think any other targets are doing that in the file. And also putting a target-specific intrinsic in the common file is a little weird too. (All other intrinsic functions in this `visitIntrinsicCall` functions are not target-specific ones. Other target-specific intrinsics are usually handled in `lib/Target/[TargetName]/[TargetName]ISelLowering.cpp`. The reason we can't do this is it has a token argument. Anyway, so I think I prefer the current code with one redundant intrinsic more than adding one more `WebAssemblyISD` node and also introducing the `WebAssemblyISD` namespace into SelectionDAGBuilder.cpp. What do you think? Reviewers: dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D57480 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352695 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/IntrinsicsWebAssembly.td b/include/llvm/IR/IntrinsicsWebAssembly.td index 767b4c89c41..874465e4a02 100644 --- a/include/llvm/IR/IntrinsicsWebAssembly.td +++ b/include/llvm/IR/IntrinsicsWebAssembly.td @@ -51,8 +51,6 @@ def int_wasm_get_ehselector : Intrinsic<[llvm_i32_ty], [llvm_token_ty], [IntrHasSideEffects]>; // This is the same as llvm.wasm.get.exception except that it does not take a // token operand. This is only for instruction selection purpose. -// TODO Remove this redundant intrinsic and do custom lowering on -// int_wasm_get_exception instead def int_wasm_extract_exception : Intrinsic<[llvm_ptr_ty], [], [IntrHasSideEffects]>;