]> git.ipfire.org Git - thirdparty/gcc.git/commit
[RISC-V] Avoid unnecessary extensions when value is already extended
authorJivan Hakobyan <jivanhakobyan9@gmail.com>
Sun, 13 Oct 2024 01:10:50 +0000 (19:10 -0600)
committerJeff Law <jlaw@ventanamicro.com>
Sun, 13 Oct 2024 01:10:50 +0000 (19:10 -0600)
commitc38385ddbcce9fbeeaa788b6a4f50bd0653b0271
tree926564856867a930457033212b2b025cf74604f6
parentf08af081a682887930ff7db79c1ff44d60bdb918
[RISC-V] Avoid unnecessary extensions when value is already extended

This is a minor patch from Jivan from roughly a year ago.  The basic
idea here is similar to what we do when extending values for the sake of
comparisons.  Specifically if the value is already known to be properly
extended, then an extension is just a copy.

The original idea was to use a similar patch, but which aborted to
identify cases where these unnecessary promotions where emitted.  All
that showed up when doing a testsuite run with that abort was the
promotions created by the arithmetic with overflow patterns such as addv.

Things like addv aren't *that* common so this never got high on my todo
list, even after a minor issue in this space was raised in bugzilla.

But with stage1 closing soon and no good reason not to go forward, I'm
submitting this into the pre-commit tester now.  My tester has been
using it since roughly Feb :-)  Plan would be to commit after the
pre-commit tester renders its verdict.

* config/riscv/riscv.md (zero_extendsidi2): If RHS is already
zero extended, then this is just a copy.
(extendsidi2): Similarly, but for sign extension.
gcc/config/riscv/riscv.md