On 25/11/16 07:00 PM, Jochen Rollwagen wrote: > This commit modifies some pointer definitions in functions copying > memory corresponding to those in memcpy. > That should enable a compiler to produce better code (though i haven't > checked whether that's the case). Please always check that patches actually have an effect before submitting them. :) With gcc, the stripped radeon_accel.o and radeon_dri2.o object files are identical for me with and without this patch. With clang, the patch does seem to make the code generated for RADEONCopySwap slightly smaller, but I'm afraid I'm wary of applying this kind of micro-optimization without justification such as benchmark numbers showing significant gains. > @@ -128,13 +128,13 @@ int radeon_cs_space_remaining(ScrnInfoPtr pScrn) > return (info->cs->ndw - info->cs->cdw); > } > > -void RADEONCopySwap(uint8_t *dst, uint8_t *src, unsigned int size, int > swap) > +void RADEONCopySwap(uint8_t * __restrict dst, const uint8_t * > __restrict src, unsigned int size, int swap) > { > switch(swap) { > case RADEON_HOST_DATA_SWAP_32BIT: > { > - unsigned int *d = (unsigned int *)dst; > - unsigned int *s = (unsigned int *)src; > + unsigned int * __restrict d = (unsigned int *)dst; > + unsigned int * __restrict s = (unsigned int *)src; > unsigned int nwords = size >> 2; > > for (; nwords > 0; --nwords, ++d, ++s) BTW, this hunk wouldn't apply to current master, looks like it's on top of your previous patch removing the RADEON_HOST_DATA_SWAP_HDW case. Please always either make sure patches you submit apply to current master, or explicitly state dependencies on other patches. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer