==================================================
How To Add A Constrained Floating-Point Intrinsic
==================================================

.. contents::
   :local:

.. warning::
  This is a work in progress.

Add the intrinsic
=================

Multiple files need to be updated when adding a new constrained intrinsic.

Add the new intrinsic to the table of intrinsics.::

  include/llvm/IR/Intrinsics.td

Update class ConstrainedFPIntrinsic to know about the intrinsics.::

  include/llvm/IR/IntrinsicInst.h

Functions like ConstrainedFPIntrinsic::isUnaryOp() or
ConstrainedFPIntrinsic::isTernaryOp() may need to know about the new
intrinsic.::

  lib/IR/IntrinsicInst.cpp

Update the IR verifier::

  lib/IR/Verifier.cpp

Add SelectionDAG node types
===========================

Add the new STRICT version of the node type to the ISD::NodeType enum.::

  include/llvm/CodeGen/ISDOpcodes.h

In class SDNode update isStrictFPOpcode()::

  include/llvm/CodeGen/SelectionDAGNodes.h

A mapping from the STRICT SDnode type to the non-STRICT is done in
TargetLoweringBase::getStrictFPOperationAction(). This allows STRICT
nodes to be legalized similarly to the non-STRICT node type.::

  include/llvm/CodeGen/TargetLowering.h

Building the SelectionDAG
-------------------------

The switch statement in SelectionDAGBuilder::visitIntrinsicCall() needs
to be updated to call SelectionDAGBuilder::visitConstrainedFPIntrinsic().
That function, in turn, needs to be updated to know how to create the
SDNode for the intrinsic. The new STRICT node will eventually be converted
to the matching non-STRICT node. For this reason it should have the same
operands and values as the non-STRICT version but should also use the chain.
This makes subsequent sharing of code for STRICT and non-STRICT code paths
easier.::

  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Most of the STRICT nodes get legalized the same as their matching non-STRICT
counterparts. A new STRICT node with this property must get added to the
switch in SelectionDAGLegalize::LegalizeOp().::

  lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

Other parts of the legalizer may need to be updated as well. Look for
places where the non-STRICT counterpart is legalized and update as needed.
Be careful of the chain since STRICT nodes use it but their counterparts
often don't.

The code to do the conversion or mutation of the STRICT node to a non-STRICT
version of the node happens in SelectionDAG::mutateStrictFPToFP(). Be
careful updating this function since some nodes have the same return type
as their input operand, but some are different. Both of these cases must
be properly handled.::

  lib/CodeGen/SelectionDAG/SelectionDAG.cpp

To make debug logs readable it is helpful to update the SelectionDAG's
debug logger:::

  lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

Add documentation and tests
===========================

::

  docs/LangRef.rst
