Function transformations
function_transformations
TIMER_START = 'timer_start'
module-attribute
TIMER_END = 'timer_end'
module-attribute
ArgNamesToArgAttrsPass
Bases: RewritePattern
Source code in xdsl/transforms/function_transformations.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
match_and_rewrite(op: func.FuncOp, rewriter: PatternRewriter)
Source code in xdsl/transforms/function_transformations.py
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
AddBenchTimersPattern
dataclass
Bases: RewritePattern
Source code in xdsl/transforms/function_transformations.py
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 | |
start_func_t: func.FunctionType
instance-attribute
end_func_t: func.FunctionType
instance-attribute
__init__(start_func_t: func.FunctionType, end_func_t: func.FunctionType) -> None
match_and_rewrite(op: func.FuncOp, rewriter: PatternRewriter)
Source code in xdsl/transforms/function_transformations.py
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 | |
TestAddBenchTimersToTopLevelFunctions
dataclass
Bases: ModulePass
Adds timers to top-level functions, by adding timer_start() -> f64 and timer_end(f64) -> f64
to the start and end of each module-level function. The time is stored in an llvm.ptr passed in
as a function arg.
Source code in xdsl/transforms/function_transformations.py
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 | |
name = 'test-add-timers-to-top-level-funcs'
class-attribute
instance-attribute
apply(ctx: Context, op: builtin.ModuleOp) -> None
Source code in xdsl/transforms/function_transformations.py
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | |
FunctionPersistArgNamesPass
dataclass
Bases: ModulePass
Persists func.func arg name hints to arg_attrs.
Such that, for instance
func.func @my_func(%arg_name : i32) -> ...
becomes
`func.func @my_func(%arg_name : i32 {"llvm.name" = "arg_name"}) -> ...
Source code in xdsl/transforms/function_transformations.py
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | |
name = 'function-persist-arg-names'
class-attribute
instance-attribute
apply(ctx: Context, op: builtin.ModuleOp) -> None
Source code in xdsl/transforms/function_transformations.py
121 122 123 124 | |