xref: /minix3/minix/llvm/passes/include/asr/ASRPass.h (revision 139ae0da30a29899932f86c1be71334d4c174f51)
1 #ifndef ASR_PASS_H
2 
3 #define ASR_PASS_H
4 
5 #include <pass.h>
6 
7 #define DEFAULT_SEED                    0
8 
9 #define GV_DEFAULT_MAX_OFFSET           10000
10 #define GV_DEFAULT_MAX_PADDING          50
11 #define GV_DEFAULT_DO_PERMUTATE         1
12 
13 #define FUNC_DEFAULT_MAX_OFFSET         10000
14 #define FUNC_DEFAULT_MAX_PADDING        100
15 #define FUNC_DEFAULT_MAX_BB_SHIFT       50
16 #define FUNC_DEFAULT_DO_PERMUTATE       1
17 
18 #define STACK_DEFAULT_DO_OFFSET         1
19 #define STACK_DEFAULT_MAX_OFFSET        50
20 
21 #define STACKFRAME_DEFAULT_DO_OFFSET    1
22 #define STACKFRAME_DEFAULT_MAX_OFFSET   50
23 #define STACKFRAME_DEFAULT_MAX_PADDING  5000
24 #define STACKFRAME_DEFAULT_DO_PERMUTATE 1
25 #define STACKFRAME_DEFAULT_STATIC_PADDING 1
26 #define STACKFRAME_DEFAULT_CALLER_PADDING 0 // broken, disabled (see note in code)
27 
28 #define HEAP_MAP_DEFAULT_DO_PERMUTATE   1
29 
30 #define HEAP_DEFAULT_MAX_OFFSET         10000
31 #define HEAP_DEFAULT_MAX_PADDING        100
32 
33 #define MAP_DEFAULT_MAX_OFFSET_PAGES    10
34 #define MAP_DEFAULT_MAX_PADDING_PAGES   3
35 
36 using namespace llvm;
37 
38 namespace llvm {
39 
40 class ASRPass : public ModulePass {
41 
42   public:
43       static char ID;
44 
45       ASRPass();
46 
47       virtual bool runOnModule(Module &M);
48 
49 };
50 
51 }
52 
53 #endif
54