opt_support.h

来自「一个内存数据库的源代码这是服务器端还有客户端」· C头文件 代码 · 共 56 行

H
56
字号
#include "mal.h"#include "mal_function.h"#include "mal_scenario.h"#include "mal_builder.h"/* #define DEBUG_OPT_OPTIMIZER     show partial result */#ifdef WIN32#ifndef LIBOPTIMIZER#define opt_export extern __declspec(dllimport)#else#define opt_export extern __declspec(dllexport)#endif#else#define opt_export extern#endifopt_export str MALoptimizer(Client c);opt_export int optimizerCheck(MalBlkPtr mb, str name, int actions, lng usec, int flag);opt_export void resetOptimizerDebugger(void);opt_export str optimizeMALBlock(MalBlkPtr mb);opt_export void showOptimizerStep(str fnme,int i, int flg);opt_export void showOptimizerHistory(void);opt_export str debugOptimizers(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);opt_export void replaceAlias(MalBlkPtr mb, int pc, int pcl, int src, int alias);opt_export int isUnsafeInstruction(InstrPtr q);opt_export int isUnsafeFunction(InstrPtr q);opt_export int isInvariant(MalBlkPtr mb, int pcf, int pcl, int varid);opt_export int isDependent(InstrPtr p, InstrPtr q);opt_export int safetyBarrier(InstrPtr p, InstrPtr q);opt_export int hasSameSignature(InstrPtr p, InstrPtr q);opt_export int hasSameArguments(MalBlkPtr mb, InstrPtr p, InstrPtr q);opt_export int isUpdated(MalBlkPtr mb, int pc);opt_export int hasCommonResults(InstrPtr p, InstrPtr q);opt_export int hasSideEffects(InstrPtr p, int strict);opt_export int allArgumentsVisible(MalBlkPtr mb, int pc,int qc);opt_export int allTargetsVisible(MalBlkPtr mb, int pc, int qc);#define isAlife(M,I,X)          ( (M)->var[I]->beginLifespan<=X && \                                  (M)->var[I]->endLifespan>=X)#define isSinglepoint(M,I)  ( (M)->var[I]->beginLifespan== \                  (M)->var[I]->endLifespan)#define OPT_CHECK_FLOW	1#define OPT_CHECK_TYPES 2#define OPT_CHECK_DECL 4#define OPT_CHECK_SPAN 8#define OPT_CHECK_ALL (OPT_CHECK_FLOW | OPT_CHECK_TYPES | OPT_CHECK_DECL | OPT_CHECK_SPAN)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?