shithub: libvpx

Download patch

ref: e1f55e0441330c4ab0dc3cbb1bdc46e7816d3fa2
parent: 60ef6c073556b75fe46754a6ae5ca1008ffea8b4
author: James Zern <jzern@google.com>
date: Mon Nov 24 14:27:07 EST 2014

vp9_reader: reorder struct members

improves locality of reference

Change-Id: Ia4d55bb8c98e479528d88303fa35e8c74fbf939d

--- a/vp9/decoder/vp9_reader.h
+++ b/vp9/decoder/vp9_reader.h
@@ -30,14 +30,15 @@
 #define BD_VALUE_SIZE ((int)sizeof(BD_VALUE) * CHAR_BIT)
 
 typedef struct {
-  const uint8_t *buffer_end;
-  const uint8_t *buffer;
-  uint8_t clear_buffer[sizeof(BD_VALUE) + 1];
+  // Be careful when reordering this struct, it may impact the cache negatively.
   BD_VALUE value;
-  int count;
   unsigned int range;
+  int count;
+  const uint8_t *buffer_end;
+  const uint8_t *buffer;
   vpx_decrypt_cb decrypt_cb;
   void *decrypt_state;
+  uint8_t clear_buffer[sizeof(BD_VALUE) + 1];
 } vp9_reader;
 
 int vp9_reader_init(vp9_reader *r,