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