# stage2 LLVM: Pass inline assembly outputs directly when not targeting memory · gitcafe/zig

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

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

Visibility: public

Requested revision: 075f93fa108030fb0dd12faa6e389ace302cfb4c

Requested commit: 075f93fa108030fb0dd12faa6e389ace302cfb4c

Commit: 075f93fa108030fb0dd12faa6e389ace302cfb4c

Tree: 73cc539ff6dc66dc67cb35ba30af0c9c2a263098

Author: Cody Tapscott

Committer: Andrew Kelley

## Message

```
stage2 LLVM: Pass inline assembly outputs directly when not targeting memory

This change provides a basic implementation of #2349 for stage2. There's
still quite a lot of work before this logic is as complete as what's in
Clang (https://github.com/llvm/llvm-project/blob/b3645353041818f61e2580635409ddb81ff5a272/clang/lib/CodeGen/CGStmt.cpp#L2304-L2795),
particularly considering the diversity of constraints across targets.

It's probably not worth doing the complete work until there's a clearer
picture for constraints in Zig's future dedicated ASM syntax, but at
least this gives us a small improvement for now.

As a bonus, this also fixes a bug with how we were handling `_`
identifiers.

```

## Parents

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

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