mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-12-26 17:51:02 +00:00
1f7b1f1bf7
We replace the std::vector in the Operand class by a new class that does a small size optimization. This helps improve compile time on Windows. Tested on three sets of shaders. Trying various values for the small vector. The optimal value for the operand class was 2. However, for the Instruction class, using an std::vector was optimal. Size of "0" means that an std::vector was used. Instruction size 0 4 8 Operand Size 0 489 544 684 1 593 487 2 469 570 4 473 8 505 This is a single thread run of ~120 shaders. For the multithreaded run the results were the similar. The basline time was ~62sec. The optimal configuration was an 2 for the OperandData and an std::vector for the OperandList with a compile time of ~38sec. Similar expiriments were done with other sets of shaders. The compile time still improved, but not as much. Contributes to https://github.com/KhronosGroup/SPIRV-Tools/issues/1609.
27 lines
820 B
CMake
27 lines
820 B
CMake
# Copyright (c) 2017 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_spvtools_unittest(TARGET util_intrusive_list
|
|
SRCS ilist_test.cpp
|
|
)
|
|
|
|
add_spvtools_unittest(TARGET bit_vector
|
|
SRCS bit_vector_test.cpp
|
|
LIBS SPIRV-Tools-opt
|
|
)
|
|
|
|
add_spvtools_unittest(TARGET small_vector
|
|
SRCS small_vector_test.cpp
|
|
)
|