github.com/llir/llvm@v0.3.6/ir/sumtype.go (about)

     1  package ir
     2  
     3  // === [ constant.Constant ] ===================================================
     4  
     5  // IsConstant ensures that only constants can be assigned to the
     6  // constant.Constant interface.
     7  func (*Global) IsConstant() {}
     8  
     9  // IsConstant ensures that only constants can be assigned to the
    10  // constant.Constant interface.
    11  func (*Func) IsConstant() {}
    12  
    13  // IsConstant ensures that only constants can be assigned to the
    14  // constant.Constant interface.
    15  func (*Alias) IsConstant() {}
    16  
    17  // IsConstant ensures that only constants can be assigned to the
    18  // constant.Constant interface.
    19  func (*IFunc) IsConstant() {}
    20  
    21  // === [ ir.FuncAttribute ] ====================================================
    22  
    23  // IsFuncAttribute ensures that only function attributes can be assigned to
    24  // the ir.FuncAttribute interface.
    25  func (AttrString) IsFuncAttribute() {}
    26  
    27  // IsFuncAttribute ensures that only function attributes can be assigned to
    28  // the ir.FuncAttribute interface.
    29  func (AttrPair) IsFuncAttribute() {}
    30  
    31  // IsFuncAttribute ensures that only function attributes can be assigned to the
    32  // ir.FuncAttribute interface.
    33  func (*AttrGroupDef) IsFuncAttribute() {}
    34  
    35  // IsFuncAttribute ensures that only function attributes can be assigned to the
    36  // ir.FuncAttribute interface.
    37  func (Align) IsFuncAttribute() {}
    38  
    39  // IsFuncAttribute ensures that only function attributes can be assigned to the
    40  // ir.FuncAttribute interface.
    41  func (AlignStack) IsFuncAttribute() {}
    42  
    43  // IsFuncAttribute ensures that only function attributes can be assigned to the
    44  // ir.FuncAttribute interface.
    45  func (AllocSize) IsFuncAttribute() {}
    46  
    47  // IsFuncAttribute ensures that only parameter attributes can be assigned to
    48  // the ir.ParamAttribute interface.
    49  func (Preallocated) IsFuncAttribute() {}
    50  
    51  // IsFuncAttribute ensures that only parameter attributes can be assigned to
    52  // the ir.ParamAttribute interface.
    53  func (VectorScaleRange) IsFuncAttribute() {}
    54  
    55  // === [ ir.Instruction ] ======================================================
    56  
    57  // Binary instructions.
    58  func (*InstFNeg) isInstruction() {}
    59  
    60  // Binary instructions.
    61  func (*InstAdd) isInstruction()  {}
    62  func (*InstFAdd) isInstruction() {}
    63  func (*InstSub) isInstruction()  {}
    64  func (*InstFSub) isInstruction() {}
    65  func (*InstMul) isInstruction()  {}
    66  func (*InstFMul) isInstruction() {}
    67  func (*InstUDiv) isInstruction() {}
    68  func (*InstSDiv) isInstruction() {}
    69  func (*InstFDiv) isInstruction() {}
    70  func (*InstURem) isInstruction() {}
    71  func (*InstSRem) isInstruction() {}
    72  func (*InstFRem) isInstruction() {}
    73  
    74  // Bitwise instructions.
    75  func (*InstShl) isInstruction()  {}
    76  func (*InstLShr) isInstruction() {}
    77  func (*InstAShr) isInstruction() {}
    78  func (*InstAnd) isInstruction()  {}
    79  func (*InstOr) isInstruction()   {}
    80  func (*InstXor) isInstruction()  {}
    81  
    82  // Vector instructions.
    83  func (*InstExtractElement) isInstruction() {}
    84  func (*InstInsertElement) isInstruction()  {}
    85  func (*InstShuffleVector) isInstruction()  {}
    86  
    87  // Aggregate instructions.
    88  func (*InstExtractValue) isInstruction() {}
    89  func (*InstInsertValue) isInstruction()  {}
    90  
    91  // Memory instructions.
    92  func (*InstAlloca) isInstruction()        {}
    93  func (*InstLoad) isInstruction()          {}
    94  func (*InstStore) isInstruction()         {}
    95  func (*InstFence) isInstruction()         {}
    96  func (*InstCmpXchg) isInstruction()       {}
    97  func (*InstAtomicRMW) isInstruction()     {}
    98  func (*InstGetElementPtr) isInstruction() {}
    99  
   100  // Conversion instructions.
   101  func (*InstTrunc) isInstruction()         {}
   102  func (*InstZExt) isInstruction()          {}
   103  func (*InstSExt) isInstruction()          {}
   104  func (*InstFPTrunc) isInstruction()       {}
   105  func (*InstFPExt) isInstruction()         {}
   106  func (*InstFPToUI) isInstruction()        {}
   107  func (*InstFPToSI) isInstruction()        {}
   108  func (*InstUIToFP) isInstruction()        {}
   109  func (*InstSIToFP) isInstruction()        {}
   110  func (*InstPtrToInt) isInstruction()      {}
   111  func (*InstIntToPtr) isInstruction()      {}
   112  func (*InstBitCast) isInstruction()       {}
   113  func (*InstAddrSpaceCast) isInstruction() {}
   114  
   115  // Other instructions.
   116  func (*InstICmp) isInstruction()       {}
   117  func (*InstFCmp) isInstruction()       {}
   118  func (*InstPhi) isInstruction()        {}
   119  func (*InstSelect) isInstruction()     {}
   120  func (*InstFreeze) isInstruction()     {}
   121  func (*InstCall) isInstruction()       {}
   122  func (*InstVAArg) isInstruction()      {}
   123  func (*InstLandingPad) isInstruction() {}
   124  func (*InstCatchPad) isInstruction()   {}
   125  func (*InstCleanupPad) isInstruction() {}
   126  
   127  // === [ ir.ParamAttribute ] ===================================================
   128  
   129  // IsParamAttribute ensures that only parameter attributes can be assigned to
   130  // the ir.ParamAttribute interface.
   131  func (AttrString) IsParamAttribute() {}
   132  
   133  // IsParamAttribute ensures that only parameter attributes can be assigned to
   134  // the ir.ParamAttribute interface.
   135  func (AttrPair) IsParamAttribute() {}
   136  
   137  // IsParamAttribute ensures that only parameter attributes can be assigned to
   138  // the ir.ParamAttribute interface.
   139  func (Align) IsParamAttribute() {}
   140  
   141  // IsParamAttribute ensures that only parameter attributes can be assigned to
   142  // the ir.ParamAttribute interface.
   143  func (AlignStack) IsParamAttribute() {}
   144  
   145  // IsParamAttribute ensures that only parameter attributes can be assigned to
   146  // the ir.ParamAttribute interface.
   147  func (ByRef) IsParamAttribute() {}
   148  
   149  // IsParamAttribute ensures that only parameter attributes can be assigned to
   150  // the ir.ParamAttribute interface.
   151  func (Byval) IsParamAttribute() {}
   152  
   153  // IsParamAttribute ensures that only parameter attributes can be assigned to
   154  // the ir.ParamAttribute interface.
   155  func (Dereferenceable) IsParamAttribute() {}
   156  
   157  // IsParamAttribute ensures that only parameter attributes can be assigned to
   158  // the ir.ParamAttribute interface.
   159  func (ElementType) IsParamAttribute() {}
   160  
   161  // IsParamAttribute ensures that only parameter attributes can be assigned to
   162  // the ir.ParamAttribute interface.
   163  func (InAlloca) IsParamAttribute() {}
   164  
   165  // IsParamAttribute ensures that only parameter attributes can be assigned to
   166  // the ir.ParamAttribute interface.
   167  func (Preallocated) IsParamAttribute() {}
   168  
   169  // IsParamAttribute ensures that only parameter attributes can be assigned to
   170  // the ir.ParamAttribute interface.
   171  func (SRet) IsParamAttribute() {}
   172  
   173  // === [ ir.ReturnAttribute ] ==================================================
   174  
   175  // IsReturnAttribute ensures that only return attributes can be assigned to
   176  // the ir.ReturnAttribute interface.
   177  func (AttrString) IsReturnAttribute() {}
   178  
   179  // IsReturnAttribute ensures that only return attributes can be assigned to
   180  // the ir.ReturnAttribute interface.
   181  func (AttrPair) IsReturnAttribute() {}
   182  
   183  // IsReturnAttribute ensures that only return attributes can be assigned to the
   184  // ir.ReturnAttribute interface.
   185  func (Align) IsReturnAttribute() {}
   186  
   187  // IsReturnAttribute ensures that only return attributes can be assigned to
   188  // the ir.ReturnAttribute interface.
   189  func (Dereferenceable) IsReturnAttribute() {}