mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-12-29 11:11:06 +00:00
802cf053c7
Adding basis of arithmetic merging * Refactored constant collection in ConstantManager * New rules: * consecutive negates * negate of arithmetic op with a constant * consecutive muls * reciprocal of div * Removed IRContext::CanFoldFloatingPoint * replaced by Instruction::IsFloatingPointFoldingAllowed * Fixed some bad tests * added some header comments Added PerformIntegerOperation * minor fixes to constants and tests * fixed IntMultiplyBy1 to work with 64 bit ints * added tests for integer mul merging Adding test for vector integer multiply merging Adding support for merging integer add and sub through negate * Added tests Adding rules to merge mult with preceding divide * Has a couple tests, but needs more * Added more comments Fixed bug in integer division folding * Will no longer merge through integer division if there would be a remainder in the division * Added a bunch more tests Adding rules to merge divide and multiply through divide * Improved comments * Added tests Adding rules to handle mul or div of a negation * Added tests Changes for review * Early exit if no constants are involved in more functions * fixed some comments * removed unused declaration * clarified some logic Adding new rules for add and subtract * Fold adds of adds, subtracts or negates * Fold subtracts of adds, subtracts or negates * Added tests |
||
---|---|---|
.. | ||
bit_stream.cpp | ||
bit_stream.h | ||
bitutils.h | ||
hex_float.h | ||
huffman_codec.h | ||
ilist_node.h | ||
ilist.h | ||
move_to_front.h | ||
parse_number.cpp | ||
parse_number.h | ||
string_utils.cpp | ||
string_utils.h |