10b98e8aaSDavid van Moolenbroek #ifndef ASR_PASS_H 20b98e8aaSDavid van Moolenbroek 30b98e8aaSDavid van Moolenbroek #define ASR_PASS_H 40b98e8aaSDavid van Moolenbroek 50b98e8aaSDavid van Moolenbroek #include <pass.h> 60b98e8aaSDavid van Moolenbroek 70b98e8aaSDavid van Moolenbroek #define DEFAULT_SEED 0 80b98e8aaSDavid van Moolenbroek 90b98e8aaSDavid van Moolenbroek #define GV_DEFAULT_MAX_OFFSET 10000 100b98e8aaSDavid van Moolenbroek #define GV_DEFAULT_MAX_PADDING 50 110b98e8aaSDavid van Moolenbroek #define GV_DEFAULT_DO_PERMUTATE 1 120b98e8aaSDavid van Moolenbroek 130b98e8aaSDavid van Moolenbroek #define FUNC_DEFAULT_MAX_OFFSET 10000 140b98e8aaSDavid van Moolenbroek #define FUNC_DEFAULT_MAX_PADDING 100 150b98e8aaSDavid van Moolenbroek #define FUNC_DEFAULT_MAX_BB_SHIFT 50 160b98e8aaSDavid van Moolenbroek #define FUNC_DEFAULT_DO_PERMUTATE 1 170b98e8aaSDavid van Moolenbroek 180b98e8aaSDavid van Moolenbroek #define STACK_DEFAULT_DO_OFFSET 1 190b98e8aaSDavid van Moolenbroek #define STACK_DEFAULT_MAX_OFFSET 50 200b98e8aaSDavid van Moolenbroek 210b98e8aaSDavid van Moolenbroek #define STACKFRAME_DEFAULT_DO_OFFSET 1 220b98e8aaSDavid van Moolenbroek #define STACKFRAME_DEFAULT_MAX_OFFSET 50 230b98e8aaSDavid van Moolenbroek #define STACKFRAME_DEFAULT_MAX_PADDING 5000 240b98e8aaSDavid van Moolenbroek #define STACKFRAME_DEFAULT_DO_PERMUTATE 1 250b98e8aaSDavid van Moolenbroek #define STACKFRAME_DEFAULT_STATIC_PADDING 1 26*139ae0daSDavid van Moolenbroek #define STACKFRAME_DEFAULT_CALLER_PADDING 0 // broken, disabled (see note in code) 270b98e8aaSDavid van Moolenbroek 280b98e8aaSDavid van Moolenbroek #define HEAP_MAP_DEFAULT_DO_PERMUTATE 1 290b98e8aaSDavid van Moolenbroek 300b98e8aaSDavid van Moolenbroek #define HEAP_DEFAULT_MAX_OFFSET 10000 310b98e8aaSDavid van Moolenbroek #define HEAP_DEFAULT_MAX_PADDING 100 320b98e8aaSDavid van Moolenbroek 330b98e8aaSDavid van Moolenbroek #define MAP_DEFAULT_MAX_OFFSET_PAGES 10 340b98e8aaSDavid van Moolenbroek #define MAP_DEFAULT_MAX_PADDING_PAGES 3 350b98e8aaSDavid van Moolenbroek 360b98e8aaSDavid van Moolenbroek using namespace llvm; 370b98e8aaSDavid van Moolenbroek 380b98e8aaSDavid van Moolenbroek namespace llvm { 390b98e8aaSDavid van Moolenbroek 400b98e8aaSDavid van Moolenbroek class ASRPass : public ModulePass { 410b98e8aaSDavid van Moolenbroek 420b98e8aaSDavid van Moolenbroek public: 430b98e8aaSDavid van Moolenbroek static char ID; 440b98e8aaSDavid van Moolenbroek 450b98e8aaSDavid van Moolenbroek ASRPass(); 460b98e8aaSDavid van Moolenbroek 470b98e8aaSDavid van Moolenbroek virtual bool runOnModule(Module &M); 480b98e8aaSDavid van Moolenbroek 490b98e8aaSDavid van Moolenbroek }; 500b98e8aaSDavid van Moolenbroek 510b98e8aaSDavid van Moolenbroek } 520b98e8aaSDavid van Moolenbroek 530b98e8aaSDavid van Moolenbroek #endif 54