1/*
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 *
6 * Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
7 */
8
9#include "monetdb_config.h"
10#include "opt_reduce.h"
11#include "mal_interpreter.h"
12
13str
14OPTreduceImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
15{
16 int actions = 0;
17 char buf[256];
18 lng usec = GDKusec();
19 (void)cntxt;
20 (void)stk;
21 (void) p;
22
23 actions = mb->vtop;
24 trimMalVariables(mb,0);
25 actions = actions - mb->vtop;
26
27 /* Defense line against incorrect plans */
28 /* plan is not changed */
29 /* plan is not changed */
30 //if( actions > 0){
31 //chkTypes(cntxt->usermodule, mb, FALSE);
32 //chkFlow(mb);
33 //chkDeclarations(mb);
34 //}
35 /* keep all actions taken as a post block comment */
36 usec = GDKusec()- usec;
37 snprintf(buf,256,"%-20s actions=%2d time=" LLFMT " usec","reduce",actions, usec);
38 newComment(mb,buf);
39 if( actions >= 0)
40 addtoMalBlkHistory(mb);
41
42 if( OPTdebug & OPTreduce){
43 fprintf(stderr, "#REDUCE optimizer entry\n");
44 fprintFunction(stderr, mb, 0, LIST_MAL_ALL);
45 }
46 return MAL_SUCCEED;
47}
48