diff options
| author | Simon Camphausen <simon.camphausen@iml.fraunhofer.de> | 2024-08-20 11:52:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-20 11:52:16 +0200 |
| commit | e47b507562624bf291ab2515699d39c2669b6131 (patch) | |
| tree | 890adf1803e8606b21d94dcff67f754390515a36 /lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.cpp | |
| parent | 3c5374595bf20bd9665dce5b832d7cc1f09b8415 (diff) | |
[mlir][EmitC] Model lvalues as a type in EmitC (#91475)
This adds an `emitc.lvalue` type which models assignable lvlaues in the
type system. Operations modifying memory are restricted to this type
accordingly.
See also the discussion on
[discourse](https://discourse.llvm.org/t/rfc-separate-variables-from-ssa-values-in-emitc/75224/9).
The most notable changes are as follows.
- `emitc.variable` and `emitc.global` ops are restricted to return
`emitc.array` or `emitc.lvalue` types
- Taking the address of a value is restricted to operands with lvalue
type
- Conversion from lvalues into SSA values is done with the new
`emitc.load` op
- The var operand of the `emitc.assign` op is restricted to lvalue type
- The result of the `emitc.subscript` and `emitc.get_global` ops is a
lvalue type
- The operands and results of the `emitc.member` and
`emitc.member_of_ptr` ops are restricted to lvalue types
---------
Co-authored-by: Matthias Gehre <matthias.gehre@amd.com>
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedProcessPythonInterface/ScriptedProcessPythonInterface.cpp')
0 files changed, 0 insertions, 0 deletions
