gcc 语法树定义在 tree.def中
Line 41: DEFTREECODE (ERROR_MARK, "error_mark", tcc_exceptional, 0)
Line 47: DEFTREECODE (IDENTIFIER_NODE, "identifier_node", tcc_exceptional, 0)
Line 54: DEFTREECODE (TREE_LIST, "tree_list", tcc_exceptional, 0)
Line 57: DEFTREECODE (TREE_VEC, "tree_vec", tcc_exceptional, 0)
Line 75: DEFTREECODE (BLOCK, "block", tcc_exceptional, 0)
Line 122: DEFTREECODE (OFFSET_TYPE, "offset_type", tcc_type, 0)
Line 135: DEFTREECODE (ENUMERAL_TYPE, "enumeral_type", tcc_type, 0)
Line 139: DEFTREECODE (BOOLEAN_TYPE, "boolean_type", tcc_type, 0)
Line 145: DEFTREECODE (INTEGER_TYPE, "integer_type", tcc_type, 0)
Line 152: DEFTREECODE (BITINT_TYPE, "bitint_type", tcc_type, 0)
Line 156: DEFTREECODE (REAL_TYPE, "real_type", tcc_type, 0)
Line 165: DEFTREECODE (POINTER_TYPE, "pointer_type", tcc_type, 0)
Line 169: DEFTREECODE (REFERENCE_TYPE, "reference_type", tcc_type, 0)
Line 172: DEFTREECODE (NULLPTR_TYPE, "nullptr_type", tcc_type, 0)
Line 177: DEFTREECODE (FIXED_POINT_TYPE, "fixed_point_type", tcc_type, 0)
Line 186: DEFTREECODE (COMPLEX_TYPE, "complex_type", tcc_type, 0)
Line 191: DEFTREECODE (VECTOR_TYPE, "vector_type", tcc_type, 0)
Line 207: DEFTREECODE (ARRAY_TYPE, "array_type", tcc_type, 0)
Line 217: DEFTREECODE (RECORD_TYPE, "record_type", tcc_type, 0)
Line 223: DEFTREECODE (UNION_TYPE, "union_type", tcc_type, 0) /* C union type */
Line 229: DEFTREECODE (QUAL_UNION_TYPE, "qual_union_type", tcc_type, 0)
Line 236: DEFTREECODE (VOID_TYPE, "void_type", tcc_type, 0)
Line 246: DEFTREECODE (FUNCTION_TYPE, "function_type", tcc_type, 0)
Line 253: DEFTREECODE (METHOD_TYPE, "method_type", tcc_type, 0)
Line 259: DEFTREECODE (LANG_TYPE, "lang_type", tcc_type, 0)
Line 265: DEFTREECODE (OPAQUE_TYPE, "opaque_type", tcc_type, 0)
Line 271: DEFTREECODE (VOID_CST, "void_cst", tcc_constant, 0)
Line 291: DEFTREECODE (INTEGER_CST, "integer_cst", tcc_constant, 0)
Line 294: DEFTREECODE (POLY_INT_CST, "poly_int_cst", tcc_constant, 0)
Line 297: DEFTREECODE (REAL_CST, "real_cst", tcc_constant, 0)
Line 300: DEFTREECODE (FIXED_CST, "fixed_cst", tcc_constant, 0)
Line 304: DEFTREECODE (COMPLEX_CST, "complex_cst", tcc_constant, 0)
Line 307: DEFTREECODE (VECTOR_CST, "vector_cst", tcc_constant, 0)
Line 310: DEFTREECODE (STRING_CST, "string_cst", tcc_constant, 0)
Line 320: DEFTREECODE (RAW_DATA_CST, "raw_data_cst", tcc_constant, 0)
Line 380: DEFTREECODE (FUNCTION_DECL, "function_decl", tcc_declaration, 0)
Line 381: DEFTREECODE (LABEL_DECL, "label_decl", tcc_declaration, 0)
Line 386: DEFTREECODE (FIELD_DECL, "field_decl", tcc_declaration, 0)
Line 387: DEFTREECODE (VAR_DECL, "var_decl", tcc_declaration, 0)
Line 388: DEFTREECODE (CONST_DECL, "const_decl", tcc_declaration, 0)
Line 389: DEFTREECODE (PARM_DECL, "parm_decl", tcc_declaration, 0)
Line 390: DEFTREECODE (TYPE_DECL, "type_decl", tcc_declaration, 0)
Line 391: DEFTREECODE (RESULT_DECL, "result_decl", tcc_declaration, 0)
Line 395: DEFTREECODE (DEBUG_EXPR_DECL, "debug_expr_decl", tcc_declaration, 0)
Line 398: DEFTREECODE (DEBUG_BEGIN_STMT, "debug_begin_stmt", tcc_statement, 0)
Line 402: DEFTREECODE (NAMESPACE_DECL, "namespace_decl", tcc_declaration, 0)
Line 413: DEFTREECODE (IMPORTED_DECL, "imported_decl", tcc_declaration, 0)
Line 423: DEFTREECODE (NAMELIST_DECL, "namelist_decl", tcc_declaration, 0)
Line 427: DEFTREECODE (TRANSLATION_UNIT_DECL, "translation_unit_decl",\
Line 440: DEFTREECODE (COMPONENT_REF, "component_ref", tcc_reference, 3)
Line 450: DEFTREECODE (BIT_FIELD_REF, "bit_field_ref", tcc_reference, 3)
Line 457: DEFTREECODE (ARRAY_REF, "array_ref", tcc_reference, 4)
Line 462: DEFTREECODE (ARRAY_RANGE_REF, "array_range_ref", tcc_reference, 4)
Line 466: DEFTREECODE (REALPART_EXPR, "realpart_expr", tcc_reference, 1)
Line 467: DEFTREECODE (IMAGPART_EXPR, "imagpart_expr", tcc_reference, 1)
Line 479: DEFTREECODE (VIEW_CONVERT_EXPR, "view_convert_expr", tcc_reference, 1)
Line 482: DEFTREECODE (INDIRECT_REF, "indirect_ref", tcc_reference, 1)
Line 495: DEFTREECODE (OBJ_TYPE_REF, "obj_type_ref", tcc_expression, 3)
Line 522: DEFTREECODE (CONSTRUCTOR, "constructor", tcc_exceptional, 0)
Line 525: of DEFTREECODE saying how many operands there are.
Line 532: DEFTREECODE (COMPOUND_EXPR, "compound_expr", tcc_expression, 2)
Line 535: DEFTREECODE (MODIFY_EXPR, "modify_expr", tcc_expression, 2)
Line 540: DEFTREECODE (INIT_EXPR, "init_expr", tcc_expression, 2)
Line 548: DEFTREECODE (TARGET_EXPR, "target_expr", tcc_expression, 4)
Line 562: DEFTREECODE (COND_EXPR, "cond_expr", tcc_expression, 3)
Line 565: DEFTREECODE (VEC_DUPLICATE_EXPR, "vec_duplicate_expr", tcc_unary, 1)
Line 575: DEFTREECODE (VEC_SERIES_EXPR, "vec_series_expr", tcc_binary, 2)
Line 587: DEFTREECODE (VEC_COND_EXPR, "vec_cond_expr", tcc_expression, 3)
Line 606: DEFTREECODE (VEC_PERM_EXPR, "vec_perm_expr", tcc_expression, 3)
Line 629: DEFTREECODE (BIND_EXPR, "bind_expr", tcc_expression, 3)
Line 637: DEFTREECODE (CALL_EXPR, "call_expr", tcc_vl_exp, 3)
Line 644: DEFTREECODE (WITH_CLEANUP_EXPR, "with_cleanup_expr", tcc_expression, 1)
Line 661: DEFTREECODE (CLEANUP_POINT_EXPR, "cleanup_point_expr", tcc_expression, 1)
Line 713: DEFTREECODE (PLACEHOLDER_EXPR, "placeholder_expr", tcc_exceptional, 0)
Line 716: DEFTREECODE (PLUS_EXPR, "plus_expr", tcc_binary, 2)
Line 717: DEFTREECODE (MINUS_EXPR, "minus_expr", tcc_binary, 2)
Line 718: DEFTREECODE (MULT_EXPR, "mult_expr", tcc_binary, 2)
Line 722: DEFTREECODE (POINTER_PLUS_EXPR, "pointer_plus_expr", tcc_binary, 2)
Line 730: DEFTREECODE (POINTER_DIFF_EXPR, "pointer_diff_expr", tcc_binary, 2)
Line 736: DEFTREECODE (MULT_HIGHPART_EXPR, "mult_highpart_expr", tcc_binary, 2)
Line 739: DEFTREECODE (TRUNC_DIV_EXPR, "trunc_div_expr", tcc_binary, 2)
Line 742: DEFTREECODE (CEIL_DIV_EXPR, "ceil_div_expr", tcc_binary, 2)
Line 745: DEFTREECODE (FLOOR_DIV_EXPR, "floor_div_expr", tcc_binary, 2)
Line 748: DEFTREECODE (ROUND_DIV_EXPR, "round_div_expr", tcc_binary, 2)
Line 753: DEFTREECODE (TRUNC_MOD_EXPR, "trunc_mod_expr", tcc_binary, 2)
Line 756: DEFTREECODE (CEIL_MOD_EXPR, "ceil_mod_expr", tcc_binary, 2)
Line 759: DEFTREECODE (FLOOR_MOD_EXPR, "floor_mod_expr", tcc_binary, 2)
Line 762: DEFTREECODE (ROUND_MOD_EXPR, "round_mod_expr", tcc_binary, 2)
Line 765: DEFTREECODE (RDIV_EXPR, "rdiv_expr", tcc_binary, 2)
Line 769: DEFTREECODE (EXACT_DIV_EXPR, "exact_div_expr", tcc_binary, 2)
Line 772: DEFTREECODE (FIX_TRUNC_EXPR, "fix_trunc_expr", tcc_unary, 1)
Line 775: DEFTREECODE (FLOAT_EXPR, "float_expr", tcc_unary, 1)
Line 778: DEFTREECODE (NEGATE_EXPR, "negate_expr", tcc_unary, 1)
Line 783: DEFTREECODE (MIN_EXPR, "min_expr", tcc_binary, 2)
Line 784: DEFTREECODE (MAX_EXPR, "max_expr", tcc_binary, 2)
Line 790: DEFTREECODE (ABS_EXPR, "abs_expr", tcc_unary, 1)
Line 795: DEFTREECODE (ABSU_EXPR, "absu_expr", tcc_unary, 1)
Line 810: DEFTREECODE (LSHIFT_EXPR, "lshift_expr", tcc_binary, 2)
Line 811: DEFTREECODE (RSHIFT_EXPR, "rshift_expr", tcc_binary, 2)
Line 812: DEFTREECODE (LROTATE_EXPR, "lrotate_expr", tcc_binary, 2)
Line 813: DEFTREECODE (RROTATE_EXPR, "rrotate_expr", tcc_binary, 2)
Line 816: DEFTREECODE (BIT_IOR_EXPR, "bit_ior_expr", tcc_binary, 2)
Line 817: DEFTREECODE (BIT_XOR_EXPR, "bit_xor_expr", tcc_binary, 2)
Line 818: DEFTREECODE (BIT_AND_EXPR, "bit_and_expr", tcc_binary, 2)
Line 819: DEFTREECODE (BIT_NOT_EXPR, "bit_not_expr", tcc_unary, 1)
Line 830: DEFTREECODE (TRUTH_ANDIF_EXPR, "truth_andif_expr", tcc_expression, 2)
Line 831: DEFTREECODE (TRUTH_ORIF_EXPR, "truth_orif_expr", tcc_expression, 2)
Line 832: DEFTREECODE (TRUTH_AND_EXPR, "truth_and_expr", tcc_expression, 2)
Line 833: DEFTREECODE (TRUTH_OR_EXPR, "truth_or_expr", tcc_expression, 2)
Line 834: DEFTREECODE (TRUTH_XOR_EXPR, "truth_xor_expr", tcc_expression, 2)
Line 835: DEFTREECODE (TRUTH_NOT_EXPR, "truth_not_expr", tcc_expression, 1)
Line 849: DEFTREECODE (LT_EXPR, "lt_expr", tcc_comparison, 2)
Line 850: DEFTREECODE (LE_EXPR, "le_expr", tcc_comparison, 2)
Line 851: DEFTREECODE (GT_EXPR, "gt_expr", tcc_comparison, 2)
Line 852: DEFTREECODE (GE_EXPR, "ge_expr", tcc_comparison, 2)
Line 853: DEFTREECODE (LTGT_EXPR, "ltgt_expr", tcc_comparison, 2)
Line 854: DEFTREECODE (EQ_EXPR, "eq_expr", tcc_comparison, 2)
Line 855: DEFTREECODE (NE_EXPR, "ne_expr", tcc_comparison, 2)
Line 858: DEFTREECODE (UNORDERED_EXPR, "unordered_expr", tcc_comparison, 2)
Line 859: DEFTREECODE (ORDERED_EXPR, "ordered_expr", tcc_comparison, 2)
Line 862: DEFTREECODE (UNLT_EXPR, "unlt_expr", tcc_comparison, 2)
Line 863: DEFTREECODE (UNLE_EXPR, "unle_expr", tcc_comparison, 2)
Line 864: DEFTREECODE (UNGT_EXPR, "ungt_expr", tcc_comparison, 2)
Line 865: DEFTREECODE (UNGE_EXPR, "unge_expr", tcc_comparison, 2)
Line 866: DEFTREECODE (UNEQ_EXPR, "uneq_expr", tcc_comparison, 2)
Line 868: DEFTREECODE (RANGE_EXPR, "range_expr", tcc_binary, 2)
Line 872: DEFTREECODE (PAREN_EXPR, "paren_expr", tcc_unary, 1)
Line 877: DEFTREECODE (CONVERT_EXPR, "convert_expr", tcc_unary, 1)
Line 881: DEFTREECODE (ADDR_SPACE_CONVERT_EXPR, "addr_space_convert_expr", tcc_unary, 1)
Line 886: DEFTREECODE (FIXED_CONVERT_EXPR, "fixed_convert_expr", tcc_unary, 1)
Line 889: DEFTREECODE (NOP_EXPR, "nop_expr", tcc_unary, 1)
Line 892: DEFTREECODE (NON_LVALUE_EXPR, "non_lvalue_expr", tcc_unary, 1)
Line 899: DEFTREECODE (COMPOUND_LITERAL_EXPR, "compound_literal_expr", tcc_expression, 1)
Line 904: DEFTREECODE (SAVE_EXPR, "save_expr", tcc_expression, 1)
Line 908: DEFTREECODE (ADDR_EXPR, "addr_expr", tcc_expression, 1)
Line 912: DEFTREECODE (FDESC_EXPR, "fdesc_expr", tcc_expression, 2)
Line 927: DEFTREECODE (BIT_INSERT_EXPR, "bit_insert_expr", tcc_expression, 3)
Line 931: DEFTREECODE (COMPLEX_EXPR, "complex_expr", tcc_binary, 2)
Line 934: DEFTREECODE (CONJ_EXPR, "conj_expr", tcc_unary, 1)
Line 939: DEFTREECODE (PREDECREMENT_EXPR, "predecrement_expr", tcc_expression, 2)
Line 940: DEFTREECODE (PREINCREMENT_EXPR, "preincrement_expr", tcc_expression, 2)
Line 941: DEFTREECODE (POSTDECREMENT_EXPR, "postdecrement_expr", tcc_expression, 2)
Line 942: DEFTREECODE (POSTINCREMENT_EXPR, "postincrement_expr", tcc_expression, 2)
Line 945: DEFTREECODE (VA_ARG_EXPR, "va_arg_expr", tcc_expression, 1)
Line 952: DEFTREECODE (TRY_CATCH_EXPR, "try_catch_expr", tcc_statement, 2)
Line 957: DEFTREECODE (TRY_FINALLY_EXPR, "try_finally_expr", tcc_statement, 2)
Line 964: DEFTREECODE (EH_ELSE_EXPR, "eh_else_expr", tcc_statement, 2)
Line 970: DEFTREECODE (DECL_EXPR, "decl_expr", tcc_statement, 1)
Line 975: DEFTREECODE (LABEL_EXPR, "label_expr", tcc_statement, 1)
Line 979: DEFTREECODE (GOTO_EXPR, "goto_expr", tcc_statement, 1)
Line 986: DEFTREECODE (RETURN_EXPR, "return_expr", tcc_statement, 1)
Line 990: DEFTREECODE (EXIT_EXPR, "exit_expr", tcc_statement, 1)
Line 995: DEFTREECODE (LOOP_EXPR, "loop_expr", tcc_statement, 1)
Line 1007: DEFTREECODE (SWITCH_EXPR, "switch_expr", tcc_statement, 2)
Line 1019: DEFTREECODE (CASE_LABEL_EXPR, "case_label_expr", tcc_statement, 4)
Line 1026: DEFTREECODE (ASM_EXPR, "asm_expr", tcc_statement, 5)
Line 1031: DEFTREECODE (SSA_NAME, "ssa_name", tcc_exceptional, 0)
Line 1035: DEFTREECODE (CATCH_EXPR, "catch_expr", tcc_statement, 2)
Line 1040: DEFTREECODE (EH_FILTER_EXPR, "eh_filter_expr", tcc_statement, 2)
Line 1044: DEFTREECODE (SCEV_KNOWN, "scev_known", tcc_expression, 0)
Line 1048: DEFTREECODE (SCEV_NOT_KNOWN, "scev_not_known", tcc_expression, 0)
Line 1052: DEFTREECODE (POLYNOMIAL_CHREC, "polynomial_chrec", tcc_expression, 2)
Line 1056: DEFTREECODE (STATEMENT_LIST, "statement_list", tcc_exceptional, 0)
Line 1078: DEFTREECODE (ASSERT_EXPR, "assert_expr", tcc_expression, 2)
Line 1082: DEFTREECODE (TREE_BINFO, "tree_binfo", tcc_exceptional, 0)
Line 1089: DEFTREECODE (WITH_SIZE_EXPR, "with_size_expr", tcc_expression, 2)
Line 1100: DEFTREECODE (REALIGN_LOAD_EXPR, "realign_load", tcc_expression, 3)
Line 1116: DEFTREECODE (TARGET_MEM_REF, "target_mem_ref", tcc_reference, 5)
Line 1126: DEFTREECODE (MEM_REF, "mem_ref", tcc_reference, 2)
Line 1135: DEFTREECODE (OACC_PARALLEL, "oacc_parallel", tcc_statement, 2)
Line 1141: DEFTREECODE (OACC_KERNELS, "oacc_kernels", tcc_statement, 2)
Line 1147: DEFTREECODE (OACC_SERIAL, "oacc_serial", tcc_statement, 2)
Line 1153: DEFTREECODE (OACC_DATA, "oacc_data", tcc_statement, 2)
Line 1159: DEFTREECODE (OACC_HOST_DATA, "oacc_host_data", tcc_statement, 2)
Line 1165: DEFTREECODE (OMP_PARALLEL, "omp_parallel", tcc_statement, 2)
Line 1171: DEFTREECODE (OMP_TASK, "omp_task", tcc_statement, 2)
Line 1233: DEFTREECODE (OMP_FOR, "omp_for", tcc_statement, 7)
Line 1237: DEFTREECODE (OMP_SIMD, "omp_simd", tcc_statement, 7)
Line 1241: DEFTREECODE (OMP_DISTRIBUTE, "omp_distribute", tcc_statement, 7)
Line 1245: DEFTREECODE (OMP_TASKLOOP, "omp_taskloop", tcc_statement, 7)
Line 1249: DEFTREECODE (OMP_LOOP, "omp_loop", tcc_statement, 7)
Line 1253: DEFTREECODE (OMP_TILE, "omp_tile", tcc_statement, 7)
Line 1257: DEFTREECODE (OMP_UNROLL, "omp_unroll", tcc_statement, 7)
Line 1261: DEFTREECODE (OACC_LOOP, "oacc_loop", tcc_statement, 7)
Line 1266: DEFTREECODE (OMP_TEAMS, "omp_teams", tcc_statement, 2)
Line 1271: DEFTREECODE (OMP_TARGET_DATA, "omp_target_data", tcc_statement, 2)
Line 1276: DEFTREECODE (OMP_TARGET, "omp_target", tcc_statement, 2)
Line 1281: DEFTREECODE (OMP_SECTIONS, "omp_sections", tcc_statement, 2)
Line 1286: DEFTREECODE (OMP_ORDERED, "omp_ordered", tcc_statement, 2)
Line 1292: DEFTREECODE (OMP_CRITICAL, "omp_critical", tcc_statement, 3)
Line 1297: DEFTREECODE (OMP_SINGLE, "omp_single", tcc_statement, 2)
Line 1302: DEFTREECODE (OMP_SCOPE, "omp_scope", tcc_statement, 2)
Line 1307: DEFTREECODE (OMP_TASKGROUP, "omp_taskgroup", tcc_statement, 2)
Line 1312: DEFTREECODE (OMP_MASKED, "omp_masked", tcc_statement, 2)
Line 1317: DEFTREECODE (OMP_SCAN, "omp_scan", tcc_statement, 2)
Line 1322: DEFTREECODE (OMP_DISPATCH, "omp_dispatch", tcc_statement, 2)
Line 1326: DEFTREECODE (OMP_INTEROP, "omp_inteorp", tcc_statement, 1)
Line 1330: DEFTREECODE (OMP_SECTION, "omp_section", tcc_statement, 1)
Line 1339: DEFTREECODE (OMP_STRUCTURED_BLOCK, "omp_structured_block", tcc_statement, 1)
Line 1343: DEFTREECODE (OMP_MASTER, "omp_master", tcc_statement, 1)
Line 1348: DEFTREECODE (OACC_CACHE, "oacc_cache", tcc_statement, 1)
Line 1352: DEFTREECODE (OACC_DECLARE, "oacc_declare", tcc_statement, 1)
Line 1356: DEFTREECODE (OACC_ENTER_DATA, "oacc_enter_data", tcc_statement, 1)
Line 1360: DEFTREECODE (OACC_EXIT_DATA, "oacc_exit_data", tcc_statement, 1)
Line 1364: DEFTREECODE (OACC_UPDATE, "oacc_update", tcc_statement, 1)
Line 1368: DEFTREECODE (OMP_TARGET_UPDATE, "omp_target_update", tcc_statement, 1)
Line 1372: DEFTREECODE (OMP_TARGET_ENTER_DATA, "omp_target_enter_data", tcc_statement, 1)
Line 1376: DEFTREECODE (OMP_TARGET_EXIT_DATA, "omp_target_exit_data", tcc_statement, 1)
Line 1382: DEFTREECODE (OMP_METADIRECTIVE, "omp_metadirective", tcc_statement, 1)
Line 1393: DEFTREECODE (OMP_ATOMIC, "omp_atomic", tcc_statement, 2)
Line 1398: DEFTREECODE (OMP_ATOMIC_READ, "omp_atomic_read", tcc_statement, 1)
Line 1408: DEFTREECODE (OMP_ATOMIC_CAPTURE_OLD, "omp_atomic_capture_old", tcc_statement, 2)
Line 1409: DEFTREECODE (OMP_ATOMIC_CAPTURE_NEW, "omp_atomic_capture_new", tcc_statement, 2)
Line 1412: DEFTREECODE (OMP_CLAUSE, "omp_clause", tcc_exceptional, 0)
Line 1415: DEFTREECODE (OMP_ARRAY_SECTION, "omp_array_section", tcc_expression, 3)
Line 1430: DEFTREECODE (OMP_NEXT_VARIANT, "omp_next_variant", tcc_expression, 2)
Line 1442: DEFTREECODE (OMP_TARGET_DEVICE_MATCHES, "omp_target_device_matches",
Line 1447: DEFTREECODE (TRANSACTION_EXPR, "transaction_expr", tcc_expression, 1)
Line 1458: DEFTREECODE (DOT_PROD_EXPR, "dot_prod_expr", tcc_expression, 3)
Line 1467: DEFTREECODE (WIDEN_SUM_EXPR, "widen_sum_expr", tcc_binary, 2)
Line 1483: DEFTREECODE (SAD_EXPR, "sad_expr", tcc_expression, 3)
Line 1492: DEFTREECODE (WIDEN_MULT_EXPR, "widen_mult_expr", tcc_binary, 2)
Line 1501: DEFTREECODE (WIDEN_MULT_PLUS_EXPR, "widen_mult_plus_expr", tcc_expression, 3)
Line 1504: DEFTREECODE (WIDEN_MULT_MINUS_EXPR, "widen_mult_minus_expr", tcc_expression, 3)
Line 1517: DEFTREECODE (WIDEN_LSHIFT_EXPR, "widen_lshift_expr", tcc_binary, 2)
Line 1524: DEFTREECODE (VEC_WIDEN_MULT_HI_EXPR, "widen_mult_hi_expr", tcc_binary, 2)
Line 1525: DEFTREECODE (VEC_WIDEN_MULT_LO_EXPR, "widen_mult_lo_expr", tcc_binary, 2)
Line 1528: DEFTREECODE (VEC_WIDEN_MULT_EVEN_EXPR, "widen_mult_even_expr", tcc_binary, 2)
Line 1529: DEFTREECODE (VEC_WIDEN_MULT_ODD_EXPR, "widen_mult_odd_expr", tcc_binary, 2)
Line 1535: DEFTREECODE (VEC_UNPACK_HI_EXPR, "vec_unpack_hi_expr", tcc_unary, 1)
Line 1536: DEFTREECODE (VEC_UNPACK_LO_EXPR, "vec_unpack_lo_expr", tcc_unary, 1)
Line 1542: DEFTREECODE (VEC_UNPACK_FLOAT_HI_EXPR, "vec_unpack_float_hi_expr", tcc_unary, 1)
Line 1543: DEFTREECODE (VEC_UNPACK_FLOAT_LO_EXPR, "vec_unpack_float_lo_expr", tcc_unary, 1)
Line 1549: DEFTREECODE (VEC_UNPACK_FIX_TRUNC_HI_EXPR, "vec_unpack_fix_trunc_hi_expr",
Line 1551: DEFTREECODE (VEC_UNPACK_FIX_TRUNC_LO_EXPR, "vec_unpack_fix_trunc_lo_expr",
Line 1558: DEFTREECODE (VEC_PACK_TRUNC_EXPR, "vec_pack_trunc_expr", tcc_binary, 2)
Line 1559: DEFTREECODE (VEC_PACK_SAT_EXPR, "vec_pack_sat_expr", tcc_binary, 2)
Line 1565: DEFTREECODE (VEC_PACK_FIX_TRUNC_EXPR, "vec_pack_fix_trunc_expr", tcc_binary, 2)
Line 1571: DEFTREECODE (VEC_PACK_FLOAT_EXPR, "vec_pack_float_expr", tcc_binary, 2)
Line 1580: DEFTREECODE (VEC_WIDEN_LSHIFT_HI_EXPR, "widen_lshift_hi_expr", tcc_binary, 2)
Line 1581: DEFTREECODE (VEC_WIDEN_LSHIFT_LO_EXPR, "widen_lshift_lo_expr", tcc_binary, 2)
Line 1588: DEFTREECODE (PREDICT_EXPR, "predict_expr", tcc_expression, 1)
Line 1591: DEFTREECODE (OPTIMIZATION_NODE, "optimization_node", tcc_exceptional, 0)
Line 1594: DEFTREECODE (TARGET_OPTION_NODE, "target_option_node", tcc_exceptional, 0)
Line 1600: DEFTREECODE (ANNOTATE_EXPR, "annotate_expr", tcc_expression, 3)
语法树类型:
/* Tree code classes. Each tree_code has an associated code class
represented by a TREE_CODE_CLASS. */
enum tree_code_class {
tcc_exceptional, /* An exceptional code (fits no category). */
tcc_constant, /* A constant. */
/* Order of tcc_type and tcc_declaration is important. */
tcc_type, /* A type object code. */
tcc_declaration, /* A declaration (also serving as variable refs). */
tcc_reference, /* A reference to storage. */
tcc_comparison, /* A comparison expression. */
tcc_unary, /* A unary arithmetic expression. */
tcc_binary, /* A binary arithmetic expression. */
tcc_statement, /* A statement expression, which have side effects
but usually no interesting value. */
tcc_vl_exp, /* A function call or other expression with a
variable-length operand vector. */
tcc_expression /* Any other expression. */
};
/* Define the overall contents of a tree node.
It may be any of the structures declared above
for various types of node. */
union tree_node {
struct tree_base GTY ((tag ("TS_BASE"))) base;
struct tree_typed GTY ((tag ("TS_TYPED"))) typed;
struct tree_common GTY ((tag ("TS_COMMON"))) common;
struct tree_int_cst GTY ((tag ("TS_INT_CST"))) int_cst;
struct tree_poly_int_cst GTY ((tag ("TS_POLY_INT_CST"))) poly_int_cst;
struct tree_real_cst GTY ((tag ("TS_REAL_CST"))) real_cst;
struct tree_fixed_cst GTY ((tag ("TS_FIXED_CST"))) fixed_cst;
struct tree_vector GTY ((tag ("TS_VECTOR"))) vector;
struct tree_string GTY ((tag ("TS_STRING"))) string;
struct tree_raw_data GTY ((tag ("TS_RAW_DATA_CST"))) raw_data_cst;
struct tree_complex GTY ((tag ("TS_COMPLEX"))) complex;
struct tree_identifier GTY ((tag ("TS_IDENTIFIER"))) identifier;
struct tree_decl_minimal GTY((tag ("TS_DECL_MINIMAL"))) decl_minimal;
struct tree_decl_common GTY ((tag ("TS_DECL_COMMON"))) decl_common;
struct tree_decl_with_rtl GTY ((tag ("TS_DECL_WRTL"))) decl_with_rtl;
struct tree_decl_non_common GTY ((tag ("TS_DECL_NON_COMMON")))
decl_non_common;
struct tree_parm_decl GTY ((tag ("TS_PARM_DECL"))) parm_decl;
struct tree_decl_with_vis GTY ((tag ("TS_DECL_WITH_VIS"))) decl_with_vis;
struct tree_var_decl GTY ((tag ("TS_VAR_DECL"))) var_decl;
struct tree_field_decl GTY ((tag ("TS_FIELD_DECL"))) field_decl;
struct tree_label_decl GTY ((tag ("TS_LABEL_DECL"))) label_decl;
struct tree_result_decl GTY ((tag ("TS_RESULT_DECL"))) result_decl;
struct tree_const_decl GTY ((tag ("TS_CONST_DECL"))) const_decl;
struct tree_type_decl GTY ((tag ("TS_TYPE_DECL"))) type_decl;
struct tree_function_decl GTY ((tag ("TS_FUNCTION_DECL"))) function_decl;
struct tree_translation_unit_decl GTY ((tag ("TS_TRANSLATION_UNIT_DECL")))
translation_unit_decl;
struct tree_type_common GTY ((tag ("TS_TYPE_COMMON"))) type_common;
struct tree_type_with_lang_specific GTY ((tag ("TS_TYPE_WITH_LANG_SPECIFIC")))
type_with_lang_specific;
struct tree_type_non_common GTY ((tag ("TS_TYPE_NON_COMMON")))
type_non_common;
struct tree_list GTY ((tag ("TS_LIST"))) list;
struct tree_vec GTY ((tag ("TS_VEC"))) vec;
struct tree_exp GTY ((tag ("TS_EXP"))) exp;
struct tree_ssa_name GTY ((tag ("TS_SSA_NAME"))) ssa_name;
struct tree_block GTY ((tag ("TS_BLOCK"))) block;
struct tree_binfo GTY ((tag ("TS_BINFO"))) binfo;
struct tree_statement_list GTY ((tag ("TS_STATEMENT_LIST"))) stmt_list;
struct tree_constructor GTY ((tag ("TS_CONSTRUCTOR"))) constructor;
struct tree_omp_clause GTY ((tag ("TS_OMP_CLAUSE"))) omp_clause;
struct tree_optimization_option GTY ((tag ("TS_OPTIMIZATION"))) optimization;
struct tree_target_option GTY ((tag ("TS_TARGET_OPTION"))) target_option;
}
/*---------------------------------------------------------------------------
Main data structures
---------------------------------------------------------------------------*/
/* A tree node can represent a data type, a variable, an expression
or a statement. Each node has a TREE_CODE which says what kind of
thing it represents. Some common codes are:
INTEGER_TYPE -- represents a type of integers.
ARRAY_TYPE -- represents a type of pointer.
VAR_DECL -- represents a declared variable.
INTEGER_CST -- represents a constant integer value.
PLUS_EXPR -- represents a sum (an expression).
As for the contents of a tree node: there are some fields
that all nodes share. Each TREE_CODE has various special-purpose
fields as well. The fields of a node are never accessed directly,
always through accessor macros. */
/* Every kind of tree node starts with this structure,
so all nodes have these fields.
See the accessor macros, defined below, for documentation of the
fields, and the table below which connects the fields and the
accessor macros. */
struct tree_base {
ENUM_BITFIELD(tree_code) code : 16;
unsigned side_effects_flag : 1;
unsigned constant_flag : 1;
unsigned addressable_flag : 1;
unsigned volatile_flag : 1;
unsigned readonly_flag : 1;
unsigned asm_written_flag: 1;
unsigned nowarning_flag : 1;
unsigned visited : 1;
unsigned used_flag : 1;
unsigned nothrow_flag : 1;
unsigned static_flag : 1;
unsigned public_flag : 1;
unsigned private_flag : 1;
unsigned protected_flag : 1;
unsigned deprecated_flag : 1;
unsigned default_def_flag : 1;
union {
/* The bits in the following structure should only be used with
accessor macros that constrain inputs with tree checking. */
struct {
unsigned lang_flag_0 : 1;
unsigned lang_flag_1 : 1;
unsigned lang_flag_2 : 1;
unsigned lang_flag_3 : 1;
unsigned lang_flag_4 : 1;
unsigned lang_flag_5 : 1;
unsigned lang_flag_6 : 1;
unsigned saturating_flag : 1;
unsigned unsigned_flag : 1;
unsigned packed_flag : 1;
unsigned user_align : 1;
unsigned nameless_flag : 1;
unsigned atomic_flag : 1;
unsigned unavailable_flag : 1;
unsigned spare0 : 2;
unsigned spare1 : 8;
/* For _TYPE nodes, this is TYPE_ADDR_SPACE; the reason it is
present in tree_base instead of tree_type is to save space. The size
of the field must be large enough to hold addr_space_t values.
For CONSTRUCTOR nodes this holds the clobber_kind enum.
The C++ front-end uses this in IDENTIFIER_NODE and NAMESPACE_DECL. */
unsigned address_space : 8;
} bits;
/* The following fields are present in tree_base to save space. The
nodes using them do not require any of the flags above and so can
make better use of the 4-byte sized word. */
/* The number of HOST_WIDE_INTs in an INTEGER_CST. */
struct {
/* The number of HOST_WIDE_INTs if the INTEGER_CST is accessed in
its native precision. */
unsigned short unextended;
/* The number of HOST_WIDE_INTs if the INTEGER_CST is extended to
wider precisions based on its TYPE_SIGN. */
unsigned short extended;
} int_length;
/* VEC length. This field is only used with TREE_VEC. */
int length;
/* This field is only used with VECTOR_CST. */
struct {
/* The value of VECTOR_CST_LOG2_NPATTERNS. */
unsigned int log2_npatterns : 8;
/* The value of VECTOR_CST_NELTS_PER_PATTERN. */
unsigned int nelts_per_pattern : 8;
/* For future expansion. */
unsigned int unused : 16;
} vector_cst;
/* SSA version number. This field is only used with SSA_NAME. */
unsigned int version;
/* CHREC_VARIABLE. This field is only used with POLYNOMIAL_CHREC. */
unsigned int chrec_var;
/* Internal function code. */
enum internal_fn ifn;
/* OMP_ATOMIC* memory order. */
enum omp_memory_order omp_atomic_memory_order;
/* The following two fields are used for MEM_REF and TARGET_MEM_REF
expression trees and specify known data non-dependences. For
two memory references in a function they are known to not
alias if dependence_info.clique are equal and dependence_info.base
are distinct. Clique number zero means there is no information,
clique number one is populated from function global information
and thus needs no remapping on transforms like loop unrolling. */
struct {
unsigned short clique;
unsigned short base;
} dependence_info;
} GTY((skip(""))) u;
}
typedef union tree_node *tree;