tree b375cb15b384ddddf51e460e4009236d84929f75
parent dda53bef35c5ab49967e8755e69ce893ecb525c4
author Maksim Levental <maksim.levental@gmail.com> 1744376138 -0400
committer GitHub <noreply@github.com> 1744376138 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn+RFKCRC1aQ7uu5UhlAAAtDEQAJ6dqcua2b3m1WUWPtRiYctu
 vAL6vfjfZbNP3Ef16H3c1fC1F1XT2ysIMKloiy2UD1dfO4SO/U2CV9ZzyyuAQlxe
 VHxKjqm1ZcUsADw6K/TbVSDc7JBFlnNbOMhLwkSuDupuuCRGKoMf5v1vlyX6gzzj
 NtyLj7TXyYBWK31H+pzh5XyGfubDVXqt7RvpgwzlMsfd9j+rHtFfg50bygDpi+sj
 Lx01EH6rNmba/7pFg5QIf3qCYPKB8qBgDQVfo3/kXd0rpa1uBvpqoXM3tdkBT+3J
 VY3J5E7d4akCv5gf35qvv7LzUWa2b1loKCghTwGYRK0aDjAWZ70IZlu9U2g4frsS
 YUK/cTGne96awaq16lzHNZ8313TbEJQEHloqHwzKZ7qSM1isNztJDFfvuWqgJ4//
 EnSxI75MiLrXrP7BgNP8LpqP1rWF687+dyEJeOXqHa5fPW3yz7XCJVuHfsT32tcj
 +Jo9ZihmWcBeIxuYhCgXv8OtrBCp/ALkV7OqF9xrmvskj+9WBQNCYw7cwZdmoflK
 rhMEYySCaPgQ3iwWDhbEHbWQpbPGD3l9QnzXxsU9BcCj8JH4pqhpZJsuyxTIOEgI
 glrHgpXfbekuUrmcZmFWzmiXU1AP/YSTjOrBoLK4GEhfP9g2kYypnXGHYKXOn823
 47o50MUvrUyjrAnW3Kwh
 =/bjN
 -----END PGP SIGNATURE-----
 

[mlir][python] fix value-builder generation for snake_case ops (#135302)

Ops that are already snake case (like [`ROCDL_wmma_*`
ops](https://github.com/makslevental/llvm-project/blob/66b0b0466bbd995146aadaf2cd18de5476c19941/mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td#L411))
produce python "value-builders" that collide with the class names:

```python
class wmma_bf16_16x16x16_bf16(_ods_ir.OpView):
  OPERATION_NAME = "rocdl.wmma.bf16.16x16x16.bf16"
  ...

def wmma_bf16_16x16x16_bf16(res, args, *, loc=None, ip=None) -> _ods_ir.Value:
  return wmma_bf16_16x16x16_bf16(res=res, args=args, loc=loc, ip=ip).result
```

and thus cannot be emitted (because of recursive self-calls).

This PR fixes that by affixing `_` to the value builder names. 

I would've preferred to just rename the ops but that would be a breaking
change :shrug:.