compiler/passes/normalize.cpp
//
// This function partially un-does normalization
// so that reduce intents specs (see above) don't get messed up.
//
This function partially un-does normalization
so that reduce intents specs  don't get messed up.
This function partially un - does normalization so that reduce intents specs don ' t get messed up .
static void restoreReduceIntentSpecCall(SymExpr* riSpec, CallExpr* call) {
  Symbol* temp = riSpec->symbol();
  INT_ASSERT(temp->firstSymExpr()      == riSpec);
  INT_ASSERT(temp->lastSymExpr()->next == call);
  INT_ASSERT(riSpec->symbolSymExprsNext == temp->lastSymExpr());
  temp->defPoint->remove();
  call->parentExpr->remove();
  riSpec->replace(call->remove());
}
static void restoreReduceIntentSpecCall ( SymExpr * riSpec , CallExpr * call ) { Symbol * temp = riSpec -> symbol ( ) ; INT_ASSERT ( temp -> firstSymExpr ( ) == riSpec ) ; INT_ASSERT ( temp -> lastSymExpr ( ) -> next == call ) ; INT_ASSERT ( riSpec -> symbolSymExprsNext == temp -> lastSymExpr ( ) ) ; temp -> defPoint -> remove ( ) ; call -> parentExpr -> remove ( ) ; riSpec -> replace ( call -> remove ( ) ) ; }
This function partially un-does normalization
so that reduce intents specs (see above) don't get messed up.
This function partially un - does normalization so that reduce intents specs ( see above ) don ' t get messed up .
// Verify the pattern that occurs if callUsedInRiSpec() returns true. // If any of these fail, either the pattern changed or callUsedInRiSpec() // returns true when it shouldn't. // 'temp' has only 2 SymExprs // Remove 'temp'. // Put 'call' back into riSpec.