diff options
author | Markus Böck <markus.boeck02@gmail.com> | 2023-02-21 15:29:32 +0100 |
---|---|---|
committer | Markus Böck <markus.boeck02@gmail.com> | 2023-02-21 20:46:33 +0100 |
commit | afcceec744097a22037da3f426d1088b360ba164 (patch) | |
tree | 9a7c3e215b76006695ac35ce2616869fe5e5f608 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | dad3741e3bdc6e126c5b3adec9242d7b2d926282 (diff) | |
download | llvm-afcceec744097a22037da3f426d1088b360ba164.zip llvm-afcceec744097a22037da3f426d1088b360ba164.tar.gz llvm-afcceec744097a22037da3f426d1088b360ba164.tar.bz2 |
[mlir][LLVM] Don't make `LLVM_IntPtrBase` a `BuildableType` to allow the use of opaque pointers
Making the constraint a buildable type makes them incompatible with opaque pointers, at least while we still support typed pointers, since Ops making use of the constraint will then automatically create a typed pointer on parse.
This patch therefore fixes that issue by removing the `BuildableType` mixin. This has a bit of a cascading effect however, as all users of the constraint now need operands of that type to be added to the assembly format, hence a lot of adjustments to the syntax of a lot of (mostly intrinsic) ops.
Few things of note: The syntax as is, is only required while we're supporting both typed and opaque pointers. Once we drop support for typed pointers, we can make it a `BuildableType` again. As a drive by I also fixed the address space not being verified in the constraint. Finally, I added some roundtripping tests, most importantly for ops with `type($specific_operand)` occurences. These are printed incorrectly with typed pointers if not wrapped within a `qualified`.
Differential Revision: https://reviews.llvm.org/D144479
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions