diff options
author | Roger Sayle <roger@nextmovesoftware.com> | 2020-07-11 20:03:39 +0100 |
---|---|---|
committer | Roger Sayle <roger@nextmovesoftware.com> | 2020-07-11 20:03:39 +0100 |
commit | 2b4bbc17077ac12fc9742ade4919a6de0277ac8c (patch) | |
tree | d18d787ae9291c18b6a31f6e37ad5c8c70435156 /gcc/expr.c | |
parent | 90efb2512d40f0a59b063aa0416a6d28849ee424 (diff) | |
download | gcc-2b4bbc17077ac12fc9742ade4919a6de0277ac8c.zip gcc-2b4bbc17077ac12fc9742ade4919a6de0277ac8c.tar.gz gcc-2b4bbc17077ac12fc9742ade4919a6de0277ac8c.tar.bz2 |
middle-end: Improve RTL expansion in expand_mul_overflow,
This patch improves the RTL that the middle-end generates for testing
signed overflow following a widening multiplication. During this
expansion the middle-end generates a truncation which can get used
multiple times. Placing this intermediate value in a pseudo register
reduces the amount of code generated on platforms where this truncation
requires an explicit instruction.
2020-07-11 Roger Sayle <roger@nextmovesoftware.com>
gcc/ChangeLog:
* internal-fn.c (expand_mul_overflow): When checking for signed
overflow from a widening multiplication, we access the truncated
lowpart RES twice, so keep this value in a pseudo register.
Diffstat (limited to 'gcc/expr.c')
0 files changed, 0 insertions, 0 deletions