# Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# This file contains all sources (vm and tests) for the compiler pipeline.
# Unit test files need to have a "_test" suffix appended to the name.
compiler_sources = [
  "aot/aot_call_specializer.cc",
  "aot/aot_call_specializer.h",
  "aot/precompiler.cc",
  "aot/precompiler.h",
  "asm_intrinsifier.cc",
  "asm_intrinsifier.h",
  "asm_intrinsifier_arm.cc",
  "asm_intrinsifier_arm64.cc",
  "asm_intrinsifier_ia32.cc",
  "asm_intrinsifier_x64.cc",
  "assembler/assembler.cc",
  "assembler/assembler.h",
  "assembler/assembler_arm.cc",
  "assembler/assembler_arm.h",
  "assembler/assembler_arm64.cc",
  "assembler/assembler_arm64.h",
  "assembler/assembler_ia32.cc",
  "assembler/assembler_ia32.h",
  "assembler/assembler_x64.cc",
  "assembler/assembler_x64.h",
  "assembler/disassembler.cc",
  "assembler/disassembler.h",
  "assembler/disassembler_arm.cc",
  "assembler/disassembler_arm64.cc",
  "assembler/disassembler_kbc.cc",
  "assembler/disassembler_kbc.h",
  "assembler/disassembler_x86.cc",
  "assembler/object_pool_builder.h",
  "backend/block_builder.h",
  "backend/block_scheduler.cc",
  "backend/block_scheduler.h",
  "backend/branch_optimizer.cc",
  "backend/branch_optimizer.h",
  "backend/code_statistics.cc",
  "backend/code_statistics.h",
  "backend/compile_type.h",
  "backend/constant_propagator.cc",
  "backend/constant_propagator.h",
  "backend/evaluator.cc",
  "backend/evaluator.h",
  "backend/flow_graph.cc",
  "backend/flow_graph.h",
  "backend/flow_graph_checker.cc",
  "backend/flow_graph_checker.h",
  "backend/flow_graph_compiler.cc",
  "backend/flow_graph_compiler.h",
  "backend/flow_graph_compiler_arm.cc",
  "backend/flow_graph_compiler_arm64.cc",
  "backend/flow_graph_compiler_ia32.cc",
  "backend/flow_graph_compiler_x64.cc",
  "backend/il.cc",
  "backend/il.h",
  "backend/il_arm.cc",
  "backend/il_arm64.cc",
  "backend/il_deserializer.cc",
  "backend/il_deserializer.h",
  "backend/il_ia32.cc",
  "backend/il_printer.cc",
  "backend/il_printer.h",
  "backend/il_serializer.cc",
  "backend/il_serializer.h",
  "backend/il_x64.cc",
  "backend/inliner.cc",
  "backend/inliner.h",
  "backend/linearscan.cc",
  "backend/linearscan.h",
  "backend/locations.cc",
  "backend/locations.h",
  "backend/locations_helpers.h",
  "backend/locations_helpers_arm.h",
  "backend/loops.cc",
  "backend/loops.h",
  "backend/range_analysis.cc",
  "backend/range_analysis.h",
  "backend/redundancy_elimination.cc",
  "backend/redundancy_elimination.h",
  "backend/sexpression.cc",
  "backend/sexpression.h",
  "backend/slot.cc",
  "backend/slot.h",
  "backend/type_propagator.cc",
  "backend/type_propagator.h",
  "call_specializer.cc",
  "call_specializer.h",
  "cha.cc",
  "cha.h",
  "compiler_pass.cc",
  "compiler_pass.h",
  "compiler_state.cc",
  "compiler_state.h",
  "ffi.cc",
  "ffi.h",
  "frontend/base_flow_graph_builder.cc",
  "frontend/base_flow_graph_builder.h",
  "frontend/bytecode_fingerprints.cc",
  "frontend/bytecode_fingerprints.h",
  "frontend/bytecode_flow_graph_builder.cc",
  "frontend/bytecode_flow_graph_builder.h",
  "frontend/bytecode_reader.cc",
  "frontend/bytecode_reader.h",
  "frontend/bytecode_scope_builder.cc",
  "frontend/bytecode_scope_builder.h",
  "frontend/constant_evaluator.cc",
  "frontend/constant_evaluator.h",
  "frontend/flow_graph_builder.cc",
  "frontend/flow_graph_builder.h",
  "frontend/kernel_binary_flowgraph.cc",
  "frontend/kernel_binary_flowgraph.h",
  "frontend/kernel_fingerprints.cc",
  "frontend/kernel_fingerprints.h",
  "frontend/kernel_to_il.cc",
  "frontend/kernel_to_il.h",
  "frontend/kernel_translation_helper.cc",
  "frontend/kernel_translation_helper.h",
  "frontend/prologue_builder.cc",
  "frontend/prologue_builder.h",
  "frontend/scope_builder.cc",
  "frontend/scope_builder.h",
  "graph_intrinsifier.cc",
  "graph_intrinsifier.h",
  "graph_intrinsifier_arm.cc",
  "graph_intrinsifier_arm64.cc",
  "graph_intrinsifier_ia32.cc",
  "graph_intrinsifier_x64.cc",
  "intrinsifier.cc",
  "intrinsifier.h",
  "jit/compiler.cc",
  "jit/compiler.h",
  "jit/jit_call_specializer.cc",
  "jit/jit_call_specializer.h",
  "method_recognizer.cc",
  "method_recognizer.h",
  "recognized_methods_list.h",
  "relocation.cc",
  "relocation.h",
  "runtime_api.cc",
  "runtime_api.h",
  "stub_code_compiler.h",
  "stub_code_compiler_arm.cc",
  "stub_code_compiler_arm64.cc",
  "stub_code_compiler_ia32.cc",
  "stub_code_compiler_x64.cc",
]

compiler_sources_tests = [
  "assembler/assembler_arm64_test.cc",
  "assembler/assembler_arm_test.cc",
  "assembler/assembler_ia32_test.cc",
  "assembler/assembler_test.cc",
  "assembler/assembler_x64_test.cc",
  "assembler/disassembler_test.cc",
  "backend/bce_test.cc",
  "backend/il_test.cc",
  "backend/il_test_helper.h",
  "backend/il_test_helper.cc",
  "backend/inliner_test.cc",
  "backend/locations_helpers_test.cc",
  "backend/loops_test.cc",
  "backend/range_analysis_test.cc",
  "backend/redundancy_elimination_test.cc",
  "backend/sexpression_test.cc",
  "backend/slot_test.cc",
  "backend/type_propagator_test.cc",
  "backend/typed_data_aot_test.cc",
  "cha_test.cc",
]
