[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-15 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Target|x86_64-apple-darwin12   |x86_64-apple-darwin1*
   |x86_64-apple-darwin13   |
   Host|x86_64-apple-darwin12   |x86_64-apple-darwin1*
   |x86_64-apple-darwin13   |
  Build|x86_64-apple-darwin12   |x86_64-apple-darwin1*
   |x86_64-apple-darwin13   |

--- Comment #8 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 also on darwin12.

Also on darwin10: see
https://gcc.gnu.org/ml/gcc-testresults/2014-06/msg01321.html.


[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-14 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

--- Comment #7 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Could this PR get some attention please? To have an idea about how fun it is,
look at https://gcc.gnu.org/ml/gcc-testresults/2014-06/msg01182.html.


[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-06 Thread hp at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

Hans-Peter Nilsson hp at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hp at gcc dot gnu.org

--- Comment #6 from Hans-Peter Nilsson hp at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #5)
 The following patch fixes the failures (not counting new ones:
 g++.dg/debug/dwarf2/imported-decl-2.C and g++.dg/tls/diag-1.C).

Is the g++.dg/tls/diag-1.C the same as in PR61436?
Seems likely as darwin is IIUC an emutls target.


[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-04 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr ---
(In reply to Iain Sandoe from comment #4)
 3.

 Anyway, assuming that the intention is to unwrap the indirection from the call
 - something like: ...

The following patch fixes the failures (not counting new ones:
g++.dg/debug/dwarf2/imported-decl-2.C and g++.dg/tls/diag-1.C).

--- ../_clean/gcc/config/i386/i386.c2014-06-04 00:42:24.0 +0200
+++ gcc/config/i386/i386.c2014-06-04 15:05:42.0 +0200
@@ -38898,7 +38898,9 @@ x86_output_mi_thunk (FILE *file,
 {
   if (sibcall_insn_operand (fnaddr, word_mode))
 {
-  tmp = gen_rtx_CALL (VOIDmode, fnaddr, const0_rtx);
+  fnaddr = XEXP (DECL_RTL (function), 0);
+  tmp = gen_rtx_MEM (QImode, fnaddr);
+  tmp = gen_rtx_CALL (VOIDmode, tmp, const0_rtx);
   tmp = emit_call_insn (tmp);
   SIBLING_CALL_P (tmp) = 1;
 }


[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-02 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

Iain Sandoe iains at gcc dot gnu.org changed:

   What|Removed |Added

 Target|x86_64-apple-darwin13   |x86_64-apple-darwin12
   ||x86_64-apple-darwin13
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-06-02
   Host|x86_64-apple-darwin13   |x86_64-apple-darwin12
   ||x86_64-apple-darwin13
 Ever confirmed|0   |1
  Build|x86_64-apple-darwin13   |x86_64-apple-darwin12
   ||x86_64-apple-darwin13

--- Comment #1 from Iain Sandoe iains at gcc dot gnu.org ---
also on darwin12.


[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.10.0

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
This is a google branch rev.


[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-02 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

--- Comment #3 from Iain Sandoe iains at gcc dot gnu.org ---
(In reply to Richard Biener from comment #2)
 This is a google branch rev.

211088 is OK the revision that triggers the fail is
http://gcc.gnu.org/viewcvs/gcc?view=revisionrevision=211089


[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

2014-06-02 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

Iain Sandoe iains at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mrs at gcc dot gnu.org

--- Comment #4 from Iain Sandoe iains at gcc dot gnu.org ---
some analysis:

1. The codepath:

 predicate that can distinguish between frame and non-frame memory.
 For our purposes here, we can get away with (ab)using a jump pattern,
 because we're going to do no optimization.  */
  if (MEM_P (fnaddr))
{
  if (sibcall_insn_operand (fnaddr, word_mode))
{

does not appear to be triggered for x86_64-linux (i put an assert in which was
not triggered in either a bootstrap or complete c/c++ testsuite run).



2.

taking say pr58585.c as an example.

struct A
{
  virtual void foo() {}
  void bar();
};
void A::bar() { foo(); }


Linux and Darwin both mark foo() as weak.

However,
Linux says that targetm.binds_local_p (foo) == true.
Darwin says it's false.

So Darwin takes the code-path above and Linux doesn't.  Right now, I'm not sure
which is the right claim on the binds_local_p.

3.

Anyway, assuming that the intention is to unwrap the indirection from the call
- something like:

  if (MEM_P (fnaddr))
{
  if (sibcall_insn_operand (fnaddr, word_mode))
{
  fnaddr = XEXP (DECL_RTL (function), 0);
  tmp = gen_rtx_MEM (QImode, fnaddr);
  tmp = gen_rtx_CALL (VOIDmode, tmp, const0_rtx);
  tmp = emit_call_insn (tmp);
  SIBLING_CALL_P (tmp) = 1;
}
  else
emit_jump_insn (gen_indirect_jump (fnaddr));
}

seems more like what was intended.

However, I really think we need to explain the difference in treatment.

Mike? amy thoughts?