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

References

utils/TableGen/Attributes.cpp
   75   OS << "#ifdef GET_ATTR_COMPAT_FUNC\n";
   76   OS << "#undef GET_ATTR_COMPAT_FUNC\n";
   78   OS << "struct EnumAttr {\n";
   79   OS << "  static bool isSet(const Function &Fn,\n";
   80   OS << "                    Attribute::AttrKind Kind) {\n";
   81   OS << "    return Fn.hasFnAttribute(Kind);\n";
   82   OS << "  }\n\n";
   83   OS << "  static void set(Function &Fn,\n";
   84   OS << "                  Attribute::AttrKind Kind, bool Val) {\n";
   85   OS << "    if (Val)\n";
   86   OS << "      Fn.addFnAttr(Kind);\n";
   87   OS << "    else\n";
   88   OS << "      Fn.removeFnAttr(Kind);\n";
   89   OS << "  }\n";
   90   OS << "};\n\n";
   92   OS << "struct StrBoolAttr {\n";
   93   OS << "  static bool isSet(const Function &Fn,\n";
   94   OS << "                    StringRef Kind) {\n";
   95   OS << "    auto A = Fn.getFnAttribute(Kind);\n";
   96   OS << "    return A.getValueAsString().equals(\"true\");\n";
   97   OS << "  }\n\n";
   98   OS << "  static void set(Function &Fn,\n";
   99   OS << "                  StringRef Kind, bool Val) {\n";
  100   OS << "    Fn.addFnAttr(Kind, Val ? \"true\" : \"false\");\n";
  101   OS << "  }\n";
  102   OS << "};\n\n";
  104   printEnumAttrClasses(OS ,Records.getAllDerivedDefinitions("EnumAttr"));
  105   printStrBoolAttrClasses(OS , Records.getAllDerivedDefinitions("StrBoolAttr"));
  107   OS << "static inline bool hasCompatibleFnAttrs(const Function &Caller,\n"
  109   OS << "  bool Ret = true;\n\n";
  116     OS << "  Ret &= " << FuncName << "(Caller, Callee);\n";
  119   OS << "\n";
  120   OS << "  return Ret;\n";
  121   OS << "}\n\n";
  125   OS << "static inline void mergeFnAttrs(Function &Caller,\n"
  130     OS << "  " << FuncName << "(Caller, Callee);\n";
  133   OS << "}\n\n";
  135   OS << "#endif\n";