diff options
author | Jakub Jelinek <jakub@redhat.com> | 2012-12-18 11:50:47 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2012-12-18 11:50:47 +0100 |
commit | 76bd29f63c873a5e50665d3be09f3d6e96dd2cf7 (patch) | |
tree | aa9c6427dcc97a3b76b02ae4b8e5bfd7aa409495 /gcc/rtlhooks.c | |
parent | 07146f23bcb7633110474cbf8476df1186352408 (diff) | |
download | gcc-76bd29f63c873a5e50665d3be09f3d6e96dd2cf7.tar.gz |
re PR rtl-optimization/55717 (ICE in form_sum, at reload.c:5400)
PR debug/55717
* rtlhooks-def.h (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Define to
gen_lowpart_if_possible.
(gen_lowpart_no_emit_general): Remove prototype.
* rtlhooks.c (gen_lowpart_no_emit_general): Removed.
* simplify-rtx.c (simplify_unary_operation_1,
simplify_binary_operation_1): Continue simplifying if
rtl_hooks.gen_lowpart_no_emit returns NULL_RTX.
* dwarf2out.c (mem_loc_descriptor) <case TRUNCATE>: Handle
truncation like lowpart SUBREG.
* testsuite/g++.dg/opt/pr55717.C: New test.
From-SVN: r194575
Diffstat (limited to 'gcc/rtlhooks.c')
-rw-r--r-- | gcc/rtlhooks.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/gcc/rtlhooks.c b/gcc/rtlhooks.c index 60e4d52890e..ef6552dfd56 100644 --- a/gcc/rtlhooks.c +++ b/gcc/rtlhooks.c @@ -1,5 +1,6 @@ /* Generic hooks for the RTL middle-end. - Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2007, 2008, 2009, 2011, 2012 + Free Software Foundation, Inc. This file is part of GCC. @@ -79,18 +80,6 @@ gen_lowpart_general (enum machine_mode mode, rtx x) } } -/* Similar to gen_lowpart, but cannot emit any instruction via - copy_to_reg or force_reg. Mainly used in simplify-rtx.c. */ -rtx -gen_lowpart_no_emit_general (enum machine_mode mode, rtx x) -{ - rtx result = gen_lowpart_if_possible (mode, x); - if (result) - return result; - else - return x; -} - rtx reg_num_sign_bit_copies_general (const_rtx x ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, |