On Wed, 25 Jun 2014, Vladimir Makarov wrote:
Maybe. But in this case LLVM did a right thing. The variable addressing was through a restrict pointer.
Ah, gcc implements (on purpose?) a weak version of restrict, where it only considers that 2 restrict pointers don't alias, whereas all other compilers assume that restrict pointers don't alias other non-derived pointers (see several PRs in bugzilla). I believe Richard recently added code that would make implementing the strong version of restrict easier. Maybe that's what is missing here?
-- Marc Glisse