diff options
author | Heejin Ahn <aheejin@gmail.com> | 2019-07-11 05:55:47 +0000 |
---|---|---|
committer | Heejin Ahn <aheejin@gmail.com> | 2019-07-11 05:55:47 +0000 |
commit | 54c136bbdf9aa018d1aa8c5d331f8042baaa49e7 (patch) | |
tree | 86bcf124d9ba7270e74882a8ba256ee9cd348a41 | |
parent | 136d27ab4de0c1d5dedfecc32a9857be78fa0648 (diff) | |
download | bcm5719-llvm-54c136bbdf9aa018d1aa8c5d331f8042baaa49e7.tar.gz bcm5719-llvm-54c136bbdf9aa018d1aa8c5d331f8042baaa49e7.zip |
[WebAssembly] Print error message for llvm.clear_cache intrinsic
Summary:
Wasm does not currently support `llvm.clear_cache` intrinsic, and this
prints a proper error message instead of segfault.
Reviewers: dschuff, sbc100, sunfish
Subscribers: jgravelle-google, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64322
llvm-svn: 365731
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h | 4 | ||||
-rw-r--r-- | llvm/test/CodeGen/WebAssembly/clear-cache.ll | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h index ce4ef1478d5..b3c7f3defd5 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h +++ b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h @@ -89,6 +89,10 @@ private: void ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue> &Results, SelectionDAG &DAG) const override; + const char *getClearCacheBuiltinName() const override { + report_fatal_error("llvm.clear_cache is not supported on wasm"); + } + // Custom lowering hooks. SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const override; SDValue LowerFrameIndex(SDValue Op, SelectionDAG &DAG) const; diff --git a/llvm/test/CodeGen/WebAssembly/clear-cache.ll b/llvm/test/CodeGen/WebAssembly/clear-cache.ll new file mode 100644 index 00000000000..cab94882823 --- /dev/null +++ b/llvm/test/CodeGen/WebAssembly/clear-cache.ll @@ -0,0 +1,13 @@ +; RUN: not llc < %s -asm-verbose=false 2>&1 | FileCheck %s + +target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" +target triple = "wasm32-unknown-unknown" + +; CHECK: LLVM ERROR: llvm.clear_cache is not supported on wasm +define void @clear_cache(i8* %begin, i8* %end) { +entry: + call void @llvm.clear_cache(i8* %begin, i8* %end) + ret void +} + +declare void @llvm.clear_cache(i8*, i8*) |