📄 opt_support.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -