Context
context
FuncInfo
Bases: NamedTuple
Information about a decorated function being generated into IR.
Source code in xdsl/frontend/pyast/context.py
23 24 25 26 27 28 29 30 31 32 33 | |
file: str
instance-attribute
The path of the file containing the function.
globals: dict[str, Any]
instance-attribute
The globals defined in that file up to the point of function definition.
ast: ast.FunctionDef
instance-attribute
The Python AST representation of the function.
PyASTContext
dataclass
Encapsulate the mapping between Python and IR types and operations.
Source code in xdsl/frontend/pyast/context.py
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | |
type_registry: TypeRegistry = field(default_factory=TypeRegistry)
class-attribute
instance-attribute
Mappings between source code and IR type.
function_registry: FunctionRegistry = field(default_factory=FunctionRegistry)
class-attribute
instance-attribute
Mappings between functions and their operation types.
post_transforms: list[ModulePass] = field(default_factory=(lambda: [FrontendDesymrefyPass()]))
class-attribute
instance-attribute
An ordered list of passes to apply to the built module.
post_callback: Callable[[ModulePass, ModuleOp, ModulePass], None] | None = default_pipeline_callback
class-attribute
instance-attribute
Callback to run between post transforms.
ir_context: Context = field(default_factory=(lambda: Context(allow_unregistered=True)))
class-attribute
instance-attribute
The xDSL context to use when applying transformations to the built module.
pass_pipeline: PassPipeline
property
Get a pass pipeline from the context state.
__init__(type_registry: TypeRegistry = TypeRegistry(), function_registry: FunctionRegistry = FunctionRegistry(), post_transforms: list[ModulePass] = (lambda: [FrontendDesymrefyPass()])(), post_callback: Callable[[ModulePass, ModuleOp, ModulePass], None] | None = default_pipeline_callback, ir_context: Context = (lambda: Context(allow_unregistered=True))()) -> None
register_type(source_type: type, ir_type: TypeAttribute) -> None
Associate a type in the source code with its type in the IR.
Source code in xdsl/frontend/pyast/context.py
68 69 70 71 72 73 74 | |
register_function(function: Callable[..., Any], ir_constructor: Callable[..., Operation]) -> None
Associate a method on an object in the source code with its IR implementation.
Source code in xdsl/frontend/pyast/context.py
76 77 78 79 80 | |
register_post_transform(transform: ModulePass) -> None
Add a module pass to be run on the generated IR.
Source code in xdsl/frontend/pyast/context.py
82 83 84 | |
register_dialect(dialect: Dialect) -> None
Add a dialect to the context used for transformation.
Source code in xdsl/frontend/pyast/context.py
86 87 88 | |
parse_program(func: Callable[P, R]) -> PyASTProgram[P, R]
Get a program wrapper by decorating a function.
Source code in xdsl/frontend/pyast/context.py
139 140 141 142 143 144 145 146 147 148 149 150 151 | |
CodeContext
dataclass
Bases: AbstractContextManager[Any]
The CodeContext with block marks the scope in which the code in the custom DSL can be written. This code will be translated to xDSL/MLIR.
Source code in xdsl/frontend/pyast/context.py
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | |
program: FrontendProgram
instance-attribute
Underlying frontend program which can be compiled and translated to xDSL/MLIR.
__init__(program: FrontendProgram) -> None
__enter__() -> None
Source code in xdsl/frontend/pyast/context.py
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | |
__exit__(*args: object)
Source code in xdsl/frontend/pyast/context.py
188 189 190 191 192 193 194 | |
default_pipeline_callback(_previous_pass: ModulePass, module: ModuleOp, _next_pass: ModulePass) -> None
Default callback to verify the module after each transformation pass.
Source code in xdsl/frontend/pyast/context.py
36 37 38 39 40 | |