-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
Currently when we mlir::debugPrint JSIR, we get the default format, which is pretty verbose:
"jsir.file"() <{comments = []}> ({
"jsir.program"() <{source_type = "script"}> ({
%0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any
"jshir.if_statement"(%0) ({
%2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any
"jsir.expression_statement"(%2) : (!jsir.any) -> ()
}, {
}) : (!jsir.any) -> ()
%1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any
"jshir.if_statement"(%1) ({
"jshir.block_statement"() ({
%2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any
"jsir.expression_statement"(%2) : (!jsir.any) -> ()
}, {
^bb0:
}) : () -> ()
}, {
%2 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any
"jsir.expression_statement"(%2) : (!jsir.any) -> ()
}) : (!jsir.any) -> ()
}, {
^bb0:
}) : () -> ()
}) : () -> ()We should provide a custom, simplified assembly format, like this:
jsir.file {
jsir.program {source_type = "script"} {
%0 = jsir.identifier {name = "a"}
jshir.if_statement(%0) ({
%2 = jsir.identifier {name = "b"}
jsir.expression_statement(%2)
}, {
})
%1 = jsir.identifier{name = "a"}
jshir.if_statement(%1) ({
jshir.block_statement() ({
%2 = jsir.identifier {name = "b"}
jsir.expression_statement(%2)
}, {
^bb0:
})
}, {
%2 = jsir.identifier {name = "c"}
jsir.expression_statement(%2)
})
}, {
^bb0:
})
})Note: Since JSIR currently doesn't support TypeScript, every expression has the type jsir.any and doesn't have to be spelled out explicitly.
The custom assemblyFormat should be declared in jsir_ops.generated.td and jsir_ops.td. jsir_ops.generated.td is generated by astgen.
Copilot
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed