kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

ir_recorder.h (1056B)


      1 #ifndef KIT_CG_IR_RECORDER_H
      2 #define KIT_CG_IR_RECORDER_H
      3 
      4 #include "cg/ir.h"
      5 
      6 typedef struct CgIrRecorder CgIrRecorder;
      7 
      8 typedef struct CgIrRecorderConfig {
      9   void (*func_recorded)(void* user, CgIrFunc* func);
     10   void (*finalize)(void* user, const CgIrModule* module);
     11   void (*destroy)(void* user);
     12   int (*local_static_data_begin)(void* user, const CGLocalStaticDataDesc* desc);
     13   const char* (*data_label_addr_unsupported_msg)(void* user);
     14   const char* (*tail_call_unrealizable_reason)(void* user,
     15                                                const CGFuncDesc* caller,
     16                                                const CGCallDesc* call);
     17   int (*asm_is_reg_constraint)(void* user, const char* constraint);
     18   void* user;
     19 } CgIrRecorderConfig;
     20 
     21 CgTarget* cg_ir_recorder_new(Compiler*, ObjBuilder*, const CgIrRecorderConfig*);
     22 CgIrRecorder* cg_ir_recorder_from_target(CgTarget*);
     23 void* cg_ir_recorder_user(const CgIrRecorder*);
     24 const CgIrModule* cg_ir_recorder_module(const CgTarget*);
     25 CgIrFunc* cg_ir_recorder_current_func(const CgTarget*);
     26 
     27 #endif