From: Julian Seward Date: Wed, 11 Dec 2013 16:49:46 +0000 (+0000) Subject: Select expensive add/sub/cmp interpretations for blocks containing X-Git-Tag: svn/VALGRIND_3_10_0~679 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19f49b677b29dc6653c6d17e90dc9a7cfcc75fed;p=thirdparty%2Fvalgrind.git Select expensive add/sub/cmp interpretations for blocks containing Iop_GetMSBs8x16, since the presence of those usually implies PMOVMSKB instructions in the block, which can mean "inlined string operations". Reduces the noise level a lot in some icc12 -O2 generated sequences. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13757 --- diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c index d4b703c2b0..b654816815 100644 --- a/memcheck/mc_translate.c +++ b/memcheck/mc_translate.c @@ -5736,6 +5736,8 @@ static Bool isBogusAtom ( IRAtom* at ) return (/*32*/ n == 0xFEFEFEFFULL /*32*/ || n == 0x80808080ULL /*32*/ || n == 0x7F7F7F7FULL + /*32*/ || n == 0x7EFEFEFFULL + /*32*/ || n == 0x81010100ULL /*64*/ || n == 0xFFFFFFFFFEFEFEFFULL /*64*/ || n == 0xFEFEFEFEFEFEFEFFULL /*64*/ || n == 0x0000000000008080ULL @@ -5760,7 +5762,8 @@ static Bool checkForBogusLiterals ( /*FLAT*/ IRStmt* st ) case Iex_Const: return isBogusAtom(e); case Iex_Unop: - return isBogusAtom(e->Iex.Unop.arg); + return isBogusAtom(e->Iex.Unop.arg) + || e->Iex.Unop.op == Iop_GetMSBs8x16; case Iex_GetI: return isBogusAtom(e->Iex.GetI.ix); case Iex_Binop: