From: Julian Seward Date: Mon, 21 Mar 2005 00:27:41 +0000 (+0000) Subject: Track Vex API (semantics) changes in rev 1061: introduction of IRStmt_NoOp. X-Git-Tag: svn/VALGRIND_3_0_0~922 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1a3994582e8b3c4f00154b66bbd3afe24232f79;p=thirdparty%2Fvalgrind.git Track Vex API (semantics) changes in rev 1061: introduction of IRStmt_NoOp. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3396 --- diff --git a/addrcheck/ac_main.c b/addrcheck/ac_main.c index 93ae96ea70..e93981aad8 100644 --- a/addrcheck/ac_main.c +++ b/addrcheck/ac_main.c @@ -1007,7 +1007,7 @@ IRBB* TL_(instrument)(IRBB* bb_in, VexGuestLayout* layout, IRType hWordTy ) for (i = 0; i < bb_in->stmts_used; i++) { st = bb_in->stmts[i]; - if (!st) continue; + tl_assert(st); /* Examine each stmt in turn to figure out if it needs to be preceded by a memory access check. If so, collect up the @@ -1061,6 +1061,7 @@ IRBB* TL_(instrument)(IRBB* bb_in, VexGuestLayout* layout, IRType hWordTy ) } break; + case Ist_NoOp: case Ist_IMark: case Ist_MFence: break; diff --git a/cachegrind/cg_main.c b/cachegrind/cg_main.c index 03feacb949..d6e18ee2e4 100644 --- a/cachegrind/cg_main.c +++ b/cachegrind/cg_main.c @@ -384,9 +384,6 @@ BB_info* get_BB_info(IRBB* bbIn, Addr origAddr, Bool* bbSeenBefore) return bbInfo; } -// XXX: remove eventually -#define Ist_Nop 99 - static void handleOneStatement(IRTypeEnv* tyenv, IRBB* bbOut, IRStmt* st, Addr* instrAddr, UInt* instrLen, @@ -394,7 +391,7 @@ void handleOneStatement(IRTypeEnv* tyenv, IRBB* bbOut, IRStmt* st, UInt* dataSize) { switch (st->tag) { - case Ist_Nop: + case Ist_NoOp: break; case Ist_IMark: @@ -573,15 +570,6 @@ IRBB* TL_(instrument) ( IRBB* bbIn, VexGuestLayout* layout, IRType hWordTy ) UInt instrLen; IRExpr *loadAddrExpr, *storeAddrExpr; - // Add Nops - // XXX: remove eventually - IRStmt xxx = { Ist_Nop }; - IRStmt* myNOP = &xxx; - for (i = 0; i < bbIn->stmts_used; i++) { - st = bbIn->stmts[i]; - if (!st) bbIn->stmts[i] = myNOP; - } - /* Set up BB */ bbOut = emptyIRBB(); bbOut->tyenv = dopyIRTypeEnv(bbIn->tyenv); diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c index 7de3e06dc2..5dc79be613 100644 --- a/memcheck/mc_translate.c +++ b/memcheck/mc_translate.c @@ -2371,6 +2371,7 @@ static Bool checkForBogusLiterals ( /*FLAT*/ IRStmt* st ) || isBogusAtom(st->Ist.STle.data); case Ist_Exit: return isBogusAtom(st->Ist.Exit.guard); + case Ist_NoOp: case Ist_IMark: case Ist_MFence: return False; @@ -2411,7 +2412,7 @@ IRBB* TL_(instrument) ( IRBB* bb_in, VexGuestLayout* layout, IRType hWordTy ) for (i = 0; i < bb_in->stmts_used; i++) { st = bb_in->stmts[i]; - if (!st) continue; + tl_assert(st); tl_assert(isFlatIRStmt(st)); @@ -2465,6 +2466,7 @@ IRBB* TL_(instrument) ( IRBB* bb_in, VexGuestLayout* layout, IRType hWordTy ) complainIfUndefined( &mce, st->Ist.Exit.guard ); break; + case Ist_NoOp: case Ist_IMark: case Ist_MFence: break;