ref: e1f55e0441330c4ab0dc3cbb1bdc46e7816d3fa2
parent: 60ef6c073556b75fe46754a6ae5ca1008ffea8b4
author: James Zern <[email protected]>
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,