197403Sobrien/* Structures and prototypes common across the normal GCSE
297403Sobrien   implementation and the post-reload implementation.
3169691Skan   Copyright (C) 1997-2020 Free Software Foundation, Inc.
4169691Skan
597403SobrienThis file is part of GCC.
697403Sobrien
797403SobrienGCC is free software; you can redistribute it and/or modify it under
897403Sobrienthe terms of the GNU General Public License as published by the Free
997403SobrienSoftware Foundation; either version 3, or (at your option) any later
1097403Sobrienversion.
1197403Sobrien
1297403SobrienGCC is distributed in the hope that it will be useful, but WITHOUT ANY
1397403SobrienWARRANTY; without even the implied warranty of MERCHANTABILITY or
1497403SobrienFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1597403Sobrienfor more details.
1697403Sobrien
1797403SobrienYou should have received a copy of the GNU General Public License
1897403Sobrienalong with GCC; see the file COPYING3.  If not see
19169691Skan<http://www.gnu.org/licenses/>.  */
2097403Sobrien
2197403Sobrien#ifndef GCC_GCSE_COMMON_H
2297403Sobrien#define GCC_GCSE_COMMON_H
2397403Sobrien
2497403Sobrientypedef vec<rtx_insn *> vec_rtx_heap;
2597403Sobrienstruct modify_pair
2697403Sobrien{
2797403Sobrien  rtx dest;                     /* A MEM.  */
2897403Sobrien  rtx dest_addr;                /* The canonical address of `dest'.  */
2997403Sobrien};
3097403Sobrien
3197403Sobrientypedef vec<modify_pair> vec_modify_pair_heap;
3297403Sobrien
3397403Sobrienstruct gcse_note_stores_info
3497403Sobrien{
3597403Sobrien  rtx_insn *insn;
3697403Sobrien  vec<modify_pair> *canon_mem_list;
3797403Sobrien};
3897403Sobrien
3997403Sobrienextern void compute_transp (const_rtx, int, sbitmap *, bitmap,
4097403Sobrien			    bitmap, vec<modify_pair> *);
4197403Sobrienextern void record_last_mem_set_info_common (rtx_insn *,
4297403Sobrien					     vec<rtx_insn *> *,
4397403Sobrien					     vec<modify_pair> *,
4497403Sobrien					     bitmap, bitmap);
4597403Sobrien
4697403Sobrien
4797403Sobrien#endif
4897403Sobrien