lib/std/build.zig | 3 + lib/std/hash/murmur.zig | 6 +- src/all_types.hpp | 7 +- src/analyze.cpp | 246 ++++++++- src/codegen.cpp | 16 +- src/ir.cpp | 944 +++++++++++++++++--------------- src/ir.hpp | 6 +- src/softfloat.hpp | 17 + src/util.hpp | 21 +- test/compile_errors.zig | 13 +- test/stage1/behavior/bitcast.zig | 20 + test/stage1/behavior/eval.zig | 13 + test/stage1/behavior/if.zig | 2 +- test/stage1/behavior/misc.zig | 13 + test/stage1/behavior/optional.zig | 22 + test/stage1/behavior/undefined.zig | 5 +- 16 files changed, 868 insertions(+), 486 deletions(-)