]> git.ipfire.org Git - thirdparty/gcc.git/commit
Changes in CRC detection v3: - Changed get_dep and other functions called in it ...
authorMariam Arutunian <mariamarutunian@gmail.com>
Fri, 25 Nov 2022 12:34:06 +0000 (16:34 +0400)
committerJeff Law <jlaw@ventanamicro>
Tue, 21 Mar 2023 15:03:18 +0000 (09:03 -0600)
commit06fa23709d4789e3eabbd061c8db6b604be76403
tree49e33b2a6c4cd0ce1e15983b3ce7383fd6fef181
parent989cc51ea3fc92d1ab4261130658d7e1934770fe
Changes in CRC detection v3: - Changed get_dep and other functions called in it (names are changed to continue_to_check_dep_for_if, continue_to_check_dep_for_xor). To check whether xor statement is for crc calculation and whether if's condition is for checking MSB/LSB being 1, go up by def-chain until the loop boundaries. The continue_to_check_dep_for_xor function keeps phi_statements if they are from loop header (it may be crc's definition). Modified algorithms detects crc's phi statement in case of there is an if in if within the loop. The continue_to_check_dep_for_if besides checking whether the if is for checking MSB/LSB being one, also tries to determine which phi statement is for crc and which one for the data. - Added set_loop_statements_not_visited function to unset only statement of the loop (as only statements within the loop may be visited).

Addition in testsuit:
  - Added new crc test (crc-23.c).
gcc/gimple-crc-optimization.cc
gcc/testsuite/gcc.dg/crc-23.c [new file with mode: 0644]