This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Generating gimple assign stmt that changes sign
- From: Kugan Vivekanandarajah <kugan dot vivekanandarajah at linaro dot org>
- To: gcc <gcc at gcc dot gnu dot org>
- Date: Tue, 22 May 2018 08:50:43 +1000
- Subject: Generating gimple assign stmt that changes sign
Hi,
I am looking to introduce ABSU_EXPR and that would create:
unsigned short res = ABSU_EXPR (short);
Note that the argument is signed and result is unsigned. As per the
review, I have a match.pd entry to generate this as:
(simplify (abs (convert @0))
(if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)))
(convert (absu @0))))
Now when gimplifying the converted tree, how do we tell that ABSU_EXPR
will take a signed arg and return unsigned. I will have other match.pd
entries so this will be generated while in gimple.passes too. Should I
add new functions in gimple.[h|c] for this.
Is there any examples I can refer to. Conversion expressions seems to
be the only place where sign can change in gimple assignment but they
are very specific.
Thanks,
Kugan