31370.cc: Skip this test on powerpc64-*-freebsd*.
[official-gcc.git] / gcc / ChangeLog
blob1c9f4b6220643702cfe92b430de20e09f8fd37fb
1 2012-03-21  Georg-Johann Lay  <avr@gjlay.de>
3         PR rtl-optimization/52543
4         PR target/52461
5         * config/avr/avr-protos.h (avr_load_lpm): New prototype.
6         * config/avr/avr.c (avr_mode_dependent_address_p): New function.
7         (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
8         (avr_load_libgcc_p): Restrict to __flash loads.
9         (avr_out_lpm): Only handle 1-byte loads from __flash.
10         (avr_load_lpm): New function.
11         (avr_find_unused_d_reg): Remove.
12         (avr_out_lpm_no_lpmx): Remove.
13         (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
14         * config/avr/avr.md (unspec): Add UNSPEC_LPM.
15         (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
16         (load_<mode>, load_<mode>_clobber): New insns.
17         (mov<mode>): For multi-byte move from non-generic
18         16-bit address spaces: Expand to load_<mode> resp.
19         load_<mode>_clobber.
20         (load<mode>_libgcc): Remove expander.
21         (split-lpmx): Remove split.
23 2012-03-21  Richard Earnshaw  <rearnsha@arm.com>
25         * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
26         * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
27         All callers changed.
28         (Fixed_core_reg): New feature.
29         (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg.  Allow fmrrd in
30         disassembly.
31         * neon-testgen.ml: Handle Fixed_core_reg.
33 2012-03-21  Andrew Stubbs  <ams@codesourcery.com>
35         * config/arm/arm.c (thumb2_reorg): Add complete support
36         for 16-bit instructions.
37         * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
39 2012-03-21  Richard Guenther  <rguenther@suse.de>
41         PR tree-optimizer/52636
42         * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
43         to the appropriate type.
45 2012-03-21  Richard Guenther  <rguenther@suse.de>
47         * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
48         dependencies.
49         * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
50         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
51         * passes.c (init_optimization_passes): Remove pass_init_function,
52         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
53         * tree-pass.h (pass_init_function): Remove.
54         (pass_jump): Remove.
55         (pass_initial_value_sets): Remove.
56         (pass_unshare_all_rtl): Remove.
57         * integrate.c (pass_initial_value_sets): Remove.
58         * emit-rtl.c (pass_unshare_all_rtl): Remove.
59         * tree.h (init_function_for_compilation): Remove.
60         * function.c (init_function_for_compilation): Remove.
61         (pass_init_function): Remove.
62         * cfgcleanup.c (rest_of_handle_jump): Remove.
63         (pass_jump): Remove.
65 2012-03-20  Jason Merrill  <jason@redhat.com>
67         * tree-streamer-in.c (streamer_alloc_tree): Call
68         ggc_alloc_zone_cleared_tree_node instead of
69         ggc_alloc_zone_cleared_tree_node_stat.
71 2012-03-20  Jonathan Wakely  <jwakely.gcc@gmail.com>
73         * doc/extend.texi (Template Instantiation): Remove anachronisms.
75 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
77         PR target/52607
78         * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
79         (ix86_expand_vec_perm_const_1): Call it.
81         * config/i386/i386.c (vselect_insn): New variable.
82         (init_vselect_insn): New function.
83         (expand_vselect, expand_vselect_insn): Add testing_p argument.
84         Call init_vselect_insn if vselect_insn is NULL.  Adjust
85         PATTERN (vselect_insn), instead of creating a new insn each time,
86         only emit a copy of it if not testing and recog has been successful.
87         (expand_vec_perm_pshufb, expand_vec_perm_1,
88         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
89         callers.
91         PR target/52607
92         * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
93         ("enabled" attribute): Handle avx2 and noavx2 isas.
94         * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
95         New insns.
96         (vec_dup<mode>): Add avx2 =x,x alternative.
97         (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
98         (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
99         For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
100         * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
101         for V8SFmode.
102         (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
103         if possible, handle also V8SFmode.
105 2012-03-20  Richard Earnshaw  <rearnsha@arm.com>
107         * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
108         * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
109         reg_or_zero_operand predicate.
110         (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
112 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
114         * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
115         If operand isn't UNSPEC, return 0.
117 2012-03-20  Richard Guenther  <rguenther@suse.de>
119         * tree-pass.h (pass_rtl_eh): Remove.
120         * except.c (gate_handle_eh): Likewise.
121         (rest_of_handle_eh): Likewise.
122         (pass_rtl_eh): Likewise.
123         (finish_eh_generation): Export.
124         * except.h (finish_eh_generation): Declare.
125         * passes.c (init_optimization_passes): Remove pass_rtl_eh.
126         * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
127         after expanding stack alignment.  Instead of compacting blocks
128         call cleanup_cfg.
130 2012-03-20  Richard Guenther  <rguenther@suse.de>
132         * stor-layout.c (finish_bitfield_representative): Fallback
133         to conservative maximum size if the padding up to the next
134         field cannot be computed as a constant.
135         (finish_bitfield_layout): If we cannot compute the distance
136         between the start of the bitfield representative and the
137         bitfield member start a new representative.
138         * expr.c (get_bit_range): The distance between the start of
139         the bitfield representative and the bitfield member is zero
140         if the field offsets are not constants.
142 2012-03-20  Tristan Gingold  <gingold@adacore.com>
144         * tree.h (enum size_type_kind): Add stk_ prefix to constants,
145         convert in lowercase.
146         (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
147         (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
148         * stor-layout.c (sizetype_tab): Adjust.
149         (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
150         * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
151         instead of type_kind_last.
152         * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
153         instead of size_int_kind.
154         * doc/tm.texi.in (Type Layout): Document SIZETYPE.
155         * doc/tm.texi: Regenerate.
156         * defaults.h (SIZETYPE): Provide a default value.
157         * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
158         (SIZETYPE): Define.
160 2012-03-20  Oleg Endo  <olegendo@gcc.gnu.org>
162         * config/sh/sh.md: Use braced string notation where applicable.
164 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
166         * config/i386/i386.md (allocate_stack): Simplify.
168 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
170         * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
171         copy_to_mode_reg (Pmode, ...).
172         (expand_builtin_frame_address): Ditto.
173         * expr.c (emit_block_move_via_libcall): Ditto.
174         (set_storage_via_libcall): Ditto.
176         * config/i386/i386.c (ix86_expand_movmem): Ditto.
177         (ix86_expand_setmem): Ditto.
178         (ix86_trampoline_init): DItto.
179         * config/i386/i386.md (cmpstrnsi): Ditto.
181 2012-03-19  Sandra Loosemore  <sandra@codesourcery.com>
183         * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
184         * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
185         * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
186         (SH Options): Likewise.
188 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
190         * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
191         Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
192         (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
193         DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
194         (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
196         Revert:
197         2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
199         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
200         * config/i386/i386.c (ix86_decompose_address): Use
201         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
202         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
203         thread pointer to a register.
205         Revert:
206         2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
208         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
209         if Pmode != word_mode.
210         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
211         Pmode == SImode for TARGET_X32.
213         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
214         (tls_initial_exec_x32): Likewise.
216 2012-03-19  Oleg Endo  <olegendo@gcc.gnu.org>
218         PR target/50751
219         * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
220         DISP_ADDR_OFFSET): New macros.
221         * config/sh/sh.c (sh_address_cost): Add SH2A special case.
222         (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
223         (sh_legitimize_address): Add QImode displacement handling.
224         (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
225         vector subregs.
226         (sh_secondary_reload): Add QImode displacement handling.
227         * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
228         * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
229         * config/sh/sh.md (extendqisi2): Remove constraints from expander.
230         (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
231         to register operands only.
232         (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
233         (extendqihi2): Change insn to expander.
234         (*extendqihi2_compact_reg): New insn.
235         (movqi_i, movqi): Replace with ...
236         (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
237         *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
238         Add new peepholes for QImode displacement addressing.
240 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
242         PR c++/14710
243         * doc/invoke.texi: Document -Wuseless-cast.
245 2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>
247         * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
248         * tree.h (handled_component_p): Reorder cases.
249         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
250         not initialize unsignedp.
251         (loc_list_from_tree): Likewise.
252         (fortran_common): Likewise.
253         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
255 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
257         * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
258         mode consistently.  Use ix86_gen_add3.  Assert that Pmode == DImode.
259         (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
260         (ix86_split_long_move): Ditto.
261         (legitimize_tls_address): Use ix86_gen_sub3.
262         (construct_plt_address): Assert that Pmode == DImode.
264 2012-03-18  Uros Bizjak  <ubizjak@gmail.com>
266         * config/i386/i386.md: Remove empty predicates and/or constraints.
267         * config/i386/sync.md: Ditto.
268         * config/i386/sse.md: Ditto.
269         * config/i386/mmx.md: Ditto.
270         * config/i386/pentium.md: Ditto.
271         * config/i386/athlon.md: Ditto.
273 2012-03-16  Richard Guenther  <rguenther@suse.de>
275         PR tree-optimization/52603
276         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
277         comment.
279         Revert
280         2012-03-14  Richard Guenther  <rguenther@suse.de>
282         PR tree-optimization/52571
283         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
284         flag_section_anchors check ...
285         (vect_can_force_dr_alignment_p): ... here.
287 2012-03-16  Martin Jambor  <mjambor@suse.cz>
289         * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
290         memory through MEM_REFs by calling extract_bit_field.
292 2012-03-16  Richard Guenther  <rguenther@suse.de>
294         * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
295         and REFERENCE_TYPE interpretations.
296         (can_native_interpret_type_p): New function.
297         (fold_ternary_loc): Use native encode/interpret to fold
298         BIT_FIELD_REFs of constants.
300 2012-03-16  Richard Guenther  <rguenther@suse.de>
302         PR middle-end/52584
303         * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
304         of vector constants and constructors.
306 2012-03-16  Richard Guenther  <rguenther@suse.de>
308         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
309         VIEW_CONVERT_EXPR to convert constants.
310         (vect_is_simple_use): Treat all constants as vec_constant_def.
312 2012-03-16  Richard Guenther  <rguenther@suse.de>
313             Kai Tietz  <ktietz@redhat.com>
315         PR middle-end/48814
316         * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
317         side-effects completely in the pre-queue and use a temporary
318         for the result.
320 2012-03-16  Richard Guenther  <rguenther@suse.de>
322         * stor-layout.c (finish_bitfield_representative): Fall back
323         to the conservative maximum size if we cannot compute the
324         size of the tail padding.
326 2012-03-16  Tristan Gingold  <gingold@adacore.com>
328         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
329         __CRTL_VER and __VMS_VER.
330         * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
331         and vms_c_get_vms_ver.
332         * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
333         functions.
334         * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
335         (VMS_DEFAULT_VMS_VER): Define.
336         * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
337         (VMS_DEFAULT_VMS_VER): Define.
339 2012-03-16  Richard Guenther  <rguenther@suse.de>
341         * tree-vect-loop.c (get_initial_def_for_induction): Use
342         build_constructor directly.
343         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
344         build_vector_from_val.
345         * tree.c (build_vector_from_val): Avoid creating a constructor
346         first when we want a constant vector.
348 2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
350         * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
352 2012-03-16  Richard Guenther  <rguenther@suse.de>
354         * tree.h (TREE_VECTOR_CST_ELTS): Remove.
355         (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
356         (struct tree_vector): Remove elements member, add variable size
357         elts array member.
358         (build_vector_stat): Declare.
359         (build_vector): Define in terms of build_vector_stat.
360         * tree.c (build_vector): Rename to ...
361         (build_vector_stat): ... this.  Take array of trees as parameter.
362         (build_vector_from_ctor): Adjust.
363         (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
364         initializer_zerop): Adjust.
365         * cfgexpand.c (expand_debug_expr): Likewise.
366         * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
367         const_vector_from_tree): Likewise.
368         * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
369         native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
370         fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
371         * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
372         (lto_input_ts_vector_tree_pointers): Adjust.
373         * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
374         (write_ts_vector_tree_pointers): Adjust.
375         * varasm.c (const_hash_1, compare_constant, copy_constant,
376         output_constant): Adjust.
377         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
378         * print-tree.c (print_node): Adjust.
379         * tree-pretty-print.c (dump_generic_node): Adjust.
380         * tree-vect-generic.c (uniform_vector_p, vector_element,
381         lower_vec_perm): Adjust.
382         * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
383         * tree-vect-slp.c (vect_get_constant_vectors,
384         vect_transform_slp_perm_load): Adjust.
385         * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
386         * expmed.c (make_tree): Adjust.
387         * config/i386/i386.c (ix86_expand_builtin): Adjust.
388         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
389         and implementation.
390         (sparc_fold_builtin): Adjust.
392 2012-03-16  Tristan Gingold  <gingold@adacore.com>
394         * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
395         * config/vms/vms-stdint.h: New file.
397 2012-03-16  Tristan Gingold  <gingold@adacore.com>
399         * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
400         (ia64-hp-*vms*): Replaced by ...
401         (*-*-*vms*): ... This new entry.
403 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
405         PR target/52568
406         * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
407         (ix86_expand_vec_perm_const_1): Use it.
409         PR target/52568
410         * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
411         (avx2_permv4df): Remove.
412         (avx2_permv4di): Macroize into...
413         (avx2_perm<mode>): ... this using VI8F_256 iterator.
414         (avx2_permv4di_1): Macroize into...
415         (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
417 2012-03-15  Ulrich Weigand  <ulrich.weigand@linaro.org>
419         * combine.c (apply_distributive_law): Do not distribute SUBREG.
421 2012-03-15  Ira Rosen  <irar@il.ibm.com>
422             Ulrich Weigand  <ulrich.weigand@linaro.org>
424         * tree-vect-patterns.c (widened_name_p): Rename to ...
425         (type_conversion_p): ... this.  Add new argument to determine
426         if it's a promotion or demotion operation.  Check for
427         CONVERT_EXPR_CODE_P instead of NOP_EXPR.
428         (vect_recog_dot_prod_pattern): Call type_conversion_p instead
429         widened_name_p.
430         (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
431         vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
432         Likewise.
433         (vect_recog_mixed_size_cond_pattern): Likewise and allow
434         non-constant then and else clauses.
436 2012-03-15  Ira Rosen  <irar@il.ibm.com>
437             Ulrich Weigand  <ulrich.weigand@linaro.org>
439         * tree-vectorizer.h (vect_pattern_recog): Add new argument.
440         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
441         vect_pattern_recog.
442         * tree-vect-patterns.c (widened_name_p): Pass basic block
443         info to vect_is_simple_use.
444         (vect_recog_dot_prod_pattern): Fail for basic blocks.
445         (vect_recog_widen_sum_pattern): Likewise.
446         (vect_handle_widen_op_by_const): Support basic blocks.
447         (vect_operation_fits_smaller_type,
448         vect_recog_over_widening_pattern): Likewise.
449         (vect_recog_vector_vector_shift_pattern): Support basic blocks.
450         Update call to vect_is_simple_use.
451         (vect_recog_mixed_size_cond_pattern): Support basic blocks.
452         Add printing.
453         (check_bool_pattern): Add an argument, update call to
454         vect_is_simple_use and the recursive calls.
455         (vect_recog_bool_pattern): Update relevant function calls.
456         Add printing.
457         (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
458         (vect_pattern_recog_1): Check for reduction only in loops.
459         (vect_pattern_recog): Add new argument.  Support basic blocks.
460         * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
461         info to vect_is_simple_use_1.
462         * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic
463         blocks.
464         (vect_slp_analyze_bb_1): Call vect_pattern_recog.
466 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
467             Andrew Pinski  <apinski@cavium.com>
469         PR middle-end/52592
470         * builtins.c (expand_builtin_int_roundingfn_2): If expanding
471         BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
472         calls instead of __builtin_ir{int,ound}*.
474 2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
476         * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
477         documentation.
479 2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
481         * config.gcc (target_type_format_char): New. Document it. Set it for
482         arm*-*-* .
483         * configure.ac (gnu_unique_option): Use target_type_format_char
484         in test.  Comment rationale.
485         * configure: Regenerate .
487 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
489         PR tree-optimization/52267
490         * tree-vrp.c (masked_increment): New function.
491         (register_edge_assert_for_2): Derive ASSERT_EXPRs
492         from (X & CST1) cmp CST2 tests.
494 2012-03-15  Richard Guenther  <rguenther@suse.de>
496         PR middle-end/52580
497         * tree-data-ref.c (subscript_dependence_tester_1): Check
498         all dimensions for non-conflicting access functions.
500 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
502         PR c++/44783
503         * doc/invoke.texi [C++ Language Options]: Document
504         -ftemplate-backtrace-limit.
506 2012-03-15  Tristan Gingold  <gingold@adacore.com>
508         * c-parser.c (c_parser_parameter_declaration): Handle #pragma
509         before a parameter.
511 2012-03-15  Tristan Gingold  <gingold@adacore.com>
513         * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
514         use DW_OP_call_frame_cfa.
516 2012-03-14  H.J. Lu  <hongjiu.lu@intel.com>
518         PR target/50797
519         * config/i386/i386-opts.h (pmode): New.
521         * config/i386/i386.c (ix86_option_override_internal): Properly
522         check and set ix86_pmode.
524         * config/i386/i386.h (Pmode): Check ix86_pmode instead of
525         TARGET_64BIT.
527         * config/i386/i386.opt (maddress-mode=): New.
529         * doc/invoke.texi: Document -maddress-mode=short|long for x86.
531 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
533         * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
534         (dwarf2out_do_cfi_asm): Likewise.
535         * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
536         handling.
537         (add_data_member_location_attribute): Likewise.
538         (gen_array_type_die): Likewise.
539         (gen_subprogram_die): Likewise.
540         (gen_producer_string): Likewise.
541         * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
542         Remove MIPS_DEBUGGING_INFO handling.
543         (sdb_debug_hooks): Likewise.
544         (sdbout_begin_block): Likewise.
545         (sdbout_end_block): Likewise.
546         (sdbout_begin_prologue): Likewise.
547         (sdbout_start_source_file): Likewise.
548         (sdbout_end_source_file): Likewise.
549         (sdbout_init): Likewise.
550         * system.h (MIPS_DEBUGGING_INFO): Poison.
552 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
554         * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
555         (alpha_file_start) [MS_STAMP]: Remove.
557         * config/alpha/elf.h (TARGET_GAS): Remove.
558         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
559         * config/alpha/linux.h (TARGET_DEFAULT): Remove.
560         * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
561         * config/alpha/vms.h (TARGET_DEFAULT): Remove.
562         * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
563         (alpha*-*-freebsd*): Likewise.
564         (alpha*-*-netbsd*): Likewise.
565         (alpha*-*-openbsd*): Likewise.
566         (alpha*-*-*): Remove target_cpu_default2.
567         * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
568         handling.
569         * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
570         (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
571         * config/alpha/alpha.c (print_operand): Always assume
572         TARGET_AS_SLASH_BEFORE_SUFFIX.
573         * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
574         Remove TARGET_AS_CAN_SUBTRACT_LABELS.
575         ("*builtin_setjmp_receiver_er_1"): Remove.
576         * config/alpha/alpha.opt (malpha-as): Remove.
577         (mgas): Ignore.
578         * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
579         -malpha-as, -mgas.
580         Remove DEC Unix reference.
582         * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
583         (EXTENDED_COFF): Remove.
584         * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
585         (EXTENDED_COFF): Don't undef.
586         * config/alpha/alpha.c (alpha_file_start): Always assume
587         OBJECT_FORMAT_ELF.
588         Don't set targetm.asm_file_start_file_directive.
589         [!OBJECT_FORMAT_ELF]: Remove.
590         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
592         * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
593         (DBX_DEBUGGING_INFO): Remove.
594         (MIPS_DEBUGGING_INFO): Remove.
595         (PREFERRED_DEBUGGING_TYPE): Remove.
596         (DBX_OUTPUT_SOURCE_LINE): Remove.
597         (SDB_OUTPUT_SOURCE_LINE): Remove.
598         (DBX_CONTIN_LENGTH): Remove.
599         (NO_DBX_FUNCTION_END): Remove.
600         (ASM_STABS_OP): Remove.
601         (ASM_STABN_OP): Remove.
602         (ASM_STABD_OP): Remove.
603         (SDB_ALLOW_FORWARD_REFERENCES): Remove.
604         (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
605         (PUT_SDB_DEF): Remove.
606         (PUT_SDB_PLAIN_DEF): Remove.
607         (PUT_SDB_TYPE): Remove.
608         (sdb_label_count): Remove.
609         (PUT_SDB_BLOCK_START): Remove.
610         (PUT_SDB_BLOCK_END): Remove.
611         (PUT_SDB_FUNCTION_START): Remove.
612         (PUT_SDB_FUNCTION_END): Remove.
613         (PUT_SDB_EPILOGUE_END): Remove.
614         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
615         (MIPS_DEBUGGING_INFO): Don't undef.
616         (DBX_DEBUGGING_INFO): Don't undef.
617         * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
618         (MIPS_DEBUGGING_INFO): Don't undef.
619         (DBX_DEBUGGING_INFO): Don't undef.
620         * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
621         * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
622         handling.
623         (alpha_start_function): Likewise.
624         (sdb_label_count): Remove.
625         (alpha_output_filename): Remove DBX_DEBUG handling.
626         (alpha_file_start): Likewise.
628 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
630         * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
631         (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
632         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
633         Solaris 8 support.
634         * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
635         (ld_tls_support): Remove Solaris 8 references.
636         (lwp_dir, lwp_spec): Remove support for alternate thread library.
637         * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
638         * configure: Regenerate.
639         * config.in: Regenerate.
641         * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
642         * config/i386/sol2.h: Remove Solaris 8 references.
644         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
645         (i?86-*-solaris2.9): ... this.
646         Remove Solaris 8 references.
647         (Specific, *-*-solaris2*): Document Solaris 8 removal.
648         Remove Solaris 8 references.
650 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
652         * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
653         (mips-sgi-irix6.5*): Remove.
654         * config.host (mips-sgi-irix*): Remove.
655         * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
656         (set_have_as_tls): Remove *-*-irix6*.
657         (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
658         * configure: Regenerate.
660         * config/mips/iris6.h: Remove.
661         * config/mips/iris6.opt: Remove.
662         * config/mips/t-irix6: Remove.
664         * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
665         (TARGET_IRIX6): Remove.
666         (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
667         Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
668         * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
669         handling.
670         (mips_file_start): Likewise.
671         * config/mips/mips-protos.h (irix_asm_output_align): Remove.
673         * config/mips/driver-native.c [__sgi__]: Remove.
674         (host_detect_local_cpu) [__sgi__]: Remove.
676         * config/mips/gnu-user.h: Remove iris5.h reference.
678         * config/mips/mips-modes.def: Remove IRIX 6 reference.
679         * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
680         * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
681         Remove.
683         * gcc.c (main): Move asm_debug initialization ...
684         (asm_debug): ... here.
686         * ginclude/stddef.h (__STDDEF_H__): Don't define.
688         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
689         * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
690         * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
691         (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
692         [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
693         * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
694         Remove.
695         * doc/tm.texi: Regenerate.
697         * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
698         IRIX 6 reference.
699         (MIPS Options, -march): Remove IRIX reference.
700         * doc/install.texi (Binaries, SGI IRIX): Remove.
701         (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
702         of section.
703         * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
705 2012-03-14  Martin Jambor  <mjambor@suse.cz>
707         * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
708         when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
709         (expand_expr_real_1): Do not handle misalignment if modifier is
710         EXPAND_WRITE.
712 2012-03-14  Richard Guenther  <rguenther@suse.de>
714         PR middle-end/52584
715         * tree-vect-generic.c (type_for_widest_vector_mode): Take
716         element type instead of mode, use build_vector_type_for_mode
717         instead of the langhook, build a vector of proper signedness.
718         (expand_vector_operations_1): Adjust.
720 2012-03-14  Richard Guenther  <rguenther@suse.de>
722         PR middle-end/52582
723         * gimple-fold.c (canonicalize_constructor_val): Make sure we have
724         a cgraph node for a FUNCTION_DECL that comes from a constructor.
725         (gimple_get_virt_method_for_binfo): Likewise.
727 2012-03-14  Richard Guenther  <rguenther@suse.de>
729         PR tree-optimization/52571
730         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
731         flag_section_anchors check ...
732         (vect_can_force_dr_alignment_p): ... here.  Do not re-align
733         DECL_COMMON variables.
735 2012-03-14  Richard Guenther  <rguenther@suse.de>
737         * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
738         * stor-layout.c (start_bitfield_representative): New function.
739         (finish_bitfield_representative): Likewise.
740         (finish_bitfield_layout): Likewise.
741         (finish_record_layout): Call finish_bitfield_layout.
742         * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
743         for QUAL_UNION_TYPE fields.
744         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
745         Stream DECL_BIT_FIELD_REPRESENTATIVE.
746         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
748         PR middle-end/52080
749         PR middle-end/52097
750         PR middle-end/48124
751         * expr.c (get_bit_range): Unconditionally extract bitrange
752         from DECL_BIT_FIELD_REPRESENTATIVE.
753         (expand_assignment): Adjust call to get_bit_range.
755 2012-03-14  Richard Guenther  <rguenther@suse.de>
757         PR middle-end/52578
758         * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
759         the outermost conversion is a sign-change only.
760         (fold_binary_loc): Disregard widening and sign-changing
761         conversions when we determine if two variables are equal
762         for reassociation.
763         * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
764         (T1)x if the outermost conversion is a sign-change only.
766 2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
768         Revert:
769         2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
771         * config/i386/predicates.md (constant_call_address_operand): Declare
772         as special predicate.  Update all uses.
774 2012-03-13  Jakub Jelinek  <jakub@redhat.com>
776         PR c/52577
777         * c-parser.c (c_parser_postfix_expression)
778         <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
780         * config/i386/smmintrin.h: Avoid /* within a comment.
781         * config/i386/nmmintrin.h: Likewise.
783 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
785         * config/i386/i386.md (xbegin): Remove constraint from expander.
787 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
789         * config/i386/predicates.md (constant_call_address_operand): Declare
790         as special predicate.  Update all uses.
791         * config/i386/i386.md: Remove mode from constant_call_address_operand
792         predicates.
793         * config/i386/i386.c (ix86_output_call_insn): Call
794         constant_call_address_operand with VOIDmode.
796 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
798         * config/i386/i386.c (ix86_decompose_address): Handle subregs of
799         AND zero extended address correctly.
801 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
803         * config/i386/predicates.md (tls_symbolic_operand): Declare as
804         special predicate.
805         (tls_modbase_operand): Ditto.
806         * config/i386/i386.md: Remove mode from tls_symbolic_operand and
807         tls_modbase_operand predicates.
809 2012-03-13  Martin Jambor  <mjambor@suse.cz>
811         * expr.c (expand_assignment): Handle misaligned scalar writes to
812         memory through top-level MEM_REFs by calling store_bit_field.
814 2012-03-13  Richard Guenther  <rguenther@suse.de>
816         PR middle-end/52134
817         * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
818         if Y is a constant multiple of 1 << CST.
820 2012-03-13  Georg-Johann Lay  <avr@gjlay.de>
822         PR target/52488
823         * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
824         offset (size) to a value the insns can deal with.
825         (expand_epilogue): Ditto.
827 2012-03-13  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
829         * config/arm/neon.ml (ops): Fixup expected instructions for
830         unsigned vector compares.
832 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
834         * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
835         addresses only when %reg is not in word mode.
837 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
839         * config/microblaze/microblaze.md: Fix typo.
840         * tree-if-conv.c: Likewise.
841         * tree-vect-patterns.c: Likewise.
843 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
845         * config.gcc (extra_passes): Remove.
846         * configure.ac (extra_passes): Don't substitute.
847         * configure: Regenerate.
848         * Makefile.in (EXTRA_PASSES): Remove.
849         (GCC_PASSES): Remove $(EXTRA_PASSES).
850         (MOSTLYCLEANFILES): Likewise.
851         (native): Likewise.
852         (install-common): Likewise.
854 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
856         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
857         * config/i386/i386.c (ix86_decompose_address): Use
858         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
859         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
860         thread pointer to a register.
862 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
864         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
865         on tls_symbolic_operand.
866         (tls_global_dynamic_64_<mode>): Likewise.
868 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
870         PR other/52545
871         * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
872         SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
874 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
876         PR target/52499
877         * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
878         type from reg_class_t to enum reg_class.
879         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
881 2012-03-12  Andrew Pinski  <apinski@cavium.com>
883         * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
884         (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
885         (value_replacement): Likewise.
886         (empty_block_p): Check also if the PHIs for the block are empty.
888 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
890         PR target/52148
891         * config/avr/avr.c (avr_out_movmem): Fix typo in output template
892         for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
893         r184615 from 2012-02-28.
895 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
897         * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
898         (ix86_gen_tls_local_dynamic_base_64): Likewise.
899         (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
900         and ix86_gen_tls_local_dynamic_base_64.
901         (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
902         ix86_gen_tls_local_dynamic_base_64.
904         * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
905         (*tls_global_dynamic_64_<mode>): This.
906         (tls_global_dynamic_64): Renamed to ...
907         (tls_global_dynamic_64_<mode>): This.
908         (*tls_local_dynamic_base_64): Renamed to ...
909         (*tls_local_dynamic_base_64_<mode>): This.
910         (tls_local_dynamic_base_64): Renamed to ...
911         (tls_local_dynamic_base_64_<mode>): This.
913 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
915         * config/i386/i386.c (ix86_option_override_internal): Properly
916         set ix86_gen_leave and ix86_gen_monitor.  Check Pmode == DImode,
917         instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
918         ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
919         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
921         * config/i386/sse.md (sse3_monitor64): Renamed to ...
922         (sse3_monitor64_<mode>): This.
924 2012-03-12  Tristan Gingold  <gingold@adacore.com>
926         * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
927         (ia64_function_arg_advance): Ditto.
929 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
931         * config.gcc (mips*-*-openbsd*): Remove.
932         * config/mips/openbsd.h: Remove.
933         * config/mips/sdb.h: Remove.
935         * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
936         * config/mips/mips.c (sdb_label_count): Remove.
937         (mips_debugger_offset): Remove #if 0 code.
938         (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
939         * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
941 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
943         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
944         binutils reference.
945         (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
946         Update binutils references.
947         (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
948         Update binutils reference.
949         Update Sun as/GNU ld caveat.
950         Document binutils largefile requirement for LTO plugin.
951         Remove reference to alternate libpthread.
953 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
955         * config.gcc (alpha*-dec-osf5.1*): Remove.
956         * config.host (alpha*-dec-osf*): Remove.
957         * configure.ac (*-*-osf*): Remove.
958         (alpha*-dec-osf*): Remove.
959         * configure: Regenerate.
961         * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
962         config/alpha/va_list.h, config/alpha/x-osf: Remove.
964         * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
965         * config/alpha/alpha.c (struct machine_function): Update comment.
966         (alpha_start_function): Remove Tru64 UNIX as handling for
967         max_frame_size.
968         * config/alpha/alpha.md ("exception_receiver"): Remove
969         TARGET_LD_BUGGY_LDGP.
970         ("*exception_receiver_2"): Likewise.
971         * except.c (finish_eh_generation): Remove Tru64 reference.
972         * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
973         * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
974         * target.def (handle_pragma_extern_prefix): Remove.
976         * Makefile.in (mips-tfile.o-warn): Remove.
977         (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
978         (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
979         * mips-tdump.c, mips-tfile.c: Remove.
981         * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
982         extern_prefix.
983         * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
984         (Specific, alpha*-dec-osf5.1): Note removal.
985         * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
986         Remove.
987         * doc/tm.texi: Regenerate.
988         * doc/trouble.texi (Cross-Compiler Problems): Remove.
990 2012-03-12  Richard Guenther  <rguenther@suse.de>
992         * config/arm/arm.c (neon_dereference_pointer): Do not call
993         covert during RTL expansion.
995 2012-03-12  Tristan Gingold  <gingold@adacore.com>
997         * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
998         Options.  Mention -mpointer-size.
1000 2012-03-12  Richard Guenther  <rguenther@suse.de>
1002         * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
1003         build_nonstandard_integer_type.
1005 2012-03-12  Richard Guenther  <rguenther@suse.de>
1007         * tree.c (signed_or_unsigned_type_for): Use
1008         build_nonstandard_integer_type.
1009         (signed_type_for): Adjust documentation.
1010         (unsigned_type_for): Likewise.
1011         * tree-pretty-print.c (dump_generic_node): Use standard names
1012         for non-standard integer types if available.
1014 2012-03-12  Tristan Gingold  <gingold@adacore.com>
1016         * config/vms/vms.opt: Add vms-opts.h header.
1017         (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
1018         target mask.
1019         (-mvms-return-codes): Document.
1020         (-mpointer-size): New option.
1021         (vms_pointer_size): Add enumeration.
1022         * config/vms/vms-opts.h: New file.
1023         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
1024         __INITIAL_POINTER_SIZE.
1025         (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
1026         (C_COMMON_OVERRIDE_OPTIONS): Define.
1027         (DWARF2_ADDR_SIZE): Define.
1028         * config/vms/vms.c (vms_patch_builtins): Adjust condition.
1029         * config/vms/vms-protos.h (vms_c_common_override_options):
1030         New prototype.
1031         * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
1032         if -mno-pointer-size.
1033         (vms_c_common_override_options): New function.
1034         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
1035         * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
1036         (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
1037         and flag_vms_pointer_size.
1038         (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
1039         * config.gcc (*-*-*vms*): Define xm_file.
1040         (alpha*-dec-*vms*): Do not define xm_file.
1041         (alpha64-dec-*vms*): Remove.
1042         (ia64-hp-*vms*): Do not define xm_file.  Simplify tm_file
1043         and tmake_file.
1045 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
1047         PR tree-optimization/51721
1048         * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
1049         if (int) unsvar cmp CST.
1051 2012-03-12  Richard Guenther  <rguenther@suse.de>
1053         * tree-sra.c (create_access_replacement): Only rename the replacement
1054         if we can rewrite it into SSA form.  Properly mark register typed
1055         replacements that we cannot rewrite with TREE_ADDRESSABLE.
1056         * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
1057         for aggregate or BLKmode results.
1059 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
1061         PR tree-optimization/52533
1062         * tree-vrp.c (register_edge_assert_for_2): Use double_int
1063         type for mask, only handle shifts by non-zero in-range
1064         shift count, for LE_EXPR and GT_EXPR if new_val is
1065         maximum, don't add the assertion.
1067 2012-02-12  Kirill Yukhin  <kirill.yukhin@intel.com>
1069         * doc/invoke.texi: Document -mrtm option.
1070         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
1071         (OPTION_MASK_ISA_RTM_UNSET): Ditto.
1072         (ix86_handle_option): Handle OPT_mrtm.
1073         * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
1074         xtestintrin.h.
1075         (x86_64-*-*): Ditto.
1076         * i386-builtin-types.def (INT_FTYPE_VOID): New.
1077         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1078         __RTM__ if needed.
1079         (ix86_target_string): Define -mrtm option.
1080         (PTA_RTM): New.
1081         (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
1082         Handle new option.
1083         (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
1084         (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
1085         IX86_BUILTIN_XTEST.
1086         (bdesc_special_args): Ditto.
1087         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
1088         (ix86_expand_special_args_builtin): Handle new built-in type.
1089         (ix86_expand_builtin): Handle XABORT instruction.
1090         * config/i386/i386.h (TARGET_RTM): New.
1091         * config/i386/i386.md (UNSPECV_XBEGIN): New.
1092         (UNSPECV_XEND): Ditto.
1093         (UNSPECV_XABORT): Ditto.
1094         (UNSPECV_XTEST): Ditto.
1095         (xbegin): Ditto.
1096         (xbegin_1): Ditto.
1097         (xend): Ditto.
1098         (xabort): Ditto
1099         (xtest): Ditto.
1100         (xtest_1): Ditto.
1101         * config/i386/i386.opt (mrtm): New.
1102         * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
1103         * config/i386/rtmintrin.h: New header.
1104         * config/i386/xtestintrin.h: Ditto.
1106 2012-03-12  Tristan Gingold  <gingold@adacore.com>
1108         * ginclude/stddef.h: Adjust previous patch.
1109         Use __VMS__ instead of VMS.
1111 2012-03-12  Uros Bizjak  <ubizjak@gmail.com>
1113         * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
1114         Also convert sequences with CC setting arithmetic instruction.
1116 2012-03-11  Sandra Loosemore  <sandra@codesourcery.com>
1118         * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
1119         from C Language Options to Preprocessor Options.
1120         (C Dialect Options): Move -no-integrated-cpp documentation
1121         from here...
1122         (Preprocessor Options): ...to here.  Rewrite the description
1123         so it makes more sense, and remove discussion of merging front ends.
1125 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
1127         * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
1128         needed for loop.
1129         (ix86_expand_setmem): Likewise.
1131 2012-03-11  Uros Bizjak  <ubizjak@gmail.com>
1133         * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
1134         convert_to_mode.
1136 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
1138         * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
1139         ptr_mode == SImode.  Replace DImode with Pmode or ptr_mode.
1141 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
1143         * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
1145 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
1147         * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
1148         TARGET_64BIT.
1150 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
1151             Uros Bizjak  <ubizjak@gmail.com>
1153         * config/i386/predicates.md (call_insn_operand): Allow
1154         constant_call_address_operand in Pmode only.
1155         (sibcall_insn_operand): Ditto.
1156         * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
1157         (*call_vzeroupper): Ditto.
1158         (*sibcall): Ditto.
1159         (*sibcall_vzeroupper): Ditto.
1160         (*call_value): Ditto.
1161         (*call_value_vzeroupper): Ditto.
1162         (*sibcall_value): Ditto.
1163         (*sibcall_value_vzeroupper): Ditto.
1164         (*indirect_jump): Ditto.
1165         (*tablejump_1): Ditto.
1166         (indirect_jump): Convert memory address to word mode for TARGET_X32.
1167         (tablejump): Ditto.
1168         * config/i386/i386.c (ix86_expand_call): Convert indirect operands
1169         to word mode.
1171 2012-03-11  Oleg Endo  <olegendo@gcc.gnu.org>
1173         PR target/51244
1174         * config/sh/sh.md (movnegt): Expand into respective insns immediately.
1175         Use movrt_negc instead of negc pattern for non-SH2A.
1176         (*movnegt): Remove.
1177         (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
1179 2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
1181         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
1182         if Pmode != word_mode.
1183         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
1184         Pmode == SImode for TARGET_X32.
1186         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
1187         (tls_initial_exec_x32): Likewise.
1189 2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>
1191         PR rtl-optimization/52528
1192         * combine.c (can_combine_p): Add setting of subst_low_luid
1193         before call to expand_field_assignment().
1195 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
1197         * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
1198         and related program names.
1200 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
1202         * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
1204 2012-03-09  Uros Bizjak  <ubizjak@gmail.com>
1206         PR target/52530
1207         * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
1208         (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
1209         to set code to 'q'.
1210         * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
1211         (*movdi_internal_rex64): Use %E operand modifier for lea.
1212         (*movsi_internal): Ditto.
1213         (*lea_1): Ditto.
1214         (*lea<mode>_2): Ditto.
1215         (*lea_{3,4,5,6}_zext): Ditto.
1216         (*tls_global_dynamic_32_gnu): Ditto.
1217         (*tls_global_dynamic_64): Ditto.
1218         (*tls_dynamic_gnu2_lea_32): Ditto.
1219         (*tls_dynamic_gnu2_lea_64): Ditto.
1220         (pro_epilogue_adjust_stack_<mode>_add): Ditto.
1222 2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1224         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
1225         redefine to be NULL if the current bit-size is different from the
1226         configured bit-size.
1228         * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
1229         cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
1230         set the default tuning.  Add asserts to make sure the cpu and tune
1231         indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
1232         test whether the index is set, instead of > 0.
1233         (rs6000_file_start): Do not reset the default cpu if the current
1234         bit-size is different from the configured bit-size.
1236 2012-03-09  Tristan Gingold  <gingold@adacore.com>
1238         * config/vms/vms-crtlmap.map: Add comments.
1239         Add entries needed to build Ada RTS.
1241 2012-03-09  Tristan Gingold  <gingold@adacore.com>
1243         * ginclude/stddef.h: Do not define __size_t on VMS.
1245 2012-03-09  Tristan Gingold  <gingold@adacore.com>
1247         * c-tree.h (c_default_pointer_mode): New variable.
1248         * c-decl.c (c_default_pointer_mode): New variable.
1249         (c_build_pointer_type): New function.
1250         (grokdeclarator): Call c_build_pointer_type instead
1251         of build_pointer_type.
1253         * config/vms/vms-c.c: Include c-tree.h
1254         (saved_pointer_mode): New variable.
1255         (handle_pragma_pointer_size): New function.
1256         (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
1257         (vms_c_register_pragma): Register __pointer_size and
1258         __required_pointer_size pragmas.
1260 2012-03-09  Tristan Gingold  <gingold@adacore.com>
1262         * config/vms/vms-c.c (vms_construct_include_filename): New function.
1263         (vms_c_register_includes): Reference it.
1265 2012-03-09  Andrew Pinski  <apinski@cavium.com>
1267         PR middle-end/51988
1268         * tree-ssa-phiopt.c: Include tree-pretty-print.h for
1269         print_generic_expr.
1270         (tree_ssa_phiopt_worker): Go through all the PHIs for
1271         value_replacement instead of just the singleton one.
1272         (value_replacement): Change return type to int.  Return 0 instead of
1273         false.
1274         Allow the middle basic block to contain more than just the defining
1275         statement.
1276         Handle non empty middle basic blocks.
1277         * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
1279 2012-03-09  Jiangning Liu  <jiangning.liu@arm.com>
1281         * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
1282         array reference and component reference.
1283         (analyze_scalar_evolution_for_address_of): New.
1285 2012-03-08  Jie Zhang  <jzhang918@gmail.com>
1287         PR target/49862
1288         * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
1289         (hwloop_pattern_reg): Fix set but not used warning.
1290         (bfin_reorg_loops): Remove unused parameter.
1291         (bfin_reorg): Update use of bfin_reorg_loops.
1293 2012-03-08  H.J. Lu  <hongjiu.lu@intel.com>
1295         * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
1296         with integer parameters in registers.
1297         (gen_push): Push register in word_mode instead of Pmode.
1298         (ix86_emit_save_regs): Likewise.
1299         (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
1300         (gen_pop): Pop register in word_mode instead of Pmode.
1301         (ix86_emit_restore_regs_using_pop): Likewise.
1302         (ix86_expand_prologue): Replace Pmode with word_mode for push
1303         immediate.  Use ix86_gen_pro_epilogue_adjust_stack.  Save and
1304         restore RAX and R10 in word_mode.
1305         (ix86_emit_restore_regs_using_mov): Restore integer registers
1306         in word_mode.
1307         (ix86_expand_split_stack_prologue): Save R10_REG and restore in
1308         word_mode.
1309         (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
1310         (ix86_split_long_move): Likewise.
1312         * config/i386/i386.md (W): New.
1313         (*push<mode>2_prologue): Replace :P with :W.
1314         (*pop<mode>1): Likewise.
1315         (*pop<mode>1_epilogue): Likewise.
1316         (push/pop peephole2): Use word_mode scratch registers.
1318 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
1320         * config/i386/predicates.md (indirect_branch_operand): Simplify.
1322 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
1324         * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
1325         for constants in [-63,63].
1327 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
1329         PR target/52530
1330         Revert:
1331         2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
1333         * config/i386/i386.c (ix86_print_operand_address): Only handle
1334         zero-extended DImode addresses.
1336 2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1338         * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
1339         * configure: Regenerate.
1341 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
1343         PR target/52496
1344         * config/avr/avr.c (avr_mem_clobber): New static function.
1345         (avr_expand_delay_cycles): Add memory clobber operand to
1346         delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
1347         * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
1348         (enable_interrupt, disable_interrupt): New expander.
1349         (nopv, sleep, wdr): New expanders.
1350         (delay_cycles_1): Add memory clobber.
1351         (delay_cycles_2): Add memory clobber.
1352         (delay_cycles_3): Add memory clobber.
1353         (delay_cycles_4): Add memory clobber.
1354         (cli_sei): New insn from former "enable_interrupt",
1355         "disable_interrupt" with memory clobber.
1356         (*wdt): New insn from former "wdt" with memory clobber.
1357         (*nopv): Similar, but for "nopv".
1358         (*sleep): Similar, but for "sleep".
1360 2012-03-07  Oleg Endo  <olegendo@gcc.gnu.org>
1361             Kaz Kojima  <kkojima@gcc.gnu.org>
1363         PR target/52503
1364         * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
1365         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
1366         (SUBTARGET_OVERRIDE_OPTIONS): Define.
1368 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
1370         * config/i386/predicates.md (x86_64_zext_general_operand): New.
1371         * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
1372         predicate to x86_64_zext_general_operand.  Accept "Z" constraint.
1374 2012-03-07  Walter Lee  <walt@tilera.com>
1376         * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
1377         REG_CFA_* notes for the stack pointer.
1378         (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
1379         EH_RETURN_STACKADJ_RTX.
1380         * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
1381         generate REG_CFA_* notes for the stack pointer.
1382         (tilepro_expand_epilogue): Restore stack pointer by adjusting it
1383         by EH_RETURN_STACKADJ_RTX.
1385 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
1387         * doc/invoke.texi (AVR Built-in Macros): Correct condition for
1388         when __AVR_3_BYTE_PC__ is defined.
1390 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
1392         * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
1393         (ix86_print_operand): Handle '^'.
1394         * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
1395         using P mode iterator.  Add %^ to asm template to conditionally emit
1396         addr32 prefix.
1397         (*rep_movdi_rex64): Ditto.
1398         (*strsetdi_rex_1): Ditto.
1399         (*rep_stosdi_rex64): Ditto.
1400         (*strmov{si,hi,qi}_1): Add %^ to asm template to
1401         conditionally emit addr32 prefix.
1402         (*rep_mov{si,qi}): Ditto.
1403         (*strset{si,hi,qi}): Ditto.
1404         (*rep_stos{si,qi}): Ditto.
1405         (*cmpstrnqi_nz_1): Ditto.
1406         (*cmpstrnqi_1): Ditto.
1407         (*strlenqi_1): Ditto.
1409 2012-03-07  H.J. Lu  <hongjiu.lu@intel.com>
1411         * config/i386/i386.c (function_value_64): Return pointers in
1412         word_mode instead of Pmode.
1413         (ix86_promote_function_mode): Likewise.
1415 2012-03-07  Richard Guenther  <rguenther@suse.de>
1417         * coverage.c (get_gcov_type): Use type_for_mode.
1418         (get_gcov_unsigned_t): Likewise.
1419         * expr.c (store_constructor): Use type_for_mode.
1420         (try_casesi): Likewise.
1421         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
1422         (add_standard_iv_candidates): Use standard type trees.
1423         * dojump.c (do_jump): Remove dead code.
1425 2012-03-07  Richard Guenther  <rguenther@suse.de>
1427         * c-typeck.c (pointer_diff): Use c_common_type_for_size.
1429 2012-03-07  Richard Guenther  <rguenther@suse.de>
1431         * convert.c (strip_float_extensions): Move ...
1432         * tree.c (strip_float_extensions): ... here.
1434 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
1436         PR target/52484
1437         * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
1439 2012-03-07  Richard Guenther  <rguenther@suse.de>
1441         * omp-low.c (extract_omp_for_data): Use signed_type_for.
1442         (expand_omp_for_generic): Likewise.
1443         (expand_omp_for_static_nochunk): Likewise.
1444         (expand_omp_for_static_chunk): Likewise.
1445         * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
1446         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
1447         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
1448         Use unsigned_type_for.
1449         (vect_create_cond_for_align_checks): Use signed_type_for.
1451 2012-03-07  Andrey Belevantsev  <abel@ispras.ru>
1453         PR rtl-optimization/52203
1454         * sel-sched.c (estimate_insn_cost): New parameter pempty.  Adjust
1455         all callers to pass NULL except ...
1456         (reset_sched_cycles_in_current_ebb): ... here, save the value
1457         in new variable 'empty'.  Increase issue_rate only for
1458         non-empty insns.
1460 2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
1462         PR target/51417
1463         * Makefile.in: Let install-gcc-ar depend on installdirs,
1464         gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
1465         Don't double canonicalize if cross-compiling.
1467 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
1469         PR target/52506
1470         * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
1471         to: RAMPZ, RAMPY, RAMPX, RAMPD.
1472         (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
1474 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
1476         PR target/52505
1477         * config/avr/avr.c (avr_out_xload): Don't read unintentionally
1478         from RAM.
1479         * config/avr/avr.md (xload_8): Adjust insn length.
1481 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
1483         PR target/52461
1484         * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
1485         if RAMPZ affects reading from RAM.
1487 2012-03-07  Richard Guenther  <rguenther@suse.de>
1489         PR pch/52518
1490         PR pch/38987
1491         * doc/invoke.texi (Precompiled Headers): Remove sentence that
1492         suggests you can include PCHs from inside another header.
1494 2012-03-07  Richard Sandiford  <rdsandiford@googlemail.com>
1496         PR middle-end/52515
1497         * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
1499 2012-03-07  Kai Tietz  <ktietz@redhat.com>
1501         * doc/invoke.texi (fwritable-relocated-rdata): Document
1502         new Cygwin/MinGW target option.
1503         * config/i386/winnt.c (i386_pe_unique_section): Ignore
1504         reloc if flag -fwritable-relocated-rdata is not set.
1505         (i386_pe_section_type_flags): Likewise.
1506         * config/i386/cygming.opt (fwritable-relocated-rdata):
1507         Add new flag variable flag_writable_rel_rdata.
1509 2012-03-07  Richard Guenther  <rguenther@suse.de>
1511         * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
1512         precision against gimple constraints.
1514 2012-03-06  Richard Sandiford  <rdsandiford@googlemail.com>
1516         PR middle-end/52372
1517         * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
1518         variables.
1519         (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
1520         * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
1521         variables.
1522         (init_emit_regs): Move associated initialization to...
1523         (init_emit_once): ...here.
1525 2012-03-06  Richard Henderson  <rth@redhat.com>
1527         * config/m68k/m68k.h (ISA_HAS_TAS): New.
1528         * config/m68k/sync.md (atomic_test_and_set): Use it.
1529         (atomic_test_and_set_1): Likewise.
1531 2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1533         PR target/50310
1534         * config/rs6000/vector.md (vector_uneq<mode>): Add support for
1535         UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
1536         (vector_ltgt<mode>): Likewise.
1537         (vector_ordered<mode>): Likewise.
1538         (vector_unordered<mode>): Likewise.
1539         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
1541 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
1543         * trans-mem.c: New typedef for tm_region_p.
1544         Define vector types for tm_region_p.
1545         (tm_region_init): Replace region_worklist to a vector called
1546         bb_regions.
1548 2012-03-06  Richard Guenther  <rguenther@suse.de>
1550         * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
1551         MEM_REF with constant pointer operand.
1553 2012-03-06  Richard Guenther  <rguenther@suse.de>
1555         PR middle-end/52493
1556         * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
1558 2012-03-06  Tristan Gingold  <gingold@adacore.com>
1560         * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
1561         (external_model_kind): Improve documentation.
1562         (vms_pragma_extern_model): Handle relaxed_redef.
1563         (vms_c_register_pragma): Allow expansion for nomember_alignment.
1565 2012-03-06  Georg-Johann Lay  <avr@gjlay.de>
1567         * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
1568         Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
1569         Some more notes on EIND usage and reorder EIND subsection.
1571 2012-03-06  Tristan Gingold  <gingold@adacore.com>
1573         * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
1574         * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
1576 2012-03-06  Tristan Gingold  <gingold@adacore.com>
1578         * config/vms/t-vmsnative (version): Define.
1579         * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
1581 2012-03-06  Andrey Belevantsev  <abel@ispras.ru>
1583         PR rtl-optimization/52250
1584         * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
1585         to put note list into.  Unconditionally call move_bb_info.
1586         (move_bb_info): Do not assert the blocks being in the same region,
1587         just drop the note list if they are not.
1589 2012-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
1591         PR target/51244
1592         * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
1593         and use unified expansion logic.
1594         * config/sh/sh.md (xorsi3_movrt): Rename to movrt.  Move
1595         closer to the existing movt insn.
1596         (negc): Rename insn to *negc.  Add new expander.
1597         (movnegt): Use xor pattern for T bit negation.  Reserve helper
1598         constant for negc pattern.
1599         (*movnegt): New insn and splitter.
1601 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
1603         * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
1604         PLUS_EXPR.
1606 2012-03-05  Richard Henderson  <rth@redhat.com>
1608         * genemit.c (main): Include "target.h" in insn-emit.c.
1609         * Makefile.in (insn-emit.o): Depend on TARGET_H.
1610         * config/sh/sync.md (atomic_test_and_set): Reference
1611         targetm.atomic_test_and_set_trueval instead of
1612         TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
1614 2012-03-05  Joern Rennecke  <joern.rennecke@embecosm.com>
1616         * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
1617         Make static.
1619 2012-03-05  Steven Bosscher  <steven@gcc.gnu.org>
1621         * langhooks.c (add_builtin_type): New function.
1622         * langhooks.h (add_builtin_type): Export it.
1623         * config/mep/mep.c (mep_init_builtins): Use it.
1624         * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
1626 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
1628         PR debug/51902
1629         * tree.h (BLOCK_SAME_RANGE): Define.
1630         * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
1631         if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
1632         Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
1633         isn't equal to supercontext fragment's fragment chain.
1634         Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
1635         fragment origin.
1636         (blocks_nreverse_all): Likewise.
1637         (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits.  Set
1638         BLOCK_SUPERCONTEXT to supercontext fragment instead of
1639         supercontext fragment's fragment origin.
1640         * dwarf2out.c (add_high_low_attributes): If stmt has the same
1641         range as its parent (or parents thereof etc.), use the parent's
1642         DW_AT_ranges value instead of creating a new .debug_ranges range.
1644 2012-03-05  Richard Henderson  <rth@redhat.com>
1646         PR tree-opt/52242
1647         Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
1648         * omp-low.c (expand_omp_atomic): Assume anything aligned to
1649         BIGGEST_ALIGNMENT is aligned.
1651 2012-03-05  Richard Henderson  <rth@redhat.com>
1653         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
1654         * config/sh/sh.c: ... here.
1656 2012-03-05  Richard Henderson  <rth@redhat.com>
1658         PR target/52481
1659         * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
1660         instead of calling negqi2 directly.
1662 2012-03-05  Aldy Hernandez  <aldyh@redhat.com>
1664         PR middle-end/52463
1665         * trans-mem.c (tm_region_init): Use last_basic_block.
1667 2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>
1669         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
1670         * config/sh/sync.md (atomic_test_and_set): New expander.
1671         (tasb, atomic_test_and_set_soft): New insns.
1672         * config/sh/sh.opt (menable-tas): New option.
1673         * doc/invoke.texi (SH Options): Document it.
1675 2012-03-05  Richard Guenther  <rguenther@suse.de>
1677         * cfgloop.c (verify_loop_structure): Verify dominators before
1678         using them.
1679         * graphite-clast-to-gimple.c (graphite_verify): Do not verify
1680         dominators from here.
1681         * graphite-scop-detection.c (create_sese_edges): Likewise.
1682         * loop-doloop.c (doloop_optimize_loops): Likewise.
1683         * loop-init.c (loop_optimizer_init): Likewise.
1684         * loop-unroll.c (unroll_and_peel_loops): Likewise.
1685         * loop-unswitch.c (unswitch_loops): Likewise.
1686         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
1687         * tree-parloops.c (parallelize_loops): Likewise.  Verify
1688         only when checking is enabled.
1689         * tree-loop-distribution.c (tree_loop_distribution): Likewise.
1691 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
1693         * genautomata.c (parse_automata_opt): New static function.
1694         (initiate_automaton_gen): Remove all option handling code.  Remove
1695         argc argument.  All callers changed.
1696         (main): Call init_rtx_reader_args_cb with the new function as argument.
1698 2012-03-05  Richard Guenther  <rguenther@suse.de>
1700         * cfgexpand.c (gimple_expand_cfg): Free dominator info.
1701         * tree-if-conv.c (combine_blocks): Free post-dominator info
1702         after breaking it.
1703         * tree-parloops.c (create_parallel_loop): Free and re-compute
1704         dominator info after breaking it.
1706 2012-03-05  Richard Guenther  <rguenther@suse.de>
1708         PR middle-end/52353
1709         * optabs.h (trapv_unoptab_p): New function.
1710         (trapv_binoptab_p): Likewise.
1711         * optabs.c (expand_binop): Use emit_libcall_block_1 with
1712         a proper equiv_may_trap argument.
1713         (expand_unop): Likewise.
1714         (emit_libcall_block_1): Take extra argument whether the
1715         instruction may trap.  Renamed from ...
1716         (emit_libcall_block): ... this.  New wrapper.
1718 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
1720         PR tree-optimization/51721
1721         * tree-vrp.c (register_edge_assert_for_2): If comparing
1722         lhs of right shift by constant with an integer constant,
1723         add ASSERT_EXPRs for the rhs1 of the right shift.
1725         * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
1727 2012-03-05  Richard Guenther  <rguenther@suse.de>
1729         * tree.c (integer_zerop): Handle VECTOR_CSTs.
1730         (integer_onep): Likewise.
1731         (integer_all_onesp): Likewise.
1733 2012-03-05  Georg-Johann Lay  <avr@gjlay.de>
1735         * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
1737 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
1739         * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
1740         instead of TARGET_64BIT.
1742 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
1744         * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
1745         adjust_stack_insn.
1747 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
1749         * config/i386/i386.c (ix86_print_operand_address): Only handle
1750         zero-extended DImode addresses.
1752 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
1754         * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
1755         taken and cputaken as bool.
1757 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
1759         * config/i386/constraints.md (Ya): New internal constraint.
1760         * config/i386/i386.md (zero_extendsidi2): Remove expansion.
1761         (*zero_extendsidi2_rex64): Add x,x alternative.
1762         (*zero_extendsidi2): Ditto.  Add o,0 alternative.
1763         Remove flags reg clobber.  Adjust corresponding splits.
1764         (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
1765         zero_extendqisi2 expanders using SWI12 mode iterator.
1766         (zero_extend<mode>si2_and): Macroize insn from
1767         zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
1768         splitters.
1769         (*zero_extend<mode>si2):  Macroize insn from
1770         *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
1771         (*zero_extend*2_movzbl_and): Remove insn patterns.
1772         (zero_extendqihi2_and): Merge corresponding splitter.
1773         (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
1774         (*zero_extend*2_movzbl_and): Remove insn patterns.
1775         (*anddi_1): Split TYPE_IMOVX instructions.
1776         (*andsi_1): Use Ya for alternative 2.  Split TYPE_IMOVX instructions.
1777         (*andhi_1): Ditto.
1778         (and->zext splitter): Add splitter pattern.
1779         (zero extend with andsi3 splitter): Adjust zero_extend pattern.
1781 2012-03-04  Sandra Loosemore  <sandra@codesourcery.com>
1783         * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
1784         x86-specific text.
1785         (Debugging Options): Likewise.
1786         (Optimize Options): Likewise.
1787         (i386 and x86-64 Options): Discuss -march before -mtune, consistently
1788         with other architectures.  Use official processor names with correct
1789         spelling/capitalization.  Fix formatting and grammar issues.
1790         (i386 and x86-64 Windows Options): Similar cleanup here.
1792 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1794         * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
1796 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1798         * config/sh/sh.c (sh_dwarf_register_span): Don't apply
1799         DBX_REGISTER_NUMBER.
1801 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1803         * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
1804         operand is CONST_INT.  Take COSTS_N_INSNS into account.
1805         (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
1806         of shiftcosts.
1808 2012-03-02  Richard Henderson  <rth@redhat.com>
1810         * optabs.c (expand_atomic_test_and_set): Honor
1811         atomic_test_and_set_trueval even when atomic_test_and_set
1812         optab is not in use.
1814 2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1816         PR target/48596
1817         PR target/48806
1818         * config/sh/sh.c (sh_register_move_cost): Increase cost between
1819         GENERAL_REGS and FP_REGS for SImode.
1821 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
1823         PR target/49486
1824         * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
1825         (absdi2): New expander.
1826         (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
1828 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
1830         * config/sh/sync.md (atomic_exchange<mode>): New expander.
1831         (atomic_exchange<mode>_soft): New insn.
1833 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
1835         * config/sh/sync.md: Update copyright notice dates.
1836         (atomic_compare_and_swap<mode>): Use SImode for return value instead
1837         of QImode.
1838         (atomic_compare_and_swap<mode>_soft): Likewise.
1840 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
1842         PR target/31640
1843         * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
1844         * config/sh/sh.c: Update copyright notice dates.
1845         (sh_loop_align): Add logic from LOOP_ALIGN.  Don't disable loop
1846         alignment for TARGET_HARD_SH4.
1847         (sh_option_override): Reduce default function alignment.  Set
1848         loop alignment to 4 bytes when not optimizing for size.
1850 2012-03-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
1852         PR middle-end/50335
1853         * doc/invoke.texi (floop-flatten): Remove.
1854         * toplev.c (process_options): Remove references to flag_loop_flatten.
1855         * tree-ssa-loop.c (gate_graphite_transform): Same.
1856         * common.opt (floop-flatten): Obsolete.
1857         * graphite-poly.c (apply_poly_transforms): Remove reference to
1858         flag_loop_flatten.
1859         * Makefile.in (graphite-flattening.o): Remove.
1860         * graphite-flattening.c: Remove.
1862 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
1864         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
1865         having mode compatible with the mode of previous compare.  Substitute
1866         compare mode of previous compare with the mode, compatible
1867         with eliminated and previous compare.
1869 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
1871         * config/rs6000/dfp.md (floatdidd2): New define_insn.
1873 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
1875         * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
1876         compatible with CCGOCmode and CCGCmode.
1878 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
1880         * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
1882 2012-03-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
1884         * config/arm/arm.c (arm_sat_operator_match): New function.
1885         * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
1886         * config/arm/arm.md ("insn" attribute): Add "sat" value.
1887         ("SAT", "SATrev"): New code iterators.
1888         ("SATlo", "SAThi"): New code iterator attributes.
1889         ("*satsi_<SAT:code>"): New pattern.
1890         ("*satsi_<SAT:code>_shift"): Likewise.
1891         * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
1892         and "shift" attributes.
1893         ("arm_usatsihi"): Add "insn" attribute.
1894         * config/arm/predicates.md (sat_shift_operator): Allow multiplication
1895         by powers of two.  Do not allow shift by 32.
1897 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
1899         PR target/46716
1900         * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
1901         to pass the argument in the register of "natural" mode.
1903 2012-03-02  Richard Guenther  <rguenther@suse.de>
1905         PR tree-optimization/52406
1906         * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
1907         (struct indices): Add unconstrained_base member.
1908         (struct dr_alias): Remove unused vops member.
1909         (DR_UNCONSTRAINED_BASE): New define.
1910         * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
1911         add indices to allow their disambiguation.  Make DR_BASE_OBJECT
1912         be an artificial access that covers the whole indexed object,
1913         or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
1914         plain decl base-objects to their MEM_REF variant.
1915         (dr_may_alias_p): When the base-object of either data reference
1916         has unknown size use only points-to information.
1917         (compute_affine_dependence): Make dumps easier to read and
1918         more verbose.
1919         * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
1920         DR_REF when looking for packed references.
1921         (vect_supportable_dr_alignment): Likewise.
1923 2012-03-02  Greta Yorsh  <Greta.Yorsh@arm.com>
1925         * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
1926         Improve conditions for peepholes of loads followed by commutative
1927         operators.
1928         * config/arm/ldmstm.md: Regenerated.
1930 2012-03-02  Richard Guenther  <rguenther@suse.de>
1932         * BASE-VER: Set to 4.8.0.
1934 2012-03-01  Richard Earnshaw  <rearnsha@arm.com>
1936         * config.gcc (obsolete): Add all ARM targets using the FPA.
1937         (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
1938         * doc/install.texi: Avoid references to obsolete ARM ports.
1940 2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1942         * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
1944 2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
1945             Joern Rennecke  <joern.rennecke@embecosm.com>
1947         * doc/extend.texi: Expand and update information on interrupt
1948         attribute for Epiphany.
1950 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
1952         * config/sh/sh-protos.h: Update copyright notice dates.
1953         * config/sh/sh.h: Likewise.
1954         * config/sh/sh.md: Likewise.
1955         * config/sh/constraints.md: Likewise.
1956         * config/sh/predicates.md: Likewise.
1958 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
1960         * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
1961         * config/sh/sh.c (tertiary_reload_operand): Likewise.
1963 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
1965         * config/sh/constraints.md: Fix comment typo.
1967 2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1969         PR target/52408
1970         * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
1971         unsigned HOST_WIDE_INT.
1972         (zvdep_imm64): Likewise.
1973         (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
1974         (vdepi_and): Likewise.
1975         Likewise for unamed 64-bit patterns.
1976         * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
1978 2012-03-01  Alexandre Oliva  <aoliva@redhat.com>
1980         PR debug/52001
1981         PR rtl-optimization/52417
1982         * cselib.c (cselib_any_perm_equivs): New variable.
1983         (cselib_reset_table): Check that it's not set when not
1984         preserving constants.
1985         (cselib_add_permanent_equiv): Set it.
1986         (cselib_have_permanent_equivalences): New.
1987         (cselib_init, cselib_finish): Reset it.
1988         * cselib.h (cselib_have_permanent_equivalences): Declare.
1989         * alias.c (get_addr): Restore earlier behavior when there
1990         aren't permanent equivalences.
1992 2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>
1994         * config/mn10300/mn10300-modes.def: Fix copyright notice.
1995         * config/v850/v850-modes.def: Fix copyright notice.
1997 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
1999         * doc/extend.texi (AVR Built-in Functions): Document
2000         __builtin_avr_flash_segment.
2002         * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
2003         * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
2004         (*split.flash_segment): New insn-and-split.
2005         * config/avr/avr.c (avr_init_builtins): Add local variables:
2006         const_memx_void_node, const_memx_ptr_type_node,
2007         char_ftype_const_memx_ptr.
2009 2012-03-01  Jakub Jelinek  <jakub@redhat.com>
2011         PR tree-optimization/52445
2012         * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
2013         add ssa_name_ver, offset and size fields and change store field
2014         to bool.
2015         (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
2016         (add_or_mark_expr): Likewise.  Only consider previous stores
2017         with the same size and offset.
2018         (nt_init_block): Only look at gimple_assign_single_p stmts,
2019         doesn't look at rhs2.
2021 2012-03-01  Richard Guenther  <rguenther@suse.de>
2023         PR middle-end/52443
2024         * tree-cfg.c (verify_gimple_assign_unary): Allow any
2025         conversions from integral types to pointer types.
2027 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
2029         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
2030         defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
2031         unintentionally removed in r184616.
2033 2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
2035         * doc/invoke.texi: Document AMD bdver2 and remove mentioning
2036         3DNow from bdver1.
2038 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
2039             Uros Bizjak  <ubizjak@gmail.com>
2041         PR target/52437
2042         * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
2043         alternatives, add "e" constraint to the new last alternative
2044         and ! to last 3 alternatives.
2046 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
2048         * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
2049         DW_AT_artificial attributes at the end of the processing.
2050         (gen_array_type_die): Likewise.
2051         (gen_enumeration_type_die): Likewise.
2052         (gen_struct_or_union_type_die): Likewise.
2053         (add_gnat_descriptive_type_attribute): Do not suppress debug info for
2054         the parent type.
2056 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
2058         PR middle-end/52419
2059         * expr.c (expand_assignment): If doing misaligned store that doesn't
2060         cover all mode bits, perform a RMW cycle.
2062         PR tree-optimization/52429
2063         * tree-parloops.c (separate_decls_in_region_debug): Return early
2064         if var is LABEL_DECL.
2066 2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2068         PR tree-optimization/52424
2069         * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
2070         calling dom_thread_across_edge.
2072 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
2074         * config/avr/avr.c: Move definition of TARGET macros to end of file.
2076 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
2078         * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
2079         * config/avr/avr.c (avr_output_bld): Remove unused function.
2080         (avr_out_sbxx_branch): Use "%T" to print bit position.
2082 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
2084         * config/avr/avr.md: Untabify.
2086 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
2088         * config/avr/avr.md (eqne): New code iterator.
2089         (*dec-and-branchsi): Use it in text peephole's condition.
2090         (*dec-and-branchhi): Ditto.
2091         (*dec-and-branchqi): Ditto.
2093 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
2095         PR target/49939
2096         * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
2097         the device does not have the skip-bug.
2099 2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>
2101         * doc/invoke.texi (-msoft-atomic): Add more detailed description.
2102         (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
2103         -mpretend-cmove): New.
2105 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
2107         PR bootstrap/52397
2108         * df.h (struct df_d): Adjust comment that hard_regs_live_count
2109         doesn't count DEBUG_INSN refs.
2110         * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
2111         for DEBUG_INSN refs.
2113 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2115         Partially revert:
2117         2012-02-20  Richard Guenther  <rguenther@suse.de>
2118         PR tree-optimization/52298
2119         * tree-vect-stmts.c (vectorizable_load): Properly use
2120         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
2121         outer loops.
2123 2012-02-28  Aldy Hernandez  <aldyh@redhat.com>
2125         PR middle-end/51752
2126         * gimple.h (gimple_in_transaction): New.
2127         (gimple_set_in_transaction): New.
2128         (struct gimple_statement_base): Add in_transaction field.
2129         * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
2130         transaction loads.
2131         (tree_ssa_lim_initialize): Compute transaction bits.
2132         * tree.h (compute_transaction_bits): Protoize.
2133         * trans-mem.c (tm_region_init): Use the heap to store BB
2134         auxilliary data.
2135         (compute_transaction_bits): New.
2137 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2139         * gcc.c (display_help): Document --help=common and sort entries
2140         alphabetically.
2142 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2144         * doc/install.texi: Document check-$LANG specific shortcuts
2146 2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2148         PR target/51534
2149         * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
2150         and vcgtu.
2151         * config/arm/arm_neon.h: Regenerate.
2152         * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
2153         (neon_vcgeu): New insn.
2154         (neon_vcgtu): Likewise.
2155         * config/arm/neon.ml (s_8_32, u_8_32): New lists.
2156         (ops): Unsigned comparison intrinsics call a different builtin.
2158 2012-02-28  Richard Guenther  <rguenther@suse.de>
2160         PR target/52407
2161         * config/i386/i386.c (ix86_expand_vector_set): Fix element
2162         ordering for the VEC_CONCAT for two element vectors for
2163         V2SFmode, V2SImode and V2DImode.
2165 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
2167         PR target/49448
2168         * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
2169         detecting big-endian triplets.
2171 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
2173         * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
2174         mode if there is no type information available.
2176 2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
2178         PR tree-optimization/53207
2179         * doc/invoke.texi: Document as experimental and relying on graphite.
2181 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
2183         * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
2184         of initializer to changes from r184614.
2186 2012-02-28  Richard Guenther  <rguenther@suse.de>
2188         PR tree-optimization/52395
2189         * tree-sra.c (build_ref_for_offset): Also look at the base
2190         TYPE_ALIGN when figuring out the alignment of the replacement.
2192 2012-02-28  Richard Guenther  <rguenther@suse.de>
2194         PR tree-optimization/52402
2195         * ipa-prop.c (ipa_modify_call_arguments): Properly use
2196         mis-aligned types when creating the accesses at the call site.
2198 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
2200         * config/avr/builtins.def: New file.
2201         * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
2202         * config/avr/avr.c (enum avr_builtin_id): Use it.
2203         (avr_init_builtins): Use it. And use avr_bdesc.
2204         (bdesc_1arg): Remove.
2205         (bdesc_2arg): Remove.
2206         (bdesc_3arg): Remove.
2207         (struct avr_builtin_description): Add field n_args.
2208         (avr_bdesc): New static variable using builtins.def.
2209         (avr_expand_builtin): Use it.
2210         Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
2211         (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
2212         Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
2214 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
2216         PR target/52148
2217         * config/avr/avr.md (movmem_<mode>): Replace match_operand that
2218         match only one single hard register with respective hard reg rtx.
2219         (movmemx_<mode>): Ditto.
2220         * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
2221         insn anatomy of movmem[x]_<mode>.
2222         (avr_out_movmem): Same for printing assembler and operand usage.
2224 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
2226         PR target/49868
2227         PR target/52261
2228         * doc/extend.texi (AVR Named Address Spaces): No more try to fix
2229         address spaces located outside of device flash.
2231         * config/avr/avr.h (base_arch_s): Remove field n_segments.
2232         (mcu_type_s): Add field n_flash.
2233         * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
2234         Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
2235         (AVR_MCU): Add N_FLASH argument.
2236         * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
2237         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
2238         macro __FLASH<n> if that address space makes sense for the device.
2239         * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
2240         outside of target flash.
2241         (avr_asm_named_section): Ditto.
2242         (avr_asm_select_section): Ditto.
2243         (avr_addr_space_convert): Ditto.
2244         (avr_emit_movmemhi): Ditto.
2245         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
2246         address space is outside of device flash.
2247         (avr_insert_attributes): Ditto.
2248         (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
2249         avr_current_arch->n_segments.
2251 2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>
2253         PR target/52352
2254         * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
2255         (*movabs<mode>_2): Likewise.
2257 2012-02-27  Jakub Jelinek  <jakub@redhat.com>
2259         PR target/52375
2260         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
2261         s_register_operand in the test instead of REG_P.  Don't call
2262         gen_reg_rtx if it won't be used.
2264         PR tree-optimization/52376
2265         * ipa-split.c (split_function): Ignore CLOBBER stmts.
2267 2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>
2269         * ifcvt.c (noce_get_condition): Check condition variable is not
2270         small_register_classes_for_mode_p before accepting.
2272 2012-02-27  Uros Bizjak  <ubizjak@gmail.com>
2274         * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
2276 2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2278         Revert:
2279         2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2280         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
2281         tuning parameters.
2282         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
2284 2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>
2286         * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
2288 2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
2290         * config/sh/predicates.md: Remove blank lines.
2291         * config/sh/sh.c: Fix typos in comments.
2292         * config/sh/constraints.md: Likewise.
2293         * config/sh/sh.md: Remove blank lines.
2294         Fix typos in comments.  Use ;; as comment characters.
2296 2012-02-26  Walter Lee  <walt@tilera.com>
2298         * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
2299         (replace_mov_pcrel_step2): Ditto.
2301 2012-02-25  Alexandre Oliva  <aoliva@redhat.com>
2303         PR debug/52001
2304         * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
2305         (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
2306         and locs that reference values newer than the non-canonical value
2307         at hand.  Return the canonical value as a worst case.
2308         (memrefs_conflict_p): Walk canonical value's locs.
2310         PR debug/52001
2311         * cselib.c (preserve_only_constants): Rename to...
2312         (preserve_constants_and_equivs): ... this.  Split out...
2313         (invariant_or_equiv_p): ... this.  Preserve plus expressions
2314         of other preserved expressions too.
2315         (cselib_reset_table): Adjust.
2316         * var-tracking.c (reverse_op): Use canonical value to build
2317         reverse operation.
2319 2012-02-23  Kai Tietz  <ktietz@redhat.com>
2321         * config/i386/i386.c (ix86_delegitimize_address): Handle
2322         UNSPEC_PCREL plus displacement.
2324 2012-02-24  Georg-Johann Lay  <avr@gjlay.de>
2326         PR target/52261
2327         * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
2328         to test for unusedness in st X addressing.
2330 2012-02-24  Richard Guenther  <rguenther@suse.de>
2332         PR middle-end/52361
2333         * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
2334         (is_gimple_reg_type): Move inline ...
2335         * gimple.h (is_gimple_reg_type): ... here.
2337 2012-02-24  Richard Guenther  <rguenther@suse.de>
2339         PR middle-end/52361
2340         * passes.c (execute_function_todo): When verifying SSA form
2341         verify gimple form first.
2342         * tree-ssa.c (verify_ssa): Do not verify gimple form here.
2344 2012-02-24  Richard Guenther  <rguenther@suse.de>
2346         PR middle-end/52355
2347         * fold-const.c (fold_addr_of_array_ref_difference): New function.
2348         (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
2350 2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2352         * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
2354 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2356         * tree-phinodes.c (make_phi_node): Mark static.
2357         * tree-flow.h (make_phi_node): Remove extern decl.
2358         * doc/gimple.texi (make_phi_node): Remove documentation.
2360 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2362         * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
2363         * tree-ssa-sccvn.c (print_scc): Ditto.
2365 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2367         * doc/passes.texi (Full redundancy elimination): Fix typo.
2369 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2371         * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
2373 2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>
2375         PR bootstrap/52287
2376         * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
2378 2012-02-23  Uros Bizjak  <ubizjak@gmail.com>
2380         PR c/52290
2381         * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
2383 2012-02-23  Georg-Johann Lay  <avr@gjlay.de>
2385         * config/avr/avr.md (code_stdname): Add ior, xor.
2386         (xior): New code iterator.
2387         (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
2388         (*<code_stdname><mode>qi.byte1-3): Ditto.
2390 2012-02-23  Jakub Jelinek  <jakub@redhat.com>
2392         PR tree-optimization/52019
2393         * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
2394         CLOBBER stmts.
2396 2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2398         * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
2399         HAVE_INITFINI_ARRAY to work around namespace pollution in
2400         certain versions of newlib system headers.
2401         * config.in: Regenerate.
2402         * configure: Regenerate.
2403         * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
2404         instead of HAVE_INITFINI_ARRAY.
2406 2012-02-22  Uros Bizjak  <ubizjak@gmail.com>
2408         PR target/52330
2409         * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
2410         is not offsettable memory reference.
2412 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
2414         PR target/18145
2415         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
2416         setting avr_need_clear_bss_p for __gnu_lto* symbols.
2418 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
2420         * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
2421         * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
2423 2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2425         * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
2426         library on Solaris 8 even without TLS support.
2427         * configure: Regenerate.
2429 2012-02-22  Richard Guenther  <rguenther@suse.de>
2431         PR middle-end/52329
2432         * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
2433         for GIMPLE_DEBUG stmts.
2435 2012-02-22  Martin Jambor  <mjambor@suse.cz>
2437         PR middle-end/51782
2438         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
2439         according to the base object.
2441 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
2443         PR rtl-optimization/50063
2444         * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
2445         and 2 (8-bit SP) in operand 2.
2446         * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
2447         setup to use movhi_sp_r instead of vanilla move to write SP.
2448         Adjust REG_CFA notes to superseed unspec.
2449         (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
2450         of vanilla move.
2451         As function body might contain CLI or SEI: Use irq_state 0 (IRQ
2452         known to be off) only with TARGET_NO_INTERRUPTS. Never use
2453         irq_state 1 (IRQ known to be on) here.
2455 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
2457         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
2458         WORDS_BIG_ENDIAN.
2459         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
2460         assign_hard_reg): Likewise.
2462 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
2464         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
2466 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
2468         * config/avr/avr.md
2469         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
2470         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
2472 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
2474         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
2475         prototype from here to...
2476         * config/avr/avr.h: ...here.
2478 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
2480         PR target/52294
2481         * thumb2.md (thumb2_shiftsi3_short): Split register and
2482         immediate shifts.  For register shifts tie operands 0 and 1.
2483         (peephole2 for above): Check that register-controlled shifts
2484         have suitably tied operands.
2486 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
2488         PR target/52137
2489         * config/i386/bdver1.md (bdver1_call, bdver1_push,
2490         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
2491         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
2492         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
2493         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
2494         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
2495         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
2496         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
2497         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
2498         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
2499         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
2500         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
2501         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
2502         bdver1_ssevector_avx256_unaligned_load,
2503         bdver1_ssevector_sse128_unaligned_load,
2504         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
2505         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
2506         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
2507         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
2508         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
2509         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
2510         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
2511         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
2512         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
2513         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
2514         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
2515         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
2516         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
2517         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
2518         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
2519         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
2520         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
2521         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
2522         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
2523         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
2524         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
2525         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
2526         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
2527         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
2528         bdver1_ssediv_double_load, bdver1_ssediv_double,
2529         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
2530         Add "bdver2" attribute.
2532 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2534         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
2535         default if possible and not specified otherwise.
2537 2012-02-21  Richard Guenther  <rguenther@suse.de>
2539         PR middle-end/52314
2540         * gimplify.c (create_tmp_from_val): Use the main variant type
2541         for the type of the temporary we create.
2543 2012-02-21  Richard Guenther  <rguenther@suse.de>
2545         PR tree-optimization/52324
2546         * gimplify.c (gimplify_expr): When re-gimplifying expressions
2547         do not gimplify a MEM_REF address operand if it is already
2548         in suitable form.
2550 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2552         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
2553         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
2555 2012-02-21  Richard Guenther  <rguenther@suse.de>
2557         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
2558         nested_in_vect_loop.
2560 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
2562         PR tree-optimization/52318
2563         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
2564         vdef also to non-pure/const call stmts in the sequence.
2566 2012-02-21  Tristan Gingold  <gingold@adacore.com>
2568         * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
2570 2012-02-20  David S. Miller  <davem@davemloft.net>
2572         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
2573         don't use the "rd %pc" instruction on v9 for PIC register loads.
2575 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
2577         PR middle-end/52141
2578         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
2579         in a transaction safe function.
2581 2012-02-20  Kai Tietz  <ktietz@redhat.com>
2583         PR target/52238
2584         * stor-layout.c (place_field): Handle desired_align for
2585         ms-bitfields, too.
2587 2012-02-20  Richard Guenther  <rguenther@suse.de>
2589         PR tree-optimization/52298
2590         * tree-vect-stmts.c (vectorizable_store): Properly use
2591         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
2592         outer loops.
2593         (vectorizable_load): Likewise.
2594         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2595         Access DR_STEP after ensuring it is not NULL.
2597 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
2599         PR tree-optimization/52286
2600         * fold-const.c (fold_binary_loc): For (X & C1) | C2
2601         optimization use double_int_to_tree instead of build_int_cst_wide,
2602         rewrite to use double_int vars.
2604 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2606         PR target/50166
2607         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
2608         Define _start.
2609         Remove -e 0 from $gcc_cv_ld invocation.
2610         Only use __GLIBC_PREREQ if defined.
2611         Enable on Solaris since Solaris 8 patch.
2612         (gcc_SUN_LD_VERSION): New macro.
2613         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
2614         gcc_SUN_LD_VERSION for version number format.
2615         * configure: Regenerate.
2616         * varasm.c (get_elf_initfini_array_priority_section): Set
2617         SECTION_NOTYPE for non-default priority.
2618         Use get_section instead of get_unnamed_section to emit
2619         .init_array/.fini_array with default priority.
2621 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
2623         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
2624         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
2625         (mips_start_unique_function, mips_output_mips16_rdhwr)
2626         (mips_code_end): New functions.
2627         (TARGET_ASM_CODE_END): Define.
2629 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
2631         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
2632         to stubs with non-sibling calls.
2634 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
2636         * doc/invoke.texi (-fira-* options): Copy-edit.
2637         (ira-* parameters): Copy-edit.
2639 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
2641         * doc/invoke.texi: Minor copy-edits to bring into conformance with
2642         GCC coding conventions.
2644 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
2646         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
2647         when used as adjectives.
2649 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
2651         * doc/invoke.texi: Clean up "that"/"which" confusion.
2653 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
2655         * system.h: Poison SMALL_REGISTER_CLASSES
2656         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
2657         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
2659 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
2661         PR tree-optimization/52285
2662         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
2663         when deciding if a call is a tail call or tail recursion.
2665 2012-02-16  Kai Tietz  <ktietz@redhat.com>
2667         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
2668         interger-constant displacement for UNSPEC_PCREL.
2670 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
2672         PR rtl-optimization/52208
2673         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
2674         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
2676         PR tree-optimization/52255
2677         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
2678         loop->header has virtual PHI, but exit_e->dest doesn't, add
2679         virtual PHI to exit_e->dest and adjust all uses after the loop.
2681         PR debug/52260
2682         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
2683         children with clone_tree_hash, not after it.
2685 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
2687         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
2688         extended identifiers.
2690 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
2692         PR middle-end/51929
2693         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
2694         a same_body_alias, also test whether e->callee isn't a former
2695         or current clone of the decl this is a same body alias of.
2697         PR translation/52264
2698         * cgraphunit.c (verify_cgraph_node): Fix a typo.
2700 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2702         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
2704 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
2706         PR target/52199
2707         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
2708         force_reg instead of copy_to_reg for better optimization.  Force
2709         non-register or memory operands into a register.
2711 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
2713         * extend.texi: Reserve upper bits of memory model for future use.
2715 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
2716             Anatoly Sokolov <aesok@post.ru>
2717             Eric Weddington <eric.weddington@atmel.com>
2719         PR target/52261
2720         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
2721         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
2722         Rewrite initializers for .macro.
2723         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
2724         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
2725         atxmega32d4, atxmega32x1.
2726         avrxmega4: atxmega64a3, atxmega64d3.
2727         avrxmega5: atxmega64a1, atxmega64a1u.
2728         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
2729         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
2730         avrxmega7: atxmega128a1, atxmega128a1u.
2731         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
2732         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
2733         (struct base_arch_s): Rename reserved to xmega_p.
2734         Rename reserved2 to have_rampd.
2735         (AVR_XMEGA): New define.
2736         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
2737         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
2738         * config/avr/predicates.md (io_address_operand): Take into
2739         account SFR offset.
2740         (low_io_address_operand): Ditto.
2741         (high_io_address_operand): Ditto.
2742         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
2743         (enabled, movhi_sp_r): Use them.
2744         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
2745         cpp_define_formatted to built-in define __AVR_ARCH__.
2746         (__AVR_XMEGA__): New built-in define.
2747         (__AVR_HAVE_RAMPD__): New built-in define.
2748         (__AVR_HAVE_RAMPX__): New built-in define.
2749         (__AVR_HAVE_RAMPY__): New built-in define.
2750         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
2752         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
2753         (avr_option_override): Initialize them.
2754         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
2755         (avr_init_expanders): Initialize them. No more block several calls.
2756         (emit_push_sfr): New static function.
2757         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
2758         Handle AVR_XMEGA.
2759         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
2760         (avr_print_operand): Print addreeses as symbols for
2761         RAMPX, RAMPY, RAMPD, CCP.
2762         (output_movhi): Handle AVR_XMEGA when writing to SP.
2763         (avr_out_movhi_mr_r_xmega): New static function.
2764         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
2765         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
2766         __RAMPD__,  __CCP__ as needed.
2768         * config/avr/multilib.h: Regenerate.
2769         * config/avr/t-multilib: Regenerate.
2770         * config/avr/avr-tables.opt: Regenerate.
2772 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
2774         PR tree-optimization/50561
2775         * graphite-flattening.c (lst_project_loop): Do not
2776         remove old scattering dimensions after flattening.
2777         (lst_do_flatten): Likewise.
2779 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
2781         * doc/extend.texi (AVR Built-in Functions): Remove doc for
2782         __builtin_avr_map8, __builtin_avr_map16.
2783         Document __builtin_avr_insert_bits.
2785         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
2786         (insert_bits): New insn.
2787         (adjust_len.map_bits): Rename to insert_bits.
2788         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
2789         * avr-protos.h (avr_out_map_bits): Remove.
2790         (avr_out_insert_bits, avr_has_nibble_0xf): New.
2791         * config/avr/constraints.md (Cxf,C0f): New.
2792         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
2793         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
2794         New built-in define __BUILTIN_AVR_INSERT_BITS.
2795         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
2796         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
2797         (avr_move_bits): Rewrite.
2798         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
2799         functions.
2800         (avr_map_op_t): New typedef.
2801         (avr_map_op): New static variable.
2802         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
2803         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
2804         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
2805         (bdesc_3arg, avr_expand_triop_builtin): New.
2806         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
2807         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
2808         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
2809         (avr_map_equal_p, avr_map_sig_p): Remove.
2810         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
2811         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2812         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
2813         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2814         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
2815         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2817 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
2819         * config/c6x/c6x.md (reserve_cycles): New attribute.
2820         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
2821         don't reserve functional units after the branch occurs.
2823 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
2825         PR middle-end/52142
2826         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
2827         functions into non-tm_pure functions.
2829 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
2831         PR lto/52178
2832         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
2833         (iterative_hash_canonical_type): Likewise.
2834         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
2835         the dead edges.
2837 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
2839         * haifa-sched.c (prune_ready_list): Ensure that if there is a
2840         sched-group insn, it either remains alone or the entire list is pruned.
2842 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
2844         * doc/install.texi (Prerequisites): Fix grammar.
2845         (Configuration): Likewise.
2847 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
2849         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
2850         MPC as part of GCC before describing configuring with --with-gmp etc.
2851         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
2852         sources are present.
2854 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
2856         PR debug/51950
2857         * dwarf2out.c (clone_tree_hash): New function.
2858         (copy_decls_walk): Use it instead of clone_tree.
2860 2012-02-14  Richard Guenther  <rguenther@suse.de>
2862         PR tree-optimization/52244
2863         PR tree-optimization/51528
2864         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
2865         replacements for integral types.
2867 2012-02-14  Walter Lee  <walt@tilera.com>
2869         * config.gcc: Handle tilegx and tilepro.
2870         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
2871         tilegx and tilepro.
2872         Add HAVE_AS_TLS check for tilegx and tilepro.
2873         * configure: Regenerate.
2874         * doc/contrib.texi: Add Mat Hostetter and self.
2875         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
2876         Document instruction intrinsics and network accessing intrinsics.
2877         (TILEPro Built-in Functions): New node.  Document instruction
2878         intrinsics and network accessing intrinsics.
2879         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
2880         (Specific, tilepro-*-linux*): Likewise.
2881         * doc/invoke.texi (TILE-Gx Options): New section.
2882         (TILEPro Options): New section.
2883         * doc/md.texi (TILE-Gx): New section.
2884         (TILEPro): New section.
2885         * common/config/tilegx/tilegx-common.c: New file.
2886         * common/config/tilepro/tilepro-common.c: New file.
2887         * config/tilegx/constraints.md: New file.
2888         * config/tilegx/linux.h: New file.
2889         * config/tilegx/mul-tables.c: New file.
2890         * config/tilegx/predicates.md: New file.
2891         * config/tilegx/sync.md: New file.
2892         * config/tilegx/t-tilegx: New file.
2893         * config/tilegx/tilegx-builtins.h: New file.
2894         * config/tilegx/tilegx-c.c: New file.
2895         * config/tilegx/tilegx-generic.md: New file.
2896         * config/tilegx/tilegx-modes.def: New file.
2897         * config/tilegx/tilegx-multiply.h: New file.
2898         * config/tilegx/tilegx-protos.h: New file.
2899         * config/tilegx/tilegx.c: New file.
2900         * config/tilegx/tilegx.h: New file.
2901         * config/tilegx/tilegx.md: New file.
2902         * config/tilegx/tilegx.opt: New file.
2903         * config/tilepro/constraints.md: New file.
2904         * config/tilepro/gen-mul-tables.cc: New file.
2905         * config/tilepro/linux.h: New file.
2906         * config/tilepro/mul-tables.c: New file.
2907         * config/tilepro/predicates.md: New file.
2908         * config/tilepro/t-tilepro: New file.
2909         * config/tilepro/tilepro-builtins.h: New file.
2910         * config/tilepro/tilepro-c.c: New file.
2911         * config/tilepro/tilepro-generic.md: New file.
2912         * config/tilepro/tilepro-modes.def: New file.
2913         * config/tilepro/tilepro-multiply.h: New file.
2914         * config/tilepro/tilepro-protos.h: New file.
2915         * config/tilepro/tilepro.c: New file.
2916         * config/tilepro/tilepro.h: New file.
2917         * config/tilepro/tilepro.md: New file.
2918         * config/tilepro/tilepro.opt: New file.
2920 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
2922         PR tree-optimization/52210
2923         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
2924         vect_model_simple_cost with two entry vect_def_type array instead
2925         of an address of dt.
2927 2012-02-14  Richard Guenther  <rguenther@suse.de>
2929         PR lto/52178
2930         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
2931         Do not stream DECL_QUALIFIER.
2932         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
2933         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
2934         (find_decls_types_r): Do not walk DECL_QUALIFIER.
2936 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
2938         PR c/52181
2939         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
2940         newdecl.
2942 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
2944         PR bootstrap/52172
2945         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
2946         * cselib.c (cselib_subst_to_values_from_insn): New function.
2947         * sched-deps.c (add_insn_mem_dependence,
2948         sched_analyze_1, sched_analyze_2): Use it.
2950 2012-02-13  Jan Hubicka  <jh@suse.cz>
2952         PR middle-end/52214
2953         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
2955 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
2957         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
2958         (GTM_SELF_SPECS): Define if not already defined.
2959         (driver_self_specs): Add GTM_SELF_SPECS.
2960         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
2961         (GTM_SELF_SPECS): Define.
2962         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
2963         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
2965 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
2967         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
2968         away if seen.
2970         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
2972         PR middle-end/52230
2973         * omp-low.c (expand_omp_for): If a static schedule without chunk size
2974         has NULL region->cont, force fd.chunk_size to be integer_zero_node.
2976 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
2978         PR c/52190
2979         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
2981 2012-02-13  Richard Guenther  <rguenther@suse.de>
2983         PR translation/52211
2984         * passes.c (enable_disable_pass): Fix typo.
2986 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
2988         PR middle-end/52209
2989         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
2990         XOR for reduce_bit_field if type is unsigned.
2992 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
2994         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
2995         disallow changes from SFmode to mode with different size in FP regs.
2997 2012-02-12  Robert Millan  <rmh@gnu.org>
2998             Gerald Pfeifer <gerald@pfeifer.com>
3000         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
3001         Tweak comment.
3003 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
3005         PR rtl-optimization/52175
3006         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
3007         to frame-related instructions.
3009 2012-02-10  Jason Merrill  <jason@redhat.com>
3011         PR c++/51910
3012         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
3013         (demangle_new_symbols): Fill it.
3014         (scan_linker_output): Walk it.
3015         (start_tweaking): Split out from scan_linker_output.
3016         (maybe_tweak): Update sym->chosen.
3017         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
3019 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
3021         PR debug/52132
3022         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
3024 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
3026         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
3027         having the same mode as previous compare.
3029 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
3031         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
3032         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
3033         (nonlocal_goto_internal): Likewise.
3034         (nonlocal_goto): Emit a use and an indirect jump directly.
3036 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
3038         PR c/52190
3039         * doc/extend.texi : Update comments for __atomic_compare_exchange and
3040         __atomic_{is,always}_lock_free.
3042 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
3044         PR target/52146
3045         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
3046         negative constant address for TARGET_X32.
3048 2012-02-10  Richard Henderson  <rth@redhat.com>
3050         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
3051         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
3052         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
3054 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3055             Ira Rosen  <irar@il.ibm.com>
3057         PR tree-optimization/50031
3058         * targhooks.c (default_builtin_vectorization_cost): Handle
3059         vec_promote_demote.
3060         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
3061         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
3062         all types of reduction and pattern statements.
3063         (vect_estimate_min_profitable_iters): Likewise.
3064         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
3065         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
3066         for explicit realigns.
3067         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
3068         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
3069         vec_promote_demote.
3070         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
3071         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
3072         vec_perm for VSX and handle vec_promote_demote.
3074 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
3076         PR middle-end/52177
3077         * builtins.c (fold_builtin_atomic_always_lock_free,
3078         expand_builtin_atomic_always_lock_free,
3079         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
3080         Return and/or test boolean_true_node/boolean_false_node instead of
3081         integer_one_node/integer_zero_node.
3083 2012-02-10  Jan Hubicka  <jh@suse.cz>
3085         PR middle-end/48600
3086         * predict.c (predict_paths_for_bb): Prevent looping.
3087         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
3089 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
3091         * config/arm/arm.c (output_move_double): In one case properly
3092         count number of instructions that will be emitted.
3094 2012-02-10  Richard Guenther  <rguenther@suse.de>
3096         PR translation/52193
3097         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
3099 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
3101         PR middle-end/52140
3102         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
3104 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
3106         PR debug/52165
3107         * var-tracking.c (emit_note_insn_var_location): If
3108         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
3109         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
3110         non-NOTE_DURING_CALL_P insn.
3112 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
3114         PR middle-end/51867
3115         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
3117 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
3119         PR driver/48524
3120         * gcc.c (switch_matches) Support switches with separated form,
3121         -D and -U.
3123 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
3125         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
3126         (SP_ADDR): Ditto.
3127         (RAMPZ_ADDR): Ditto.
3128         * config/avr/avr.c (avr_addr_t): New typedef.
3129         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
3130         (avr_init_expanders): Initialize it.
3131         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
3132         SREG_ADDR.
3133         (expand_epilogue): Ditto.
3134         (avr_print_operand): Ditto.
3135         (avr_file_start): Ditto.
3136         (avr_emit_movmemhi): Ditto.
3138 2012-02-08  Richard Guenther  <rguenther@suse.de>
3140         PR tree-optimization/46886
3141         * tree-flow.h (do_while_loop_p): Declare.
3142         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
3143         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
3145 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
3147         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
3148         always succeed for integers larger than a native word.
3150 2012-02-08  Richard Guenther  <rguenther@suse.de>
3152         PR rtl-optimization/52170
3153         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
3154         properly handle integer vector modes.
3156 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
3158         PR gcov-profile/52150
3159         * coverage.c: Include target.h.
3160         (build_var): Call targetm.strip_name_encoding on the assembler name.
3161         Change one _ into . or $ if the target allows it.
3162         * Makefile.in (coverage.o): Depend on $(TARGET_H).
3164         PR rtl-optimization/52139
3165         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
3166         is a BARRIER after emit_insn_after_noloc, move BB_END
3167         to the last non-BARRIER insn before it.
3169 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
3171         PR middle-end/24306
3172         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
3173         (mips_gimplify_va_arg_expr): Call it instead of
3174         std_gimplify_va_arg_expr.
3176 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
3178         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
3179         message for -mno-pointers-to-nested-function.
3181 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
3183         PR middle-end/51994
3184         * expr.c (get_inner_reference): If there is an offset, add a negative
3185         bit position to it (if any).
3187 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
3189         PR rtl-optimization/52060
3190         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
3191         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
3192         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
3193         and/or i0src_copy2 when needed.
3195 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
3197         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
3198         or LTOPLUGINSONAME if have_c.
3200         * config/freebsd-spec.h: Add comment about what macros can be defined
3201         in this header.
3202         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
3203         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
3204         here instead.
3206 2012-02-07  Richard Guenther  <rguenther@suse.de>
3208         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
3209         newline in -alias dumps.
3211 2012-02-07  Kai Tietz  <ktietz@redhat.com>
3212             Dave Korn  <dave.korn.cygwin@gmail.com>
3214         PR target/40068
3215         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
3216         Take care that typinfo gets dllexport-attribute.
3218 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
3220         PR middle-end/52074
3221         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
3222         if modifier < EXPAND_SUM call force_operand on the result.
3224 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
3226         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
3227         adding __forwarder_dst__ prefix if a forwarder_section attribute is
3228         present.
3229         (epiphany_function_type): Replace types for specific interrupts with
3230         EPIPHANY_FUNCTION_INTERRUPT.
3231         (EPIPHANY_INTERRUPT_P): Update.
3232         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
3233         New static function.
3234         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
3235         <disinterrupt>: Affects type identity.
3236         (epiphany_handle_interrupt_attribute): Handle variable number of
3237         arguments.
3238         (epiphany_compute_function_type): Update for new
3239         epiphany_function_type definition.
3240         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
3241         handlers with a longcall forwarder.
3242         (epiphany_start_function): Handle multiple interrupt arguments and/or
3243         forwarder_section attribute.
3245         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
3246         libgloss.
3248 2012-02-07  Alan Modra  <amodra@gmail.com>
3250         PR target/52107
3251         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
3252         subregs of TFmode.
3254 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3256         PR tree-optimization/50969
3257         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
3258         use vec_perm rather than vector_stmt.
3259         (vect_model_load_cost): Likewise.
3260         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
3261         vec_perm to be the same as other vector statements.
3262         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
3263         cost of vec_perm for TARGET_VSX.
3265 2012-02-06  Richard Guenther  <rguenther@suse.de>
3267         PR tree-optimization/52115
3268         * tree-sra.c (access_has_replacements_p): New function.
3269         (sra_modify_assign): Use it to decide whether a use is uninitialized.
3271 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
3273         PR middle-end/52047
3274         * trans-mem.c (expand_call_tm): Add an assertion.
3275         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
3276         functions.
3278 2012-02-06  Richard Guenther  <rguenther@suse.de>
3280         PR tree-optimization/50955
3281         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
3282         raise cost of expressions that replace an address with an
3283         expression based on a different pointer.
3285 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
3287         PR target/52129
3288         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
3289         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
3291 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
3293         PR c++/48680
3294         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
3295         -Weffc++ and specify guidelines come from second edition.
3297 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
3299         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
3300         (sibcall_value_multiple_internal, call_split, call_internal_direct)
3301         (call_direct_split, call_value_split, call_value_internal_direct)
3302         (call_value_direct_split, call_value_multiple_split): Use jal and
3303         jal_macro attributes.
3305 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
3307         * reload1.c (reload_regs_reach_end_p): Replace with...
3308         (reload_reg_rtx_reaches_end_p): ...this function.
3309         (new_spill_reg_store): Update commentary.
3310         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
3311         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
3312         before setting new_spill_reg_store.
3313         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
3314         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
3315         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
3316         for non-spill reload registers.
3318 2012-02-05  Ira Rosen  <irar@il.ibm.com>
3320         PR tree-optimization/52091
3321         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
3322         (vect_is_simple_use_1): Likewise.
3323         * tree-vect-loop.c (vectorizable_reduction): Update calls
3324         to vect_is_simple_use_1 and vect_is_simple_use.
3325         (vectorizable_live_operation): Likewise.
3326         * tree-vect-patterns.c (widened_name_p,
3327         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
3328         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
3329         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
3330         vectorizable_shift,vectorizable_operation, vectorizable_store,
3331         vectorizable_load): Likewise.
3332         (vect_is_simple_cond): Add an argument, pass it to
3333         vect_is_simple_use_1.
3334         (vectorizable_condition): Update calls to vect_is_simple_cond,
3335         vect_is_simple_use.
3336         (vect_is_simple_use): Add an argument, the statement in which
3337         OPERAND is used.  Check that if OPERAND's def stmt is a double
3338         reduction phi node, the use is a phi node too.
3339         (vect_is_simple_use_1): Add an argument, pass it to
3340         vect_is_simple_use.
3341         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
3342         to vect_is_simple_use.
3344 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
3346         PR rtl-optimization/52095
3347         * modulo-sched.c (dump_insn_locator): New function.
3348         (loop_canon_p, sms_schedule): Use it.
3350         PR rtl-optimization/52113
3351         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
3352         even for decomposable shift/zext insns.
3354 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
3355             Zdenek Dvorak  <ook@ucw.cz>
3357         PR rtl-optimization/52092
3358         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
3359         on get_iv_value result.
3361 2012-02-02  Andrew Pinski  <apinski@cavium.com>
3363         PR middle-end/47982
3364         PR middle-end/43967
3365         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
3367 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
3369         PR middle-end/48071
3370         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
3372 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
3374         PR rtl-optimization/49800
3375         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
3376         (sched_finish): Call regstat_free_n_sets_and_refs.
3378 2012-02-02  Jia Liu  <proljc@gmail.com>
3380         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
3381         than operand 2.
3383 2012-02-02  Jan Hubicka  <jh@suse.cz>
3384             Tom de Vries  <tom@codesourcery.com>
3386         PR middle-end/51998
3387         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
3388         * varpool.c (varpool_analyze_pending_decls): Likewise.
3390 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
3391             Jayant R Sonar <jayant.sonar@kpitcummins.com>
3393         * config.gcc: Add cr16-* support.
3395         * doc/extend.texi: Document cr16 extensions.
3396         * doc/install.texi: Document cr16 install.
3397         * doc/invoke.texi: Document cr16 options.
3398         * doc/md.texi: Document cr16 constraints.
3400         * common/config/cr16/cr16-common.c: New file.
3401         * config/cr16/cr16.c: New file.
3402         * config/cr16/cr16.h: New file.
3403         * config/cr16/cr16.md: New file.
3404         * config/cr16/cr16.opt: New file.
3405         * config/cr16/cr16-protos.h: New file.
3406         * config/cr16/predicates.md: New file.
3407         * config/cr16/constraints.md: New file.
3408         * config/cr16/t-cr16: New file.
3410 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
3412         PR target/52086
3413         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
3414         that operands[2] is either immediate, or q_regs_operand.
3416         PR tree-optimization/52073
3417         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
3418         a pattern stmt for pattern uses, ignore uses outside of the loop.
3420 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
3422         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
3423         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
3424         (OUT_AS1, OUT_AS2): Remove.
3426 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
3428         PR rtl-optimization/51374
3429         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
3430         to cross other volatile_refs_p insns.
3432 2012-02-01  Richard Guenther  <rguenther@suse.de>
3434         * doc/invoke.texi (fno-inline): Clarify documentation.
3435         (finline-small-functions): Likewise.
3436         (finline-functions): Likewise.
3437         * common.opt (finline): Adjust comment and documentation.
3438         (finline-small-functions): Clarify documentation.
3439         (finline-functions): Likewise.
3440         (finline-functions-called-once): Likewise.
3442 2012-02-01  Tristan Gingold  <gingold@adacore.com>
3444         * c-typeck.c (composite_type): Keep mode for pointers.
3446 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
3448         * function.h (regno_reg_rtx): Adjust comment.
3449         * reginfo.c (init_reg_modes_target): Only use the previous mode
3450         if it fits within one register.  Remove MIPS comment.
3452 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
3454         PR bootstrap/52058
3455         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
3457 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3459         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
3460         to srak instruction.
3462 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3464         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
3466 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
3468         PR bootstrap/52041
3469         PR bootstrap/52039
3470         PR target/51974
3471         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
3473 2012-01-31  Richard Guenther  <rguenther@suse.de>
3475         PR tree-optimization/51528
3476         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
3477         assigns.
3479 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
3481         PR bootstrap/52041
3482         PR bootstrap/52039
3483         PR target/51974
3484         * ree.c (add_removable_extension): Change def_map argument
3485         to unsigned *, store in def_map 1 + offset into *insn_list vector
3486         instead of pointers into the vector.
3487         (find_removable_extensions): Adjust caller.
3489 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
3491         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
3492         Transform all "* quoted-c-code" to { c-code }.
3493         Remove redundant test for "optimize" in combine patterns.
3494         Move (include "avr-dimode.md") to end of file.
3496 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
3498         PR target/51835
3499         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
3500         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
3502 2012-01-30  Richard Guenther  <rguenther@suse.de>
3504         PR tree-optimization/52028
3505         * tree-loop-distribution.c (ldist_gen): Properly update
3506         virtual SSA form.
3508 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
3510         PR debug/52027
3511         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
3512         set_cur_line_info_table if not emitting debug info.
3514         PR tree-optimization/52046
3515         * tree-vect-patterns.c (check_bool_pattern): Give up if
3516         a comparison could throw.
3518         PR debug/52048
3519         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
3521 2012-01-30  Richard Guenther  <rguenther@suse.de>
3523         PR tree-optimization/52045
3524         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
3525         SSA form if cfgcleanup did anything.
3527 2012-01-30  Richard Guenther  <rguenther@suse.de>
3529         PR tree-optimization/52045
3530         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
3531         before computing final todo.
3533 2012-01-30  Richard Guenther  <rguenther@suse.de>
3535         PR tree-optimization/51528
3536         * tree-sra.c (sra_modify_assign): Re-factor in preparation
3537         for PR51528 fix.
3539 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
3541         * df-problems.c (df_kill_notes): Check that the use refers
3542         to the note under examination.
3544 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
3546         PR target/51920
3547         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
3548         parameter and use short-lived pseudos.
3549         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
3550         (sparc_expand_vector_init): Const-ify local variables and adjust
3551         calls to above functions.
3553 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
3555         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
3557 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
3559         * doc/invoke.texi: Make usage of "compile time" and
3560         "run time"/"runtime" consistent throughout the file.
3562 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
3564         * config/alpha/alpha.c (alpha_option_override): Default to
3565         full IEEE compliance mode for Go language.
3567 2011-01-29  Tijl Coosemans  <tijl@coosemans.org>
3569         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
3570         (LINK_SSP_SPEC): Define.
3572 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3574         PR target/51871
3575         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
3576         stubs.
3578 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
3580         * doc/invoke.texi: Correct hyphenation of "floating point",
3581         "double precision", and related terminology throughout the file.
3583 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
3585         PR target/52006
3586         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
3587         arm_general_register_operand predicate for operand 2 instead of
3588         register_operand.
3590 2012-01-27  Ian Lance Taylor  <iant@google.com>
3592         PR go/47656
3593         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
3594         * builtins.c (expand_builtin_init_trampoline): Add onstack
3595         parameter.  Change caller.
3596         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
3597         * tree.c (build_common_builtin_nodes): Declare
3598         __builtin_init_heap_trampoline.
3600 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
3602         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
3603         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
3604         * config/avr/avr.c: Ditto.
3605         (avr_regnames): Remove because unused.
3606         * config/avr/avr.md (*cpse.ne): New peephole.
3607         (*cpse.eq): New peephole from former cpse peepholes.
3609 2012-01-27  Michael Eager  <eager@eagercon.com>
3611         * config/microblaze.c (microblaze_emit_compare): Correct
3612         test after pcmp instruction.
3614 2012-01-27  Richard Guenther  <rguenther@suse.de>
3616         PR tree-optimization/52020
3617         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
3619 2012-01-27  Richard Guenther  <rguenther@suse.de>
3621         * ipa-pure-const.c (check_stmt): Clobbers do not make a
3622         function non-const/pure.
3624 2012-01-27  Richard Guenther  <rguenther@suse.de>
3626         PR tree-optimization/50444
3627         * tree-sra.c (build_ref_for_offset): Properly adjust the
3628         MEM_REF type for unaligned accesses.
3630 2012-01-27  Richard Guenther  <rguenther@suse.de>
3632         PR tree-optimization/50444
3633         * expr.c (mem_ref_refers_to_non_mem_p): New function.
3634         (expand_assignment): Use it.  Properly handle misaligned
3635         bases when expanding stores to component references.
3636         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
3637         refactor that case.
3639 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
3641         PR middle-end/51389
3642         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
3643         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
3644         * tree-data-ref.c (find_data_references_in_loop): Make static.
3645         (compute_all_dependences): Change return type to bool.  Bail out
3646         for too many datarefs in a loop.  Move the hunk resetting the data
3647         dependences vector from ...
3648         (compute_data_dependences_for_loop): ... here.  Account for
3649         compute_all_dependences returning false.
3650         (compute_data_dependences_for_bb): Likewise.
3651         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
3652         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
3654 2012-01-27  Richard Guenther  <rguenther@suse.de>
3656         PR middle-end/51959
3657         * expr.c (store_field): Use the alias-set of the scratch memory
3658         for storing to it.
3660 2012-01-27  Tom de Vries  <tom@codesourcery.com>
3662         PR tree-optimization/51990
3663         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3664         WITH_SIZE_EXPR.
3665         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
3667 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
3669         PR debug/52001
3670         * var-tracking.c (reverse_op): Don't add any reverse operation
3671         if V already has any constant locations.
3673 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
3675         * doc/invoke.texi: Correct usage of "command line" (noun)
3676         vs "command-line" (adjective) throughout.
3678 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
3680         * doc/invoke.texi (Language Independent Options): Move
3681         -Wcoverage-mismatch blurb from here....
3682         (Warning Options): ...to here.
3684 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
3686         * config/rs6000/rs6000.c (rs6000_option_override_internal):
3687         Set rs6000_always_hint to false for 476.
3689 2012-01-27  Matthias Klose  <doko@ubuntu.com>
3691         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
3692           system root.
3693         * incpath.c (add_standard_paths): Likewise.
3695 2012-01-27  Richard Henderson  <rth@redhat.com>
3697         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
3698         * config/m68k/sync.md (atomic_test_and_set): Rename from
3699         sync_test_and_setqi and adjust the operands.
3700         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
3701         and unconditionally enable.
3703 2012-01-27  Richard Henderson  <rth@redhat.com>
3705         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
3706         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
3707         (ldstub): Rename from ldstubqi.
3708         (ldstub<I24MODE>): Remove.
3710 2012-01-27  Richard Henderson  <rth@redhat.com>
3712         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
3713         * c-cppbuiltin.c (cpp_atomic_builtins): Define
3714         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
3715         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
3716         * doc/tm.texi: Rebuild.
3718 2012-01-27  Richard Henderson  <rth@redhat.com>
3720         * optabs.c (gen_atomic_test_and_set): Remove default.
3721         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
3723 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
3725         PR rtl-optimization/51978
3726         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
3727         (combine_reaching_defs): Likewise.
3728         (struct re_info): Remove.
3729         (add_removable_extension): Remove x and data arguments,
3730         add insn, insn_list and def_map.  Use the arguments directly
3731         instead of using struct re_info.
3732         (find_removable_extensions): Don't call add_removable_extension
3733         through note_stores, instead just call it with single_set
3734         result if non-NULL.
3735         (find_and_remove_re): Pass curr_cand->expr instead of
3736         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
3738 2012-01-26  Michael Matz  <matz@suse.de>
3740         PR tree-optimization/46590
3741         * cfgexpand.c: Revert last change (r183305).
3742         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
3743         regs.
3744         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
3745         checking for emptiness.
3747 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
3749         PR middle-end/51895
3750         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
3751         non-addressable non-BLKmode base correctly.
3753 2012-01-26  Michael Matz  <matz@suse.de>
3755         PR tree-optimization/48794
3756         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
3757         regions referenced from RESX/EH_DISPATCH.
3759 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3761         * config/s390/s390.h: Make BRANCH_COST an option.
3762         * config/s390/s390.opt: New option -mbranch-cost.
3764 2012-01-26  Richard Henderson  <rth@redhat.com>
3766         Revert 2012-01-24 change:
3767         * trans-mem.c (requires_barrier): Do not instrument thread local
3768         variables and emit save/restore for them.
3770 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
3772         PR middle-end/51986
3773         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
3774         for pat == 0.
3776 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
3778         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
3779         ASM_OPERANDS.
3781 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
3783         PR target/49868
3784         Rename __pgm to __flash.
3785         Rename __pgm1 to __flash1.
3786         Rename __pgm2 to __flash2.
3787         Rename __pgm3 to __flash3.
3788         Rename __pgm4 to __flash4.
3789         Rename __pgm5 to __flash5.
3790         Rename __pgmx to __memx.
3791         * doc/extend.texi (AVR Named Address Spaces)
3792         Rename address space names as indicated above.
3793         * config/avr/avr.c (avr_addrspace): Ditto.
3795         * config/avr/avr-protos.h
3796         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
3797         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
3798         * config/avr/predicates.md: Ditto.
3799         * config/avr/avr.c Ditto, and
3800         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
3801         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
3803         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
3804         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
3805         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
3806         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
3807         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
3808         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
3809         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
3810         * config/avr/avr.c: Ditto.
3811         * config/avr/avr.md: Ditto.
3813 2012-01-25  Jason Merrill  <jason@redhat.com>
3815         PR c++/51992
3816         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
3818 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
3820         PR tree-optimization/51987
3821         * tree-data-ref.c (get_references_in_stmt): Handle references in
3822         non-volatile GIMPLE_ASM.
3824 2012-01-25  Richard Guenther  <rguenther@suse.de>
3826         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
3827         bases are dereferenced.
3829 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
3831         PR rtl-optimization/48374
3832         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
3834 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
3836         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
3837         compute_data_dependences_for_loop returns false.
3838         * tree-parloops.c (loop_parallel_p): Likewise.
3840 2012-01-25  Richard Guenther  <rguenther@suse.de>
3842         * tree.h (get_pointer_alignment_1): Declare.
3843         * builtins.c (get_pointer_alignment_1): New function.
3844         (get_pointer_alignment): Use it.
3846 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3848         PR rtl-optimization/48308
3849         * combine.c (enum undo_kind): Add UNDO_LINKS.
3850         (struct undo): Add member l to other_contents and where.
3851         (do_SUBST_LINK): New.
3852         (SUBST_LINK): New.
3853         (try_combine): Handle LOG_LINKS for the dummy i1 case.
3854         (undo_all): Handle UNDO_LINKS.
3856 2012-01-25  Richard Henderson  <rth@redhat.com>
3858         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
3859         mem inputs.
3861 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
3863         * optabs.c (gen_atomic_test_and_set): Use each argument.
3865 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
3867         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
3868         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
3869         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
3870         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
3871         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
3872         TARGET_PAIRED_SINGLE_FLOAT.
3874 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
3876         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
3877         (in_struct, return_val): Remove MEM documentation.
3878         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
3879         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
3880         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
3881         and MEM_SCALAR.
3882         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3883         * cfgexpand.c (add_alias_set_conflicts): Likewise.
3884         * expr.c (store_field): Likewise.
3885         * function.c (assign_stack_temp_for_type): Likewise.
3886         * ifcvt.c (noce_try_cmove_arith): Likewise.
3887         * reload1.c (reload): Likewise.
3888         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
3889         (alpha_set_memflags): Likewise.
3890         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
3892 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
3894         * rtl.h (true_dependence, canon_true_dependence): Remove varies
3895         parameter.
3896         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
3897         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
3898         (true_dependence_1, true_dependence, canon_true_dependence): Remove
3899         varies parameter.
3900         * cselib.c (cselib_rtx_varies_p): Delete.
3901         (cselib_invalidate_mem): Update call to canon_true_dependence.
3902         * dse.c (record_store, check_mem_read_rtx): Likewise.
3903         (scan_reads_nospill): Likewise.
3904         * cse.c (check_dependence): Likewise.
3905         (cse_rtx_varies_p): Delete.
3906         * expr.c (safe_from_p): Update call to true_dependence.
3907         * ira.c (validate_equiv_mem_from_store): Likewise.
3908         (memref_referenced_p): Likewise.
3909         * postreload-gcse.c (find_mem_conflicts): Likewise.
3910         * sched-deps.c (sched_analyze_2): Likewise.
3911         * store-motion.c (load_kills_store): Likewise.
3912         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
3913         * gcse.c (mems_conflict_for_gcse_p): Likewise.
3914         (compute_transp): Update call to canon_true_dependence.
3916 2012-01-25  Richard Henderson  <rth@redhat.com>
3918         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
3919         (maybe_emit_atomic_test_and_set): New.
3920         (expand_sync_lock_test_and_set): Use it.
3921         (expand_atomic_test_and_set): Likewise.
3922         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
3923         the implementation; clarify implementation defined details.
3924         * doc/md.texi (atomic_test_and_set): Document.
3926 2012-01-25  Richard Henderson  <rth@redhat.com>
3928         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
3930 2012-01-25  Richard Henderson  <rth@redhat.com>
3932         PR target/51968
3933         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
3934         to effect no-op split.
3936 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
3938         PR lto/51698
3939         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
3940         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
3941         (BT_FN_VOID_PTR_INT_SIZE): New.
3942         (BT_FN_UINT_UINT_VAR): Remove.
3943         (BT_FN_UINT32_UINT32_VAR): New.
3944         (BT_FN_DOUBLE_VPTR): Remove.
3945         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
3947         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
3948         (_ITM_changeTransactionMode): Same.
3949         (_ITM_memmoveRtWt): Change return type to void.
3950         (_ITM_memcpyRtWt): Same.
3951         (_ITM_memsetW): Same.
3952         (_ITM_RaRD): Change types to double.
3953         (_ITM_RD): Same.
3954         (_ITM_RaWD): Same.
3955         (_ITM_RfWD): Same.
3957         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
3959 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
3960             Patrick Marlier  <patrick.marlier@gmail.com>
3962         * trans-mem.c (requires_barrier): Do not instrument thread local
3963         variables and emit save/restore for them.
3965 2012-01-24  Jason Merrill  <jason@redhat.com>
3967         PR c++/51812
3968         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
3969         output static aliases.
3971 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
3973         PR driver/47249
3974         * common.opt (-pie, -shared, pie, shared): Change from Common to
3975         Driver.
3976         * gcc.c (display_help): Display help for -pie and -shared.
3978 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
3980         PR target/49868
3981         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
3982         Remove note on size/offset limitation.
3983         (AVR Variable Attributes): Add example how to read data located
3984         with progmem.  Refer to named address spaces.
3985         * doc/invoke.texi (AVR Options): Fix typo.
3987 2012-01-24  Richard Guenther  <rguenther@suse.de>
3989         Forward-port to trunk
3990         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
3992         PR middle-end/45678
3993         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
3994         op0 isn't sufficiently aligned and there is movmisalignM
3995         insn for mode, use it to load op0 into a temporary register.
3997 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
3999         PR target/51957
4000         * target.def (const_not_ok_for_debug_p): New hook.
4001         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
4002         documentation.
4003         * doc/tm.texi: Regenerated.
4004         * dwarf2out.c (const_ok_for_output_1): If
4005         targetm.const_not_ok_for_debug_p returns true, fail.
4006         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
4007         function.
4008         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
4010 2012-01-23  Kai Tietz  <ktietz@redhat.com>
4012         PR target/51900
4013         * config/i386/predicates.md (symbolic_operand): Allow
4014         UNSPEC_PCREL as PIC expression for lea.
4015         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
4016         * config/i386/i386.c (ix86_delegitimize_address): Handle
4017         UNSPEC_PCREL for none-MEM, too.
4019 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
4021         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
4022         (ipa_tm_create_version_alias): Same.
4024 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
4026         PR libitm/51830
4027         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
4028         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
4030 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
4031             Patrick Marlier  <patrick.marlier@gmail.com>
4032             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
4034         PR lto/51916
4035         * lto-wrapper.c (run_gcc): Pass the LTO section name to
4036         simple_object_start_read.
4038 2012-01-23  Richard Guenther  <rguenther@suse.de>
4041         PR tree-optimization/51895
4042         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
4043         parameter decomposition into BLKmode components.
4045 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
4047         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
4048         fake variables for restrict-qualified pointers whose pointed-to type
4049         contains a placeholder.
4051 2012-01-23  Richard Guenther  <rguenther@suse.de>
4053         PR tree-optimization/51949
4054         * ipa-split.c (execute_split_functions): Do not split malloc functions.
4056 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
4058         PR rtl-optimization/51933
4059         * ree.c (transform_ifelse): Return true right away if dstreg is
4060         already wider or equal to cand->mode.
4061         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
4062         (make_defs_and_copies_lists): Remove defs_list and copies_list
4063         arguments, add state argument, just truncate state->work_list
4064         instead of always allocating and freeing the vector.  Assert that
4065         get_defs succeeds instead of returning 2.  Changed return type to bool.
4066         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
4067         have ext_src_mode, see if it has been modified already with the
4068         right kind of extension and has been extended before from the
4069         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
4070         just return true.  Remember the original mode in state->modified array.
4071         (combine_reaching_defs): Add state argument.  Don't allocate and
4072         free here def_list, copied_list and vec vectors, instead just
4073         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
4074         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
4075         Add state variable, clear vectors in it, initialize state.modified
4076         if needed.  Free all the vectors at the end and state.modified too.
4077         Don't skip a candidate if the extension expression has been modified.
4079 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
4081         PR target/47096
4082         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
4083          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
4084         (extra_options) interix.opt -> i386/interix.opt"
4085         (extra_objs):Add winnt-stubs.o
4086         * configure.ac: Add interix to target_os .comm on PE check.
4087         * configure: Regenerate.
4088         * config/interix3.h: Delete and move bits to..
4089         * config/interix.h: Delete and move bits to..
4090         * config/i386/i386-interix3.h: Delete and move bits to..
4091         * config/i386/i386-interix.h: ..here.
4092         (TARGET_CPU_DEFAULT): Remove redefinition.
4093         (TARGET_ASM_CONSTRUCTOR): Undefine.
4094         (SUBTARGET_SWITCHES): Define for ms-bitfields.
4095         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
4096         (PTRDIFF_TYPE): Define.
4097         (LONG_DOUBLE_TYPE_SIZE): Define.
4098         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
4099         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4100         (TARGET_SECTION_TYPE_FLAGS): Define.
4101         (ASM_DECLARE_FUNCTION_NAME): Define.
4102         (ASM_OUTPUT_EXTERNAL): Define.
4103         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
4104         (ASM_OUTPUT_ALIGNED_BSS): Define.
4105         (PCC_BITFIELD_TYPE_MATTERS): Define.
4106         (USE_CONST_SECTION): Define.
4107         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
4108         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
4109         (SUPPORTS_ONE_ONLY): Remove.
4110         (I386_PE_STRIP_ENCODING): Define.
4111         * config/interix.opt: Delete and move bits to..
4112         * config/i386/interix.opt: ..here. New.
4113         (mpe-aligned-commons): Add.
4114         * config/i386/t-interix: Add copyright header.
4115         (winnt-stubs.o): Add rule.
4117 2012-01-22  Jason Merrill  <jason@redhat.com>
4119         PR c++/51832
4120         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
4121         for extra name aliases.
4123 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
4125         PR rtl-optimization/51924
4126         * ree.c (combine_set_extension): Improve debugging message.
4127         (combine_reaching_defs): Likewise.
4128         (get_defs): Rename confusingly named variable.
4129         (find_and_remove_re): Skip a candidate if the extension expression has
4130         been modified.
4132 2012-01-21  Robert Millan  <rmh@gnu.org>
4133             Gerald Pfeifer  <gerald@pfeifer.com>
4135         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
4136         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
4138 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
4140         PR tree-optimization/51914
4141         * tree-vect-stmts.c (vectorizable_conversion): For
4142         cvt_type && modifier == WIDEN, put temporary with cvt_type
4143         at the beginning of vec_dsts and set vec_dest to temporary
4144         with vectype_out.
4146 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
4148         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
4150 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
4152         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
4153         * config/rs6000/rs6000.c: Likewise.
4155 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
4157         PR target/51915
4158         * config/arm/arm.c (arm_count_output_move_double_insns): Call
4159         output_move_double on a copy of operands array.
4161 2012-01-20  Cary Coutant  <ccoutant@google.com>
4162             Dodji Seketeli  <dodji@redhat.com>
4164         PR debug/45682
4165         * dwarf2out.c (copy_declaration_context): Return ref to parent
4166         of declaration DIE, if necessary.
4167         (remove_child_or_replace_with_skeleton): Add new parameter; update
4168         caller.  Place skeleton DIE under parent DIE of original declaration.
4169         Move call to copy_declaration_context to here ...
4170         (break_out_comdat_types): ... from here.
4172 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4174         PR rtl-optimization/51856
4175         * reload.c (find_reloads_subreg_address): Set the address_reloaded
4176         flag to reloaded.
4178 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4180         PR target/51819
4181         * config/arm/arm.c (arm_print_operand): Correct output of alignment
4182         hints for neon loads and stores.
4184 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
4186         PR target/49868
4187         PR target/50887
4188         * doc/extend.texi (Named Address Spaces): Split into subsections.
4189         (AVR Named Address Spaces): New subsection.
4190         (M32C Named Address Spaces): New subsection.
4191         (RL78 Named Address Spaces): New subsection.
4192         (SPU Named Address Spaces): New subsection.
4193         (Variable Attributes): New anchor "AVR Variable Attributes".
4194         (AVR Variable Attributes): Rewrite and avoid wording
4195         "address space" in this context.
4196         * doc/invoke.texi (AVR Options): Rewrite and add documentation
4197         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
4198         (AVR Built-in Macros): New subsubsection therein.
4199         * doc/md.texi (AVR constraints): Remove "C04", "R".
4201 2012-01-20  Richard Guenther  <rguenther@suse.de>
4203         PR tree-optimization/51903
4204         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
4205         when removing stmts.
4207 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4209         PR target/50313
4210         * config/arm/arm.c (arm_load_pic_register): Use
4211         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
4212         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
4213         (arm_pic_static_addr): Likewise.
4214         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
4215         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
4216         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
4217         (pic_load_addr_unified): New.
4219 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
4221         PR target/51106
4222         * function.c (instantiate_virtual_regs_in_insn): Use
4223         delete_insn_and_edges when removing a wrong asm insn.
4225 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
4227         PR rtl-optimization/40761
4228         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
4229         Add new member loop_num.
4230         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
4231         (ira_build): Remove the parameter.
4233         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
4234         (ira.c): Do not build CFG loops for one region allocation.  Remove
4235         argument from ira_build call.
4237         * ira-build.c (init_loop_tree_node): New function.
4238         (create_loop_tree_nodes): Use it.  Separate the case when CFG
4239         loops are not built.
4240         (more_one_region_p): Check current_loops.
4241         (finish_loop_tree_nodes): Separate the case when CFG loops are not
4242         built.
4243         (add_loop_to_tree): Process loop equal to NULL too.
4244         (form_loop_tree): Separate the case when CFG loops are not built.
4245         Use explicitly number for the root.
4246         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
4247         an assertion.
4248         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
4249         instead of loop->num.
4250         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
4251         (mark_all_loops_for_removal): Ditto.
4252         (remove_unnecessary_regions): Separate the case when CFG loops
4253         are not built.
4254         (ira_build): Remove the parameter.  Use explicit number of regions
4255         when CFG loops are not built.
4257         * ira-color.c (print_loop_title): Separate the case for the root node.
4258         Use loop_num instead of loop->num.
4259         (move_spill_restore): Use loop_num instead of loop->num.
4261         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
4262         (change_loop): Ditto.
4263         (change_loop): Use loop_num instead of loop->num.
4265         * ira-lives.c (process_bb_node_lives): Ditto.
4267         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
4269         * ira-conflicts.c (print_allocno_conflicts): Ditto.
4271 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
4273         PR libmudflap/40778
4274         * tree-mudflap.c (mf_artificial): New function.
4275         (execute_mudflap_function_ops, execute_mudflap_function_decls,
4276         mx_register_decls, mudflap_enqueue_decl): Use it.
4278         PR target/51876
4279         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
4280         numbers in the insn pattern.
4282 2012-01-19  Michael Matz  <matz@suse.de>
4284         PR tree-optimization/46590
4285         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
4286         use it in remembering which conflicts we already created.
4287         (add_scope_conflicts): Adjust call to above, (de)allocate helper
4288         bitmap.
4290 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
4292         PR lto/51280
4293         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
4294         (merge_and_complain): Same.
4296 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
4298         PR bootstrap/50237
4299         * config/initfini-array.h: Guard content of the header
4300         with #ifdef HAVE_INITFINI_ARRAY.
4301         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
4302         Add initfini-array.h to tm_file here.
4303         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
4304         * config.gcc: Don't add initfini-array.h to tm_file here.
4305         * configure: Regenerated.
4307 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
4309         PR rtl-optimization/51505
4310         * df-problems.c (df_kill_notes): New parameter live. Update comment.
4311         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
4312         (df_note_bb_compute): Update the call to df_kill_notes.
4314 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
4316         * trans-mem.c (requires_barrier): Remove call to is_global_var.
4318 2012-01-18  Richard Guenther  <rguenther@suse.de>
4320         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
4321         of conversions to void *.
4323 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4324             Richard Sandiford  <rdsandiford@googlemail.com>
4326         PR middle-end/50325
4327         PR middle-end/51192
4328         * optabs.h (simplify_expand_binop): Declare.
4329         * optabs.c (simplify_expand_binop): Make global.
4330         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
4331         endian targets if the source cannot be exactly covered by word
4332         mode chunks.
4334 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
4336         PR bootstrap/51872
4337         * hard-reg-set.h (struct hard_reg_set_container): New type.
4338         * target.h (struct hard_reg_set_container): Forward declare.
4339         * target.def (set_up_by_prologue): New target hook.
4340         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
4341         * doc/tm.texi: Regenerated.
4342         * function.c (thread_prologue_and_epilogue_insns): Change
4343         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
4344         Call targetm.set_up_by_prologue on it.
4345         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
4346         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
4348 2012-01-17  Nick Clifton  <nickc@redhat.com>
4350         * config/rx/rx.c (rx_can_use_simple_return): New function.
4351         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
4352         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
4354 2012-01-17  Richard Guenther  <rguenther@suse.de>
4356         PR middle-end/51782
4357         * expr.c (expand_assignment): Take address-space information
4358         from the address operand of MEM_REF and TARGET_MEM_REF.
4359         (expand_expr_real_1): Likewise.
4361 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4363         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
4364         reload dump is requested.
4366 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
4368         PR other/51165
4369         * trans-mem.c (requires_barrier): Call may_be_aliased.
4371 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
4373         PR tree-optimization/51877
4374         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
4375         call arguments and fndecls compare equal, instead return false if they
4376         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
4377         both SSA_NAMEs that are valueized the same, or they satisfy
4378         operand_equal_p.
4380 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4382         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
4383         Solaris 11+.
4384         * configure: Regenerate.
4386 2012-01-16  Jan Hubicka  <jh@suse.cz>
4388         PR c/12245
4389         PR c++/14179
4390         * convert.c (convert_to_integer): Use fold_convert for
4391         converting an INTEGER_CST to integer type.
4393 2012-01-16  Jason Merrill  <jason@redhat.com>
4395         PR c++/14179
4396         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
4398 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
4400         PR bootstrap/51860
4401         * config/s390/s390.c (s390_chunkify_start): Don't skip
4402         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
4403         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
4404         If insn is followed by NOTE_INSN_VAR_LOCATION or
4405         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
4406         Don't use location of note insns.
4408         PR tree-optimization/51865
4409         * tree-inline.c (tree_function_versioning): Call remap_decl
4410         on DECL_RESULT whenever it has VOID_TYPE_P type.
4412 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
4414         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
4415         for calls to locally-binding MIPS16 functions if only the return
4416         type uses float regs.
4418 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
4419             Richard Sandiford  <rdsandiford@googlemail.com>
4421         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
4422         (SYMBOL_32_HIGH): Likewise.
4423         (mips_output_tls_reloc_directive): Declare.
4424         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
4425         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
4426         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
4427         (mips_lo_relocs, mips_hi_relocs): Make extern.
4428         (mips16_stub_function): Move up file.
4429         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
4430         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
4431         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
4432         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
4433         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
4434         (mips_get_tp): Add MIPS16 support.
4435         (mips_legitimize_tls_address): Remove MIPS16 sorry().
4436         Generalize DTPREL and TPREL handling.
4437         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
4438         Add MIPS16 TLS support.
4439         (mips_output_tls_reloc_directive): New function.
4440         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
4441         * config/mips/predicates.md (symbolic_operand_with_high)
4442         (tls_reloc_operand): New predicates.
4443         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
4444         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
4445         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
4446         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
4447         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
4448         (*tls_get_tp_mips16_call_<mode>): Likewise.
4450 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
4452         PR rtl-optimization/51821
4453         * recog.c (peep2_find_free_register): Determine clobbered registers
4454         from insn pattern.
4456 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
4458         PR target/50925
4459         * config/avr/avr-protos.h: Revert change of 2012-01-09.
4460         * config/avr/avr.c: Likewise.
4461         * config/avr/avr.h: Likewise.
4463 2012-01-13  Ian Lance Taylor  <iant@google.com>
4465         PR c++/50012
4466         * tree.h (TYPE_QUALS): Add cast to int.
4467         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
4469 2012-01-13  Ian Lance Taylor  <iant@google.com>
4471         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
4472         comparing param_index to VEC_length result.
4474 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
4476         * c-decl.c: Do not include tree-mudflap.h
4477         * tree-optimize.c: Likewise.
4478         * Makefile.in: Update dependencies.
4480 2012-01-13  Richard Guenther  <rguenther@suse.de>
4482         PR middle-end/8081
4483         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
4484         variable-sized result always use RSO.
4486 2012-01-12  DJ Delorie  <dj@redhat.com>
4488         * cfgexpand.c (convert_debug_memory_address): Allow any valid
4489         pointer type, not just the default pointer type.
4491 2012-01-09  Richard Henderson  <rth@redhat.com>
4492             Denis Chertykov  <chertykov@gmail.com>
4494         PR target/50925
4495         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
4496         * config/avr/avr.c (avr_can_eliminate): Simplify.
4497         (avr_initial_elimination_offset): Likewise.
4498         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
4499         (expand_epilogue): Likewise.
4500         (avr_legitimize_address): Gut.
4501         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
4502         (avr_hard_regno_nregs): New.
4503         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
4504         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
4505         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
4506         add soft frame pointer.
4507         (CALL_USED_REGISTERS): Likewise.
4508         (REG_CLASS_CONTENTS): Likewise.
4509         (REGISTER_NAMES): Likewise.
4510         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
4511         (HARD_FRAME_POINTER_REGNUM): New.
4512         (FRAME_POINTER_REGNUM): Use soft frame pointer.
4513         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
4514         remove the HARD_FRAME_POINTER self-elimination.
4516 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
4518         PR target/51756
4519         * config/avr/avr.c (avr_encode_section_info): Test for absence of
4520         DECL_EXTERNAL when checking for initializers of progmem variables.
4522 2012-01-12  Ira Rosen  <irar@il.ibm.com>
4524         PR tree-optimization/51799
4525         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
4526         that the last operation is a type demotion.
4528 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
4530         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
4531         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
4533 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
4535         PR bootstrap/51796
4536         * combine.c (distribute_notes): If i3 is a noreturn call,
4537         allow old_size to be equal to args_size and make sure the
4538         noreturn call gets REG_ARGS_SIZE note.
4539         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
4540         on noreturn calls even when the delta is 0.
4542 2012-01-11  Nathan Sidwell  <nathan@acm.org>
4544         * gcov.c (STRING_SIZE): Remove.
4545         (generate_results): Erase annotations for source files with no
4546         coverage information.
4547         (read_line): New.
4548         (output_lines): Use it.
4550 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
4552         * gimple.h (gimplify_body): Remove first argument.
4553         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
4554         pointer set here, instead just pass DATA to walk_tree.
4555         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
4556         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
4557         (unvisit_body): Likewise, but with unmark_visited.
4558         (gimplify_body): Remove BODY_P argument and adjust.
4559         (gimplify_function_tree): Adjust call to gimplify_body.
4560         * omp-low.c (finalize_task_copyfn): Likewise.
4562 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
4564         * tree.h (build_function_decl_skip_args): Add boolean parameter.
4565         (build_function_type_skip_args): Delete.
4566         * tree.c (build_function_type_skip_args): Make static and add
4567         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
4568         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
4569         pass it to build_function_type_skip_args.
4570         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
4571         (tree_function_versioning): Likewise.
4572         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
4573         build_function_decl_skip_args.
4574         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
4575         and pass it to build_function_decl_skip_args/tree_function_versioning.
4576         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
4577         * ipa-inline-transform.c (save_inline_function_body): Likewise.
4578         * trans-mem.c (ipa_tm_create_version): Likewise.
4579         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
4580         * tree-inline.c (declare_return_variable): Remove always-true test.
4581         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
4582         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
4583         * ipa-split.c (split_function): Skip the return value for the split
4584         part if it doesn't return.
4586 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4588         PR tree-optimization/49642
4589         * ipa-split.c (forbidden_dominators): New variable.
4590         (check_forbidden_calls): New function.
4591         (dominated_by_forbidden): Likewise.
4592         (consider_split): Check for forbidden dominators.
4593         (execute_split_functions): Initialize and free forbidden
4594         dominators info; call check_forbidden_calls.
4596 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4598         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
4600 2012-01-11  Nick Clifton  <nickc@redhat.com>
4602         * config/rx/rx.md (return): Define pattern.
4604 2012-01-11  Richard Guenther  <rguenther@suse.de>
4606         * doc/extend.texi (malloc attribute): Adjust according to
4607         implementation.
4609 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
4610             Patrick Marlier  <patrick.marlier@gmail.com>
4612         PR middle-end/51516
4613         * trans-mem.c (get_cg_data): Traverse aliases if requested.
4614         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
4615         (ipa_tm_note_irrevocable): Same.
4616         (ipa_tm_scan_irr_block): Same.
4617         (ipa_tm_decrement_clone_counts): Same.
4618         (ipa_tm_scan_irr_function): Same.
4619         (ipa_tm_create_version_alias): Same.
4620         (ipa_tm_create_version): Same.
4621         (ipa_tm_transform_calls_redirect): Same.
4622         (ipa_tm_transform_calls): Same.
4623         (ipa_tm_transform_transaction): Same.
4624         (ipa_tm_execute): Same.
4626 2012-01-10  Richard Guenther  <rguenther@suse.de>
4628         PR middle-end/51806
4629         * opts.c (common_handle_option): Handle -Werror.
4631 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
4633         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
4634         operand number.
4636 2012-01-10  Jason Merrill  <jason@redhat.com>
4638         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
4639         information.
4641 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4643         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
4644         supports R_386_TLS_GD_PLT reloc.
4645         (gcc_cv_as_ix86_tlsldmplt): Check if linker
4646         supports R_386_TLS_LDM_PLT reloc.
4647         * configure: Regenerate.
4648         * config.in: Regenerate.
4650 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
4652         PR target/49868
4653         Extend __pgmx semantics to linearize memory.
4654         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
4655         determine if code comes inline or from libgcc.
4656         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
4657         (movmem_qi, movmem_qi): Set constraint #2 to "n".
4658         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
4659         (movmemx_qi, movmemx_hi): New insns.
4660         (xload_<mode>_libgcc): Rewrite to new insn condition.
4661         (xload_<mode>): Remove insns.
4662         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
4663         cases that don't satisfy avr_xload_libgcc_p().
4664         (avr_addr_space_convert): Allow converting in any direction.
4665         (avr_addr_space_subset_p): Return always true.
4666         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
4667         (avr_emit_movmemhi): Ditto.
4668         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
4669         (avr_out_movmem): Ditto.
4670         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
4671         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
4672         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
4673         (avr_encode_section_info): Encode 'progmem' in symbol flags.
4674         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
4676 2012-01-10  Richard Guenther  <rguenther@suse.de>
4678         PR tree-optimization/50913
4679         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
4680         Require data-refs to be representable by Graphite with respect
4681         to any loop nest.
4683 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
4685         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
4686         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
4688 2012-01-10  Tom de Vries  <tom@codesourcery.com>
4690         PR rtl-optimization/51271
4691         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
4692         handling annulled branch.
4694 2012-01-10  Richard Henderson  <rth@redhat.com>
4696         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
4697         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
4698         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
4699         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
4700         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
4701         arm_expand_vec_perm_const): New.
4702         * config/arm/arm-protos.h: Update.
4703         * config/arm/neon.md (UNSPEC_VCONCAT): New.
4704         (*neon_vswp<VDQX>): New.
4705         (neon_vcombine<VDX>): Use neon_split_vcombine.
4706         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
4707         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
4708         (vec_perm<VE>): New.
4710 2012-01-10  Richard Henderson  <rth@redhat.com>
4712         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
4713         use it if reload_completed.
4714         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
4715         arm_output_asm_insn, arm_process_output_memory_barrier,
4716         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
4717         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
4718         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
4719         arm_process_output_sync_insn, arm_output_sync_insn,
4720         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
4721         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
4722         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
4723         (emit_unlikely_jump): New.
4724         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
4725         (arm_split_atomic_op): New.
4726         * config/arm/arm-protos.h: Update.
4727         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
4728         (struct arm_sync_generator): Remove.
4729         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
4730         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
4731         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
4732         (VUNSPEC_LL, VUNSPEC_SC): New.
4733         (sync_result, sync_memory, sync_required_value, sync_new_value,
4734         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
4735         (attr length): Don't use arm_sync_loop_insns.
4736         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
4737         (movsfcc, movdfcc): Likewise.
4738         * config/arm/constraints.md (Ua): New.
4739         * config/arm/prediates.md (mem_noofs_operand): New.
4740         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
4741         (sync_clobber, sync_t2_reqd): Remove.
4742         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
4743         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
4744         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
4745         (arm_sync_compare_and_swap<SIDI>): Remove.
4746         (arm_sync_compare_and_swap<NARROW>): Remove.
4747         (arm_sync_lock_test_and_set<SIDI>): Remove.
4748         (arm_sync_lock_test_and_set<NARROW>): Remove.
4749         (arm_sync_new_<syncop><SIDI>): Remove.
4750         (arm_sync_new_<syncop><NARROW>): Remove.
4751         (arm_sync_new_nand<SIDI>): Remove.
4752         (arm_sync_new_nand<NARROW>): Remove.
4753         (arm_sync_old_<syncop><SIDI>): Remove.
4754         (arm_sync_old_<syncop><NARROW>): Remove.
4755         (arm_sync_old_nand<SIDI>): Remove.
4756         (arm_sync_old_nand<NARROW>): Remove.
4757         (*memory_barrier): Merge arm_output_memory_barrier.
4758         (atomic_compare_and_swap<QHSD>): New.
4759         (atomic_compare_and_swap<NARROW>_1): New.
4760         (atomic_compare_and_swap<SIDI>_1): New.
4761         (atomic_exchange<QHSD>): New.
4762         (cas_cmp_operand, cas_cmp_str): New.
4763         (atomic_op_operand, atomic_op_str): New.
4764         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
4765         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
4766         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
4767         (arm_load_exclusive<NARROW>): New.
4768         (arm_load_exclusivesi, arm_load_exclusivedi): New.
4769         (arm_store_exclusive<QHSD>): New.
4771 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4773         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
4774         reload patterns if -mvsx-scalar-memory.
4776         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
4777         generated, even -mno-vsx-scalar-double was used.
4778         (vsx_xscvdpsp_scalar): Likewise.
4779         (vsx_xscvspdp_scalar2): Likewise.
4781 2012-01-09  Tom de Vries  <tom@codesourcery.com>
4782             Andrew Pinski  <apinski@cavium.com>
4784         PR debug/51471
4785         * reorg.c (fill_slots_from_thread): Don't speculate
4786         frame-related insns.
4788 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
4790         * sched-int.h (bb_note): Move to...
4791         * basic-block.h: ...here.
4792         * haifa-sched.c (bb_note): Move to...
4793         * cfgrtl.c: ...here.
4794         * function.c (next_block_for_reg): New function.
4795         (move_insn_for_shrink_wrap): Likewise.
4796         (prepare_shrink_wrap): Rewrite to use the above.
4798 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
4800         * gimple.c (is_gimple_non_addressable): Remove.
4801         * gimple.h: Remove is_gimple_non_addressable.
4802         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
4803         is_gimple_non_addressable.
4804         * trans-mem.c (expand_assign_tm): Same.
4806 2012-01-09  Richard Guenther  <rguenther@suse.de>
4808         PR tree-optimization/51775
4809         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
4810         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
4812 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4814         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
4815         tuning parameters.
4816         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
4818 2012-01-09  Richard Guenther  <rguenther@suse.de>
4820         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
4822 2012-01-08  Jan Hubicka  <jh@suse.cz>
4824         PR tree-optimize/51680
4825         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
4826         on when known_vals needs to be computed; cleanup.
4828 2012-01-08  Jan Hubicka  <jh@suse.cz>
4830         PR tree-optimize/51694
4831         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
4833 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
4835         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
4836         for -std=c++98 and -std=c++11 too.
4838 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
4840         * cfgloop.c (cancel_loop): Add free() of bbs array.
4842 2012-01-07  Jan Hubicka  <jh@suse.cz>
4844         PR tree-optimization/51600
4845         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
4846         that benefits small functions.
4848 2012-01-07  Jan Hubicka  <jh@suse.cz>
4850         * ipa-inline.c (want_inline_small_function_p): Fix formating.
4852 2012-01-07  Jan Hubicka  <jh@suse.cz>
4854         PR tree-optimization/51680
4855         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
4856         whose inlining reduce unit size.
4858 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
4860         PR bootstrap/51725
4861         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
4862         Add canonical node to containing_mem chain after the non-canonical
4863         one, even if there weren't any locs to propagate.
4864         (remove_useless_values): Keep only canonical values.
4865         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
4866         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
4867         canonicalize mem_chain elements that are not discarded.
4869 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
4871         PR target/47333
4872         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
4873         before emitting functions.
4875         PR gcov-profile/50127
4876         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
4877         clear_aux_for_blocks.
4879 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
4881         PR debug/51746
4882         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
4884 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
4886         * c-decl.c (ext_block): Moved up.
4887         (collect_all_refs, for_each_global_decl): Take ext_block into account.
4889 2012-01-06  Han Shen  <shenhan@google.com>
4891         Translate built-in include paths for sysroot.
4892         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
4893         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
4895         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
4896         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
4898         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
4899         control whether sysroot should be prepended to gxx include dir.
4901         * configure: Regenerate.
4903 2012-01-06  Torvald Riegel  <triegel@redhat.com>
4905         PR rtl-optimization/51771
4906         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
4907         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
4909 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
4911         PR tree-optimization/51315
4912         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
4913         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
4915 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
4917         PR target/51681
4918         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
4919         for shrp pattern.  Correctly handle and fixup shift variable.
4920         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
4922 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
4924         PR debug/51762
4925         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
4926         note when !ACCUMULATE_OUTGOING_ARGS.
4928 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
4930         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
4931         condition.
4932         (extract_range_from_unary_expr_1): Avoid useless computations.
4934 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
4936         PR rtl-optimization/51767
4937         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
4938         of jump_block and add an extra edge for degenerated asm gotos.
4940         PR middle-end/51768
4941         * stmt.c (check_unique_operand_names): Don't ICE during error
4942         reporting if i is from labels chain.
4944         PR middle-end/44777
4945         * profile.c (branch_prob): Split bbs that have exit edge
4946         and need a fake entry edge too.
4948 2012-01-05  Jan Hubicka  <jh@suse.cz>
4950         PR middle-end/49710
4951         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
4952         unlooping loops.
4954 2012-01-05  Richard Guenther  <rguenther@suse.de>
4956         PR lto/50490
4957         * tree-streamer-out.c (write_ts_optimization): New function.
4958         (streamer_write_tree_body): Call it.
4959         * tree-streamer-in.c (lto_input_ts_optimization): New function.
4960         (streamer_read_tree_body): Call it.
4961         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
4963 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
4965         PR middle-end/51761
4966         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
4967         * gimplify.c (gimplify_cleanup_point_expr): Save and set
4968         in_cleanup_point_expr before gimplify_stmt call and restore it
4969         afterwards.
4970         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
4971         in_cleanup_point_expr is false.
4973 2012-01-05  Richard Guenther  <rguenther@suse.de>
4975         PR middle-end/51764
4976         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
4977         to c.opt.
4978         * toplev.c (process_options): Reject combining mudflap and LTO.
4979         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
4981 2012-01-05  Richard Guenther  <rguenther@suse.de>
4983         PR tree-optimization/51760
4984         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
4985         not VARYING.
4986         (bit_value_unop): Handle UNDEFINED operands.
4987         (bit_value_binop): Likewise.
4989 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
4991         * config/avr/avr.c (avr_replace_prefix): Remove.
4992         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
4993         (avr_asm_function_rodata_section): Ditto.
4994         (avr_asm_select_section): Ditto.
4996 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4998         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
4999         insertion.
5001 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
5003         PR bootstrap/51648
5004         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
5005         calls that have any non-fake successor edges.
5007         PR debug/51746
5008         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
5010 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
5012         PR tree-optimization/51624
5013         * tree-sra.c (build_ref_for_model): When replicating a chain of
5014         COMPONENT_REFs, stop as soon as the offset would become negative.
5016 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
5018         PR debug/51695
5019         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
5020         in .debug_loc on the floor.
5022 2012-01-04  Andrew Pinski  <apinski@cavium.com>
5024         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
5026 2012-01-04  Andrew Pinski  <apinski@cavium.com>
5027             Adam Nemet  <anemet@caviumnetworks.com>
5029         * config/mips/mips.md (size): Add SI and DI.
5030         (SIZE): New mode attribute.
5031         (U): New code attribute.
5032         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
5033         (mips_lbux_<mode>): Delete.
5034         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
5035         (mips_lhx): Use gen_mips_lhx_extsi.
5036         (mips_lhx_<mode>): Delete.
5037         (mips_lwx): Delete.
5038         (mips_l<size>x): New expand.
5039         (mips_lwx_<mode>): Delete.
5040         (mips_l<GPR:size>x_<P:mode>): New pattern.
5041         (*mips_lw<u>x_<P:mode>_ext): Likewise.
5042         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
5043         * config/mips/mips.c (mips_lx_address_p): New function.
5044         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
5045         (dsp64): New availability predicate.
5046         (mips_builtins): Add an entry for __builtin_mips_ldx.
5047         * config/mips/mips.h (ISA_HAS_LBX): New define.
5048         (ISA_HAS_LBUX): Likewise.
5049         (ISA_HAS_LHX): Likewise.
5050         (ISA_HAS_LHUX): Likewise.
5051         (ISA_HAS_LWX): Likewise.
5052         (ISA_HAS_LWUX): Likewise.
5053         (ISA_HAS_LDX): Likewise.
5054         * doc/extend.texi (__builtin_mips_ldx): Document.
5056 2012-01-04  Tristan Gingold  <gingold@adacore.com>
5058         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
5059         when long pointers are used.
5060         * config.build (*-*-*vms*): Handle all OpenVMS targets.
5061         (alpha64-dec-*vms*, alpha*-dec-*vms*)
5062         (ia64-hp-*vms*): Remove.
5063         * config/vms/xm-vms64.h: Delete.
5065 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
5067         PR middle-end/51472
5068         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
5070 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
5072         * opts.c (finish_options): Remove duplicate sorry.
5074 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
5076         PR middle-end/51696
5077         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
5078         correctly.
5080 2012-01-04  Richard Guenther  <rguenther@suse.de>
5082         PR middle-end/51750
5083         * tree.c (size_low_cst): New function.
5084         * tree.h (size_low_cst): Declare.
5085         * fold-const.c (fold_comparison): Use it to extract the low
5086         part of the POINTER_PLUS_EXPR offset.
5088 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
5090         Fix clearing ZERO_REG
5091         * config/avr/avr.md (cc): Add alternative "ldi".
5092         (movqi_insn): Use it in cc attribute.
5093         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
5094         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
5095         (output_reload_insisf): Use ZERO_REG to pre-clear register.
5097 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5099         * configure: Regenerate.
5101 2012-01-04  Richard Guenther  <rguenther@suse.de>
5103         PR tree-optimization/49651
5104         * tree-ssa-structalias.c (type_can_have_subvars): New function.
5105         (var_can_have_subvars): Use it.
5106         (get_constraint_for_1): Only consider subfields if there can be any.
5108 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
5110         PR bootstrap/51725
5111         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
5112         to its new canonical_cselib_val and the cselib_val was in
5113         first_containing_mem chain, but the canonical_cselib_val was not,
5114         add the latter into the chain.
5115         (cselib_invalidate_mem): Compare canonical_cselib_val of
5116         addr_list chain elt with v.
5118         PR pch/51722
5119         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
5120         dwarf2out_undef): Allocate e.info using ggc_strdup instead
5121         of xstrdup.
5122         (output_macinfo_op): Don't ggc_strdup fd->filename.
5123         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
5124         then ggc_strdup it.  Don't free inc->info or cur->info.
5125         (output_macinfo): Don't free ref->info or file->info.
5127 2012-01-03  Ira Rosen  <irar@il.ibm.com>
5129         PR tree-optimization/51269
5130         * tree-vect-loop-manip.c (set_prologue_iterations): Make
5131         first_niters a pointer.
5132         (slpeel_tree_peel_loop_to_edge): Likewise.
5133         (vect_do_peeling_for_loop_bound): Update call to
5134         slpeel_tree_peel_loop_to_edge.
5135         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
5136         here.  Remove it from the parameters list.
5137         (vect_do_peeling_for_alignment): Update calls and compute
5138         wide_prolog_niters.
5140 2012-01-03  Richard Guenther  <rguenther@suse.de>
5142         PR tree-optimization/51070
5143         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
5144         Properly handle calls.
5146 2012-01-03  Richard Guenther  <rguenther@suse.de>
5148         PR tree-optimization/51692
5149         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
5150         the LHS of allocation stmts.
5152 2012-01-03  Olivier Hainque  <hainque@adacore.com>
5154         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
5156 2012-01-03  Olivier Hainque  <hainque@adacore.com>
5158         * collect2.c (main): In AIX specific computations for vector
5159         insertions, use CONST_CAST2 to cast from char ** to const char **.
5161 2012-01-03  Richard Guenther  <rguenther@suse.de>
5163         PR debug/51650
5164         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
5165         the context of a limbo DIE when it does not already exist.
5167 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
5169         PR tree-optimization/51719
5170         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
5171         but direct call is, clear direct call's lhs and don't add fallthrough
5172         edge from dcall_bb to join_bb and PHIs.
5174 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5176         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
5177         the instructions emitted by the pattern.
5178         ("*TDC_insn_<mode>"): Add comment.
5180 2012-01-03  Richard Guenther  <rguenther@suse.de>
5182         PR middle-end/51730
5183         * fold-const.c (fold_comparison): Properly canonicalize
5184         tree offset and HOST_WIDE_INT bit position.
5186 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
5188         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
5189         operands for extzv pattern.
5191 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
5193         PR bootstrap/51725
5194         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
5195         on mem_elt first.
5197 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
5199         * doc/invoke.texi (-flto and related options): Copy-edit.
5201 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
5203         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
5205 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
5207         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
5208         New patterns.
5210 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
5212         * expr.h (move_by_pieces_ninsns): Declare.
5213         * expr.c (move_by_pieces_ninsns): Make external.
5214         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
5215         (mips_store_by_pieces_p): Likewise.
5216         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
5217         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
5218         * config/mips/mips.c (mips_move_by_pieces_p): New function.
5219         (mips_store_by_pieces_p): Likewise.
5221 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
5223         * passes.c (register_one_dump_file): Free full_name.
5225         * reload1.c (reload): Don't allocate reg_max_ref_width here.
5226         (calculate_elim_costs_all_insns): Free offsets_at and
5227         offsets_known_at at the end and clear the pointers.
5229 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
5231         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
5232         this option introduced in r180739.
5234 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
5236         PR target/51345
5237         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
5238         (tmake_file target=avr): Add avr/t-multilib.
5240         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
5241         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
5242         * config/avr/genmultilib.awk: New file.
5243         * config/avr/t-multilib: New auto-generated file.
5244         * config/avr/multilib.h: New auto-generated file.
5245         * config/avr/t-avr (AVR_MCUS): New variable.
5246         (genopt.sh): Use it.
5247         (s-mlib): Depend on t-multilib.
5248         (t-multilib, multilib.h): New dependencies.
5249         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
5250         (MULTILIB_OPTIONS): Remove.
5251         (MULTILIB_MATCHES): Remove.
5252         (MULTILIB_DIRNAMES): Remove.
5253         (MULTILIB_EXCEPTIONS): Remove:
5254         * config/avr/genopt.sh: Don't use hard coded file name;
5255         pass AVR_MCUS from t-avr instead.
5257 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
5259         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
5261 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
5263         Implement light-weight DImode support.
5264         * config/avr/avr-dimode.md: New file.
5265         * config/avr/avr.md: Include it.
5266         (adjust_len): Add plus64, compare64.
5267         (HIDI): Remove code iterator.
5268         (code_stdname): New code attribute.
5269         (rotx, rotsmode): Remove DI.
5270         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
5271         as code iterator.
5272         * config/avr/avr-protos.h (avr_have_dimode): New.
5273         (avr_out_plus64, avr_out_compare64): New.
5274         * config/avr/avr.c (avr_out_compare): Handle DImode.
5275         (avr_have_dimode): New variable definition and initialization.
5276         (avr_out_compare64, avr_out_plus64): New functions.
5277         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
5278         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
5279         (avr_compare_pattern): Skip DImode comparisons.
5281 2012-01-02  Revital Eres  <revital.eres@linaro.org>
5283         * ddg.c (def_has_ccmode_p): New function.
5284         (add_cross_iteration_register_deps,
5285         create_ddg_dep_from_intra_loop_link): Call it.
5287 2012-01-02  Richard Guenther  <rguenther@suse.de>
5289         PR other/51679
5290         * invoke.texi (fassociative-math): Remove spurious paranthesis.
5292 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
5294         * gcc.c (process_command): Update copyright notice dates.
5295         * gcov.c (print_version): Likewise.
5296         * gcov-dump.c (print_version): Likewise.
5297         * mips-tfile.c (main): Likewise.
5298         * mips-tdump.c (main): Likewise.
5300 2012-01-01  Ira Rosen  <irar@il.ibm.com>
5302         PR tree-optimization/51704
5303         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
5304         a use is inside the basic block or loop before accessing its vect info.
5306 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
5308         PR rtl-optimization/51069
5309         * cfgloopmanip.c (remove_path): Removing path making irreducible
5310         region unconditional makes BB part of the region.
5312 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
5314         PR tree-optimization/51683
5315         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
5316         calls with side-effects.
5317         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5319 Copyright (C) 2012 Free Software Foundation, Inc.
5321 Copying and distribution of this file, with or without modification,
5322 are permitted in any medium without royalty provided the copyright
5323 notice and this notice are preserved.