From d0f96be2c7816ac1a8297930fe2055075c09713e Mon Sep 17 00:00:00 2001 From: "Kevin P. Neal" Date: Tue, 25 Jun 2019 16:09:39 +0000 Subject: [PATCH] [FPEnv] A missing crucial step was undocumented. llvm-svn: 364328 --- llvm/docs/AddingConstrainedIntrinsics.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/llvm/docs/AddingConstrainedIntrinsics.rst b/llvm/docs/AddingConstrainedIntrinsics.rst index 672ce31f52a3..9e7151940320 100644 --- a/llvm/docs/AddingConstrainedIntrinsics.rst +++ b/llvm/docs/AddingConstrainedIntrinsics.rst @@ -81,6 +81,14 @@ be properly handled.:: lib/CodeGen/SelectionDAG/SelectionDAG.cpp +However, the mutation may not happen if the new node has not been registered +in TargetLoweringBase::initActions(). If the corresponding non-STRICT node +is Legal but a target does not know about STRICT nodes then the STRICT +node will default to Legal and mutation will be bypassed with a "Cannot +select" error. Register the new STRICT node as Expand to avoid this bug.:: + + lib/CodeGen/TargetLoweringBase.cpp + To make debug logs readable it is helpful to update the SelectionDAG's debug logger:::