kit

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

ir_recorder.h (1137B)


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