From 73b7582775254b764fd92ddb252a33dc15872c69 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 17 Dec 2020 00:15:11 +0000 Subject: Add rtl-ssa This patch adds the RTL SSA infrastructure itself. The following fwprop.c patch will make use of it. gcc/ * configure.ac: Add rtl-ssa to the list of dependence directories. * configure: Regenerate. * Makefile.in (rtl-ssa-warn): New variable. (OBJS): Add the rtl-ssa object files. * emit-rtl.h (rtl_data::ssa): New field. * rtl-ssa.h: New file. * system.h: Include when INCLUDE_FUNCTIONAL is defined. * rtl-ssa/access-utils.h: Likewise. * rtl-ssa/accesses.h: New file. * rtl-ssa/accesses.cc: Likewise. * rtl-ssa/blocks.h: New file. * rtl-ssa/blocks.cc: Likewise. * rtl-ssa/change-utils.h: Likewise. * rtl-ssa/changes.h: New file. * rtl-ssa/changes.cc: Likewise. * rtl-ssa/functions.h: New file. * rtl-ssa/functions.cc: Likewise. * rtl-ssa/insn-utils.h: Likewise. * rtl-ssa/insns.h: New file. * rtl-ssa/insns.cc: Likewise. * rtl-ssa/internals.inl: Likewise. * rtl-ssa/is-a.inl: Likewise. * rtl-ssa/member-fns.inl: Likewise. * rtl-ssa/movement.h: Likewise. --- gcc/rtl-ssa.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 gcc/rtl-ssa.h (limited to 'gcc/rtl-ssa.h') diff --git a/gcc/rtl-ssa.h b/gcc/rtl-ssa.h new file mode 100644 index 0000000..60cdad0 --- /dev/null +++ b/gcc/rtl-ssa.h @@ -0,0 +1,71 @@ +// On-the-side RTL SSA representation -*- C++ -*- +// Copyright (C) 2020 Free Software Foundation, Inc. +// +// This file is part of GCC. +// +// GCC is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3, or (at your option) any later +// version. +// +// GCC is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License +// along with GCC; see the file COPYING3. If not see +// . + +#ifndef GCC_RTL_SSA_H +#define GCC_RTL_SSA_H 1 + +// This is an aggregation header file. This means it should contain only +// other include files. + +#if 0 +// Files that use this one should first have: +#define INCLUDE_ALGORITHM +#define INCLUDE_FUNCTIONAL +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "backend.h" +#include "rtl.h" +#include "df.h" +#endif + +// Needed by splay-tree-utils.h and directly by rtl-ssa. +#include "pretty-print.h" + +// Needed directly by recog.h. +#include "insn-config.h" + +// Needed directly by rtl-ssa. +#include "splay-tree-utils.h" +#include "recog.h" +#include "regs.h" +#include "function-abi.h" +#include "obstack-utils.h" +#include "mux-utils.h" +#include "rtlanal.h" + +// Provides the global crtl->ssa. +#include "tm_p.h" +#include "memmodel.h" +#include "emit-rtl.h" + +// The rtl-ssa files themselves. +#include "rtl-ssa/accesses.h" +#include "rtl-ssa/insns.h" +#include "rtl-ssa/blocks.h" +#include "rtl-ssa/changes.h" +#include "rtl-ssa/functions.h" +#include "rtl-ssa/is-a.inl" +#include "rtl-ssa/access-utils.h" +#include "rtl-ssa/insn-utils.h" +#include "rtl-ssa/movement.h" +#include "rtl-ssa/change-utils.h" +#include "rtl-ssa/member-fns.inl" + +#endif -- cgit v1.1