aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/constraint.cc
diff options
context:
space:
mode:
authorJeff Law <jlaw@ventanamicro>2023-05-09 07:18:45 -0600
committerJeff Law <jlaw@ventanamicro>2023-05-09 07:18:45 -0600
commit204303c81e82ddd01e7dc5a5a63719d476f9043c (patch)
treeabc87de323cc440f65e603ae73575c61445ada4c /gcc/cp/constraint.cc
parent2ed5ceba0fe313ef09bdfe98788ba9377bfec9aa (diff)
downloadgcc-204303c81e82ddd01e7dc5a5a63719d476f9043c.zip
gcc-204303c81e82ddd01e7dc5a5a63719d476f9043c.tar.gz
gcc-204303c81e82ddd01e7dc5a5a63719d476f9043c.tar.bz2
Eliminate more comparisons on the H8 port
This patch fixes a minor code quality issue I found while testing LRA on the H8. Specifically we have a peephole which converts a comparison of a memory location against zero into a load + comparison which is actually more efficient. This triggers when there are registers available at the right point during peephole2. If the load is not a mode dependent address we can actually do better by realizing the load itself sets the proper flags and eliminate the comparison. I may have expected this to happen when I wrote the original peephole2, but cmpelim runs before peephole2, so clearly if we want to eliminate the comparison we have to do it manually. gcc/ * config/h8300/testcompare.md: Add peephole2 which uses a memory load to set flags, thus eliminating a compare against zero.
Diffstat (limited to 'gcc/cp/constraint.cc')
0 files changed, 0 insertions, 0 deletions