From 8ed69352de2d4480159418d3580506bf833755ee Mon Sep 17 00:00:00 2001 From: Google JSIR Bot Date: Wed, 1 Jul 2026 20:48:24 -0700 Subject: [PATCH] #cleanup Rename ast2hir and hir2ast to ast2jsir and jsir2ast respectively. PiperOrigin-RevId: 941442503 --- README.md | 2 +- .../tests/and/README.generated.md | 2 +- .../tests/and/output.generated.txt | 508 +++++++++--------- .../tests/and/run.generated.lit | 4 +- .../tests/break/README.generated.md | 2 +- .../tests/break/output.generated.txt | 232 ++++---- .../tests/break/run.generated.lit | 4 +- .../tests/conditional/README.generated.md | 2 +- .../tests/conditional/output.generated.txt | 464 ++++++++-------- .../tests/conditional/run.generated.lit | 4 +- .../tests/continue/README.generated.md | 2 +- .../tests/continue/output.generated.txt | 336 ++++++------ .../tests/continue/run.generated.lit | 4 +- .../tests/do_while/README.generated.md | 2 +- .../tests/do_while/output.generated.txt | 326 +++++------ .../tests/do_while/run.generated.lit | 4 +- .../tests/for/README.generated.md | 2 +- .../tests/for/output.generated.txt | 226 ++++---- .../tests/for/run.generated.lit | 4 +- .../tests/for_in/README.generated.md | 2 +- .../tests/for_in/output.generated.txt | 326 +++++------ .../tests/for_in/run.generated.lit | 4 +- .../tests/for_of/README.generated.md | 2 +- .../tests/for_of/output.generated.txt | 272 +++++----- .../tests/for_of/run.generated.lit | 4 +- .../tests/function/README.generated.md | 2 +- .../tests/function/output.generated.txt | 234 ++++---- .../tests/function/run.generated.lit | 4 +- .../tests/if/README.generated.md | 2 +- .../tests/if/output.generated.txt | 138 ++--- .../tests/if/run.generated.lit | 4 +- .../tests/if_var_dead/README.generated.md | 2 +- .../tests/if_var_dead/output.generated.txt | 190 +++---- .../tests/if_var_dead/run.generated.lit | 4 +- .../tests/if_var_unknown/README.generated.md | 2 +- .../tests/if_var_unknown/output.generated.txt | 190 +++---- .../tests/if_var_unknown/run.generated.lit | 4 +- .../tests/label/README.generated.md | 2 +- .../tests/label/output.generated.txt | 346 ++++++------ .../tests/label/run.generated.lit | 4 +- .../tests/literal/README.generated.md | 2 +- .../tests/literal/output.generated.txt | 128 ++--- .../tests/literal/run.generated.lit | 4 +- .../nullish_coalesce/README.generated.md | 2 +- .../nullish_coalesce/output.generated.txt | 508 +++++++++--------- .../tests/nullish_coalesce/run.generated.lit | 4 +- .../tests/obfuscated/README.generated.md | 2 +- .../tests/obfuscated/output.generated.txt | 442 +++++++-------- .../tests/obfuscated/run.generated.lit | 4 +- .../tests/or/README.generated.md | 2 +- .../tests/or/output.generated.txt | 508 +++++++++--------- .../tests/or/run.generated.lit | 4 +- .../tests/simple/README.generated.md | 2 +- .../tests/simple/output.generated.txt | 74 +-- .../tests/simple/run.generated.lit | 4 +- .../tests/simple_symbol/README.generated.md | 2 +- .../tests/simple_symbol/output.generated.txt | 120 ++--- .../tests/simple_symbol/run.generated.lit | 4 +- .../tests/switch/README.generated.md | 2 +- .../tests/switch/output.generated.txt | 398 +++++++------- .../tests/switch/run.generated.lit | 4 +- .../tests/test_config.json | 11 + .../tests/try_catch/README.generated.md | 2 +- .../tests/try_catch/output.generated.txt | 362 ++++++------- .../tests/try_catch/run.generated.lit | 4 +- .../tests/undeclared_var/README.generated.md | 2 +- .../tests/undeclared_var/output.generated.txt | 120 ++--- .../tests/undeclared_var/run.generated.lit | 4 +- .../update_expression/README.generated.md | 2 +- .../update_expression/output.generated.txt | 246 ++++----- .../tests/update_expression/run.generated.lit | 4 +- .../tests/void_0/README.generated.md | 2 +- .../tests/void_0/output.generated.txt | 98 ++-- .../tests/void_0/run.generated.lit | 4 +- .../tests/while/README.generated.md | 2 +- .../tests/while/output.generated.txt | 326 +++++------ .../tests/while/run.generated.lit | 4 +- .../tests/while_dead/README.generated.md | 2 +- .../tests/while_dead/output.generated.txt | 226 ++++---- .../tests/while_dead/run.generated.lit | 4 +- .../tests/array_expression/jshir.mlir | 26 +- .../conversion/tests/array_expression/run.lit | 8 +- .../conversion/tests/array_pattern/jshir.mlir | 30 +- .../ir/conversion/tests/array_pattern/run.lit | 8 +- .../arrow_function_expression/jshir.mlir | 44 +- .../tests/arrow_function_expression/run.lit | 8 +- .../tests/binary_expression/jshir.mlir | 24 +- .../tests/binary_expression/run.lit | 8 +- .../tests/block_statement/jshir.mlir | 28 +- .../conversion/tests/block_statement/run.lit | 8 +- .../js/ir/conversion/tests/break/jshir.mlir | 100 ++-- maldoca/js/ir/conversion/tests/break/run.lit | 8 +- .../tests/call_expression/jshir.mlir | 32 +- .../conversion/tests/call_expression/run.lit | 8 +- .../tests/class_declaration/jshir.mlir | 134 ++--- .../tests/class_declaration/run.lit | 8 +- .../tests/class_expression/jshir.mlir | 138 ++--- .../conversion/tests/class_expression/run.lit | 8 +- .../js/ir/conversion/tests/comment/jshir.mlir | 20 +- .../js/ir/conversion/tests/comment/run.lit | 8 +- .../tests/conditional_expression/jshir.mlir | 30 +- .../tests/conditional_expression/run.lit | 8 +- .../tests/continue_statement/jshir.mlir | 94 ++-- .../tests/continue_statement/run.lit | 8 +- .../tests/debugger_statement/jshir.mlir | 14 +- .../tests/debugger_statement/run.lit | 8 +- .../tests/directive_literal/jshir.mlir | 16 +- .../tests/directive_literal/run.lit | 8 +- .../tests/do_while_statement/jshir.mlir | 48 +- .../tests/do_while_statement/run.lit | 8 +- .../tests/empty_statement/jshir.mlir | 14 +- .../conversion/tests/empty_statement/run.lit | 8 +- .../tests/export_declaration/jshir.mlir | 40 +- .../tests/export_declaration/run.lit | 8 +- .../tests/for_in_statement/jshir.mlir | 36 +- .../conversion/tests/for_in_statement/run.lit | 8 +- .../tests/for_of_statement/jshir.mlir | 56 +- .../conversion/tests/for_of_statement/run.lit | 8 +- .../conversion/tests/for_statement/jshir.mlir | 94 ++-- .../ir/conversion/tests/for_statement/run.lit | 8 +- .../tests/function_declaration/jshir.mlir | 62 +-- .../tests/function_declaration/run.lit | 8 +- .../js/ir/conversion/tests/generate_tests.py | 92 ---- .../conversion/tests/if_statement/jshir.mlir | 48 +- .../ir/conversion/tests/if_statement/run.lit | 8 +- .../tests/import_declaration/jshir.mlir | 20 +- .../tests/import_declaration/run.lit | 8 +- .../tests/interpreter_directive/jshir.mlir | 14 +- .../tests/interpreter_directive/run.lit | 8 +- .../tests/labeled_statement/jshir.mlir | 28 +- .../tests/labeled_statement/run.lit | 8 +- .../js/ir/conversion/tests/literal/jshir.mlir | 36 +- .../js/ir/conversion/tests/literal/run.lit | 8 +- .../tests/load_store_identifier/jshir.mlir | 24 +- .../tests/load_store_identifier/run.lit | 8 +- .../tests/logical_expression/jshir.mlir | 48 +- .../tests/logical_expression/run.lit | 8 +- .../tests/member_expression/jshir.mlir | 48 +- .../tests/member_expression/run.lit | 8 +- .../conversion/tests/meta_property/jshir.mlir | 16 +- .../ir/conversion/tests/meta_property/run.lit | 8 +- .../tests/new_expression/jshir.mlir | 26 +- .../conversion/tests/new_expression/run.lit | 8 +- .../tests/object_expression/jshir.mlir | 106 ++-- .../tests/object_expression/run.lit | 8 +- .../tests/object_pattern/jshir.mlir | 52 +- .../conversion/tests/object_pattern/run.lit | 8 +- .../optional_member_expression/jshir.mlir | 42 +- .../tests/optional_member_expression/run.lit | 8 +- .../tests/parenthesized_expression/jshir.mlir | 32 +- .../tests/parenthesized_expression/run.lit | 8 +- .../js/ir/conversion/tests/run.lit.template | 8 +- .../tests/switch_statement/jshir.mlir | 132 ++--- .../conversion/tests/switch_statement/run.lit | 8 +- .../tests/tagged_template/jshir.mlir | 24 +- .../conversion/tests/tagged_template/run.lit | 8 +- .../ir/conversion/tests/template/jshir.mlir | 32 +- .../js/ir/conversion/tests/template/run.lit | 8 +- .../js/ir/conversion/tests/test_config.json | 22 + .../tests/throw_statement/jshir.mlir | 16 +- .../conversion/tests/throw_statement/run.lit | 8 +- .../conversion/tests/try_statement/jshir.mlir | 132 ++--- .../ir/conversion/tests/try_statement/run.lit | 8 +- .../tests/unary_expression/jshir.mlir | 18 +- .../conversion/tests/unary_expression/run.lit | 8 +- .../tests/update_expression/jshir.mlir | 18 +- .../tests/update_expression/run.lit | 8 +- .../tests/variable_declaration/jshir.mlir | 54 +- .../tests/variable_declaration/run.lit | 8 +- .../tests/while_statement/jshir.mlir | 26 +- .../conversion/tests/while_statement/run.lit | 8 +- .../tests/with_statement/jshir.mlir | 44 +- .../conversion/tests/with_statement/run.lit | 8 +- .../tests/yield_expression/jshir.mlir | 44 +- .../conversion/tests/yield_expression/run.lit | 8 +- maldoca/js/ir/generate_tests.py | 362 +++++++++++++ maldoca/js/ir/jsir_gen.cc | 4 +- .../tests/if/README.generated.md | 2 +- .../tests/if/run.generated.lit | 2 +- .../tests/if_join/README.generated.md | 2 +- .../tests/if_join/run.generated.lit | 2 +- .../tests/simple/README.generated.md | 2 +- .../tests/simple/run.generated.lit | 2 +- .../tests/simple_symbol/README.generated.md | 2 +- .../tests/simple_symbol/run.generated.lit | 2 +- .../README.generated.md | 2 +- .../run.generated.lit | 2 +- .../tests/test_config.json | 10 + .../tests/void_0/README.generated.md | 2 +- .../tests/void_0/run.generated.lit | 2 +- .../tests/while/README.generated.md | 2 +- .../tests/while/run.generated.lit | 2 +- .../after_dynconstprop/README.generated.md | 2 +- .../after_dynconstprop/run.generated.lit | 2 +- .../tests/if_statement/README.generated.md | 2 +- .../tests/if_statement/run.generated.lit | 2 +- .../tests/test_config.json | 10 + .../tests/unused_function/README.generated.md | 2 +- .../tests/unused_function/run.generated.lit | 2 +- .../tests/while_statement/README.generated.md | 2 +- .../tests/while_statement/run.generated.lit | 2 +- .../tests/atob/README.generated.md | 2 +- .../tests/atob/run.generated.lit | 2 +- .../tests/babel/README.generated.md | 2 +- .../tests/babel/run.generated.lit | 2 +- .../tests/btoa/README.generated.md | 2 +- .../tests/btoa/run.generated.lit | 2 +- .../tests/complex_wrapper/README.generated.md | 2 +- .../tests/complex_wrapper/run.generated.lit | 2 +- .../tests/function_inline/README.generated.md | 2 +- .../tests/function_inline/run.generated.lit | 2 +- .../README.generated.md | 2 +- .../function_inline_second/run.generated.lit | 2 +- .../logical_expression/README.generated.md | 2 +- .../logical_expression/run.generated.lit | 2 +- .../tests/scoped_alias/README.generated.md | 2 +- .../tests/scoped_alias/run.generated.lit | 2 +- .../tests/self_defending/README.generated.md | 2 +- .../tests/self_defending/run.generated.lit | 2 +- .../tests/simple_alias/README.generated.md | 2 +- .../tests/simple_alias/run.generated.lit | 2 +- .../README.generated.md | 2 +- .../run.generated.lit | 2 +- .../README.generated.md | 2 +- .../simple_function_inline/run.generated.lit | 2 +- .../tests/simple_object/README.generated.md | 2 +- .../tests/simple_object/run.generated.lit | 2 +- .../tests/simple_wrapper/README.generated.md | 2 +- .../tests/simple_wrapper/run.generated.lit | 2 +- .../tests/test_config.json | 10 + .../tests/variable_inline/README.generated.md | 2 +- .../tests/variable_inline/run.generated.lit | 2 +- .../README.generated.md | 2 +- .../variable_inline_second/run.generated.lit | 2 +- maldoca/js/ir/transforms/generate_tests.py | 191 ------- .../tests/control_flow/README.generated.md | 2 +- .../tests/control_flow/run.generated.lit | 2 +- .../tests/nested/README.generated.md | 2 +- .../tests/nested/run.generated.lit | 2 +- .../tests/simple/README.generated.md | 2 +- .../tests/simple/run.generated.lit | 2 +- .../tests/test_config.json | 10 + .../tests/object_property/README.generated.md | 2 +- .../tests/object_property/run.generated.lit | 2 +- .../object_property_ref/README.generated.md | 2 +- .../object_property_ref/run.generated.lit | 2 +- .../tests/test_config.json | 10 + .../tests/lvalue/README.generated.md | 2 +- .../tests/lvalue/run.generated.lit | 2 +- .../tests/rvalue/README.generated.md | 2 +- .../tests/rvalue/run.generated.lit | 2 +- .../peel_parentheses/tests/test_config.json | 10 + .../tests/directives/run.lit | 2 +- .../tests/for_statement/README.generated.md | 2 +- .../tests/for_statement/run.generated.lit | 2 +- .../tests/inner_scope/README.generated.md | 2 +- .../tests/inner_scope/run.generated.lit | 2 +- .../tests/test_config.json | 10 + .../variable_declaration/README.generated.md | 2 +- .../variable_declaration/run.generated.lit | 2 +- .../tests/with_statement/README.generated.md | 2 +- .../tests/with_statement/run.generated.lit | 2 +- .../tests/for_statement/README.generated.md | 2 +- .../tests/for_statement/run.generated.lit | 2 +- .../tests/return/README.generated.md | 2 +- .../tests/return/run.generated.lit | 2 +- .../tests/test_config.json | 10 + .../tests/with_statement/README.generated.md | 2 +- .../tests/with_statement/run.generated.lit | 2 +- 269 files changed, 5579 insertions(+), 5387 deletions(-) create mode 100644 maldoca/js/ir/analyses/constant_propagation/tests/test_config.json delete mode 100644 maldoca/js/ir/conversion/tests/generate_tests.py create mode 100644 maldoca/js/ir/conversion/tests/test_config.json create mode 100644 maldoca/js/ir/generate_tests.py create mode 100644 maldoca/js/ir/transforms/constant_propagation/tests/test_config.json create mode 100644 maldoca/js/ir/transforms/dead_code_elimination/tests/test_config.json create mode 100644 maldoca/js/ir/transforms/dynamic_constant_propagation/tests/test_config.json delete mode 100644 maldoca/js/ir/transforms/generate_tests.py create mode 100644 maldoca/js/ir/transforms/move_named_functions/tests/test_config.json create mode 100644 maldoca/js/ir/transforms/normalize_object_properties/tests/test_config.json create mode 100644 maldoca/js/ir/transforms/peel_parentheses/tests/test_config.json create mode 100644 maldoca/js/ir/transforms/split_declaration_statements/tests/test_config.json create mode 100644 maldoca/js/ir/transforms/split_sequence_expressions/tests/test_config.json diff --git a/README.md b/README.md index 40bbb9b..dcb0739 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ Convert a JavaScript source file to JSHIR: ```shell bazelisk run //maldoca/js/ir:jsir_gen --\ --input_file=$(pwd)/maldoca/js/ir/conversion/tests/if_statement/input.js \ - --passes=source2ast,ast2hir + --passes=source2ast,ast2jsir ``` ## Other links diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/and/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/and/README.generated.md index 58220b3..397963c 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/and/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/and/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/and/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/and/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/and/output.generated.txt index 8dda793..c103742 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/and/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/and/output.generated.txt @@ -1,254 +1,254 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 93, 96, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 109, 112, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 125, 128, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () -// JSHIR-NEXT: %12 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.member_expression"(%12) <{literal_property = #jsir, , "log", 141, 144, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.call_expression"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %17 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %20 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"b"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %17 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %20 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"c"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.identifier {"x"} -// JSHIR-NEXT: // %17 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %20 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"d"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.identifier {"x"} -// JSHIR-NEXT: // %17 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %20 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 93, 96, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"a"} -// JSHIR-NEXT: // %2 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"console"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 109, 112, 0, "log">} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"b"} -// JSHIR-NEXT: // %6 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.call_expression (%5, %6) -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"console"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 125, 128, 0, "log">} -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.identifier {"c"} -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.call_expression (%9, %10) -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%11) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.identifier {"console"} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.member_expression (%12) {#jsir, , "log", 141, 144, 0, "log">} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.identifier {"d"} -// JSHIR-NEXT: // %14 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.call_expression (%13, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "&&"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 93, 96, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 109, 112, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 125, 128, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () +// JSIR-NEXT: %12 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.member_expression"(%12) <{literal_property = #jsir, , "log", 141, 144, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %14 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %15 = "jsir.call_expression"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.boolean_literal {false} +// JSIR-NEXT: // %17 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {true} +// JSIR-NEXT: // %20 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"b"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.boolean_literal {true} +// JSIR-NEXT: // %17 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {false} +// JSIR-NEXT: // %20 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"c"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.identifier {"x"} +// JSIR-NEXT: // %17 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {true} +// JSIR-NEXT: // %20 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"d"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.identifier {"x"} +// JSIR-NEXT: // %17 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"&&"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {false} +// JSIR-NEXT: // %20 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 93, 96, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"a"} +// JSIR-NEXT: // %2 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"console"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 109, 112, 0, "log">} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"b"} +// JSIR-NEXT: // %6 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.call_expression (%5, %6) +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"console"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 125, 128, 0, "log">} +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.identifier {"c"} +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.call_expression (%9, %10) +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%11) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.identifier {"console"} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.member_expression (%12) {#jsir, , "log", 141, 144, 0, "log">} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.identifier {"d"} +// JSIR-NEXT: // %14 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.call_expression (%13, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/and/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/and/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/and/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/and/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/break/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/break/README.generated.md index 5e7bd68..c0e0340 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/break/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/break/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/break/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/break/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/break/output.generated.txt index 611b049..f676e91 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/break/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/break/output.generated.txt @@ -1,116 +1,116 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 54, 57, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.variable_declarator (%4, %5) -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.while_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %4 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.break_statement -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 54, 57, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"x"} -// JSHIR-NEXT: // %2 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %4 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 54, 57, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} +// JSIR-NEXT: // %5 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.variable_declarator (%4, %5) +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.while_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.boolean_literal {true} +// JSIR-NEXT: // %4 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.break_statement +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %5 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 54, 57, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"x"} +// JSIR-NEXT: // %2 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/break/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/break/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/break/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/break/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/conditional/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/conditional/README.generated.md index c0701db..b68a61d 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/conditional/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/conditional/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/conditional/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/conditional/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/conditional/output.generated.txt index f96d1a0..dbcf210 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/conditional/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/conditional/output.generated.txt @@ -1,232 +1,232 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %12 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: %14 = "jshir.conditional_expression"(%13) ({ -// JSHIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.variable_declarator"(%12, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %12 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: %14 = "jshir.conditional_expression"(%13) ({ -// JSHIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.variable_declarator"(%12, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %12 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %14 = "jshir.conditional_expression"(%13) ({ -// JSHIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 6.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.variable_declarator"(%12, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 72, 75, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 88, 91, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 104, 107, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %13 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jshir.conditional_expression (%13) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%16) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %16 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%16) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %14 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.variable_declarator (%12, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.identifier_ref {"b"} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %13 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jshir.conditional_expression (%13) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} -// JSHIR-NEXT: // %16 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%16) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%16) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %14 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.variable_declarator (%12, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.identifier_ref {"c"} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.identifier {"x"} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jshir.conditional_expression (%13) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.numeric_literal {#jsir, 6.000000e+00 : f64} -// JSHIR-NEXT: // %16 = 6.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%16) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.numeric_literal {#jsir, 5.000000e+00 : f64} -// JSHIR-NEXT: // %16 = 5.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%16) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %14 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.variable_declarator (%12, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 72, 75, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"a"} -// JSHIR-NEXT: // %2 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"console"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 88, 91, 0, "log">} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"b"} -// JSHIR-NEXT: // %6 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.call_expression (%5, %6) -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"console"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 104, 107, 0, "log">} -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.identifier {"c"} -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.call_expression (%9, %10) -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%11) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %12 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: %14 = "jshir.conditional_expression"(%13) ({ +// JSIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %15 = "jsir.variable_declarator"(%12, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %12 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: %14 = "jshir.conditional_expression"(%13) ({ +// JSIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %15 = "jsir.variable_declarator"(%12, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %12 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %14 = "jshir.conditional_expression"(%13) ({ +// JSIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 6.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %16 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%16) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %15 = "jsir.variable_declarator"(%12, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 72, 75, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 88, 91, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 104, 107, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.boolean_literal {true} +// JSIR-NEXT: // %13 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jshir.conditional_expression (%13) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%16) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %16 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%16) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %14 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.variable_declarator (%12, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.identifier_ref {"b"} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.boolean_literal {false} +// JSIR-NEXT: // %13 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jshir.conditional_expression (%13) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} +// JSIR-NEXT: // %16 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%16) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%16) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %14 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.variable_declarator (%12, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.identifier_ref {"c"} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.identifier {"x"} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jshir.conditional_expression (%13) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.numeric_literal {#jsir, 6.000000e+00 : f64} +// JSIR-NEXT: // %16 = 6.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%16) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.numeric_literal {#jsir, 5.000000e+00 : f64} +// JSIR-NEXT: // %16 = 5.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%16) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %14 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.variable_declarator (%12, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 72, 75, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"a"} +// JSIR-NEXT: // %2 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"console"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 88, 91, 0, "log">} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"b"} +// JSIR-NEXT: // %6 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.call_expression (%5, %6) +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"console"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 104, 107, 0, "log">} +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.identifier {"c"} +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.call_expression (%9, %10) +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%11) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/conditional/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/conditional/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/conditional/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/conditional/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/continue/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/continue/README.generated.md index 1e7c306..4b9e9b2 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/continue/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/continue/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/continue/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/continue/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/continue/output.generated.txt index 9690c73..b0de127 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/continue/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/continue/output.generated.txt @@ -1,168 +1,168 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.for_statement"() ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "i"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+01 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.binary_expression"(%4, %5) <{operator_ = "<"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.update_expression"(%4) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: "jshir.continue_statement"() : () -> () -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 73, 76, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.variable_declarator (%4, %5) -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.for_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"i"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.variable_declarator (%4, %5) -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"i"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+01 : f64} -// JSHIR-NEXT: // %5 = 1.000000e+01 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.binary_expression (%4, %5) {"<"} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"i"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.update_expression (%4) {"++", false} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.continue_statement -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 73, 76, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"x"} -// JSHIR-NEXT: // %2 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.for_statement"() ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "i"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+01 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.binary_expression"(%4, %5) <{operator_ = "<"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.update_expression"(%4) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: "jshir.continue_statement"() : () -> () +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 73, 76, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} +// JSIR-NEXT: // %5 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.variable_declarator (%4, %5) +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.for_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"i"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %5 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.variable_declarator (%4, %5) +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"i"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+01 : f64} +// JSIR-NEXT: // %5 = 1.000000e+01 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.binary_expression (%4, %5) {"<"} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"i"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.update_expression (%4) {"++", false} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.continue_statement +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} +// JSIR-NEXT: // %5 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 73, 76, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"x"} +// JSIR-NEXT: // %2 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/continue/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/continue/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/continue/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/continue/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/do_while/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/do_while/README.generated.md index b5f63ba..6fc9b38 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/do_while/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/do_while/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/do_while/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/do_while/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/do_while/output.generated.txt index 76c1161..0408605 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/do_while/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/do_while/output.generated.txt @@ -1,163 +1,163 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.variable_declarator"(%8, %9) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%10) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.variable_declarator"(%8, %9) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%10) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.do_while_statement"() ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.binary_expression"(%9, %10) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.assignment_expression"(%8, %11) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%12) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "z"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%8) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 61, 64, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 77, 80, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %9 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.variable_declarator (%8, %9) -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%10) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier_ref {"y"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %9 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.variable_declarator (%8, %9) -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%10) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.do_while_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.identifier {"x"} -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %10 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.binary_expression (%9, %10) {"+"} -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.assignment_expression (%8, %11) {"="} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%12) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"z"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%8) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 61, 64, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"x"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"console"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 77, 80, 0, "log">} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"y"} -// JSHIR-NEXT: // %6 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.call_expression (%5, %6) -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %10 = "jsir.variable_declarator"(%8, %9) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%10) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %10 = "jsir.variable_declarator"(%8, %9) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%10) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.do_while_statement"() ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %10 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.binary_expression"(%9, %10) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %12 = "jsir.assignment_expression"(%8, %11) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%12) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "z"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%8) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 61, 64, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 77, 80, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %9 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.variable_declarator (%8, %9) +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%10) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier_ref {"y"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %9 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.variable_declarator (%8, %9) +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%10) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.do_while_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.identifier {"x"} +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %10 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.binary_expression (%9, %10) {"+"} +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.assignment_expression (%8, %11) {"="} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%12) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"z"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%8) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 61, 64, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"x"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"console"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 77, 80, 0, "log">} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"y"} +// JSIR-NEXT: // %6 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.call_expression (%5, %6) +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/do_while/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/do_while/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/do_while/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/do_while/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/for/README.generated.md index 3311917..577d7cb 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/for/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/for/output.generated.txt index 3969dc6..44176a0 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for/output.generated.txt @@ -1,113 +1,113 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.for_statement"() ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "i"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+01 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "<"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.update_expression"(%0) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 39, 42, 1, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "i"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.for_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"i"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %1 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.variable_declarator (%0, %1) -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%2) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"i"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+01 : f64} -// JSHIR-NEXT: // %1 = 1.000000e+01 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"<"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%2) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"i"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.update_expression (%0) {"++", false} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%1) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 39, 42, 1, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"i"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.for_statement"() ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "i"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+01 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "<"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "i"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.update_expression"(%0) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 39, 42, 1, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "i"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.for_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"i"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %1 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.variable_declarator (%0, %1) +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%2) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"i"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+01 : f64} +// JSIR-NEXT: // %1 = 1.000000e+01 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"<"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%2) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"i"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.update_expression (%0) {"++", false} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%1) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 39, 42, 1, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"i"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/for/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for_in/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/for_in/README.generated.md index 4008045..67edeef 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for_in/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for_in/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/for_in/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for_in/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/for_in/output.generated.txt index 04dfebf..9dee874 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for_in/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for_in/output.generated.txt @@ -1,163 +1,163 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %6 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.variable_declarator"(%6, %7) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%8) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "key"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "object"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.for_in_statement"(%0, %1) <{left_declaration = #jsir, , 16, 23, 1, , , 20, 23, 1, "key", 0, "var">}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.member_expression"(%6) <{literal_property = #jsir, , "log", 47, 50, 2, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "key"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.call_expression"(%7, %8) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () -// JSHIR-NEXT: %10 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.member_expression"(%10) <{literal_property = #jsir, , "log", 67, 70, 2, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.identifier"() <{name = "object"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.identifier"() <{name = "key"}> : () -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.member_expression"(%12, %13) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.call_expression"(%11, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.binary_expression"(%17, %18) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %20 = "jsir.assignment_expression"(%16, %19) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.member_expression"(%2) <{literal_property = #jsir, , "log", 108, 111, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.call_expression"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier_ref {"y"} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %7 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.variable_declarator (%6, %7) -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%8) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"key"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.identifier {"object"} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.for_in_statement (%0, %1) {#jsir, , 16, 23, 1, , , 20, 23, 1, "key", 0, "var">} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"console"} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.member_expression (%6) {#jsir, , "log", 47, 50, 2, "log">} -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"key"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.call_expression (%7, %8) -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%9) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.identifier {"console"} -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.member_expression (%10) {#jsir, , "log", 67, 70, 2, "log">} -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.identifier {"object"} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.identifier {"key"} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.member_expression (%12, %13) -// JSHIR-NEXT: // %14 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.call_expression (%11, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"y"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.identifier {"y"} -// JSHIR-NEXT: // %17 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %18 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.binary_expression (%17, %18) {"+"} -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.assignment_expression (%16, %19) {"="} -// JSHIR-NEXT: // %20 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"console"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.member_expression (%2) {#jsir, , "log", 108, 111, 0, "log">} -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"y"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.call_expression (%3, %4) -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %6 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %8 = "jsir.variable_declarator"(%6, %7) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%8) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "key"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "object"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.for_in_statement"(%0, %1) <{left_declaration = #jsir, , 16, 23, 1, , , 20, 23, 1, "key", 0, "var">}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.member_expression"(%6) <{literal_property = #jsir, , "log", 47, 50, 2, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "key"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.call_expression"(%7, %8) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () +// JSIR-NEXT: %10 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.member_expression"(%10) <{literal_property = #jsir, , "log", 67, 70, 2, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %12 = "jsir.identifier"() <{name = "object"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.identifier"() <{name = "key"}> : () -> !jsir.any +// JSIR-NEXT: %14 = "jsir.member_expression"(%12, %13) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %15 = "jsir.call_expression"(%11, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %19 = "jsir.binary_expression"(%17, %18) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %20 = "jsir.assignment_expression"(%16, %19) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.member_expression"(%2) <{literal_property = #jsir, , "log", 108, 111, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.call_expression"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier_ref {"y"} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %7 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.variable_declarator (%6, %7) +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%8) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"key"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.identifier {"object"} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.for_in_statement (%0, %1) {#jsir, , 16, 23, 1, , , 20, 23, 1, "key", 0, "var">} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"console"} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.member_expression (%6) {#jsir, , "log", 47, 50, 2, "log">} +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"key"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.call_expression (%7, %8) +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%9) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.identifier {"console"} +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.member_expression (%10) {#jsir, , "log", 67, 70, 2, "log">} +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.identifier {"object"} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.identifier {"key"} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.member_expression (%12, %13) +// JSIR-NEXT: // %14 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.call_expression (%11, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"y"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.identifier {"y"} +// JSIR-NEXT: // %17 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %18 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.binary_expression (%17, %18) {"+"} +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.assignment_expression (%16, %19) {"="} +// JSIR-NEXT: // %20 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"console"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.member_expression (%2) {#jsir, , "log", 108, 111, 0, "log">} +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"y"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.call_expression (%3, %4) +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for_in/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/for_in/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for_in/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for_in/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for_of/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/for_of/README.generated.md index a6e296b..cb7b577 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for_of/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for_of/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/for_of/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for_of/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/for_of/output.generated.txt index a73716d..b074bc6 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for_of/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for_of/output.generated.txt @@ -1,136 +1,136 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %6 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.variable_declarator"(%6, %7) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%8) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "array"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.for_of_statement"(%0, %1) <{await = false, left_declaration = #jsir, , 16, 21, 1, , , 20, 21, 1, "x", 0, "var">}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.member_expression"(%6) <{literal_property = #jsir, , "log", 44, 47, 2, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.call_expression"(%7, %8) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () -// JSHIR-NEXT: %10 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.binary_expression"(%11, %12) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.assignment_expression"(%10, %13) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%14) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.member_expression"(%2) <{literal_property = #jsir, , "log", 75, 78, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.call_expression"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier_ref {"y"} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %7 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.variable_declarator (%6, %7) -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%8) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.identifier {"array"} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.for_of_statement (%0, %1) {false, #jsir, , 16, 21, 1, , , 20, 21, 1, "x", 0, "var">} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"console"} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.member_expression (%6) {#jsir, , "log", 44, 47, 2, "log">} -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"x"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.call_expression (%7, %8) -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%9) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.identifier_ref {"y"} -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.identifier {"y"} -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %12 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.binary_expression (%11, %12) {"+"} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.assignment_expression (%10, %13) {"="} -// JSHIR-NEXT: // %14 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%14) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"console"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.member_expression (%2) {#jsir, , "log", 75, 78, 0, "log">} -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"y"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.call_expression (%3, %4) -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %6 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %8 = "jsir.variable_declarator"(%6, %7) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%8) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "array"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.for_of_statement"(%0, %1) <{await = false, left_declaration = #jsir, , 16, 21, 1, , , 20, 21, 1, "x", 0, "var">}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.member_expression"(%6) <{literal_property = #jsir, , "log", 44, 47, 2, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.call_expression"(%7, %8) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () +// JSIR-NEXT: %10 = "jsir.identifier_ref"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %12 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.binary_expression"(%11, %12) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %14 = "jsir.assignment_expression"(%10, %13) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%14) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.member_expression"(%2) <{literal_property = #jsir, , "log", 75, 78, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.call_expression"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier_ref {"y"} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %7 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.variable_declarator (%6, %7) +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%8) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.identifier {"array"} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.for_of_statement (%0, %1) {false, #jsir, , 16, 21, 1, , , 20, 21, 1, "x", 0, "var">} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"console"} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.member_expression (%6) {#jsir, , "log", 44, 47, 2, "log">} +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"x"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.call_expression (%7, %8) +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%9) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.identifier_ref {"y"} +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.identifier {"y"} +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %12 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.binary_expression (%11, %12) {"+"} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.assignment_expression (%10, %13) {"="} +// JSIR-NEXT: // %14 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%14) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"console"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.member_expression (%2) {#jsir, , "log", 75, 78, 0, "log">} +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"y"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.call_expression (%3, %4) +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/for_of/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/for_of/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/for_of/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/for_of/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/function/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/function/README.generated.md index 6bbfd17..6487c41 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/function/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/function/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/function/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/function/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/function/output.generated.txt index 1caf95c..700a9c5 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/function/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/function/output.generated.txt @@ -1,117 +1,117 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.function_declaration"() <{async = false, generator = false, id = #jsir, , "foo", 9, 12, 1, "foo">}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "arg"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %1 = "jsir.identifier_ref"() <{name = "is_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.variable_declarator"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %1 = "jsir.identifier_ref"() <{name = "not_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "arg"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.binary_expression"(%2, %3) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.variable_declarator"(%1, %4) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "is_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.return_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.function_declaration {false, false, #jsir, , "foo", 9, 12, 1, "foo">} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"arg"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%0) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.identifier_ref {"is_a_const"} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %2 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.variable_declarator (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.identifier_ref {"not_a_const"} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"arg"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %3 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.binary_expression (%2, %3) {"+"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.variable_declarator (%1, %4) -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"is_a_const"} -// JSHIR-NEXT: // %0 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.return_statement (%0) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.function_declaration"() <{async = false, generator = false, id = #jsir, , "foo", 9, 12, 1, "foo">}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "arg"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %1 = "jsir.identifier_ref"() <{name = "is_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.variable_declarator"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %1 = "jsir.identifier_ref"() <{name = "not_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "arg"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.binary_expression"(%2, %3) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %5 = "jsir.variable_declarator"(%1, %4) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "is_a_const"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.return_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.function_declaration {false, false, #jsir, , "foo", 9, 12, 1, "foo">} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"arg"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%0) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.identifier_ref {"is_a_const"} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %2 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.variable_declarator (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.identifier_ref {"not_a_const"} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"arg"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %3 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.binary_expression (%2, %3) {"+"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.variable_declarator (%1, %4) +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"is_a_const"} +// JSIR-NEXT: // %0 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.return_statement (%0) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/function/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/function/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/function/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/function/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/if/README.generated.md index 2a27cef..b0de6e8 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/if/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/if/output.generated.txt index e6b1a3c..fbcacd6 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if/output.generated.txt @@ -1,69 +1,69 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.binary_expression"(%2, %3) <{operator_ = "=="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%4) ({ -// JSHIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %5 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %0 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %1 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} -// JSHIR-NEXT: // %2 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %3 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.binary_expression (%2, %3) {"=="} -// JSHIR-NEXT: // %4 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.if_statement (%4) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.identifier {"a"} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.identifier {"b"} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.binary_expression"(%2, %3) <{operator_ = "=="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%4) ({ +// JSIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %5 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %0 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %1 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} +// JSIR-NEXT: // %2 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %3 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.binary_expression (%2, %3) {"=="} +// JSIR-NEXT: // %4 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.if_statement (%4) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.identifier {"a"} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.identifier {"b"} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/if/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/README.generated.md index 4bbfce8..a7de9a6 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/output.generated.txt index d73c8b9..aaaa84e 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/output.generated.txt @@ -1,95 +1,95 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 44, 58, " Should be 1">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.variable_declarator"(%2) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%0) ({ -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[#jsir, , 44, 58, " Should be 1">]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.variable_declarator (%2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %0 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.if_statement (%0) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %3 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.identifier {"a"} -// JSHIR-NEXT: // %1 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%1) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = [#jsir, , 44, 58, " Should be 1">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.variable_declarator"(%2) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%0) ({ +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[#jsir, , 44, 58, " Should be 1">]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.variable_declarator (%2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.boolean_literal {true} +// JSIR-NEXT: // %0 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.if_statement (%0) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %3 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.identifier {"a"} +// JSIR-NEXT: // %1 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%1) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_dead/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/README.generated.md index 353ccd6..78c689b 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/output.generated.txt index ea6835b..bf3622a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/output.generated.txt @@ -1,95 +1,95 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 41, 62, " Should be unknown.">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.variable_declarator"(%2) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%0) ({ -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[#jsir, , 41, 62, " Should be unknown.">]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.variable_declarator (%2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"x"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.if_statement (%0) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %3 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %3 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.identifier {"a"} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%1) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = [#jsir, , 41, 62, " Should be unknown.">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.variable_declarator"(%2) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%0) ({ +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.assignment_expression"(%2, %3) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[#jsir, , 41, 62, " Should be unknown.">]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.variable_declarator (%2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"x"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.if_statement (%0) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %3 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %3 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.assignment_expression (%2, %3) {"="} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.identifier {"a"} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%1) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/if_var_unknown/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/label/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/label/README.generated.md index e74696a..8561487 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/label/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/label/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/label/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/label/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/label/output.generated.txt index 80184a4..c03ec2f 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/label/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/label/output.generated.txt @@ -1,173 +1,173 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "my_label", 11, 19, 0, "my_label">}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %10 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%10) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: "jshir.break_statement"() <{label = #jsir, , "my_label", 72, 80, 4, "my_label">}> : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %7 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.assignment_expression"(%7, %8) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 105, 108, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.variable_declarator (%4, %5) -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.labeled_statement {#jsir, , "my_label", 11, 19, 0, "my_label">} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.while_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %4 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.while_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %10 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%10) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.break_statement {#jsir, , "my_label", 72, 80, 4, "my_label">} -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} -// JSHIR-NEXT: // %8 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.assignment_expression (%7, %8) {"="} -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%9) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 105, 108, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"x"} -// JSHIR-NEXT: // %2 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "my_label", 11, 19, 0, "my_label">}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %4 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %10 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%10) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: "jshir.break_statement"() <{label = #jsir, , "my_label", 72, 80, 4, "my_label">}> : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %7 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %8 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.assignment_expression"(%7, %8) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 105, 108, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %5 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.variable_declarator (%4, %5) +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.labeled_statement {#jsir, , "my_label", 11, 19, 0, "my_label">} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.while_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.boolean_literal {true} +// JSIR-NEXT: // %4 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %5 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.while_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.boolean_literal {true} +// JSIR-NEXT: // %10 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%10) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.break_statement {#jsir, , "my_label", 72, 80, 4, "my_label">} +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} +// JSIR-NEXT: // %8 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.assignment_expression (%7, %8) {"="} +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%9) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 105, 108, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"x"} +// JSIR-NEXT: // %2 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/label/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/label/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/label/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/label/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/literal/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/literal/README.generated.md index 1e7542e..5652ad0 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/literal/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/literal/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/literal/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/literal/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/literal/output.generated.txt index cd520ab..4a03218 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/literal/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/literal/output.generated.txt @@ -1,64 +1,64 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 0, 21, " regular expression">, #jsir, , 28, 35, " null">, #jsir, , 42, 51, " string">, #jsir, , 58, 68, " boolean">, #jsir, , 76, 85, " number">, #jsir, , 90, 100, " big int">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.reg_exp_literal"() <{extra = #jsir, flags = "", pattern = "1"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.null_literal"() : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.string_literal"() <{extra = #jsir, value = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: %3 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: %5 = "jsir.big_int_literal"() <{extra = #jsir, value = "1"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[#jsir, , 0, 21, " regular expression">, #jsir, , 28, 35, " null">, #jsir, , 42, 51, " string">, #jsir, , 58, 68, " boolean">, #jsir, , 76, 85, " number">, #jsir, , 90, 100, " big int">]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.reg_exp_literal {#jsir, "", "1"} -// JSHIR-NEXT: // %0 = #jsir -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%0) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.null_literal -// JSHIR-NEXT: // %1 = #jsir.null_literal -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%1) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.string_literal {#jsir, "a"} -// JSHIR-NEXT: // %2 = "a" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%2) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %3 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %4 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.big_int_literal {#jsir, "1"} -// JSHIR-NEXT: // %5 = #jsir -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = [#jsir, , 0, 21, " regular expression">, #jsir, , 28, 35, " null">, #jsir, , 42, 51, " string">, #jsir, , 58, 68, " boolean">, #jsir, , 76, 85, " number">, #jsir, , 90, 100, " big int">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.reg_exp_literal"() <{extra = #jsir, flags = "", pattern = "1"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.null_literal"() : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.string_literal"() <{extra = #jsir, value = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: %3 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: %5 = "jsir.big_int_literal"() <{extra = #jsir, value = "1"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[#jsir, , 0, 21, " regular expression">, #jsir, , 28, 35, " null">, #jsir, , 42, 51, " string">, #jsir, , 58, 68, " boolean">, #jsir, , 76, 85, " number">, #jsir, , 90, 100, " big int">]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.reg_exp_literal {#jsir, "", "1"} +// JSIR-NEXT: // %0 = #jsir +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%0) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.null_literal +// JSIR-NEXT: // %1 = #jsir.null_literal +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%1) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.string_literal {#jsir, "a"} +// JSIR-NEXT: // %2 = "a" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%2) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.boolean_literal {true} +// JSIR-NEXT: // %3 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %4 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.big_int_literal {#jsir, "1"} +// JSIR-NEXT: // %5 = #jsir +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/literal/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/literal/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/literal/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/literal/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/README.generated.md index ed47f8f..bde87c2 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/output.generated.txt index b8d60e6..0996934 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/output.generated.txt @@ -1,254 +1,254 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.null_literal"() : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ -// JSHIR-NEXT: %20 = "jsir.string_literal"() <{extra = #jsir, value = "default for a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ -// JSHIR-NEXT: %20 = "jsir.string_literal"() <{extra = #jsir, value = "default for b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.200000e+01 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ -// JSHIR-NEXT: %20 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ -// JSHIR-NEXT: %20 = "jsir.string_literal"() <{extra = #jsir, value = "default for d"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 119, 122, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 135, 138, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 151, 154, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () -// JSHIR-NEXT: %12 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.member_expression"(%12) <{literal_property = #jsir, , "log", 167, 170, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.call_expression"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.null_literal -// JSHIR-NEXT: // %17 = #jsir.null_literal -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.string_literal {#jsir, "default for a"} -// JSHIR-NEXT: // %20 = "default for a" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = "default for a" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"b"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.string_literal {#jsir, ""} -// JSHIR-NEXT: // %17 = "" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.string_literal {#jsir, "default for b"} -// JSHIR-NEXT: // %20 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = "" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"c"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.numeric_literal {#jsir, 4.200000e+01 : f64} -// JSHIR-NEXT: // %17 = 4.200000e+01 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %20 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = 4.200000e+01 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"d"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.identifier {"x"} -// JSHIR-NEXT: // %17 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.string_literal {#jsir, "default for d"} -// JSHIR-NEXT: // %20 = "default for d" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 119, 122, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"a"} -// JSHIR-NEXT: // %2 = "default for a" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"console"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 135, 138, 0, "log">} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"b"} -// JSHIR-NEXT: // %6 = "" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.call_expression (%5, %6) -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"console"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 151, 154, 0, "log">} -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.identifier {"c"} -// JSHIR-NEXT: // %10 = 4.200000e+01 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.call_expression (%9, %10) -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%11) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.identifier {"console"} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.member_expression (%12) {#jsir, , "log", 167, 170, 0, "log">} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.identifier {"d"} -// JSHIR-NEXT: // %14 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.call_expression (%13, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.null_literal"() : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ +// JSIR-NEXT: %20 = "jsir.string_literal"() <{extra = #jsir, value = "default for a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ +// JSIR-NEXT: %20 = "jsir.string_literal"() <{extra = #jsir, value = "default for b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.200000e+01 : f64}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ +// JSIR-NEXT: %20 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "??"}> ({ +// JSIR-NEXT: %20 = "jsir.string_literal"() <{extra = #jsir, value = "default for d"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 119, 122, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 135, 138, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 151, 154, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () +// JSIR-NEXT: %12 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.member_expression"(%12) <{literal_property = #jsir, , "log", 167, 170, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %14 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %15 = "jsir.call_expression"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.null_literal +// JSIR-NEXT: // %17 = #jsir.null_literal +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.string_literal {#jsir, "default for a"} +// JSIR-NEXT: // %20 = "default for a" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = "default for a" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"b"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.string_literal {#jsir, ""} +// JSIR-NEXT: // %17 = "" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.string_literal {#jsir, "default for b"} +// JSIR-NEXT: // %20 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = "" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"c"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.numeric_literal {#jsir, 4.200000e+01 : f64} +// JSIR-NEXT: // %17 = 4.200000e+01 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %20 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = 4.200000e+01 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"d"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.identifier {"x"} +// JSIR-NEXT: // %17 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"??"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.string_literal {#jsir, "default for d"} +// JSIR-NEXT: // %20 = "default for d" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 119, 122, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"a"} +// JSIR-NEXT: // %2 = "default for a" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"console"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 135, 138, 0, "log">} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"b"} +// JSIR-NEXT: // %6 = "" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.call_expression (%5, %6) +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"console"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 151, 154, 0, "log">} +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.identifier {"c"} +// JSIR-NEXT: // %10 = 4.200000e+01 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.call_expression (%9, %10) +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%11) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.identifier {"console"} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.member_expression (%12) {#jsir, , "log", 167, 170, 0, "log">} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.identifier {"d"} +// JSIR-NEXT: // %14 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.call_expression (%13, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/nullish_coalesce/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/README.generated.md index fbd781f..7172c6d 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/output.generated.txt index 7ca274f..0a6badc 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/output.generated.txt @@ -1,221 +1,221 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 27, 31, " s">, #jsir, , 62, 66, " e">, #jsir, , 87, 91, " l">, #jsir, , 112, 116, " l">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.parenthesized_expression"(%2) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.binary_expression"(%4, %5) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.binary_expression"(%6, %7) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.member_expression"(%3, %8) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.string_literal"() <{extra = #jsir, value = "h"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.binary_expression"(%9, %10) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.unary_expression"(%12) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.binary_expression"(%13, %14) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %16 = "jsir.parenthesized_expression"(%15) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jsir.unary_expression"(%17) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %20 = "jsir.unary_expression"(%19) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %21 = "jsir.binary_expression"(%18, %20) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %22 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %23 = "jsir.unary_expression"(%22) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %24 = "jsir.binary_expression"(%21, %23) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %25 = "jsir.member_expression"(%16, %24) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %26 = "jsir.binary_expression"(%11, %25) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %27 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: %28 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any -// JSHIR-NEXT: %29 = "jsir.binary_expression"(%27, %28) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %30 = "jsir.parenthesized_expression"(%29) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %31 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %32 = "jsir.unary_expression"(%31) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %33 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %34 = "jsir.unary_expression"(%33) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %35 = "jsir.binary_expression"(%32, %34) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %36 = "jsir.member_expression"(%30, %35) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %37 = "jsir.binary_expression"(%26, %36) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %38 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: %39 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any -// JSHIR-NEXT: %40 = "jsir.binary_expression"(%38, %39) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %41 = "jsir.parenthesized_expression"(%40) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %42 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %43 = "jsir.unary_expression"(%42) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %44 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %45 = "jsir.unary_expression"(%44) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %46 = "jsir.binary_expression"(%43, %45) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %47 = "jsir.member_expression"(%41, %46) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %48 = "jsir.binary_expression"(%37, %47) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%48) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[#jsir, , 27, 31, " s">, #jsir, , 62, 66, " e">, #jsir, , 87, 91, " l">, #jsir, , 112, 116, " l">]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %0 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.string_literal {#jsir, ""} -// JSHIR-NEXT: // %1 = "" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} -// JSHIR-NEXT: // %2 = "false" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.parenthesized_expression (%2) -// JSHIR-NEXT: // %3 = "false" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %4 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %5 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.binary_expression (%4, %5) {"+"} -// JSHIR-NEXT: // %6 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %7 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.binary_expression (%6, %7) {"+"} -// JSHIR-NEXT: // %8 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.member_expression (%3, %8) -// JSHIR-NEXT: // %9 = "s" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.string_literal {#jsir, "h"} -// JSHIR-NEXT: // %10 = "h" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.binary_expression (%9, %10) {"+"} -// JSHIR-NEXT: // %11 = "sh" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %12 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.unary_expression (%12) {"!", true} -// JSHIR-NEXT: // %13 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.string_literal {#jsir, ""} -// JSHIR-NEXT: // %14 = "" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.binary_expression (%13, %14) {"+"} -// JSHIR-NEXT: // %15 = "true" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.parenthesized_expression (%15) -// JSHIR-NEXT: // %16 = "true" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %17 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jsir.unary_expression (%17) {"!", true} -// JSHIR-NEXT: // %18 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %19 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.unary_expression (%19) {"!", true} -// JSHIR-NEXT: // %20 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %21 = jsir.binary_expression (%18, %20) {"+"} -// JSHIR-NEXT: // %21 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %22 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %22 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %23 = jsir.unary_expression (%22) {"!", true} -// JSHIR-NEXT: // %23 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %24 = jsir.binary_expression (%21, %23) {"+"} -// JSHIR-NEXT: // %24 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %25 = jsir.member_expression (%16, %24) -// JSHIR-NEXT: // %25 = "e" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %26 = jsir.binary_expression (%11, %25) {"+"} -// JSHIR-NEXT: // %26 = "she" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %27 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %27 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %28 = jsir.string_literal {#jsir, ""} -// JSHIR-NEXT: // %28 = "" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %29 = jsir.binary_expression (%27, %28) {"+"} -// JSHIR-NEXT: // %29 = "false" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %30 = jsir.parenthesized_expression (%29) -// JSHIR-NEXT: // %30 = "false" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %31 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %31 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %32 = jsir.unary_expression (%31) {"!", true} -// JSHIR-NEXT: // %32 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %33 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %33 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %34 = jsir.unary_expression (%33) {"!", true} -// JSHIR-NEXT: // %34 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %35 = jsir.binary_expression (%32, %34) {"+"} -// JSHIR-NEXT: // %35 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %36 = jsir.member_expression (%30, %35) -// JSHIR-NEXT: // %36 = "l" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %37 = jsir.binary_expression (%26, %36) {"+"} -// JSHIR-NEXT: // %37 = "shel" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %38 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %38 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %39 = jsir.string_literal {#jsir, ""} -// JSHIR-NEXT: // %39 = "" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %40 = jsir.binary_expression (%38, %39) {"+"} -// JSHIR-NEXT: // %40 = "false" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %41 = jsir.parenthesized_expression (%40) -// JSHIR-NEXT: // %41 = "false" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %42 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %42 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %43 = jsir.unary_expression (%42) {"!", true} -// JSHIR-NEXT: // %43 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %44 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %44 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %45 = jsir.unary_expression (%44) {"!", true} -// JSHIR-NEXT: // %45 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %46 = jsir.binary_expression (%43, %45) {"+"} -// JSHIR-NEXT: // %46 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %47 = jsir.member_expression (%41, %46) -// JSHIR-NEXT: // %47 = "l" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %48 = jsir.binary_expression (%37, %47) {"+"} -// JSHIR-NEXT: // %48 = "shell" -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%48) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = [#jsir, , 27, 31, " s">, #jsir, , 62, 66, " e">, #jsir, , 87, 91, " l">, #jsir, , 112, 116, " l">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.parenthesized_expression"(%2) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.binary_expression"(%4, %5) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %7 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: %8 = "jsir.binary_expression"(%6, %7) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %9 = "jsir.member_expression"(%3, %8) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.string_literal"() <{extra = #jsir, value = "h"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.binary_expression"(%9, %10) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %12 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.unary_expression"(%12) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %14 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any +// JSIR-NEXT: %15 = "jsir.binary_expression"(%13, %14) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %16 = "jsir.parenthesized_expression"(%15) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %17 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jsir.unary_expression"(%17) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %20 = "jsir.unary_expression"(%19) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %21 = "jsir.binary_expression"(%18, %20) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %22 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %23 = "jsir.unary_expression"(%22) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %24 = "jsir.binary_expression"(%21, %23) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %25 = "jsir.member_expression"(%16, %24) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %26 = "jsir.binary_expression"(%11, %25) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %27 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: %28 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any +// JSIR-NEXT: %29 = "jsir.binary_expression"(%27, %28) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %30 = "jsir.parenthesized_expression"(%29) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %31 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %32 = "jsir.unary_expression"(%31) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %33 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %34 = "jsir.unary_expression"(%33) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %35 = "jsir.binary_expression"(%32, %34) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %36 = "jsir.member_expression"(%30, %35) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %37 = "jsir.binary_expression"(%26, %36) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %38 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: %39 = "jsir.string_literal"() <{extra = #jsir, value = ""}> : () -> !jsir.any +// JSIR-NEXT: %40 = "jsir.binary_expression"(%38, %39) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %41 = "jsir.parenthesized_expression"(%40) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %42 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %43 = "jsir.unary_expression"(%42) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %44 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %45 = "jsir.unary_expression"(%44) <{operator_ = "!", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %46 = "jsir.binary_expression"(%43, %45) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %47 = "jsir.member_expression"(%41, %46) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %48 = "jsir.binary_expression"(%37, %47) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%48) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[#jsir, , 27, 31, " s">, #jsir, , 62, 66, " e">, #jsir, , 87, 91, " l">, #jsir, , 112, 116, " l">]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.boolean_literal {false} +// JSIR-NEXT: // %0 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.string_literal {#jsir, ""} +// JSIR-NEXT: // %1 = "" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} +// JSIR-NEXT: // %2 = "false" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.parenthesized_expression (%2) +// JSIR-NEXT: // %3 = "false" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.boolean_literal {true} +// JSIR-NEXT: // %4 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.boolean_literal {true} +// JSIR-NEXT: // %5 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.binary_expression (%4, %5) {"+"} +// JSIR-NEXT: // %6 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.boolean_literal {true} +// JSIR-NEXT: // %7 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.binary_expression (%6, %7) {"+"} +// JSIR-NEXT: // %8 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.member_expression (%3, %8) +// JSIR-NEXT: // %9 = "s" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.string_literal {#jsir, "h"} +// JSIR-NEXT: // %10 = "h" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.binary_expression (%9, %10) {"+"} +// JSIR-NEXT: // %11 = "sh" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.boolean_literal {false} +// JSIR-NEXT: // %12 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.unary_expression (%12) {"!", true} +// JSIR-NEXT: // %13 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.string_literal {#jsir, ""} +// JSIR-NEXT: // %14 = "" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.binary_expression (%13, %14) {"+"} +// JSIR-NEXT: // %15 = "true" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.parenthesized_expression (%15) +// JSIR-NEXT: // %16 = "true" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %17 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jsir.unary_expression (%17) {"!", true} +// JSIR-NEXT: // %18 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %19 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.unary_expression (%19) {"!", true} +// JSIR-NEXT: // %20 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %21 = jsir.binary_expression (%18, %20) {"+"} +// JSIR-NEXT: // %21 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %22 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %22 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %23 = jsir.unary_expression (%22) {"!", true} +// JSIR-NEXT: // %23 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %24 = jsir.binary_expression (%21, %23) {"+"} +// JSIR-NEXT: // %24 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %25 = jsir.member_expression (%16, %24) +// JSIR-NEXT: // %25 = "e" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %26 = jsir.binary_expression (%11, %25) {"+"} +// JSIR-NEXT: // %26 = "she" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %27 = jsir.boolean_literal {false} +// JSIR-NEXT: // %27 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %28 = jsir.string_literal {#jsir, ""} +// JSIR-NEXT: // %28 = "" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %29 = jsir.binary_expression (%27, %28) {"+"} +// JSIR-NEXT: // %29 = "false" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %30 = jsir.parenthesized_expression (%29) +// JSIR-NEXT: // %30 = "false" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %31 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %31 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %32 = jsir.unary_expression (%31) {"!", true} +// JSIR-NEXT: // %32 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %33 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %33 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %34 = jsir.unary_expression (%33) {"!", true} +// JSIR-NEXT: // %34 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %35 = jsir.binary_expression (%32, %34) {"+"} +// JSIR-NEXT: // %35 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %36 = jsir.member_expression (%30, %35) +// JSIR-NEXT: // %36 = "l" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %37 = jsir.binary_expression (%26, %36) {"+"} +// JSIR-NEXT: // %37 = "shel" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %38 = jsir.boolean_literal {false} +// JSIR-NEXT: // %38 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %39 = jsir.string_literal {#jsir, ""} +// JSIR-NEXT: // %39 = "" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %40 = jsir.binary_expression (%38, %39) {"+"} +// JSIR-NEXT: // %40 = "false" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %41 = jsir.parenthesized_expression (%40) +// JSIR-NEXT: // %41 = "false" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %42 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %42 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %43 = jsir.unary_expression (%42) {"!", true} +// JSIR-NEXT: // %43 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %44 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %44 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %45 = jsir.unary_expression (%44) {"!", true} +// JSIR-NEXT: // %45 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %46 = jsir.binary_expression (%43, %45) {"+"} +// JSIR-NEXT: // %46 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %47 = jsir.member_expression (%41, %46) +// JSIR-NEXT: // %47 = "l" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %48 = jsir.binary_expression (%37, %47) {"+"} +// JSIR-NEXT: // %48 = "shell" +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%48) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/obfuscated/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/or/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/or/README.generated.md index cb8336a..b83fd0e 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/or/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/or/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/or/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/or/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/or/output.generated.txt index 894e0b7..0ad2ab6 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/or/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/or/output.generated.txt @@ -1,254 +1,254 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ -// JSHIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 93, 96, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 109, 112, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 125, 128, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () -// JSHIR-NEXT: %12 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.member_expression"(%12) <{literal_property = #jsir, , "log", 141, 144, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.call_expression"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %17 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %20 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"b"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %17 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %20 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"c"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.identifier {"x"} -// JSHIR-NEXT: // %17 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {true} -// JSHIR-NEXT: // %20 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.identifier_ref {"d"} -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.identifier {"x"} -// JSHIR-NEXT: // %17 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %20 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %20 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%20) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // %18 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.variable_declarator (%16, %18) -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 93, 96, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"a"} -// JSHIR-NEXT: // %2 = true -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"console"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 109, 112, 0, "log">} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"b"} -// JSHIR-NEXT: // %6 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.call_expression (%5, %6) -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"console"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 125, 128, 0, "log">} -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.identifier {"c"} -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.call_expression (%9, %10) -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%11) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.identifier {"console"} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.member_expression (%12) {#jsir, , "log", 141, 144, 0, "log">} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.identifier {"d"} -// JSHIR-NEXT: // %14 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.call_expression (%13, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %16 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %18 = "jshir.logical_expression"(%17) <{operator_ = "||"}> ({ +// JSIR-NEXT: %20 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%20) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %19 = "jsir.variable_declarator"(%16, %18) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 93, 96, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 109, 112, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.member_expression"(%8) <{literal_property = #jsir, , "log", 125, 128, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.call_expression"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%11) : (!jsir.any) -> () +// JSIR-NEXT: %12 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.member_expression"(%12) <{literal_property = #jsir, , "log", 141, 144, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %14 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %15 = "jsir.call_expression"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%15) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.boolean_literal {true} +// JSIR-NEXT: // %17 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {true} +// JSIR-NEXT: // %20 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"b"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.boolean_literal {false} +// JSIR-NEXT: // %17 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {false} +// JSIR-NEXT: // %20 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"c"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.identifier {"x"} +// JSIR-NEXT: // %17 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {true} +// JSIR-NEXT: // %20 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.identifier_ref {"d"} +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.identifier {"x"} +// JSIR-NEXT: // %17 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jshir.logical_expression (%17) {"||"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %20 = jsir.boolean_literal {false} +// JSIR-NEXT: // %20 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%20) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // %18 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.variable_declarator (%16, %18) +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 93, 96, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"a"} +// JSIR-NEXT: // %2 = true +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"console"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 109, 112, 0, "log">} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"b"} +// JSIR-NEXT: // %6 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.call_expression (%5, %6) +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"console"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.member_expression (%8) {#jsir, , "log", 125, 128, 0, "log">} +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.identifier {"c"} +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.call_expression (%9, %10) +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%11) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.identifier {"console"} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.member_expression (%12) {#jsir, , "log", 141, 144, 0, "log">} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.identifier {"d"} +// JSIR-NEXT: // %14 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.call_expression (%13, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/or/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/or/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/or/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/or/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/simple/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/simple/README.generated.md index 7fec99b..8ba3509 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/simple/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/simple/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/simple/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/simple/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/simple/output.generated.txt index 89cd31c..0ee4701 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/simple/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/simple/output.generated.txt @@ -1,37 +1,37 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %0 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %1 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} -// JSHIR-NEXT: // %2 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%2) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %0 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %1 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} +// JSIR-NEXT: // %2 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%2) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/simple/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/simple/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/simple/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/simple/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/README.generated.md index 7af6eb5..e21ece9 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/output.generated.txt index 3022e99..8decb5e 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/output.generated.txt @@ -1,60 +1,60 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %4 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.variable_declarator (%3, %4) -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"a"} -// JSHIR-NEXT: // %0 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %1 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} -// JSHIR-NEXT: // %2 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%2) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %4 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.variable_declarator (%3, %4) +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"a"} +// JSIR-NEXT: // %0 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %1 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.binary_expression (%0, %1) {"+"} +// JSIR-NEXT: // %2 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%2) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/simple_symbol/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/switch/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/switch/README.generated.md index 9ec393f..3a8be37 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/switch/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/switch/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/switch/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/switch/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/switch/output.generated.txt index b277b03..4e57809 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/switch/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/switch/output.generated.txt @@ -1,199 +1,199 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.variable_declarator"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.switch_statement"(%0) ({ -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: "jsir.empty_statement"() : () -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.member_expression"(%1) <{literal_property = #jsir, , "log", 130, 133, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.call_expression"(%2, %3) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %6 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.variable_declarator (%5, %6) -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"x"} -// JSHIR-NEXT: // %0 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.switch_statement (%0) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.switch_case ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.break_statement -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.switch_case ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.switch_case ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 3.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} -// JSHIR-NEXT: // %6 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.break_statement -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.switch_case ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.numeric_literal {#jsir, 5.000000e+00 : f64} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.break_statement -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.empty_statement -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.identifier {"console"} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.member_expression (%1) {#jsir, , "log", 130, 133, 0, "log">} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.identifier {"x"} -// JSHIR-NEXT: // %3 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.call_expression (%2, %3) -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.variable_declarator"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%7) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.switch_statement"(%0) ({ +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: "jsir.empty_statement"() : () -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.member_expression"(%1) <{literal_property = #jsir, , "log", 130, 133, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.call_expression"(%2, %3) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %6 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.variable_declarator (%5, %6) +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"x"} +// JSIR-NEXT: // %0 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.switch_statement (%0) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.switch_case ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %5 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.break_statement +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.switch_case ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %5 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.switch_case ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} +// JSIR-NEXT: // %5 = 3.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} +// JSIR-NEXT: // %6 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.break_statement +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.switch_case ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} +// JSIR-NEXT: // %5 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.numeric_literal {#jsir, 5.000000e+00 : f64} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.break_statement +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.empty_statement +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.identifier {"console"} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.member_expression (%1) {#jsir, , "log", 130, 133, 0, "log">} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.identifier {"x"} +// JSIR-NEXT: // %3 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.call_expression (%2, %3) +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/switch/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/switch/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/switch/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/switch/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/test_config.json b/maldoca/js/ir/analyses/constant_propagation/tests/test_config.json new file mode 100644 index 0000000..25da8e7 --- /dev/null +++ b/maldoca/js/ir/analyses/constant_propagation/tests/test_config.json @@ -0,0 +1,11 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,ast2jsir", + "jsir_analysis": "constant_propagation", + "prefix": "JSIR" + } + ], + "build_template": "../../BUILD.general.template" +} diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/README.generated.md index d85f0d9..b8762b3 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/output.generated.txt index e7e1c7c..8de334a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/output.generated.txt @@ -1,181 +1,181 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.try_statement"() ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "e"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.catch_clause"(%4) ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 80, 83, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.variable_declarator (%4, %5) -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.try_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 2.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"e"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.catch_clause (%4) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 80, 83, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"x"} -// JSHIR-NEXT: // %2 = 4.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.try_statement"() ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "e"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.catch_clause"(%4) ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 80, 83, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %5 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.variable_declarator (%4, %5) +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.try_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %5 = 2.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"e"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.catch_clause (%4) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} +// JSIR-NEXT: // %5 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 80, 83, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"x"} +// JSIR-NEXT: // %2 = 4.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/try_catch/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/README.generated.md index c4ab2b4..2510a71 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/output.generated.txt index 9a2fc7a..518643f 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/output.generated.txt @@ -1,60 +1,60 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %1 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.assignment_expression (%0, %1) {"="} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%2) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.identifier_ref {"c"} -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"a"} -// JSHIR-NEXT: // %4 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.variable_declarator (%3, %4) -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%5) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %1 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.assignment_expression (%0, %1) {"="} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%2) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.identifier_ref {"c"} +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"a"} +// JSIR-NEXT: // %4 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.variable_declarator (%3, %4) +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%5) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/undeclared_var/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/README.generated.md index d3013bb..77e38ce 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/output.generated.txt index 5865606..aabdbc8 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/output.generated.txt @@ -1,123 +1,123 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.update_expression"(%3) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.update_expression"(%8) <{operator_ = "++", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () -// JSHIR-NEXT: %10 = "jsir.identifier_ref"() <{name = "should_be_0"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.update_expression"(%11) <{operator_ = "--", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.assignment_expression"(%10, %12) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%13) : (!jsir.any) -> () -// JSHIR-NEXT: %14 = "jsir.identifier_ref"() <{name = "unknown"}> : () -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.identifier"() <{name = "getUnknown"}> : () -> !jsir.any -// JSHIR-NEXT: %16 = "jsir.call_expression"(%15) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.assignment_expression"(%14, %16) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%17) : (!jsir.any) -> () -// JSHIR-NEXT: %18 = "jsir.identifier_ref"() <{name = "unknown"}> : () -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.update_expression"(%18) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%19) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %1 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.assignment_expression (%0, %1) {"="} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%2) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.update_expression (%3) {"++", false} -// JSHIR-NEXT: // %4 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.identifier_ref {"b"} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %6 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier_ref {"b"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.update_expression (%8) {"++", true} -// JSHIR-NEXT: // %9 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%9) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.identifier_ref {"should_be_0"} -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.update_expression (%11) {"--", true} -// JSHIR-NEXT: // %12 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.assignment_expression (%10, %12) {"="} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%13) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.identifier_ref {"unknown"} -// JSHIR-NEXT: // %14 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.identifier {"getUnknown"} -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %16 = jsir.call_expression (%15) -// JSHIR-NEXT: // %16 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %17 = jsir.assignment_expression (%14, %16) {"="} -// JSHIR-NEXT: // %17 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%17) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %18 = jsir.identifier_ref {"unknown"} -// JSHIR-NEXT: // %18 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %19 = jsir.update_expression (%18) {"++", false} -// JSHIR-NEXT: // %19 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%19) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.update_expression"(%3) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: %5 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.assignment_expression"(%5, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.update_expression"(%8) <{operator_ = "++", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%9) : (!jsir.any) -> () +// JSIR-NEXT: %10 = "jsir.identifier_ref"() <{name = "should_be_0"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %12 = "jsir.update_expression"(%11) <{operator_ = "--", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %13 = "jsir.assignment_expression"(%10, %12) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%13) : (!jsir.any) -> () +// JSIR-NEXT: %14 = "jsir.identifier_ref"() <{name = "unknown"}> : () -> !jsir.any +// JSIR-NEXT: %15 = "jsir.identifier"() <{name = "getUnknown"}> : () -> !jsir.any +// JSIR-NEXT: %16 = "jsir.call_expression"(%15) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %17 = "jsir.assignment_expression"(%14, %16) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%17) : (!jsir.any) -> () +// JSIR-NEXT: %18 = "jsir.identifier_ref"() <{name = "unknown"}> : () -> !jsir.any +// JSIR-NEXT: %19 = "jsir.update_expression"(%18) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%19) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %1 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.assignment_expression (%0, %1) {"="} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%2) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.update_expression (%3) {"++", false} +// JSIR-NEXT: // %4 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.identifier_ref {"b"} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %6 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.assignment_expression (%5, %6) {"="} +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier_ref {"b"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.update_expression (%8) {"++", true} +// JSIR-NEXT: // %9 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%9) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.identifier_ref {"should_be_0"} +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.update_expression (%11) {"--", true} +// JSIR-NEXT: // %12 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.assignment_expression (%10, %12) {"="} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%13) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.identifier_ref {"unknown"} +// JSIR-NEXT: // %14 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.identifier {"getUnknown"} +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %16 = jsir.call_expression (%15) +// JSIR-NEXT: // %16 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %17 = jsir.assignment_expression (%14, %16) {"="} +// JSIR-NEXT: // %17 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%17) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %18 = jsir.identifier_ref {"unknown"} +// JSIR-NEXT: // %18 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %19 = jsir.update_expression (%18) {"++", false} +// JSIR-NEXT: // %19 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%19) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/update_expression/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/void_0/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/void_0/README.generated.md index 276cc6a..88d7cfb 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/void_0/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/void_0/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/void_0/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/void_0/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/void_0/output.generated.txt index 0c2cf4b..c587bff 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/void_0/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/void_0/output.generated.txt @@ -1,49 +1,49 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.unary_expression"(%1) <{operator_ = "void", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.variable_declarator"(%0, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier_ref {"a"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// JSHIR-NEXT: // %1 = 0.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.unary_expression (%1) {"void", true} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.variable_declarator (%0, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.unary_expression"(%1) <{operator_ = "void", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.variable_declarator"(%0, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier_ref {"a"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} +// JSIR-NEXT: // %1 = 0.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.unary_expression (%1) {"void", true} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.variable_declarator (%0, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/void_0/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/void_0/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/void_0/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/void_0/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/while/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/while/README.generated.md index 5ac421b..36f6753 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/while/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/while/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/while/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/while/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/while/output.generated.txt index cb38535..61d645c 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/while/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/while/output.generated.txt @@ -1,163 +1,163 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 0, 53, " TODO(b/217662731): `is_a_const` should be a const.">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "not_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.variable_declarator"(%8, %9) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%10) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%8) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "not_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.identifier"() <{name = "not_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.binary_expression"(%9, %10) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.assignment_expression"(%8, %11) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%12) : (!jsir.any) -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %13 = "jsir.identifier_ref"() <{name = "is_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.variable_declarator"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 153, 156, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "not_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 179, 182, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "is_a_const"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[#jsir, , 0, 53, " TODO(b/217662731): `is_a_const` should be a const.">]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier_ref {"not_a_const"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %9 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.variable_declarator (%8, %9) -// JSHIR-NEXT: // %10 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%10) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.while_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier {"x"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%8) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %8 = jsir.identifier_ref {"not_a_const"} -// JSHIR-NEXT: // %8 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %9 = jsir.identifier {"not_a_const"} -// JSHIR-NEXT: // %9 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %10 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %10 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %11 = jsir.binary_expression (%9, %10) {"+"} -// JSHIR-NEXT: // %11 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %12 = jsir.assignment_expression (%8, %11) {"="} -// JSHIR-NEXT: // %12 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%12) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %13 = jsir.identifier_ref {"is_a_const"} -// JSHIR-NEXT: // %13 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %14 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %14 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %15 = jsir.variable_declarator (%13, %14) -// JSHIR-NEXT: // %15 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%15) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 153, 156, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"not_a_const"} -// JSHIR-NEXT: // %2 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier {"console"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 179, 182, 0, "log">} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.identifier {"is_a_const"} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %7 = jsir.call_expression (%5, %6) -// JSHIR-NEXT: // %7 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%7) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = [#jsir, , 0, 53, " TODO(b/217662731): `is_a_const` should be a const.">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "not_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %10 = "jsir.variable_declarator"(%8, %9) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%10) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%8) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "not_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.identifier"() <{name = "not_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %10 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.binary_expression"(%9, %10) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %12 = "jsir.assignment_expression"(%8, %11) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%12) : (!jsir.any) -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %13 = "jsir.identifier_ref"() <{name = "is_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %14 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %15 = "jsir.variable_declarator"(%13, %14) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%15) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 153, 156, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "not_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.member_expression"(%4) <{literal_property = #jsir, , "log", 179, 182, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "is_a_const"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.call_expression"(%5, %6) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[#jsir, , 0, 53, " TODO(b/217662731): `is_a_const` should be a const.">]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier_ref {"not_a_const"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %9 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.variable_declarator (%8, %9) +// JSIR-NEXT: // %10 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%10) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.while_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier {"x"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%8) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %8 = jsir.identifier_ref {"not_a_const"} +// JSIR-NEXT: // %8 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %9 = jsir.identifier {"not_a_const"} +// JSIR-NEXT: // %9 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %10 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %10 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %11 = jsir.binary_expression (%9, %10) {"+"} +// JSIR-NEXT: // %11 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %12 = jsir.assignment_expression (%8, %11) {"="} +// JSIR-NEXT: // %12 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%12) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %13 = jsir.identifier_ref {"is_a_const"} +// JSIR-NEXT: // %13 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %14 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %14 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %15 = jsir.variable_declarator (%13, %14) +// JSIR-NEXT: // %15 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%15) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 153, 156, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"not_a_const"} +// JSIR-NEXT: // %2 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier {"console"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.member_expression (%4) {#jsir, , "log", 179, 182, 0, "log">} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.identifier {"is_a_const"} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %7 = jsir.call_expression (%5, %6) +// JSIR-NEXT: // %7 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%7) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/while/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/while/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/while/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/while/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/README.generated.md b/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/README.generated.md index 74e197c..fdf21af 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/README.generated.md +++ b/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/README.generated.md @@ -3,6 +3,6 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/input.js \ - --passes "source2ast,ast2hir" \ + --passes "source2ast,ast2jsir" \ --jsir_analysis constant_propagation ``` diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/output.generated.txt b/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/output.generated.txt index f78bb92..fc03c66 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/output.generated.txt +++ b/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/output.generated.txt @@ -1,113 +1,113 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 46, 49, 0, "log">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: jsir.file {[]} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.program {"script"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.variable_declaration {"var"} ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// JSHIR-NEXT: // %5 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.variable_declarator (%4, %5) -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.exprs_region_end (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.while_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.boolean_literal {false} -// JSHIR-NEXT: // %4 = false -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expr_region_end (%4) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jshir.block_statement ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %4 = jsir.identifier_ref {"x"} -// JSHIR-NEXT: // %4 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// JSHIR-NEXT: // %5 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} -// JSHIR-NEXT: // %6 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%6) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %0 = jsir.identifier {"console"} -// JSHIR-NEXT: // %0 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 46, 49, 0, "log">} -// JSHIR-NEXT: // %1 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %2 = jsir.identifier {"x"} -// JSHIR-NEXT: // %2 = 1.000000e+00 : f64 -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: %3 = jsir.call_expression (%1, %2) -// JSHIR-NEXT: // %3 = -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: jsir.expression_statement (%3) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: // -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } -// JSHIR-NEXT: }) -// JSHIR-NEXT: // State [default = ] { } +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.variable_declarator"(%4, %5) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %4 = "jsir.boolean_literal"() <{value = false}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.assignment_expression"(%4, %5) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "console"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "log", 46, 49, 0, "log">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.call_expression"(%1, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: jsir.file {[]} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.program {"script"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.variable_declaration {"var"} ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} +// JSIR-NEXT: // %5 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.variable_declarator (%4, %5) +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.exprs_region_end (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.while_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.boolean_literal {false} +// JSIR-NEXT: // %4 = false +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expr_region_end (%4) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jshir.block_statement ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %4 = jsir.identifier_ref {"x"} +// JSIR-NEXT: // %4 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %5 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} +// JSIR-NEXT: // %5 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %6 = jsir.assignment_expression (%4, %5) {"="} +// JSIR-NEXT: // %6 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%6) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %0 = jsir.identifier {"console"} +// JSIR-NEXT: // %0 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %1 = jsir.member_expression (%0) {#jsir, , "log", 46, 49, 0, "log">} +// JSIR-NEXT: // %1 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %2 = jsir.identifier {"x"} +// JSIR-NEXT: // %2 = 1.000000e+00 : f64 +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: %3 = jsir.call_expression (%1, %2) +// JSIR-NEXT: // %3 = +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: jsir.expression_statement (%3) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: // +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } +// JSIR-NEXT: }) +// JSIR-NEXT: // State [default = ] { } diff --git a/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/run.generated.lit b/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/run.generated.lit index f120aee..cb71d6a 100644 --- a/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/run.generated.lit +++ b/maldoca/js/ir/analyses/constant_propagation/tests/while_dead/run.generated.lit @@ -1,5 +1,5 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ +// RUN: --passes "source2ast,ast2jsir" \ // RUN: --jsir_analysis constant_propagation \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname %s)"/output.generated.txt +// RUN: | FileCheck --check-prefix JSIR "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/conversion/tests/array_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/array_expression/jshir.mlir index ba79345..b32bb24 100644 --- a/maldoca/js/ir/conversion/tests/array_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/array_expression/jshir.mlir @@ -1,13 +1,13 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.none"() : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.spread_element"(%3) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.array_expression"(%0, %1, %2, %4) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.none"() : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.spread_element"(%3) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %5 = "jsir.array_expression"(%0, %1, %2, %4) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/array_expression/run.lit b/maldoca/js/ir/conversion/tests/array_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/array_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/array_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/array_pattern/jshir.mlir b/maldoca/js/ir/conversion/tests/array_pattern/jshir.mlir index 2b600e7..bee211e 100644 --- a/maldoca/js/ir/conversion/tests/array_pattern/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/array_pattern/jshir.mlir @@ -1,15 +1,15 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.none"() : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.array_pattern_ref"(%0, %1, %2) : (!jsir.any, !jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.none"() : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.array_pattern_ref"(%0, %1, %2) : (!jsir.any, !jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/array_pattern/run.lit b/maldoca/js/ir/conversion/tests/array_pattern/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/array_pattern/run.lit +++ b/maldoca/js/ir/conversion/tests/array_pattern/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/arrow_function_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/arrow_function_expression/jshir.mlir index 4970597..2516695 100644 --- a/maldoca/js/ir/conversion/tests/arrow_function_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/arrow_function_expression/jshir.mlir @@ -1,22 +1,22 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.arrow_function_expression"(%0) <{async = false, generator = false, operandSegmentSizes = array}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.arrow_function_expression"(%2) <{async = false, generator = false, operandSegmentSizes = array}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.arrow_function_expression"(%0) <{async = false, generator = false, operandSegmentSizes = array}> ({ +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "x"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.arrow_function_expression"(%2) <{async = false, generator = false, operandSegmentSizes = array}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "y"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/arrow_function_expression/run.lit b/maldoca/js/ir/conversion/tests/arrow_function_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/arrow_function_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/arrow_function_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/binary_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/binary_expression/jshir.mlir index ca61bd1..ac55f88 100644 --- a/maldoca/js/ir/conversion/tests/binary_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/binary_expression/jshir.mlir @@ -1,12 +1,12 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.binary_expression"(%2, %3) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.binary_expression"(%0, %1) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.binary_expression"(%2, %3) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/binary_expression/run.lit b/maldoca/js/ir/conversion/tests/binary_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/binary_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/binary_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/block_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/block_statement/jshir.mlir index bfb1258..0a83ca5 100644 --- a/maldoca/js/ir/conversion/tests/block_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/block_statement/jshir.mlir @@ -1,14 +1,14 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/block_statement/run.lit b/maldoca/js/ir/conversion/tests/block_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/block_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/block_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/break/jshir.mlir b/maldoca/js/ir/conversion/tests/break/jshir.mlir index ffb6139..7682ba2 100644 --- a/maldoca/js/ir/conversion/tests/break/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/break/jshir.mlir @@ -1,50 +1,50 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 0, 80, " =============================================================================">, #jsir, , 81, 112, " Breaking out of a while loop">, #jsir, , 113, 193, " =============================================================================">, #jsir, , 235, 315, " =============================================================================">, #jsir, , 316, 352, " Breaking out of second while loop">, #jsir, , 353, 433, " =============================================================================">, #jsir, , 514, 594, " =============================================================================">, #jsir, , 595, 630, " Breaking immediately after label">, #jsir, , 631, 711, " =============================================================================">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%1) ({ -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label0", 435, 441, 0, "label0">}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label1", 462, 468, 4, "label1">}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%1) ({ -// JSHIR-NEXT: "jshir.break_statement"() <{label = #jsir, , "label0", 503, 509, 5, "label0">}> : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label", 713, 718, 0, "label">}> ({ -// JSHIR-NEXT: "jshir.break_statement"() <{label = #jsir, , "label", 726, 731, 0, "label">}> : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = [#jsir, , 0, 80, " =============================================================================">, #jsir, , 81, 112, " Breaking out of a while loop">, #jsir, , 113, 193, " =============================================================================">, #jsir, , 235, 315, " =============================================================================">, #jsir, , 316, 352, " Breaking out of second while loop">, #jsir, , 353, 433, " =============================================================================">, #jsir, , 514, 594, " =============================================================================">, #jsir, , 595, 630, " Breaking immediately after label">, #jsir, , 631, 711, " =============================================================================">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%1) ({ +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label0", 435, 441, 0, "label0">}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label1", 462, 468, 4, "label1">}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%1) ({ +// JSIR-NEXT: "jshir.break_statement"() <{label = #jsir, , "label0", 503, 509, 5, "label0">}> : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label", 713, 718, 0, "label">}> ({ +// JSIR-NEXT: "jshir.break_statement"() <{label = #jsir, , "label", 726, 731, 0, "label">}> : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/break/run.lit b/maldoca/js/ir/conversion/tests/break/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/break/run.lit +++ b/maldoca/js/ir/conversion/tests/break/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/call_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/call_expression/jshir.mlir index 4fc0b2e..d63193a 100644 --- a/maldoca/js/ir/conversion/tests/call_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/call_expression/jshir.mlir @@ -1,16 +1,16 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "foo"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.call_expression"(%0) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "bar"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.spread_element"(%5) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.call_expression"(%2, %3, %4, %6) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "foo"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.call_expression"(%0) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "bar"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.spread_element"(%5) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %7 = "jsir.call_expression"(%2, %3, %4, %6) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/call_expression/run.lit b/maldoca/js/ir/conversion/tests/call_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/call_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/call_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/class_declaration/jshir.mlir b/maldoca/js/ir/conversion/tests/class_declaration/jshir.mlir index cb3c622..1df7c60 100644 --- a/maldoca/js/ir/conversion/tests/class_declaration/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/class_declaration/jshir.mlir @@ -1,67 +1,67 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.class_declaration"() <{id = #jsir, , "Foo", 6, 9, 1, "Foo">}> ({ -// JSHIR-NEXT: "jsir.class_body"() ({ -// JSHIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , "property_identifier", 14, 33, 1, "property_identifier">, static_ = false}> ({ -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_private_property"() <{key = #jsir, , 41, 63, 1, , , "property_private_name", 42, 63, 1, "property_private_name">, static_ = false}> ({ -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 71, 96, 1, "property_literal_string", "\22property_literal_string\22", "property_literal_string">, static_ = false}> ({ -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 104, 107, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, static_ = false}> ({ -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %0 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.class_property"(%0) <{static_ = false}> ({ -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , "method_identifier", 144, 161, 1, "method_identifier">, operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_private_method"() <{async = false, generator = false, key = #jsir, , 169, 189, 1, , , "method_private_name", 170, 189, 1, "method_private_name">, kind = "method", static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 197, 220, 1, "method_literal_string", "\22method_literal_string\22", "method_literal_string">, operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 228, 231, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %1 = "jsir.string_literal"() <{extra = #jsir, value = "method_computed"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.class_method"(%1) <{async = false, generator = false, kind = "method", operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.class_declaration"() <{id = #jsir, , "Foo", 6, 9, 1, "Foo">}> ({ +// JSIR-NEXT: "jsir.class_body"() ({ +// JSIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , "property_identifier", 14, 33, 1, "property_identifier">, static_ = false}> ({ +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_private_property"() <{key = #jsir, , 41, 63, 1, , , "property_private_name", 42, 63, 1, "property_private_name">, static_ = false}> ({ +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 71, 96, 1, "property_literal_string", "\22property_literal_string\22", "property_literal_string">, static_ = false}> ({ +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 104, 107, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, static_ = false}> ({ +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %0 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.class_property"(%0) <{static_ = false}> ({ +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , "method_identifier", 144, 161, 1, "method_identifier">, operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_private_method"() <{async = false, generator = false, key = #jsir, , 169, 189, 1, , , "method_private_name", 170, 189, 1, "method_private_name">, kind = "method", static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 197, 220, 1, "method_literal_string", "\22method_literal_string\22", "method_literal_string">, operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 228, 231, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %1 = "jsir.string_literal"() <{extra = #jsir, value = "method_computed"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.class_method"(%1) <{async = false, generator = false, kind = "method", operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/class_declaration/run.lit b/maldoca/js/ir/conversion/tests/class_declaration/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/class_declaration/run.lit +++ b/maldoca/js/ir/conversion/tests/class_declaration/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/class_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/class_expression/jshir.mlir index d64ce5d..f6969ea 100644 --- a/maldoca/js/ir/conversion/tests/class_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/class_expression/jshir.mlir @@ -1,69 +1,69 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.class_expression"() ({ -// JSHIR-NEXT: "jsir.class_body"() ({ -// JSHIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , "property_identifier", 11, 30, 1, "property_identifier">, static_ = false}> ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_private_property"() <{key = #jsir, , 38, 60, 1, , , "property_private_name", 39, 60, 1, "property_private_name">, static_ = false}> ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 68, 93, 1, "property_literal_string", "\22property_literal_string\22", "property_literal_string">, static_ = false}> ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 101, 104, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, static_ = false}> ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %2 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.class_property"(%2) <{static_ = false}> ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , "method_identifier", 141, 158, 1, "method_identifier">, operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_private_method"() <{async = false, generator = false, key = #jsir, , 166, 186, 1, , , "method_private_name", 167, 186, 1, "method_private_name">, kind = "method", static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 194, 217, 1, "method_literal_string", "\22method_literal_string\22", "method_literal_string">, operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 225, 228, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: %3 = "jsir.string_literal"() <{extra = #jsir, value = "method_computed"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.class_method"(%3) <{async = false, generator = false, kind = "method", operandSegmentSizes = array, static_ = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.parenthesized_expression"(%0) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.class_expression"() ({ +// JSIR-NEXT: "jsir.class_body"() ({ +// JSIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , "property_identifier", 11, 30, 1, "property_identifier">, static_ = false}> ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_private_property"() <{key = #jsir, , 38, 60, 1, , , "property_private_name", 39, 60, 1, "property_private_name">, static_ = false}> ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 68, 93, 1, "property_literal_string", "\22property_literal_string\22", "property_literal_string">, static_ = false}> ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_property"() <{literal_key = #jsir, , 101, 104, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, static_ = false}> ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %2 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.class_property"(%2) <{static_ = false}> ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 5.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , "method_identifier", 141, 158, 1, "method_identifier">, operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_private_method"() <{async = false, generator = false, key = #jsir, , 166, 186, 1, , , "method_private_name", 167, 186, 1, "method_private_name">, kind = "method", static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 194, 217, 1, "method_literal_string", "\22method_literal_string\22", "method_literal_string">, operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.class_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 225, 228, 1, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: %3 = "jsir.string_literal"() <{extra = #jsir, value = "method_computed"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.class_method"(%3) <{async = false, generator = false, kind = "method", operandSegmentSizes = array, static_ = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.parenthesized_expression"(%0) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/class_expression/run.lit b/maldoca/js/ir/conversion/tests/class_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/class_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/class_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/comment/jshir.mlir b/maldoca/js/ir/conversion/tests/comment/jshir.mlir index 5cf9a7c..0df66e3 100644 --- a/maldoca/js/ir/conversion/tests/comment/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/comment/jshir.mlir @@ -1,10 +1,10 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 0, 4, " 1">, #jsir, , 8, 12, " 2">, #jsir, , 15, 22, " 3 ">, #jsir, , 24, 28, " 4">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = [#jsir, , 0, 4, " 1">, #jsir, , 8, 12, " 2">, #jsir, , 15, 22, " 3 ">, #jsir, , 24, 28, " 4">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/comment/run.lit b/maldoca/js/ir/conversion/tests/comment/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/comment/run.lit +++ b/maldoca/js/ir/conversion/tests/comment/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/conditional_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/conditional_expression/jshir.mlir index 25572e4..01009c6 100644 --- a/maldoca/js/ir/conversion/tests/conditional_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/conditional_expression/jshir.mlir @@ -1,15 +1,15 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jshir.conditional_expression"(%0) ({ -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jshir.conditional_expression"(%0) ({ +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/conditional_expression/run.lit b/maldoca/js/ir/conversion/tests/conditional_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/conditional_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/conditional_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/continue_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/continue_statement/jshir.mlir index 0522606..bbaac4e 100644 --- a/maldoca/js/ir/conversion/tests/continue_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/continue_statement/jshir.mlir @@ -1,47 +1,47 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%0) ({ -// JSHIR-NEXT: "jshir.continue_statement"() : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label0", 43, 49, 0, "label0">}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label1", 70, 76, 4, "label1">}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%1) ({ -// JSHIR-NEXT: "jshir.continue_statement"() <{label = #jsir, , "label0", 114, 120, 5, "label0">}> : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%0) ({ +// JSIR-NEXT: "jshir.continue_statement"() : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label0", 43, 49, 0, "label0">}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label1", 70, 76, 4, "label1">}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%1) ({ +// JSIR-NEXT: "jshir.continue_statement"() <{label = #jsir, , "label0", 114, 120, 5, "label0">}> : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/continue_statement/run.lit b/maldoca/js/ir/conversion/tests/continue_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/continue_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/continue_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/debugger_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/debugger_statement/jshir.mlir index 3815037..8920c40 100644 --- a/maldoca/js/ir/conversion/tests/debugger_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/debugger_statement/jshir.mlir @@ -1,7 +1,7 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.debugger_statement"() : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.debugger_statement"() : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/debugger_statement/run.lit b/maldoca/js/ir/conversion/tests/debugger_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/debugger_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/debugger_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/directive_literal/jshir.mlir b/maldoca/js/ir/conversion/tests/directive_literal/jshir.mlir index 5fc9948..8ef1849 100644 --- a/maldoca/js/ir/conversion/tests/directive_literal/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/directive_literal/jshir.mlir @@ -1,8 +1,8 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.directive_literal"() <{extra = #jsir, value = "use strict"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.directive"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.directive_literal"() <{extra = #jsir, value = "use strict"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.directive"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/directive_literal/run.lit b/maldoca/js/ir/conversion/tests/directive_literal/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/directive_literal/run.lit +++ b/maldoca/js/ir/conversion/tests/directive_literal/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/do_while_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/do_while_statement/jshir.mlir index d879b29..67b602e 100644 --- a/maldoca/js/ir/conversion/tests/do_while_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/do_while_statement/jshir.mlir @@ -1,24 +1,24 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.do_while_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.do_while_statement"() ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.do_while_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.do_while_statement"() ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/do_while_statement/run.lit b/maldoca/js/ir/conversion/tests/do_while_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/do_while_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/do_while_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/empty_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/empty_statement/jshir.mlir index 3c13eb4..8d81422 100644 --- a/maldoca/js/ir/conversion/tests/empty_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/empty_statement/jshir.mlir @@ -1,7 +1,7 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.empty_statement"() : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.empty_statement"() : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/empty_statement/run.lit b/maldoca/js/ir/conversion/tests/empty_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/empty_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/empty_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/export_declaration/jshir.mlir b/maldoca/js/ir/conversion/tests/export_declaration/jshir.mlir index 6d6fb80..960a91d 100644 --- a/maldoca/js/ir/conversion/tests/export_declaration/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/export_declaration/jshir.mlir @@ -1,20 +1,20 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 139, 175, " TODO(b/182441574): Fix AST error.">, #jsir, , 176, 215, " export * as identifier_3 from \22foo\22;">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "module"}> ({ -// JSHIR-NEXT: "jsir.export_default_declaration"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "arbitrary_expression"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.export_named_declaration"() <{source = #jsir, , 83, 88, 0, "foo", "\22foo\22", "foo">, specifiers = [#jsir, , 46, 58, 0, #jsir, , "identifier_1", 46, 58, 0, "identifier_1">, #jsir, , "identifier_1", 46, 58, 0, "identifier_1">>, #jsir, , 60, 76, 0, #jsir, , 60, 76, 0, "string_literal", "\22string_literal\22", "string_literal">, #jsir, , 60, 76, 0, "string_literal", "\22string_literal\22", "string_literal">>]}> ({ -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.export_named_declaration"() <{specifiers = []}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "identifier_2"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.variable_declarator"(%0) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.export_all_declaration"() <{source = #jsir, , 131, 136, 0, "foo", "\22foo\22", "foo">}> : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = [#jsir, , 139, 175, " TODO(b/182441574): Fix AST error.">, #jsir, , 176, 215, " export * as identifier_3 from \22foo\22;">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "module"}> ({ +// JSIR-NEXT: "jsir.export_default_declaration"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "arbitrary_expression"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.export_named_declaration"() <{source = #jsir, , 83, 88, 0, "foo", "\22foo\22", "foo">, specifiers = [#jsir, , 46, 58, 0, #jsir, , "identifier_1", 46, 58, 0, "identifier_1">, #jsir, , "identifier_1", 46, 58, 0, "identifier_1">>, #jsir, , 60, 76, 0, #jsir, , 60, 76, 0, "string_literal", "\22string_literal\22", "string_literal">, #jsir, , 60, 76, 0, "string_literal", "\22string_literal\22", "string_literal">>]}> ({ +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.export_named_declaration"() <{specifiers = []}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "identifier_2"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.variable_declarator"(%0) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.export_all_declaration"() <{source = #jsir, , 131, 136, 0, "foo", "\22foo\22", "foo">}> : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/export_declaration/run.lit b/maldoca/js/ir/conversion/tests/export_declaration/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/export_declaration/run.lit +++ b/maldoca/js/ir/conversion/tests/export_declaration/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/for_in_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/for_in_statement/jshir.mlir index 41e5961..b413cdf 100644 --- a/maldoca/js/ir/conversion/tests/for_in_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/for_in_statement/jshir.mlir @@ -1,18 +1,18 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.for_in_statement"(%0, %1) ({ -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.for_in_statement"(%2, %3) <{left_declaration = #jsir, , 24, 29, 2, , , 28, 29, 2, "a", 2, "let">}> ({ -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.for_in_statement"(%0, %1) ({ +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.for_in_statement"(%2, %3) <{left_declaration = #jsir, , 24, 29, 2, , , 28, 29, 2, "a", 2, "let">}> ({ +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/for_in_statement/run.lit b/maldoca/js/ir/conversion/tests/for_in_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/for_in_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/for_in_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/for_of_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/for_of_statement/jshir.mlir index 2cbfdc0..be51861 100644 --- a/maldoca/js/ir/conversion/tests/for_of_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/for_of_statement/jshir.mlir @@ -1,28 +1,28 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.for_of_statement"(%0, %1) <{await = false}> ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.for_of_statement"(%2, %3) <{await = false, left_declaration = #jsir, , 24, 29, 2, , , 28, 29, 2, "a", 2, "let">}> ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.for_of_statement"(%4, %5) <{await = false}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.for_of_statement"(%0, %1) <{await = false}> ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.for_of_statement"(%2, %3) <{await = false, left_declaration = #jsir, , 24, 29, 2, , , 28, 29, 2, "a", 2, "let">}> ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.for_of_statement"(%4, %5) <{await = false}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/for_of_statement/run.lit b/maldoca/js/ir/conversion/tests/for_of_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/for_of_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/for_of_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/for_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/for_statement/jshir.mlir index cd8d399..da168a1 100644 --- a/maldoca/js/ir/conversion/tests/for_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/for_statement/jshir.mlir @@ -1,47 +1,47 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.for_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.for_statement"() ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.variable_declarator"(%0) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.for_statement"() ({ -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.for_statement"() ({ -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.for_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }, { +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.for_statement"() ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.variable_declarator"(%0) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }, { +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.for_statement"() ({ +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.for_statement"() ({ +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/for_statement/run.lit b/maldoca/js/ir/conversion/tests/for_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/for_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/for_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/function_declaration/jshir.mlir b/maldoca/js/ir/conversion/tests/function_declaration/jshir.mlir index 3ff6c5d..81d4dc4 100644 --- a/maldoca/js/ir/conversion/tests/function_declaration/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/function_declaration/jshir.mlir @@ -1,31 +1,31 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.function_declaration"() <{async = false, generator = false, id = #jsir, , "foo", 9, 12, 1, "foo">}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.return_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.function_declaration"() <{async = false, generator = false, id = #jsir, , "bar", 42, 45, 2, "bar">}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "some_computation"}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.call_expression"(%1) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.assignment_pattern_ref"(%0, %2) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.return_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.function_declaration"() <{async = false, generator = false, id = #jsir, , "foo", 9, 12, 1, "foo">}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.return_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.function_declaration"() <{async = false, generator = false, id = #jsir, , "bar", 42, 45, 2, "bar">}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "some_computation"}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.call_expression"(%1) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.assignment_pattern_ref"(%0, %2) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.return_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/function_declaration/run.lit b/maldoca/js/ir/conversion/tests/function_declaration/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/function_declaration/run.lit +++ b/maldoca/js/ir/conversion/tests/function_declaration/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/generate_tests.py b/maldoca/js/ir/conversion/tests/generate_tests.py deleted file mode 100644 index 788bd92..0000000 --- a/maldoca/js/ir/conversion/tests/generate_tests.py +++ /dev/null @@ -1,92 +0,0 @@ -"""Generates test files for the conversion tests. - -In each directory, only `input.js` is manually written. The other files are -generated by running this tool. - -Usage: python3 generate_tests.py -""" - -import os -import shutil -import subprocess -import sys - - -def run_command(cmd: str) -> bytes: - """Run a shell command and return its output.""" - - print("Running:") - print(" ", cmd) - - try: - return subprocess.check_output(cmd, shell=True, stderr=subprocess.PIPE) - except subprocess.CalledProcessError as e: - print("Error running command, output:", e.output) - sys.exit(1) - - -def generate_test_file(name: str, output_name: str, passes: str, prefix: str): - """Generates a test file. - - Args: - name: Test case name. - output_name: The output file will be /. - passes: Comma-separated list of JSIR passes. - prefix: FileCheck prefix. - """ - output = run_command( - "bazel run //maldoca/js/ir:jsir_gen --" - f" --input_file {'$(pwd)/' + name + '/input.js'}" - f" --passes='{passes}'" - ) - - output = output.strip() - - # Prepend prefix - lines = output.split(b"\n") - out_lines = [] - for i, line in enumerate(lines): - if not line: - line = f"// {prefix}-EMPTY:".encode() - elif i == 0: - line = f"// {prefix}: ".encode() + line - else: - line = f"// {prefix}-NEXT: ".encode() + line - out_lines.append(line) - - output = b"\n".join(out_lines) + b"\n" - - with open(name + "/" + output_name, "wb") as f: - f.write(output) - - -if __name__ == "__main__": - for entry in os.listdir(os.path.dirname(__file__)): - if not os.path.isdir(entry): - continue - - print("Generating test:", entry) - - generate_test_file( - entry, - output_name="ast.json", - passes="source2ast", - prefix="AST", - ) - - generate_test_file( - entry, - output_name="jshir.mlir", - passes="source2ast,ast2hir", - prefix="JSHIR", - ) - - generate_test_file( - entry, - output_name="output.js", - passes="source2ast,ast2source", - prefix="SOURCE", - ) - - shutil.copyfile("run.lit.template", os.path.join(entry, "run.lit")) - shutil.copyfile("BUILD.template.bzl", os.path.join(entry, "BUILD")) diff --git a/maldoca/js/ir/conversion/tests/if_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/if_statement/jshir.mlir index 3a07c79..d91b102 100644 --- a/maldoca/js/ir/conversion/tests/if_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/if_statement/jshir.mlir @@ -1,24 +1,24 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%0) ({ -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%1) ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%0) ({ +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%1) ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/if_statement/run.lit b/maldoca/js/ir/conversion/tests/if_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/if_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/if_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/import_declaration/jshir.mlir b/maldoca/js/ir/conversion/tests/import_declaration/jshir.mlir index 455b43c..65657c8 100644 --- a/maldoca/js/ir/conversion/tests/import_declaration/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/import_declaration/jshir.mlir @@ -1,10 +1,10 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "module"}> ({ -// JSHIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 30, 35, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 7, 24, 0, "default_specifier", 0, , , "default_specifier", 7, 24, 0, "default_specifier">]}> : () -> () -// JSHIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 62, 67, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 46, 55, 0, "specifier", 0, #jsir, , "specifier", 46, 55, 0, "specifier">, , , "specifier", 46, 55, 0, "specifier">]}> : () -> () -// JSHIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 107, 112, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 78, 88, 0, "specifier1", 0, #jsir, , "specifier1", 78, 88, 0, "specifier1">, , , "specifier1", 78, 88, 0, "specifier1">, #jsir, , 90, 100, 0, "specifier2", 0, #jsir, , "specifier2", 90, 100, 0, "specifier2">, , , "specifier2", 90, 100, 0, "specifier2">]}> : () -> () -// JSHIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 152, 157, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 122, 146, 0, "namespace_specifier", 0, , , "namespace_specifier", 127, 146, 0, "namespace_specifier">]}> : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "module"}> ({ +// JSIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 30, 35, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 7, 24, 0, "default_specifier", 0, , , "default_specifier", 7, 24, 0, "default_specifier">]}> : () -> () +// JSIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 62, 67, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 46, 55, 0, "specifier", 0, #jsir, , "specifier", 46, 55, 0, "specifier">, , , "specifier", 46, 55, 0, "specifier">]}> : () -> () +// JSIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 107, 112, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 78, 88, 0, "specifier1", 0, #jsir, , "specifier1", 78, 88, 0, "specifier1">, , , "specifier1", 78, 88, 0, "specifier1">, #jsir, , 90, 100, 0, "specifier2", 0, #jsir, , "specifier2", 90, 100, 0, "specifier2">, , , "specifier2", 90, 100, 0, "specifier2">]}> : () -> () +// JSIR-NEXT: "jsir.import_declaration"() <{source = #jsir, , 152, 157, 0, "src", "\22src\22", "src">, specifiers = [#jsir, , 122, 146, 0, "namespace_specifier", 0, , , "namespace_specifier", 127, 146, 0, "namespace_specifier">]}> : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/import_declaration/run.lit b/maldoca/js/ir/conversion/tests/import_declaration/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/import_declaration/run.lit +++ b/maldoca/js/ir/conversion/tests/import_declaration/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/interpreter_directive/jshir.mlir b/maldoca/js/ir/conversion/tests/interpreter_directive/jshir.mlir index a0571ba..e472b2d 100644 --- a/maldoca/js/ir/conversion/tests/interpreter_directive/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/interpreter_directive/jshir.mlir @@ -1,7 +1,7 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{interpreter = #jsir, , 0, 25, "/usr/bin/env babel-node">, source_type = "script"}> ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{interpreter = #jsir, , 0, 25, "/usr/bin/env babel-node">, source_type = "script"}> ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/interpreter_directive/run.lit b/maldoca/js/ir/conversion/tests/interpreter_directive/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/interpreter_directive/run.lit +++ b/maldoca/js/ir/conversion/tests/interpreter_directive/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/labeled_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/labeled_statement/jshir.mlir index 27ddccf..298192d 100644 --- a/maldoca/js/ir/conversion/tests/labeled_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/labeled_statement/jshir.mlir @@ -1,14 +1,14 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label", 0, 5, 0, "label">}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.if_statement"(%0) ({ -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.labeled_statement"() <{label = #jsir, , "label", 0, 5, 0, "label">}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.if_statement"(%0) ({ +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/labeled_statement/run.lit b/maldoca/js/ir/conversion/tests/labeled_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/labeled_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/labeled_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/literal/jshir.mlir b/maldoca/js/ir/conversion/tests/literal/jshir.mlir index f5f14e7..0693310 100644 --- a/maldoca/js/ir/conversion/tests/literal/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/literal/jshir.mlir @@ -1,18 +1,18 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 0, 21, " regular expression">, #jsir, , 28, 35, " null">, #jsir, , 42, 51, " string">, #jsir, , 58, 68, " boolean">, #jsir, , 76, 85, " number">, #jsir, , 90, 100, " big int">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.reg_exp_literal"() <{extra = #jsir, flags = "", pattern = "1"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.null_literal"() : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.string_literal"() <{extra = #jsir, value = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: %3 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: %5 = "jsir.big_int_literal"() <{extra = #jsir, value = "1"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = [#jsir, , 0, 21, " regular expression">, #jsir, , 28, 35, " null">, #jsir, , 42, 51, " string">, #jsir, , 58, 68, " boolean">, #jsir, , 76, 85, " number">, #jsir, , 90, 100, " big int">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.reg_exp_literal"() <{extra = #jsir, flags = "", pattern = "1"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.null_literal"() : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.string_literal"() <{extra = #jsir, value = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: %3 = "jsir.boolean_literal"() <{value = true}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: %5 = "jsir.big_int_literal"() <{extra = #jsir, value = "1"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/literal/run.lit b/maldoca/js/ir/conversion/tests/literal/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/literal/run.lit +++ b/maldoca/js/ir/conversion/tests/literal/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/load_store_identifier/jshir.mlir b/maldoca/js/ir/conversion/tests/load_store_identifier/jshir.mlir index 0213c32..7173af2 100644 --- a/maldoca/js/ir/conversion/tests/load_store_identifier/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/load_store_identifier/jshir.mlir @@ -1,12 +1,12 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/load_store_identifier/run.lit b/maldoca/js/ir/conversion/tests/load_store_identifier/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/load_store_identifier/run.lit +++ b/maldoca/js/ir/conversion/tests/load_store_identifier/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/logical_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/logical_expression/jshir.mlir index d4a1088..aaa26f6 100644 --- a/maldoca/js/ir/conversion/tests/logical_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/logical_expression/jshir.mlir @@ -1,24 +1,24 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jshir.logical_expression"(%0) <{operator_ = "&&"}> ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jshir.logical_expression"(%2) <{operator_ = "||"}> ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jshir.logical_expression"(%4) <{operator_ = "??"}> ({ -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jshir.logical_expression"(%0) <{operator_ = "&&"}> ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jshir.logical_expression"(%2) <{operator_ = "||"}> ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jshir.logical_expression"(%4) <{operator_ = "??"}> ({ +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/logical_expression/run.lit b/maldoca/js/ir/conversion/tests/logical_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/logical_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/logical_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/member_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/member_expression/jshir.mlir index 416c0f7..ba0ace0 100644 --- a/maldoca/js/ir/conversion/tests/member_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/member_expression/jshir.mlir @@ -1,24 +1,24 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "b", 2, 3, 0, "b">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.member_expression"(%2, %3) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.member_expression_ref"(%5) <{literal_property = #jsir, , "b", 15, 16, 0, "b">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.assignment_expression"(%6, %7) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%8) : (!jsir.any) -> () -// JSHIR-NEXT: %9 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.member_expression_ref"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.assignment_expression"(%11, %12) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%13) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.member_expression"(%0) <{literal_property = #jsir, , "b", 2, 3, 0, "b">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.member_expression"(%2, %3) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.member_expression_ref"(%5) <{literal_property = #jsir, , "b", 15, 16, 0, "b">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %7 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %8 = "jsir.assignment_expression"(%6, %7) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%8) : (!jsir.any) -> () +// JSIR-NEXT: %9 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %10 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.member_expression_ref"(%9, %10) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %12 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.assignment_expression"(%11, %12) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%13) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/member_expression/run.lit b/maldoca/js/ir/conversion/tests/member_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/member_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/member_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/meta_property/jshir.mlir b/maldoca/js/ir/conversion/tests/meta_property/jshir.mlir index af9df4f..8959e93 100644 --- a/maldoca/js/ir/conversion/tests/meta_property/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/meta_property/jshir.mlir @@ -1,8 +1,8 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "module"}> ({ -// JSHIR-NEXT: %0 = "jsir.meta_property"() <{meta = #jsir, , "import", 0, 6, 0, "import">, property = #jsir, , "meta", 7, 11, 0, "meta">}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "module"}> ({ +// JSIR-NEXT: %0 = "jsir.meta_property"() <{meta = #jsir, , "import", 0, 6, 0, "import">, property = #jsir, , "meta", 7, 11, 0, "meta">}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/meta_property/run.lit b/maldoca/js/ir/conversion/tests/meta_property/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/meta_property/run.lit +++ b/maldoca/js/ir/conversion/tests/meta_property/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/new_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/new_expression/jshir.mlir index 4636746..f42f7af 100644 --- a/maldoca/js/ir/conversion/tests/new_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/new_expression/jshir.mlir @@ -1,13 +1,13 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "foo"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.spread_element"(%3) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.new_expression"(%0, %1, %2, %4) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "foo"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.spread_element"(%3) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %5 = "jsir.new_expression"(%0, %1, %2, %4) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/new_expression/run.lit b/maldoca/js/ir/conversion/tests/new_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/new_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/new_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/object_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/object_expression/jshir.mlir index 1013772..ff7bd2e 100644 --- a/maldoca/js/ir/conversion/tests/object_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/object_expression/jshir.mlir @@ -1,53 +1,53 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.object_expression"() ({ -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "short_hand"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.object_property"(%2) <{literal_key = #jsir, , "short_hand", 5, 15, 0, "short_hand">, shorthand = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.object_property"(%4) <{literal_key = #jsir, , "property_identifier", 19, 38, 0, "property_identifier">, shorthand = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.object_property"(%6) <{literal_key = #jsir, , 45, 70, 0, "property_string_literal", "\22property_string_literal\22", "property_string_literal">, shorthand = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.object_property"(%8) <{literal_key = #jsir, , 77, 80, 0, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, shorthand = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.object_property"(%10, %11) <{shorthand = false}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.object_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , "method_identifier", 115, 132, 0, "method_identifier">, operandSegmentSizes = array}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.object_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 141, 166, 0, "property_string_literal", "\22property_string_literal\22", "property_string_literal">, operandSegmentSizes = array}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.object_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 175, 178, 0, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, operandSegmentSizes = array}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> !jsir.any -// JSHIR-NEXT: %16 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any -// JSHIR-NEXT: %17 = "jsir.object_method"(%16) <{async = false, generator = false, kind = "method", operandSegmentSizes = array}> ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %18 = "jsir.identifier"() <{name = "spread_element"}> : () -> !jsir.any -// JSHIR-NEXT: %19 = "jsir.spread_element"(%18) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%3, %5, %7, %9, %12, %13, %14, %15, %17, %19) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any) -> () -// JSHIR-NEXT: }) : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.parenthesized_expression"(%0) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.object_expression"() ({ +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "short_hand"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.object_property"(%2) <{literal_key = #jsir, , "short_hand", 5, 15, 0, "short_hand">, shorthand = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.object_property"(%4) <{literal_key = #jsir, , "property_identifier", 19, 38, 0, "property_identifier">, shorthand = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.object_property"(%6) <{literal_key = #jsir, , 45, 70, 0, "property_string_literal", "\22property_string_literal\22", "property_string_literal">, shorthand = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %8 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.object_property"(%8) <{literal_key = #jsir, , 77, 80, 0, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, shorthand = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.numeric_literal"() <{extra = #jsir, value = 4.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %12 = "jsir.object_property"(%10, %11) <{shorthand = false}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %13 = "jsir.object_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , "method_identifier", 115, 132, 0, "method_identifier">, operandSegmentSizes = array}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> !jsir.any +// JSIR-NEXT: %14 = "jsir.object_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 141, 166, 0, "property_string_literal", "\22property_string_literal\22", "property_string_literal">, operandSegmentSizes = array}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> !jsir.any +// JSIR-NEXT: %15 = "jsir.object_method"() <{async = false, generator = false, kind = "method", literal_key = #jsir, , 175, 178, 0, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, operandSegmentSizes = array}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> !jsir.any +// JSIR-NEXT: %16 = "jsir.string_literal"() <{extra = #jsir, value = "property_computed"}> : () -> !jsir.any +// JSIR-NEXT: %17 = "jsir.object_method"(%16) <{async = false, generator = false, kind = "method", operandSegmentSizes = array}> ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %18 = "jsir.identifier"() <{name = "spread_element"}> : () -> !jsir.any +// JSIR-NEXT: %19 = "jsir.spread_element"(%18) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%3, %5, %7, %9, %12, %13, %14, %15, %17, %19) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any) -> () +// JSIR-NEXT: }) : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.parenthesized_expression"(%0) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/object_expression/run.lit b/maldoca/js/ir/conversion/tests/object_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/object_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/object_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/object_pattern/jshir.mlir b/maldoca/js/ir/conversion/tests/object_pattern/jshir.mlir index e18f177..8c5d26c 100644 --- a/maldoca/js/ir/conversion/tests/object_pattern/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/object_pattern/jshir.mlir @@ -1,26 +1,26 @@ -// JSHIR: "jsir.file"() <{comments = [#jsir, , 0, 48, " Must wrap with \22()\22, otherwise doesn't parse.">]}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.object_pattern_ref"() ({ -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "lvalue_shorthand"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.object_property_ref"(%4) <{literal_key = #jsir, , "lvalue_shorthand", 59, 75, 0, "lvalue_shorthand">, shorthand = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier_ref"() <{name = "lvalue_1"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.object_property_ref"(%6) <{literal_key = #jsir, , "identifier", 81, 91, 0, "identifier">, shorthand = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "lvalue_2"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.object_property_ref"(%8) <{literal_key = #jsir, , 107, 123, 0, "string_literal", "'string_literal'", "string_literal">, shorthand = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.identifier_ref"() <{name = "lvalue_3"}> : () -> !jsir.any -// JSHIR-NEXT: %11 = "jsir.object_property_ref"(%10) <{literal_key = #jsir, , 139, 142, 0, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, shorthand = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %12 = "jsir.string_literal"() <{extra = #jsir, value = "computed"}> : () -> !jsir.any -// JSHIR-NEXT: %13 = "jsir.identifier_ref"() <{name = "lvalue_4"}> : () -> !jsir.any -// JSHIR-NEXT: %14 = "jsir.object_property_ref"(%12, %13) <{shorthand = false}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %15 = "jsir.identifier_ref"() <{name = "lvalue_rest"}> : () -> !jsir.any -// JSHIR-NEXT: %16 = "jsir.rest_element_ref"(%15) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%5, %7, %9, %11, %14, %16) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any) -> () -// JSHIR-NEXT: }) : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "obj"}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.parenthesized_expression"(%2) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = [#jsir, , 0, 48, " Must wrap with \22()\22, otherwise doesn't parse.">]}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.object_pattern_ref"() ({ +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "lvalue_shorthand"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.object_property_ref"(%4) <{literal_key = #jsir, , "lvalue_shorthand", 59, 75, 0, "lvalue_shorthand">, shorthand = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier_ref"() <{name = "lvalue_1"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.object_property_ref"(%6) <{literal_key = #jsir, , "identifier", 81, 91, 0, "identifier">, shorthand = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %8 = "jsir.identifier_ref"() <{name = "lvalue_2"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.object_property_ref"(%8) <{literal_key = #jsir, , 107, 123, 0, "string_literal", "'string_literal'", "string_literal">, shorthand = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.identifier_ref"() <{name = "lvalue_3"}> : () -> !jsir.any +// JSIR-NEXT: %11 = "jsir.object_property_ref"(%10) <{literal_key = #jsir, , 139, 142, 0, 1.000000e+00 : f64, "1.0", 1.000000e+00 : f64>, shorthand = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %12 = "jsir.string_literal"() <{extra = #jsir, value = "computed"}> : () -> !jsir.any +// JSIR-NEXT: %13 = "jsir.identifier_ref"() <{name = "lvalue_4"}> : () -> !jsir.any +// JSIR-NEXT: %14 = "jsir.object_property_ref"(%12, %13) <{shorthand = false}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %15 = "jsir.identifier_ref"() <{name = "lvalue_rest"}> : () -> !jsir.any +// JSIR-NEXT: %16 = "jsir.rest_element_ref"(%15) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%5, %7, %9, %11, %14, %16) : (!jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any) -> () +// JSIR-NEXT: }) : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "obj"}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.assignment_expression"(%0, %1) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.parenthesized_expression"(%2) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/object_pattern/run.lit b/maldoca/js/ir/conversion/tests/object_pattern/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/object_pattern/run.lit +++ b/maldoca/js/ir/conversion/tests/object_pattern/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/optional_member_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/optional_member_expression/jshir.mlir index a95242e..b69a1a7 100644 --- a/maldoca/js/ir/conversion/tests/optional_member_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/optional_member_expression/jshir.mlir @@ -1,21 +1,21 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.optional_member_expression"(%0) <{literal_property = #jsir, , "b", 3, 4, 0, "b">, optional = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.member_expression"(%2) <{literal_property = #jsir, , "b", 9, 10, 0, "b">}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.optional_member_expression"(%3) <{literal_property = #jsir, , "c", 12, 13, 0, "c">, optional = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.optional_member_expression"(%5) <{literal_property = #jsir, , "b", 19, 20, 0, "b">, optional = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.optional_member_expression"(%6) <{literal_property = #jsir, , "c", 21, 22, 0, "c">, optional = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: %8 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %9 = "jsir.optional_member_expression"(%8) <{literal_property = #jsir, , "b", 28, 29, 0, "b">, optional = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %10 = "jsir.optional_member_expression"(%9) <{literal_property = #jsir, , "c", 31, 32, 0, "c">, optional = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%10) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.optional_member_expression"(%0) <{literal_property = #jsir, , "b", 3, 4, 0, "b">, optional = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.member_expression"(%2) <{literal_property = #jsir, , "b", 9, 10, 0, "b">}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.optional_member_expression"(%3) <{literal_property = #jsir, , "c", 12, 13, 0, "c">, optional = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: %5 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.optional_member_expression"(%5) <{literal_property = #jsir, , "b", 19, 20, 0, "b">, optional = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %7 = "jsir.optional_member_expression"(%6) <{literal_property = #jsir, , "c", 21, 22, 0, "c">, optional = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: %8 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %9 = "jsir.optional_member_expression"(%8) <{literal_property = #jsir, , "b", 28, 29, 0, "b">, optional = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %10 = "jsir.optional_member_expression"(%9) <{literal_property = #jsir, , "c", 31, 32, 0, "c">, optional = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%10) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/optional_member_expression/run.lit b/maldoca/js/ir/conversion/tests/optional_member_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/optional_member_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/optional_member_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/parenthesized_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/parenthesized_expression/jshir.mlir index 9f279bc..16cea57 100644 --- a/maldoca/js/ir/conversion/tests/parenthesized_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/parenthesized_expression/jshir.mlir @@ -1,16 +1,16 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.parenthesized_expression_ref"(%0) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.assignment_expression"(%1, %2) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.parenthesized_expression"(%5) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.assignment_expression"(%4, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.parenthesized_expression_ref"(%0) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.assignment_expression"(%1, %2) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: %4 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.parenthesized_expression"(%5) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %7 = "jsir.assignment_expression"(%4, %6) <{operator_ = "="}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%7) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/parenthesized_expression/run.lit b/maldoca/js/ir/conversion/tests/parenthesized_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/parenthesized_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/parenthesized_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/run.lit.template b/maldoca/js/ir/conversion/tests/run.lit.template index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/run.lit.template +++ b/maldoca/js/ir/conversion/tests/run.lit.template @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/switch_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/switch_statement/jshir.mlir index 0371ccb..c634f74 100644 --- a/maldoca/js/ir/conversion/tests/switch_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/switch_statement/jshir.mlir @@ -1,66 +1,66 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.switch_statement"(%0) ({ -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "body0"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "body1"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.switch_statement"(%1) ({ -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "f"}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.call_expression"(%4) : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "body0"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.binary_expression"(%4, %5) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %4 = "jsir.identifier"() <{name = "body1"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: "jshir.break_statement"() : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.switch_statement"(%2) ({ -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.switch_statement"(%3) ({ -// JSHIR-NEXT: "jshir.switch_case"() ({ -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.switch_statement"(%0) ({ +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "body0"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "body1"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.switch_statement"(%1) ({ +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "f"}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.call_expression"(%4) : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "body0"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %6 = "jsir.binary_expression"(%4, %5) <{operator_ = "+"}> : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%6) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %4 = "jsir.identifier"() <{name = "body1"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: "jshir.break_statement"() : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.switch_statement"(%2) ({ +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.switch_statement"(%3) ({ +// JSIR-NEXT: "jshir.switch_case"() ({ +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/switch_statement/run.lit b/maldoca/js/ir/conversion/tests/switch_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/switch_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/switch_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/tagged_template/jshir.mlir b/maldoca/js/ir/conversion/tests/tagged_template/jshir.mlir index 8424e47..aff44a2 100644 --- a/maldoca/js/ir/conversion/tests/tagged_template/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/tagged_template/jshir.mlir @@ -1,12 +1,12 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "raw"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.template_element_value"() <{cooked = "42", raw = "42"}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.template_element"(%1) <{tail = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.template_literal"(%2) <{operandSegmentSizes = array}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.tagged_template_expression"(%0, %3) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "raw"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.template_element_value"() <{cooked = "42", raw = "42"}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.template_element"(%1) <{tail = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.template_literal"(%2) <{operandSegmentSizes = array}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.tagged_template_expression"(%0, %3) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%4) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/tagged_template/run.lit b/maldoca/js/ir/conversion/tests/tagged_template/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/tagged_template/run.lit +++ b/maldoca/js/ir/conversion/tests/tagged_template/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/template/jshir.mlir b/maldoca/js/ir/conversion/tests/template/jshir.mlir index 06d5199..0428762 100644 --- a/maldoca/js/ir/conversion/tests/template/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/template/jshir.mlir @@ -1,16 +1,16 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.template_element_value"() <{cooked = "a", raw = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.template_element"(%0) <{tail = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.template_element_value"() <{cooked = "c", raw = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.template_element"(%2) <{tail = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.template_element_value"() <{cooked = "", raw = ""}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.template_element"(%4) <{tail = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %7 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %8 = "jsir.template_literal"(%1, %3, %5, %6, %7) <{operandSegmentSizes = array}> : (!jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%8) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.template_element_value"() <{cooked = "a", raw = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.template_element"(%0) <{tail = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %2 = "jsir.template_element_value"() <{cooked = "c", raw = "c"}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.template_element"(%2) <{tail = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %4 = "jsir.template_element_value"() <{cooked = "", raw = ""}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.template_element"(%4) <{tail = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: %6 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %7 = "jsir.identifier"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %8 = "jsir.template_literal"(%1, %3, %5, %6, %7) <{operandSegmentSizes = array}> : (!jsir.any, !jsir.any, !jsir.any, !jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%8) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/template/run.lit b/maldoca/js/ir/conversion/tests/template/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/template/run.lit +++ b/maldoca/js/ir/conversion/tests/template/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/test_config.json b/maldoca/js/ir/conversion/tests/test_config.json new file mode 100644 index 0000000..1d5aa26 --- /dev/null +++ b/maldoca/js/ir/conversion/tests/test_config.json @@ -0,0 +1,22 @@ +{ + "tests": [ + { + "output_file": "ast.json", + "passes": "source2ast", + "prefix": "AST" + }, + { + "output_file": "jshir.mlir", + "passes": "source2ast,ast2jsir", + "prefix": "JSIR" + }, + { + "output_file": "output.js", + "passes": "source2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template.bzl", + "lit_template": "run.lit.template", + "generate_readme": false +} diff --git a/maldoca/js/ir/conversion/tests/throw_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/throw_statement/jshir.mlir index f58cbc2..f4aa1c1 100644 --- a/maldoca/js/ir/conversion/tests/throw_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/throw_statement/jshir.mlir @@ -1,8 +1,8 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.throw_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: "jsir.throw_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/throw_statement/run.lit b/maldoca/js/ir/conversion/tests/throw_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/throw_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/throw_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/try_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/try_statement/jshir.mlir index 72908f9..8b095a8 100644 --- a/maldoca/js/ir/conversion/tests/try_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/try_statement/jshir.mlir @@ -1,66 +1,66 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.try_statement"() ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "error"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.catch_clause"(%0) ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.try_statement"() ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jshir.try_statement"() ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "error"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.catch_clause"(%0) ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.try_statement"() ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "error"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.catch_clause"(%0) ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.try_statement"() ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jshir.try_statement"() ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "error"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.catch_clause"(%0) ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/try_statement/run.lit b/maldoca/js/ir/conversion/tests/try_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/try_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/try_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/unary_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/unary_expression/jshir.mlir index 030c02c..4ebb406 100644 --- a/maldoca/js/ir/conversion/tests/unary_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/unary_expression/jshir.mlir @@ -1,9 +1,9 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.unary_expression"(%0) <{operator_ = "-", prefix = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.unary_expression"(%0) <{operator_ = "-", prefix = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/unary_expression/run.lit b/maldoca/js/ir/conversion/tests/unary_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/unary_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/unary_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/update_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/update_expression/jshir.mlir index 2df033f..ae5d24a 100644 --- a/maldoca/js/ir/conversion/tests/update_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/update_expression/jshir.mlir @@ -1,9 +1,9 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.update_expression"(%0) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.update_expression"(%0) <{operator_ = "++", prefix = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/update_expression/run.lit b/maldoca/js/ir/conversion/tests/update_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/update_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/update_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/variable_declaration/jshir.mlir b/maldoca/js/ir/conversion/tests/variable_declaration/jshir.mlir index f523533..205492f 100644 --- a/maldoca/js/ir/conversion/tests/variable_declaration/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/variable_declaration/jshir.mlir @@ -1,27 +1,27 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: "jsir.variable_declaration"() <{kind = "const"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.exprs_region_end"(%2, %5) : (!jsir.any, !jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "let"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 0.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "var"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: "jsir.variable_declaration"() <{kind = "const"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier_ref"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %2 = "jsir.variable_declarator"(%0, %1) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %3 = "jsir.identifier_ref"() <{name = "d"}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %5 = "jsir.variable_declarator"(%3, %4) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.exprs_region_end"(%2, %5) : (!jsir.any, !jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/variable_declaration/run.lit b/maldoca/js/ir/conversion/tests/variable_declaration/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/variable_declaration/run.lit +++ b/maldoca/js/ir/conversion/tests/variable_declaration/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/while_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/while_statement/jshir.mlir index bb246e4..2ee0e47 100644 --- a/maldoca/js/ir/conversion/tests/while_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/while_statement/jshir.mlir @@ -1,13 +1,13 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jshir.while_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jshir.while_statement"() ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expr_region_end"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%0) : (!jsir.any) -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/while_statement/run.lit b/maldoca/js/ir/conversion/tests/while_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/while_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/while_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/with_statement/jshir.mlir b/maldoca/js/ir/conversion/tests/with_statement/jshir.mlir index 161d866..81ed368 100644 --- a/maldoca/js/ir/conversion/tests/with_statement/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/with_statement/jshir.mlir @@ -1,22 +1,22 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.with_statement"(%0) ({ -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any -// JSHIR-NEXT: "jshir.with_statement"(%1) ({ -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () -// JSHIR-NEXT: %3 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: %0 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.with_statement"(%0) ({ +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: %1 = "jsir.identifier"() <{name = "a"}> : () -> !jsir.any +// JSIR-NEXT: "jshir.with_statement"(%1) ({ +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %2 = "jsir.identifier"() <{name = "b"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%2) : (!jsir.any) -> () +// JSIR-NEXT: %3 = "jsir.identifier"() <{name = "c"}> : () -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%3) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/with_statement/run.lit b/maldoca/js/ir/conversion/tests/with_statement/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/with_statement/run.lit +++ b/maldoca/js/ir/conversion/tests/with_statement/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/conversion/tests/yield_expression/jshir.mlir b/maldoca/js/ir/conversion/tests/yield_expression/jshir.mlir index 60c580b..62d8493 100644 --- a/maldoca/js/ir/conversion/tests/yield_expression/jshir.mlir +++ b/maldoca/js/ir/conversion/tests/yield_expression/jshir.mlir @@ -1,22 +1,22 @@ -// JSHIR: "jsir.file"() <{comments = []}> ({ -// JSHIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ -// JSHIR-NEXT: "jsir.function_declaration"() <{async = false, generator = true, id = #jsir, , "gen", 10, 13, 1, "gen">}> ({ -// JSHIR-NEXT: "jsir.exprs_region_end"() : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: "jshir.block_statement"() ({ -// JSHIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %1 = "jsir.yield_expression"(%0) <{delegate = false}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () -// JSHIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any -// JSHIR-NEXT: %4 = "jsir.array_expression"(%2, %3) : (!jsir.any, !jsir.any) -> !jsir.any -// JSHIR-NEXT: %5 = "jsir.yield_expression"(%4) <{delegate = true}> : (!jsir.any) -> !jsir.any -// JSHIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }, { -// JSHIR-NEXT: ^bb0: -// JSHIR-NEXT: }) : () -> () -// JSHIR-NEXT: }) : () -> () +// JSIR: "jsir.file"() <{comments = []}> ({ +// JSIR-NEXT: "jsir.program"() <{source_type = "script"}> ({ +// JSIR-NEXT: "jsir.function_declaration"() <{async = false, generator = true, id = #jsir, , "gen", 10, 13, 1, "gen">}> ({ +// JSIR-NEXT: "jsir.exprs_region_end"() : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: "jshir.block_statement"() ({ +// JSIR-NEXT: %0 = "jsir.numeric_literal"() <{extra = #jsir, value = 1.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %1 = "jsir.yield_expression"(%0) <{delegate = false}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%1) : (!jsir.any) -> () +// JSIR-NEXT: %2 = "jsir.numeric_literal"() <{extra = #jsir, value = 2.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %3 = "jsir.numeric_literal"() <{extra = #jsir, value = 3.000000e+00 : f64}> : () -> !jsir.any +// JSIR-NEXT: %4 = "jsir.array_expression"(%2, %3) : (!jsir.any, !jsir.any) -> !jsir.any +// JSIR-NEXT: %5 = "jsir.yield_expression"(%4) <{delegate = true}> : (!jsir.any) -> !jsir.any +// JSIR-NEXT: "jsir.expression_statement"(%5) : (!jsir.any) -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }, { +// JSIR-NEXT: ^bb0: +// JSIR-NEXT: }) : () -> () +// JSIR-NEXT: }) : () -> () diff --git a/maldoca/js/ir/conversion/tests/yield_expression/run.lit b/maldoca/js/ir/conversion/tests/yield_expression/run.lit index c7362e4..0dd8051 100644 --- a/maldoca/js/ir/conversion/tests/yield_expression/run.lit +++ b/maldoca/js/ir/conversion/tests/yield_expression/run.lit @@ -1,11 +1,11 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir" \ -// RUN: | FileCheck --check-prefix JSHIR "$(dirname "${INPUT}")"/jshir.mlir +// RUN: --passes "source2ast,ast2jsir" \ +// RUN: | FileCheck --check-prefix JSIR "$(dirname "${INPUT}")"/jshir.mlir // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes "source2ast,ast2hir,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js // RUN: INPUT=%s && \ @@ -15,5 +15,5 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,hir2ast \ +// RUN: --passes source2ast,ast2jsir,jsir2ast \ // RUN: | FileCheck --check-prefix AST "$(dirname "${INPUT}")"/ast.json diff --git a/maldoca/js/ir/generate_tests.py b/maldoca/js/ir/generate_tests.py new file mode 100644 index 0000000..b56ff17 --- /dev/null +++ b/maldoca/js/ir/generate_tests.py @@ -0,0 +1,362 @@ +r"""Consolidated test generator for JSIR tests. + +Scans a directory for test cases (directories containing `input.js`) +and generates test outputs, READMEs, LIT files, and BUILD files based on +`test_config.json` found in the scanned directory. + +Usage: + python3 maldoca/js/ir/generate_tests.py + +Example: + python3 maldoca/js/ir/generate_tests.py maldoca/js/ir +""" + +import argparse +from concurrent import futures +import dataclasses +import json +import os +import shutil +import subprocess +import sys +from typing import Any, Dict, List, Optional +from tqdm import tqdm + + +def run_command(cmd: str) -> bytes: + """Run a shell command and return its output.""" + try: + return subprocess.check_output(cmd, shell=True, stderr=subprocess.PIPE) + except subprocess.CalledProcessError as e: + tqdm.write( + "Error running command, output:" + f" {e.output.decode('utf-8', errors='replace')}" + ) + sys.exit(1) + + +@dataclasses.dataclass +class TestConfig: + passes: str + output_file: str + prefix: Optional[str] = None + jsir_analysis: Optional[str] = None + output_type: Optional[str] = None + requires_taint_rules: bool = False + lit_file: str = "run.generated.lit" + readme_file: str = "README.generated.md" + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> "TestConfig": + return cls( + passes=data["passes"], + output_file=data["output_file"], + prefix=data.get("prefix"), + jsir_analysis=data.get("jsir_analysis"), + output_type=data.get("output_type"), + requires_taint_rules=data.get("requires_taint_rules", False), + lit_file=data.get("lit_file", "run.generated.lit"), + readme_file=data.get("readme_file", "README.generated.md"), + ) + + +@dataclasses.dataclass +class SuiteConfig: + tests: List[TestConfig] + build_template: Optional[str] = None + lit_template: Optional[str] = None + lit_dest: str = "run.lit" + generate_readme: bool = True + overrides: Dict[str, "SuiteConfig"] = dataclasses.field(default_factory=dict) + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> "SuiteConfig": + tests = [TestConfig.from_dict(t) for t in data.get("tests", [])] + overrides = {} + if "overrides" in data: + for k, v in data["overrides"].items(): + overrides[k] = SuiteConfig.from_dict(v) + + return cls( + tests=tests, + build_template=data.get("build_template"), + lit_template=data.get("lit_template"), + lit_dest=data.get("lit_dest", "run.lit"), + generate_readme=data.get("generate_readme", True), + overrides=overrides, + ) + + +def get_extra_args( + test_config: TestConfig, test_path: str, for_template: bool +) -> str: + args = [] + if test_config.jsir_analysis: + args.append(f"--jsir_analysis={test_config.jsir_analysis}") + if test_config.output_type: + args.append(f"--output_type={test_config.output_type}") + + if test_config.requires_taint_rules: + rules_path = os.path.join(test_path, "input_rules.txtpb") + if for_template: + args.append(f"--taint_rules_path=$(pwd)/{rules_path}") + else: + args.append(f"--taint_rules_path={os.path.abspath(rules_path)}") + + return " " + " ".join(args) if args else "" + + +def get_check_command(test_config: TestConfig) -> str: + output_file = test_config.output_file + prefix = test_config.prefix or "JSIR" + if test_config.output_type == "analysis": + return f'diff "$(dirname %s)"/{output_file} -' + else: + return f'FileCheck --check-prefix {prefix} "$(dirname %s)"/{output_file}' + + +def validate_test_config(test_config: TestConfig, test_path: str): + if test_config.requires_taint_rules: + rules_path = os.path.join(test_path, "input_rules.txtpb") + if not os.path.exists(rules_path): + tqdm.write( + "Warning: Taint rules file (input_rules.txtpb) not found in" + f" {test_path}." + ) + + +def generate_test_file( + jsir_gen_bin: str, + input_path: str, + output_path: str, + test_config: TestConfig, +): + passes = test_config.passes + output_file = test_config.output_file + prefix = test_config.prefix + + extra_args = get_extra_args( + test_config, os.path.dirname(input_path), for_template=False + ) + + command = ( + f"{jsir_gen_bin}" + f" --input_file={os.path.abspath(input_path)}" + f" --passes='{passes}'" + f"{extra_args}" + ) + + output = run_command(command).decode("utf-8") + output = output.strip() + + if prefix: + lines = output.split("\n") + out_lines = [] + for i, line in enumerate(lines): + if not line: + line = f"// {prefix}-EMPTY:" + elif i == 0: + line = f"// {prefix}: " + line + else: + line = f"// {prefix}-NEXT: " + line + out_lines.append(line) + output = "\n".join(out_lines) + "\n" + else: + output = output + "\n" + if test_config.output_type == "analysis": + output += "\n" + + with open(os.path.join(output_path, output_file), "w") as f: + f.write(output) + + +def generate_readme_files(test_path: str, tests: List[TestConfig]): + readme_groups = {} + for test in tests: + readme_file = test.readme_file + if readme_file not in readme_groups: + readme_groups[readme_file] = [] + readme_groups[readme_file].append(test) + + for readme_file, group_tests in readme_groups.items(): + content = "" + for test in group_tests: + lines = [ + "To run manually:", + "", + "```shell", + "bazel run //maldoca/js/ir:jsir_gen -- \\", + f" --input_file $(pwd)/{test_path}/input.js \\", + ] + + extra_args_list = [] + if test.jsir_analysis: + extra_args_list.append(f"--jsir_analysis {test.jsir_analysis}") + if test.output_type: + extra_args_list.append(f"--output_type {test.output_type}") + if test.requires_taint_rules: + extra_args_list.append( + f"--taint_rules_path $(pwd)/{test_path}/input_rules.txtpb" + ) + + if extra_args_list: + lines.append(f' --passes "{test.passes}" \\') + for i, arg in enumerate(extra_args_list): + if i < len(extra_args_list) - 1: + lines.append(f" {arg} \\") + else: + lines.append(f" {arg}") + else: + lines.append(f' --passes "{test.passes}"') + + lines.extend(["```", ""]) + content += "\n".join(lines) + "\n" + + with open(os.path.join(test_path, readme_file), "w") as f: + f.write(content.strip() + "\n") + + +def generate_lit_files(test_path: str, tests: List[TestConfig]): + lit_groups = {} + for test in tests: + lit_file = test.lit_file + if lit_file not in lit_groups: + lit_groups[lit_file] = [] + lit_groups[lit_file].append(test) + + for lit_file, group_tests in lit_groups.items(): + content = "" + for test in group_tests: + lines = [ + "// RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \\", + '// RUN: jsir_gen --input_file "$(dirname %s)"/input.js \\', + f'// RUN: --passes "{test.passes}" \\', + ] + + extra_args_list = [] + if test.jsir_analysis: + extra_args_list.append(f"--jsir_analysis {test.jsir_analysis}") + if test.output_type: + extra_args_list.append(f"--output_type {test.output_type}") + if test.requires_taint_rules: + extra_args_list.append( + f"--taint_rules_path $(pwd)/{test_path}/input_rules.txtpb" + ) + + if extra_args_list: + for arg in extra_args_list: + lines.append(f"// RUN: {arg} \\") + + check_command = get_check_command(test) + lines.append(f"// RUN: | {check_command}") + + content += "\n".join(lines) + "\n\n" + + with open(os.path.join(test_path, lit_file), "w") as f: + f.write(content.strip() + "\n") + + +def process_test_directory( + jsir_gen_bin: str, + test_path: str, + config: SuiteConfig, + config_dir: str, +): + test_name = os.path.basename(test_path) + tqdm.write(f"Generating test: {test_name}") + + rel_path = os.path.relpath(test_path, config_dir) + tests = config.tests + if rel_path in config.overrides: + tests = config.overrides[rel_path].tests + + for test_config in tests: + validate_test_config(test_config, test_path) + generate_test_file( + jsir_gen_bin=jsir_gen_bin, + input_path=os.path.join(test_path, "input.js"), + output_path=test_path, + test_config=test_config, + ) + + # Handle LIT template/generation + if config.lit_template: + lit_template_path = os.path.join(config_dir, config.lit_template) + shutil.copyfile(lit_template_path, os.path.join(test_path, config.lit_dest)) + else: + generate_lit_files(test_path, tests) + + # Handle README generation + if config.generate_readme: + generate_readme_files(test_path, tests) + + # Handle BUILD template + if config.build_template: + build_template_path = os.path.join(config_dir, config.build_template) + shutil.copyfile(build_template_path, os.path.join(test_path, "BUILD")) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("path", help="Directory to scan for tests") + args = parser.parse_args() + + root_path = args.path + + # Find all config files + config_paths = [] + if os.path.exists(os.path.join(root_path, "test_config.json")): + config_paths.append(os.path.join(root_path, "test_config.json")) + else: + # Recursive scan + for dirpath, _, filenames in os.walk(root_path): + if "test_config.json" in filenames: + config_paths.append(os.path.join(dirpath, "test_config.json")) + + if not config_paths: + print( + f"Error: No test_config.json found in {root_path} or its" + " subdirectories", + file=sys.stderr, + ) + sys.exit(1) + + tqdm.write("Building jsir_gen...") + run_command("bazel build //maldoca/js/ir:jsir_gen") + jsir_gen_bin = os.path.abspath("bazel-bin/maldoca/js/ir/jsir_gen") + + # Flatten tasks + all_tasks = [] + for config_path in config_paths: + config_dir = os.path.dirname(config_path) + with open(config_path, "r") as f: + config = SuiteConfig.from_dict(json.load(f)) + + for test_path, dirnames, file_names_in_dir in os.walk(config_dir): + # Prune subdirectories that have their own config + if test_path != config_dir and "test_config.json" in file_names_in_dir: + dirnames[:] = [] + continue + + if "input.js" in file_names_in_dir: + all_tasks.append((test_path, config, config_dir)) + + with futures.ThreadPoolExecutor() as executor: + futures_list = [ + executor.submit( + process_test_directory, + jsir_gen_bin=jsir_gen_bin, + test_path=test_path, + config=config, + config_dir=config_dir, + ) + for test_path, config, config_dir in all_tasks + ] + for future in tqdm( + futures.as_completed(futures_list), total=len(futures_list) + ): + future.result() + + +if __name__ == "__main__": + main() diff --git a/maldoca/js/ir/jsir_gen.cc b/maldoca/js/ir/jsir_gen.cc index 24f6cf8..36a175d 100644 --- a/maldoca/js/ir/jsir_gen.cc +++ b/maldoca/js/ir/jsir_gen.cc @@ -48,8 +48,8 @@ static auto* kStringToPassKind = new absl::flat_hash_map{ {"source2ast", maldoca::JsirPassKind::kSourceToAst}, - {"ast2hir", maldoca::JsirPassKind::kAstToJshir}, - {"hir2ast", maldoca::JsirPassKind::kJshirToAst}, + {"ast2jsir", maldoca::JsirPassKind::kAstToJshir}, + {"jsir2ast", maldoca::JsirPassKind::kJshirToAst}, {"ast2source", maldoca::JsirPassKind::kAstToSource}, {"erase_comments", maldoca::JsirPassKind::kEraseComments}, diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/if/README.generated.md b/maldoca/js/ir/transforms/constant_propagation/tests/if/README.generated.md index 5cbfcab..b9dd1ff 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/if/README.generated.md +++ b/maldoca/js/ir/transforms/constant_propagation/tests/if/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/constant_propagation/tests/if/input.js \ - --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" + --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/if/run.generated.lit b/maldoca/js/ir/transforms/constant_propagation/tests/if/run.generated.lit index 1fee49c..fbbeec6 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/if/run.generated.lit +++ b/maldoca/js/ir/transforms/constant_propagation/tests/if/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/if_join/README.generated.md b/maldoca/js/ir/transforms/constant_propagation/tests/if_join/README.generated.md index 2a0c28b..1894f26 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/if_join/README.generated.md +++ b/maldoca/js/ir/transforms/constant_propagation/tests/if_join/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/constant_propagation/tests/if_join/input.js \ - --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" + --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/if_join/run.generated.lit b/maldoca/js/ir/transforms/constant_propagation/tests/if_join/run.generated.lit index 1fee49c..fbbeec6 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/if_join/run.generated.lit +++ b/maldoca/js/ir/transforms/constant_propagation/tests/if_join/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/simple/README.generated.md b/maldoca/js/ir/transforms/constant_propagation/tests/simple/README.generated.md index a4f651b..91d890d 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/simple/README.generated.md +++ b/maldoca/js/ir/transforms/constant_propagation/tests/simple/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/constant_propagation/tests/simple/input.js \ - --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" + --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/simple/run.generated.lit b/maldoca/js/ir/transforms/constant_propagation/tests/simple/run.generated.lit index 1fee49c..fbbeec6 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/simple/run.generated.lit +++ b/maldoca/js/ir/transforms/constant_propagation/tests/simple/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/README.generated.md b/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/README.generated.md index e6391ff..443deee 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/README.generated.md +++ b/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/input.js \ - --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" + --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/run.generated.lit b/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/run.generated.lit index 1fee49c..fbbeec6 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/run.generated.lit +++ b/maldoca/js/ir/transforms/constant_propagation/tests/simple_symbol/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/README.generated.md b/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/README.generated.md index 442aac4..896f6cd 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/README.generated.md +++ b/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/input.js \ - --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" + --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/run.generated.lit b/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/run.generated.lit index 1fee49c..fbbeec6 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/run.generated.lit +++ b/maldoca/js/ir/transforms/constant_propagation/tests/string_member_expression/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/test_config.json b/maldoca/js/ir/transforms/constant_propagation/tests/test_config.json new file mode 100644 index 0000000..4389500 --- /dev/null +++ b/maldoca/js/ir/transforms/constant_propagation/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,ast2jsir,constprop,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/void_0/README.generated.md b/maldoca/js/ir/transforms/constant_propagation/tests/void_0/README.generated.md index 9850505..ed0892c 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/void_0/README.generated.md +++ b/maldoca/js/ir/transforms/constant_propagation/tests/void_0/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/constant_propagation/tests/void_0/input.js \ - --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" + --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/void_0/run.generated.lit b/maldoca/js/ir/transforms/constant_propagation/tests/void_0/run.generated.lit index 1fee49c..fbbeec6 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/void_0/run.generated.lit +++ b/maldoca/js/ir/transforms/constant_propagation/tests/void_0/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/while/README.generated.md b/maldoca/js/ir/transforms/constant_propagation/tests/while/README.generated.md index d1d65e4..f19878e 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/while/README.generated.md +++ b/maldoca/js/ir/transforms/constant_propagation/tests/while/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/constant_propagation/tests/while/input.js \ - --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" + --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/constant_propagation/tests/while/run.generated.lit b/maldoca/js/ir/transforms/constant_propagation/tests/while/run.generated.lit index 1fee49c..fbbeec6 100644 --- a/maldoca/js/ir/transforms/constant_propagation/tests/while/run.generated.lit +++ b/maldoca/js/ir/transforms/constant_propagation/tests/while/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,constprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,constprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/README.generated.md index c44673f..c647d6c 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/README.generated.md +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/input.js \ - --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" + --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/run.generated.lit index 408844b..82faf7d 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/run.generated.lit +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md index 1f9745b..6337865 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/input.js \ - --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" + --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit index 408844b..82faf7d 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/test_config.json b/maldoca/js/ir/transforms/dead_code_elimination/tests/test_config.json new file mode 100644 index 0000000..49aaaa5 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/README.generated.md index ff3e1e2..45970e8 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/README.generated.md +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/input.js \ - --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" + --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/run.generated.lit index 408844b..82faf7d 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/run.generated.lit +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/README.generated.md index a796c46..5976798 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/README.generated.md +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/input.js \ - --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" + --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/run.generated.lit index 408844b..82faf7d 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/run.generated.lit +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,dead_code_elimination,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/README.generated.md index 80a4802..07d41f8 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/atob/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/README.generated.md index ebb08d6..050b243 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/babel/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/README.generated.md index 9396bf5..1e09b7c 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/btoa/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/README.generated.md index c6ec25b..7e88d6f 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/complex_wrapper/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/README.generated.md index a21a3f7..40bdbf3 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/README.generated.md index e25129b..1116a50 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/function_inline_second/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/README.generated.md index be803d3..5317877 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/logical_expression/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/README.generated.md index 88e694b..d92bf9f 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/scoped_alias/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/README.generated.md index 03ec36a..dbe6ed2 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/self_defending/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/README.generated.md index 63d3f90..a214565 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/README.generated.md index 6835ec7..45d3d94 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_alias_and_wrapper/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/README.generated.md index 24f1529..df71d81 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_function_inline/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/README.generated.md index 6c355ed..cf4d1a8 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_object/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/README.generated.md index 0b41ebf..4b4b613 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/simple_wrapper/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/test_config.json b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/test_config.json new file mode 100644 index 0000000..9066b9f --- /dev/null +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/README.generated.md index c7a7aae..6ed7079 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/README.generated.md b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/README.generated.md index 079c77b..fe44863 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/README.generated.md +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" + --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/run.generated.lit b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/run.generated.lit index dbfc700..ab94d87 100644 --- a/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/run.generated.lit +++ b/maldoca/js/ir/transforms/dynamic_constant_propagation/tests/variable_inline_second/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source" \ +// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2jsir,dynconstprop,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/generate_tests.py b/maldoca/js/ir/transforms/generate_tests.py deleted file mode 100644 index 19d8fd1..0000000 --- a/maldoca/js/ir/transforms/generate_tests.py +++ /dev/null @@ -1,191 +0,0 @@ -r"""Generates test files for the conversion tests. - -In each directory, only `input.js` is manually written. The other files are -generated by running this tool. - -Usage: - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,ast2hir,constprop,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/constant_propagation/tests - -# TODO(b/452034945): Release these tests. -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,ast2hir,constprop,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/constant_propagation/jscomp_peephole_tests - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/dynamic_constant_propagation/tests - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,erase_comments,ast2hir,movenamedfuncs,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/move_named_functions/tests - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,erase_comments,ast2hir,normalize_member_expressions,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/normalize_member_expressions/tests - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,erase_comments,ast2hir,constprop,normalize_member_expressions,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/normalize_member_expressions/tests/with_constant_propagation - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,ast2hir,normalizeobjprops,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/normalize_object_properties/tests - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,erase_comments,ast2hir,peelparens,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/peel_parentheses/tests - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/split_declaration_statements/tests - -# TODO(b/452034945): Release these tests. -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/dead_code_elimination/tests - -python3 maldoca/js/ir/transforms/generate_tests.py \ - --passes source2ast,ast2hir,split_sequence_expressions,hir2ast,ast2source \ - --path maldoca/js/ir/transforms/split_sequence_expressions/tests -""" - -import argparse -import os -import shutil -import subprocess -import sys - - -def run_command(cmd: str) -> bytes: - """Run a shell command and return its output.""" - - print("Running:") - print(" ", cmd) - - try: - return subprocess.check_output(cmd, shell=True, stderr=subprocess.PIPE) - except subprocess.CalledProcessError as e: - print("Error running command, output:", e.output) - sys.exit(1) - - -def generate_test_file( - input_path: str, - output_path: str, - passes: str, - prefix: str, -): - """Generates a test file. - - Args: - input_path: Test case name. - output_path: The output file will be /. - passes: Comma-separated list of JSIR passes. - prefix: FileCheck prefix. - """ - input_abs_path: str = os.path.abspath(input_path) - - command: str = ( - "bazel run //maldoca/js/ir:jsir_gen --" - f" --input_file={input_abs_path}" - f" --passes='{passes}'" - ) - - try: - output = run_command(command).decode("utf-8") - except UnicodeDecodeError: - output = run_command(command).decode("latin-1") - - output = output.strip() - - # Prepend prefix - lines = output.split("\n") - out_lines = [] - for i, line in enumerate(lines): - if not line: - line = f"// {prefix}-EMPTY:" - elif i == 0: - line = f"// {prefix}: " + line - else: - line = f"// {prefix}-NEXT: " + line - out_lines.append(line) - - output = "\n".join(out_lines) + "\n" - - with open(output_path, "w") as f: - f.write(output) - - -README_TEMPLATE = r"""To run manually: - -```shell -bazel run //maldoca/js/ir:jsir_gen -- \ - --input_file $(pwd)/{test_path}/input.js \ - --passes "{passes}" -``` -""" - -LIT_TEMPLATE = r"""// RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ -// RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "{passes}" \ -// RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt -""" - - -def generate_readme_file(test_path: str, passes: str): - with open(os.path.join(test_path, "README.generated.md"), "w") as f: - f.write(README_TEMPLATE.format(test_path=test_path, passes=passes)) - - -def generate_lit_file(test_path: str, passes: str): - with open(os.path.join(test_path, "run.generated.lit"), "w") as f: - f.write(LIT_TEMPLATE.format(test_path=test_path, passes=passes)) - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("--passes", required=True) - parser.add_argument("--path", required=True) - - args = parser.parse_args() - passes: str = args.passes - root_path: str = args.path - print("Passes:", passes) - print("Path:", root_path) - - for test_path, _, file_names_in_dir in os.walk(root_path): - - if "input.js" not in file_names_in_dir: - continue - - test_name = os.path.basename(test_path) - print("Generating test:", test_name) - - generate_test_file( - input_path=os.path.join(test_path, "input.js"), - output_path=os.path.join(test_path, "output.generated.txt"), - passes=passes, - prefix="SOURCE", - ) - - generate_readme_file( - test_path=test_path, - passes=passes, - ) - - generate_lit_file( - test_path, - passes=passes, - ) - - shutil.copyfile( - os.path.join(root_path, "BUILD.template"), - os.path.join(test_path, "BUILD"), - ) - - -if __name__ == "__main__": - main() diff --git a/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/README.generated.md b/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/README.generated.md index e2ad41b..fb55947 100644 --- a/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/README.generated.md +++ b/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/input.js \ - --passes "source2ast,erase_comments,ast2hir,movenamedfuncs,hir2ast,ast2source" + --passes "source2ast,erase_comments,ast2jsir,movenamedfuncs,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/run.generated.lit b/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/run.generated.lit index b833dc7..115485c 100644 --- a/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/run.generated.lit +++ b/maldoca/js/ir/transforms/move_named_functions/tests/control_flow/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,erase_comments,ast2hir,movenamedfuncs,hir2ast,ast2source" \ +// RUN: --passes "source2ast,erase_comments,ast2jsir,movenamedfuncs,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/move_named_functions/tests/nested/README.generated.md b/maldoca/js/ir/transforms/move_named_functions/tests/nested/README.generated.md index 195524a..aa5ba8b 100644 --- a/maldoca/js/ir/transforms/move_named_functions/tests/nested/README.generated.md +++ b/maldoca/js/ir/transforms/move_named_functions/tests/nested/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/move_named_functions/tests/nested/input.js \ - --passes "source2ast,erase_comments,ast2hir,movenamedfuncs,hir2ast,ast2source" + --passes "source2ast,erase_comments,ast2jsir,movenamedfuncs,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/move_named_functions/tests/nested/run.generated.lit b/maldoca/js/ir/transforms/move_named_functions/tests/nested/run.generated.lit index b833dc7..115485c 100644 --- a/maldoca/js/ir/transforms/move_named_functions/tests/nested/run.generated.lit +++ b/maldoca/js/ir/transforms/move_named_functions/tests/nested/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,erase_comments,ast2hir,movenamedfuncs,hir2ast,ast2source" \ +// RUN: --passes "source2ast,erase_comments,ast2jsir,movenamedfuncs,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/move_named_functions/tests/simple/README.generated.md b/maldoca/js/ir/transforms/move_named_functions/tests/simple/README.generated.md index 09a3489..b96e834 100644 --- a/maldoca/js/ir/transforms/move_named_functions/tests/simple/README.generated.md +++ b/maldoca/js/ir/transforms/move_named_functions/tests/simple/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/move_named_functions/tests/simple/input.js \ - --passes "source2ast,erase_comments,ast2hir,movenamedfuncs,hir2ast,ast2source" + --passes "source2ast,erase_comments,ast2jsir,movenamedfuncs,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/move_named_functions/tests/simple/run.generated.lit b/maldoca/js/ir/transforms/move_named_functions/tests/simple/run.generated.lit index b833dc7..115485c 100644 --- a/maldoca/js/ir/transforms/move_named_functions/tests/simple/run.generated.lit +++ b/maldoca/js/ir/transforms/move_named_functions/tests/simple/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,erase_comments,ast2hir,movenamedfuncs,hir2ast,ast2source" \ +// RUN: --passes "source2ast,erase_comments,ast2jsir,movenamedfuncs,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/move_named_functions/tests/test_config.json b/maldoca/js/ir/transforms/move_named_functions/tests/test_config.json new file mode 100644 index 0000000..cb4ac49 --- /dev/null +++ b/maldoca/js/ir/transforms/move_named_functions/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,erase_comments,ast2jsir,movenamedfuncs,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/README.generated.md b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/README.generated.md index b3d933d..d83d6cd 100644 --- a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/README.generated.md +++ b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/input.js \ - --passes "source2ast,ast2hir,normalizeobjprops,hir2ast,ast2source" + --passes "source2ast,ast2jsir,normalizeobjprops,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/run.generated.lit b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/run.generated.lit index d0c313c..52fd537 100644 --- a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/run.generated.lit +++ b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,normalizeobjprops,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,normalizeobjprops,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/README.generated.md b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/README.generated.md index 0a991ed..3f2b7ca 100644 --- a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/README.generated.md +++ b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/input.js \ - --passes "source2ast,ast2hir,normalizeobjprops,hir2ast,ast2source" + --passes "source2ast,ast2jsir,normalizeobjprops,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/run.generated.lit b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/run.generated.lit index d0c313c..52fd537 100644 --- a/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/run.generated.lit +++ b/maldoca/js/ir/transforms/normalize_object_properties/tests/object_property_ref/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,normalizeobjprops,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,normalizeobjprops,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/normalize_object_properties/tests/test_config.json b/maldoca/js/ir/transforms/normalize_object_properties/tests/test_config.json new file mode 100644 index 0000000..b2ef56b --- /dev/null +++ b/maldoca/js/ir/transforms/normalize_object_properties/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,ast2jsir,normalizeobjprops,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/README.generated.md b/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/README.generated.md index f86bf58..7f391e6 100644 --- a/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/README.generated.md +++ b/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/input.js \ - --passes "source2ast,erase_comments,ast2hir,peelparens,hir2ast,ast2source" + --passes "source2ast,erase_comments,ast2jsir,peelparens,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/run.generated.lit b/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/run.generated.lit index d56ae84..41660df 100644 --- a/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/run.generated.lit +++ b/maldoca/js/ir/transforms/peel_parentheses/tests/lvalue/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,erase_comments,ast2hir,peelparens,hir2ast,ast2source" \ +// RUN: --passes "source2ast,erase_comments,ast2jsir,peelparens,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/README.generated.md b/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/README.generated.md index 802b310..fda1cb5 100644 --- a/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/README.generated.md +++ b/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/input.js \ - --passes "source2ast,erase_comments,ast2hir,peelparens,hir2ast,ast2source" + --passes "source2ast,erase_comments,ast2jsir,peelparens,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/run.generated.lit b/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/run.generated.lit index d56ae84..41660df 100644 --- a/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/run.generated.lit +++ b/maldoca/js/ir/transforms/peel_parentheses/tests/rvalue/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,erase_comments,ast2hir,peelparens,hir2ast,ast2source" \ +// RUN: --passes "source2ast,erase_comments,ast2jsir,peelparens,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/peel_parentheses/tests/test_config.json b/maldoca/js/ir/transforms/peel_parentheses/tests/test_config.json new file mode 100644 index 0000000..fc17de1 --- /dev/null +++ b/maldoca/js/ir/transforms/peel_parentheses/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,erase_comments,ast2jsir,peelparens,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/remove_directives/tests/directives/run.lit b/maldoca/js/ir/transforms/remove_directives/tests/directives/run.lit index fa01426..5f83e2a 100644 --- a/maldoca/js/ir/transforms/remove_directives/tests/directives/run.lit +++ b/maldoca/js/ir/transforms/remove_directives/tests/directives/run.lit @@ -1,4 +1,4 @@ // RUN: INPUT=%s && \ // RUN: jsir_gen --input_file "$(dirname "${INPUT}")"/input.js \ -// RUN: --passes source2ast,ast2hir,remove_directives,hir2ast,ast2source \ +// RUN: --passes source2ast,ast2jsir,remove_directives,jsir2ast,ast2source \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname "${INPUT}")"/output.js diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/README.generated.md b/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/README.generated.md index 6578193..c742d24 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/README.generated.md +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/input.js \ - --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" + --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/run.generated.lit b/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/run.generated.lit index 946017a..04aecec 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/run.generated.lit +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/for_statement/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/README.generated.md b/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/README.generated.md index cb44b7f..496c284 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/README.generated.md +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/input.js \ - --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" + --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/run.generated.lit b/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/run.generated.lit index 946017a..04aecec 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/run.generated.lit +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/inner_scope/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/test_config.json b/maldoca/js/ir/transforms/split_declaration_statements/tests/test_config.json new file mode 100644 index 0000000..5cfae33 --- /dev/null +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/README.generated.md b/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/README.generated.md index 1cbcfd2..85e2e44 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/README.generated.md +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/input.js \ - --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" + --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/run.generated.lit b/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/run.generated.lit index 946017a..04aecec 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/run.generated.lit +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/variable_declaration/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/README.generated.md b/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/README.generated.md index 161af61..67e86e6 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/README.generated.md +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/input.js \ - --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" + --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/run.generated.lit b/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/run.generated.lit index 946017a..04aecec 100644 --- a/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/run.generated.lit +++ b/maldoca/js/ir/transforms/split_declaration_statements/tests/with_statement/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,split_declaration_statements,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,split_declaration_statements,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/README.generated.md b/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/README.generated.md index 9fc03b8..210b4fc 100644 --- a/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/README.generated.md +++ b/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/input.js \ - --passes "source2ast,ast2hir,split_sequence_expressions,hir2ast,ast2source" + --passes "source2ast,ast2jsir,split_sequence_expressions,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/run.generated.lit b/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/run.generated.lit index 4152a1f..904f2e3 100644 --- a/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/run.generated.lit +++ b/maldoca/js/ir/transforms/split_sequence_expressions/tests/for_statement/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,split_sequence_expressions,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,split_sequence_expressions,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/README.generated.md b/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/README.generated.md index bc4a134..5c3070b 100644 --- a/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/README.generated.md +++ b/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/input.js \ - --passes "source2ast,ast2hir,split_sequence_expressions,hir2ast,ast2source" + --passes "source2ast,ast2jsir,split_sequence_expressions,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/run.generated.lit b/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/run.generated.lit index 4152a1f..904f2e3 100644 --- a/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/run.generated.lit +++ b/maldoca/js/ir/transforms/split_sequence_expressions/tests/return/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,split_sequence_expressions,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,split_sequence_expressions,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/split_sequence_expressions/tests/test_config.json b/maldoca/js/ir/transforms/split_sequence_expressions/tests/test_config.json new file mode 100644 index 0000000..a1bfb6c --- /dev/null +++ b/maldoca/js/ir/transforms/split_sequence_expressions/tests/test_config.json @@ -0,0 +1,10 @@ +{ + "tests": [ + { + "output_file": "output.generated.txt", + "passes": "source2ast,ast2jsir,split_sequence_expressions,jsir2ast,ast2source", + "prefix": "SOURCE" + } + ], + "build_template": "BUILD.template" +} diff --git a/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/README.generated.md b/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/README.generated.md index d1e8b1d..7ae427c 100644 --- a/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/README.generated.md +++ b/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/README.generated.md @@ -3,5 +3,5 @@ To run manually: ```shell bazel run //maldoca/js/ir:jsir_gen -- \ --input_file $(pwd)/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/input.js \ - --passes "source2ast,ast2hir,split_sequence_expressions,hir2ast,ast2source" + --passes "source2ast,ast2jsir,split_sequence_expressions,jsir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/run.generated.lit b/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/run.generated.lit index 4152a1f..904f2e3 100644 --- a/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/run.generated.lit +++ b/maldoca/js/ir/transforms/split_sequence_expressions/tests/with_statement/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,ast2hir,split_sequence_expressions,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2jsir,split_sequence_expressions,jsir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt