reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
  542     return LI.getAction(Query).Action == LegalizeActions::Legal;
include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
  481     return actionIf(LegalizeAction::Legal, Predicate);
  485     return actionFor(LegalizeAction::Legal, Types);
  490     return actionFor(LegalizeAction::Legal, Types);
  496     return actionForTypeWithAnyImm(LegalizeAction::Legal, Types);
  503     return actionIf(LegalizeAction::Legal,
  510     return actionForCartesianProduct(LegalizeAction::Legal, Types);
  516     return actionForCartesianProduct(LegalizeAction::Legal, Types0, Types1);
  523     return actionForCartesianProduct(LegalizeAction::Legal, Types0, Types1,
  530     return actionIf(LegalizeAction::Legal, always);
 1144     return getAction(Query).Action == LegalizeAction::Legal;
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
   92   case Legal:
 3680     return QAction == Legal || QAction == Libcall || QAction == Custom;
lib/CodeGen/GlobalISel/LegalizerInfo.cpp
   47   case Legal:
  253   setScalarAction(TargetOpcode::G_ANYEXT, 1, {{1, Legal}});
  254   setScalarAction(TargetOpcode::G_ZEXT, 1, {{1, Legal}});
  255   setScalarAction(TargetOpcode::G_SEXT, 1, {{1, Legal}});
  256   setScalarAction(TargetOpcode::G_TRUNC, 0, {{1, Legal}});
  257   setScalarAction(TargetOpcode::G_TRUNC, 1, {{1, Legal}});
  259   setScalarAction(TargetOpcode::G_INTRINSIC, 0, {{1, Legal}});
  260   setScalarAction(TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS, 0, {{1, Legal}});
  343         ElementSizesSeen.push_back({ElementSize, Legal});
  464     if (Action.first != Legal) {
  472   return {Legal, 0, LLT{}};
  509   return getAction(MI, MRI).Action == Legal;
  517   return Action == Legal || Action == Custom;
  575   case Legal:
  666   if (ElementSizeAndAction.second != Legal)
lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
  247   setAction({G_BRCOND, S1}, Legal);
  329   setAction({G_FRAME_INDEX, PrivatePtr}, Legal);
  490   setAction({G_BLOCK_ADDR, CodePtr}, Legal);
lib/Target/X86/X86LegalizerInfo.cpp
  117     setAction({G_IMPLICIT_DEF, Ty}, Legal);
  120     setAction({G_PHI, Ty}, Legal);
  124       setAction({BinOp, Ty}, Legal);
  127     setAction({Op, s32}, Legal);
  128     setAction({Op, 1, s1}, Legal);
  133       setAction({MemOp, Ty}, Legal);
  136     setAction({MemOp, 1, p0}, Legal);
  140   setAction({G_FRAME_INDEX, p0}, Legal);
  141   setAction({G_GLOBAL_VALUE, p0}, Legal);
  143   setAction({G_GEP, p0}, Legal);
  144   setAction({G_GEP, 1, s32}, Legal);
  167   setAction({G_BRCOND, s1}, Legal);
  171     setAction({TargetOpcode::G_CONSTANT, Ty}, Legal);
  175     setAction({G_ZEXT, Ty}, Legal);
  176     setAction({G_SEXT, Ty}, Legal);
  177     setAction({G_ANYEXT, Ty}, Legal);
  179   setAction({G_ANYEXT, s128}, Legal);
  183   setAction({G_ICMP, s1}, Legal);
  186     setAction({G_ICMP, 1, Ty}, Legal);
  190     setAction({G_MERGE_VALUES, Ty}, Legal);
  191     setAction({G_UNMERGE_VALUES, 1, Ty}, Legal);
  194     setAction({G_MERGE_VALUES, 1, Ty}, Legal);
  195     setAction({G_UNMERGE_VALUES, Ty}, Legal);
  212   setAction({G_IMPLICIT_DEF, s64}, Legal);
  215   setAction({G_IMPLICIT_DEF, s128}, Legal);
  217   setAction({G_PHI, s64}, Legal);
  220     setAction({BinOp, s64}, Legal);
  223     setAction({MemOp, s64}, Legal);
  226   setAction({G_GEP, 1, s64}, Legal);
  234   setAction({TargetOpcode::G_CONSTANT, s64}, Legal);
  238     setAction({extOp, s64}, Legal);
  256   setAction({G_ICMP, 1, s64}, Legal);
  278   setAction({G_MERGE_VALUES, s128}, Legal);
  279   setAction({G_UNMERGE_VALUES, 1, s128}, Legal);
  280   setAction({G_MERGE_VALUES, 1, s128}, Legal);
  281   setAction({G_UNMERGE_VALUES, s128}, Legal);
  295       setAction({BinOp, Ty}, Legal);
  299       setAction({MemOp, Ty}, Legal);
  302   setAction({TargetOpcode::G_FCONSTANT, s32}, Legal);
  306     setAction({G_CONCAT_VECTORS, Ty}, Legal);
  307     setAction({G_UNMERGE_VALUES, 1, Ty}, Legal);
  309   setAction({G_MERGE_VALUES, 1, s64}, Legal);
  310   setAction({G_UNMERGE_VALUES, s64}, Legal);
  331       setAction({BinOp, Ty}, Legal);
  335       setAction({BinOp, Ty}, Legal);
  337   setAction({G_MUL, v8s16}, Legal);
  339   setAction({G_FPEXT, s64}, Legal);
  340   setAction({G_FPEXT, 1, s32}, Legal);
  342   setAction({G_FPTRUNC, s32}, Legal);
  343   setAction({G_FPTRUNC, 1, s64}, Legal);
  346   setAction({TargetOpcode::G_FCONSTANT, s64}, Legal);
  351     setAction({G_CONCAT_VECTORS, Ty}, Legal);
  352     setAction({G_UNMERGE_VALUES, 1, Ty}, Legal);
  355     setAction({G_CONCAT_VECTORS, 1, Ty}, Legal);
  356     setAction({G_UNMERGE_VALUES, Ty}, Legal);
  366   setAction({G_MUL, v4s32}, Legal);
  389       setAction({MemOp, Ty}, Legal);
  392     setAction({G_INSERT, Ty}, Legal);
  393     setAction({G_EXTRACT, 1, Ty}, Legal);
  396     setAction({G_INSERT, 1, Ty}, Legal);
  397     setAction({G_EXTRACT, Ty}, Legal);
  402     setAction({G_CONCAT_VECTORS, Ty}, Legal);
  403     setAction({G_UNMERGE_VALUES, 1, Ty}, Legal);
  407     setAction({G_CONCAT_VECTORS, 1, Ty}, Legal);
  408     setAction({G_UNMERGE_VALUES, Ty}, Legal);
  428       setAction({BinOp, Ty}, Legal);
  431     setAction({G_MUL, Ty}, Legal);
  435     setAction({G_CONCAT_VECTORS, Ty}, Legal);
  436     setAction({G_UNMERGE_VALUES, 1, Ty}, Legal);
  439     setAction({G_CONCAT_VECTORS, 1, Ty}, Legal);
  440     setAction({G_UNMERGE_VALUES, Ty}, Legal);
  465       setAction({BinOp, Ty}, Legal);
  467   setAction({G_MUL, v16s32}, Legal);
  471       setAction({MemOp, Ty}, Legal);
  474     setAction({G_INSERT, Ty}, Legal);
  475     setAction({G_EXTRACT, 1, Ty}, Legal);
  478     setAction({G_INSERT, 1, Ty}, Legal);
  479     setAction({G_EXTRACT, Ty}, Legal);
  487     setAction({G_MUL, Ty}, Legal);
  496   setAction({G_MUL, v8s64}, Legal);
  506     setAction({G_MUL, Ty}, Legal);
  518       setAction({BinOp, Ty}, Legal);
  520   setAction({G_MUL, v32s16}, Legal);
  530     setAction({G_MUL, Ty}, Legal);
unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
   23   case Legal: OS << "Legal"; break;
   53       L.setAction({Op, 0, LLT::scalar(Size)}, Legal);
   67               LegalizeActionStep(Legal, 0, LLT{}));
   69               LegalizeActionStep(Legal, 0, LLT{}));
   92   L.setAction({G_ADD, LLT::vector(8, 8)}, Legal);
   93   L.setAction({G_ADD, LLT::vector(16, 8)}, Legal);
   94   L.setAction({G_ADD, LLT::vector(4, 16)}, Legal);
   95   L.setAction({G_ADD, LLT::vector(8, 16)}, Legal);
   96   L.setAction({G_ADD, LLT::vector(2, 32)}, Legal);
   97   L.setAction({G_ADD, LLT::vector(4, 32)}, Legal);
  102   L.setAction({G_ADD, 0, LLT::scalar(32)}, Legal);
  109             LegalizeActionStep(Legal, 0, LLT{}));
  130   L.setAction({G_PTRTOINT, 0, s64}, Legal);
  131   L.setAction({G_PTRTOINT, 1, p0}, Legal);
  140             LegalizeActionStep(Legal, 0, LLT{}));
  174     L.setAction({G_UREM, 0, LLT::scalar(Size)}, Legal);
  183               LegalizeActionStep(Legal, 0, LLT{}));
  373     EXPECT_ACTION(Legal, 0, LLT(),
  398     EXPECT_ACTION(Legal, 0, LLT(),