Hi!
On Thu, Nov 22, 2012 at 08:29:36PM -0500, Vladimir Makarov wrote:
The following patch fixes
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55430
The patch was successfully bootstrapped and tested on x86/x86-64.
Committed as rev. 193742.
2012-11-22 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/55430
* lra.c: Move #include "hard-reg-set.h" before #include "rtl.h".
(new_insn_reg): Update biggest_mode.
(collect_non_operand_hard_regs): Check eliminable regs too.
(initialize_lra_reg_info_element): Initialize biggest_mode.
(add_regs_to_insn_regno_info): Ignore non-allocatable
non-eliminable hard regs.
(lra.c): Move setting lra_no_alloc_regs before
init_insn_recog_data.
* lra-constraints.c (simplify_operand_subreg): Add a comment.
(lra_constraints): Ignore equivalent memory of
regs occuring in paradoxical subregs.
* lra-lives.c (lra_create_live_ranges): Add a comment.
You haven't committed a testcase for this. I've adjusted my testcase
to match what e.g. gcc.dg/20030711-1.c testcase does (to make sure it
will work even on weirdo effective target mmap targets). Ok for trunk?