LEFT | RIGHT |
1 /* Target hook definitions. | 1 /* Target hook definitions. |
2 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | 2 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, |
3 2011, 2012 | 3 2011, 2012 |
4 Free Software Foundation, Inc. | 4 Free Software Foundation, Inc. |
5 | 5 |
6 This program is free software; you can redistribute it and/or modify it | 6 This program is free software; you can redistribute it and/or modify it |
7 under the terms of the GNU General Public License as published by the | 7 under the terms of the GNU General Public License as published by the |
8 Free Software Foundation; either version 3, or (at your option) any | 8 Free Software Foundation; either version 3, or (at your option) any |
9 later version. | 9 later version. |
10 | 10 |
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
419 (record_gcc_switches_section, | 419 (record_gcc_switches_section, |
420 "", | 420 "", |
421 const char *, ".GCC.command.line") | 421 const char *, ".GCC.command.line") |
422 | 422 |
423 /* Output the definition of a section anchor. */ | 423 /* Output the definition of a section anchor. */ |
424 DEFHOOK | 424 DEFHOOK |
425 (output_anchor, | 425 (output_anchor, |
426 "", | 426 "", |
427 void, (rtx x), | 427 void, (rtx x), |
428 default_asm_output_anchor) | 428 default_asm_output_anchor) |
| 429 |
| 430 DEFHOOK |
| 431 (output_ident, |
| 432 "Output a string based on @var{name}, suitable for the @samp{#ident} \ |
| 433 directive, or the equivalent directive or pragma in non-C-family languages. \ |
| 434 If this hook is not defined, nothing is output for the @samp{#ident} \ |
| 435 directive.", |
| 436 void, (const char *name), |
| 437 hook_void_constcharptr) |
429 | 438 |
430 /* Output a DTP-relative reference to a TLS symbol. */ | 439 /* Output a DTP-relative reference to a TLS symbol. */ |
431 DEFHOOK | 440 DEFHOOK |
432 (output_dwarf_dtprel, | 441 (output_dwarf_dtprel, |
433 "", | 442 "", |
434 void, (FILE *file, int size, rtx x), | 443 void, (FILE *file, int size, rtx x), |
435 NULL) | 444 NULL) |
436 | 445 |
437 /* Some target machines need to postscan each insn after it is output. */ | 446 /* Some target machines need to postscan each insn after it is output. */ |
438 DEFHOOK | 447 DEFHOOK |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 (first_cycle_multipass_begin, | 680 (first_cycle_multipass_begin, |
672 "", | 681 "", |
673 void, (void *data, char *ready_try, int n_ready, bool first_cycle_insn_p), | 682 void, (void *data, char *ready_try, int n_ready, bool first_cycle_insn_p), |
674 NULL) | 683 NULL) |
675 | 684 |
676 /* This hook is called when multipass scheduling evaluates instruction INSN. | 685 /* This hook is called when multipass scheduling evaluates instruction INSN. |
677 DATA is a pointer to target-specific data that can be used to record effects | 686 DATA is a pointer to target-specific data that can be used to record effects |
678 of INSN on CPU that are not described in DFA. | 687 of INSN on CPU that are not described in DFA. |
679 READY_TRY and N_READY represent the current state of search in the | 688 READY_TRY and N_READY represent the current state of search in the |
680 optimization space. The target can filter out instructions that | 689 optimization space. The target can filter out instructions that |
681 should not be tried after issueing INSN by setting corresponding | 690 should not be tried after issuing INSN by setting corresponding |
682 elements in READY_TRY to non-zero. | 691 elements in READY_TRY to non-zero. |
683 INSN is the instruction being evaluated. | 692 INSN is the instruction being evaluated. |
684 PREV_DATA is a pointer to target-specific data corresponding | 693 PREV_DATA is a pointer to target-specific data corresponding |
685 to a state before issueing INSN. */ | 694 to a state before issuing INSN. */ |
686 DEFHOOK | 695 DEFHOOK |
687 (first_cycle_multipass_issue, | 696 (first_cycle_multipass_issue, |
688 "", | 697 "", |
689 void, (void *data, char *ready_try, int n_ready, rtx insn, | 698 void, (void *data, char *ready_try, int n_ready, rtx insn, |
690 const void *prev_data), NULL) | 699 const void *prev_data), NULL) |
691 | 700 |
692 /* This hook is called when multipass scheduling backtracks from evaluation of | 701 /* This hook is called when multipass scheduling backtracks from evaluation of |
693 instruction corresponding to DATA. | 702 instruction corresponding to DATA. |
694 DATA is a pointer to target-specific data that stores the effects | 703 DATA is a pointer to target-specific data that stores the effects |
695 of instruction from which the algorithm backtracks on CPU that are not | 704 of instruction from which the algorithm backtracks on CPU that are not |
696 described in DFA. | 705 described in DFA. |
697 READY_TRY and N_READY represent the current state of search in the | 706 READY_TRY and N_READY represent the current state of search in the |
698 optimization space. The target can filter out instructions that | 707 optimization space. The target can filter out instructions that |
699 should not be tried after issueing INSN by setting corresponding | 708 should not be tried after issuing INSN by setting corresponding |
700 elements in READY_TRY to non-zero. */ | 709 elements in READY_TRY to non-zero. */ |
701 DEFHOOK | 710 DEFHOOK |
702 (first_cycle_multipass_backtrack, | 711 (first_cycle_multipass_backtrack, |
703 "", | 712 "", |
704 void, (const void *data, char *ready_try, int n_ready), NULL) | 713 void, (const void *data, char *ready_try, int n_ready), NULL) |
705 | 714 |
706 /* This hook notifies the target about the result of the concluded current | 715 /* This hook notifies the target about the result of the concluded current |
707 round of multipass scheduling. | 716 round of multipass scheduling. |
708 DATA is a pointer. | 717 DATA is a pointer. |
709 If DATA is non-NULL it points to target-specific data used for multipass | 718 If DATA is non-NULL it points to target-specific data used for multipass |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
954 default_builtin_vectorized_function) | 963 default_builtin_vectorized_function) |
955 | 964 |
956 /* Returns a function declaration for a builtin that realizes the | 965 /* Returns a function declaration for a builtin that realizes the |
957 vector conversion, or NULL_TREE if not available. */ | 966 vector conversion, or NULL_TREE if not available. */ |
958 DEFHOOK | 967 DEFHOOK |
959 (builtin_conversion, | 968 (builtin_conversion, |
960 "", | 969 "", |
961 tree, (unsigned code, tree dest_type, tree src_type), | 970 tree, (unsigned code, tree dest_type, tree src_type), |
962 default_builtin_vectorized_conversion) | 971 default_builtin_vectorized_conversion) |
963 | 972 |
964 /* Target builtin that implements vector widening multiplication. | |
965 builtin_mul_widen_eve computes the element-by-element products | |
966 for the even elements, and builtin_mul_widen_odd computes the | |
967 element-by-element products for the odd elements. */ | |
968 DEFHOOK | |
969 (builtin_mul_widen_even, | |
970 "", | |
971 tree, (tree x), NULL) | |
972 | |
973 DEFHOOK | |
974 (builtin_mul_widen_odd, | |
975 "", | |
976 tree, (tree x), NULL) | |
977 | |
978 /* Cost of different vector/scalar statements in vectorization cost | 973 /* Cost of different vector/scalar statements in vectorization cost |
979 model. In case of misaligned vector loads and stores the cost depends | 974 model. In case of misaligned vector loads and stores the cost depends |
980 on the data type and misalignment value. */ | 975 on the data type and misalignment value. */ |
981 DEFHOOK | 976 DEFHOOK |
982 (builtin_vectorization_cost, | 977 (builtin_vectorization_cost, |
983 "", | 978 "", |
984 int, (enum vect_cost_for_stmt type_of_cost, tree vectype, int misalign), | 979 int, (enum vect_cost_for_stmt type_of_cost, tree vectype, int misalign), |
985 default_builtin_vectorization_cost) | 980 default_builtin_vectorization_cost) |
986 | 981 |
987 /* Return true if vector alignment is reachable (by peeling N | 982 /* Return true if vector alignment is reachable (by peeling N |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1047 default_autovectorize_vector_sizes) | 1042 default_autovectorize_vector_sizes) |
1048 | 1043 |
1049 /* Target builtin that implements vector gather operation. */ | 1044 /* Target builtin that implements vector gather operation. */ |
1050 DEFHOOK | 1045 DEFHOOK |
1051 (builtin_gather, | 1046 (builtin_gather, |
1052 "", | 1047 "", |
1053 tree, | 1048 tree, |
1054 (const_tree mem_vectype, const_tree index_type, int scale), | 1049 (const_tree mem_vectype, const_tree index_type, int scale), |
1055 NULL) | 1050 NULL) |
1056 | 1051 |
| 1052 /* Target function to initialize the cost model for a loop or block. */ |
| 1053 DEFHOOK |
| 1054 (init_cost, |
| 1055 "This hook should initialize target-specific data structures in preparation " |
| 1056 "for modeling the costs of vectorizing a loop or basic block. The default " |
| 1057 "allocates three unsigned integers for accumulating costs for the prologue, " |
| 1058 "body, and epilogue of the loop or basic block. If @var{loop_info} is " |
| 1059 "non-NULL, it identifies the loop being vectorized; otherwise a single block " |
| 1060 "is being vectorized.", |
| 1061 void *, |
| 1062 (struct loop *loop_info), |
| 1063 default_init_cost) |
| 1064 |
| 1065 /* Target function to record N statements of the given kind using the |
| 1066 given vector type within the cost model data for the current loop or |
| 1067 block. */ |
| 1068 DEFHOOK |
| 1069 (add_stmt_cost, |
| 1070 "This hook should update the target-specific @var{data} in response to " |
| 1071 "adding @var{count} copies of the given @var{kind} of statement to a " |
| 1072 "loop or basic block. The default adds the builtin vectorizer cost for " |
| 1073 "the copies of the statement to the accumulator specified by @var{where}, " |
| 1074 "(the prologue, body, or epilogue) and returns the amount added. The " |
| 1075 "return value should be viewed as a tentative cost that may later be " |
| 1076 "revised.", |
| 1077 unsigned, |
| 1078 (void *data, int count, enum vect_cost_for_stmt kind, |
| 1079 struct _stmt_vec_info *stmt_info, int misalign, |
| 1080 enum vect_cost_model_location where), |
| 1081 default_add_stmt_cost) |
| 1082 |
| 1083 /* Target function to calculate the total cost of the current vectorized |
| 1084 loop or block. */ |
| 1085 DEFHOOK |
| 1086 (finish_cost, |
| 1087 "This hook should complete calculations of the cost of vectorizing a loop " |
| 1088 "or basic block based on @var{data}, and return the prologue, body, and " |
| 1089 "epilogue costs as unsigned integers. The default returns the value of " |
| 1090 "the three accumulators.", |
| 1091 void, |
| 1092 (void *data, unsigned *prologue_cost, unsigned *body_cost, |
| 1093 unsigned *epilogue_cost), |
| 1094 default_finish_cost) |
| 1095 |
| 1096 /* Function to delete target-specific cost modeling data. */ |
| 1097 DEFHOOK |
| 1098 (destroy_cost_data, |
| 1099 "This hook should release @var{data} and any related data structures " |
| 1100 "allocated by TARGET_VECTORIZE_INIT_COST. The default releases the " |
| 1101 "accumulator.", |
| 1102 void, |
| 1103 (void *data), |
| 1104 default_destroy_cost_data) |
| 1105 |
1057 HOOK_VECTOR_END (vectorize) | 1106 HOOK_VECTOR_END (vectorize) |
1058 | 1107 |
1059 #undef HOOK_PREFIX | 1108 #undef HOOK_PREFIX |
1060 #define HOOK_PREFIX "TARGET_" | 1109 #define HOOK_PREFIX "TARGET_" |
1061 | 1110 |
1062 /* Allow target specific overriding of option settings after options have | 1111 /* Allow target specific overriding of option settings after options have |
1063 been changed by an attribute or pragma or when it is reset at the | 1112 been changed by an attribute or pragma or when it is reset at the |
1064 end of the code affected by an attribute or pragma. */ | 1113 end of the code affected by an attribute or pragma. */ |
1065 DEFHOOK | 1114 DEFHOOK |
1066 (override_options_after_change, | 1115 (override_options_after_change, |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1242 "", | 1291 "", |
1243 tree, (unsigned int /*location_t*/ loc, tree fndecl, void *arglist), NULL) | 1292 tree, (unsigned int /*location_t*/ loc, tree fndecl, void *arglist), NULL) |
1244 | 1293 |
1245 /* Fold a target-specific builtin. */ | 1294 /* Fold a target-specific builtin. */ |
1246 DEFHOOK | 1295 DEFHOOK |
1247 (fold_builtin, | 1296 (fold_builtin, |
1248 "", | 1297 "", |
1249 tree, (tree fndecl, int n_args, tree *argp, bool ignore), | 1298 tree, (tree fndecl, int n_args, tree *argp, bool ignore), |
1250 hook_tree_tree_int_treep_bool_null) | 1299 hook_tree_tree_int_treep_bool_null) |
1251 | 1300 |
1252 /* Target hook to generate the dispatching code for calls to multi-versioned | |
1253 functions. DISPATCH_DECL is the function that will have the dispatching | |
1254 logic. FNDECLS are the list of choices for dispatch and EMPTY_BB is the | |
1255 basic block in DISPATCH_DECL which will contain the code. */ | |
1256 DEFHOOK | |
1257 (dispatch_version, | |
1258 "", | |
1259 int, (tree dispatch_decl, void *fndecls, basic_block *empty_bb), NULL) | |
1260 | |
1261 /* Target hook to compare the priority of target features in function DECL1 | 1301 /* Target hook to compare the priority of target features in function DECL1 |
1262 and DECL2. It returns positive value if DECL1 is higher priority, | 1302 and DECL2. It returns positive value if DECL1 is higher priority, |
1263 negative value if DECL2 is higher priority and 0 if they are the | 1303 negative value if DECL2 is higher priority and 0 if they are the |
1264 same. */ | 1304 same. */ |
1265 DEFHOOK | 1305 DEFHOOK |
1266 (compare_versions, | 1306 (compare_version_priority, |
1267 "", | 1307 "", |
1268 int, (tree decl1, tree decl2), NULL) | 1308 int, (tree decl1, tree decl2), NULL) |
| 1309 |
| 1310 /* Target hook to get the new assembler name of DECL which is a function |
| 1311 version. */ |
| 1312 |
| 1313 DEFHOOK |
| 1314 (set_version_assembler_name, |
| 1315 "", |
| 1316 void, (tree decl), NULL) |
| 1317 |
| 1318 /* Target hook to generate the dispatcher body for a function version |
| 1319 dispatcher ARG, which is a cgraph_node pointer. */ |
| 1320 |
| 1321 DEFHOOK |
| 1322 (generate_version_dispatcher_body, |
| 1323 "", |
| 1324 tree, (void *arg), NULL)· |
| 1325 |
| 1326 /* Target hook to generate a function version dispatcher DECL for the list |
| 1327 of function versions in arglist, which is a vector of decls. */ |
| 1328 |
| 1329 DEFHOOK |
| 1330 (get_function_versions_dispatcher, |
| 1331 "", |
| 1332 tree, (void *arglist), NULL) |
1269 | 1333 |
1270 /* Returns a code for a target-specific builtin that implements | 1334 /* Returns a code for a target-specific builtin that implements |
1271 reciprocal of the function, or NULL_TREE if not available. */ | 1335 reciprocal of the function, or NULL_TREE if not available. */ |
1272 DEFHOOK | 1336 DEFHOOK |
1273 (builtin_reciprocal, | 1337 (builtin_reciprocal, |
1274 "", | 1338 "", |
1275 tree, (unsigned fn, bool md_fn, bool sqrt), | 1339 tree, (unsigned fn, bool md_fn, bool sqrt), |
1276 default_builtin_reciprocal) | 1340 default_builtin_reciprocal) |
1277 | 1341 |
1278 /* For a vendor-specific TYPE, return a pointer to a statically-allocated | 1342 /* For a vendor-specific TYPE, return a pointer to a statically-allocated |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1625 default_scalar_mode_supported_p) | 1689 default_scalar_mode_supported_p) |
1626 | 1690 |
1627 /* Similarly for vector modes. "Supported" here is less strict. At | 1691 /* Similarly for vector modes. "Supported" here is less strict. At |
1628 least some operations are supported; need to check optabs or builtins | 1692 least some operations are supported; need to check optabs or builtins |
1629 for further details. */ | 1693 for further details. */ |
1630 DEFHOOK | 1694 DEFHOOK |
1631 (vector_mode_supported_p, | 1695 (vector_mode_supported_p, |
1632 "", | 1696 "", |
1633 bool, (enum machine_mode mode), | 1697 bool, (enum machine_mode mode), |
1634 hook_bool_mode_false) | 1698 hook_bool_mode_false) |
| 1699 |
| 1700 DEFHOOK |
| 1701 (vector_alignment, |
| 1702 "This hook can be used to define the alignment for a vector of type\n\ |
| 1703 @var{type}, in order to comply with a platform ABI. The default is to\n\ |
| 1704 require natural alignment for vector types. The alignment returned by\n\ |
| 1705 this hook must be a power-of-two multiple of the default alignment of\n\ |
| 1706 the vector element type.", |
| 1707 HOST_WIDE_INT, (const_tree type), |
| 1708 default_vector_alignment) |
1635 | 1709 |
1636 /* True if we should try to use a scalar mode to represent an array, | 1710 /* True if we should try to use a scalar mode to represent an array, |
1637 overriding the usual MAX_FIXED_MODE limit. */ | 1711 overriding the usual MAX_FIXED_MODE limit. */ |
1638 DEFHOOK | 1712 DEFHOOK |
1639 (array_mode_supported_p, | 1713 (array_mode_supported_p, |
1640 "Return true if GCC should try to use a scalar mode to store an array\n\ | 1714 "Return true if GCC should try to use a scalar mode to store an array\n\ |
1641 of @var{nelems} elements, given that each element has mode @var{mode}.\n\ | 1715 of @var{nelems} elements, given that each element has mode @var{mode}.\n\ |
1642 Returning true here overrides the usual @code{MAX_FIXED_MODE} limit\n\ | 1716 Returning true here overrides the usual @code{MAX_FIXED_MODE} limit\n\ |
1643 and allows GCC to use any defined integer mode.\n\ | 1717 and allows GCC to use any defined integer mode.\n\ |
1644 \n\ | 1718 \n\ |
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2284 | 2358 |
2285 /* Convert EXPR to TYPE, if target-specific types with special conversion | 2359 /* Convert EXPR to TYPE, if target-specific types with special conversion |
2286 rules are involved. Return the converted expression, or NULL to apply | 2360 rules are involved. Return the converted expression, or NULL to apply |
2287 the standard conversion rules. */ | 2361 the standard conversion rules. */ |
2288 DEFHOOK | 2362 DEFHOOK |
2289 (convert_to_type, | 2363 (convert_to_type, |
2290 "", | 2364 "", |
2291 tree, (tree type, tree expr), | 2365 tree, (tree type, tree expr), |
2292 hook_tree_tree_tree_null) | 2366 hook_tree_tree_tree_null) |
2293 | 2367 |
| 2368 /* True if a structure, union or array with MODE containing FIELD should |
| 2369 be accessed using BLKmode. */ |
| 2370 DEFHOOK |
| 2371 (member_type_forces_blk, |
| 2372 "", |
| 2373 bool, (const_tree field, enum machine_mode mode), |
| 2374 default_member_type_forces_blk) |
| 2375 |
2294 /* Return the class for a secondary reload, and fill in extra information. */ | 2376 /* Return the class for a secondary reload, and fill in extra information. */ |
2295 DEFHOOK | 2377 DEFHOOK |
2296 (secondary_reload, | 2378 (secondary_reload, |
2297 "", | 2379 "", |
2298 reg_class_t, | 2380 reg_class_t, |
2299 (bool in_p, rtx x, reg_class_t reload_class, enum machine_mode reload_mode, | 2381 (bool in_p, rtx x, reg_class_t reload_class, enum machine_mode reload_mode, |
2300 secondary_reload_info *sri), | 2382 secondary_reload_info *sri), |
2301 default_secondary_reload) | 2383 default_secondary_reload) |
2302 | 2384 |
2303 /* Given an rtx X being reloaded into a reg required to be in class CLASS, | 2385 /* Given an rtx X being reloaded into a reg required to be in class CLASS, |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2649 bool, (tree args, tree pop_target), | 2731 bool, (tree args, tree pop_target), |
2650 default_target_option_pragma_parse) | 2732 default_target_option_pragma_parse) |
2651 | 2733 |
2652 /* Do option overrides for the target. */ | 2734 /* Do option overrides for the target. */ |
2653 DEFHOOK | 2735 DEFHOOK |
2654 (override, | 2736 (override, |
2655 "", | 2737 "", |
2656 void, (void), | 2738 void, (void), |
2657 hook_void_void) | 2739 hook_void_void) |
2658 | 2740 |
| 2741 /* Returns true if DECL1 and DECL2 are versions of the same function. */ |
| 2742 |
| 2743 DEFHOOK |
| 2744 (function_versions, |
| 2745 "", |
| 2746 bool, (tree decl1, tree decl2), |
| 2747 hook_bool_tree_tree_false) |
| 2748 |
2659 /* Function to determine if one function can inline another function. */ | 2749 /* Function to determine if one function can inline another function. */ |
2660 #undef HOOK_PREFIX | 2750 #undef HOOK_PREFIX |
2661 #define HOOK_PREFIX "TARGET_" | 2751 #define HOOK_PREFIX "TARGET_" |
2662 DEFHOOK | 2752 DEFHOOK |
2663 (can_inline_p, | 2753 (can_inline_p, |
2664 "", | 2754 "", |
2665 bool, (tree caller, tree callee), | 2755 bool, (tree caller, tree callee), |
2666 default_target_can_inline_p) | 2756 default_target_can_inline_p) |
2667 | 2757 |
2668 HOOK_VECTOR_END (target_option) | 2758 HOOK_VECTOR_END (target_option) |
2669 | 2759 |
2670 /* For targets that need to mark extra registers as live on entry to | 2760 /* For targets that need to mark extra registers as live on entry to |
2671 the function, they should define this target hook and set their | 2761 the function, they should define this target hook and set their |
2672 bits in the bitmap passed in. */ | 2762 bits in the bitmap passed in. */ |
2673 DEFHOOK | 2763 DEFHOOK |
2674 (extra_live_on_entry, | 2764 (extra_live_on_entry, |
2675 "", | 2765 "", |
2676 void, (bitmap regs), | 2766 void, (bitmap regs), |
2677 hook_void_bitmap) | 2767 hook_void_bitmap) |
2678 | 2768 |
2679 /* Fill in additional registers set up by prologue into a regset. */ | 2769 /* Fill in additional registers set up by prologue into a regset. */ |
2680 DEFHOOK | 2770 DEFHOOK |
2681 (set_up_by_prologue, | 2771 (set_up_by_prologue, |
2682 "This hook should add additional registers that are computed by the prologue\ | 2772 "This hook should add additional registers that are computed by the prologue\ |
2683 to the hard regset for shrink-wrapping optimization purposes.", | 2773 to the hard regset for shrink-wrapping optimization purposes.", |
2684 void, (struct hard_reg_set_container *), | 2774 void, (struct hard_reg_set_container *), |
2685 NULL) | 2775 NULL) |
| 2776 |
| 2777 /* For targets that have attributes that can affect whether a |
| 2778 function's return statements need checking. For instance a 'naked' |
| 2779 function attribute. */ |
| 2780 DEFHOOK |
| 2781 (warn_func_return, |
| 2782 "True if a function's return statements should be checked for matching the func
tion's return type. This includes checking for falling off the end of a non-voi
d function. Return false if no such check should be made.", |
| 2783 bool, (tree), |
| 2784 hook_bool_tree_true) |
2686 | 2785 |
2687 /* Determine the type of unwind info to emit for debugging. */ | 2786 /* Determine the type of unwind info to emit for debugging. */ |
2688 DEFHOOK | 2787 DEFHOOK |
2689 (debug_unwind_info, | 2788 (debug_unwind_info, |
2690 "", | 2789 "", |
2691 enum unwind_info_type, (void), | 2790 enum unwind_info_type, (void), |
2692 default_debug_unwind_info) | 2791 default_debug_unwind_info) |
2693 | 2792 |
2694 DEFHOOKPOD | 2793 DEFHOOKPOD |
2695 (atomic_test_and_set_trueval, | 2794 (atomic_test_and_set_trueval, |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2760 bool, false) | 2859 bool, false) |
2761 | 2860 |
2762 DEFHOOKPOD | 2861 DEFHOOKPOD |
2763 (want_debug_pub_sections, | 2862 (want_debug_pub_sections, |
2764 "True if the @code{.debug_pubtypes} and @code{.debug_pubnames} sections\ | 2863 "True if the @code{.debug_pubtypes} and @code{.debug_pubnames} sections\ |
2765 should be emitted. These sections are not used on most platforms, and\ | 2864 should be emitted. These sections are not used on most platforms, and\ |
2766 in particular GDB does not use them.", | 2865 in particular GDB does not use them.", |
2767 bool, false) | 2866 bool, false) |
2768 | 2867 |
2769 DEFHOOKPOD | 2868 DEFHOOKPOD |
| 2869 (force_at_comp_dir, |
| 2870 "True if the @code{DW_AT_comp_dir} attribute should be emitted for each \ |
| 2871 compilation unit. This attribute is required for the darwin linker \ |
| 2872 to emit debug information.", |
| 2873 bool, false) |
| 2874 |
| 2875 DEFHOOKPOD |
2770 (delay_sched2, "True if sched2 is not to be run at its normal place. \ | 2876 (delay_sched2, "True if sched2 is not to be run at its normal place. \ |
2771 This usually means it will be run as part of machine-specific reorg.", | 2877 This usually means it will be run as part of machine-specific reorg.", |
2772 bool, false) | 2878 bool, false) |
2773 | 2879 |
2774 DEFHOOKPOD | 2880 DEFHOOKPOD |
2775 (delay_vartrack, "True if vartrack is not to be run at its normal place. \ | 2881 (delay_vartrack, "True if vartrack is not to be run at its normal place. \ |
2776 This usually means it will be run as part of machine-specific reorg.", | 2882 This usually means it will be run as part of machine-specific reorg.", |
2777 bool, false) | 2883 bool, false) |
2778 | 2884 |
2779 /* Leave the boolean fields at the end. */ | 2885 /* Leave the boolean fields at the end. */ |
2780 | 2886 |
2781 /* Close the 'struct gcc_target' definition. */ | 2887 /* Close the 'struct gcc_target' definition. */ |
2782 HOOK_VECTOR_END (C90_EMPTY_HACK) | 2888 HOOK_VECTOR_END (C90_EMPTY_HACK) |
LEFT | RIGHT |