Re: target specific option mismatch?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Matthias Kretz <kretz@xxxxxxxxxxxxxxxxxxxxxxxx> writes:

> I experience a miscompile with GCC 4.6.0 (#48616) and was trying to implement 
> a workaround in my library, but no success. The bug is connected to use of the 
> XOP instruction set and -ftree-vectorize. So I thought I can just disable one 
> or both of those in the function where the miscompile happens. But that 
> function is a member of a template class and thus inlined. Apparently that 
> leads to neither "#pragma GCC optimize/target" nor 
> "__attribute__((optimize/target))" changing anything, or is that another bug?
>
> Anyway this is what I got:
>
> #define VC_WORKAROUND __attribute__((optimize("no-tree-vectorize"),target("no-
> xop")))
>
> template<> inline Vector<T> &VC_WORKAROUND VectorBase<T>::operator>>=(const 
> VectorBase<T> &x)
> {
>     for_all_vector_entries(i,
>             d.m(i) >>= x.d.m(i);
>             );
>     return *static_cast<Vector<T> *>(this);
> }
>
> vector.tcc:286:1: sorry, unimplemented: inlining failed in call to 
> âVc::SSE::Vector<T>& Vc::SSE::VectorBase<T>::operator<<=(const 
> Vc::SSE::VectorBase<T>&) [with T = int]â: target specific option mismatch
>
>
> Any suggestions how to implement a workaround?

I have no suggestions for a workaround, but I don't think this should
fail with an error like this for a function that does not have the
always_inline attribute.  It should just not inline, and give a warning
with -Winline.  Please consider opening a bug report.  Thanks.

Ian



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux