gcse-common.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* Structures and prototypes common across the normal GCSE
  2. implementation and the post-reload implementation.
  3. Copyright (C) 1997-2019 Free Software Foundation, Inc.
  4. This file is part of GCC.
  5. GCC is free software; you can redistribute it and/or modify it under
  6. the terms of the GNU General Public License as published by the Free
  7. Software Foundation; either version 3, or (at your option) any later
  8. version.
  9. GCC is distributed in the hope that it will be useful, but WITHOUT ANY
  10. WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  12. for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with GCC; see the file COPYING3. If not see
  15. <http://www.gnu.org/licenses/>. */
  16. #ifndef GCC_GCSE_COMMON_H
  17. #define GCC_GCSE_COMMON_H
  18. typedef vec<rtx_insn *> vec_rtx_heap;
  19. struct modify_pair
  20. {
  21. rtx dest; /* A MEM. */
  22. rtx dest_addr; /* The canonical address of `dest'. */
  23. };
  24. typedef vec<modify_pair> vec_modify_pair_heap;
  25. struct gcse_note_stores_info
  26. {
  27. rtx_insn *insn;
  28. vec<modify_pair> *canon_mem_list;
  29. };
  30. extern void compute_transp (const_rtx, int, sbitmap *, bitmap,
  31. bitmap, vec<modify_pair> *);
  32. extern void record_last_mem_set_info_common (rtx_insn *,
  33. vec<rtx_insn *> *,
  34. vec<modify_pair> *,
  35. bitmap, bitmap);
  36. #endif