[llvm] r352695 - [WebAssembly] Remove TODO on wasm.extract.exception intrinsic (NFC)

Heejin Ahn via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 30 15:53:36 PST 2019


Author: aheejin
Date: Wed Jan 30 15:53:36 2019
New Revision: 352695

URL: http://llvm.org/viewvc/llvm-project?rev=352695&view=rev
Log:
[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

Modified:
    llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td

Modified: llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td?rev=352695&r1=352694&r2=352695&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td (original)
+++ llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td Wed Jan 30 15:53:36 2019
@@ -51,8 +51,6 @@ def int_wasm_get_ehselector : Intrinsic<
                                         [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]>;
 




More information about the llvm-commits mailing list