LLVM 23.0.0git
HexagonPostRAHandleQFP.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Macros

#define DEBUG_TYPE   "handle-qfp"

Functions

static void getAllRealUses (NodeAddr< DefNode * > DA, NodeSet &UNodeSet, Liveness *L, DataFlowGraph *G, bool comprehensive=false)
FunctionPassllvm::createHexagonPostRAHandleQFP ()
void llvm::initializeHexagonPostRAHandleQFPPass (PassRegistry &)
 INITIALIZE_PASS_BEGIN (HexagonPostRAHandleQFP, "handle-qfp-spills-refills", "Hexagon Post RA Handle QFloat", false, false) INITIALIZE_PASS_END(HexagonPostRAHandleQFP

Variables

cl::opt< QFloatMode > QFloatModeValue
cl::opt< boolDisablePostRAHandleQFloat ("disable-handle-qfp", cl::init(false), cl::desc("Disable handling of Qfloat spills/refills after register " "allocation."))
DenseMap< unsigned short, std::pair< bool, bool > > QFPSatInstsMap
SmallVector< unsigned short, 5 > QFNonSatInstr
charllvm::HexagonPostRAHandleQFPID = HexagonPostRAHandleQFP::ID
handle qfp spills refills
handle qfp spills Hexagon PostRA Handle QFloat
handle qfp spills Hexagon PostRA Handle false

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "handle-qfp"

Definition at line 83 of file HexagonPostRAHandleQFP.cpp.

Function Documentation

◆ getAllRealUses()

void getAllRealUses ( NodeAddr< DefNode * > DA,
NodeSet & UNodeSet,
Liveness * L,
DataFlowGraph * G,
bool comprehensive = false )
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( HexagonPostRAHandleQFP ,
"handle-qfp-spills-refills" ,
"Hexagon Post RA Handle QFloat" ,
false ,
false  )

Variable Documentation

◆ DisablePostRAHandleQFloat

cl::opt< bool > DisablePostRAHandleQFloat("disable-handle-qfp", cl::init(false), cl::desc("Disable handling of Qfloat spills/refills after register " "allocation.")) ( "disable-handle-qfp" ,
cl::init(false) ,
cl::desc("Disable handling of Qfloat spills/refills after register " "allocation.")  )

◆ false

handle qfp spills Hexagon PostRA Handle false

Definition at line 1751 of file HexagonPostRAHandleQFP.cpp.

◆ QFloat

handle qfp spills Hexagon PostRA Handle QFloat

Definition at line 1751 of file HexagonPostRAHandleQFP.cpp.

◆ QFloatModeValue

cl::opt<QFloatMode> QFloatModeValue
extern

◆ QFNonSatInstr

SmallVector<unsigned short, 5> QFNonSatInstr
Initial value:
{
Hexagon::V6_vconv_hf_qf16, Hexagon::V6_vconv_hf_qf32,
Hexagon::V6_vconv_sf_qf32,
Hexagon::V6_vconv_bf_qf32, Hexagon::V6_vconv_f8_qf16}

Definition at line 200 of file HexagonPostRAHandleQFP.cpp.

◆ QFPSatInstsMap

DenseMap<unsigned short, std::pair<bool, bool> > QFPSatInstsMap
Initial value:
{
{Hexagon::V6_vadd_qf16_mix, {false, true}},
{Hexagon::V6_vadd_qf16, {false, false}},
{Hexagon::V6_vadd_qf32_mix, {false, true}},
{Hexagon::V6_vadd_qf32, {false, false}},
{Hexagon::V6_vsub_qf16_mix, {false, true}},
{Hexagon::V6_vsub_hf_mix, {true, false}},
{Hexagon::V6_vsub_qf16, {false, false}},
{Hexagon::V6_vsub_qf32_mix, {false, true}},
{Hexagon::V6_vsub_sf_mix, {true, false}},
{Hexagon::V6_vsub_qf32, {false, false}},
{Hexagon::V6_vmpy_qf16_mix_hf, {false, true}},
{Hexagon::V6_vmpy_qf16, {false, false}},
{Hexagon::V6_vmpy_qf32_mix_hf, {false, true}},
{Hexagon::V6_vmpy_qf32_qf16, {false, false}},
{Hexagon::V6_vmpy_qf32, {false, false}},
{Hexagon::V6_vmpy_rt_qf16, {false, true}},
{Hexagon::V6_vabs_qf32_qf32, {false, true}},
{Hexagon::V6_vabs_qf16_qf16, {false, true}},
{Hexagon::V6_vneg_qf32_qf32, {false, true}},
{Hexagon::V6_vneg_qf16_qf16, {false, true}},
{Hexagon::V6_vilog2_qf32, {false, true}},
{Hexagon::V6_vilog2_qf16, {false, true}},
{Hexagon::V6_vconv_qf32_qf32, {false, true}},
{Hexagon::V6_vconv_qf16_qf16, {false, true}},
}

Definition at line 168 of file HexagonPostRAHandleQFP.cpp.

◆ refills

handle qfp spills refills

Definition at line 1750 of file HexagonPostRAHandleQFP.cpp.