glasm: Throw when there are register leaks
This commit is contained in:
		| @@ -271,6 +271,9 @@ void EmitCode(EmitContext& ctx, const IR::Program& program) { | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     if (!ctx.reg_alloc.IsEmpty()) { | ||||
|         throw LogicError("Register allocator is not empty"); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void SetupOptions(const IR::Program& program, const Profile& profile, | ||||
|   | ||||
| @@ -128,6 +128,10 @@ public: | ||||
|         return num_used_long_registers; | ||||
|     } | ||||
|  | ||||
|     [[nodiscard]] bool IsEmpty() const noexcept { | ||||
|         return register_use.none() && long_register_use.none(); | ||||
|     } | ||||
|  | ||||
|     /// Returns true if the instruction is expected to be aliased to another | ||||
|     static bool IsAliased(const IR::Inst& inst); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user