Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2018-11-05 12:45:15 +0300
committerJanne Grunau <janne-vlc@jannau.net>2018-11-21 23:58:11 +0300
commit12e0c9055b2b05ffe12a69d77fa3e1c28f2f7e44 (patch)
treeb57a7ae82c8ec079df92762fa1d4385e3057bbb2
parent241dafa0454e02e1af7a85f08c6465357402f710 (diff)
arm64: Work around a clang/LLVM misoptimization
This avoids a misoptimization in clang, https://bugs.llvm.org/show_bug.cgi?id=39550, where the root cause has been around for a number of years, but a change in LLVM 6.0 allowed for better optimizations, exposing this bug. This bug is on good track to be fixed in LLVM for the 8.0 release and hopefully also for backporting into 7.0.1. It is however present in 6.0, 6.0.1 and 7.0, and other downstream users such as Xcode 10.0/10.1.
-rw-r--r--src/ref_mvs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ref_mvs.c b/src/ref_mvs.c
index 9c749a9..51fcbc8 100644
--- a/src/ref_mvs.c
+++ b/src/ref_mvs.c
@@ -301,8 +301,8 @@ static INLINE int is_global_mv_block(const MB_MODE_INFO *const mbmi,
const BLOCK_SIZE bsize = mbmi->sb_type;
const int block_size_allowed =
AOMMIN(block_size_wide[bsize], block_size_high[bsize]) >= 8;
- return (mode == GLOBALMV || mode == GLOBAL_GLOBALMV) && type > TRANSLATION &&
- block_size_allowed;
+ return block_size_allowed && type > TRANSLATION &&
+ (mode == GLOBALMV || mode == GLOBAL_GLOBALMV);
}
typedef struct {