# Snow Compiler - IR 模块

> Snow 编译器的中间表示模块 —— 负责构建、组织和输出中间表示指令（IR）

## 项目简介

**IR（Intermediate Representation）** 是 [Snow 编译器]() 项目的核心模块，承担中间表示的构建、组织与管理任务。
它用于在前端语法分析与后端目标代码生成之间，提供结构清晰、便于优化和转换的抽象表示形式。

IR 模块以类 SSA（Static Single Assignment）形式设计，通过统一的指令体系、虚拟寄存器模型和构建器架构，实现了良好的表达力与可扩展性，为后续优化和代码生成阶段打下基础。

## 核心功能

* **统一的中间表示模型**：表达控制流与数据流，支持函数、指令、值等核心结构
* **IR 构建器体系**：模块化构建函数、表达式与语句 IR，简化前端对接
* **灵活的指令层级结构**：支持二元操作、跳转、返回等多种基本指令
* **寄存器与常量模型**：统一管理虚拟寄存器、常量、标签等值类型
* **IR 打印与调试支持**：辅助输出 IR 文本格式，支持可视化与调试

## 模块结构

```
ir/
  ├── builder/             // 构建器模块：负责构造表达式、函数与语句的 IR
  ├── core/                // 核心定义：IR 基础结构，如函数、指令、程序、访问器等
  ├── instruction/         // 指令实现：具体的 IR 指令类型（如加法、跳转、返回等）
  ├── value/               // 值模型：常量、标签、虚拟寄存器等
  └── doc/                 // 模块文档
```

## 开发环境

* JDK 23 或更高版本
* Maven 构建管理
* 推荐 IDE：IntelliJ IDEA

---