Dominance information problem

2020-09-12 Thread Gary Oblock via Gcc
I'm trying to do performance qualification for my structure
reorganization optimization.

I'm doing pretty straightforward stuff and I haven't at this point in
time (qualifying the optimization,) modified the program. So I'm a
little surprised this is failing.  Here is the code that's failing on
the first iteration of the for loops:

  struct cgraph_node *node;
  FOR_EACH_FUNCTION_WITH_GIMPLE_BODY ( node)  {
struct function *func = DECL_STRUCT_FUNCTION ( node->decl);
push_cfun ( func);

class loop *loop;
FOR_EACH_LOOP_FN ( func, loop, LI_ONLY_INNERMOST )
  {
size_t num_bbs = loop->num_nodes;
basic_block *bbs = get_loop_body ( loop); // FAILS HERE!!!
:
stuff never reached

How it's failing (in code from dominance.c) I'm guessing tells me the
dominance information is messed up (unlikely) or needs to be
recomputed. If I'm not wrong, how do I go about doing the later

/* Return TRUE in case BB1 is dominated by BB2.  */
bool
dominated_by_p (enum cdi_direction dir, const_basic_block bb1, 
const_basic_block bb2)
{
  unsigned int dir_index = dom_convert_dir_to_idx (dir);
  struct et_node *n1 = bb1->dom[dir_index], *n2 = bb2->dom[dir_index];

  gcc_checking_assert (dom_computed[dir_index]); // <=== BOOM!

  if (dom_computed[dir_index] == DOM_OK)
return (n1->dfs_num_in >= n2->dfs_num_in
 && n1->dfs_num_out <= n2->dfs_num_out);

  return et_below (n1, n2);
}


Thanks,

Gary Oblock






CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for 
the sole use of the intended recipient(s) and contains information that is 
confidential and proprietary to Ampere Computing or its subsidiaries. It is to 
be used solely for the purpose of furthering the parties' business 
relationship. Any unauthorized review, copying, or distribution of this email 
(or any attachments thereto) is strictly prohibited. If you are not the 
intended recipient, please contact the sender immediately and permanently 
delete the original and any copies of this email and any attachments thereto.


Re: Lowest i386 CPU Model with proper C++ atomics

2020-09-12 Thread Joel Sherrill
On Fri, Sep 11, 2020, 5:02 PM Joel Sherrill  wrote:

>
>
> On Fri, Sep 11, 2020 at 4:36 PM Janne Blomqvist 
> wrote:
>
>> On Fri, Sep 11, 2020 at 6:52 PM Joel Sherrill  wrote:
>> >
>> > Hi
>> >
>> > Over at RTEMS, we ran into a case where the C++ atomics may not be right
>> > for one of the lower level x86 models. We will investigate whether it
>> can
>> > be made right but this has led to the discussion of dropping older
>> models
>> > and setting a new minimum model. Right now, our base is a i386 w/FPU.
>> The
>> > best rationale we have for selecting a new floor is GCC atomics support.
>> >
>> > With that in mind, what's the lowest/oldest i386 CPU model we
>> > should consider as the new base model?
>>
>> We sort-of discussed this issue back when the Linux kernel dropped
>> support for i386. See thread starting at
>> https://gcc.gnu.org/legacy-ml/gcc/2012-12/msg00079.html (a thread
>> where you participated as well)
>>
>
> Wow time flies! That was eight years ago and Dr Dewar was still alive. :(
>
> I guess the embedded x86 side has started to hit the wall also. Looks
> like we should move to at least the i486 has a baseline.
>

I think I tripped across a mistake in i386/t-rtems. It is old enough that
it was written to use -mcpu but currently uses -mtune. Shouldn't that
-march?

As written, I think it is getting default model code tuned for a higher
model when we want code compatible with the higher model like other
multilibs.

Thoughts?

Thanks

--joel


> Thanks.
>
> --joel
>
>>
>>
>>
>> --
>> Janne Blomqvist
>>
>


gcc-10-20200912 is now available

2020-09-12 Thread GCC Administrator via Gcc
Snapshot gcc-10-20200912 is now available on
  https://gcc.gnu.org/pub/gcc/snapshots/10-20200912/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 10 git branch
with the following options: git://gcc.gnu.org/git/gcc.git branch 
releases/gcc-10 revision 08a0f33a1b0922386cf84aecccb0bc014646c609

You'll find:

 gcc-10-20200912.tar.xz   Complete GCC

  SHA256=c178df2d7a40deb730e5d999205fc29a2df9bf3bbace7d31484052a296376e6c
  SHA1=3cbaab4ae9cc90dcbac388835e22d2f979cf0114

Diffs from 10-20200905 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-10
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.


Enquiry

2020-09-12 Thread Paul via Gcc
Hello,

We are interested in importing your products to Costa Rica.

Please send your product catalog to (epicr...@protonmail.com)
for further information.

Awaiting...

Regards,

Paul