[FFmpeg-devel] [PATCH 1/4] lavc/vp9dsp: restrict vertical intra pointers

Rémi Denis-Courmont remi at remlab.net
Mon Jul 22 21:11:58 EEST 2024


This lets the compiler unroll ever so slightly better (at least in the
16x16 case for RISC-V GCC).
---
 libavcodec/vp9dsp_template.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/vp9dsp_template.c b/libavcodec/vp9dsp_template.c
index 9b11661704..5c4fb5d6e2 100644
--- a/libavcodec/vp9dsp_template.c
+++ b/libavcodec/vp9dsp_template.c
@@ -30,7 +30,7 @@
 // FIXME see whether we can merge parts of this (perhaps at least 4x4 and 8x8)
 // back with h264pred.[ch]
 
-static void vert_4x4_c(uint8_t *_dst, ptrdiff_t stride,
+static void vert_4x4_c(uint8_t *restrict _dst, ptrdiff_t stride,
                        const uint8_t *left, const uint8_t *_top)
 {
     pixel *dst = (pixel *) _dst;
@@ -44,7 +44,7 @@ static void vert_4x4_c(uint8_t *_dst, ptrdiff_t stride,
     AV_WN4PA(dst + stride * 3, p4);
 }
 
-static void vert_8x8_c(uint8_t *_dst, ptrdiff_t stride,
+static void vert_8x8_c(uint8_t *restrict _dst, ptrdiff_t stride,
                        const uint8_t *left, const uint8_t *_top)
 {
     pixel *dst = (pixel *) _dst;
@@ -61,7 +61,7 @@ static void vert_8x8_c(uint8_t *_dst, ptrdiff_t stride,
     }
 }
 
-static void vert_16x16_c(uint8_t *_dst, ptrdiff_t stride,
+static void vert_16x16_c(uint8_t *restrict _dst, ptrdiff_t stride,
                          const uint8_t *left, const uint8_t *_top)
 {
     pixel *dst = (pixel *) _dst;
@@ -82,7 +82,7 @@ static void vert_16x16_c(uint8_t *_dst, ptrdiff_t stride,
     }
 }
 
-static void vert_32x32_c(uint8_t *_dst, ptrdiff_t stride,
+static void vert_32x32_c(uint8_t *restrict _dst, ptrdiff_t stride,
                          const uint8_t *left, const uint8_t *_top)
 {
     pixel *dst = (pixel *) _dst;
-- 
2.45.2



More information about the ffmpeg-devel mailing list