reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1066 OS << "#if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)\n"; 1067 OS << "#error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, "; 1068 OS << "undef both for inline definitions\n"; 1069 OS << "#endif\n\n"; 1072 OS << "#ifdef GET_DAGISEL_BODY\n"; 1073 OS << "#define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)\n"; 1074 OS << "#define LOCAL_DAGISEL_STRINGIZE_(X) #X\n"; 1075 OS << "static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1," 1077 OS << " \"GET_DAGISEL_BODY is empty: it should be defined with the class " 1079 OS << "#undef LOCAL_DAGISEL_STRINGIZE_\n"; 1080 OS << "#undef LOCAL_DAGISEL_STRINGIZE\n"; 1081 OS << "#endif\n\n"; 1083 OS << "#if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)\n"; 1084 OS << "#define DAGISEL_INLINE 1\n"; 1085 OS << "#else\n"; 1086 OS << "#define DAGISEL_INLINE 0\n"; 1087 OS << "#endif\n\n"; 1089 OS << "#if !DAGISEL_INLINE\n"; 1090 OS << "#define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::\n"; 1091 OS << "#else\n"; 1092 OS << "#define DAGISEL_CLASS_COLONCOLON\n"; 1093 OS << "#endif\n\n"; 1095 BeginEmitFunction(OS, "void", "SelectCode(SDNode *N)", false/*AddOverride*/); 1098 OS << "{\n"; 1099 OS << " // Some target values are emitted as 2 bytes, TARGET_VAL handles\n"; 1100 OS << " // this.\n"; 1101 OS << " #define TARGET_VAL(X) X & 255, unsigned(X) >> 8\n"; 1102 OS << " static const unsigned char MatcherTable[] = {\n"; 1103 unsigned TotalSize = MatcherEmitter.EmitMatcherList(TheMatcher, 1, 0, OS); 1104 OS << " 0\n }; // Total Array size is " << (TotalSize+1) << " bytes\n\n"; 1106 MatcherEmitter.EmitHistogram(TheMatcher, OS); 1108 OS << " #undef TARGET_VAL\n"; 1109 OS << " SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));\n"; 1110 OS << "}\n"; 1111 EndEmitFunction(OS); 1114 MatcherEmitter.EmitPredicateFunctions(OS); 1117 MatcherEmitter.EmitPatternMatchTable(OS); 1120 OS << "\n"; 1121 OS << "#ifdef DAGISEL_INLINE\n"; 1122 OS << "#undef DAGISEL_INLINE\n"; 1123 OS << "#endif\n"; 1124 OS << "#ifdef DAGISEL_CLASS_COLONCOLON\n"; 1125 OS << "#undef DAGISEL_CLASS_COLONCOLON\n"; 1126 OS << "#endif\n"; 1127 OS << "#ifdef GET_DAGISEL_DECL\n"; 1128 OS << "#undef GET_DAGISEL_DECL\n"; 1129 OS << "#endif\n"; 1130 OS << "#ifdef GET_DAGISEL_BODY\n"; 1131 OS << "#undef GET_DAGISEL_BODY\n"; 1132 OS << "#endif\n";