re PR target/40832 (gfortran 4.4.0 generates invalid .s file on solaris-x86 using -march=k8 for 130.socorro)
PR target/40832
* config/i386/i386.c (output_387_ffreep): Rewrite to return
ASM_SHORT instead of .word.
* config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
instead of .word in asm template.
sse-recip-vec.c: Move arrays out of test function to enable vectorization.
* gcc.target/i386/sse-recip-vec.c: Move arrays out of test
function to enable vectorization.
* gcc.target/i386/sse2-lrint-vec.c: Ditto.
* gcc.target/i386/sse2-lrintf-vec.c: Ditto.
2009-02-04 Paolo Bonzini <bonzini@gnu.org>
Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/37889
* rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
Move offset handling from PLUS to before the switch. Use new
arguments when considering SYMBOL_REFs too.
(rtx_addr_can_trap_p): Pass dummy offset and size.
(enum may_trap_p_flags): Remove.
(may_trap_p_1): Pass size from MEM_SIZE.
Richard Guenther [Fri, 10 Jul 2009 16:00:13 +0000 (16:00 +0000)]
backport: re PR middle-end/38934 (ICE in set_value_range, at tree-vrp.c:398)
2009-07-10 Richard Guenther <rguenther@suse.de>
Backport from mainline
2009-01-28 Jakub Jelinek <jakub@redhat.com>
PR middle-end/38934
* tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
set to varying whenever max has TREE_OVERFLOW set, similarly
for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
Uros Bizjak [Sun, 28 Jun 2009 23:12:37 +0000 (01:12 +0200)]
re PR tree-optimization/40550 (Segmentation fault caused by alignment error in sse code)
PR tree-optimization/40550
* tree-vect-generic.c (expand_vector_operations_1): Compute in
vector_compute_type only when the size of vector_compute_type is
less than the size of type.
testsuite/ChangeLog:
PR tree-optimization/40550
* gcc.dg/pr40550.c: New test.
Kai Tietz [Sat, 27 Jun 2009 17:50:20 +0000 (17:50 +0000)]
[multiple changes]
2009-06-27 Kai Tietz <kai.tietz@onevision.com>
Merged from trunk rev/148061
2009-06-01 Jakub Jelinek <jakub@redhat.com>
PR other/40024
* emutls.c (__emutls_get_address): Change arr->size to mean number
of allocated arr->data entries instead of # of slots + 1.
Richard Guenther [Thu, 25 Jun 2009 12:40:30 +0000 (12:40 +0000)]
backport: [multiple changes]
2009-06-25 Richard Guenther <rguenther@suse.de>
Backport from mainline
2008-12-19 Jakub Jelinek <jakub@redhat.com>
PR libgcj/38396
* configure.ac (use_libgcj_bc): Set to no if not enable_shared.
(LIBGCJ_SPEC): Use -lgcj instead of -lgcj_bc even for -static
or -static-libgcj.
* Makefile.am (ecjx_SOURCES): Add ecjx.cc.
(ecjx_LDADD): Don't add libgcj.la when
NATIVE && USE_LIBBGCJ_BC.
* ecjx.cc: New file.
* Makefile.in: Regenerated.
* configure: Regenerated.
Richard Guenther [Thu, 25 Jun 2009 09:44:12 +0000 (09:44 +0000)]
backport: [multiple changes]
2009-06-25 Richard Guenther <rguenther@suse.de>
Backport from mainline
2009-01-12 Jakub Jelinek <jakub@redhat.com>
PR c/32041
* c-parser.c (c_parser_postfix_expression): Allow `->' in
offsetof member-designator, handle it as `[0].'.
cp/
* parser.c (cp_parser_builtin_offsetof): Allow `->' in
offsetof member-designator, handle it as `[0].'.
* gcc.dg/pr32041.c: New test.
* g++.dg/parse/offsetof9.C: New test.
2008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
PR tree-optimization/36891
* tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
the newly created variable.
Create a VECTOR_CST of all 1s for vector types.
Richard Guenther [Fri, 19 Jun 2009 21:44:24 +0000 (21:44 +0000)]
backport: [multiple changes]
2009-06-19 Richard Guenther <rguenther@suse.de>
Backport from mainline:
2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/36607
* convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
* g++.dg/expr/cast10.C: New test.
2009-02-03 Jakub Jelinek <jakub@redhat.com>
PR target/35318
* function.c (match_asm_constraints_1): Skip over
initial optional % in the constraint.
* gcc.c-torture/compile/pr35318.c: New test.
2009-05-20 Jakub Jelinek <jakub@redhat.com>
PR middle-end/40204
* fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
recursion if build_int_cst_type returns the same INTEGER_CST as
arg1.
PR tree-optimization/40087
* tree-ssa-loop-niter.c (number_of_iterations_ne_max,
number_of_iterations_ne): Rename never_infinite argument.
(number_of_iterations_lt_to_ne, number_of_iterations_lt,
number_of_iterations_le): Handle pointer-type ivs when
exit_must_be_taken is false.
(number_of_iterations_cond): Do not always assume that
exit_must_be_taken if the control variable is a pointer.
Richard Guenther [Wed, 17 Jun 2009 13:06:21 +0000 (13:06 +0000)]
re PR middle-end/40404 (Comparison involving unsigned int:17 bitfield seems wrong)
2009-06-17 Richard Guenther <rguenther@suse.de>
PR middle-end/40404
* fold-const.c (fold_binary): Verify the type precision of the
stripped arguments of the comparison are the same before
folding the comparison.
Richard Guenther [Wed, 17 Jun 2009 12:03:08 +0000 (12:03 +0000)]
re PR c++/40389 (optimizer bug (possibly))
2009-06-17 Richard Guenther <rguenther@suse.de>
PR middle-end/40389
* tree-ssa-operands.c (get_modify_stmt_operands): Add NRV
results to the addresses taken bitmap.
* tree-scalar-evolution.c (scev_const_prop): Do not insert
incomplete stmts into the instruction stream.
Richard Guenther [Wed, 17 Jun 2009 12:00:40 +0000 (12:00 +0000)]
re PR middle-end/40460 (Enormous memory usage during compilation with -O2 or -O3 optimizations.)
2009-06-17 Richard Guenther <rguenther@suse.de>
PR middle-end/40460
* tree-chrec.h (build_polynomial_chrec): If we cannot determine
if there is no evolution of left in the loop bail out.
* tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
chrec_fold_multiply.
Uros Bizjak [Thu, 11 Jun 2009 20:59:16 +0000 (22:59 +0200)]
backport: re PR target/38222 (gcc.target/i386/sse4_2-popcntl.c fails on i686-apple-darwin9)
Backport from mainline:
2008-11-22 Uros Bizjak <ubizjak@gmail.com>
PR target/38222
* config/i386/i386.md (SWI248): New mode iterator.
(popcount<mode>2): Rename from popcounthi2, popcountsi2 and
popcounthi2 insn patterns. Macroize pattern using SWI248 mode
iterator. Generate popcnt mnemonic without mode extensions
for Darwin x86 targets.
(*popcount<mode>2_cmp): Ditto.
(*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
extensions for Darwin x86 targets.