Vladimir Makarov | 20 Jun 2013 02:00
Picon
Favicon

patch to fix PR57604

I hope the following patch fixes

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57604

Although I have no specific hardware to check this.

The patch also adds a comment about one recent change as it was done in 
the same function.

The patch was successfully bootstrapped and tested on x86/x86-64 and 
s390x (including building java).

Committed as rev. 200227.

2013-06-19  Vladimir Makarov  <vmakarov <at> redhat.com>

         PR bootstrap/57604
         * lra.c (emit_add3_insn, emit_add2_insn): New functions.
         (lra_emit_add): Use the functions.  Add comment about Y as an
         address segment.

Index: lra.c
===================================================================
--- lra.c	(revision 200174)
+++ lra.c	(working copy)
 <at>  <at>  -242,6 +242,42  <at>  <at>  lra_delete_dead_insn (rtx insn)
   lra_set_insn_deleted (insn);
 }
(Continue reading)

Rong Xu | 20 Jun 2013 00:41
Picon
Favicon

[google gcc-4_8] fix bad merge in r199218

Hi,

This patch fixes a bad merge in r199218.
Removing cgraph noded in early-ipa should be allowed.
Otherwise, we got ICE in tree-eipa_sra with
-freorder-funtions=callgraph (without -fripa)

Tested with regressions and google banchmarks.

Thanks,

-Rong
Attachment (patch.diff): application/octet-stream, 941 bytes
Ian Lance Taylor | 19 Jun 2013 23:25
Picon
Favicon
Gravatar

Go patch committed: Check for invalid unsafe.Offsetof

In Go it is not valid to use unsafe.Offsetof with a reference to an
embedded field that is accessed via an embedded pointer, because there
is no reasonable answer to return in that case.  Unfortunately gccgo was
returning bogus results for that case.  This patch from Rémy Oudompheng
fixes it to return an error.  There is a test case in the master
testsuite that will be imported into gccgo in due course.  Bootstrapped
and ran Go testsuite on x86_64-unknown-linux-gnu.  Committed to mainline
and 4.8 branch.

Ian

Attachment (foo.patch): text/x-diff, 1471 bytes
Bernd Schmidt | 19 Jun 2013 19:39

CALL_INSN_FUNCTION_USAGE fix, PR52773

This is bug that triggers on m68k. The loop unroller creates a MULT
expression and tries to force it into a register, which causes a libcall
to be generated. Since args are pushed we create a
  (use (mem (plus virtual_outgoing_args scratch)))
in CALL_INSN_FUNCTION_USAGE. Since we're past vregs, the
virtual_outgoing_args rtx survives to reload, which blows up.

Fixed by just using stack_pointer_rtx, since we use a scratch anyway
rather than a known offset. I also noticed that we actually add two of
these USEs, so I've fixed that as well.

Bootstrapped and tested on x86_64-linux, ok?

Bernd
Attachment (fusage-52773.diff): text/x-patch, 2336 bytes
Steve Ellcey | 19 Jun 2013 18:36

[patch, mips] Fix switch statement for mips16 (PR target/56942)

Steven and Richard,

I saw the email about the s390 switch statement

	http://gcc.gnu.org/ml/gcc-patches/2013-06/msg01026.html

and tested this patch on MIPS to see if using NEXT_INSN instead of
next_real_insn fixed PR 56942.  It did, so is this the right long
term fix for MIPS?  Is it OK to check it in?  Since Steven added
an assert in tablejump_p, I did not include any here, though I could
if we thought it was needed.

Steve Ellcey
sellcey <at> mips.com

2013-06-19  Steve Ellcey  <sellcey <at> imgtec.com>

	PR target/56942
	* config/mips/mips.md (casesi_internal_mips16_≤mode>):
	Use NEXT_INSN instead of next_real_insn.

diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index ce322d8..b832dda 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
 <at>  <at>  -5948,7 +5948,7  <at>  <at> 
    (clobber (reg:SI MIPS16_T_REGNUM))]
   "TARGET_MIPS16_SHORT_JUMP_TABLES"
 {
-  rtx diff_vec = PATTERN (next_real_insn (operands[2]));
(Continue reading)

Iyer, Balaji V | 19 Jun 2013 18:23
Picon
Favicon

[PATCH] Replaced the array sizes from hard-coded values to #define

Hello Everyone,
	This patch will replace the array sizes in array notation test suite functions from a hard-coded value to a
#defined one. The main reason for doing this is that it will get easier in future if I want to experiment with
different array sizes. In some cases this change was not possible since I am using the triplets based on the
hard-coded length. I have also increased the array sizes from 10 to like 100 so that we can test with larger
array-sizes (mainly to see if any memory overflow in the temporary storage arrays I have created in the
compiler). I am checking this patch in as obvious. I am willing to revert this if anyone has any objections.

Here is the ChangeLog entries

2013-06-19  Balaji V. Iyer  <balaji.v.iyer <at> intel.com>

        * c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Replaced all the
        hard-coded values of array sizes with a #define.
        * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Likewise.
        * c-c++-common/cilk-plus/AN/builtin_func_double2.c: Likewise.
        * c-c++-common/cilk-plus/AN/gather_scatter.c: Likewise.
        * c-c++-common/cilk-plus/AN/pr57577.c: Likewise.
        * c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Likewise.

Thanks,

Balaji V. Iyer.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index be51cb3..723af40 100755
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
 <at>  <at>  -1,3 +1,13  <at>  <at> 
(Continue reading)

Torvald Riegel | 19 Jun 2013 16:57
Picon
Favicon

[patch] libitm: Fix handling of reentrancy in the HTM fastpath

(Re-sending to the proper list. Sorry for the noise at gcc <at> .)

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57643

The HTM fastpath didn't handle a situation in which a relaxed
transaction executed unsafe code that in turn starts a transaction; it
simply tried to wait for the "other" transaction, not checking whether
the current thread started the other transaction.

We fix this by doing this check, and if we have the lock, we just
continue with the fallback serial-mode path instead of using a HW
transaction.  The current code won't do the check before starting a HW
transaction, but this way we can keep the HTM fastpath unchanged; also,
this particular "reentrancy" is probably infrequent in practice, so I
suppose the small slowdown shouldn't matter much.

Also, I first thought about trying to use the HTM in the reentrancy
case, but this doesn't make any sense because other transactions can't
run anyway, and we should really just finish the serial-mode transaction
as fast as possible.

Peter and/or Andreas: Could you please check that this fixes the bug you
see on Power/s390?  Thanks.

Torvald

commit 185af84e365e1bae31aea5afd6e67e81f3c32c72
Author: Torvald Riegel <triegel <at> redhat.com>
(Continue reading)

David Edelsohn | 19 Jun 2013 16:49
Picon

[PATCH] PR/57652 collect2 temp files

A 2011 change to collect2 to use the standard diagnostics
infrastructure broke collect2's cleanup of temp files when an error
occurs.  This prototype of a patch implements the minimal conversion
of collect2 to use atexit().

If this is the right direction, all calls to collect_exit() can be
converted to exit().

Thanks, David

        PR driver/57652
        * collect2.c (collect_atexit): New.
        (collect_exit): Directly call exit.
        (main): Register collect_atexit with atexit.

Index: collect2.c
===================================================================
--- collect2.c  (revision 200180)
+++ collect2.c  (working copy)
 <at>  <at>  -367,7 +367,7  <at>  <at> 
 /* Delete tempfiles and exit function.  */

 void
-collect_exit (int status)
+collect_atexit (void)
 {
   if (c_file != 0 && c_file[0])
     maybe_unlink (c_file);
 <at>  <at>  -395,12 +395,16  <at>  <at> 
       maybe_unlink (lderrout);
(Continue reading)

Paolo Carlini | 19 Jun 2013 15:37
Picon
Favicon

[C++ Patch] PR 57645

Hi,

when I implemented Core/1123 "Destructors should be noexcept by 
default", unfortunately I caused this regression, present now in 
mainline and 4_8-branch.

When the destructor is user provided, with no exception specifications, 
and the type has data members (not bases, those are already Ok) with the 
destructor which can throw, the destructor is wrongly deduced to be 
noexcept. The reason is that deduce_noexcept_on_destructors is called 
from check_bases_and_members after check_bases but *before* 
check_methods and therefore the latter does too late work relevant for 
the deduction, namely possibly setting TYPE_HAS_NONTRIVIAL_DESTRUCTOR.

My proposal for a fix involves simply anticipating that work as part of 
deduce_noexcept_on_destructors, renamed now check_destructors, and 
called unconditionally. Things appear to work fine. Of course different 
refactorings and naming schemes could make perfect sense.

Tested x86_64-linux.

Thanks,
Paolo.

//////////////////////////
/cp
2013-06-19  Paolo Carlini  <paolo.carlini <at> oracle.com>

(Continue reading)

Jakub Jelinek | 19 Jun 2013 15:20
Picon
Favicon

[PATCH] Fix up gcc-{ar,nm,ranlib}

Hi!

If say /usr/bin/gcc-ar doesn't find /usr/≤target>/bin/ar (and a few others),
it gives up unless CROSS_DIRECTORY_STRUCTURE, while e.g. collect2 looks for
ld, nm etc. in $PATH.  The collect2.c snippet is:

  /* Search the compiler directories for `ld'.  We have protection against
     recursive calls in find_a_file.  */
  if (ld_file_name == 0)
    ld_file_name = find_a_file (&cpath, ld_suffixes[selected_linker]);
  /* Search the ordinary system bin directories
     for `ld' (if native linking) or `TARGET-ld' (if cross).  */
  if (ld_file_name == 0)
    ld_file_name = find_a_file (&path, full_ld_suffixes[selected_linker]);
where the difference between full_ld_suffixes and ld_suffixes is
exactly a concat (target_machine, "-", ld_suffixes[xxx], NULL);

Here is so far untested attempt to do that in gcc-{ar,nm,ranlib} too, ok if
bootstrap/regtest passes and testing shows it works (for 4.8 too, in 4.7 it
worked)?

2013-06-19  Jakub Jelinek  <jakub <at> redhat.com>

	* gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
	PERSONALITY in $PATH derived prefixes.

--- gcc/gcc-ar.c.jj	2013-01-11 09:02:55.000000000 +0100
+++ gcc/gcc-ar.c	2013-06-19 15:09:08.314935157 +0200
 <at>  <at>  -147,21 +147,17  <at>  <at>  main(int ac, char **av)
   exe_name = find_a_file (&target_path, PERSONALITY);
(Continue reading)

Richard Earnshaw | 19 Jun 2013 13:58
Favicon

Re: [ARM][Insn classification refactoring 2/N] Update instruction classification documentation

On 18/06/13 15:47, Sofiane Naci wrote:
> Hi,
>
> This patch updates the documentation for "type" attribute. It complements
> the changes proposed in the previous patch
>
> OK for trunk?
>
> -----
> Thanks
> Sofiane=
>

OK.


Gmane