1# Copyright (c) 2016 Google Inc. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15add_subdirectory(dominator_tree) 16add_subdirectory(loop_optimizations) 17 18add_spvtools_unittest(TARGET opt 19 SRCS aggressive_dead_code_elim_test.cpp 20 amd_ext_to_khr.cpp 21 analyze_live_input_test.cpp 22 assembly_builder_test.cpp 23 block_merge_test.cpp 24 c_interface_test.cpp 25 ccp_test.cpp 26 cfg_cleanup_test.cpp 27 cfg_test.cpp 28 code_sink_test.cpp 29 combine_access_chains_test.cpp 30 compact_ids_test.cpp 31 constants_test.cpp 32 constant_manager_test.cpp 33 control_dependence.cpp 34 convert_relaxed_to_half_test.cpp 35 convert_to_sampled_image_test.cpp 36 copy_prop_array_test.cpp 37 dataflow.cpp 38 dead_branch_elim_test.cpp 39 dead_insert_elim_test.cpp 40 dead_variable_elim_test.cpp 41 debug_info_manager_test.cpp 42 decoration_manager_test.cpp 43 def_use_test.cpp 44 desc_sroa_test.cpp 45 eliminate_dead_const_test.cpp 46 eliminate_dead_functions_test.cpp 47 eliminate_dead_io_components_test.cpp 48 eliminate_dead_member_test.cpp 49 eliminate_dead_output_stores_test.cpp 50 feature_manager_test.cpp 51 fix_func_call_arguments_test.cpp 52 fix_storage_class_test.cpp 53 flatten_decoration_test.cpp 54 fold_spec_const_op_composite_test.cpp 55 fold_test.cpp 56 freeze_spec_const_test.cpp 57 function_test.cpp 58 graphics_robust_access_test.cpp 59 if_conversion_test.cpp 60 inline_opaque_test.cpp 61 inline_test.cpp 62 insert_extract_elim_test.cpp 63 inst_bindless_check_test.cpp 64 inst_buff_addr_check_test.cpp 65 inst_debug_printf_test.cpp 66 instruction_list_test.cpp 67 instruction_test.cpp 68 interface_var_sroa_test.cpp 69 invocation_interlock_placement_test.cpp 70 interp_fixup_test.cpp 71 ir_builder.cpp 72 ir_context_test.cpp 73 ir_loader_test.cpp 74 iterator_test.cpp 75 line_debug_info_test.cpp 76 local_access_chain_convert_test.cpp 77 local_redundancy_elimination_test.cpp 78 local_single_block_elim.cpp 79 local_single_store_elim_test.cpp 80 local_ssa_elim_test.cpp 81 modify_maximal_reconvergence_test.cpp 82 module_test.cpp 83 module_utils.h 84 optimizer_test.cpp 85 pass_manager_test.cpp 86 pass_merge_return_test.cpp 87 pass_remove_duplicates_test.cpp 88 pass_utils.cpp 89 private_to_local_test.cpp 90 propagator_test.cpp 91 reduce_load_size_test.cpp 92 redundancy_elimination_test.cpp 93 remove_dontinline_test.cpp 94 remove_unused_interface_variables_test.cpp 95 register_liveness.cpp 96 relax_float_ops_test.cpp 97 replace_desc_array_access_using_var_index_test.cpp 98 replace_invalid_opc_test.cpp 99 scalar_analysis.cpp 100 scalar_replacement_test.cpp 101 set_spec_const_default_value_test.cpp 102 simplification_test.cpp 103 spread_volatile_semantics_test.cpp 104 strength_reduction_test.cpp 105 strip_debug_info_test.cpp 106 strip_nonsemantic_info_test.cpp 107 struct_cfg_analysis_test.cpp 108 switch_descriptorset_test.cpp 109 trim_capabilities_pass_test.cpp 110 type_manager_test.cpp 111 types_test.cpp 112 unify_const_test.cpp 113 upgrade_memory_model_test.cpp 114 utils_test.cpp pass_utils.cpp 115 value_table_test.cpp 116 vector_dce_test.cpp 117 workaround1209_test.cpp 118 wrap_opkill_test.cpp 119 LIBS SPIRV-Tools-opt 120 PCH_FILE pch_test_opt 121) 122if (NOT "${SPIRV_SKIP_TESTS}" AND TARGET gmock_main) 123 if (MSVC) 124 if (${MSVC_VERSION} LESS 1920) 125 # The VS 2017 debug build requires /bigobj on test_opt 126 # https://github.com/KhronosGroup/SPIRV-Tools/issues/5335 127 target_compile_options(test_opt PRIVATE /bigobj) 128 endif() 129 endif() 130endif() 131