Re: regression due to r187199 explow.c? in target ia64-hp-hpux11.23.

2012-06-07 Thread Tristan Gingold
Hi,

so it looks like there are other ia64 specific calls to plus_constant that need 
to be adjusted.

Tristan.

On Jun 6, 2012, at 1:29 PM, Mailaripillai, Kannan Jeganathan wrote:

 What is the backtrace ?
>> #0  0x6db96a0:0 in plus_constant (mode=RFmode, x=0x18, c=1)
>> #13 0x6f68260:0 in expand_expr_real_1 (exp=0x651ab420, target=0x0,
> 
> Full backtrace:
> 
> #0  0x6db96a0:0 in plus_constant (mode=RFmode, x=0x18, c=1)
> #1  0xd7503f0:0 in ia64_expand_tls_address (tls_kind=TLS_MODEL_INITIAL_EXEC,
>op0=0x651ac120, op1=0x651ac0f0, orig_op1=0x651ac0f0, addend=0)
> #2  0xd750dd0:0 in ia64_expand_move (op0=0x651ac120, op1=0x651ac0f0)
> #3  0xd8c6e90:0 in gen_movsi (operand0=0x651ac120, operand1=0x651ac0f0)
> #4  0x6ef9900:0 in emit_move_insn_1 (x=0x651ac120, y=0x651ac0f0)
> #5  0x6efa6f0:0 in emit_move_insn (x=0x651ac120, y=0x651ac0f0)
> #6  0x6dbdd30:0 in copy_to_mode_reg (mode=SImode, x=0x651ac0f0)
> #7  0x8ba3c30:0 in maybe_legitimize_operand (icode=CODE_FOR_addsi3, opno=1,
>op=0x7fffcf88)
> #8  0x8ba46c0:0 in maybe_legitimize_operands (icode=CODE_FOR_addsi3, opno=0,
>nops=3, ops=0x7fffcf80)
> #9  0x8ba48c0:0 in maybe_gen_insn (icode=CODE_FOR_addsi3, nops=3,
>ops=0x7fffcf80)
> #10 0x8b6b620:0 in expand_binop_directly (mode=SImode, binoptab=0x40257fdc,
>op0=0x651ac0f0, op1=0x653ba4f0, target=0x0, unsignedp=1,
>methods=OPTAB_LIB_WIDEN, last=0x0)
> #11 0x8b6bcb0:0 in expand_binop (mode=SImode, binoptab=0x40257fdc,
>op0=0x651ac0f0, op1=0x653ba4f0, target=0x0, unsignedp=1,
>methods=OPTAB_LIB_WIDEN)
> #12 0x6f4fa30:0 in expand_expr_real_2 (ops=0x7fffdcd4, target=0x0,
>tmode=SImode, modifier=EXPAND_NORMAL)
> #13 0x6f68260:0 in expand_expr_real_1 (exp=0x651ab420, target=0x0,
>tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
> #14 0x6f3c830:0 in expand_expr_real (exp=0x651ab420, target=0x0, tmode=SImode,
>modifier=EXPAND_NORMAL, alt_rtl=0x0)
> #15 0x6e7c5e0:0 in expand_expr (exp=0x651ab420, target=0x0, mode=SImode,
>modifier=EXPAND_NORMAL)
> #16 0x6f37cc0:0 in expand_expr_addr_expr_1 (exp=0x651a2900, target=0x0,
>tmode=SImode, modifier=EXPAND_NORMAL, as=0 '\000')
> #17 0x6f3adb0:0 in expand_expr_addr_expr (exp=0x651a8558, target=0x0,
>tmode=SImode, modifier=EXPAND_NORMAL)
> #18 0x6f67ff0:0 in expand_expr_real_1 (exp=0x651a8558, target=0x0,
>tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
> #19 0x6f3c830:0 in expand_expr_real (exp=0x651a8558, target=0x0, tmode=SImode,
>modifier=EXPAND_NORMAL, alt_rtl=0x0)
> #20 0xaa49f90:0 in expand_expr (exp=0x651a8558, target=0x0, mode=SImode,
>modifier=EXPAND_NORMAL)
> #21 0xaa4ee60:0 in insert_value_copy_on_edge (e=0x655a4e40, dest=8,
>src=0x651a8558, locus=1363692)
> #22 0xaa53730:0 in eliminate_phi (e=0x655a4e40, g=0x404d6de0)
> #23 0xaa54d70:0 in expand_phi_nodes (sa=0x4012623c)
> #24 0x5f909d0:0 in gimple_expand_cfg ()
> #25 0x8d130d0:0 in execute_one_pass (pass=0x400451b8)
> #26 0x8d137f0:0 in execute_pass_list (pass=0x400451b8)
> #27 0x656d740:0 in expand_function (node=0x65550450)
> #28 0x656eb60:0 in expand_all_functions ()
> #29 0x6571400:0 in compile ()
> #30 0x6571940:0 in finalize_compilation_unit ()
> #31 0x51bc8e0:0 in c_write_global_declarations ()
> #32 0x9c63b30:0 in compile_file ()
> #33 0x9c6b470:0 in do_compile ()
> #34 0x9c6b9c0:0 in toplev_main (argc=49, argv=0x7fffeee8)
> #35 0xf564740:0 in main (argc=49, argv=0x7fffeee8)
> 
> Regards,
> Kannan
> 
> -Original Message-
> From: Mailaripillai, Kannan Jeganathan 
> Sent: Wednesday, June 06, 2012 4:42 PM
> To: 'Tristan Gingold'
> Cc: gcc@gcc.gnu.org
> Subject: RE: regression due to r187199 explow.c? in target ia64-hp-hpux11.23.
> 
> 
>> What is the backtrace ?
> 
> #0  0x6db96a0:0 in plus_constant (mode=RFmode, x=0x18, c=1)
> #1  0xd7503f0:0 in ia64_expand_tls_address (tls_kind=TLS_MODEL_INITIAL_EXEC,
>op0=0x651ac120, op1=0x651ac0f0, orig_op1=0x651ac0f0, addend=0)
> #2  0xd750dd0:0 in ia64_expand_move (op0=0x651ac120, op1=0x651ac0f0)
> #3  0xd8c6e90:0 in gen_movsi (operand0=0x651ac120, operand1=0x651ac0f0)
> #4  0x6ef9900:0 in emit_move_insn_1 (x=0x651ac120, y=0x651ac0f0)
> #5  0x6efa6f0:0 in emit_move_insn (x=0x651ac120, y=0x651ac0f0)
> #6  0x6dbdd30:0 in copy_to_mode_reg (mode=SImode, x=0x651ac0f0)
> #7  0x8ba3c30:0 in maybe_legitimize_operand (icode=CODE_FOR_addsi3, opno=1,
>op=0x7fffcf88)
> #8  0x8ba46c0:0 in maybe_legitimize_operands (icode=CODE_FOR_addsi3, opno=0,
>nops=3, ops=0x7fffcf80)
> #9  0x8ba48c0:0 in maybe_gen_insn (icode=CODE_FOR_addsi3, nops=3,
>ops=0x7fffcf80)
> #10 0x8b6b620:0 in expand_binop_directly (mode=SImode, binoptab=0x40257fdc,
>op0=0x651ac0f0, op1=0x653ba4f0, target=0x0, unsignedp=1,
>methods=OPTAB_LIB_WIDEN, last=0x0)
> #11 0x8b6bcb0:0 in expand_binop (mode=SImode, binoptab=0x40257fdc,
>op0=0x651ac0f0, op1=0x653ba4f0, target=0x0, unsignedp=1,
>methods=OPTAB_LIB_WIDEN)
> #12 0x6f4fa30:0 in expand_expr_real_2 (ops=0x7fffdcd4, target=0x0,
>tmode=SImode, modifier

Question about ifcvt.c:noce_mem_write_may_trap_or_fault_p() vs. decl_readonly_section

2012-06-07 Thread Steven Bosscher
Hello,

I am confused by the following code in
ifcvt.c:noce_mem_write_may_trap_or_fault_p():

static bool
noce_mem_write_may_trap_or_fault_p (const_rtx mem)
{
  rtx addr;

  if (MEM_READONLY_P (mem))
return true;
(...)

  addr = XEXP (mem, 0);

  /* Call target hook to avoid the effects of -fpic etc  */
  addr = targetm.delegitimize_address (addr);

  while (addr)
switch (GET_CODE (addr))
  {
(...)  case SYMBOL_REF:
if (SYMBOL_REF_DECL (addr)
&& decl_readonly_section (SYMBOL_REF_DECL (addr), 0))
  return true;

If decl_readonly_section (SYMBOL_REF_DECL (addr), 0) is true, I would
expect that MEM_READONLY_P is set, and the decl_readonly_section check
is never true.

Is there a difference between "could be read-only"
(decl_readonly_section) and "is read-only" (MEM_READONLY_P)?

Thanks for any help you can give,

Ciao!
Steven


Re: Question about ifcvt.c:noce_mem_write_may_trap_or_fault_p() vs. decl_readonly_section

2012-06-07 Thread Ian Lance Taylor
Steven Bosscher  writes:

> I am confused by the following code in
> ifcvt.c:noce_mem_write_may_trap_or_fault_p():
>
> static bool
> noce_mem_write_may_trap_or_fault_p (const_rtx mem)
> {
>   rtx addr;
>
>   if (MEM_READONLY_P (mem))
> return true;
> (...)
>
>   addr = XEXP (mem, 0);
>
>   /* Call target hook to avoid the effects of -fpic etc  */
>   addr = targetm.delegitimize_address (addr);
>
>   while (addr)
> switch (GET_CODE (addr))
>   {
> (...)  case SYMBOL_REF:
> if (SYMBOL_REF_DECL (addr)
> && decl_readonly_section (SYMBOL_REF_DECL (addr), 0))
>   return true;
>
> If decl_readonly_section (SYMBOL_REF_DECL (addr), 0) is true, I would
> expect that MEM_READONLY_P is set, and the decl_readonly_section check
> is never true.
>
> Is there a difference between "could be read-only"
> (decl_readonly_section) and "is read-only" (MEM_READONLY_P)?

In principle, I agree that MEM_READONLY_P should be set if the address
is based on a SYMBOL_REF and decl_readonly_section is true for the
SYMBOL_REF.  In practice I would not be in the least surprised if the
two tests were not identical.  There is a lot of code in the compiler
that creates a MEM, and the functions to create a MEM do not check for a
SYMBOL_REF for which decl_readonly_section is true.  There are other
triggers for MEM_READONLY_P, so it could turn out to be identical, but I
would not be surprised if it isn't.

If you are really curious it's probably worth adding a test there to see
if it ever triggers--if the call to decl_readonly_section ever returns
true.

Ian


Re: backporting PR52558 to 4.7?

2012-06-07 Thread Aldy Hernandez

On 05/31/12 15:44, Aldy Hernandez wrote:

Hello gentlemen.

Would it be ok to backport the fix for PR52558 into the 4.7 branch? This
PR is the store data race patch I have been iterating with Richi. Doing
so will avoid critical data races for both TM and the C++ memory model.

The code is all predicated by flag_tm or !PARAM_VALUE
(PARAM_ALLOW_STORE_DATA_RACES)), so it shouldn't affect code paths
outside of TM or the C++1x memory model.

Thanks.
Aldy


Ping.


Re: backporting PR52558 to 4.7?

2012-06-07 Thread Jakub Jelinek
On Thu, Jun 07, 2012 at 12:48:38PM -0500, Aldy Hernandez wrote:
> On 05/31/12 15:44, Aldy Hernandez wrote:
> >Hello gentlemen.
> >
> >Would it be ok to backport the fix for PR52558 into the 4.7 branch? This
> >PR is the store data race patch I have been iterating with Richi. Doing
> >so will avoid critical data races for both TM and the C++ memory model.
> >
> >The code is all predicated by flag_tm or !PARAM_VALUE
> >(PARAM_ALLOW_STORE_DATA_RACES)), so it shouldn't affect code paths
> >outside of TM or the C++1x memory model.
> >
> >Thanks.

> Ping.

I think it is ok for 4.7.2, 4.7.1 is frozen now and it isn't as severe as
various other PRs we've also deferred for 4.7.2.

Jakub


gcc-4.5-20120607 is now available

2012-06-07 Thread gccadmin
Snapshot gcc-4.5-20120607 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.5-20120607/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.5 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch 
revision 188318

You'll find:

 gcc-4.5-20120607.tar.bz2 Complete GCC

  MD5=9d5ce24452a999c822d70b75c8917a28
  SHA1=5609eff19c39b9985f5d2d2516fb05b28046d645

Diffs from 4.5-20120531 are available in the diffs/ subdirectory.

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


Re: GCC 4.7.1 Release Candidate available from gcc.gnu.org

2012-06-07 Thread Michael Hope
On 6 June 2012 22:14, Richard Guenther  wrote:
>
> The first release candidate for GCC 4.7.1 is available from
>
>  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7.1-RC-20120606
>
> and shortly its mirrors.  It has been generated from SVN revision 188257.
>
> I have so far bootstrapped and tested the release candidate on
> x86_64-linux.  Please test it and report any issues to bugzilla.
>
> If all goes well, I'd like to release 4.7.1 at the end of next week.

This bootstraps and tests OK in ARMv5T+ARM+soft,
Cortex-A9+Thumb-2+softfp+NEON, and Cortex-A9+Thumb-2+hard+NEON
configurations for C, C++, Fortran, and objc[1].  The regressions
compared to 4.7.0 are testisms or the vectoriser not applying.  I
haven't logged them in bugzilla, sorry.

-- Michael
[1] http://builds.linaro.org/toolchain/gcc-4.7.1-RC-20120606/logs/