From: Marc Poulhiès <[email protected]>
Hello,
This series contains the changes from Oct 29th to Nov 3rd:
- More intrinsics support
- Bug fixes
Tested on x86_64-linux, bootstrapped on recent and old gcc 5.
OK for master?
Marc
Arthur Cohen (2):
gccrs: intrinsics: Fix typecheck info for prefered_align_of<T>
gccrs: intrinsics: Add no-ops for prefetch_{read, write}_instruction
Owen Avery (1):
gccrs: Fix fnv128 calculation
Pierre-Emmanuel Patry (7):
gccrs: Emit extern prelude core path within builtin macros
gccrs: Fix forever stack path string representation
gccrs: Add opening_scope_resolution flag to most resolution functions
gccrs: Replace additional segment vectors with UtilPath
gccrs: Fix test canonical path
gccrs: Throw an error when a global path starts with crate
gccrs: Move UtilPath to Rust namespace
Sriram Raghunathan (1):
gccrs: Remove the function_defer_statement helper.
Utkarsh Bahuguna (3):
gccrs: Fix ICE with deep recursion in const fn
gccrs: Fix ICE in path pattern refutability
gccrs: Fix ICE on enum struct-variant patterns
Wesley Lewis (1):
gccrs: error when parsing only $
Yap Zhi Heng (6):
gccrs: Implement rust-intrinsics atomic binary operators
gccrs: Implement rust-intrinsics atomic compare-exchange built-ins
gccrs: Implement rust-intrinsics atomic min/max builtins
gccrs: Implement rust-intrinsics atomic_fence builtins
gccrs: Intrinsically compile slice index referencing
gccrs: GitHub issues clean-up
gcc/rust/ast/rust-ast-builder.cc | 7 +-
gcc/rust/ast/rust-ast-builder.h | 15 +-
gcc/rust/ast/rust-ast.h | 7 +
gcc/rust/ast/rust-path.h | 12 +
gcc/rust/backend/rust-compile-expr.cc | 57 +-
gcc/rust/backend/rust-compile-intrinsic.cc | 141 ++++-
gcc/rust/backend/rust-constexpr.cc | 8 +-
gcc/rust/backend/rust-intrinsic-handlers.cc | 492 +++++++++++++-----
gcc/rust/backend/rust-intrinsic-handlers.h | 41 +-
gcc/rust/expand/rust-derive-clone.cc | 1 +
gcc/rust/expand/rust-derive-debug.cc | 10 +-
gcc/rust/expand/rust-derive-default.cc | 4 +-
gcc/rust/expand/rust-derive-eq.cc | 3 +-
gcc/rust/expand/rust-derive-hash.cc | 7 +-
gcc/rust/expand/rust-derive-ord.cc | 26 +-
gcc/rust/expand/rust-expand-format-args.cc | 21 +-
.../hir/tree/rust-hir-pattern-abstract.cc | 59 ++-
gcc/rust/parse/rust-parse-impl-macro.hxx | 6 +-
.../resolve/rust-early-name-resolver-2.0.cc | 9 +-
.../resolve/rust-early-name-resolver-2.0.h | 11 +-
gcc/rust/resolve/rust-forever-stack.h | 29 +-
gcc/rust/resolve/rust-forever-stack.hxx | 10 +-
.../resolve/rust-late-name-resolver-2.0.cc | 5 +-
.../resolve/rust-name-resolution-context.h | 66 ++-
.../resolve/rust-name-resolution-context.hxx | 10 +-
gcc/rust/rust-backend.h | 7 -
gcc/rust/rust-gcc.cc | 35 --
.../typecheck/rust-hir-type-check-expr.cc | 26 +-
.../rust-hir-type-check-intrinsic.cc | 195 ++++++-
gcc/rust/util/fnv-hash.h | 18 +-
gcc/rust/util/rust-intrinsic-values.h | 92 ++++
gcc/rust/util/rust-util-path.h | 45 ++
gcc/testsuite/rust/compile/atomic_minmax.rs | 78 +++
.../compile/extern_prelude_crate_keyword.rs | 7 +
.../irrefutable-path-single-variant.rs | 16 +
.../compile/irrefutable-struct-variant.rs | 16 +
.../compile/issues/{issue-1178.rs => 1178.rs} | 0
.../compile/issues/{issue-2757.rs => 2757.rs} | 0
gcc/testsuite/rust/compile/issues/2846.rs | 10 +
gcc/testsuite/rust/compile/issues/3540.rs | 8 +
gcc/testsuite/rust/compile/issues/3584.rs | 11 +
gcc/testsuite/rust/compile/issues/3608.rs | 8 +
gcc/testsuite/rust/compile/issues/3629.rs | 11 +
gcc/testsuite/rust/compile/issues/3641.rs | 8 +
gcc/testsuite/rust/compile/issues/3644.rs | 9 +
gcc/testsuite/rust/compile/issues/3666.rs | 14 +
gcc/testsuite/rust/compile/issues/3689.rs | 10 +
.../compile/issues/{issue-3868.rs => 3868.rs} | 0
.../compile/issues/{issue-4152.rs => 4152.rs} | 0
.../compile/issues/{issue-4153.rs => 4153.rs} | 0
.../compile/issues/{issue-4668.rs => 4668.rs} | 0
.../compile/issues/{issue-4675.rs => 4675.rs} | 0
.../compile/issues/{issue-4709.rs => 4709.rs} | 0
.../compile/issues/{issue-4883.rs => 4883.rs} | 0
.../compile/issues/{issue-4885.rs => 4885.rs} | 0
.../compile/issues/{issue-4971.rs => 4971.rs} | 0
.../compile/issues/{issue-4973.rs => 4973.rs} | 0
.../rust/compile/issues/issue-3949.rs | 14 +
.../rust/compile/issues/issue_4402_foo.rs | 2 +-
gcc/testsuite/rust/compile/just_dollar.rs | 1 +
gcc/testsuite/rust/compile/pref_align_of.rs | 2 +-
gcc/testsuite/rust/compile/prefetch_all.rs | 25 +
gcc/testsuite/rust/compile/refutable-path.rs | 25 +-
.../rust/compile/refutable-struct.rs | 5 +
.../rust/execute/torture/atomic_and.rs | 105 ++++
.../torture/atomic_compare_exchange.rs | 241 +++++++++
.../rust/execute/torture/atomic_load.rs | 3 +
.../rust/execute/torture/atomic_minmax.rs | 226 ++++++++
.../rust/execute/torture/atomic_nand.rs | 105 ++++
.../rust/execute/torture/atomic_or.rs | 105 ++++
.../rust/execute/torture/atomic_store.rs | 3 +
.../rust/execute/torture/atomic_xadd.rs | 95 ++++
.../rust/execute/torture/atomic_xor.rs | 105 ++++
.../rust/execute/torture/atomic_xsub.rs | 95 ++++
.../execute/torture/const-fn-recursion.rs | 24 +
.../rust/execute/torture/issue-1133.rs | 5 +-
.../rust/execute/torture/issue-1232.rs | 3 +-
.../rust/execute/torture/partial-ord-5.rs | 2 +-
78 files changed, 2547 insertions(+), 325 deletions(-)
create mode 100644 gcc/rust/util/rust-util-path.h
create mode 100644 gcc/testsuite/rust/compile/atomic_minmax.rs
create mode 100644 gcc/testsuite/rust/compile/extern_prelude_crate_keyword.rs
create mode 100644
gcc/testsuite/rust/compile/irrefutable-path-single-variant.rs
create mode 100644 gcc/testsuite/rust/compile/irrefutable-struct-variant.rs
rename gcc/testsuite/rust/compile/issues/{issue-1178.rs => 1178.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-2757.rs => 2757.rs} (100%)
create mode 100644 gcc/testsuite/rust/compile/issues/2846.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3540.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3584.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3608.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3629.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3641.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3644.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3666.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3689.rs
rename gcc/testsuite/rust/compile/issues/{issue-3868.rs => 3868.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4152.rs => 4152.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4153.rs => 4153.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4668.rs => 4668.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4675.rs => 4675.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4709.rs => 4709.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4883.rs => 4883.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4885.rs => 4885.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4971.rs => 4971.rs} (100%)
rename gcc/testsuite/rust/compile/issues/{issue-4973.rs => 4973.rs} (100%)
create mode 100644 gcc/testsuite/rust/compile/issues/issue-3949.rs
create mode 100644 gcc/testsuite/rust/compile/just_dollar.rs
create mode 100644 gcc/testsuite/rust/compile/prefetch_all.rs
create mode 100644 gcc/testsuite/rust/execute/torture/atomic_and.rs
create mode 100644
gcc/testsuite/rust/execute/torture/atomic_compare_exchange.rs
create mode 100644 gcc/testsuite/rust/execute/torture/atomic_minmax.rs
create mode 100644 gcc/testsuite/rust/execute/torture/atomic_nand.rs
create mode 100644 gcc/testsuite/rust/execute/torture/atomic_or.rs
create mode 100644 gcc/testsuite/rust/execute/torture/atomic_xadd.rs
create mode 100644 gcc/testsuite/rust/execute/torture/atomic_xor.rs
create mode 100644 gcc/testsuite/rust/execute/torture/atomic_xsub.rs
create mode 100644 gcc/testsuite/rust/execute/torture/const-fn-recursion.rs
base-commit: 04f042f50ed44c7360c840949f71fb805fc982b8
--
2.55.0