]> granicus.if.org Git - libvpx/commitdiff
Disable -ftrivial-auto-var-init= for hot code
authorVitaly Buka <vitalybuka@chromium.org>
Thu, 21 Nov 2019 02:08:14 +0000 (18:08 -0800)
committerVitaly Buka <vitalybuka@chromium.org>
Sat, 23 Nov 2019 02:12:18 +0000 (02:12 +0000)
Improves encode_time by 10% on FullStackTest.VP9KSVC_3SL_High and other
tests when -ftrivial-auto-var-init= is used.

vp9_pick_inter_mode can be called recursevely so multiple pred_buf is
neede. So alternative to attribute should be list of bufferes in
ThreadData or TileData.

Bug: 1020220, 977230
Change-Id: I939a468f88c2b5dd2ec235de7564b92bfaa356f5

vp9/encoder/vp9_pickmode.c

index 7f96ea2049453889b7c0e34ea5d237b420dbdcfc..9b2e48505293204b9e6a57f90dcf5012c21b5eae 100644 (file)
@@ -1719,9 +1719,9 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
   // process.
   // tmp[3] points to dst buffer, and the other 3 point to allocated buffers.
   PRED_BUFFER tmp[4];
-  DECLARE_ALIGNED(16, uint8_t, pred_buf[3 * 64 * 64]);
+  DECLARE_ALIGNED(16, uint8_t, pred_buf[3 * 64 * 64] VPX_UNINITIALIZED);
 #if CONFIG_VP9_HIGHBITDEPTH
-  DECLARE_ALIGNED(16, uint16_t, pred_buf_16[3 * 64 * 64]);
+  DECLARE_ALIGNED(16, uint16_t, pred_buf_16[3 * 64 * 64] VPX_UNINITIALIZED);
 #endif
   struct buf_2d orig_dst = pd->dst;
   PRED_BUFFER *this_mode_pred = NULL;