stmt.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* Declarations and data structures for stmt.c.
  2. Copyright (C) 2013-2019 Free Software Foundation, Inc.
  3. This file is part of GCC.
  4. GCC is free software; you can redistribute it and/or modify it under
  5. the terms of the GNU General Public License as published by the Free
  6. Software Foundation; either version 3, or (at your option) any later
  7. version.
  8. GCC is distributed in the hope that it will be useful, but WITHOUT ANY
  9. WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10. FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  11. for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with GCC; see the file COPYING3. If not see
  14. <http://www.gnu.org/licenses/>. */
  15. #ifndef GCC_STMT_H
  16. #define GCC_STMT_H
  17. extern void expand_label (tree);
  18. extern bool parse_output_constraint (const char **, int, int, int,
  19. bool *, bool *, bool *);
  20. extern bool parse_input_constraint (const char **, int, int, int, int,
  21. const char * const *, bool *, bool *);
  22. extern tree resolve_asm_operand_names (tree, tree, tree, tree);
  23. #ifdef HARD_CONST
  24. /* Silly ifdef to avoid having all includers depend on hard-reg-set.h. */
  25. extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
  26. #endif
  27. /* Return the CODE_LABEL rtx for a LABEL_DECL, creating it if necessary.
  28. If label was deleted, the corresponding note
  29. (NOTE_INSN_DELETED{_DEBUG,}_LABEL) insn will be returned. */
  30. extern rtx_insn *label_rtx (tree);
  31. /* As label_rtx, but additionally the label is placed on the forced label
  32. list of its containing function (i.e. it is treated as reachable even
  33. if how is not obvious). */
  34. extern rtx_insn *force_label_rtx (tree);
  35. /* As label_rtx, but checks that label was not deleted. */
  36. extern rtx_code_label *jump_target_rtx (tree);
  37. /* Expand a GIMPLE_SWITCH statement. */
  38. extern void expand_case (gswitch *);
  39. /* Like expand_case but special-case for SJLJ exception dispatching. */
  40. extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
  41. #endif // GCC_STMT_H