re PR target/36246 (Reload chooses too wide mode for reg->mem->xmmreg reload)
PR target/36246 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define. testsuite/ChangeLog: PR target/36246 * gcc.target/i386/pr36246.c: New test. From-SVN: r135437
This commit is contained in:
parent
44e3566704
commit
c62b365920
4 changed files with 47 additions and 22 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-05-16 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/36246
|
||||
* config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
|
||||
|
||||
2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
* ifcvt.c (dead_or_predicable): Rename
|
||||
|
@ -58,8 +63,8 @@
|
|||
|
||||
2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
* cfg.c (init_flow): Add argument THE_FUN. Use it
|
||||
instead of cfun. Update all users.
|
||||
* cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
|
||||
Update all users.
|
||||
|
||||
2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
|
@ -68,10 +73,9 @@
|
|||
* tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
|
||||
Add verbose dump.
|
||||
* tree-pass.h (TDF_VERBOSE): New dump flag.
|
||||
* print-tree.c (print_node): Added code to be able to print
|
||||
PHI_NODES.
|
||||
* print-tree.c (print_node): Added code to be able to print PHI_NODES.
|
||||
(tree-flow.h): Added include.
|
||||
Makefile.in (print-tree.o): Added TREE_FLOW_H.
|
||||
* Makefile.in (print-tree.o): Added TREE_FLOW_H.
|
||||
|
||||
2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
|
||||
|
||||
|
@ -87,8 +91,7 @@
|
|||
MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
|
||||
* config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
|
||||
BFIN_CPU_UNKNOWN.
|
||||
* config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for
|
||||
BF561.
|
||||
* config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
|
||||
(LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
|
||||
option.
|
||||
* config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
|
||||
|
@ -123,8 +126,7 @@
|
|||
* ipa-inline.c (compute_inline_parameters): Made public and added
|
||||
node parameter.
|
||||
(compute_inline_parameters_for_current): New function.
|
||||
(pass_inline_param): Now calls
|
||||
compute_inline_parameters_for_current.
|
||||
(pass_inline_param): Now calls compute_inline_parameters_for_current.
|
||||
(inline_generate_summary): Removed parameter and made to loop over
|
||||
all cgraph nodes.
|
||||
(pass_ipa_inline): Updated for new IPA_PASS structure.
|
||||
|
@ -147,8 +149,7 @@
|
|||
|
||||
2008-05-15 Diego Novillo <dnovillo@google.com>
|
||||
|
||||
* config/arm/arm.c (arm_return_in_memory): Fix return
|
||||
type.
|
||||
* config/arm/arm.c (arm_return_in_memory): Fix return type.
|
||||
* config/arm/arm-protos.h (arm_return_in_memory): Likewise.
|
||||
|
||||
2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
|
||||
|
@ -158,9 +159,8 @@
|
|||
Don't call record_truncated_value from here.
|
||||
(record_truncated_value): Turn it into a for_each_rtx callback.
|
||||
(record_truncated_values): New function.
|
||||
(combine_instructions): Call note_uses with
|
||||
record_truncated_values. Change name of check_conversion to
|
||||
check_promoted_subreg.
|
||||
(combine_instructions): Call note_uses with record_truncated_values.
|
||||
Change name of check_conversion to check_promoted_subreg.
|
||||
|
||||
2008-05-15 Janis Johnson <janis187@us.ibm.com>
|
||||
|
||||
|
|
|
@ -1516,6 +1516,14 @@ enum reg_class
|
|||
#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \
|
||||
ix86_secondary_memory_needed ((CLASS1), (CLASS2), (MODE), 1)
|
||||
|
||||
/* Get_secondary_mem widens integral modes to BITS_PER_WORD.
|
||||
There is no need to emit full 64 bit move on 64 bit targets
|
||||
for integral modes that can be moved using 32 bit move. */
|
||||
#define SECONDARY_MEMORY_NEEDED_MODE(MODE) \
|
||||
(GET_MODE_BITSIZE (MODE) < 32 && INTEGRAL_MODE_P (MODE) \
|
||||
? mode_for_size (32, GET_MODE_CLASS (MODE), 0) \
|
||||
: MODE)
|
||||
|
||||
/* QImode spills from non-QI registers need a scratch. This does not
|
||||
happen often -- the only example so far requires an uninitialized
|
||||
pseudo. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2008-05-16 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/36246
|
||||
* gcc.target/i386/pr36246.c: New test.
|
||||
|
||||
2008-05-16 Sebastian Pop <sebastian.pop@amd.com>
|
||||
Jan Sjodin <jan.sjodin@amd.com>
|
||||
|
||||
|
@ -58,16 +63,14 @@
|
|||
2008-05-15 Janis Johnson <janis187@us.ibm.com>
|
||||
|
||||
* lib/torture-options.exp: New support for torture options.
|
||||
* lib/gfortran-dg.exp (gfortran-dg-runtest): Use new torture
|
||||
procs.
|
||||
* lib/gfortran-dg.exp (gfortran-dg-runtest): Use new torture procs.
|
||||
* lib/c-torture.exp: Define C_TORTURE_OPTIONS instead of
|
||||
TORTURE_OPTIONS; don't define torture_with_loops and
|
||||
torture_without_loops.
|
||||
* lib/gcc-dg.exp: Define DG_TORTURE_OPTIONS instead of
|
||||
TORTURE_OPTIONS; don't define torture_with_loops and
|
||||
torture_without_loops.
|
||||
(gcc-dg-runtest): Use new torture procs if no torture options
|
||||
defined.
|
||||
(gcc-dg-runtest): Use new torture procs if no torture options defined.
|
||||
* lib/fortran-torture.exp: Define FORTRAN_TORTURE_OPTIONS instead of
|
||||
TORTURE_OPTIONS.
|
||||
(fortran-torture-execute): Use torture_with_loops instead of
|
||||
|
|
14
gcc/testsuite/gcc.target/i386/pr36246.c
Normal file
14
gcc/testsuite/gcc.target/i386/pr36246.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
/* { dg-options "-O2 -mtune=generic" } */
|
||||
|
||||
typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
|
||||
typedef int __v4si __attribute__ ((__vector_size__ (16)));
|
||||
|
||||
__m128i
|
||||
_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
|
||||
{
|
||||
return (__m128i)(__v4si){ __q0, __q1, __q2, __q3 };
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-not "movq" } } */
|
Loading…
Add table
Reference in a new issue