# compiler: fix up LLVM backend, and improve its debug info · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/a249aec54df502a6017e108362aaf8d74a5fc950)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: a249aec54df502a6017e108362aaf8d74a5fc950

Requested commit: a249aec54df502a6017e108362aaf8d74a5fc950

Commit: a249aec54df502a6017e108362aaf8d74a5fc950

Tree: d533a38501a39463e9feef8fe11291aca815e15c

Author: Matthew Lugg

Committer: Matthew Lugg

## Message

```
compiler: fix up LLVM backend, and improve its debug info

The LLVM backend can now run the behavior tests and standard library
tests, like the x86_64 backend can. This commit required me to make a
lot of changes to how the LLVM backend lowers debug information, and
while I was doing that, I improved a few things:

* `anyerror` is now an enum type (and other error sets just wrap it), so
  error values appear by name in debuggers

* Fixed broken lowering for tagged unions with zero-width payloads

* Associate container types with source locations in all cases

* Avoid depending on the order of type resolution (using the new
  `DebugConstPool` abstraction), so debug information will contain all
  available type information rather than just the subset which happens
  to be resolved when the backend lowers that debug type

```

## Parents

- [eb25a3e653ecc242cb4d6c59753ed41d7d83578f](https://git.cafe/gitcafe/zig/commit/eb25a3e653ecc242cb4d6c59753ed41d7d83578f?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/a249aec54df502a6017e108362aaf8d74a5fc950?format=markdown)
