This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The problem of unexpected code generation is discussed on https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64110The following patch introduces 2 new constraints '^' and '$' which are analogous to '?' and '!' but disfavor given alternative when *the operand with the new constraint* needs a reload ('?' and '!' disfavor the alternative if *any* operand needs a reload). I hope the new constraints will be useful for other insns and targets.
The patch was successfully bootstrapped and tested on x86-64. I just need an approval for changes in sse.md, stmt.c, and genoutput.c Thanks. 2015-01-14 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/64110 * stmt.c (parse_output_constraint): Process '^' and '$'. (parse_input_constraint): Ditto. * lra-constraints.c (process_alt_operands): Process the new constraints. * ira-costs.c (record_reg_classes): Process the new constraint '^'. * genoutput.c (indep_constraints): Add '^' and '$'. * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'. * doc/md.texi: Add description of the new constraints. 2015-01-14 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/64110 * gcc.target/i386/pr64110.c: Add scan-assembler.
Attachment:
pr64110-3.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |