Re: [PATCH v6 0/4] P1689R5 support

2023-06-17 Thread Ben Boeckel via Gcc
On Fri, Jun 16, 2023 at 23:55:53 -0400, Jason Merrill wrote:
> I see the same thing with patch 4 on x86_64-pc-linux-gnu, e.g.
> 
> FAIL: g++.dg/modules/ben-1_a.C -std=c++17 (test for excess errors)
> Excess errors:
> /home/jason/gt/gcc/testsuite/g++.dg/modules/ben-1_a.C:9:1: internal
> compiler error: Segmentation fault
> 0x19e2f3c crash_signal
> /home/jason/gt/gcc/toplev.cc:314
> 0x340f3f8 mkdeps::vec::size() const
> /home/jason/gt/libcpp/mkdeps.cc:57
> 0x340dc1f apply_vpath
> /home/jason/gt/libcpp/mkdeps.cc:194
> 0x340e08e deps_add_dep(mkdeps*, char const*)
> /home/jason/gt/libcpp/mkdeps.cc:318
> 0xea7b51 module_client::open_module_client(unsigned int, char const*,
> mkdeps*, void (*)(char const*), char const*)
> /home/jason/gt/gcc/cp/mapper-client.cc:291
> 0xef2ba8 make_mapper
> /home/jason/gt/gcc/cp/module.cc:14042
> 0xf0896c get_mapper(unsigned int, mkdeps*)
> /home/jason/gt/gcc/cp/module.cc:3977
> 0xf032ac name_pending_imports
> /home/jason/gt/gcc/cp/module.cc:19623
> 0xf03a7d preprocessed_module(cpp_reader*)
> /home/jason/gt/gcc/cp/module.cc:19817
> 0xe85104 module_token_cdtor(cpp_reader*, unsigned long)
> /home/jason/gt/gcc/cp/lex.cc:548
> 0xf467b2 cp_lexer_new_main
> /home/jason/gt/gcc/cp/parser.cc:756
> 0xfc1e3a c_parse_file()
> /home/jason/gt/gcc/cp/parser.cc:49725
> 0x11c5bf5 c_common_parse_file()
> /home/jason/gt/gcc/c-family/c-opts.cc:1268

Thanks. I missed a `nullptr` check before calling `deps_add_dep`. I
think I got misled by `make check` returning a zero exit code even if
there are failures.

Thanks,

--Ben


Re: Followup on PR/109279: large constants on RISCV

2023-06-17 Thread Jeff Law via Gcc




On 6/12/23 13:32, Vineet Gupta wrote:



Gave this a try and it seems to fix Andrew's test, but then regresses 
the actual large const case: 0x1010101_01010101 : the mem to const_int 
transformation was being done in cse1 which no longer happens and the 
const pool from initial expand remains all the way into asm generated. I 
don't think we want to go back to that state
Was that with just -O1/-Og?  I have vague memories of seeing that kind 
of behavior.  If it was just with -O1 that might be a reasonable tradeoff.





Ok. From reading gccint it seems REG_EQUIV is a stronger form of 
equivalence and seems to be prefered by post reload passes, while 
REG_EQUAL is more of use in pre-reload.
That's a reasonable way to look at it.  In fact it's the allocators that 
promote REG_EQUAL to REG_EQUIV when its's safe to do so.





  I would also look at reload_cse_regs which should give us some 
chance at seeing the value reuse if/when IRA/LRA muck things up.


I'll be out of office for the rest of week, will look into this once I'm 
back.

NP.

jeff


gcc-13-20230617 is now available

2023-06-17 Thread GCC Administrator via Gcc
Snapshot gcc-13-20230617 is now available on
  https://gcc.gnu.org/pub/gcc/snapshots/13-20230617/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 13 git branch
with the following options: git://gcc.gnu.org/git/gcc.git branch 
releases/gcc-13 revision 4ca87c85ce285fac10caa98f2f430096f29b1fb6

You'll find:

 gcc-13-20230617.tar.xz   Complete GCC

  SHA256=43ce82ff3ad9a9a59e4877bb164d50f7743cb1cf59a27f57767523d58694fb45
  SHA1=9dcc2a210581f2481537c6c0f526eb022f7396ac

Diffs from 13-20230610 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-13
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.