From bb98212930721f223fb77f25c3c9e016640f9c9b Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 20 Sep 2021 22:04:35 +0200 Subject: [PATCH] avcodec/elbg: Mark ELBGContext as being unaliased by using av_restrict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This improves performance: For msvideo1, the performance improved by 4.8% when encoding the sample from the fate-vsynth1-msvideo1 test; when encoding the sample from fate-vsynth1-cinepak, performance improved by 2%. The compiler user was GCC 10 and the calls to encode2 have been timed. Reviewed-by: Tomas Härdin Signed-off-by: Andreas Rheinhardt --- libavcodec/elbg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/elbg.c b/libavcodec/elbg.c index 712c125a58..d97a7bc3f9 100644 --- a/libavcodec/elbg.c +++ b/libavcodec/elbg.c @@ -346,7 +346,7 @@ static void do_shiftings(ELBGContext *elbg) } } -static void do_elbg(ELBGContext *elbg, int *points, int numpoints, +static void do_elbg(ELBGContext *av_restrict elbg, int *points, int numpoints, int max_steps) { int *const size_part = elbg->size_part; @@ -419,7 +419,7 @@ static void do_elbg(ELBGContext *elbg, int *points, int numpoints, * If not, it calls do_elbg for a (smaller) random sample of the points in * points. */ -static void init_elbg(ELBGContext *elbg, int *points, int *temp_points, +static void init_elbg(ELBGContext *av_restrict elbg, int *points, int *temp_points, int numpoints, int max_steps) { int dim = elbg->dim; @@ -447,7 +447,7 @@ int avpriv_elbg_do(ELBGContext **elbgp, int *points, int dim, int numpoints, int *codebook, int num_cb, int max_steps, int *closest_cb, AVLFG *rand_state, uintptr_t flags) { - ELBGContext *const elbg = *elbgp ? *elbgp : av_mallocz(sizeof(*elbg)); + ELBGContext *const av_restrict elbg = *elbgp ? *elbgp : av_mallocz(sizeof(*elbg)); if (!elbg) return AVERROR(ENOMEM);