diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-10-21 14:29:50 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-12-13 14:00:07 +0100 |
commit | cfbda2f78baac4f329efe1838401b4ae2ed5b6a5 (patch) | |
tree | 63d04c0e9b01fe40f25380329f5801707583db1b /gcc/rust/backend/rust-compile.h | |
parent | 019b2f15581948806ee14a6d05b09ec94f04c966 (diff) | |
download | gcc-cfbda2f78baac4f329efe1838401b4ae2ed5b6a5.zip gcc-cfbda2f78baac4f329efe1838401b4ae2ed5b6a5.tar.gz gcc-cfbda2f78baac4f329efe1838401b4ae2ed5b6a5.tar.bz2 |
gccrs: Add HIR to GCC GENERIC lowering entry point
This patch contains the entry point and utilities used for the lowering
of HIR nodes to `tree`s. It also contains a constant evaluator, ported
over from the C++ frontend.
gcc/rust/
* backend/rust-compile-context.cc: New.
* backend/rust-compile-context.h: New.
* backend/rust-compile.cc: New.
* backend/rust-compile.h: New.
* backend/rust-constexpr.cc: New.
* backend/rust-constexpr.h: New.
Co-authored-by: David Faust <david.faust@oracle.com>
Co-authored-by: Faisal Abbas <90.abbasfaisal@gmail.com>
Signed-off-by: Faisal Abbas <90.abbasfaisal@gmail.com>
Diffstat (limited to 'gcc/rust/backend/rust-compile.h')
-rw-r--r-- | gcc/rust/backend/rust-compile.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/rust/backend/rust-compile.h b/gcc/rust/backend/rust-compile.h new file mode 100644 index 0000000..62ebac6 --- /dev/null +++ b/gcc/rust/backend/rust-compile.h @@ -0,0 +1,47 @@ +// Copyright (C) 2020-2022 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 +// <http://www.gnu.org/licenses/>. + +#ifndef RUST_COMPILE_H +#define RUST_COMPILE_H + +#include "rust-system.h" +#include "rust-hir-full.h" +#include "rust-compile-context.h" + +namespace Rust { +namespace Compile { + +class CompileCrate +{ +public: + static void Compile (HIR::Crate &crate, Context *ctx); + + ~CompileCrate (); + +private: + CompileCrate (HIR::Crate &crate, Context *ctx); + void go (); + + HIR::Crate &crate; + Context *ctx; +}; + +} // namespace Compile +} // namespace Rust + +#endif // RUST_COMPILE_H |