Skip to content

TODO #5

@jpy794

Description

@jpy794

问题和可能的解决方案, 以及解决方案可能面临的问题

  • 如何防止 bb 的 prebbs / sucbbs 被非法修改
    • 只允许 terminator set_prebbs / sucbbs (friend?), 用户只能通过修改 terminator 指令修改 prebbs / sucbbs; 同时给 bb 添加 optional<Instruction *> terminator 成员, 防止重复设置
      • 如果要在插入 terminator 后删除/替换这条指令该怎么办?
        • a) 不允许删除 terminator, 只允许修改
        • b) 提供专用的 terminator 删除/替换 接口
  • set_operand 设为纯虚, 使用虚函数接口防止 inst 的内部状态被破坏 (类型检查, bb 的 prebbs sucbbs 等)
    • 可以在 Instruction 给出一个默认实现
  • 是否要把 inst 修改 bb 成员的位置统一起来, 目前插入 ilist 在 bb 的 create_inst 而插入 pre_bbs / suc_bbs 在 inst 的构造函数

以上问题要考虑到未来的具体使用场景

翻译过程中待处理的部分

  • 修改ast,提供常量初始化接口
  • ast FuncDefGlobal param提供name参数
  • ast中AssignStmt是否要将var_name和idxs修改为LValExpr
    这两部分在翻译过程中有相当大的代码重合

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions