Jakub Jelinek [Wed, 7 May 2014 15:54:34 +0000 (17:54 +0200)]
backport: re PR target/57623 (BEXTR intrinsic has memory operands switched around (fails to compile code))
Backported from mainline
2013-06-27 Jakub Jelinek <jakub@redhat.com>
PR target/57623
* config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
to match RTL canonicalization. Swap predicates and
constraints of operand 1 and 2.
Richard Biener [Wed, 7 May 2014 11:51:36 +0000 (11:51 +0000)]
backport: re PR tree-optimization/59164 (ice: tree check: expected tree that contains ‘decl minimal’ structure, have ‘integer_cst’ in get_var_info, at tree-into-ssa.c:380)
2014-05-07 Richard Biener <rguenther@suse.de>
Backport from mainline
2013-11-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/59164
* tree-vect-loop.c (vect_analyze_loop_operations): Adjust
check whether we can create an epilogue loop to reflect the
cases where we create one.
Richard Biener [Wed, 7 May 2014 08:05:57 +0000 (08:05 +0000)]
re PR tree-optimization/57864 (ICE in bitmap_set_replace_value, at tree-ssa-pre.c:862)
2014-05-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/57864
* tree-ssa-pre.c (phi_translate_1): Backport NAME case
simplification from mainline. Do not lookup the VN
value-number here.
Backport from mainline
2013-09-14 Iain Sandoe <iains@gcc.gnu.org>
gcc:
PR target/48094
* config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is seen.
(darwin_objc1_section): Likewise.
(darwin_file_end): Emit Image Info section when required.
PR target/54083
* gcc.dg/attr-weakref-1.c: Allow the test on darwin with
the additional options -Wl,-undefined,dynamic_lookup and
-Wl,-flat_namespace
* gcc.dg/torture/pr53922.c: Additional option
-Wl,-flat_namespace for darwin[89].
Jason Merrill [Tue, 1 Apr 2014 17:28:29 +0000 (13:28 -0400)]
Core DR 475 PR c++/41174 PR c++/59224
Core DR 475
PR c++/41174
PR c++/59224
* libsupc++/eh_throw.cc (__cxa_throw): Set uncaughtExceptions.
* libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception)
(__cxa_allocate_exception): Don't set it here.
Jonathan Wakely [Tue, 25 Mar 2014 20:40:17 +0000 (20:40 +0000)]
re PR libstdc++/60658 (std::atomic<T*> is unexpectedly not lock-free)
PR libstdc++/60658
* include/bits/atomic_base.h (__atomic_base<_PTp*>::is_lock_free()):
Use sizeof pointer type not the element type.
* testsuite/29_atomics/atomic/60658.cc: New.
Jakub Jelinek [Thu, 20 Mar 2014 16:34:32 +0000 (17:34 +0100)]
re PR target/60568 (lto1: internal compiler error: in insn_min_length, at config/i386/i386.md:1599)
PR target/60568
* config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
into CONST, put pic register as first operand of PLUS. Use
gen_const_mem for both 32-bit and 64-bit PIC got loads.
Richard Biener [Tue, 18 Mar 2014 10:58:22 +0000 (10:58 +0000)]
backport: [multiple changes]
2014-03-18 Richard Biener <rguenther@suse.de>
Backport from mainline
2013-11-05 Richard Biener <rguenther@suse.de>
PR middle-end/58941
* tree-dfa.c (get_ref_base_and_extent): Merge common code
in MEM_REF and TARGET_MEM_REF handling. Make sure to
process trailing array detection before diving into the
view-converted object (and possibly apply some extra offset).
* gcc.dg/torture/pr58941.c: New testcase.
2012-05-07 Eric Botcazou <ebotcazou@adacore.com>
* tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
computation using the precision of the index type.
2012-05-31 Eric Botcazou <ebotcazou@adacore.com>
* tree-dfa.c (get_ref_base_and_extent): Compute the offset using
double ints throughout.
Richard Biener [Tue, 18 Mar 2014 08:46:21 +0000 (08:46 +0000)]
backport: [multiple changes]
2014-03-18 Richard Biener <rguenther@suse.de>
Backport from mainline
2013-08-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/57521
* tree-if-conv.c (if_convertible_bb_p): Verify that at least
one edge is non-critical.
(find_phi_replacement_condition): Make sure to use a non-critical
edge. Cleanup and remove old bug workarounds.
(bb_postdominates_preds): Remove.
(if_convertible_loop_p_1): Do not compute post-dominators.
(combine_blocks): Do not free post-dominators.
(main_tree_if_conversion): Likewise.
Jerry DeLisle [Sat, 15 Mar 2014 23:06:44 +0000 (23:06 +0000)]
backport: re PR fortran/58324 (Bogus END-of-line error with list-directed I/O of file without trailing sequential record marker)
2014-03-15 Jerry DeLisle <jvdelisle@gcc.gnu>
Backport from mainline
PR libfortran/58324
PR libfortran/38199
* intrinsics/string_intriniscs_inc.c (string_len_trim):
Remove prototypes for string_len_trim and move to...
* libgfortran.h (string_len_trim): ... here and
(string_len_trim_char4): ...here.
* io/list_read.c (finish_list_read): Read one character to check
for the end of the file. If it is the end, then issue the file
end error message. If not, use eat_line to reach the end
without giving error. The next attempt to read will then
issue the error as described above.
* io/read.c (read_decimal): Quickly skip spaces to avoid calls
to next_char.
* io/unit.c (is_trim_ok): New helper function to check various
conditions to see if its OK to trim the internal unit string.
(get_internal_unit): Use LEN_TRIM to shorten selected internal
unit strings for optimizing READ. Enable this optimization for
formatted READ.
Backport from mainline
PR libfortran/58324
* gfortran.dg/list_read_12.f90: New test.
Georg-Johann Lay [Fri, 14 Mar 2014 09:52:07 +0000 (09:52 +0000)]
backport: re PR target/59396 ([avr] Wrong warning with ISR() and -flto)
Backport from 2014-03-14 trunk r208562.
PR target/59396
* config/avr/avr.c (avr_set_current_function): Pass function name
through default_strip_name_encoding before sanity checking instead
of skipping the first char of the assembler name.
Eric Botcazou [Thu, 13 Mar 2014 15:43:01 +0000 (15:43 +0000)]
re PR ada/51483 (cstand.adb:Register_Float_Type makes invalid assumption about FP modes)
PR ada/51483
* back_end.ads (Register_Type_Proc): Add 'precision' parameter.
* cstand.adb (Register_Float_Type): Add 'precision' parameter and use
it to set the RM size. Use directly 'size' for the Esize.
* gcc-interface/gigi.h (enumerate_modes): Add integer parameter.
* gcc-interface/misc.c (enumerate_modes): Likewise. Do not register
types for vector modes, pass the size in addition to the precision.