Boost logo

Boost :

Subject: Re: [boost] Boost SIMD beta release
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2012-12-24 14:51:18


On December 24, 2012 8:16:13 PM "Domagoj Saric" <dsaritz_at_[hidden]> wrote:
>
> If we realize that protected memory
> systems have page-size-granularity which is much larger than any conceivable
> SIMD vector size it immediately follows that "overread" (reading outside of
> the specified range) of a maximum size of "SIMD-cardinal - 1" is always
> safe. Further more in a single threaded case or when you allocate your
> arrays with both their location and size aligned, overwrite is also always
> safe when you wrap the overwrite in a guard class that automatically aligns
> the array pointers/iterators and then simply restores any possibly
> overwritten elements in its destructor.

[snip]

Call me old-fashioned but this would be an abomination. Every memory
checking tool will righteously raise a red flag on such code. In some
cases the overread garbage can also affect the processing result, so it
cannot be used as a general solution. Even if you provide such
behavior, please, don't make it a default and make it very explicit.

I'm prepared to have a somewhat slower tail processing, it won't be a
deal-breaking slowdown anyway. And if it will, I will probably
overallocate memory and fill the tail with neutral data and avoid the
undefined behavior.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk