public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix
@ 2015-01-12 13:40 trippels at gcc dot gnu.org
  2015-01-12 14:56 ` [Bug middle-end/64568] " rguenth at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-01-12 13:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

            Bug ID: 64568
           Summary: [5 Regression] error: invalid reference prefix
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org

Running the Boost testsuite with -march=westmere shows:

 % g++ -O3 -finline-functions -std=c++11 -march=westmere test21.ii
In file included from ../libs/numeric/ublas/test/test2.hpp:22:0,
                 from ../libs/numeric/ublas/test/test21.cpp:13:
../boost/numeric/ublas/blas.hpp: In function ‘void
boost::numeric::ublas::blas_1::rot(const T1&, V1&, const T2&, V2&) [with T1 =
std::complex<double>; V1 = boost::numeric::ublas::vector<std::complex<double>
>; T2 = std::complex<double>; V2 =
boost::numeric::ublas::vector<std::complex<double> >]’:
../boost/numeric/ublas/blas.hpp:158:14: error: invalid reference prefix
         void rot (const T1 &t1, V1 &v1, const T2 &t2, V2 &v2) 
              ^
MEM[base: _150, offset: 0B]
cc1plus: note: in statement
# .MEM_157 = VDEF <.MEM_82>
REALPART_EXPR <MEM[base: _150, offset: 0B]> = _112;
../boost/numeric/ublas/blas.hpp:158:14: error: invalid reference prefix
MEM[base: _150, offset: 0B]
In file included from ../boost/numeric/ublas/expression_types.hpp:16:0,
                 from ../boost/numeric/ublas/vector_expression.hpp:16,
                 from ../boost/numeric/ublas/vector.hpp:22,
                 from ../libs/numeric/ublas/test/test2.hpp:18,
                 from ../libs/numeric/ublas/test/test21.cpp:13:
../boost/numeric/ublas/functional.hpp:199:13: note: in statement
             t1 = t2;
             ^
# .MEM_160 = VDEF <.MEM_157>
IMAGPART_EXPR <MEM[base: _150, offset: 0B]> = _114;
In file included from ../libs/numeric/ublas/test/test2.hpp:22:0,
                 from ../libs/numeric/ublas/test/test21.cpp:13:
../boost/numeric/ublas/blas.hpp:158:14: error: invalid reference prefix
         void rot (const T1 &t1, V1 &v1, const T2 &t2, V2 &v2) 
              ^
MEM[base: _30, offset: 0B]
cc1plus: note: in statement
# .MEM_194 = VDEF <.MEM_120>
REALPART_EXPR <MEM[base: _30, offset: 0B]> = _143;
../boost/numeric/ublas/blas.hpp:158:14: error: invalid reference prefix
MEM[base: _30, offset: 0B]
In file included from ../boost/numeric/ublas/expression_types.hpp:16:0,
                 from ../boost/numeric/ublas/vector_expression.hpp:16,
                 from ../boost/numeric/ublas/vector.hpp:22,
                 from ../libs/numeric/ublas/test/test2.hpp:18,
                 from ../libs/numeric/ublas/test/test21.cpp:13:
../boost/numeric/ublas/functional.hpp:199:13: note: in statement
             t1 = t2;
             ^
# .MEM_166 = VDEF <.MEM_194>
IMAGPART_EXPR <MEM[base: _30, offset: 0B]> = _145;
In file included from ../libs/numeric/ublas/test/test2.hpp:22:0,
                 from ../libs/numeric/ublas/test/test21.cpp:13:
../boost/numeric/ublas/blas.hpp:158:14: internal compiler error: verify_gimple
failed
         void rot (const T1 &t1, V1 &v1, const T2 &t2, V2 &v2) 
              ^
0xcf4217 verify_gimple_in_cfg(function*, bool)
        ../../gcc/gcc/tree-cfg.c:5056
0xbf6b1f execute_function_todo
        ../../gcc/gcc/passes.c:1946
0xbf75c3 execute_todo
        ../../gcc/gcc/passes.c:2003
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reducing...
>From gcc-bugs-return-472807-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Jan 12 13:41:09 2015
Return-Path: <gcc-bugs-return-472807-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 16536 invoked by alias); 12 Jan 2015 13:41:09 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 16504 invoked by uid 48); 12 Jan 2015 13:41:04 -0000
From: "rv at rasmusvillemoes dot dk" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/64567] missed optimization: redundant test before clearing bit(s)
Date: Mon, 12 Jan 2015 13:41:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: tree-optimization
X-Bugzilla-Version: unknown
X-Bugzilla-Keywords:
X-Bugzilla-Severity: enhancement
X-Bugzilla-Who: rv at rasmusvillemoes dot dk
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-64567-4-IfPdS1FYgk@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-64567-4@http.gcc.gnu.org/bugzilla/>
References: <bug-64567-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-01/txt/msg00801.txt.bz2
Content-length: 389

https://gcc.gnu.org/bugzilla/show_bug.cgi?idd567

--- Comment #2 from Rasmus Villemoes <rv at rasmusvillemoes dot dk> ---
(In reply to Andreas Schwab from comment #1)
> This transformation is incorrect if the lvalue may be pointing to a
> read-only object.

True. And one may also incur an extra cache penalty if the cache line
containing foo was already held shared but not exclusive.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
@ 2015-01-12 14:56 ` rguenth at gcc dot gnu.org
  2015-01-12 14:59 ` rguenth at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-01-12 14:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2015-01-12
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org
   Target Milestone|---                         |5.0
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm, indeed we shouldn't subset TARGET_MEM_REFs.  Mine (waiting for a
testcase).


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
  2015-01-12 14:56 ` [Bug middle-end/64568] " rguenth at gcc dot gnu.org
@ 2015-01-12 14:59 ` rguenth at gcc dot gnu.org
  2015-01-12 15:26 ` trippels at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-01-12 14:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Index: gcc/tree-ssa-forwprop.c
===================================================================
--- gcc/tree-ssa-forwprop.c     (revision 219446)
+++ gcc/tree-ssa-forwprop.c     (working copy)
@@ -2281,7 +2281,9 @@ pass_forwprop::execute (function *fun)
              if (single_imm_use (lhs, &use_p, &use_stmt)
                  && gimple_store_p (use_stmt)
                  && !gimple_has_volatile_ops (use_stmt)
-                 && is_gimple_assign (use_stmt))
+                 && is_gimple_assign (use_stmt)
+                 && (TREE_CODE (gimple_assign_lhs (use_stmt))
+                     != TARGET_MEM_REF))
                {
                  tree use_lhs = gimple_assign_lhs (use_stmt);
                  tree new_lhs = build1 (REALPART_EXPR,

probably fixes it.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
  2015-01-12 14:56 ` [Bug middle-end/64568] " rguenth at gcc dot gnu.org
  2015-01-12 14:59 ` rguenth at gcc dot gnu.org
@ 2015-01-12 15:26 ` trippels at gcc dot gnu.org
  2015-01-13  8:32 ` rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-01-12 15:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Here's a target-independent testcase:

 % cat test21.ii
namespace std
{
typedef long unsigned size_t;
template <typename> class complex;
template <typename _Tp> complex<_Tp> operator+(complex<_Tp>, complex<_Tp>)
{
  complex<_Tp> a = 0;
  a += 0;
  return a;
}
template <> struct complex<double>
{
  complex (int __i) : _M_value{ __i } {}
  int imag ();
  void operator+=(complex __z) { _M_value = __z.imag (); }
  _Complex double _M_value;
};
}
class A
{
public:
  A (int);
  std::complex<double> &operator[](int i) { return data_[i]; }
  std::complex<double> *data_;
};
struct B
{
  static std::complex<double>
  apply (std::complex<double> t1, std::complex<double> t2)
  {
    return t1 + t2;
  }
};
template <class T1, class> struct C
{
  static void
  apply (T1 t1, std::complex<double> t2)
  {
    t1 = t2;
  }
};
template <class E> class D
{
public:
  E operator()();
};
class G : public D<G>
{
public:
  typedef std::complex<double> value_type;
  value_type operator()(int) { return B::apply (0, 0); }
};
template <class E1, class E2> G operator+(D<E1>, D<E2>);
template <template <class, class> class F, class V, class E>
void
indexing_vector_assign (V v, D<E> e)
{
  for (int i;; ++i)
    F<typename V::reference, typename E::value_type>::apply (v (i), e ()(0));
}
template <template <class, class> class F, class V, class E>
void
vector_assign (V v, D<E> e, int)
{
  indexing_vector_assign<F> (v, e);
}
template <template <class, class> class F, class V, class E>
void
vector_assign (V v, D<E> e)
{
  vector_assign<F> (v, e, typename V::storage_category ());
}
class H : public D<int>
{
public:
  typedef std::complex<double> &reference;
  typedef int storage_category;
  H (int);
  template <class AE> H (D<AE> ae) : data_ (0)
  {
    vector_assign<C> (*this, ae);
  }
  A
  data ()
  {
    return data_;
  }
  reference operator()(int i) { return data ()[i]; }
  A data_;
};
template <class T1, class V1, class T2, class V2>
void
rot (T1, V1 v1, T2, V2 v2)
{
  H (v1 + v2);
}
template <class, unsigned long> struct F
{
  void test ();
};
template struct F<H, 3>;
template <class V, std::size_t N>
void
F<V, N>::test ()
{
  V b (0), c (0);
  rot (0, b, 0, c);
}

 % g++ -O2 -std=c++11 test21.ii
test21.ii: In member function ‘void F< <template-parameter-1-1>, <anonymous>
>::test() [with <template-parameter-1-1> = H; long unsigned int <anonymous> =
3ul]’:
test21.ii:104:1: error: invalid reference prefix
 F<V, N>::test ()
 ^
MEM[base: _25, offset: 0B]
cc1plus: note: in statement
# .MEM_8 = VDEF <.MEM_30>
REALPART_EXPR <MEM[base: _25, offset: 0B]> = _18;
test21.ii:104:1: error: invalid reference prefix
MEM[base: _25, offset: 0B]
test21.ii:39:5: note: in statement
     t1 = t2;
     ^
# .MEM_33 = VDEF <.MEM_8>
IMAGPART_EXPR <MEM[base: _25, offset: 0B]> = 0.0;
test21.ii:104:1: internal compiler error: verify_gimple failed
 F<V, N>::test ()
 ^
0x10a34f8f verify_gimple_in_cfg(function*, bool)
        ../../gcc/gcc/tree-cfg.c:5056
0x108f1b53 execute_function_todo
        ../../gcc/gcc/passes.c:1946
0x108f2793 do_per_function
        ../../gcc/gcc/passes.c:1638
0x108f2a67 execute_todo
        ../../gcc/gcc/passes.c:2003
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug re
>From gcc-bugs-return-472823-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Jan 12 15:26:43 2015
Return-Path: <gcc-bugs-return-472823-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 779 invoked by alias); 12 Jan 2015 15:26:43 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 677 invoked by uid 48); 12 Jan 2015 15:26:39 -0000
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/64513] [4.8/4.9/5 Regression] ICE: in maybe_record_trace_start, at dwarf2cfi.c:2231 with -mstack-arg-probe
Date: Mon, 12 Jan 2015 15:26:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: target
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: ice-on-valid-code
X-Bugzilla-Severity: normal
X-Bugzilla-Who: jakub at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.8.5
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status cf_reconfirmed_on cc everconfirmed
Message-ID: <bug-64513-4-DZT0vjrhOx@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-64513-4@http.gcc.gnu.org/bugzilla/>
References: <bug-64513-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-01/txt/msg00817.txt.bz2
Content-length: 562

https://gcc.gnu.org/bugzilla/show_bug.cgi?idd513

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-01-12
                 CC|                            |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r179553.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2015-01-12 15:26 ` trippels at gcc dot gnu.org
@ 2015-01-13  8:32 ` rguenth at gcc dot gnu.org
  2015-01-13  8:32 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-01-13  8:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Tue Jan 13 08:32:13 2015
New Revision: 219520

URL: https://gcc.gnu.org/viewcvs?rev=219520&root=gcc&view=rev
Log:
2014-01-13  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/64568
    * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
    release defs of removed stmts, avoid splitting TARGET_MEM_REFs.

    * g++.dg/torture/pr64568.C: New testcase.

Added:
    trunk/gcc/testsuite/g++.dg/torture/pr64568.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-forwprop.c


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2015-01-13  8:32 ` rguenth at gcc dot gnu.org
@ 2015-01-13  8:32 ` rguenth at gcc dot gnu.org
  2015-01-16  9:01 ` trippels at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-01-13  8:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2015-01-13  8:32 ` rguenth at gcc dot gnu.org
@ 2015-01-16  9:01 ` trippels at gcc dot gnu.org
  2015-01-16 10:52 ` trippels at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-01-16  9:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
I still happens running the Boost testsuite on ppc64:


trippels@gcc2-power8 status % g++ -c -O3 -std=c++11 test22.ii
In file included from ../libs/numeric/ublas/test/test2.hpp:22:0,
                 from ../libs/numeric/ublas/test/test22.cpp:13:
../boost/numeric/ublas/blas.hpp: In function ‘M&
boost::numeric::ublas::blas_2::hr2(M&, const T&, const V1&, const V2&) [with M
= boost::numeric::ublas::matrix<std::complex<double> >; T =
std::complex<double>; V1 = boost::numeric::ublas::vector<std::complex<double>
>; V2 = boost::numeric::ublas::vector<std::complex<double> >]’:
../boost/numeric/ublas/blas.hpp:330:13: error: invalid reference prefix
         M & hr2 (M &m, const T &t, const V1 &v1, const V2 &v2)
             ^
MEM[base: _216, index: ivtmp.1531_157, offset: 0]
cc1plus: note: in statement
# VUSE <.MEM_156>
_158 = IMAGPART_EXPR <MEM[base: _216, index: ivtmp.1531_157, offset: 0]>;
../boost/numeric/ublas/blas.hpp:330:13: error: invalid reference prefix
MEM[base: _216, index: ivtmp.1531_157, offset: 0]
cc1plus: note: in statement
# VUSE <.MEM_156>
_91 = REALPART_EXPR <MEM[base: _216, index: ivtmp.1531_157, offset: 0]>;
../boost/numeric/ublas/blas.hpp:330:13: internal compiler error: verify_gimple
failed
0x10a48a6f verify_gimple_in_cfg(function*, bool)
        ../../gcc/gcc/tree-cfg.c:5069
0x10903e53 execute_function_todo
        ../../gcc/gcc/passes.c:1955
0x10904a93 do_per_function
        ../../gcc/gcc/passes.c:1647
0x10904d67 execute_todo
        ../../gcc/gcc/passes.c:2012
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.


Reducing...
>From gcc-bugs-return-473462-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Jan 16 09:08:10 2015
Return-Path: <gcc-bugs-return-473462-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 24665 invoked by alias); 16 Jan 2015 09:08:09 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 24620 invoked by uid 48); 16 Jan 2015 09:08:04 -0000
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/64622] convoluted loop codegen for __strcspn_c1
Date: Fri, 16 Jan 2015 09:08:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: tree-optimization
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: missed-optimization
X-Bugzilla-Severity: normal
X-Bugzilla-Who: rguenth at gcc dot gnu.org
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-64622-4-ZPKtlxrV9P@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-64622-4@http.gcc.gnu.org/bugzilla/>
References: <bug-64622-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-01/txt/msg01456.txt.bz2
Content-length: 170

https://gcc.gnu.org/bugzilla/show_bug.cgi?idd622

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
That's indeed more clever "loop header copying".


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2015-01-16  9:01 ` trippels at gcc dot gnu.org
@ 2015-01-16 10:52 ` trippels at gcc dot gnu.org
  2015-01-16 13:26 ` rguenth at gcc dot gnu.org
  2015-01-16 15:50 ` trippels at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-01-16 10:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

--- Comment #7 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
trippels@gcc2-power8 status % cat test22.ii
namespace std
{
typedef long unsigned size_t;
}
class H;
namespace std
{
template <typename> struct complex;
template <typename _Tp>
complex<_Tp> operator+(complex<_Tp> &__x, complex<_Tp> __y)
{
  complex<_Tp> a = __x;
  a += __y;
  return a;
}
template <> struct complex<double>
{
  int
  imag ()
  {
    return __imag__ _M_value;
  }
  void operator+=(complex __z) { _M_value += _M_value; _M_value  += __z.imag
(); }
  _Complex double _M_value;
};
}
struct A
{
  typedef std::complex<double> &const_reference;
};
class B
{
public:
  B (int);
  std::complex<double> &operator[](int i) { return data_[i]; }
  std::complex<double> *data_;
};
struct C
{
  static std::complex<double>
  apply (A::const_reference t1, std::complex<double> t2)
  {
    return t1 + t2;
  }
  typedef std::complex<double> result_type;
};
template <class T1, class> struct D
{
  static void
  apply (T1 t1, std::complex<double> t2)
  {
    t1 = t2;
  }
};
class ublas_expression
{
public:
  ~ublas_expression ();
};
template <class> class F
{
};
template <class E> class matrix_expression : ublas_expression
{
public:
  E &operator()() {}
};
class I : public F<int>
{
public:
  typedef int value_type;
  I (int);
};
template <class E1, class E2> matrix_expression<int> outer_prod (F<E1>, F<E2>);
template <class E1, class F> class J : public matrix_expression<J<E1, F> >
{
public:
  typedef typename F::result_type value_type;
  value_type operator()(int i, int)
  {
    return F::apply (e1_ (i, 0), e2_ (0, 0));
  }
  E1 e1_;
  E1 e2_;
};
template <class E1, class E2>
J<H, C> operator+(matrix_expression<E1>, matrix_expression<E2>);
template <template <class, class> class F, class M, class E>
void
indexing_matrix_assign (M m, matrix_expression<E> e, int)
{
  for (int i; i; ++i)
    F<typename M::reference, typename E::value_type>::apply (m (0, 0),
                                                             e ()(i, 0));
}
template <template <class, class> class F, class, class M, class E, class C>
void
matrix_assign (M m, matrix_expression<E> e, int, C)
{
  indexing_matrix_assign<F> (m, e, 0);
}
template <template <class, class> class F, class M, class E>
void
matrix_assign (M m, matrix_expression<E> e)
{
  matrix_assign<F, int> (m, e, 0, typename M::orientation_category ());
}
class H : matrix_expression<int>
{
public:
  typedef std::complex<double> &reference;
  typedef int orientation_category;
  H (int, int) : data_ (0) {}
  template <class AE> H (matrix_expression<AE> ae) : data_ (0)
  {
    matrix_assign<D> (*this, ae);
  }
  B &
  data ()
  {
  }
  std::complex<double> &operator()(int i, int) { return data ()[i]; }
  void operator+=(matrix_expression ae) { H (*this + ae); }
  B data_;
};
template <class M, class T, class V1, class V2>
void
sr2 (M m, T, V1 v1, V2 v2)
{
  m += outer_prod (v2, v1);
}
template <class, class, unsigned long> struct G
{
  void test ();
};
template struct G<I, H, 3>;
template <class V, class M, std::size_t N>
void
G<V, M, N>::test ()
{
  V b (0), c (0);
  M m (0, 0);
  sr2 (m, typename V::value_type (), b, c);
}

trippels@gcc2-power8 status % g++ -c -O2 -std=c++11 test22.ii
test22.ii: In member function ‘void G< <template-parameter-1-1>,
<template-parameter-1-2>, <anonymous> >::test() [with <template-parameter-1-1>
= I; <template-parameter-1-2> = H; long unsigned int <anonymous> = 3ul]’:
test22.ii:139:1: error: invalid reference prefix
 G<V, M, N>::test ()
 ^
MEM[base: _44, offset: 0]
cc1plus: note: in statement
# VUSE <.MEM_59>
_26 = IMAGPART_EXPR <MEM[base: _44, offset: 0]>;
test22.ii:139:1: error: invalid reference prefix
MEM[base: _44, offset: 0]
cc1plus: note: in statement
# VUSE <.MEM_59>
_51 = REALPART_EXPR <MEM[base: _44, offset: 0]>;
test22.ii:139:1: internal compiler error: verify_gimple failed
>From gcc-bugs-return-473483-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Jan 16 10:55:55 2015
Return-Path: <gcc-bugs-return-473483-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 24720 invoked by alias); 16 Jan 2015 10:55:55 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 24583 invoked by uid 48); 16 Jan 2015 10:55:51 -0000
From: "tschwinge at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libgomp/64625] ___OFFLOAD_TABLE__ symbol not produced on x86_64 darwin
Date: Fri, 16 Jan 2015 10:55:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: libgomp
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords: openacc, openmp
X-Bugzilla-Severity: normal
X-Bugzilla-Who: tschwinge at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P1
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 5.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: keywords priority cc target_milestone
Message-ID: <bug-64625-4-Z4WtmrBbT8@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-64625-4@http.gcc.gnu.org/bugzilla/>
References: <bug-64625-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-01/txt/msg01477.txt.bz2
Content-length: 1317

https://gcc.gnu.org/bugzilla/show_bug.cgi?idd625

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |openacc, openmp
           Priority|P3                          |P1
                 CC|                            |andrey.turetskiy at gmail dot com,
                   |                            |bernds at gcc dot gnu.org,
                   |                            |iverbin at gmail dot com,
                   |                            |kyukhin at gcc dot gnu.org
   Target Milestone|---                         |5.0

--- Comment #3 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
In fact, the __OFFLOAD_TABLE__ symbol (formerly known as __OPENMP_TARGET__)
should be completely removed, as it's unused.  We settled on a different scheme
for passing this data.

We can't remove it from the libgomp OpenMP target interfaces (so, just pass
NULL for those, and remove its documentation in source code comments), because
that'd be an ABI change requiring a new symbol version, but we can remove it
from the libgomp OpenACC interfaces (ABI change still possible now, before the
5.0 release, thus setting P1).


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2015-01-16 10:52 ` trippels at gcc dot gnu.org
@ 2015-01-16 13:26 ` rguenth at gcc dot gnu.org
  2015-01-16 15:50 ` trippels at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-01-16 13:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug middle-end/64568] [5 Regression] error: invalid reference prefix
  2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2015-01-16 13:26 ` rguenth at gcc dot gnu.org
@ 2015-01-16 15:50 ` trippels at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-01-16 15:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64568

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dcb314 at hotmail dot com

--- Comment #10 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
*** Bug 64630 has been marked as a duplicate of this bug. ***


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-01-16 15:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-12 13:40 [Bug middle-end/64568] New: [5 Regression] error: invalid reference prefix trippels at gcc dot gnu.org
2015-01-12 14:56 ` [Bug middle-end/64568] " rguenth at gcc dot gnu.org
2015-01-12 14:59 ` rguenth at gcc dot gnu.org
2015-01-12 15:26 ` trippels at gcc dot gnu.org
2015-01-13  8:32 ` rguenth at gcc dot gnu.org
2015-01-13  8:32 ` rguenth at gcc dot gnu.org
2015-01-16  9:01 ` trippels at gcc dot gnu.org
2015-01-16 10:52 ` trippels at gcc dot gnu.org
2015-01-16 13:26 ` rguenth at gcc dot gnu.org
2015-01-16 15:50 ` trippels at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).