# Copyright (c) 2016 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. add_subdirectory(dominator_tree) add_subdirectory(loop_optimizations) add_spvtools_unittest(TARGET opt SRCS aggressive_dead_code_elim_test.cpp amd_ext_to_khr.cpp analyze_live_input_test.cpp assembly_builder_test.cpp block_merge_test.cpp c_interface_test.cpp ccp_test.cpp cfg_cleanup_test.cpp cfg_test.cpp code_sink_test.cpp combine_access_chains_test.cpp compact_ids_test.cpp constants_test.cpp constant_manager_test.cpp control_dependence.cpp convert_relaxed_to_half_test.cpp convert_to_sampled_image_test.cpp copy_prop_array_test.cpp dataflow.cpp dead_branch_elim_test.cpp dead_insert_elim_test.cpp dead_variable_elim_test.cpp debug_info_manager_test.cpp decoration_manager_test.cpp def_use_test.cpp desc_sroa_test.cpp eliminate_dead_const_test.cpp eliminate_dead_functions_test.cpp eliminate_dead_io_components_test.cpp eliminate_dead_member_test.cpp eliminate_dead_output_stores_test.cpp feature_manager_test.cpp fix_func_call_arguments_test.cpp fix_storage_class_test.cpp flatten_decoration_test.cpp fold_spec_const_op_composite_test.cpp fold_test.cpp freeze_spec_const_test.cpp function_test.cpp graphics_robust_access_test.cpp if_conversion_test.cpp inline_opaque_test.cpp inline_test.cpp insert_extract_elim_test.cpp inst_bindless_check_test.cpp inst_buff_addr_check_test.cpp inst_debug_printf_test.cpp instruction_list_test.cpp instruction_test.cpp interface_var_sroa_test.cpp invocation_interlock_placement_test.cpp interp_fixup_test.cpp ir_builder.cpp ir_context_test.cpp ir_loader_test.cpp iterator_test.cpp line_debug_info_test.cpp local_access_chain_convert_test.cpp local_redundancy_elimination_test.cpp local_single_block_elim.cpp local_single_store_elim_test.cpp local_ssa_elim_test.cpp modify_maximal_reconvergence_test.cpp module_test.cpp module_utils.h optimizer_test.cpp pass_manager_test.cpp pass_merge_return_test.cpp pass_remove_duplicates_test.cpp pass_utils.cpp private_to_local_test.cpp propagator_test.cpp reduce_load_size_test.cpp redundancy_elimination_test.cpp remove_dontinline_test.cpp remove_unused_interface_variables_test.cpp register_liveness.cpp relax_float_ops_test.cpp replace_desc_array_access_using_var_index_test.cpp replace_invalid_opc_test.cpp scalar_analysis.cpp scalar_replacement_test.cpp set_spec_const_default_value_test.cpp simplification_test.cpp spread_volatile_semantics_test.cpp strength_reduction_test.cpp strip_debug_info_test.cpp strip_nonsemantic_info_test.cpp struct_cfg_analysis_test.cpp switch_descriptorset_test.cpp trim_capabilities_pass_test.cpp type_manager_test.cpp types_test.cpp unify_const_test.cpp upgrade_memory_model_test.cpp utils_test.cpp pass_utils.cpp value_table_test.cpp vector_dce_test.cpp workaround1209_test.cpp wrap_opkill_test.cpp LIBS SPIRV-Tools-opt PCH_FILE pch_test_opt ) if (NOT "${SPIRV_SKIP_TESTS}" AND TARGET gmock_main) if (MSVC) if (${MSVC_VERSION} LESS 1920) # The VS 2017 debug build requires /bigobj on test_opt # https://github.com/KhronosGroup/SPIRV-Tools/issues/5335 target_compile_options(test_opt PRIVATE /bigobj) endif() endif() endif()