* config/rs6000/predicates.md (reg_or_add_cint_operand,
[official-gcc.git] / gcc / ChangeLog
blob8db037d8e374608289f3097eafd9466e24e52e2a
1 2013-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
3         * config/rs6000/predicates.md (reg_or_add_cint_operand,
4         reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
5         (reg_or_logical_cint_operand, easy_fp_constant,
6         logical_const_operand): Delete "CONST_DOUBLE" case.
7         * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
8         "HOST_BITS_PER_WIDE_INT == 64" test.
9         (num_insns_constant): Ditto.  Delete CONST_DOUBLE DImode/VOIDmode
10         case.
11         (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
12         (rs6000_emit_set_const): Delete CONST_DOUBLE case.
13         (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
14         test.
15         (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
16         CONST_DOUBLE DImode/VOIDmode case.
17         (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
18         (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
19         CONST_DOUBLE VOIDmode case.
20         (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
21         (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
22         * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
23         Delete CONST_DOUBLE case.
24         (splitters for mov FMOVE64 const_double): Delete
25         "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
26         "HOST_BITS_PER_WIDE_INT >= 64" test.
27         (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
28         case.
29         (mov DI const_double): Delete.
31 2013-05-04  Jakub Jelinek  <jakub@redhat.com>
33         * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
34         on op shows all bits zero in mode of a lowpart subreg, return zero.
36 2013-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
38         PR target/57150
39         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
40         to save TFmode registers and DImode to save TImode registers for
41         caller save operations.
42         (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
43         mark being partially clobbered since they only use the first
44         double word.
46         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
47         and TDmode only use the upper 64-bits of each VSX register.
49 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
51         * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
52         (find_candidates_in_block): Disable slsr_process_phi.
54 2013-05-03  Guozhi Wei  <carrot@google.com>
56         * coverage.c (coverage_obj_init): Move the construction of gcov
57         constructor to
58         (build_init_ctor): here.
60 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
62         * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
63         (slsr_cand_d): Redefine def_phi.
64         (stride_status, phi_adjust_status, count_phis_status): New enums.
65         (find_phi_def): New.
66         (find_basis_for_base_expr): New.
67         (find_basis_for_candidate): Handle hidden bases.
68         (alloc_cand_and_find_basis): Handle phi candidates.
69         (slsr_process_phi): New.
70         (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
71         (create_mul_imm_cand): Likewise.
72         (create_add_ssa_cand): Exclude phi base candidates.
73         (create_add_imm_cand): Likewise.
74         (slsr_process_cast): Likewise.
75         (slsr_process_copy): Likewise.
76         (find_candidates_in_block): Handle phi candidates.
77         (dump_candidate): Likewise.
78         (unconditional_cands): Delete.
79         (unconditional_cands_with_known_stride_p): Delete.
80         (phi_dependent_cand_p): New.
81         (cand_increment): Handle phi-dependent candidates.
82         (replace_dependent): Delete.
83         (replace_mult_candidate): New.
84         (replace_unconditional_candidate): New.
85         (incr_vec_index): Move to avoid forward reference.
86         (create_add_on_incoming_edge): New.
87         (create_phi_basis): New.
88         (replace_dependents): Delete.
89         (replace_conditional_candidate): New.
90         (phi_add_costs): New.
91         (replace_uncond_cands_and_profitable_phis): New.
92         (record_increment): Handle phi adjustments.
93         (record_phi_increments): New.
94         (record_increments): Handle phi adjustments.
95         (phi_incr_cost): New.
96         (lowest_cost_path): Handle phis.
97         (total_savings): Likewise.
98         (analyze_increments): Likewise.
99         (ncd_with_phi): New.
100         (ncd_of_cand_and_phis): New.
101         (nearest_common_dominator_for_cands): Handle phi increments.
102         (all_phi_incrs_profitable): New.
103         (replace_profitable_candidates): Handle phi-dependent candidates.
104         (analyze_candidates_and_replace): Likewise.
106 2013-05-03  Teresa Johnson  <tejohnson@google.com>
108         PR bootstrap/57154
109         * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
110         do not exceed REG_BR_PROB_BASE.
112 2013-05-03  Jeff Law  <law@redhat.com>
114         PR tree-optimization/57144
115         * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
116         operand of the condition will bit into the new type when eliminating
117         a cast feeding a condition.
119 2013-05-03  Jakub Jelinek  <jakub@redhat.com>
121         PR rtl-optimization/57130
122         * combine.c (make_compound_operation) <case SUBREG>: Pass
123         SET instead of COMPARE as in_code to the recursive call
124         if needed.
126 2013-05-03  Uros Bizjak  <ubizjak@gmail.com>
128         * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
129         (enabled): Handle new members.
130         * config/i386/sse.md (*vec_concatv2si): Merge from
131         *vec_concatv2si_sse2 and vec_concatv2si_sse.
132         (vec_concatv2di): Merge with *vec_concatv2di_rex64.
134 2013-05-03  Joern Rennecke <joern.rennecke@embecosm.com>
136         PR tree-optimization/57027
137         * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
138         for fnms opportunity, check we got the prerequisite kind
139         of tree / gimple before using accessor functions.
141 2013-05-03  Richard Biener  <rguenther@suse.de>
143         * double-int.h (lshift): New overload without precision
144         and arith argument.
145         (operator *=, operator +=, operator -=): Move ...
146         * double-int.c (operator *=, operator +=, operator -=): ... here
147         and implement more efficiently.
148         (mul_double_with_sign): Remove.
149         (lshift_double): Adjust to take unsinged shift argument, push
150         dispatching code to callers.
151         (mul_double_wide_with_sign): Add early out for callers that
152         are not interested in high parts or overflow.
153         (lshift): New function.
154         (lshift, rshift, alshift, arshift, llshift, lrshift): Add
155         dispatch code here.
156         (lrotate, rrotate): Use logical shifts.
157         * expr.c (get_inner_reference): Use lshift.
158         * fixed-value.c (do_fixed_divide): Likewise.
159         * tree-dfa.c (get_ref_base_and_extent): Likewise.
160         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
161         (indirect_refs_may_alias_p): Likewise.
162         (stmt_kills_ref_p_1): Likewise.
164 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
166         * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
168 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
170         * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
171         scalar form of FABD instruction.
173 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
175         * lra-constraints.c (process_alt_operands): Add checking alt
176         number to choose the best alternative.
178 2013-05-02  Richard Biener  <rguenther@suse.de>
180         * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
181         bitmap and its handling.
182         (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
184 2013-05-02  Richard Biener  <rguenther@suse.de>
186         PR middle-end/57140
187         * tree-inline.c (copy_loops): Properly handle removed loops.
188         (copy_cfg_body): Mark destination loops for fixup if source
189         loops needed fixup.
191 2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>
193         PR target/56732
194         * config/arm/arm.c (arm_expand_epilogue): Check really_return before
195         generating simple_return for naked functions.
197 2013-05-02  Martin Jambor  <mjambor@suse.cz>
199         PR middle-end/56988
200         * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
201         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
202         flags match.
203         (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
204         ipa_agg_replacement_value structures.
205         (known_aggs_to_agg_replacement_list): Likewise.
206         * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
207         (read_agg_replacement_chain): Likewise.
208         (ipcp_transform_function): Also check that by_ref flags match.
210 2013-05-02  Richard Biener  <rguenther@suse.de>
212         * graphds.h (struct graph): Add obstack member.
213         * graphds.c (new_graph): Initialize obstack and allocate
214         vertices from it.
215         (add_edge): Allocate edge from the obstack.
216         (free_graph): Free the obstack instead of all edges and vertices.
218 2013-05-02  Teresa Johnson  <tejohnson@google.com>
220         * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
221         divides.
222         * cfg.c (update_bb_profile_for_threading): Ditto.
223         * tree-inline.c (copy_bb): Ditto.
224         (copy_edges_for_bb): Ditto.
225         (initialize_cfun): Ditto.
226         (copy_cfg_body): Ditto.
227         (expand_call_inline): Ditto.
228         * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
229         (estimate_node_size_and_time): Ditto.
230         (inline_merge_summary): Ditto.
231         * cgraphclones.c (cgraph_clone_edge): Ditto.
232         (cgraph_clone_node): Ditto.
233         * sched-rgn.c (compute_dom_prob_ps): Ditto.
234         (compute_trg_info): Ditto.
236 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
238         * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
239         S reg when fp attribute set.
240         (movdi_aarch64): Only allow to/from D reg when fp attribute set.
242 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
244         * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
245         New pattern.
246         (*and_one_cmplsi3_compare0_uxtw): Likewise.
247         (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
248         (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
250 2013-05-02  Richard Biener  <rguenther@suse.de>
252         * tree-scalar-evolution.c (scev_info_hasher): Remove.
253         (struct instantiate_cache_entry): New type.
254         (struct instantiate_cache_entry_hasher): New hashtable descriptor.
255         (struct instantiate_cache_type): New type.
256         (set_instantiated_value, get_instantiated_value): Remove.
257         (get_instantiated_value_entry): New function.
258         (instantiate_scev_name): Use the new cache and adjust.
259         (instantiate_scev_poly): Adjust.
260         (instantiate_scev_binary): Likewise.
261         (instantiate_array_ref): Likewise.
262         (instantiate_scev_convert): Likewise.
263         (instantiate_scev_not): Likewise.
264         (instantiate_scev_3): Likewise.
265         (instantiate_scev_2): Likewise.
266         (instantiate_scev_r): Likewise.
267         (instantiate_scev): Likewise.
268         (resolve_mixers): Likewise.
270 2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>
272         PR target/57091
273         * lra-constraints.c (best_small_class_operands_num): Remove.
274         (process_alt_operands): Remove small_class_operands_num.  Take
275         small classes operands into losers and only if the operand is not
276         matched.  Modify debugging output.
277         (curr_insn_transform): Remove best_small_class_operands_num.
278         Print insn name.
280 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
282         * config/aarch64/aarch64-builtins.c
283         (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
284         * config/aarch64/aarch64-simd-builtins.def
285         (reduc_splus_): Add new modes.
286         (reduc_uplus_): New.
287         * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
288         (reduc_uplus_v4sf): Likewise.
289         (reduc_splus_v4sf): Likewise.
290         (aarch64_addv<mode>): Likewise.
291         (reduc_uplus_<mode>): Likewise.
292         (reduc_splus_<mode>): Likewise.
293         (aarch64_addvv2di): Likewise.
294         (reduc_uplus_v2di): Likewise.
295         (reduc_splus_v2di): Likewise.
296         (aarch64_addvv2si): Likewise.
297         (reduc_uplus_v2si): Likewise.
298         (reduc_splus_v2si): Likewise.
299         (reduc_<sur>plus_<mode>): New.
300         (reduc_<sur>plus_v2di): Likewise.
301         (reduc_<sur>plus_v2si): Likewise.
302         (reduc_<sur>plus_v4sf): Likewise.
303         (aarch64_addpv4sf): Likewise.
304         * config/aarch64/arm_neon.h
305         (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
306         * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
307         add UNSPEC_SADDV, UNSPEC_UADDV.
308         (SUADDV): New.
309         (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
311 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
313         * config/aarch64/arm_neon.h
314         (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
316 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
318         * config/aarch64/aarch64-builtins
319         (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
321 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
323         * config/aarch64/aarch64-simd-builtins.def
324         (reduc_smax_): New.
325         (reduc_smin_): Likewise.
326         (reduc_umax_): Likewise.
327         (reduc_umin_): Likewise.
328         (reduc_smax_nan_): Likewise.
329         (reduc_smin_nan_): Likewise.
330         (fmax): Remove.
331         (fmin): Likewise.
332         (smax): Update for V2SF, V4SF and V2DF modes.
333         (smin): Likewise.
334         (smax_nan): New.
335         (smin_nan): Likewise.
336         * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
337         (<su><maxmin><mode>3): ...This, refactor.
338         (s<maxmin><mode>3): New.
339         (<maxmin_uns><mode>3): Likewise.
340         (reduc_<maxmin_uns>_<mode>): Refactor.
341         (reduc_<maxmin_uns>_v4sf): Likewise.
342         (reduc_<maxmin_uns>_v2si): Likewise.
343         (aarch64_<fmaxmin><mode>: Remove.
344         * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
345         new builtin names.
346         (vmin<q>_f<32,64>): Likewise.
347         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
348         (FMAXMIN): New.
349         (su): Add mappings for smax, smin, umax, umin.
350         (maxmin): New.
351         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
352         (FMAXMIN): Rename as...
353         (FMAXMIN_UNS): ...This.
354         (maxminv): Remove.
355         (fmaxminv): Likewise.
356         (fmaxmin): Likewise.
357         (maxmin_uns): New.
358         (maxmin_uns_op): Likewise.
360 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
362         * config/aarch64/arm_neon.h
363         (vac<ge, gt><sd>_f<32, 64>): Rename to...
364         (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
365         (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
367 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
369         * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
370         * config/aarch64/iterators.md (FAC_COMPARISONS): New.
372 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
374         * config/aarch64/aarch64-simd.md
375         (vcond<mode>_internal): Handle special cases for constant masks.
376         (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
377         (vcondu<mode><mode>): Likewise.
378         (vcond<v_cmp_result><mode>): New.
380 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
382         * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
383         (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
384         * config/aarch64/aarch64-simd-builtins.def
385         (cmeq): Update to BUILTIN_VALLDI.
386         (cmgt): Likewise.
387         (cmge): Likewise.
388         (cmle): Likewise.
389         (cmlt): Likewise.
390         * config/aarch64/arm_neon.h
391         (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
392         to builtins or C as appropriate.
394 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
396         * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
397         (cmgeu): ...This.
398         (cmhi): Rename to...
399         (cmgtu): ...This.
400         * config/aarch64/aarch64-simd.md
401         (simd_mode): Add SF.
402         (aarch64_vcond_internal): Use new names for unsigned comparison insns.
403         (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
404         * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
405         (cstore<mode>_neg): ...This.
406         * config/aarch64/iterators.md
407         (VALLF): new.
408         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
409         (COMPARISONS): New.
410         (UCOMPARISONS): Likewise.
411         (optab): Add missing comparisons.
412         (n_optab): New.
413         (cmp_1): Likewise.
414         (cmp_2): Likewise.
415         (CMP): Likewise.
416         (cmp): Remove.
417         (VCMP_S): Likewise.
418         (VCMP_U): Likewise.
419         (V_cmp_result): Add DF, SF modes.
420         (v_cmp_result): Likewise.
421         (v): Likewise.
422         (vmtype): Likewise.
423         * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
425 2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>
427         * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
428         define_insn to define_insn_and_split.
429         (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
430         (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
431         (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
432         (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
433         (thumb2_negscc): Likewise.
435 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
437         * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
439 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
441         * config/arm/thumb2.md: Remove trailing whitespaces.
443 2013-04-30  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
445         * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
446         Use gen_int_mode rather than GEN_INT.
448 2013-04-30  H.J. Lu  <hongjiu.lu@intel.com>
450         * value-prof.c (stream_in_histogram_value): Remove the strayed
451         debug_gimple_stmt.
453 2013-04-30  Richard Biener  <rguenther@suse.de>
455         PR middle-end/57122
456         * cfghooks.c (split_edge): Properly check for the loop latch edge.
458 2013-04-30  Richard Biener  <rguenther@suse.de>
460         PR middle-end/57107
461         * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
463 2013-04-30  Andrey Belevantsev  <abel@ispras.ru>
465         PR rtl-optimization/56957
466         PR rtl-optimization/57105
467         * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
468         variable.  Use just INSN_UID for determining whether an insn
469         should be only disconnected from the insn stream.
470         * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
472 2013-04-30  Jakub Jelinek  <jakub@redhat.com>
474         PR tree-optimization/57104
475         * tsan.c (instrument_expr): Don't instrument accesses to
476         DECL_HARD_REGISTER VAR_DECLs.
478 2013-04-30  Richard Biener  <rguenther@suse.de>
480         * function.h (loops_for_fn): New inline function.
481         (set_loops_for_fn): Likewise.
482         * cfgloop.h (place_new_loop): Add struct function parameter.
483         (get_loop): Likewise.
484         (get_loops): Likewise.
485         (number_of_loops): Likewise.
486         (fel_next): Adjust.
487         (fel_init): Likewise.
488         * cfg.c (get_loop_copy): Adjust.
489         * cfgloop.c (flow_loops_dump): Likewise.
490         (record_loop_exits): Likewise.
491         (verify_loop_structure): Likewise.
492         * cfgloopanal.c (mark_irreducible_loops): Likewise.
493         (estimate_reg_pressure_cost): Likewise.
494         (mark_loop_exit_edges): Likewise.
495         * cfgloopmanip.c (place_new_loop): Likewise.
496         (add_loop): Likewise.
497         (duplicate_loop): Likewise.
498         * graph.c (draw_cfg_nodes): Likewise.
499         * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
500         * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
501         (extract_affine_chrec): Likewise.
502         (build_scop_iteration_domain): Likewise.
503         * graphite.c (graphite_initialize): Likewise.
504         * ira-build.c (create_loop_tree_nodes): Likewise.
505         (more_one_region_p): Likewise.
506         (rebuild_regno_allocno_maps): Likewise.
507         (mark_loops_for_removal): Likewise.
508         (mark_all_loops_for_removal): Likewise.
509         (remove_unnecessary_regions): Likewise.
510         (ira_build): Likewise.
511         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
512         * loop-init.c (fix_loop_structure): Likewise.
513         (gate_rtl_move_loop_invariants): Likewise.
514         (gate_rtl_unswitch): Likewise.
515         (gate_rtl_unroll_and_peel_loops): Likewise.
516         (rtl_doloop): Likewise.
517         * lto-streamer-in.c (input_cfg): Likewise.
518         * lto-streamer-out.c (output_cfg): Likewise.
519         * modulo-sched.c (sms_schedule): Likewise.
520         * predict.c (tree_estimate_probability): Likewise.
521         (tree_estimate_probability_driver): Likewise.
522         (estimate_loops): Likewise.
523         * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
524         (move_sese_region_to_fn): Likewise.
525         (debug_loop_num): Likewise.
526         * tree-chrec.c (chrec_evaluate): Likewise.
527         (hide_evolution_in_other_loops_than_loop): Likewise.
528         (chrec_component_in_loop_num): Likewise.
529         (reset_evolution_in_loop): Likewise.
530         (evolution_function_is_invariant_rec_p): Likewise.
531         * tree-if-conv.c (main_tree_if_conversion): Likewise.
532         * tree-inline.c (copy_loops): Likewise.
533         (copy_cfg_body): Likewise.
534         (tree_function_versioning): Likewise.
535         * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
536         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
537         Likewise.
538         (add_to_evolution_1): Likewise.
539         (scev_const_prop): Likewise.
540         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
541         * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
542         * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
543         (tree_ssa_lim_initialize): Likewise.
544         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
545         (verify_loop_closed_ssa): Likewise.
546         * tree-ssa-loop.c  (tree_ssa_loop_init): Likewise.
547         (tree_ssa_loop_im): Likewise.
548         (tree_ssa_loop_unswitch): Likewise.
549         (tree_vectorize): Likewise.
550         (check_data_deps): Likewise.
551         (tree_ssa_loop_ivcanon): Likewise.
552         (tree_ssa_loop_bounds): Likewise.
553         (tree_complete_unroll): Likewise.
554         (tree_complete_unroll_inner): Likewise.
555         (tree_parallelize_loops): Likewise.
556         (tree_ssa_loop_prefetch): Likewise.
557         (tree_ssa_loop_ivopts): Likewise.
558         * tree-ssa.c (execute_update_addresses_taken): Liekwise.
559         * tree-vectorizer.c (vectorize_loops): Likewise.
561 2013-04-29  Mike Frysinger  <vapier@gentoo.org>
563         * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
564         (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
565         * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
566         with EABI_LINK_SPEC.
568 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
570         PR target/44578
571         * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
572         alternative.
574 2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>
576         PR target/57097
577         * lra-constraints.c (process_alt_operands): Discourage a bit more
578         using memory for pseudos.  Print cost dump for alternatives.
579         Modify cost values for conflicts with early clobbers.
580         (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
582 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
584         PR target/57098
585         * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
587 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
589         * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
590         from/to S register.
591         (movdi_aarch64): Support LDR/STR from/to D register.
593 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
595         * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
596         or higher by default.
598 2013-04-29  Richard Biener  <rguenther@suse.de>
600         PR middle-end/57075
601         * tree-inline.c (copy_edges_for_bb): Still split the bbs,
602         even if not adding abnormal edges for calls that can make
603         abnormal gotos.
605 2013-04-29  Richard Biener  <rguenther@suse.de>
607         PR middle-end/57103
608         * tree-cfg.c (move_stmt_op): Fix condition under which to update
609         TREE_BLOCK.
610         (move_stmt_r): Remove redundant checking.
612 2013-04-29  Teresa Johnson  <tejohnson@google.com>
614         PR bootstrap/57077
615         * basic-block.h (apply_scale): New function.
616         (apply_probability): Use apply_scale.
617         * gimple-streamer-in.c (input_bb): Ditto.
618         * lto-streamer-in.c (input_cfg): Ditto.
619         * lto-cgraph.c (merge_profile_summaries): Ditto.
620         * tree-optimize.c (execute_fixup_cfg): Ditto.
621         * tree-inline.c (copy_bb): Update comment to use apply_scale.
622         (copy_edges_for_bb): Ditto.
623         (copy_cfg_body): Ditto.
625 2013-04-29  Tom de Vries  <tom@codesourcery.com>
627         * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
628         (replace_block_by): Don't set LOOPS_NEED_FIXUP.
629         (tail_merge_optimize): Handle current_loops == NULL.
631 2013-04-26  Jeff Law  <law@redhat.com>
633         * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
634         (simplify_cond_using_ranges): Generalize code to simplify
635         COND_EXPRs where one argument is a constant and the other
636         is an SSA_NAME created by an integral type conversion.
638 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
640         * config/arm/arm.md (store_minmaxsi): Use only when
641         optimize_insn_for_size_p.
643 2013-04-29  Christian Bruel  <christian.bruel@st.com>
645         PR target/57108
646         * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
648 2013-04-29  Richard Biener  <rguenther@suse.de>
650         PR middle-end/57089
651         * omp-low.c (expand_omp_taskreg): If the parent function had a broken
652         loop tree make sure to schedule a fixup for the child as well.
653         (expand_omp_for_generic): Properly add loops.
654         (expand_omp_for_static_nochunk): Likewise.
655         (expand_omp_for_static_chunk): Likewise.
656         (expand_omp_for): For the degenerate case fixup loops.
657         (expand_omp_sections): Fix default bb placement in loops.
658         (expand_omp_atomic_pipeline): Properly add loops.
660 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
662         * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
664 2013-04-29  Tom de Vries  <tom@codesourcery.com>
666         * tree-ssa-tail-merge.c: Update header comment.
668 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
670         * config/aarch64/arm_neon.h
671         (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
672         (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
673         (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
674         (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
675         (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
676         (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
677         (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
678         (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
680 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
682         * config/aarch64/aarch64-simd.md
683         (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
684         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
685         fix_trunc, fixuns_trunc.
686         (ftrunc<VDQF:mode>2): New.
687         * config/aarch64/iterators.md (optab): Add fix, fixuns.
688         (fix_trunc_optab): New.
690 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
692         * config/aarch64/aarch64-builtins.c
693         (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
694         iceilf, lround, iroundf.
696 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
698         PR target/54349
699         * config/i386/i386.h (enum ix86_tune_indices)
700         <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
701         New, split from X86_TUNE_INTER_UNIT_MOVES.
702         <X86_TUNE_INTER_UNIT_MOVES>: Remove.
703         (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
704         (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
705         (TARGET_INTER_UNIT_MOVES): Remove.
706         * config/i386/i386.c (initial_ix86_tune_features): Update.
707         Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
708         (ix86_expand_convert_uns_didf_sse): Use
709         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
710         (ix86_expand_vector_init_one_nonzero): Ditto.
711         (ix86_expand_vector_init_interleave): Ditto.
712         (inline_secondary_memory_needed): Return true for moves from SSE class
713         registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
714         to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
715         * config/i386/constraints.md (Yi, Ym): Depend on
716         TARGET_INTER_UNIT_MOVES_TO_VEC.
717         (Yj, Yn): New constraints.
718         * config/i386/i386.md (*movdi_internal): Change constraints of
719         operand 1 from Yi to Yj and from Ym to Yn.
720         (*movsi_internal): Ditto.
721         (*movdf_internal): Ditto.
722         (*movsf_internal): Ditto.
723         (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
724         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
725         (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
726         (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
727         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
728         * config/i386/sse.md (movdi_to_sse): Ditto.
729         (sse2_stored): Change constraint of operand 1 from Yi to Yj.
730         Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
731         TARGET_INTER_UNIT_MOVES.
732         (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
733         (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
734         instead of TARGET_INTER_UNIT_MOVES.
735         * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
736         operand 1 from Yi to Yj and from Ym to Yn.
738 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
740         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
741         (float_truncate_hi_): Likewise.
742         (float_extend_lo_): Likewise.
743         (float_truncate_lo_): Likewise.
744         * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
745         (aarch64_float_extend_lo_v2df): Likewise.
746         (vec_unpacks_hi_v4sf): Likewise.
747         (aarch64_float_truncate_lo_v2sf): Likewise.
748         (aarch64_float_truncate_hi_v4sf): Likewise.
749         (vec_pack_trunc_v2df): Likewise.
750         (vec_pack_trunc_df): Likewise.
752 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
754         * config/aarch64/aarch64-builtins.c
755         (aarch64_fold_builtin): Fold float conversions.
756         * config/aarch64/aarch64-simd-builtins.def
757         (floatv2si, floatv4si, floatv2di): New.
758         (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
759         * config/aarch64/aarch64-simd.md
760         (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
761         * config/aarch64/iterators.md (FLOATUORS): New.
762         (optab): Add float, floatuns.
763         (su_optab): Likewise.
765 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
767         * config/aarch64/aarch64-builtins.c
768         (aarch64_builtin_vectorized_function): Use new names for
769         fcvt builtins.
770         * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
771         (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
772         (fcvtzu): Split as...
773         (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
774         (fcvtas): Split as...
775         (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
776         (fcvtau): Split as...
777         (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
778         (fcvtps): Split as...
779         (lceilv2sf, lceilv4sf, lceilv2df): ...This.
780         (fcvtpu): Split as...
781         (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
782         (fcvtms): Split as...
783         (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
784         (fcvtmu): Split as...
785         (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
786         (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
787         (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
788         (lfrintnusf, lfrintnudf): Likewise.
789         * config/aarch64/aarch64-simd.md
790         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
791         define_insn.
792         (aarch64_fcvt<frint_suffix><su><mode>): Remove.
793         * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
794         (fcvt_pattern): Likewise.
796 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
798         * config/aarch64/aarch64-simd.md
799         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
800         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
802 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
804         * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
805         (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
806         (vrnd<a,m,n,p>_f32): Implement using builtins.
807         (vrnd<i,x><q>_f<32, 64>): New.
809 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
811         * config/aarch64/aarch64-builtins.c
812         (aarch64_builtin_vectorized_function): Fold to standard pattern names.
813         * config/aarch64/aarch64-simd-builtins.def (frintn): New.
814         (frintz): Rename to...
815         (btrunc): ...this.
816         (frintp): Rename to...
817         (ceil): ...this.
818         (frintm): Rename to...
819         (floor): ...this.
820         (frinti): Rename to...
821         (nearbyint): ...this.
822         (frintx): Rename to...
823         (rint): ...this.
824         (frinta): Rename to...
825         (round): ...this.
826         * config/aarch64/aarch64-simd.md
827         (aarch64_frint<frint_suffix><mode>): Delete.
828         (<frint_pattern><mode>2): Convert to insn.
829         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
830         * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
831         (frint_pattern): Likewise.
832         (frint_suffix): Likewise.
834 2013-04-29  Richard Biener  <rguenther@suse.de>
836         PR tree-optimization/57081
837         * loop-init.c: Include tree-flow.h.
838         (loop_optimizer_finalize): Free number of iteration estimates.
839         * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
841 2013-04-29  Jakub Jelinek  <jakub@redhat.com>
843         PR tree-optimization/57083
844         * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
845         non-singleton shift count range, zero extend low_bound for uns case.
847         * config/i386/predicates.md (general_vector_operand): New predicate.
848         * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
849         (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
850         if they aren't nonimmediate operands.  If their original values
851         satisfy const_vector_equal_evenodd_p, don't shift them.
852         * config/i386/sse.md (mul<mode>3): Use general_vector_operand
853         predicates.  For the SSE4.1 case force operands[{1,2}] into registers
854         if not nonimmediate_operand.
855         (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
856         instead of register_operand.
857         (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
859 2013-04-28  Eric Botcazou  <ebotcazou@gcc.gnu.org>
861         * stor-layout.c (finalize_size_functions): Allocate a structure and
862         reset cfun before dumping the functions.
864 2013-04-27  Jakub Jelinek  <jakub@redhat.com>
866         * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
868         PR target/56866
869         * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
870         use xop_pmacsdqh if uns_p.
871         * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
872         the immediate rotate count.
874 2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>
876         * rtl.h (struct rtx_def): Add comment for field jump.
877         (LRA_SUBREG_P): New macro.
878         * recog.c (register_operand): Check LRA_SUBREG_P.
879         * lra.c (lra): Add note at the end of RTL code. Align non-empty
880         stack frame.
881         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
882         (lra_final_code_change): Skip subreg change for operators.
883         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
884         if there are no operand changes.
885         * lra-constraints.c (curr_insn_set): New.
886         (match_reload): Set LRA_SUBREG_P.
887         (emit_spill_move): Ditto.
888         (check_and_process_move): Use curr_insn_set. Process only single
889         set insns.  Don't initialize sec_mem_p and change_p.
890         (simplify_operand_subreg): Use LRA_SUBREG_P.
891         (reg_in_class_p): New function.
892         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
893         of #ifdef.  Add code to remove cycling.
894         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
895         non-null disp.  Reload inner instead of disp when base and index
896         are null.  Try to put lo_sum into register.
897         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
898         (check_and_process_move): Move code for move cost check to
899         simple_move_p.  Remove equiv_substitution.
900         (simple_move_p): New function.
901         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
902         curr_insn_set.  Call check_and_process_move only for single set
903         insns.  Use the new function.  Move call of check_and_process_move
904         after operand equiv substitution and address process.
906 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
908         PR go/57045
909         * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
910         with nonlocal goto receivers or returns twice calls, ignore
911         unininitialized values from abnormal edges to nl goto receiver
912         or returns twice call.
914 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
916         PR tree-optimization/57051
917         * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
918         and VEC_RSHIFT_EXPR if shift count is a multiple of element
919         bitsize.
921 2013-04-26  Richard Biener  <rguenther@suse.de>
923         * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
924         (expand_omp_taskreg): Likewise.  Mark loops for fixup.
925         * tree-cfg.c (move_block_to_fn): Remap loop fathers.
926         (fixup_loop_arrays_after_move): New function.
927         (move_sese_region_to_fn): Properly outline the loop tree parts
928         of the SESE region.
930 2013-04-26  Uros Bizjak  <ubizjak@gmail.com>
932         * config/i386/i386.md (type, unit): Fix long lines.
934 2013-04-26  Richard Biener  <rguenther@suse.de>
936         * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
937         (lto-streamer-out.o): Likewise.
938         * cfgloop.c (init_loops_structure): Export, add struct function
939         argument and adjust.
940         (flow_loops_find): Adjust.
941         * cfgloop.h (enum loop_estimation): Add EST_LAST.
942         (init_loops_structure): Declare.
943         * lto-streamer-in.c: Include cfgloop.h.
944         (input_cfg): Input the loop tree.
945         * lto-streamer-out.c: Include cfgloop.h.
946         (output_cfg): Output the loop tree.
947         (output_struct_function_base): Do not drop PROP_loops.
949 2013-03-26  Richard Biener  <rguenther@suse.de>
951         * tree-cfg.c (execute_build_cfg): Build the loop tree.
952         (pass_build_cfg): Provide PROP_loops.
953         (move_sese_region_to_fn): Remove loops that are outlined into fn
954         for now.
955         * tree-inline.c: Include cfgloop.h.
956         (initialize_cfun): Do not drop PROP_loops.
957         (copy_loops): New function.
958         (copy_cfg_body): Copy loop structure.
959         (tree_function_versioning): Initialize destination loop tree.
960         * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
961         (pass_parallelize_loops): Do IL verification.
962         * loop-init.c (loop_optimizer_init): Fixup loops if required.
963         * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
964         the CFG make sure we fixup loops as well.
965         * tree-ssa-tail-merge.c: Include cfgloop.h.
966         (replace_block_by): When merging loop latches mark loops for fixup.
967         * lto-streamer-out.c (output_struct_function_base): Drop
968         PROP_loops for now.
969         * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
970         (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
971         * ipa-split.c: Include cfgloop.h.
972         (split_function): Add the new return block to the loop tree root.
973         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
974         whether we have removed the forwarder block.
975         (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
976         * cfgloop.h (place_new_loop): Declare.
977         * cfgloopmanip.c (place_new_loop): Export.
978         * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
979         (tree-switch-conversion.o): Likewise.
980         (tree-complex.o): Likewise.
981         (tree-inline.o): Likewise.
982         (tree-ssa-tailmerge.o): Likewise.
983         (ipa-split.o): Likewise.
984         (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
985         (tree-ssa-copy.o): Likewise.
986         * tree-switch-conversion.c: Include cfgloop.h
987         (process_switch): If we emit a bit-test cascade, schedule loops
988         for fixup.
989         * tree-complex.c: Include cfgloop.h.
990         (expand_complex_div_wide): Properly add new basic-blocks to loops.
991         * asan.c: Include cfgloop.h.
992         (create_cond_insert_point): Properly add new basic-blocks to
993         loops, schedule loop fixup.
994         * cfgloop.c (verify_loop_structure): Check that looks are not
995         marked for fixup.
996         * omp-low.c (expand_parallel_call): Properly add new basic-blocks
997         to loops.
998         (expand_omp_for_generic): Likewise.
999         (expand_omp_sections): Likewise.
1000         (expand_omp_atomic_pipeline): Schedule loops for fixup.
1001         * tree-ssa-copy.c: Include tree-scalar-evolution.h.
1002         (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
1003         is initialized, not when loops are present.
1004         * tree-parloops.c (parallelize_loops): Remove checking here.
1005         * passes.c (init_optimization_passes): Schedule a copy-propagation
1006         pass before complete unrolling of inner loops.
1008 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
1010         * Makefile.in (toplev.o): Depend on diagnostic-color.h.
1011         * diagnostic-color.c (should_colorize): Remove _WIN32 version.
1012         (colorize_init): Add argument to _WIN32 version.
1013         * toplev.c: Include diagnostic-color.h.
1014         (process_options): Default to -fdiagnostics-color=auto if
1015         GCC_COLORS env var is in the environment.
1016         * common.opt (fdiagnostics-color=): Add Var and Init.
1017         * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
1018         env var is in the environment, the default is auto rather than never.
1020         * diagnostic.h (file_name_as_prefix): Add context argument.
1021         * diagnostic.c (file_name_as_prefix): Likewise.  Colorize
1022         the string as locus.
1023         * langhooks.c (lhd_print_error_function): Adjust caller.
1025 2013-04-25  Lawrence Crowl  <crowl@google.com>
1027         * var-tracking.c (shared_hash_def::htab):
1028         Change type to hash_table.  Update dependent calls and types.
1030 2013-04-25  Lawrence Crowl  <crowl@google.com>
1032         * Makefile.in: Update as needed below.
1034         * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
1035         Move declaration to after the type's method definitons.
1037         * attribs.c (htab_t scoped_attributes::attribute_hash):
1038         Change type to hash_table.  Update dependent calls and types.
1040         * bitmap.c (htab_t bitmap_desc_hash):
1041         Change type to hash_table.  Update dependent calls and types.
1043         * cselib.c (htab_t cselib_hash_table):
1044         Change type to hash_table.  Update dependent calls and types.
1046         * data-streamer.h (struct string_slot): Move to lto-streamer.h.
1047         (hash_string_slot_node): Move implementation into lto-streamer.h
1048         struct string_slot_hasher.
1049         (eq_string_slot_node): Likewise.
1051         * data-streamer-out.c: Update output_block::string_hash_table
1052         dependent calls and types.
1054         * dwarf2cfi.c (htab_t trace_index):
1055         Change type to hash_table.  Update dependent calls and types.
1057         * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
1058         Change type to hash_table.  Update dependent calls and types.
1059         (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
1060         (htab_t optimize_external_refs::map): Likewise.
1061         (htab_t output_comp_unit::extern_map): Likewise.
1062         (htab_t output_comdat_type_unit::extern_map): Likewise.
1063         (htab_t output_macinfo::macinfo_htab): Likewise.
1064         (htab_t optimize_location_lists::htab): Likewise.
1065         (htab_t dwarf2out_finish::comdat_type_table): Likewise.
1067         * except.c (htab_t ehspec_hash_type):
1068         Change type to hash_table.  Update dependent calls and types.
1069         (assign_filter_values::ttypes): Likewise.
1070         (assign_filter_values::ehspec): Likewise.
1071         (sjlj_assign_call_site_values::ar_hash): Likewise.
1072         (convert_to_eh_region_ranges::ar_hash): Likewise.
1074         * gcse.c (htab_t pre_ldst_table):
1075         Change type to hash_table.  Update dependent calls and types.
1077         * ggc-common.c (htab_t saving_htab):
1078         Change type to hash_table.  Update dependent calls and types.
1079         (htab_t loc_hash): Likewise.
1080         (htab_t ptr_hash): Likewise.
1081         (call_count): Rename ggc_call_count.
1082         (call_alloc): Rename ggc_call_alloc.
1083         (loc_descriptor): Rename make_loc_descriptor.
1084         (add_statistics): Rename ggc_add_statistics.
1086         * ggc-common.c (saving_htab):
1087         Change type to hash_table.  Update dependent calls and types.
1089         * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
1090         (push_gimplify_context): Likewise.
1091         (pop_gimplify_context): Likewise.
1092         (struct gimple_temp_hash_elt): Added.
1093         (struct gimplify_hasher): Likewise.
1094         (struct gimplify_ctx.temp_htab):
1095         Change type to hash_table.  Update dependent calls and types.
1097         * gimple-fold.c: Include gimplify-ctx.h.
1099         * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
1100         Change type to hash_table.  Update dependent calls and types.
1101         (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
1102         avoid potential global name collision.
1104         * gimplify.c: Include gimplify-ctx.h.
1105         (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
1106         (htab_t gimplify_ctx::temp_htab):
1107         Update dependent calls and types for new type hash_table.
1108         (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
1109         (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
1111         * gimplify-ctx.h: New.
1112         (struct gimple_temp_hash_elt): Move from gimplify.c.
1113         (class gimplify_hasher): New.
1114         (struct gimplify_ctx): Move from gimple.h.
1115         (htab_t gimplify_ctx::temp_htab):
1116         Change type to hash_table.  Update dependent calls and types.
1118         * graphite-clast-to-gimple.c: Include graphite-htab.h.
1119         (htab_t ivs_params::newivs_index):
1120         Change type to hash_table.  Update dependent calls and types.
1121         (htab_t ivs_params::params_index): Likewise.
1122         (htab_t print_generated_program::params_index): Likewise.
1123         (htab_t gloog::newivs_index): Likewise.
1124         (htab_t gloog::params_index): Likewise.
1126         * graphite.c: Include graphite-htab.h.
1127         4htab_t graphite_transform_loops::bb_pbb_mapping):
1128         Change type to hash_table.  Update dependent calls and types.
1130         * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
1131         (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
1132         (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
1134         * graphite-dependences.c: Include graphite-htab.h.
1135         (loop_is_parallel_p): Change hash table type of parameter.
1137         * graphite-htab.h: New.
1138         (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
1139         (extern find_pbb_via_hash): Move from graphite-poly.h.
1140         (extern loop_is_parallel_p): Move from graphite-poly.h.
1141         (extern get_loop_body_pbbs): Move from graphite-poly.h.
1143         * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
1144         (extern loop_is_parallel_p): Move to graphite-htab.h.
1145         (extern get_loop_body_pbbs): Move to graphite-htab.h.
1147         * haifa-sched.c (htab_t delay_htab):
1148         Change type to hash_table.  Update dependent calls and types.
1149         (htab_t delay_htab_i2): Likewise.
1151         * ira-color.c (htab_t allocno_hard_regs_htab):
1152         Change type to hash_table.  Update dependent calls and types.
1154         * ira-costs.c (htab_t cost_classes_htab):
1155         Change type to hash_table.  Update dependent calls and types.
1157         * loop-invariant.c (htab_t merge_identical_invariants::eq):
1158         Change type to hash_table.  Update dependent calls and types.
1160         * loop-iv.c (htab_t bivs):
1161         Change type to hash_table.  Update dependent calls and types.
1163         * loop-unroll.c (htab_t opt_info::insns_to_split):
1164         Change type to hash_table.  Update dependent calls and types.
1165         (htab_t opt_info::insns_with_var_to_expand): Likewise.
1167         * lto-streamer.h (struct string_slot): Move from data-streamer.h
1168         (struct string_slot_hasher): New.
1169         (htab_t output_block::string_hash_table):
1170         Change type to hash_table.  Update dependent calls and types.
1172         * lto-streamer-in.c (freeing_string_slot_hasher): New.
1173         (htab_t file_name_hash_table):
1174         Change type to hash_table.  Update dependent calls and types.
1176         * lto-streamer-out.c: Update output_block::string_hash_table dependent
1177         calls and types.
1179         * lto-streamer.c (htab_t tree_htab):
1180         Change type to hash_table.  Update dependent calls and types.
1182         * omp-low.c: Include gimplify-ctx.h.
1184         * passes.c (htab_t name_to_pass_map):
1185         Change type to hash_table.  Update dependent calls and types.
1186         (pass_traverse): Rename to passes_pass_traverse.
1188         * plugin.c (htab_t event_tab):
1189         Change type to hash_table.  Update dependent calls and types.
1191         * postreload-gcse.c (htab_t expr_table):
1192         Change type to hash_table.  Update dependent calls and types.
1193         (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
1195         * sese.c (debug_rename_map_1): Make extern.
1196         (htab_t copy_bb_and_scalar_dependences::rename_map):
1197         Change type to hash_table.  Update dependent calls and types.
1199         * sese.h (extern debug_rename_map): Move to .c file.
1201         * store-motion.c (htab_t store_motion_mems_table):
1202         Change type to hash_table.  Update dependent calls and types.
1204         * trans-mem.c (htab_t tm_new_mem_hash):
1205         Change type to hash_table.  Update dependent calls and types.
1207         * tree-browser.c (htab_t TB_up_ht):
1208         Change type to hash_table.  Update dependent calls and types.
1210         * tree-cfg.c (htab_t discriminator_per_locus):
1211         Change type to hash_table.  Update dependent calls and types.
1213         * tree-complex.c: Include tree-hasher.h
1214         (htab_t complex_variable_components):
1215         Change type to hash_table.  Update dependent calls and types.
1217         * tree-eh.c (htab_t finally_tree):
1218         Change type to hash_table.  Update dependent calls and types.
1220         * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
1221         struct int_tree_hasher.
1222         (extern int_tree_map_eq): Likewise.
1223         (uid_decl_map_hash): Removed.
1224         (extern decl_tree_map_eq): Likewise.
1226         * tree-hasher.h: New.
1227         (struct int_tree_hasher): New.
1228         (typedef int_tree_htab_type): New.
1230         * tree-inline.c: Include gimplify-ctx.h.
1232         * tree-mudflap.c: Include gimplify-ctx.h.
1234         * tree-parloops.c: Include tree-hasher.h.
1235         (htab_t eliminate_local_variables_stmt::decl_address):
1236         Change type to hash_table.  Update dependent calls and types.
1237         (htab_t separate_decls_in_region::decl_copies): Likewise.
1239         * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
1240         Change type to hash_table.  Update dependent calls and types.
1242         * tree-sra.c (candidates):
1243         Change type to hash_table.  Update dependent calls and types.
1245         * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
1246         in tree-flow.h.
1247         (int_tree_map_hash): Likewise.
1249         * tree-ssa-dom.c (htab_t avail_exprs):
1250         Change type to hash_table.  Update dependent calls and types.
1252         * tree-ssa-live.c (var_map_base_init::tree_to_index):
1253         Change type to hash_table.  Update dependent calls and types.
1255         * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
1256         Change type to hash_table.  Update dependent calls and types.
1258         * tree-ssa-phiopt.c (seen_ssa_names):
1259         Change type to hash_table.  Update dependent calls and types.
1261         * tree-ssa-strlen.c (decl_to_stridxlist_htab):
1262         Change type to hash_table.  Update dependent calls and types.
1264         * tree-ssa-uncprop.c (equiv):
1265         Change type to hash_table.  Update dependent calls and types.
1267 2013-04-25  Jakub Jelinek  <jakub@redhat.com>
1269         PR rtl-optimization/57003
1270         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
1271         call note_stores with kill_clobbered_value callback again after
1272         killing regs_invalidated_by_call.
1274 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
1276         * config/aarch64/aarch64-simd.md
1277         (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
1278         (aarch64_simd_bsl<mode>): Likewise.
1279         * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
1281 2013-04-25  Marek Polacek  <polacek@redhat.com>
1283         PR tree-optimization/57066
1284         * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
1286 2013-04-25  James Greenhalgh  <jame.greenhalgh@arm.com>
1288         * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
1290 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
1292         * config/aarch64/aarch64-builtins.c
1293         (aarch64_fold_builtin): New.
1294         * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
1295         * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
1296         * config/aarch64/aarch64-simd-builtins.def (abs): New.
1297         * config/aarch64/arm_neon.h
1298         (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
1300 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
1301             Tejas Belagod  <tejas.belagod@arm.com>
1303         * config/aarch64/aarch64-builtins.c
1304         (aarch64_gimple_fold_builtin): New.
1305         * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
1306         * config/aarch64/aarch64-simd-builtins.def (addv): New.
1307         * config/aarch64/aarch64-simd.md (addpv4sf): New.
1308         (addvv4sf): Update.
1309         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
1311 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1313         * config/aarch64/aarch64.md
1314         (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
1316 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1318         * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
1319         (*ngcsi_uxtw): New pattern.
1321 2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1322             Julian Brown  <julian@codesourcery.com>
1324         * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
1325         (TB_DREG): Add T_V4HF.
1326         (v4hf_UP): New macro.
1327         (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
1328         (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
1329         Handle initialisation of V4HF. Adjust initialisation of reinterpret
1330         built-ins.
1331         (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
1332         (arm_vector_mode_supported_p): Handle V4HF.
1333         (arm_mangle_map): Handle V4HFmode.
1334         * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
1335         * config/arm/arm_neon_builtins.def: Add entries for
1336         vcvtv4hfv4sf, vcvtv4sfv4hf.
1337         * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
1338         (neon_vcvtv4hfv4sf): Likewise.
1339         * config/arm/neon-gen.ml: Handle half-precision floating point
1340         features.
1341         * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
1342         * config/arm/arm_neon.h: Regenerate.
1343         * config/arm/neon.ml (type elts): Add F16.
1344         (type vectype): Add T_float16x4, T_floatHF.
1345         (type vecmode): Add V4HF.
1346         (type features): Add Requires_FP_bit feature.
1347         (elt_width): Handle F16.
1348         (elt_class): Likewise.
1349         (elt_of_class_width): Likewise.
1350         (mode_of_elt): Refactor.
1351         (type_for_elt): Handle F16, fix error messages.
1352         (vectype_size): Handle T_float16x4.
1353         (vcvt_sh): New function.
1354         (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
1355         (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
1356         (string_of_mode): Handle V4HF.
1357         * doc/arm-neon-intrinsics.texi: Regenerate.
1359 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
1361         * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
1362         format specifier in 'X' case.
1364 2013-04-25  Alan Modra  <amodra@gmail.com>
1366         PR target/57052
1367         * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
1368         rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
1369         (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
1370         Repeat for many other rotate/shift and mask patterns using subregs.
1371         Name lshiftrt insns.
1372         (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
1373         on WORDS_BIG_ENDIAN.
1375 2013-04-25  Alan Modra  <amodra@gmail.com>
1377         * config.gcc: Support little-endian powerpc-linux targets.
1378         * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
1379         (LINK_OS_LINUX_SPEC): Define.
1380         * config/rs6000/linuxspe.h (TARGET_DEFAULT):
1381         Preserve MASK_LITTLE_ENDIAN.
1382         * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
1383         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
1384         * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
1385         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
1386         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
1387         * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
1388         Correct fp word order for little-endian.  Don't shift toc entries
1389         smaller than a word for little-endian.
1390         * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
1391         (bswapdi2 splits): Correct low-part subreg for little-endian.
1392         Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
1393         low/high where such is correct only for be.
1394         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
1395         little-endian for -mcall-aixdesc.
1397 2013-04-25  Alan Modra  <amodra@gmail.com>
1399         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
1400         replace_equiv_address_nv.
1402 2013-04-25  Alan Modra  <amodra@gmail.com>
1404         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
1406 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1408         Revert:
1409         2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1410         * rtl.h (struct rtx_def): ...
1412 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1414         PR rtl-optimizations/57046
1415         * lra-constraints (split_reg): Set up lra_risky_transformations_p
1416         for multi-reg splits.
1418 2013-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1420         * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
1422 2013-04-24  Sterling Augustine  <saugustine@google.com>
1424         * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
1425         (comp_dir_string, debug_str_dwo_section): New.
1426         (DEBUG_STR_DWO_SECTION): Rename to ...
1427         (DEBUG_DWO_STR_SECTION): ... this.
1428         (DEBUG_NORM_STR_SECTION): Delete.
1429         (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
1430         (DEBUG_STR_DWO_SECTION_FLAGS): New.
1431         (find_AT_string): Move most logic to ...
1432         (find_AT_string_in_table): ... here.  New.
1433         (add_top_level_skeleton_die_attrs): Call comp_dir_string and
1434         add_skeleton_AT_string.  Delete logic.
1435         (output_skeleton_debug_sections): Remove call to
1436         add_top_level_skeleton_die_attrs.
1437         (add_comp_dir_attribute): Move logic to comp_dir_string.
1438         (dwarf2out_init): Initialize debug_str_dwo_section.
1439         (output_indirect_string): Call find_string_form.
1440         (output_indirect_strings): Rewrite.
1441         (prune_unused_types): Empty skeleton_debug_str_hash.
1442         Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
1443         (dwarf2out_finish):  Call output_indirect_strings.
1445 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
1447         * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
1449 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1451         * rtl.h (struct rtx_def): Add comment for field jump.
1452         (LRA_SUBREG_P): New macro.
1453         * recog.c (register_operand): Check LRA_SUBREG_P.
1454         * lra.c (lra): Add note at the end of RTL code. Align non-empty
1455         stack frame.
1456         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
1457         (lra_final_code_change): Skip subreg change for operators.
1458         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
1459         if there are no operand changes.
1460         * lra-constraints.c (curr_insn_set): New.
1461         (match_reload): Set LRA_SUBREG_P.
1462         (emit_spill_move): Ditto.
1463         (check_and_process_move): Use curr_insn_set. Process only single
1464         set insns.  Don't initialize sec_mem_p and change_p.
1465         (simplify_operand_subreg): Use LRA_SUBREG_P.
1466         (reg_in_class_p): New function.
1467         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
1468         of #ifdef.  Add code to remove cycling.
1469         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
1470         non-null disp.  Reload inner instead of disp when base and index
1471         are null.  Try to put lo_sum into register.
1472         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
1473         (check_and_process_move): Move code for move cost check to
1474         simple_move_p.  Remove equiv_substitution.
1475         (simple_move_p): New function.
1476         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
1477         curr_insn_set.  Call check_and_process_move only for single set
1478         insns.  Use the new function.  Move call of check_and_process_move
1479         after operand equiv substitution and address process.
1481 2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
1483         * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
1484         (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
1485         (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
1487 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
1489         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
1491 2013-04-24  Marek Polacek  <polacek@redhat.com>
1493         * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
1494         * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
1495         (select_loops_exit_conditions): Likewise.
1496         (number_of_iterations_for_all_loops): Likewise.
1497         (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
1498         (scev_analysis): Likewise.
1500 2013-04-02  Catherine Moore  <clm@codesourcery.com>
1501             Chao-ying Fu <fu@mips.com>
1503         * config/mips/micromips.md (jraddiusp): New pattern.
1504         * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
1505         instruction if possible.
1507 2013-04-24  Alan Modra  <amodra@gmail.com>
1509         * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
1511 2013-04-24  Julian Brown  <julian@codesourcery.com>
1512             Chung-Lin Tang  <cltang@codesourcery.com>
1514         * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
1515         dependency behavior in enumeration type DIE generation. Add TODO note
1516         to comments about future DW_FORM_sdata/udata re-work of related code.
1518 2013-04-23  Lawrence Crowl  <crowl@google.com>
1520         * Makefile.in: Update as needed below.
1522         * hash-table.h (class hash_table):
1523         Correct many methods with parameter types compare_type to the correct
1524         value_type.  (Correct code was unlikely to notice the change.)
1525         (hash_table::elements_with_deleted) New.
1526         (class hashtable::iterator): New.
1527         (hashtable::begin()): New.
1528         (hashtable::end()): New.
1529         (FOR_EACH_HASH_TABLE_ELEMENT): New.
1531         * statistics.c (statistics_hashes):
1532         Change type to hash_table.  Update dependent calls and types.
1534         * tree-into-ssa.c (var_infos):
1535         Change type to hash_table.  Update dependent calls and types.
1537         * tree-ssa-coalesce.c (struct coalesce_list_d.list):
1538         Change type to hash_table.  Update dependent calls and types.
1540         * tree-ssa-loop-im.c (struct mem_ref.refs):
1541         Change type to hash_table.  Update dependent calls and types.
1543         * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
1544         Change type to hash_table.  Update dependent calls and types.
1546         * tree-ssa-sccvn.c (vn_tables_s::nary):
1547         Change type to hash_table.  Update dependent calls and types.
1548         (vn_tables_s::phis): Likewise.
1549         (vn_tables_s::references): Likewise.
1551         * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
1552         (vn_reference_eq): Update parameter and return types.
1554         * tree-ssa-structalias.c (pointer_equiv_class_table):
1555         Change type to hash_table.  Update dependent calls and types.
1556         (location_equiv_class_table): Likewise.
1558         * tree-vect-data-refs.c: Consequential changes for making
1559         peeling a hash_table.
1561         * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
1562         (destroy_loop_vec_info): Dependent hash_table update.
1564         * tree-vectorizer.h (peeling_htab):
1565         Change type to hash_table.  Update dependent calls and types.
1567 2013-04-23  Shiva Chen  <shiva0217@gmail.com>
1569         * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
1570         to check the register content is equal or not.
1571         * lra-constraints.c (match_reload): Use lra_assign_reg_val
1572         to assign register content record.
1573         * lra-eliminations.c (update_reg_eliminate): Use
1574         lra_update_reg_val_offset to update register content offset.
1575         * lra-int.h (struct lra_reg): Add offset member.
1576         (lra_reg_val_equal_p): New static inline function.
1577         (lra_update_reg_val_offset): New static inline function.
1578         (lra_assign_reg_val): New static inline function.
1579         * lra.c (lra_create_new_reg): Use lra_assign_reg_val
1580         to assign register content record.
1581         (initialize_lra_reg_info_element): Initial offset to zero.
1583 2013-04-23  Catherine Moore  <clm@codesourcery.com>
1585         * config/mips/mips.md (*movhi_internal, *movqi_internal): New
1586         operands.  Record compression.
1588 2013-04-23  Xinliang David Li  <davidxl@google.com>
1590         * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
1592 2013-04-23  Richard Biener  <rguenther@suse.de>
1594         PR middle-end/57036
1595         * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
1596         parameter, only add abnormal goto edges from the copied body
1597         if the call could perform abnormal gotos.
1598         (copy_cfg_body): Adjust.
1600 2013-04-23  Sofiane Naci  <sofiane.naci@arm.com>
1602         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
1604 2013-04-23  Andreas Schwab  <schwab@linux-m68k.org>
1606         * coretypes.h (gimple_stmt_iterator): Add struct to make
1607         compatible with C.
1609 2013-04-23  Richard Biener  <rguenther@suse.de>
1611         PR tree-optimization/57026
1612         * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
1613         from SSA names occuring in abnormal PHI nodes.
1615 2013-04-22  Andi Kleen  <ak@linux.intel.com>
1617         * lto/lto.c (print_lto_report_1): Fix LTO report names.
1619 2013-04-22  Andi Kleen  <ak@linux.intel.com>
1621         * lto/lto.c (print_lto_report_1): Declare early.
1622         (read_cgraph_and_symbols): Call print_lto_report_1 early.
1624 2013-04-22  Andi Kleen  <ak@linux.intel.com>
1626         * common.opt (-flto-report-wpa): Add.
1627         * doc/invoke.texi (-flto-report-wpa): Add.
1628         * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
1629         (lto_main): dito.
1631 2013-04-22  Xinliang David Li  <davidxl@google.com>
1633         * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
1634         * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
1635         * Makefile.in: New dependency
1637             David Daney <ddaney.cavm@gmail.com>
1639         * configure.ac (gcc_cv_as_micromips_support):  Use the
1640         --fatal-warnings option.
1641         * configure: Regenerate.
1643 2013-04-22  Marek Polacek  <polacek@redhat.com>
1645         PR sanitizer/56990
1646         * tsan.c (instrument_expr): Don't instrument expression
1647         in case its size is zero.
1649 2013-04-22  Uros Bizjak  <ubizjak@gmail.com>
1651         PR target/57032
1652         Revert:
1653         2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
1655         * config/alpha/alpha.c (TARGET_LRA_P): New define.
1657 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
1659         * coretypes.h (gimple_stmt_iterator_d): Forward declare.
1660         (gimple_stmt_iterator): New typedef.
1661         * gimple.h (gimple_stmt_iterator): Rename to...
1662         (gimple_stmt_iterator_d): ... This.
1663         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
1664         trees be valid for GIMPLE and GENERIC.
1665         (TARGET_GIMPLE_FOLD_BUILTIN): New.
1666         * gimple-fold.c (gimple_fold_call): Call target hook
1667         gimple_fold_builtin.
1668         * hooks.c (hook_bool_gsiptr_false): New.
1669         * hooks.h (hook_bool_gsiptr_false): New.
1670         * target.def (fold_stmt): New.
1671         * doc/tm.texi: Regenerate.
1673 2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
1675         PR target/57018
1676         * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
1677         a set sp if no stack realignment.
1679 2013-04-22  Nick Clifton  <nickc@redhat.com>
1681         * config.gcc (tilegx-linux): Extend extra_objs rather than
1682         overwriting it.
1683         (tilepro-linux): Likewise.
1685 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
1687         * config/aarch64/aarch64-builtins.c
1688         (CF): Remove.
1689         (CF0, CF1, CF2, CF3, CF4, CF10): New.
1690         (VAR<1-12>): Add MAP parameter.
1691         (BUILTIN_*): Likewise.
1692         * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
1693         * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
1694         (aarch64_ushl_n<mode>): Likewise.
1695         (aarch64_sshr_n<mode>): Likewise.
1696         (aarch64_ushr_n<mode>): Likewise.
1697         (aarch64_<maxmin><mode>): Likewise.
1698         (aarch64_sqrt<mode>): Likewise.
1699         * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
1700         (vshr<q>_n_*): Likewise.
1702 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
1704         * config/aarch64/aarch64-builtins.c
1705         (aarch64_simd_builtin_type_mode): Handle SF types.
1706         (sf_UP): Define.
1707         (BUILTIN_GPF): Define.
1708         (aarch64_init_simd_builtins): Handle SF types.
1709         * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
1710         (frecps): Likewise.
1711         (frecpx): Likewise.
1712         * config/aarch64/aarch64-simd.md
1713         (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
1714         (aarch64_frecpe<mode>): New.
1715         (aarch64_frecps<mode>): Likewise.
1716         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
1717         (v8type): Add frecp<esx>.
1718         (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
1719         (aarch64_frecps<mode>): Likewise.
1720         * config/aarch64/iterators.md (FRECP): New.
1721         (frecp_suffix): Likewise.
1722         * config/aarch64/arm_neon.h
1723         (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
1725 2013-04-22  Christian Bruel  <christian.bruel@st.com>
1727         PR target/56995
1728         * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
1729         (REG_CLASS_NAMES): Idem.
1730         (REG_CLASS_CONTENTS): Idem.
1731         (REGCLASS_HAS_FP_REG): Idem.
1732         * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
1733         (sh_conditional_register_usage): Idem.
1735 2013-04-21  Jeff Law  <law@redhat.com>
1737         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
1738         (ssa_forward_propagate_and_combine): Use it.
1740 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1742         * lra.c: Update the flow chart diagram.
1744 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1746         PR rtl-optimization/56847
1747         * lra-constraints.c (process_alt_operands): Discourage alternative
1748         with non-matche doffsettable memory constraint fro memory with
1749         known offset.
1751 2013-04-19  Richard Biener  <rguenther@suse.de>
1753         PR tree-optimization/56982
1754         * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
1755         function.
1756         * gimplify.c (gimplify_call_expr): Notice special calls.
1757         (gimplify_modify_expr): Likewise.
1758         * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
1759         abnormal control flow receivers.
1760         (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
1761         in the same way as cfun->has_nonlocal_labels.
1762         (gimple_purge_dead_abnormal_call_edges): Likewise.
1763         (stmt_starts_bb_p): Make setjmp-like abnormal control flow
1764         receivers start a basic-block.
1766 2013-04-19  Richard Biener  <rguenther@suse.de>
1768         * tree-vectorizer.h (struct _slp_instance): Move load_permutation
1769         member ...
1770         (struct _slp_tree): ... here.  Make it a vector of unsigned ints.
1771         (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
1772         (SLP_TREE_LOAD_PERMUTATION): Add.
1773         (vect_transform_slp_perm_load): Adjust prototype.
1774         * tree-vect-slp.c (vect_free_slp_tree): Adjust.
1775         (vect_free_slp_instance): Likewise.
1776         (vect_create_new_slp_node): Likewise.
1777         (vect_supported_slp_permutation_p): Remove.
1778         (vect_slp_rearrange_stmts): Adjust.
1779         (vect_supported_load_permutation_p): Likewise.  Inline
1780         vect_supported_slp_permutation_p here.
1781         (vect_analyze_slp_instance): Compute load permutations per
1782         slp node instead of per instance.
1783         (vect_get_slp_defs): Adjust.
1784         (vect_transform_slp_perm_load): Likewise.
1785         (vect_schedule_slp_instance): Remove redundant code.
1786         (vect_schedule_slp): Remove hack for PR56270, add it ...
1787         * tree-vect-stmts.c (vectorizable_load): ... here, do not
1788         CSE loads for SLP.  Adjust.
1790 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
1792         * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
1793         spelling in two comments.
1795 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
1797         PR target/56797
1798         * config/arm/arm.c (load_multiple_sequence): Require SP
1799         as base register for loads if SP is in the register list.
1801 2013-04-19  Martin Jambor  <mjambor@suse.cz>
1803         PR tree-optimization/56718
1804         * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
1805         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
1806         and made public.  Adjusted all callers.
1807         (ipa_intraprocedural_devirtualization): New function.
1808         * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
1809         (ipa_intraprocedural_devirtualization): Likewise.
1810         * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
1812 2013-04-19  Richard Biener  <rguenther@suse.de>
1814         PR tree-optimization/57000
1815         * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
1817 2013-04-19  Terry Guo  <terry.guo@arm.com>
1819         * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
1820         Replace with ...
1821         (cortex_m4_v_a,  cortex_m4_v_b): ... new cpu units.
1822         (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
1823         (cortex_m4_fmacs): Use new reservations.
1824         (cortex_m4_f_load, cortex_m4_f_store): Likewise.
1826 2013-04-18  Vladimir Makarov  <vmakarov@redhat.com>
1828         PR rtl-optimization/56999
1829         * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
1830         related code.
1831         (lra_coalesce): Remove split_origin_bitmap and related code.
1832         * lra.c (lra): Coalesce after undoing inheritance.  Recreate live
1833         ranges if necessary.
1835 2013-04-18  Uros Bizjak  <ubizjak@gmail.com>
1837         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
1838         New array.
1839         (ix86_expand_call): Remove clobbered_registers array and use
1840         x86_64_ms_sysv_extra_clobbered_registers instead.
1841         * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
1842         Declare here.
1843         * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
1844         predicate.
1845         * config/i386/i386.md (*call_rex64_ms_sysv): Use
1846         call_rex64_ms_sysv_operation predicate.  Remove explicit clobbers.
1847         (*call_value_rex64_ms_sysv): Ditto.
1849 2013-04-18  Cary Coutant  <ccoutant@google.com>
1851         * dwarf2out.c (output_pubnames): Check die_perennial_p of
1852         parent instead of die_mark.
1854 2013-04-18  Diego Novillo  <dnovillo@google.com>
1856         * gimple.c (create_gimple_tmp): New.
1857         (get_expr_type): New.
1858         (build_assign): New.
1859         (build_type_cast): New.
1860         * gimple.h (enum ssa_mode): Define.
1861         (gimple_seq_set_location): New.
1862         * asan.c (build_check_stmt): Change some gimple_build_* calls
1863         to use build_assign and build_type_cast.
1865 2013-04-18  Richard Biener  <rguenther@suse.de>
1867         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
1868         handle negative step.  Remove redundant checks.
1869         (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
1870         * tree-vect-stmts.c (vectorizable_load): Instead of asserting
1871         for negative step and grouped loads fail to vectorize.
1873 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
1875         * emit-rtl.c (reset_insn_used_flags): New function.
1876         (reset_all_used_flags): Use it.
1877         (verify_insn_sharing): New function.
1878         (verify_rtl_sharing): Fix verification for SEQUENCEs.
1880 2013-04-18  Jakub Jelinek  <jakub@redhat.com>
1882         PR tree-optimization/56984
1883         * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
1884         and (x >> M) >= N don't register any assertion if N << M is the
1885         minimum value.
1887 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
1889         * lower-subreg.c (resolve_simple_move): If called self-recursive,
1890         do not delete_insn insns that have not yet been emitted, only
1891         unlink them with remove_insn.
1892         * df-scan.c (df_insn_delete): Revert r197492.
1894 2013-04-17  Steven Bosscher  <steven@gcc.gnu.org>
1896         * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
1897         * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
1899 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
1901         * config/arm/arm.md (movsicc_insn): Convert define_insn into
1902         define_insn_and_split.
1903         (and_scc,ior_scc,negscc): Likewise.
1904         (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
1906 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
1908         * config/arm/arm.c (use_return_insn): Return 0 for targets that
1909         can benefit from using a sequence of LDRD instructions in epilogue
1910         instead of a single LDM instruction.
1912 2013-04-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1914         PR 45688
1915         * doc/extend.texi: Fix typo.
1917 2013-04-17  Richard Biener  <rguenther@suse.de>
1919         * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
1920         (vect_build_slp_tree): ... here.
1921         (vect_build_slp_tree_1): Compute which stmts of the SLP group
1922         match.  Remove special-casing of mismatched complex loads.
1923         (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
1924         re-try the match with swapped commutative operands.
1925         (vect_supported_load_permutation_p): Remove special-casing of
1926         mismatched complex loads.
1927         (vect_analyze_slp_instance): Adjust.
1929 2013-04-17  Richard Biener  <rguenther@suse.de>
1931         PR rtl-optimization/56921
1932         * cfgloop.h (struct loop): Add simple_loop_desc member.
1933         (struct niter_desc): Mark with GTY(()).
1934         (simple_loop_desc): Do not use aux field but simple_loop_desc.
1935         * loop-iv.c (get_simple_loop_desc): Likewise.
1936         (free_simple_loop_desc): Likewise.
1938         Revert
1939         2013-04-16  Richard Biener  <rguenther@suse.de>
1941         PR rtl-optimization/56921
1942         * loop-init.c (pass_rtl_move_loop_invariants): Add
1943         TODO_do_not_ggc_collect to todo_flags_finish.
1944         (pass_rtl_unswitch): Same.
1945         (pass_rtl_unroll_and_peel_loops): Same.
1946         (pass_rtl_doloop): Same.
1948 2013-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1950         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
1951         (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
1952         Use nonoverlapping_component_refs_of_decl_p to disambiguate component
1953         references.
1954         (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
1955         * tree-streamer.c (record_common_node): Adjust reference in comment.
1957 2013-04-17  Terry Guo  <terry.guo@arm.com>
1959         * config/arm/cortex-m4.md: Add a new bypass.
1961 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1963         * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
1964         New pattern.
1965         (*subs_<optab><mode>_multp2): New pattern.
1966         (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
1967         (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
1969 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1971         * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
1972         (*subs_mul_imm_<mode>): New pattern.
1974 2013-04-16  David Edelsohn  <dje.gcc@gmail.com>
1976         PR target/56948
1977         * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
1978         (vsx_movti_64bit): Change j->wa to O->wa.  Add n->r alternative.
1979         (vsx_movti_32bit): Change j->wa to O->wa.
1981 2013-04-16  Richard Biener  <rguenther@suse.de>
1983         PR rtl-optimization/56921
1984         * loop-init.c (pass_rtl_move_loop_invariants): Add
1985         TODO_do_not_ggc_collect to todo_flags_finish.
1986         (pass_rtl_unswitch): Same.
1987         (pass_rtl_unroll_and_peel_loops): Same.
1988         (pass_rtl_doloop): Same.
1990 2013-04-16  Greta Yorsh  <Greta.Yorsh@arm.com>
1992         * config/arm/arm.c (emit_multi_reg_push): New declaration
1993         for an existing function.
1994         (arm_emit_strd_push): New function.
1995         (arm_expand_prologue): Used here.
1996         (arm_emit_ldrd_pop): New function.
1997         (arm_expand_epilogue): Used here.
1998         (arm_get_frame_offsets): Update condition.
1999         (arm_emit_multi_reg_pop): Add a special case for load of a single
2000         register with writeback.
2002 2013-04-16  Uros Bizjak  <ubizjak@gmail.com>
2004         * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
2005         description.
2007 2013-04-16  Richard Biener  <rguenther@suse.de>
2009         PR tree-optimization/56756
2010         * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
2011         (first_mem_ref_loc): New.
2012         (execute_sm): Place the load temporarily before a previous
2013         access instead of in the latch edge to ensure its SSA dependencies
2014         are defined at points dominating the load.
2016 2013-04-16  Steven Bosscher  <steven@gcc.gnu.org>
2018         * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
2019         correct fix by moving header and footer insn to the footer of
2020         the merged basic block.  Clear BB_END of the merged-away block.
2022         PR middle-end/43631
2023         * emit-rtl.c (make_note_raw): New function.
2024         (link_insn_into_chain): New static inline function.
2025         (add_insn): Use it.
2026         (add_insn_before, add_insn_after): Factor insn chain linking code...
2027         (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
2028         using link_insn_into_chain.
2029         (note_outside_basic_block_p): New helper function for emit_note_after
2030         and emit_note_before.
2031         (emit_note_after): Use nobb variant of add_insn_after if the note
2032         should not be contained in a basic block.
2033         (emit_note_before): Use nobb variant of add_insn_before if the note
2034         should not be contained in a basic block.
2035         (emit_note_copy): Use make_note_raw.
2036         (emit_note): Likewise.
2037         * bb-reorder.c (insert_section_boundary_note): Remove hack to set
2038         BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
2039         * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
2040         the moved barrier the tail of the basic block it follows.
2041         * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
2043 2013-04-15  Jakub Jelinek  <jakub@redhat.com>
2045         PR tree-optimization/56962
2046         * gimple-ssa-strength-reduction.c (record_increment): Only set
2047         initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
2048         either rhs1 or rhs2 is equal to c->base_expr.
2050 2013-04-15  Richard Biener  <rguenther@suse.de>
2052         PR tree-optimization/56933
2053         * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
2054         member.
2055         (GROUP_READ_WRITE_DEPENDENCE): Remove.
2056         (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
2057         * tree-vect-data-refs.c (vect_analyze_group_access): Move
2058         dependence check ...
2059         vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
2060         ... here.
2061         * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
2062         GROUP_READ_WRITE_DEPENDENCE.
2064 2013-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2066         * emit-rtl.c (reset_all_used_flags): New function.
2067         (verify_rtl_sharing): Call reset_all_used_flags before and after
2068         performing the checks.
2070 2013-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2072         * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
2073         * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
2074         * config/arm/constraints.md (De): New constraint.
2075         * config/arm/neon.md (anddi3_neon): Delete.
2076         (neon_vand<mode>): Expand to standard anddi3 pattern.
2077         * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
2078         Move earlier in the file.
2079         (neon_inv_logic_op2): Likewise.
2080         (arm_anddi_operand_neon): New predicate.
2082 2013-04-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2084         * configure.ac (gcc_cv_ld_as_needed): Set
2085         gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
2086         Use -z ignore, -z record on *-*-solaris2*.
2087         (HAVE_LD_AS_NEEDED): Update comment.
2088         (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
2089         * configure: Regenerate.
2090         * config.in: Regenerate.
2091         * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
2092         LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
2093         * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
2094         * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
2095         equivalents.  Fix markup.
2096         * doc/tm.texi: Regenerate.
2098 2013-04-15  Andrew Hsieh  <andrewhsieh.google.com>
2100         * config/i386/i386.opt: New option mstack-protector-guard=.
2101         * config/i386/i386-opts.h: Add enum stack_protector_guard.
2102         * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
2103         TARGET_SSP_TLS_GUARD.
2104         * config/i386/i386.c (ix86_option_override_internal): Set
2105         ix86_stack_protector_guard.
2106         * config/i386/i386.md (stack_protect_set): Enable for
2107         TARGET_SSP_TLS_GUARD only.
2108         (stack_protect_set_<mode>): Ditto.
2109         (stack_protect_test): Ditto.
2110         (stack_protect_test_<mode>): Ditto.
2111         * doc/invoke.texi (i386 Option): Document.
2113 2013-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2115         PR target/56890
2116         * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
2117         (S_MODES): Set H_MODE bit.
2118         (SF_MODES): Set only S_MODE and SF_MODE bits.
2119         (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
2120         (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
2121         <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
2122         <MODE_FLOAT>: Likewise.
2124 2013-04-15  Joey Ye  <joey.ye@arm.com>
2126         * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
2128 2013-04-15  Joey Ye  <joey.ye@arm.com>
2130         * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
2131         for real far jump.
2132         (thumb_far_jump_used_p): Count instruction size and set
2133         far_jump_used.
2135 2013-04-14  Eric Botcazou  <ebotcazou@adacore.com>
2137         * reorg.c (fill_simple_delay_slots): Reindent block of code.
2138         * resource.c (mark_target_live_regs): Reformat conditional block.
2140 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
2142         * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
2143         notes, they are emitted only just before final.
2144         * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
2146 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
2148         * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
2149         * cfgrtl.c (delete_insn): Call it here instead.
2150         * lra-spills.c (lra_final_code_change): Use delete_insn.
2151         * haifa-sched.c (sched_remove_insn): Likewise.
2152         * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
2153         returning to the nop pool.
2154         (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
2155         use delete_insn for definitive removal.  Clear BLOCK_FOR_INSN.
2157 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
2159         * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
2160         * doc/tm.texi: Regenerated.
2162 2013-04-12  Uros Bizjak  <ubizjak@gmail.com>
2164         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
2165         QImode checks.
2167 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
2169         * df-core.c (df_find_def): Compare register numbers.
2170         (df_find_use): Likewise.
2172 2013-04-12  Vladimir Makarov  <vmakarov@redhat.com>
2174         PR target/56903
2175         * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
2176         lra_in_progress for return.
2178 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
2180         * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
2181         define_insn into define_insn_and_split and emit movsicc patterns.
2183 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
2185         * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
2187 2013-04-12  Richard Biener  <rguenther@suse.de>
2189         * tree-pass.h (TODO_do_not_ggc_collect): New.
2190         * passes.c (execute_one_ipa_transform_pass): Honor
2191         TODO_do_not_ggc_collect.
2192         (execute_one_pass): Likewise.
2194         Revert
2195         2013-04-10  Richard Biener  <rguenther@suse.de>
2197         * passes.c (init_optimization_passes): Remove reload pass.
2198         * ira.c (do_reload): Merge into ...
2199         (ira): ... this.
2200         (rest_of_handle_reload): Remove.
2201         (pass_reload): Likewise.
2202         * config/i386/i386.c (ix86_option_override): Refer to ira instead
2203         of reload for vzeroupper pass placement.
2205 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
2207         PR tree-optimization/56918
2208         PR tree-optimization/56920
2209         * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
2210         instead of op1 - op2.  Pass 2 * TYPE_PRECISION (type) as second
2211         argument to rshift method.  For 2 * HOST_BITS_PER_WIDE_INT precision
2212         use wide_mul_with_sign method.
2214 2013-04-12  Richard Biener  <rguenther@suse.de>
2216         * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
2217         not be considered a gimple constant.
2219 2013-04-12  Marc Glisse  <marc.glisse@inria.fr>
2221         * fold-const.c (const_binop): Handle vector shifts by a scalar.
2222         (fold_binary_loc): Call const_binop also for mixed vector-scalar
2223         operations.
2225 2013-04-12  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2226             Jakub Jelinek  <jakub@redhat.com>
2228         * opts.c: Include diagnostic-color.h.
2229         (common_handle_option): Handle OPT_fdiagnostics_color_.
2230         * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
2231         (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
2232         (diagnostic-color.o): New.
2233         * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
2234         (diagnostic_color_rule): New enum.
2235         * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
2236         * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
2237         the location string.
2238         * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
2239         either NULL, or color kind.
2240         * diagnostic-color.c: New file.
2241         * diagnostic-color.h: New file.
2242         * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
2243         arguments.
2244         * doc/invoke.texi (-fdiagnostics-color): Document.
2245         * pretty-print.h (pp_show_color): Define.
2246         (struct pretty_print_info): Add show_color field.
2247         * diagnostic.c: Include diagnostic-color.h.
2248         (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
2249         macros.  Colorize error:, warning: etc. strings and also the location
2250         string.
2251         (diagnostic_show_locus): Colorize the caret line.
2252         * pretty-print.c: Include diagnostic-color.h.
2253         (pp_base_format): Handle %r and %R format specifiers.  Colorize strings
2254         inside of %< %> quotes or quoted through q format modifier.
2256 2013-04-12  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2258         * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
2260 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2262         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
2263         code in CC_NZ mode.
2264         * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
2265         pattern.
2267 2013-04-11  Marek Polacek  <polacek@redhat.com>
2269         PR tree-optimization/48184
2270         * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
2272 2013-04-11  Eric Botcazou  <ebotcazou@adacore.com>
2274         * stor-layout.c (skip_simple_constant_arithmetic): Move to...
2275         * tree.c (skip_simple_constant_arithmetic): ...here and make public.
2276         (skip_simple_arithmetic): Tidy up.
2277         * tree.h (skip_simple_constant_arithmetic): Declare.
2279 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2281         * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
2283 2013-04-11  Richard Biener  <rguenther@suse.de>
2285         * tree-vect-loop.c (get_initial_def_for_induction): Properly
2286         generate vector constants.
2288 2013-04-11  Richard Biener  <rguenther@suse.de>
2290         PR tree-optimization/56878
2291         * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
2292         * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
2293         New function.
2294         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2295         Prefer to align the DR with the most invariant base address.
2297 2013-04-11  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2299         * opts.c (common_handle_option): Fix formatting and add FALLTHRU
2300         comment.
2302 2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
2304         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
2305         floating-point vector comparisons against 0.
2307 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
2309         PR tree-optimization/56899
2310         * fold-const.c (extract_muldiv_1): Apply distributive law
2311         only if TYPE_OVERFLOW_WRAPS (ctype).
2313 2013-04-11  Bin Cheng  <bin.cheng@arm.com>
2315         PR target/56124
2316         * ira-costs.c (scan_one_insn): Check whether the source rtx of
2317         loading has side effect.
2319 2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
2321         * config/sparc/sparc.c: Include tree-pass.h.
2322         (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
2323         (sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
2324         head of file.  Change return type.  Split off gate function.
2325         (sparc_gate_work_around_errata): New function.
2326         (pass_work_around_errata): New pass definition.
2327         (insert_pass_work_around_errata) New pass insert definition to
2328         insert pass_work_around_errata just after delayed-branch scheduling.
2329         (sparc_option_override): Insert the pass.
2330         * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
2332 2013-04-10  David S. Miller  <davem@davemloft.net>
2334         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
2335         or -mcpu=hypersparc.
2337         * target.def (cstore_mode): New hook.
2338         * target.h: Include insn-codes.h
2339         * targhooks.c: Likewise.
2340         (default_cstore_mode): New function.
2341         * targhooks.h: Declare it.
2342         * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
2343         * doc/tm.texi: Rebuild.
2344         * expmed.c (emit_cstore): Obtain cstore boolean result mode using
2345         target hook, rather than inspecting the insn_data.
2346         * config/sparc/sparc.c (sparc_cstore_mode): New function.
2347         (TARGET_CSTORE_MODE): Redefine.
2348         (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
2349         result patterns.
2350         * config/sparc/predicates.md (cstore_result_operand): New special
2351         predicate.
2352         * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
2353         Use it for operand 0.
2354         (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
2355         (*snesi_special): Likewise.
2356         (*snesi_zero): Likewise.
2357         (*seqsi_zero): Likewise.
2358         (*sltu_insn): Likewise.
2359         (*sgeu_insn): Likewise.
2360         (*seqdi_special): Make operand 0 and comparison operation be of
2361         DImode.
2362         (*snedi_special): Likewise.
2363         (*snedi_special_vis3): Likewise.
2364         (*neg_snesi_zero): Rename to *neg_snesisi_zero.
2365         (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
2366         (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
2367         (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
2368         (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
2369         (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
2370         (*sltu_extend_sp64): Likewise.
2371         (*neg_sltu_insn): Rename to *neg_sltusi_insn.
2372         (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
2373         (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
2374         (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
2375         (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
2377 2013-04-10  Yufeng Zhang  <yufeng.zhang@arm.com>
2379         * config/aarch64/aarch64.c (aarch64_print_extension): New function.
2380         (aarch64_start_file): Use the new function.
2382 2013-04-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2383             Jason Merrill  <jason@redhat.com>
2385         * common.opt: Add -gdwarf.
2386         * opts.c (common_handle_option): Handle it.
2387         * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
2389 2013-04-10  Richard Biener  <rguenther@suse.de>
2391         * passes.c (execute_todo): Do not call ggc_collect conditional here.
2392         (execute_one_ipa_transform_pass): But unconditionally here.
2393         (execute_one_pass): And here.
2394         (init_optimization_passes): Remove reload pass.
2395         * tree-pass.h (TODO_ggc_collect): Remove.
2396         (pass_reload): Likewise.
2397         * ira.c (do_reload): Merge into ...
2398         (ira): ... this.
2399         (rest_of_handle_reload): Remove.
2400         (pass_reload): Likewise.
2401         * config/i386/i386.c (ix86_option_override): Refer to ira instead
2402         of reload for vzeroupper pass placement.
2403         * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
2404         and todo_flags_finish of all passes.
2406 2013-04-10  Richard Biener  <rguenther@suse.de>
2408         * tree-vectorizer.h (struct _slp_oprnd_info): Remove
2409         first_const_oprnd field, rename first_def_type to first_op_type.
2410         * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
2411         (vect_get_and_check_slp_defs): Always use the type of the
2412         operand.  Allow mixed vect_external_def, vect_constant_def types.
2413         (vect_get_constant_vectors): Handle mixed vect_external_def,
2414         vect_constant_def types.
2416 2013-04-10  Joern Rennecke <joern.rennecke@embecosm.com>
2418         PR tree-optimization/55524
2419         * tree-ssa-math-opts.c
2420         (convert_mult_to_fma): Don't use an fms construct
2421         when we don't have an fms operation, but fnma, and it looks
2422         likely that we'll be able to use the latter.
2424 2013-04-10  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
2426         * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
2427         function.
2428         * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
2429         inline fail caused by overwritable functions.
2431 2013-04-10  Chung-Ju Wu  <jasonwucj@gmail.com>
2433         * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
2434         unnecessary bits in the constant power of two case.
2436 2013-04-10  Richard Biener  <rguenther@suse.de>
2438         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
2439         broken code swapping operands.
2440         (vect_build_slp_tree): Do not compute load permutations here.
2441         (vect_analyze_slp_instance): Compute load permutations here,
2442         after building the SLP tree.
2444 2013-04-09  Christian Bruel  <christian.bruel@st.com>
2446         * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
2447         of next/prev_real_insn.
2449 2013-04-09  Jan Hubicka  <jh@suse.cz>
2451         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
2452         Drop aliased parameter.
2453         (function_and_variable_visibility): Do not handle alias pairs.
2454         * cgraph.c (varpool_externally_visible_p): Update prototype.
2455         * varpool.c (varpool_add_new_variable): Update.
2457 2013-04-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2459         * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
2461 2013-04-09  Steven Bosscher  <steven@gcc.gnu.org>
2463         * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
2465         * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
2467 2013-04-09  Marek Polacek  <polacek@redhat.com>
2469         PR tree-optimization/48762
2470         * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
2472 2013-04-09  Richard Biener  <rguenther@suse.de>
2474         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
2475         dealing with cost.
2476         (vect_build_slp_tree): Likewise.
2477         (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
2478         calculating the cost of a SLP instance.
2479         (vect_analyze_slp_instance): Use it from here, after building
2480         the SLP tree.
2482 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
2484         PR middle-end/56883
2485         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
2486         expand_omp_for_static_chunk): Use simple_p = true in
2487         force_gimple_operand_gsi calls when assigning to addressable decls.
2489 2013-04-09  Jeff Law  <law@redhat.com>
2491         * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
2492         when the boolean was created by converting a wider object which
2493         had a boolean range.
2495 2013-04-09  Richard Biener  <rguenther@suse.de>
2497         * tree-vectorizer.h (slp_void_p): Remove.
2498         (slp_tree): Typedef before _slp_tree declaration.
2499         (struct _slp_tree): Use a vector of slp_tree as children.
2500         (vect_get_place_in_interleaving_chain): Remove.
2501         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
2502         Move ...
2503         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
2504         and make static.
2505         (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
2506         vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
2507         vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
2508         vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
2509         Use slp_node instead of slp_void_p and adjust.
2511 2013-04-09  Richard Biener  <rguenther@suse.de>
2513         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
2514         work that is not necessary.
2516 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
2518         PR tree-optimization/56854
2519         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
2520         forward into clobber stmts if it would change MEM_REF lhs into
2521         non-MEM_REF.
2523 2013-04-09  Maxim Kuvyrkov  <maxim@kugelworks.com>
2525         * tree.c (type_hash_lookup, type_hash_add): Make static.
2526         * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
2528 2013-04-09  Richard Biener  <rguenther@suse.de>
2530         * tree.h (unsave_expr_now): Remove.
2531         * tree-inline.c (mark_local_for_remap_r): Remove.
2532         (unsave_expr_1): Likewise.
2533         (unsave_r): Likewise.
2534         (unsave_expr_now): Likewise.
2535         * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
2536         (propagate_tree_value): Likewise.
2538 2013-04-08  Steven Bosscher  <steven@gcc.gnu.org>
2540         * doc/rtl.texi (sequence): Rewrite documentation to match the
2541         current use of SEQUENCE rtl objects.
2542         * rtl.def (SEQUENCE): Likewise.
2544         * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
2545         Update documentation.
2546         (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
2547         NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
2549         * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
2551 2013-04-08  Teresa Johnson  <tejohnson@google.com>
2553         * basic-block.h (GCOV_COMPUTE_SCALE): Define.
2554         * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
2555         methods.
2556         (estimate_edge_size_and_time): Add comment to suggest using rounding
2557         methods.
2558         (estimate_node_size_and_time): Ditto.
2559         (remap_edge_change_prob): Use helper rounding divide methods.
2560         * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
2561         (gimple_mod_pow2_value_transform): Ditto.
2562         (gimple_mod_subtract_transform): Ditto.
2563         (gimple_ic_transform): Ditto.
2564         (gimple_stringops_transform): Ditto.
2565         * stmt.c (conditional_probability): Ditto.
2566         (emit_case_dispatch_table): Ditto.
2567         * lto-cgraph.c (merge_profile_summaries): Ditto.
2568         * tree-optimize.c (execute_fixup_cfg): Ditto.
2569         * cfgcleanup.c (try_forward_edges): Ditto.
2570         * cfgloopmanip.c (scale_loop_profile): Ditto.
2571         (loopify): Ditto.
2572         (duplicate_loop_to_header_edge): Ditto.
2573         (lv_adjust_loop_entry_edge): Ditto.
2574         * tree-vect-loop.c (vect_transform_loop): Ditto.
2575         * profile.c (compute_branch_probabilities): Ditto.
2576         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2577         * lto-streamer-in.c (input_cfg): Ditto.
2578         * gimple-streamer-in.c (input_bb): Ditto.
2579         * ipa-cp.c (update_profiling_info): Ditto.
2580         (update_specialized_profile): Ditto.
2581         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
2582         * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
2583         rounding methods.
2584         * sched-rgn.c (compute_dom_prob_ps): Ditto.
2585         (compute_trg_info): Ditto.
2586         * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
2587         (purge_dead_edges): Ditto.
2588         * loop-unswitch.c (unswitch_loop): Ditto.
2589         * cgraphclones.c (cgraph_clone_edge): Ditto.
2590         (cgraph_clone_node): Ditto.
2591         * tree-inline.c (copy_bb): Ditto.
2592         (copy_edges_for_bb): Ditto.
2593         (initialize_cfun): Ditto.
2594         (copy_cfg_body): Ditto.
2595         (expand_call_inline): Ditto.
2597 2013-04-08  Kai Tietz  <ktietz@redhat.com>
2599         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
2600         TARGET_CYGWIN64 by TARGET_64BIT.
2602 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
2604         * config/epiphany/epiphany.md (GPR_1): New constant.
2605         (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
2606         * config/epiphany/epiphany.c (gen_compare_reg):
2607         For flag_finite_math_only, avoid swapping operands when r0 and/or r1
2608         is already in place.
2609         Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
2610         Don't require being called during rtl expansion; If y operlaps r0,
2611         return 0.
2612         (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
2613         (epiphany_expand_epilogue): Likewise.
2615         * config/epiphany/epiphany.c (epiphany_select_cc_mode):
2616         Don't use CC_FPmode for ORDERED / UNORDERED.
2617         * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
2619         * config/epiphany/constraints.md (CnL): New constraint.
2620         * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
2621         * config/epiphany/predicates.md (add_operand): Allow 1024.
2623         * config/epiphany/epiphany.md (logical_op): New code iterator.
2624         (op_mnc): New code attribute.
2625         (<op_mnc>_f, mov_f, cstoresi4): New patterns.
2626         (mov_f+1, mov_f+2): New peephole2 patterns.
2628         * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
2629         (cstoresi4): Also allow re-use of zero result when doing a NE
2630         comparison to a non-zero operand.
2631         Use (clobber (scratch)) for first insn if the gpr output is not needed.
2633         * config/epiphany/epiphany.md (<insn_opname>v2si3):
2634         Use gen_addsi3_i / gen_subsi3_i.
2636 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
2638         PR c++/34949
2639         PR c++/50243
2640         * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
2641         contain anything but clobbers, at most one __builtin_stack_restore,
2642         optionally debug stmts and final resx, and if it has at least one
2643         incoming EH edge.  Don't check for SSA_NAME on LHS of a clobber.
2644         (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
2645         Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
2646         which isn't defaut definition, remove them.
2647         (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
2648         instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
2649         * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
2650         with MEM_REF LHS with SSA_NAME address.
2652 2013-04-08  Jeff Law  <law@redhat.com>
2654         * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
2656 2013-04-08  Richard Biener  <rguenther@suse.de>
2658         * gimple-pretty-print.c (debug_gimple_stmt): Do not print
2659         extra newline.
2660         * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
2661         determined vector type.
2662         (vect_analyze_data_refs): Likewise.
2663         (vect_get_new_vect_var): Adjust.
2664         (vect_create_destination_var): Preserve SSA name versions.
2665         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
2666         not dump anything here.
2668 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
2670         * config/epiphany/epiphany.h (struct GTY (()) machine_function):
2671         Add member lr_slot_known.
2672         * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
2673         if necessary.
2674         * config/epiphany/epiphany.c (epiphany_compute_frame_size):
2675         Remove code that sets lr_slot_offset according to what a previous
2676         version of epiphany_emit_save_restore used to do.
2677         (epiphany_emit_save_restore): When doing an lr save or restore,
2678         set/verify lr_slot_known and lr_slot_offset.
2680 2013-04-08  Xinyu Qi  <xyqi@marvell.com>
2682         PR target/54338
2683         * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
2684         in ALL_REGS.
2686 2013-04-08  Richard Biener  <rguenther@suse.de>
2688         * alias.c (find_base_term): Fix thinko in previous change.
2690 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
2692         * tree-loop-distribution.c (const_with_all_bytes_same): New function.
2693         (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
2694         TYPE_PRECISION is equal to mode bitsize.  Use const_with_all_bytes_same
2695         if possible to compute val.
2696         (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
2697         For QImode integers don't require anything about precision.  Use
2698         const_with_all_bytes_same to find out if the constant doesn't have
2699         repeated bytes in it.
2701 2013-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2703         * config/s390/s390.c (s390_expand_insv): Only accept insertions
2704         within mode size.
2706 2013-04-08  Marek Polacek  <polacek@redhat.com>
2708         PR rtl-optimization/48182
2709         * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
2710         value to 1.
2712 2013-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2714         PR target/55487
2715         * config/pa/pa.c (legitimize_pic_address): Before incrementing label
2716         nuses, make sure we have a label.
2718 2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2720         PR target/56843
2721         * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
2722         (rs6000_emit_swdiv_low_precision): Remove.
2723         (rs6000_emit_swdiv): Rewrite to handle between one and four
2724         iterations of Newton-Raphson generally; modify required number of
2725         iterations for some cases.
2726         * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
2728 2013-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2730         * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
2731         set-but-unused variable.
2733         * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
2734         basic blocks of released function bodies garbage-collectable.
2736         * ree.c (find_and_remove_re): Do not call df_finish_pass here.
2737         (struct rtl_opt_pass): Add TODO_df_finish.
2739         * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
2741 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2743         * config/arm/constraints.md (q): New constraint.
2744         * config/arm/ldrdstrd.md: New file.
2745         * config/arm/arm.md (ldrdstrd.md) New include.
2746         (arm_movdi): Use "q" instead of "r" constraint
2747         for double-word memory access.
2748         (movdf_soft_insn): Likewise.
2749         * config/arm/vfp.md (movdi_vfp): Likewise.
2750         * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
2751         * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
2752         * config/arm/arm.c (gen_operands_ldrd_strd): New function.
2753         (mem_ok_for_ldrd_strd): Likewise.
2754         (output_move_double): Update assertion.
2756 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2758         * config/arm/arm.md: Comment on splitting Thumb1 patterns.
2760 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2762         * config/arm/arm.md (arm_smax_insn): Convert define_insn into
2763         define_insn_and_split.
2764         (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
2766 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2768         * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
2769         define_insn_and_split.
2770         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
2771         (shiftsi3_compare): New pattern.
2772         (rrx): New pattern.
2773         * config/arm/unspecs.md (UNSPEC_RRX): New.
2775 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2777         * config/arm/arm.md (negdi_extendsidi): New pattern.
2778         (negdi_zero_extendsidi): Likewise.
2780 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2782         * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
2783         define_insn_and_split.
2784         (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
2785         (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
2787 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2789         * config/arm/arm.md (arm_subdi3): Convert define_insn into
2790         define_insn_and_split.
2791         (subdi_di_zesidi,subdi_di_sesidi): Likewise.
2792         (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
2794 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2796         * config/arm/arm.md (subsi3_carryin): New pattern.
2797         (subsi3_carryin_const): Likewise.
2798         (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
2799         (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
2801 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2803         * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
2805 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2807         * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
2808         (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
2810 2013-04-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2812         * config/arm/arm.c (arm_expand_builtin): Change fcode
2813         type to unsigned int.
2815 2013-04-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2817         * doc/invoke.texi (ARM Options): Document cortex-a53 support.
2819 2013-04-04  Ian Lance Taylor  <iant@google.com>
2821         * doc/standards.texi (Standards): The Go frontend supports the Go 1
2822         language standard.
2824 2013-04-04  Steven Bosscher  <steven@gcc.gnu.org>
2826         PR middle-end/56729
2827         * df-scan.c (df_insn_delete): Disable failing assert.
2829 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2831         * config/arm/arm-protos.h (arm_builtin_vectorized_function):
2832         New function prototype.
2833         * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
2834         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
2835         (arm_builtin_vectorized_function): New function.
2837 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2839         * config/arm/arm_neon_builtins.def: New file.
2840         * config/arm/arm.c (neon_builtin_data): Move contents to
2841         arm_neon_builtins.def.
2842         (enum arm_builtins): Include neon builtin definitions.
2843         (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
2844         * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
2846 2013-04-04  Marek Polacek  <polacek@redhat.com>
2848         PR tree-optimization/48186
2849         * predict.c (maybe_hot_frequency_p): Return false if
2850         HOT_BB_FREQUENCY_FRACTION is 0.
2851         (cgraph_maybe_hot_edge_p): Likewise.
2853 2013-04-04  Richard Biener  <rguenther@suse.de>
2855         PR tree-optimization/56826
2856         * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
2857         more accurately.
2859 2013-04-04  Richard Biener  <rguenther@suse.de>
2861         PR tree-optimization/56213
2862         * tree-vect-data-refs.c (vect_check_strided_load): Remove.
2863         (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
2865 2013-04-04  Richard Biener  <rguenther@suse.de>
2867         PR tree-optimization/56837
2868         * tree-loop-distribution.c (classify_partition): For non-zero
2869         values require that the value has the same precision as its
2870         mode to be useful as memset value.
2872 2013-04-03  Nick Clifton  <nickc@redhat.com>
2874         * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
2875         (fmssf4): Use fmsf.s on E3V5 architectures.
2876         (fnmasf4): Use fnmaf.s on E3V5 architectures.
2877         (fnmssf4): Use fnmsf.s on E3V5 architectures.
2879 2013-04-03  Jeff Law  <law@redhat.com>
2881         * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
2882         (lra-eliminations.o): Likewise.
2884 2013-04-03  Teresa Johnson  <tejohnson@google.com>
2886         * gcov-io.c (compute_working_sets): Moved most of body of old
2887         compute_working_sets here from profile.c.
2888         * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
2889         (gcov_working_set_t): Moved typedef here from basic-block.h
2890         (compute_working_set): Declare.
2891         * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
2892         (get_working_sets): Renamed from compute_working_set,
2893         replace most of body with call to new compute_working_sets.
2894         (get_exec_counts): Replace call to compute_working_sets
2895         to get_working_sets.
2896         * profile.h (get_working_sets): Renamed from compute_working_set.
2897         * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
2898         to get_working_sets.
2899         * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
2900         * gcov-dump.c (dump_working_sets): New function.
2902 2013-04-03  Kenneth Zadeck <zadeck@naturalbridge.com>
2904         * hwint.c (sext_hwi, zext_hwi): New functions.
2905         * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
2906         HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
2907         HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
2908         HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
2909         HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
2910         (sext_hwi, zext_hwi): New functions.
2912 2013-04-03  Jeff Law  <law@redhat.com>
2914         PR tree-optimization/56799
2915         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
2916         back test for widening conversion erroneously dropped in prior change.
2918 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2920         PR target/56809
2921         * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
2922         instead of next_real_insn.
2924 2013-04-03  Marek Polacek  <polacek@redhat.com>
2926         PR sanitizer/55702
2927         * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
2929 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2931         PR target/56809
2932         * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
2933         next_real_insn.
2934         (thumb1_output_casesi): Likewise.
2935         (thumb2_output_casesi): Likewise.
2937 2013-04-03  Richard Biener  <rguenther@suse.de>
2939         PR tree-optimization/56817
2940         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
2941         Split out ...
2942         (tree_unroll_loops_completely_1): ... new function to manually
2943         walk the loop tree, properly defering outer loops of unrolled
2944         loops to later iterations.
2946 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
2948         * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
2949         (vectorizable_load): Likewise.
2950         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
2951         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
2953 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
2955         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
2956         BIT_FIELD_REF.
2958 2013-04-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2960         * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
2962 2013-04-03  Bin Cheng  <bin.cheng@arm.com>
2964         * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
2966 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
2968         PR tree-optimization/56790
2969         * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
2970         folding.
2972 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
2974         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
2975         Handle VEC_MERGE.
2976         (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
2977         for masks. Test for side effects. Handle nested VEC_MERGE. Handle
2978         equal arguments.
2980 2013-04-03  Jakub Jelinek  <jakub@redhat.com>
2982         PR c/19449
2983         * tree.h (force_folding_builtin_constant_p): New decl.
2984         * builtins.c (force_folding_builtin_constant_p): New variable.
2985         (fold_builtin_constant_p): Fold immediately also if
2986         force_folding_builtin_constant_p.
2988 2013-04-03  Richard Biener  <rguenther@suse.de>
2990         PR tree-optimization/56812
2991         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
2992         DRs of the same interleaving chain are independent.
2994 2013-04-02  Jason Merrill  <jason@redhat.com>
2996         * gdbinit.in (pbb): Use debug fn.
2998 2013-04-02  Lawrence Crowl  <crowl@google.com>
3000         * sese.h (struct ivtype_map_elt_s): Remove unused.
3001         (extern debug_ivtype_map): Remove unused.
3002         (extern eq_ivtype_map_elts): Remove unused.
3003         * sese.c (debug_ivtype_map): Removed unused.
3004         (debug_ivtype_map_1): Removed unused.
3005         (debug_ivtype_elt): Remove unused.
3006         (eq_ivtype_map_elts): Remove unused.
3009 2013-04-02  Kai Tietz  <ktietz@redhat.com>
3011         PR target/52790
3012         * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
3013         * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
3014         * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
3015         function.
3016         (legitimize_pe_coff_symbol): Likewise.
3017         (is_imported_p): New helper-function.
3018         (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
3019         for Windows x64 targets.
3020         (ix86_expand_prologue): Optimize for pe-coff targets.
3021         (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
3022         (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
3023         medium/large code-model.
3024         (legitimize_pic_address): Likewise.
3025         (legitimize_tls_address): Likewise.
3026         (ix86_expand_call): Likewise.
3027         (x86_output_mi_thunk): Likewise.
3028         (get_dllimport_decl): Add new beimport argument.
3029         (construct_plt_address): Don't assert for x64 pe-coff targets.
3030         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
3031         targets.
3032         (SYMBOL_FLAG_STUBVAR): New macro.
3033         (SYMBOL_REF_STUBVAR_P): Likewise.
3034         * config/i386/winnt.c (stub_list): New structure.
3035         (stub_head): New local variable.
3036         (i386_pe_record_stub): New function.
3037         (i386_pe_file_end): Emit refptr-stubs.
3039 2013-04-02  Jakub Jelinek  <jakub@redhat.com>
3041         PR rtl-optimization/56745
3042         * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
3043         if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
3045         PR c++/34949
3046         * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
3047         and both of them are MEM_REFs, just compare first argument for
3048         equality and attempt to deal even with differing offsets.
3050         PR c++/34949
3051         * tree-cfg.c (verify_gimple_assign_single): Allow lhs
3052         of gimple_clobber_p to be MEM_REF.
3053         * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
3054         an assignment from TREE_CLOBBER_P.  Allow it to be MEM_REF
3055         after gimplification.
3056         * asan.c (get_mem_ref_of_assignment): Don't instrument
3057         gimple_clobber_p stmts.
3058         * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
3059         gimple_clobber_p stmt if they have MEM_REF lhs and
3060         are dead because of another gimple_clobber_p stmt.
3061         * tree-ssa-live.c (clear_unused_block_pointer): Treat
3062         gimple_clobber_p stmts like debug stmts.
3063         (remove_unused_locals): Remove clobbers with MEM_REF lhs
3064         that refer to unused VAR_DECLs or uninitialized values.
3065         * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
3066         gimple_clobber_p stmts if they refer to removed parameters.
3067         (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
3068         formatting.
3070 2013-04-02  Uros Bizjak  <ubizjak@gmail.com>
3072         * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
3073         using SWI48 mode attribute.
3075 2013-04-02  Wei Mi  <wmi@google.com>
3077         * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
3078         ashl<mode>3_mask, *<shift_insn><mode>3_mask and
3079         *<rotate_insn><mode>3_mask in i386.md.
3081 2013-04-02  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3083         * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
3085 2013-04-02  Richard Biener  <rguenther@suse.de>
3087         PR tree-optimization/56778
3088         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3089         Runtime alias tests are not supported for gather loads.
3090         * tree-vect-loop-manip.c (vect_loop_versioning): Insert
3091         stmts referenced from SSA operands before updating SSA form.
3093 2013-04-02  Ian Caulfield  <ian.caulfield@arm.com>
3094             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3096         * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
3097         * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
3098         * config/arm/cortex-a53.md: New file.
3099         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
3100         * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
3101         * config/arm/arm.c (arm_issue_rate): Likewise.
3102         * config/arm/arm-tune.md: Regenerate
3103         * config/arm/arm-tables.opt: Regenerate.
3104         * config/arm/arm-cores.def: Add cortex-a53.
3106 2013-04-02  Zhenqiang Chen  <zhenqiang.chen@arm.com>
3108         * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
3109         non-static link.
3111 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
3113         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
3114         scalar load/store operations using B/H registers.
3115         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
3117 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
3119         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
3120         scalar move.
3121         * config/aarch64/aarch64.c
3122         (aarch64_simd_scalar_immediate_valid_for_move): New.
3123         * config/aarch64/aarch64-protos.h
3124         (aarch64_simd_scalar_immediate_valid_for_move): New.
3125         * config/aarch64/constraints.md (Dh, Dq): New.
3126         * config/aarch64/iterators.md (hq): New.
3128 2013-04-02  Eric Botcazou  <ebotcazou@adacore.com>
3130         * reorg.c (get_branch_condition): Deal with conditional returns.
3131         (fill_simple_delay_slots): Remove dead code dealing with jumps.
3133 2013-04-01  Wei Mi  <wmi@google.com>
3135         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
3136         Truncate operand 2 using %b asm operand modifier.
3137         (*<shift_insn><mode>3_mask): Ditto.
3138         (*<rotate_insn><mode>3_mask): Ditto.
3140 2013-04-01  Steven Bosscher  <steven@gcc.gnu.org>
3142         PR middle-end/56798
3143         * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
3145 2013-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3147         * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
3148         of next_real_insn.
3149         (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
3151 2013-03-30  Lawrence Crowl  <crowl@google.com>
3153         * dse.c (clear_alias_sets): Remove never set.
3154         (disqualified_clear_alias_sets): Remove never set.
3155         (clear_alias_mode_pool): Remove never set.
3156         (dse_step0): Remove condition that is never true.
3157         (canon_address): Remove condition that is never true.
3158         (dse_step7): Remove condition that is never true.
3159         (rest_of_handle_dse): Remove condition that is never true.
3160         (rest_of_handle_dse::did_global): Remove never read from above.
3161         (dse_step2_spill): Remove never called from above.
3162         (dse_step5_spill): Remove never called from above.
3164 2013-03-30  Steven Bosscher  <steven@gcc.gnu.org>
3166         * doc/md.texi (Standard Names) <casesi>: Update documentation for
3167         JUMP_TABLE_DATA changes.
3168         * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
3169         * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
3170         (Insns) <jump_table_data>: New entry.
3171         * doc/tm.texi: Regenerate.
3173         * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
3175         * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
3176         for table jump at the end of a basic block using tablejump_p.
3177         * targhooks.c (default_invalid_within_doloop): Likewise.
3178         * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
3179         target hook implementation that is identical to the default hook.
3180         (rs6000_invalid_within_doloop): Remove.
3182         * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
3183         unused variable from tablejump_p call.
3185         * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
3186         * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
3187         (INSN_DELETED_P): Likewise.
3188         (emit_jump_table_data): New prototype.
3189         * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
3190         after 4th as unused.
3191         * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
3192         * sched-vis.c (print_insn): Likewise.
3193         * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
3194         insn for compatibility with back ends that use next_active_insn to
3195         identify jump table data.
3196         (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
3197         (remove_insn): Likewise.
3198         (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
3199         to be emitted.
3200         (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
3201         (emit_jump_table_data): New function.
3203         * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
3204         basic block, a JUMP_TABLE_DATA never is.
3205         (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
3206         * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
3207         off from code handling real insns.
3208         * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
3209         * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
3210         test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
3211         * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
3212         is not a NONDEBUG_INSN_P.
3213         * ira-costs.c (scan_one_insn): Likewise.
3214         * jump.c (mark_all_labels): Likewise.
3215         (mark_jump_label_1): Likewise.
3216         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
3217         * lra.c (get_insn_freq): Expect all insns reaching here to be in
3218         a basic block.
3219         (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
3220         * predict.c (expensive_function_p): Use FOR_BB_INSNS.
3221         * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
3222         JUMP_TABLE_DATA_P insns.
3223         (calculate_elim_costs_all_insns): Likewise.
3224         (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
3225         (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
3226         (delete_output_reload): Code style fixups.
3227         * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
3228         insn flags on this non-insn.
3229         * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
3230         as scheduling barriers, for pre-change compatibility.
3231         * stmt.c (emit_case_dispatch_table): Emit jump table data not as
3232         JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
3234         * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
3235         redundant JUMP_TABLE_DATA_P test.
3236         * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
3237         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
3238         (frv_for_each_packet): Likewise.
3239         * config/i386/i386.c (min_insn_size): Likewise.
3240         (ix86_avoid_jump_mispredicts): Likewise.
3241         * config/m32r/m32r.c (m32r_is_insn): Likewise.
3242         * config/mep/mep.c (mep_reorg_erepeat): Likewise.
3243         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
3244         (mips16_insn_length): Robustify.
3245         (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
3246         (mips16_split_long_branches): Likewise.
3247         * config/pa/pa.c (pa_combine_instructions): Likewise.
3248         * config/rs6000/rs6000.c (get_next_active_insn): Treat
3249         JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
3250         * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
3251         as contributing to pool range lengths.
3252         * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
3253         Remove redundant JUMP_TABLE_DATA_P test.
3254         (sh_loop_align): Likewise.
3255         (split_branches): Likewise.
3256         (sh_insn_length_adjustment): Likewise.
3257         * config/spu/spu.c (get_branch_target): Likewise.
3259 2013-03-29  Jan Hubicka  <jh@suse.cz>
3261         * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
3262         gcov streaming; stream hot bb threshold to ltrans.
3263         * predict.c (get_hot_bb_threshold): Break out from ....
3264         (maybe_hot_count_p): ... here.
3265         (set_hot_bb_threshold): New function.
3266         * lto-section-in.c (lto_section_name): Add profile.
3267         * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
3268         * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
3269         and data-streamer.h
3270         (histogram_entry): New structure.
3271         (histogram, histogram_pool): New global vars.
3272         (histogram_hash): New structure.
3273         (histogram_hash::hash): New method.
3274         (histogram_hash::equal): Likewise.
3275         (account_time_size): New function.
3276         (cmp_counts): New function.
3277         (dump_histogram): New function.
3278         (ipa_profile_generate_summary): New function.
3279         (ipa_profile_write_summary): New function.
3280         (ipa_profile_read_summary): New function.
3281         (ipa_profile): Decide on threshold.
3282         (pass_ipa_profile): Add ipa_profile_write_summary and
3283         ipa_profile_read_summary.
3284         * Makefile.in (ipa.o): Update dependencies.
3285         * lto-streamer.h (LTO_section_ipa_profile): New section.
3287 2013-03-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3289         * tree.h (VAR_P): New.
3291 2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
3293         PR lto/56777
3294         * doc/invoke.texi ([-fwhole-program]): Fix typo.
3296 2013-03-29  Steven Bosscher  <steven@gcc.gnu.org>
3298         * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
3299         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
3300         (control_flow_insn_p): Likewise.
3301         * cfgrtl.c (duplicate_insn_chain): Likewise.
3302         * final.c (get_attr_length_1): Likewise.
3303         (shorten_branches): Likewise.
3304         (final_scan_insn): Likewise.
3305         * function.c (instantiate_virtual_regs): Likewise.
3306         * gcse.c (insert_insn_end_basic_block): Likewise.
3307         * ira-costs.c (scan_one_insn): Likewise.
3308         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
3309         * lra.c (check_rtl): Likewise.
3310         * reload1.c (elimination_costs_in_insn): Likewise.
3311         * reorg.c (follow_jumps): Likewise.
3313         * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
3314         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
3315         (thumb_far_jump_used_p): Likewise.
3316         * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
3317         (workaround_speculation): Likewise.
3318         (add_sched_insns_for_speculation): Likewise.
3319         * config/c6x/c6x.c (reorg_emit_nops): Likewise.
3320         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
3321         (frv_for_each_packet): Likewise.
3322         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
3323         * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
3324         (final_emit_insn_group_barriers): Likewise.
3325         * config/m32r/m32r.c (m32r_is_insn): Likewise.
3326         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
3327         (mips16_insn_length): Likewise.
3328         * config/pa/pa.c (pa_reorg): Likewise.
3329         (pa_combine_instructions): Likewise.
3330         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
3331         * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
3332         (sh_reorg): Likewise.
3333         (split_branches): Likewise.
3334         * config/spu/spu.c (get_branch_target): Likewise.
3336         * config/s390/s390.c (s390_chunkify_start): Simplify logic using
3337         JUMP_TABLE_DATA_P.
3339 2013-03-29  Kirill Yukhin  <kirill.yukhin@intel.com>
3341         * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
3342         Fix declaration name.
3344 2013-03-28  Lawrence Crowl  <crowl@google.com>
3346         * graphds.h (struct graph.indicies): Remove unused.
3347         * graphite-poly.h (struct graph.original_pddrs): Remove unused.
3348         (SCOP_ORIGINAL_PDDRS): Remove unused.
3349         * sese.h (extern insert_loop_close_phis): Removed unused.
3350         (extern insert_guard_phis): Removed unused.
3351         (extern ivtype_map_elt_info): Removed unused.
3352         (new_ivtype_map_elt): Removed unused.
3353         * sese.c (ivtype_map_elt_info): Removed unused.
3355 2013-03-28  Lawrence Crowl  <crowl@google.com>
3357         * Makefile.in: Add several missing include dependences.
3358         (DUMPFILE_H): New.
3359         (test-dump.o): New.  This object is not added to any executable,
3360         but is present for ad-hoc testing.
3361         * bitmap.c
3362         (debug (const bitmap_head_def &)): New.
3363         (debug (const bitmap_head_def *)): New.
3364         * bitmap.h
3365         (extern debug (const bitmap_head_def &)): New.
3366         (extern debug (const bitmap_head_def *)): New.
3367         * cfg.c
3368         (debug (edge_def &)): New.
3369         (debug (edge_def *)): New.
3370         * cfghooks.c
3371         (debug (basic_block_def &)): New.
3372         (debug (basic_block_def *)): New.
3373         * dumpfile.h
3374         (dump_node (const_tree, int, FILE *)): Correct source file.
3375         * dwarf2out.c
3376         (debug (die_struct &)): New.
3377         (debug (die_struct *)): New.
3378         * dwarf2out.h
3379         (extern debug (die_struct &)): New.
3380         (extern debug (die_struct *)): New.
3381         * gimple-pretty-print.c
3382         (debug (gimple_statement_d &)): New.
3383         (debug (gimple_statement_d *)): New.
3384         * gimple-pretty-print.h
3385         (extern debug (gimple_statement_d &)): New.
3386         (extern debug (gimple_statement_d *)): New.
3387         * ira-build.c
3388         (debug (ira_allocno_copy &)): New.
3389         (debug (ira_allocno_copy *)): New.
3390         (debug (ira_allocno &)): New.
3391         (debug (ira_allocno *)): New.
3392         * ira-int.h
3393         (extern debug (ira_allocno_copy &)): New.
3394         (extern debug (ira_allocno_copy *)): New.
3395         (extern debug (ira_allocno &)): New.
3396         (extern debug (ira_allocno *)): New.
3397         * ira-lives.c
3398         (debug (live_range &)): New.
3399         (debug (live_range *)): New.
3400         * lra-int.h
3401         (debug (lra_live_range &)): New.
3402         (debug (lra_live_range *)): New.
3403         * lra-lives.c
3404         (debug (lra_live_range &)): New.
3405         (debug (lra_live_range *)): New.
3406         * omega.c
3407         (debug (omega_pb_d &)): New.
3408         (debug (omega_pb_d *)): New.
3409         * omega.h
3410         (extern debug (omega_pb_d &)): New.
3411         (extern debug (omega_pb_d *)): New.
3412         * print-rtl.c
3413         (debug (const rtx_def &)): New.
3414         (debug (const rtx_def *)): New.
3415         * print-tree.c
3416         (debug_tree (tree): Move within file.
3417         (debug_raw (const tree_node &)): New.
3418         (debug_raw (const tree_node *)): New.
3419         (dump_tree_via_hooks (const tree_node *, int)): New.
3420         (debug (const tree_node &)): New.
3421         (debug (const tree_node *)): New.
3422         (debug_verbose (const tree_node &)): New.
3423         (debug_verbose (const tree_node *)): New.
3424         (debug_head (const tree_node &)): New.
3425         (debug_head (const tree_node *)): New.
3426         (debug_body (const tree_node &)): New.
3427         (debug_body (const tree_node *)): New.
3428         (debug_vec_tree (tree): Move and reimplement in terms of dump.
3429         (debug (vec<tree, va_gc> &)): New.
3430         (debug (vec<tree, va_gc> *)): New.
3431         * rtl.h
3432         (extern debug (const rtx_def &)): New.
3433         (extern debug (const rtx_def *)): New.
3434         * sbitmap.c
3435         (debug_raw (simple_bitmap_def &)): New.
3436         (debug_raw (simple_bitmap_def *)): New.
3437         (debug (simple_bitmap_def &)): New.
3438         (debug (simple_bitmap_def *)): New.
3439         * sbitmap.h
3440         (extern debug (simple_bitmap_def &)): New.
3441         (extern debug (simple_bitmap_def *)): New.
3442         (extern debug_raw (simple_bitmap_def &)): New.
3443         (extern debug_raw (simple_bitmap_def *)): New.
3444         * sel-sched-dump.c
3445         (debug (vinsn_def &)): New.
3446         (debug (vinsn_def *)): New.
3447         (debug_verbose (vinsn_def &)): New.
3448         (debug_verbose (vinsn_def *)): New.
3449         (debug (expr_def &)): New.
3450         (debug (expr_def *)): New.
3451         (debug_verbose (expr_def &)): New.
3452         (debug_verbose (expr_def *)): New.
3453         (debug (vec<rtx> &)): New.
3454         (debug (vec<rtx> *)): New.
3455         * sel-sched-dump.h
3456         (extern debug (vinsn_def &)): New.
3457         (extern debug (vinsn_def *)): New.
3458         (extern debug_verbose (vinsn_def &)): New.
3459         (extern debug_verbose (vinsn_def *)): New.
3460         (extern debug (expr_def &)): New.
3461         (extern debug (expr_def *)): New.
3462         (extern debug_verbose (expr_def &)): New.
3463         (extern debug_verbose (expr_def *)): New.
3464         (extern debug (vec<rtx> &)): New.
3465         (extern debug (vec<rtx> *)): New.
3466         * sel-sched-ir.h
3467         (_list_iter_cond_expr): Make inline instead of static.
3468         * sreal.c
3469         (debug (sreal &)): New.
3470         (debug (sreal *)): New.
3471         * sreal.h
3472         (extern debug (sreal &)): New.
3473         (extern debug (sreal *)): New.
3474         * tree.h
3475         (extern debug_raw (const tree_node &)): New.
3476         (extern debug_raw (const tree_node *)): New.
3477         (extern debug (const tree_node &)): New.
3478         (extern debug (const tree_node *)): New.
3479         (extern debug_verbose (const tree_node &)): New.
3480         (extern debug_verbose (const tree_node *)): New.
3481         (extern debug_head (const tree_node &)): New.
3482         (extern debug_head (const tree_node *)): New.
3483         (extern debug_body (const tree_node &)): New.
3484         (extern debug_body (const tree_node *)): New.
3485         (extern debug (vec<tree, va_gc> &)): New.
3486         (extern debug (vec<tree, va_gc> *)): New.
3487         * tree-cfg.c
3488         (debug (struct loop &)): New.
3489         (debug (struct loop *)): New.
3490         (debug_verbose (struct loop &)): New.
3491         (debug_verbose (struct loop *)): New.
3492         * tree-dump.c: Add header dependence.
3493         * tree-flow.h
3494         (extern debug (struct loop &)): New.
3495         (extern debug (struct loop *)): New.
3496         (extern debug_verbose (struct loop &)): New.
3497         (extern debug_verbose (struct loop *)): New.
3498         * tree-data-ref.c
3499         (debug (data_reference &)): New.
3500         (debug (data_reference *)): New.
3501         (debug (vec<data_reference_p> &)): New.
3502         (debug (vec<data_reference_p> *)): New.
3503         (debug (vec<ddr_p> &)): New.
3504         (debug (vec<ddr_p> *)): New.
3505         * tree-data-ref.h
3506         (extern debug (data_reference &)): New.
3507         (extern debug (data_reference *)): New.
3508         (extern debug (vec<data_reference_p> &)): New.
3509         (extern debug (vec<data_reference_p> *)): New.
3510         (extern debug (vec<ddr_p> &)): New.
3511         (extern debug (vec<ddr_p> *)): New.
3512         * tree-ssa-alias.c
3513         (debug (pt_solution &)): New.
3514         (debug (pt_solution *)): New.
3515         * tree-ssa-alias.h
3516         (extern debug (pt_solution &)): New.
3517         (extern debug (pt_solution *)): New.
3518         * tree-ssa-alias.c
3519         (debug (_var_map &)): New.
3520         (debug (_var_map *)): New.
3521         (debug (tree_live_info_d &)): New.
3522         (debug (tree_live_info_d *)): New.
3523         * tree-ssa-alias.h
3524         (extern debug (_var_map &)): New.
3525         (extern debug (_var_map *)): New.
3526         (extern debug (tree_live_info_d &)): New.
3527         (extern debug (tree_live_info_d *)): New.
3529 2013-03-28  Jan Hubicka  <jh@suse.cz>
3531         * lto-cgraph.c (merge_profile_summaries): Fix overflows.
3533 2013-03-28  Ian Bolton  <ian.bolton@arm.com>
3535         * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
3536         record only when desired or required.
3538 2013-03-28  Uros Bizjak  <ubizjak@gmail.com>
3540         * config/i386/i386.md (*vec_extract2vdi_1): Merge with
3541         *vec_extractv2di_1_rex64.  Use x64 isa attribute.
3543 2013-03-28  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3545         * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
3546         (*andsi3_compare0_uxtw): New pattern.
3547         (*and_<SHIFT:optab><mode>3_compare0): New pattern.
3548         (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
3550 2013-03-28  Jan Hubicka  <jh@suse.cz>
3552         * data-streamer-in.c (streamer_read_gcov_count): New function.
3553         * gimple-streamer-out.c: Include value-prof.h.
3554         (output_gimple_stmt): Output histogram.
3555         (output_bb): Use streamer_write_gcov_count.
3556         * value-prof.c: Include data-streamer.h
3557         (dump_histogram_value): Add HIST_TYPE_MAX.
3558         (stream_out_histogram_value): New function.
3559         (stream_in_histogram_value): New function.
3560         * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
3561         (stream_out_histogram_value, stream_in_histogram_value): Declare.
3562         * data-streamer-out.c (streamer_write_gcov_count): New function.
3563         (streamer_write_gcov_count_stream): New function.
3564         * lto-cgraph.c (lto_output_edge): Update counter streaming.
3565         (lto_output_node): Likewise.
3566         (input_node, input_edge): Likewise.
3567         * lto-streamer-out.c (output_cfg): Update streaming.
3568         * lto-streamer-in.c (input_cfg): Likewise.
3569         * data-streamer.h (streamer_write_gcov_count,
3570         streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
3571         * gimple-streamer-in.c: Include value-prof.h
3572         (input_gimple_stmt): Input histograms.
3573         (input_bb): Update profile streaming.
3575 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
3577         * genmodes.c (emit_max_int): New function.
3578         (emit_insn_modes_h): Added call to emit_max_function.
3579         * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
3580         Added doc.
3581         * machmode.def: Fixed comment.
3583 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
3585         * combine.c (try_combine): Removed useless assert.
3586         * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
3588 2013-03-28  Marek Polacek  <polacek@redhat.com>
3589             Richard Biener  <rguenther@suse.de>
3591         PR tree-optimization/56695
3592         * tree-vect-stmts.c (vectorizable_condition): Unconditionally
3593         build signed result of a vector comparison.
3594         * tree-cfg.c (verify_gimple_comparison): Check that a result
3595         of a vector comparison has signed type.
3597 2013-03-28  Richard Biener  <rguenther@suse.de>
3599         PR tree-optimization/37021
3600         * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
3601         do not restrict gaps between groups.
3602         * tree-vect-stmts.c (vectorizable_load): Properly account for
3603         a gap between groups.
3605 2013-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3607         * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
3608         general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
3609         is not enabled.
3611 2013-03-27  Gerald Pfeifer  <gerald@pfeifer.com>
3613         * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
3614         * doc/extend.texi (Named Address Spaces): Ditto.
3615         (Variable Attributes): Ditto.
3617 2013-03-27  Kai Tietz  <ktietz@redhat.com>
3619         * config.build: Add support for cygwin x64 target.
3620         * config.gcc: Likewise.
3621         * config.host: Likewise.
3622         * configure.ac: Likewise
3623         * configure: Regenerated.
3625 2013-03-27 Kai Tietz  <ktietz@redhat.com>
3627         * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
3628         * config/i386/t-cygwin-w64: New file.
3629         * config/i386/cygwin-w64.h: New file.
3630         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
3631         and add support for x64-cygwin target.
3632         (CPP_SPEC): Likewise.
3633         (CXX_WRAP_SPEC_LIST): Undefine before define.
3634         (LIBGCJ_SONAME): Use 15 as version.
3636 2013-03-27  Richard Biener  <rguenther@suse.de>
3638         PR tree-optimization/56716
3639         * tree-ssa-structalias.c (perform_var_substitution): Adjust
3640         dumping for ref nodes.
3642 2013-03-27  Martin Jambor  <mjambor@suse.cz>
3644         PR tree-optimization/55334
3645         * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
3646         restricted pointers to arrays.
3648 2013-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3650         * Makefile.in (.SUFFIXES): Add .cc.
3651         (.c.o): Apply same recipe for implicit rule .cc.o.
3653 2013-03-27  Richard Biener  <rguenther@suse.de>
3655         PR tree-optimization/37021
3656         * tree-vect-data-refs.c (vect_check_strided_load): Allow
3657         REALPART/IMAGPART_EXPRs around the supported refs.
3658         * tree-ssa-structalias.c (find_func_aliases): Assume that
3659         floating-point values are not used to transfer pointers.
3661 2013-03-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3663         * target.def (TARGET_HAS_IFUNC_P): New target hook.
3664         * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
3665         * doc/tm.texi: Regenerate.
3666         * targhooks.h (default_has_ifunc_p): New.
3667         * targhooks.c (default_has_ifunc_p): Ditto.
3668         * config/linux-protos.h: New file.
3669         * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of
3670         this hook for linux which disables support of indirect functions in
3671         android.
3672         * config/linux-android.c: New file.
3673         * config/t-linux-android.c: Ditto.
3674         * config.gcc: Added new object file linux-android.o.
3675         * config/i386/i386.c (ix86_get_function_versions_dispatcher):
3676         Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
3677         * varasm.c (do_assemble_alias): Likewise.
3678         * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
3679         doesn't support indirect functions.
3680         * configure: Regenerate.
3682 2013-03-27  Bin Cheng  <bin.cheng@arm.com>
3684         PR target/56102
3685         * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
3686         rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
3687         mult-word mode.
3689 2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3691         * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
3693 2013-03-27  Terry Guo  <terry.guo@arm.com>
3695         * config/arm/arm-cores.def: Added core cortex-r7.
3696         * config/arm/arm-tune.md: Regenerated.
3697         * config/arm/arm-tables.opt: Regenerated.
3698         * doc/invoke.texi: Added entry for core cortex-r7.
3700 2013-03-27  Walter Lee  <walt@tilera.com>
3702         * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
3703         double-decrement of next_scratch_regno.
3705 2013-03-27  Walter Lee  <walt@tilera.com>
3707         * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
3708         input operands.
3709         (insn_v1mulus): Ditto.
3710         (insn_v2muls): Ditto.
3712 2013-03-27  Walter Lee  <walt@tilera.com>
3714         * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
3715         (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
3717 2013-03-27  Walter Lee  <walt@tilera.com>
3719         * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
3720         (*sibcall_value): Ditto.
3722 2013-03-27  Walter Lee  <walt@tilera.com>
3724         * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
3725         (insn_mnz_v8qi): ... this ...
3726         (insn_mnz_v4hi): ... and this.  Replace (const_int 0) with the
3727         vector equivalent.
3728         (insn_v<n>mnz): Replaced by ...
3729         (insn_v1mnz): ... this ...
3730         (insn_v2mnz): ... and this.  Replace (const_int 0) with the vector
3731         equivalent.
3732         (insn_mz_<mode>): Replaced by ...
3733         (insn_mz_v8qi): ... this ...
3734         (insn_mz_v4hi): ... and this.  Replace (const_int 0) with the
3735         vector equivalent.
3736         (insn_v<n>mz): Replaced by ...
3737         (insn_v1mz): ... this ...
3738         (insn_v2mz): ... and this.  Replace (const_int 0) with the vector
3739         equivalent.
3741 2013-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3743         * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
3745 2013-03-26  Roland McGrath  <mcgrathr@google.com>
3747         * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
3748         than fprintf with a non-constant, non-format string.
3750 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
3752         * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
3753         using nox64 isa attribute.  Use nonimmediate_x86nomem_operand as
3754         operand 0 predicate.
3755         (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
3756         attribute.  Use general_x64nomem_operand as operand 1 predicate.
3757         (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
3758         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
3759         (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
3760         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
3761         (mov<mode>_insv_1): Remove expander.  Merge insn with
3762         movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
3763         Use general_x64nomem_operand as operand 1 predicate.
3764         (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
3765         (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
3766         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
3767         (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
3768         attribute.  Use nonimmediate_x64nomem_operand as operand 2 predicate.
3769         (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
3770         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
3771         (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
3772         isa attribute.  Use general_x64nomem_operand as operand 2 predicate.
3773         * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
3774         (general_x64nomem_operand): Ditto.
3776 2013-03-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3778         * config/rtems.opt: Add -pthread option.
3780 2013-03-26  Richard Biener  <rguenther@suse.de>
3782         * alias.c (find_base_term): Avoid redundant and not used recursion.
3783         (base_alias_check): Get the initial base term from the caller.
3784         (true_dependence_1): Compute and pass base terms to base_alias_check.
3785         (write_dependence_p): Likewise.
3786         (may_alias_p): Likewise.
3788 2013-03-26  Sofiane Naci  <sofiane.naci@arm.com>
3790         * config/aarch64/aarch64.c (aarch64_classify_address): Support
3791         PC-relative load in SI modes and above only.
3793 2013-03-26  Xinyu Qi  <xyqi@marvell.com>
3795         * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
3796         * config/arm/iwmmxt.md (WCGR0): Update.
3797         (WCGR1, WCGR2, WCGR3): Likewise.
3799 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
3801         * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
3802         Use x64 and nox64 isa attributes.
3804 2013-03-26  Richard Biener  <rguenther@suse.de>
3806         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
3807         alignment computations and rely on get_object_alignment_1
3808         for the !TYPE_P case.
3809         Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
3811 2013-03-26  Walter Lee  <walt@tilera.com>
3813         * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
3814         * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
3816 2013-03-25  Jeff Law  <law@redhat.com>
3818         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
3819         check for INTEGRAL_TYPE_P that was missing due to checking in
3820         wrong version of prior patch.
3822 2013-03-25  Walter Lee  <walt@tilera.com>
3824         * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
3825         TILEGX_INSN_SHUFFLEBYTES1.
3826         * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
3827         shufflebytes1.
3828         (tilegx_builtins): Ditto.
3829         * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
3831 2013-03-25  Walter Lee  <walt@tilera.com>
3833         * config/tilegx/tilegx.md (floatsisf2): New pattern.
3834         (floatunssisf2): New pattern.
3835         (floatsidf2): New pattern.
3836         (floatunssidf2): New pattern.
3838 2013-03-25  Walter Lee  <walt@tilera.com>
3840         * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
3841         tests for constraint J, K, N, P.
3843 2013-03-25  Walter Lee  <walt@tilera.com>
3845         * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
3846         Use indirect/pcrel encoding.
3847         * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
3848         Ditto.
3850 2013-03-25  Steve Ellcey  <sellcey@mips.com>
3852         * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
3853         74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
3854         * config/mips/mips.c (mips_option_override): Set IMADD default.
3855         * config/mips/mips.h (PTF_AVOID_IMADD): New.
3856         (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
3857         (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
3858         * config/mips/mips.md (mimadd): New flag for integer madd/msub.
3859         * doc/invoke.texi (-mimadd/-mno-imadd): New.
3861 2013-03-25  Jeff Law  <law@redhat.com>
3863         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
3864         slightly to avoid creating and folding useless trees.  Simplify
3865         slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
3867 2013-03-25  Uros Bizjak  <ubizjak@gmail.com>
3869         * config/i386/i386.md (*zero_extendsidi2): Merge with
3870         *zero_extendsidi2_rex64.  Use x64 and nox64 isa attributes.
3871         * config/i386/predicates.md (x86_64_zext_operand): Rename from
3872         x86_64_zext_general_operand.  Use nonimmediate_operand on 32bit
3873         targets.  Clarify comment.
3875 2013-03-25  Martin Jambor  <mjambor@suse.cz>
3877         * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
3878         pass-through jump functions differently.
3879         (ipa_read_jump_function): Likewise.  Also use setter functions to set
3880         up jump functions.
3882 2013-03-25  Martin Jambor  <mjambor@suse.cz>
3884         * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
3885         ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
3886         process it.
3887         (ipa_get_indirect_edge_target): New function.
3888         (devirtualization_time_bonus): New parameter known_aggs, pass it to
3889         ipa_get_indirect_edge_target.  Update all callers.
3890         (ipcp_discover_new_direct_edges): New parameter aggvals.  Pass it to
3891         ipa_get_indirect_edge_target_1 instead of calling
3892         ipa_get_indirect_edge_target.
3893         (create_specialized_node): Pass aggvlas to
3894         ipcp_discover_new_direct_edges.
3896 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3898         * config/arm/arm.md (f_sels, f_seld): New types.
3899         (*cmov<mode>): New pattern.
3900         * config/arm/predicates.md (arm_vsel_comparison_operator): New
3901         predicate.
3903 2013-03-25  Kai Tietz  <ktietz@redhat.com>
3905         * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
3906         POSIX-printf for mingw-hosted  builds.
3908 2013-03-25  Richard Biener  <rguenther@suse.de>
3910         PR middle-end/56694
3911         * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
3912         must-not-throw stmt location.
3914 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3916         * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
3917         Emit load-acquire versions when acq is true.
3918         (arm_emit_store_exclusive): Add rel parameter.
3919         Emit store-release versions when rel is true.
3920         (arm_split_compare_and_swap): Use acquire-release instructions
3921         instead.
3922         of barriers when appropriate.
3923         (arm_split_atomic_op): Likewise.
3924         * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
3925         * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
3926         (VUNSPEC_SLX): Likewise.
3927         (VUNSPEC_LDA): Likewise.
3928         (VUNSPEC_STL): Likewise.
3929         * config/arm/sync.md (atomic_load<mode>): New pattern.
3930         (atomic_store<mode>): Likewise.
3931         (arm_load_acquire_exclusive<mode>): Likewise.
3932         (arm_load_acquire_exclusivesi): Likewise.
3933         (arm_load_acquire_exclusivedi): Likewise.
3934         (arm_store_release_exclusive<mode>): Likewise.
3936 2013-03-25  Catherine Moore  <clm@codesourcery.com>
3938         * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
3939         Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
3940         * config/mip/predicates.md (lwsp_swsp_operand,
3941         lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
3942         sb16_operand, db4_operand, db7_operand, ib3_operand,
3943         sb4_operand, ub4_operand, uh4_operand, uw4_operand,
3944         uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
3945         andi16_operand): New predicates.
3946         * config/mips/mips.md (compression): New attribute.
3947         (enabled): New attribute.
3948         (length): Consider compression in computing length.
3949         (shift_compression): New code attribute.
3950         (*add<mode>3): New operands. Record compression.
3951         (sub<mode>3): Likewise.
3952         (one_cmpl<mode>2): Likewise.
3953         (*and<mode>3): Likewise.
3954         (*ior<mode>3): Likewise.
3955         (unnamed pattern for xor): Likewise.
3956         (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
3957         (*<optab><mode>3): Likewise.
3958         (*mov<mode>_internal: Likewise.
3959         * config/mips/mips-protos.h (mips_signed_immediate_p): New.
3960         (mips_unsigned_immediate_p): New.
3961         (umips_lwsp_swsp_address_p): New.
3962         (m16_based_address_p): New.
3963         * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
3964         (mips_unsigned_immediate_p): New prototype.
3965         (lwsp_swsp_address_p): New prototype.
3966         (m16_based_address_p): New prototype.
3967         * config/mips/mips.c (mips_unsigned_immediate_p): New function.
3968         (mips_signed_immediate_p): New function.
3969         (m16_based_address_p): New function.
3970         (lwsp_swsp_address_p): New function.
3971         (mips_print_operand_punctuation): Recognize short delay slot insns
3972         for microMIPS.add<mode>3"
3974 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3976         PR target/56720
3977         * config/arm/iterators.md (v_cmp_result): New mode attribute.
3978         * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
3980 2013-03-25  Richard Biener  <rguenther@suse.de>
3982         PR tree-optimization/56689
3983         * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
3984         any edge.
3986 2013-03-25  Richard Biener  <rguenther@suse.de>
3988         * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
3989         of bitmap.
3990         (memory_references): Likewise.
3991         (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
3992         gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
3993         ref_indep_loop_p_2, find_refs_for_sm): Adjust.
3994         (gather_mem_refs_in_loops): Fold into ...
3995         (analyze_memory_references): ... this.  Move initialization
3996         to tree_ssa_lim_initialize.
3997         (fill_always_executed_in): Rename to ...
3998         (fill_always_executed_in_1): ... this.
3999         (fill_always_executed_in): Move contains_call computation to
4000         this new function from ...
4001         (tree_ssa_lim_initialize): ... here.
4002         (tree_ssa_lim): Call fill_always_executed_in.
4004 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
4006         * postreload.c (reload_combine): Fix code detecting returns.
4008 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
4010         * function.c (emit_use_return_register_into_block): On cc0 targets,
4011         do not emit the sequence between cc0 setter and user.
4013 2013-03-25  Kai Tietz  <ktietz@redhat.com>
4015         * config/i386/predicates.md (local_symbolic_operand): Interpret
4016         dll-imported symbols as none-local.
4018 2013-03-25  Richard Biener  <rguenther@suse.de>
4020         * tree-ssa-loop-im.c (struct depend): Remove.
4021         (struct lim_aux_data): Make depends a vec of gimples.
4022         (free_lim_aux_data): Adjust.
4023         (add_dependency): Likewise.
4024         (set_level): Likewise.
4026 2013-03-25  Richard Biener  <rguenther@suse.de>
4028         PR middle-end/56434
4029         * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
4030         the pointer returned by calls with ECF_MALLOC set.
4032 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
4034         * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
4036 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
4038         * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
4039         using MMXMODE mode iterator.
4040         (*move<mode>_internal): Merge with *movv2sf_internal and
4041         *movv2sf_internal_rex64 using MMXMODE mode iterator.
4043 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
4045         * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
4046         (record_last_mem_set_info): Likewise.
4048         * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
4049         of XNEWVEC followed by memset.
4050         (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
4052 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
4054         * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4055         config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
4056         config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
4057         config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
4058         config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
4059         config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
4060         dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
4061         the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
4062         BARRIER_P instead of GET_CODE.
4064 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
4066         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
4067         inaccuracy in the probing code.
4069         * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
4070         (ctrapdi4): Likewise.
4072 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
4074         * calls.c (expand_call): Add missing guard to code handling return
4075         of non-BLKmode structures in MSB.
4076         * function.c (expand_function_end): Likewise.
4078 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
4080         * combine.c (try_combine): Adjust comment.  Do not add the set of
4081         insn #0 if the destination indirectly is set or dies in insn #2.
4082         Tidy up code to distribute a new note.
4084 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
4086         * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
4087         also for alternatives 16 and 17.
4089 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
4091         * config/i386/sse.md (*mov<mode>_internal): Merge with
4092         *mov<mode>_internal_rex64.  Use x64 and nox64 isa attributes.
4093         Emit insn template depending on type attribute.  Use
4094         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
4095         movd instead of movq mnemonic for interunit moves.  Rewrite mode
4096         attribute calculation.  Remove unit attribute calculation.
4097         Set prefix attribute to maybe_vex for sselog1 and ssemov types.
4098         Set prefix_data16 attribute for DImode ssemov types.
4099         Use Ym instead of y for SSE-MMX conversion alternatives.
4100         Reorder operand constraints.
4102 2013-03-22  Steven Bosscher  <steven@gcc.gnu.org>
4104         * df.h (df_insn_delete): Adjust prototype.
4105         * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
4106         and let it decide whether mark the basic block dirty.
4107         (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
4108         * df-scan.c (df_insn_info_delete): New helper function, split
4109         off from df_insn_delete.
4110         (df_scan_free_bb_info): Use it.
4111         (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
4112         Likewise.
4113         (df_insn_delete): Likewise.  Take insn rtx as argument.  Verify
4114         that the insn is actually an insn and it has a non-NULL basic block.
4115         Do not mark basic block dirty if only deleting a DEBUG_INSN.
4117 2013-03-22  Richard Biener  <rguenther@suse.de>
4119         * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
4120         dep_ref members.
4121         (mem_ref_alloc): Do not allocate them.
4122         (refs_independent_p): Do not query or maintain a cache.
4124 2013-03-22  Richard Biener  <rguenther@suse.de>
4126         * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
4127         (gather_mem_refs_in_loops): Do not compute it.
4128         (analyze_memory_references): Do not allocate it.
4129         (tree_ssa_lim_finalize): Do not free it.
4130         (for_all_locs_in_loop): Do not query all_refs_in_loop.
4132 2013-03-22  Richard Biener  <rguenther@suse.de>
4134         * is-a.h (as_a): Use gcc_checking_assert.
4136 2013-03-22  Ian Bolton  <ian.bolton@arm.com>
4138         * config/aarch64/aarch64.c (aarch64_print_operand): New
4139         format specifier for printing a constant in hex.
4140         * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
4141         format specifier for printing second operand.
4143 2013-03-22  Richard Biener  <rguenther@suse.de>
4145         * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
4146         bitmaps.
4147         (gather_mem_refs_in_loops): Perform store accumulation here.
4148         (create_vop_ref_mapping_loop): Remove.
4149         (create_vop_ref_mapping): Likewise.
4150         (analyze_memory_references): Initialize refs_stored_in_loop.
4151         (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
4152         (record_indep_loop): Remove.
4153         (record_dep_loop): New function.
4154         (ref_indep_loop_p_1): Adjust to only walk over references
4155         in the loop, not its subloops.
4156         (ref_indep_loop_p): Rename to ...
4157         (ref_indep_loop_p_2): ... this and recurse over the loop tree,
4158         maintaining a more fine-grained cache.
4159         (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
4160         (tree_ssa_lim_finalize): Free refs_stored_in_loop.
4162 2013-03-22  Richard Biener  <rguenther@suse.de>
4164         * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
4165         (struct mem_ref): Make accesses_in_loop a vec of a vec of
4166         aggregate mem_ref_loc.
4167         (free_mem_ref_locs): Inline into ...
4168         (memref_free): ... this and adjust.
4169         (mem_ref_alloc): Adjust.
4170         (mem_ref_locs_alloc): Remove.
4171         (record_mem_ref_loc): Adjust.
4172         (get_all_locs_in_loop): Rewrite into ...
4173         (for_all_locs_in_loop): ... this iterator.
4174         (rewrite_mem_ref_loc): New functor.
4175         (rewrite_mem_refs): Use for_all_locs_in_loop.
4176         (sm_set_flag_if_changed): New functor.
4177         (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
4178         (ref_always_accessed): New functor.
4179         (ref_always_accessed_p): Use for_all_locs_in_loop.
4181 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
4183         * tree-pass.h (PROP_gimple_lvec): New.
4184         * passes.c (dump_properties): Handle PROP_gimple_lvec.
4185         (init_optimization_passes): Move pass_lower_vector.
4186         * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
4187         PROP_gimple_lvec.
4188         (pass_lower_vector): Provide PROP_gimple_lvec.
4189         (pass_lower_vector_ssa): Likewise.
4190         * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
4192 2013-03-21  Mark Wielaard  <mjw@redhat.com>
4194         * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
4196 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
4198         * config/i386/i386.md (*movdi_internal): Disparage slightly
4199         all MMX moves to/from memory.  Use Yi instead of x for SSE-MMX
4200         conversion alternatives.
4202 2013-03-21  Jakub Jelinek  <jakub@redhat.com>
4204         PR middle-end/48087
4205         * diagnostic.def (DK_WERROR): New kind.
4206         * diagnostic.h (werrorcount): Define.
4207         * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
4208         promoted to DK_ERROR, increment DK_WERROR counter instead of
4209         DK_ERROR counter.
4210         * toplev.c (toplev_main): Call print_ignored_options even if
4211         just werrorcount is non-zero.  Exit with FATAL_EXIT_CODE
4212         even if just werrorcount is non-zero.
4214         PR debug/55608
4215         * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
4216         on failure.
4217         (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
4218         (string_cst_pool_decl): New function.
4219         (optimize_one_addr_into_implicit_ptr): New function.
4220         (resolve_addr_in_expr): Optimize DWARF location expression
4221         DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
4222         which doesn't live in memory, but has DW_AT_location or
4223         DW_AT_const_value, or refers to a string literal, into
4224         DW_OP_GNU_implicit_pointer.
4225         (optimize_location_into_implicit_ptr): New function.
4226         (resolve_addr): If removing DW_AT_location of a variable because
4227         it was DW_OP_addr of address of the variable, but the variable doesn't
4228         live in memory, try to emit const value attribute for the initializer.
4230 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
4232         * tree.h (VECTOR_TYPE_P): New macro.
4233         (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
4234         TYPE_MODE): Use it.
4235         * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
4236         VEC_COND_EXPR cannot be lvalues.
4237         (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
4239 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
4241         * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
4242         Restrict the transformation to equal modes.
4244 2013-03-21  Richard Biener  <rguenther@suse.de>
4246         PR tree-optimization/39326
4247         * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
4248         (MEM_ANALYZABLE): Adjust.
4249         (record_mem_ref_loc): Move bitmap ops ...
4250         (gather_mem_refs_stmt): ... here.  Use the shared mem-ref for
4251         unanalyzable refs, do not record locations for it.
4252         (analyze_memory_references): Allocate ref zero as shared
4253         unanalyzable ref.
4254         (refs_independent_p): Do not test for unanalyzed mems here.
4255         (ref_indep_loop_p_1): Special-case disambiguation against
4256         the unanalyzed ref.
4257         (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
4259 2013-03-21  Christophe Lyon  <christophe.lyon@linaro.org>
4261         * config/arm/arm-protos.h (tune_params): Add
4262         prefer_neon_for_64bits field.
4263         * config/arm/arm.c (prefer_neon_for_64bits): New variable.
4264         (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
4265         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
4266         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
4267         (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
4268         (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
4269         (arm_option_override): Handle -mneon-for-64bits new option.
4270         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
4271         (prefer_neon_for_64bits): Declare new variable.
4272         * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
4273         avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
4274         (arch_enabled): Handle new arch types. Remove support for onlya8
4275         and nota8.
4276         (one_cmpldi2): Use new arch names.
4277         (zero_extend<mode>di2, extend<mode>di2): Ditto.
4278         * config/arm/arm.opt (mneon-for-64bits): Add option.
4279         * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
4280         (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
4281         neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
4282         of onlya8.
4283         * doc/invoke.texi (-mneon-for-64bits): Document.
4285 2013-03-21  Richard Biener  <rguenther@suse.de>
4287         PR tree-optimization/39326
4288         * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
4289         (sort_bbs_in_loop_postorder_cmp): New function.
4290         (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
4292 2013-03-21  Richard Biener  <rguenther@suse.de>
4294         * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
4295         (vect_insert_into_interleaving_chain): Likewise.
4296         (vect_drs_dependent_in_basic_block): Inline ...
4297         (vect_slp_analyze_data_ref_dependence): ... here.  New function,
4298         split out from ...
4299         (vect_analyze_data_ref_dependence): ... here.  Simplify.
4300         (vect_check_interleaving): Simplify.
4301         (vect_analyze_data_ref_dependences): Likewise.  Split out ...
4302         (vect_slp_analyze_data_ref_dependences): ... this new function.
4303         (dr_group_sort_cmp): New function.
4304         (vect_analyze_data_ref_accesses): Compute data-reference groups
4305         here instead of in vect_analyze_data_ref_dependence.  Use
4306         a more efficient algorithm.
4307         * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
4308         vect_slp_analyze_data_ref_dependences.  Call
4309         vect_analyze_data_ref_accesses earlier.
4310         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4311         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
4312         (vect_slp_analyze_data_ref_dependences): New prototype.
4314 2013-03-21  Richard Biener  <rguenther@suse.de>
4316         * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
4317         ref is stored in the loop.
4318         (find_refs_for_sm): Walk only over all stores.
4319         (store_motion_loop): Allocate from lim_bitmap_obstack.
4320         (store_motion): Likewise.
4322 2013-03-21  Richard Biener  <rguenther@suse.de>
4324         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
4325         Update virtual SSA form.
4327 2013-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4329         * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
4330         * configure: Regenerate.
4331         * config.in: Regenerate.
4332         * config/sol2.c (solaris_override_options): Only enforce DWARF 2
4333         if !HAVE_LD_EH_FRAME_CIEV3.
4335 2013-03-21  Richard Biener  <rguenther@suse.de>
4337         * tree-cfg.c (verify_expr_no_block): New function.
4338         (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
4339         nor DECL_VALUE_EXPR have locations with associated blocks.
4340         * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
4341         (clear_unused_block_pointer): Remove code dealing with
4342         blocks in DECL_DEBUG_EXPR locations.
4344 2013-03-21  Richard Biener  <rguenther@suse.de>
4346         * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
4347         (DECL_HAS_DEBUG_EXPR_P): ... this.  Guard properly.
4348         * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
4349         * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
4350         instead of DECL_DEBUG_EXPR_IS_FROM.
4351         * gimplify.c (gimplify_modify_expr): Likewise.
4352         * tree-cfg.c (verify_expr_location_1): Likewise.
4353         * tree-complex.c (create_one_component_var): Likewise.
4354         * tree-sra.c (create_access_replacement): Likewise.
4355         * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
4356         (clear_unused_block_pointer): Likewise.
4357         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
4358         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4359         * var-tracking.c (var_debug_decl): Likewise.
4360         (track_expr_p): Likewise.
4361         * tree-inline.c (add_local_variables): Likewise.  Set
4362         DECL_HAS_DEBUG_EXPR_P after copying it.
4363         * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
4364         instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
4366 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
4368         PR bootstrap/56656
4369         * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
4370         * configure: Regenerate.
4371         * config.in: Regenerate.
4372         * config/i386/i386.md (*movdf_internal): Use
4373         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
4374         movd instead of movq mnemonic for interunit moves.
4375         (*movdi_internal): Ditto.
4377 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
4379         * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
4380         (abd<mode>_3): New pattern.
4381         (aba<mode>_3): New pattern.
4382         (fabd<mode>_3): New pattern.
4384 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
4386         * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
4387         * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
4388         occurrence of REGISTER_PREFIX as its empty string.
4390 2013-03-20  Jeff Law  <law@redhat.com>
4392         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
4393         addititional equivalences for equality comparisons between an SSA_NAME
4394         and a constant where the SSA_NAME was set from a widening conversion.
4396 2013-03-20  Walter Lee  <walt@tilera.com>
4398         * config/tilegx/sync.md (atomic_test_and_set): New pattern.
4400 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
4402         * config/i386/i386.md (*movoi_internal_avx): Emit insn template
4403         depending on type attribute.
4404         (*movti_internal): Ditto.
4405         (*movtf_internal): Ditto.
4406         (*movxf_internal): Ditto.
4407         (*movdf_internal): Ditto.
4408         (*movsf_internal): Ditto.
4410 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
4412         * config/i386/i386.md (*movti_internal): Set prefix attribute to
4413         maybe_vex for sselog1 and ssemov types.
4414         (*movdi_internal): Reorder operand constraints.
4415         (*movsi_internal): Ditto.  Set prefix attribute to
4416         maybe_vex for sselog1 and ssemov types.
4417         (*movtf_internal): Set prefix attribute to maybe_vex
4418         for sselog1 and ssemov types.
4419         (*movdf_internal): Ditto.  Set prefix_data16 attribute for
4420         DImode ssemov types.  Reorder operand constraints.
4421         (*movsf_internal): Set type of alternatives 3,4 to imov.  Set prefix
4422         attribute to maybe_vex for sselog1 and ssemov types.  Set prefix_data16
4423         attribute for SImode ssemov types.  Reorder operand constraints.
4425 2013-03-20  Martin Jambor  <mjambor@suse.cz>
4427         * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
4428         * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
4430 2013-03-20  Pat Haugen <pthaugen@us.ibm.com>
4432         * config/rs6000/predicates.md (indexed_address, update_address_mem
4433         update_indexed_address_mem): New predicates.
4434         * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
4435         attribute for load/store instructions.
4436         * config/rs6000/dfp.md (movsd_store): Likewise.
4437         (movsd_load): Likewise.
4438         * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
4439         (unnamed HI->DI extend define_insn): Likewise.
4440         (unnamed SI->DI extend define_insn): Likewise.
4441         (unnamed QI->SI extend define_insn): Likewise.
4442         (unnamed QI->HI extend define_insn): Likewise.
4443         (unnamed HI->SI extend define_insn): Likewise.
4444         (unnamed HI->SI extend define_insn): Likewise.
4445         (extendsfdf2_fpr): Likewise.
4446         (movsi_internal1): Likewise.
4447         (movsi_internal1_single): Likewise.
4448         (movhi_internal): Likewise.
4449         (movqi_internal): Likewise.
4450         (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
4451         attribute for load/store instructions.
4452         (mov<mode>_hardfloat): Set correct "type" attribute for load/store
4453         instructions.
4454         (mov<mode>_softfloat): Likewise.
4455         (mov<mode>_hardfloat32): Likewise.
4456         (mov<mode>_hardfloat64): Likewise.
4457         (mov<mode>_softfloat64): Likewise.
4458         (movdi_internal32): Likewise.
4459         (movdi_internal64): Likewise.
4460         (probe_stack_<mode>): Likewise.
4462 2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
4464         * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
4465         floating point, and decimal floating point to reload iterator.
4467         * config/rs6000/constraints.md (wl constraint): New constraints to
4468         return FLOAT_REGS if certain options are used to reduce the number
4469         of separate patterns that exist in the file.
4470         (wx constraint): Likewise.
4471         (wz constraint): Likewise.
4473         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4474         -mdebug=reg, print wg, wl, wx, and wz constraints.
4475         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4476         Initialize the reload functions for 64-bit binary/decimal floating
4477         point types.
4478         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4479         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4480         create the buffer on the stack to overcome not having a 32-bit
4481         load and store.
4482         (rs6000_emit_move): Likewise.
4483         (rs6000_secondary_memory_needed_rtx): Likewise.
4484         (rs6000_alloc_sdmode_stack_slot): Likewise.
4485         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4486         via xxlxor, just like DFmode 0.0.
4488         * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
4489         define as 1 if we are running on a power7 or newer.
4490         (enum r6000_reg_class_enum): Add new constraints.
4492         * config/rs6000/dfp.md (movsd): Delete, combine with binary
4493         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
4494         with other moves by using conditional constraits (wg).  Use LFIWZX
4495         and STFIWX for loading SDmode on power7.  Use xxlxor to create 0.0f.
4496         (movsd splitter): Likewise.
4497         (movsd_hardfloat): Likewise.
4498         (movsd_softfloat): Likewise.
4500         * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
4501         binary and decimal floating point moves.
4502         (fmove_ok): New attributes to combine binary and decimal floating
4503         point moves, and to combine power6x (mfpgpr) moves along normal
4504         floating moves.
4505         (real_value_to_target): Likewise.
4506         (f32_lr): Likewise.
4507         (f32_lm): Likewise.
4508         (f32_li): Likewise.
4509         (f32_sr): Likewise.
4510         (f32_sm): Likewise.
4511         (f32_si): Likewise.
4512         (movsf): Combine binary and decimal floating point moves.  Combine
4513         power6x (mfpgpr) moves with other moves by using conditional
4514         constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on power7.
4515         (mov<mode> for SFmode/SDmode); Likewise.
4516         (SFmode/SDmode splitters): Likewise.
4517         (movsf_hardfloat): Likewise.
4518         (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
4519         (movsf_softfloat): Likewise.
4520         (mov<mode>_softfloat for SFmode/SDmode): Likewise.
4522         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
4523         wx and wz constraints.
4525         * config/rs6000/constraints.md (wg constraint): New constraint to
4526         return FLOAT_REGS if -mmfpgpr (power6x) was used.
4528         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
4529         constraint.
4531         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4532         -mdebug=reg, print wg, wl, wx, and wz constraints.
4533         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
4534         Initialize the reload functions for 64-bit binary/decimal floating
4535         point types.
4536         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
4537         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
4538         create the buffer on the stack to overcome not having a 32-bit
4539         load and store.
4540         (rs6000_emit_move): Likewise.
4541         (rs6000_secondary_memory_needed_rtx): Likewise.
4542         (rs6000_alloc_sdmode_stack_slot): Likewise.
4543         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
4544         via xxlxor, just like DFmode 0.0.
4546         * config/rs6000/dfp.md (movdd): Delete, combine with binary
4547         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
4548         with other moves by using conditional constraits (wg).  Use LFIWZX
4549         and STFIWX for loading SDmode on power7.
4550         (movdd splitters): Likewise.
4551         (movdd_hardfloat32): Likewise.
4552         (movdd_softfloat32): Likewise.
4553         (movdd_hardfloat64_mfpgpr): Likewise.
4554         (movdd_hardfloat64): Likewise.
4555         (movdd_softfloat64): Likewise.
4557         * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
4558         64-bit binary and decimal floating point moves.
4559         (FMOVE64X): Likewise.
4560         (movdf): Combine 64-bit binary and decimal floating point moves.
4561         Combine power6x (mfpgpr) moves with other moves by using
4562         conditional constraits (wg).
4563         (mov<mode> for DFmode/DDmode): Likewise.
4564         (DFmode/DDmode splitters): Likewise.
4565         (movdf_hardfloat32): Likewise.
4566         (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
4567         (movdf_softfloat32): Likewise.
4568         (movdf_hardfloat64_mfpgpr): Likewise.
4569         (movdf_hardfloat64): Likewise.
4570         (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
4571         (movdf_softfloat64): Likewise.
4572         (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
4573         (reload_<mode>_load): Move to later in the file so they aren't in
4574         the middle of the floating point move insns.
4575         (reload_<mode>_store): Likewise.
4577         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
4578         constraint.
4580         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
4581         constraint if -mdebug=reg.
4582         (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
4583         Enable using dd reload support if needed.
4585         * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
4586         binary and decimal floating point moves in rs6000.md.
4587         (movtd_internal): Likewise.
4589         * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
4590         decimal floating point moves.
4591         (movtf): Likewise.
4592         (movtf_internal): Likewise.
4593         (mov<mode>_internal, TDmode/TFmode): Likewise.
4594         (movtf_softfloat): Likewise.
4595         (mov<mode>_softfloat, TDmode/TFmode): Likewise.
4597         * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
4598         movdi_internal64, using wg constraint for move direct operations.
4599         (movdi_internal64): Likewise.
4601         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
4602         MODES_TIEABLE_P for selected modes.  Print the numerical value of
4603         the various virtual registers. Use GPR/FPR first/last values,
4604         instead of hard coding the register numbers.  Print which modes
4605         have reload functions registered.
4606         (rs6000_option_override_internal): If -mdebug=reg, trace the options
4607         settings before/after setting cpu, target and subtarget settings.
4608         (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
4609         and for secondary reload failures in rs6000_secondary_reload_inner.
4610         (rs6000_secondary_reload_fail): Likewise.
4611         (rs6000_secondary_reload_inner): Likewise.
4613         * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
4614         macros for first/last GPR and FPR registers.
4615         (LAST_GPR_REGNO): Likewise.
4616         (FIRST_FPR_REGNO): Likewise.
4617         (LAST_FPR_REGNO): Likewise.
4619         * config/rs6000/vector.md (mul<mode>3): Use the combined macro
4620         VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
4621         VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
4622         (vcond<mode><mode>): Likewise.
4623         (vcondu<mode><mode>): Likewise.
4624         (vector_gtu<mode>): Likewise.
4625         (vector_gte<mode>): Likewise.
4626         (xor<mode>3): Don't allow logical operations on TImode in 32-bit
4627         to prevent the compiler from converting DImode operations to TImode.
4628         (ior<mode>3): Likewise.
4629         (and<mode>3): Likewise.
4630         (one_cmpl<mode>2): Likewise.
4631         (nor<mode>3): Likewise.
4632         (andc<mode>3): Likewise.
4634         * config/rs6000/constraints.md (wt constraint): New constraint
4635         that returns VSX_REGS if TImode is allowed in VSX registers.
4637         * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
4638         constant under VSX.
4640         * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
4641         similar to TImode, but it is restricted to being in the GPRs.
4643         * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
4644         TImode to occupy a single VSX register.
4646         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
4647         -mvsx-timode for power7/power8.
4648         (power7 cpu): Likewise.
4649         (power8 cpu): Likewise.
4651         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
4652         sure that TFmode/TDmode take up two registers if they are ever
4653         allowed in the upper VSX registers.
4654         (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
4655         registers.
4656         (rs6000_init_hard_regno_mode_ok): Likewise.
4657         (rs6000_debug_reg_global): Add debugging for PTImode and wt
4658         constraint.  Print if LRA is turned on.
4659         (rs6000_option_override_internal): Give an error if -mvsx-timode
4660         and VSX is not enabled.
4661         (invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
4662         -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
4663         to reg+offset addressing.  Use PTImode when checking offset
4664         addresses for validity.
4665         (reg_offset_addressing_ok_p): Likewise.
4666         (rs6000_legitimate_offset_address_p): Likewise.
4667         (rs6000_legitimize_address): Likewise.
4668         (rs6000_legitimize_reload_address): Likewise.
4669         (rs6000_legitimate_address_p): Likewise.
4670         (rs6000_eliminate_indexed_memrefs): Likewise.
4671         (rs6000_emit_move): Likewise.
4672         (rs6000_secondary_reload): Likewise.
4673         (rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
4674         reloads to fpr registers to continue to use reg+offset addressing,
4675         but 64-bit reloads to altivec registers need reg+reg addressing.
4676         Drop test for PRE_MODIFY, since VSX loads/stores no longer support
4677         it.  Treat LO_SUM like a PLUS operation.
4678         (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
4679         FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
4680         (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
4681         registers to share a register with a smaller sized type, since VSX
4682         puts scalars in the upper 64-bits.
4683         (print_operand): Add support for PTImode.
4684         (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
4685         VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
4686         registers, but don't have arithmetic support.
4687         (rs6000_memory_move_cost): Add test for VSX.
4688         (rs6000_opt_masks): Add -mvsx-timode.
4690         * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
4691         for TImode.
4692         (VSs): Likewise.
4693         (VSr): Use wt constraint for TImode.
4694         (VSv): Drop TImode support.
4695         (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
4696         (vsx_movti_64bit): Likewise.
4697         (vsx_movti_32bit): Likewise.
4698         (vec_store_<mode>): Use VSX iterator instead of vector iterator.
4699         (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
4700         one '?' on the appropriate output constraint.  Do not allow TImode
4701         logical operations on 32-bit systems.
4702         (vsx_ior<mode>3): Likewise.
4703         (vsx_xor<mode>3): Likewise.
4704         (vsx_one_cmpl<mode>2): Likewise.
4705         (vsx_nor<mode>3): Likewise.
4706         (vsx_andc<mode>3): Likewise.
4707         (vsx_concat_<mode>): Likewise.
4708         (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
4710         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
4711         OPTION_MASK_VSX_TIMODE.
4712         (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
4713         (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
4715         * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
4716         (TI2 iterator): New iterator for TImode, PTImode.
4717         (wd mode attribute): Add values for vector types.
4718         (movti_string): Replace TI move operations with operations for TImode
4719         and PTImode.  Add support for TImode being allowed in VSX registers.
4720         (mov<mode>_string, TImode/PTImode): Likewise.
4721         (movti_ppc64): Likewise.
4722         (mov<mode>_ppc64, TImode/PTImode): Likewise.
4723         (TI mode splitters): Likewise.
4725         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
4726         constraint.
4728 2013-03-20  Marc Glisse  <marc.glisse@inria.fr>
4730         PR tree-optimization/56355
4731         * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
4732         Also handle integers with undefined overflow.
4734 2013-03-20  Catherine Moore  <clm@codesourcery.com>
4735             Maciej W. Rozycki  <macro@codesourcery.com>
4736             Tom de Vries  <tom@codesourcery.com>
4737             Nathan Sidwell <nathan@codesourcery.com>
4738             Iain Sandoe  <iain@codesourcery.com>
4739             Nathan Froyd  <froydnj@codesourcery.com>
4740             Chao-ying Fu <fu@mips.com>
4742         * doc/extend.texi: (micromips, nomicromips, nocompression):
4743         Document new function attributes.
4744         * doc/invoke.texi (minterlink-compressed, mmicromips,
4745         m14k, m14ke, m14kec): Document new options.
4746         (minterlink-mips16): Update documentation.
4747         * doc/md.texi (ZC, ZD): Document new constraints.
4748         * configure.ac (gcc_cv_as_micromips): Check if linker
4749         supports the .set micromips directive.
4750         * configure: Regenerate.
4751         * config.in: Regenerate.
4752         * config/mips/mips-tables.opt: Regenerate.
4753         * config/mips/micromips.md: New file.
4754         * constraints.md (ZC, ZD): New constraints.
4755         * config/mips/predicates.md (movep_src_register): New predicate.
4756         (movep_src_operand): New predicate.
4757         (non_volatile_mem_operand): New predicate.
4758         * config/mips/mips.md (multimem): New type.
4759         (length): Differentiate between 17-bit and 18-bit branch offsets.
4760         (MOVEP1, MOVEP2): New mode iterator.
4761         (mov_<load>l): Use ZC constraint.
4762         (mov_<load>r): Likewise.
4763         (mov_<store>l): Likewise.
4764         (mov_<store>r): Likewise.
4765         (*branch_equality<mode>_inverted): Add microMIPS support.
4766         (*branch_equality<mode>): Likewise.
4767         (*jump_absolute): Likewise.
4768         (indirect_jump_<mode>): Likewise.
4769         (tablejump_<mode>): Likewise.
4770         (<optab>_internal): Likewise.
4771         (sibcall_internal): Likewise.
4772         (sibcall_value_internal): Likewise.
4773         (prefetch): Use constraint ZD.
4774         * config/mips/mips.opt (minterlink-compressed): New option.
4775         (minterlink-mips16): Now an alias for minterlink-compressed.
4776         (mmicromips): New option.
4777         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
4778         (compare_and_swap_12): Likewise.
4779         (sync_add<mode>): Likewise.
4780         (sync_<optab>_12): Likewise.
4781         (sync_old_<optab>_12): Likewise.
4782         (sync_new_<optab>_12): Likewise.
4783         (sync_nand_12): Likewise.
4784         (sync_old_nand_12): Likewise.
4785         (sync_new_nand_12): Likewise.
4786         (sync_sub<mode>): Likewise.
4787         (sync_old_add<mode>): Likewise.
4788         (sync_old_sub<mode>): Likewise.
4789         (sync_new_add<mode>): Likewise.
4790         (sync_new_sub<mode>): Likewise.
4791         (sync_<optab><mode>): Likewise.
4792         (sync_old_<optab><mode>): Likewise.
4793         (sync_new_<optab><mode>): Likewise.
4794         (sync_nand<mode>): Likewise.
4795         (sync_old_nand<mode>): Likewise.
4796         (sync_new_nand<mode>): Likewise.
4797         (sync_lock_test_and_set<mode>): Likewise.
4798         (test_and_set_12): Likewise.
4799         (atomic_compare_and_swap<mode>): Likewise.
4800         (atomic_exchange<mode>_llsc): Likewise.
4801         (atomic_fetch_add<mode>_llsc): Likewise.
4802         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
4803         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
4804         (umips_save_restore_pattern_p): Likewise.
4805         (umips_load_store_pair_p): Likewise.
4806         (umips_output_load_store_pair): Likewise.
4807         (umips_movep_target_p): Likewise.
4808         (umips_12bit_offset_address_p): Likewise.
4809         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
4810         (mips_base_mips16): Rename this...
4811         (mips_base_compression_flags): ...to this. Update all uses.
4812         (mips_attribute_table): Add micromips, nomicromips and nocompression.
4813         (mips_mips16_decl_p): Delete.
4814         (mips_nomips16_decl_p): Delete.
4815         (mips_get_compress_on_flags): New function.
4816         (mips_get_compress_off_flags): New function.
4817         (mips_get_compress_mode): New function.
4818         (mips_get_compress_on_name): New function.
4819         (mips_get_compress_off_name): New function.
4820         (mips_insert_attributes): Support multiple compression types.
4821         (mips_merge_decl_attributes): Likewise.
4822         (umips_12bit_offset_address_p): New function.
4823         (mips_start_function_definition): Emit .set micromips directive.
4824         (mips_call_may_need_jalx_p): New function.
4825         (mips_function_ok_for_sibcall): Add microMIPS support.
4826         (mips_print_operand_punctuation): Support short delay slots and
4827         compact jumps.
4828         (umips_swm_mask, umips_swm_encoding): New.
4829         (umips_build_save_restore): New function.
4830         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
4831         (was_mips16_p): Remove.
4832         (old_compression_mode): New.
4833         (mips_set_compression_mode): New function.
4834         (mips_set_current_function): Add microMIPS support.
4835         (mips_option_override): Likewise.
4836         (umips_save_restore_pattern_p): New function.
4837         (umips_output_save_restore): New function.
4838         (umips_load_store_pair_p_1): New function.
4839         (umips_load_store_pair_p): New function.
4840         (umips_output_load_store_pair_1): New function.
4841         (umips_output_load_store_pair): New function.
4842         (umips_movep_target_p) New function.
4843         (mips_prepare_pch_save): Add microMIPS support.
4844         * config/mips/mips.h (TARGET_COMPRESSION): New.
4845         (TARGET_CPU_CPP_BUILTINS): Update macro
4846         to use new compression flags and to support microMIPS.
4847         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
4848         (MIPS_ARCH_FLOAT_SPEC): Likewise.
4849         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
4850         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
4851         (ASM_SPEC): Support mmicromips and mno-micromips.
4852         (M16STORE_REG_P): New macro.
4853         (MIPS_CALL): Support TARGET_MICROMIPS.
4854         (MICROMIPS_J): New macro.
4855         (mips_base_mips16): Rename this...
4856         (mips_base_compression_flags): ...to this.
4857         (UMIPS_12BIT_OFFSET_P): New macro.
4858         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
4859         (MULTILIB_DIRNAMES): Likewise.
4860 2013-03-20  Richard Biener  <rguenther@suse.de>
4862         PR tree-optimization/56661
4863         * tree-ssa-sccvn.c (visit_use): Only value-number calls if
4864         the result does not have to be distinct.
4866 2013-03-20  Richard Biener  <rguenther@suse.de>
4868         * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
4869         remap_gimple_op_r.
4871 2013-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4872             Steven Bosscher <steven@gcc.gnu.org>
4874         PR rtl-optimization/56605
4875         * loop-iv.c (implies_p): Handle equal RTXs and subregs.
4877 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
4879         PR bootstrap/56656
4880         * config/i386/i386.md (*movdi_internal): Handle broken assemblers
4881         that require movd instead of movq.
4883 2013-03-20  Richard Biener  <rguenther@suse.de>
4885         * tree-ssa-structalias.c (struct variable_info): Add pointer
4886         to the first field of an aggregate with sub-vars.  Make
4887         this and the pointer to the next subfield its ID.
4888         (vi_next): New function.
4889         (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
4890         storedanything_id, integer_id): Increment by one.
4891         (new_var_info, get_call_vi, lookup_call_clobber_vi,
4892         get_call_clobber_vi): Adjust.
4893         (solution_set_expand): Simplify and speedup.
4894         (solution_set_add): Inline into ...
4895         (set_union_with_increment): ... this.  Adjust accordingly.
4896         (do_sd_constraint): Likewise.
4897         (do_ds_constraint): Likewise.
4898         (do_complex_constraint): Simplify.
4899         (build_pred_graph): Adjust.
4900         (solve_graph): Likewise.  Simplify and speedup.
4901         (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
4902         get_constraint_for_component_ref, get_constraint_for_1,
4903         first_vi_for_offset, first_or_preceding_vi_for_offset,
4904         create_function_info_for, create_variable_info_for_1,
4905         create_variable_info_for, intra_create_variable_infos): Adjust.
4906         (init_base_vars): Push NULL for ID zero.
4907         (compute_points_to_sets): Adjust.
4909 2013-03-20  Richard Biener  <rguenther@suse.de>
4911         * cfgloop.c (verify_loop_structure): Streamline and avoid
4912         ICEing on corrupt loop tree.
4913         * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
4914         loop tree.
4916 2013-03-20  Richard Biener  <rguenther@suse.de>
4918         * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
4919         check whether an SSA update is needed.
4921 2013-03-20  Richard Sandiford  <rdsandiford@googlemail.com>
4923         * config/mips/constraints.md (T): Rename to...
4924         (Yf): ...this.
4925         (U): Rename to...
4926         (Yd): ...this.
4927         * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
4928         (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
4930 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
4932         * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
4933         (*subsi3_carryin_uxtw): Likewise.
4935 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
4937         * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
4938         (*rorsi3_insn_uxtw): Likewise.
4940 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
4942         * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
4943         (*extrsi5_insn_uxtw): Likewise.
4945 2013-03-19  Richard Biener  <rguenther@suse.de>
4947         PR tree-optimization/56273
4948         * passes.c (init_optimization_passes): Move second VRP after DOM.
4950 2013-03-19  Uros Bizjak  <ubizjak@gmail.com>
4952         * config/i386/i386.md (*movti_internal): Merge from
4953         *movti_internal_rex64 and *movti_internal_sse.  Use x64 isa attribute.
4954         (*movdi_internal): Merge with *movdi_internal_rex64.  Use x64 and
4955         nox64 isa attributes.
4957 2013-03-18  Richard Biener  <rguenther@suse.de>
4959         * tree-ssa-structalias.c (find): Use gcc_checking_assert.
4960         (unite): Likewise.
4961         (merge_node_constraints): Likewise.
4962         (build_succ_graph): Likewise.
4963         (valid_graph_edge): Inline into single caller.
4964         (unify_nodes): Likewise.  Use bitmap_set_bit return value
4965         and cache varinfo.
4966         (scc_visit): Fix formatting and variable use.
4967         (do_sd_constraint): Use gcc_checking_assert.
4968         (do_ds_constraint): Likewise.
4969         (do_complex_constraint): Likewise.
4970         (condense_visit): Likewise.  Cleanup.
4971         (dump_pred_graph): New function.
4972         (perform_var_substitution): Dump the pred-graph before
4973         variable substitution.
4974         (find_equivalent_node): Use gcc_checking_assert.
4975         (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
4977 2013-03-18  Richard Biener  <rguenther@suse.de>
4979         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4980         Remove cond_expr_stmt_list argument and do not gimplify the
4981         built expression.
4982         (vect_loop_versioning): Adjust.
4983         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
4984         Cleanup to use less temporaries.
4985         (vect_create_data_ref_ptr): Cleanup.
4987 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
4989         PR tree-optimization/56635
4990         * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
4991         require types_compatible_p types.
4993 2013-03-18  Nick Clifton  <nickc@redhat.com>
4995         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
4996         spurious backslash.
4998         * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
4999         Add missing line to comment describing function.
5001 2013-03-18  Richard Biener  <rguenther@suse.de>
5003         PR tree-optimization/56210
5004         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5005         Handle string / character search functions.
5006         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5008 2013-03-18  Richard Biener  <rguenther@suse.de>
5010         PR middle-end/56483
5011         * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
5012         and implement properly.
5013         * gimple.h (gimple_cond_single_var_p): Remove.
5015 2013-03-18  Richard Biener  <rguenther@suse.de>
5017         * tree-data-ref.h (find_data_references_in_loop): Declare.
5018         * tree-data-ref.c (get_references_in_stmt): Use a stack
5019         vector pre-allocated in the callers.
5020         (find_data_references_in_stmt): Adjust.
5021         (graphite_find_data_references_in_stmt): Likewise.
5022         (create_rdg_vertices): Likewise.
5023         (find_data_references_in_loop): Export.
5024         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
5025         Compute dependences here...
5026         (vect_analyze_data_refs): ...not here.  When we encounter
5027         a non-vectorizable data reference in basic-block vectorization
5028         truncate the data reference vector.  Do not bother to
5029         fixup data-dependence information for gather loads.
5030         * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
5031         of data references, as reported.
5033 2013-03-18  Richard Biener  <rguenther@suse.de>
5035         PR tree-optimization/3713
5036         * tree-ssa-sccvn.c (visit_copy): Simplify.  Always propagate
5037         has_constants and expr.
5038         (stmt_has_constants): Properly valueize SSA names when deciding
5039         whether the stmt has constants.
5041 2013-03-18  Richard Biener  <rguenther@suse.de>
5043         * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
5044         whole function when there is nothing to do.
5045         * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
5046         * tree-vectorizer.c (vectorize_loops): Update virtual and
5047         loop-closed SSA once.
5048         * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
5050 2013-03-18  Richard Biener  <rguenther@suse.de>
5052         PR middle-end/56113
5053         * domwalk.c (bb_postorder): New global static.
5054         (cmp_bb_postorder): New function.
5055         (walk_dominator_tree): Replace scheme imposing an order for
5056         visiting dominator sons by one sorting them at the time they
5057         are pushed on the stack.
5059 2013-03-18  Richard Biener  <rguenther@suse.de>
5061         PR tree-optimization/39326
5062         * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
5063         (struct mem_ref): Replace mem member with ao_ref typed member.
5064         (MEM_ANALYZABLE): Adjust.
5065         (memref_eq): Likewise.
5066         (mem_ref_alloc): Likewise.
5067         (gather_mem_refs_stmt): Likewise.
5068         (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
5069         (execute_sm_if_changed_flag_set): Adjust.
5070         (execute_sm): Likewise.
5071         (ref_always_accessed_p): Likewise.
5072         (refs_independent_p): Likewise.
5073         (can_sm_ref_p): Likewise.
5075 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
5077         PR c/56566
5078         * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
5079         return 1 even for !unsignedp.
5081 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
5083         * config/i386/i386.md (isa): Add x64 and nox64.
5084         (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
5085         (*pushtf): Enable *roF alternative for x64 isa only.
5086         (*pushxf): Merge with *pushxf_nointeger.  Use Yx*r constraint. Set
5087         mode attribute of integer alternatives to DImode for TARGET_64BIT.
5088         (*pushdf): Merge with *pushdf_rex64.  Use x64 and nox64 isa attributes.
5089         (*movtf_internal): Merge from *movtf_internal_rex64 and
5090         *movtf_internal_sse.  Use x64 and nox64 isa attributes.
5091         (*movxf_internal): Merge with *movxf_internal_rex64.  Use x64 and
5092         nox64 isa attributes.
5093         (*movdf_internal): Merge with *movdf_internal_rex64.  Use x64 and
5094         nox64 isa attributes.
5095         * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
5097 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
5099         * config/alpha/alpha.c (TARGET_LRA_P): New define.
5101 2013-03-17  Jakub Jelinek  <jakub@redhat.com>
5103         PR target/56640
5104         * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
5105         class names.  Remove trailing comma after "ALL_REGS".
5107 2013-03-16  Jan Hubicka  <jh@suse.cz>
5109         * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
5110         * cgraph.c (cgraph_get_create_real_symbol_node): New function.
5111         * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
5112         of cgraph_get_create_node.
5113         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5115 2013-03-16  Jason Merrill  <jason@redhat.com>
5117         PR debug/49090
5118         * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
5119         with DW_AT_default_value.
5121 2013-03-16  Jakub Jelinek  <jakub@redhat.com>
5123         * BASE-VER: Set to 4.9.0.
5125 2013-03-14  Andi Kleen  <ak@linux.intel.com>
5127         PR target/56619
5128         * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
5129         __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
5130         Document _x* TSX intrinsics.
5132 2013-03-14  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
5133             David Holsgrove  <david.holsgrove@xilinx.com>
5135         * configure.ac: Add MicroBlaze TLS support detection.
5136         * configure: Regenerate.
5137         * config/microblaze/microblaze-protos.h
5138         (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
5139         symbol_mentioned_p, label_mentioned_p): Add prototypes.
5140         * config/microblaze/microblaze.c (microblaze_address_type): Add
5141         ADDRESS_TLS and tls_reloc address types.
5142         (microblaze_address_info): Add tls_reloc.
5143         (TARGET_HAVE_TLS): Define.
5144         (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
5145          microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
5146          symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
5147         load_tls_operand,  microblaze_call_tls_get_addr,
5148         microblaze_legitimize_tls_address): New functions.
5149         (microblaze_classify_unspec): Handle UNSPEC_TLS.
5150         (get_base_reg): Use microblaze_tls_symbol_p.
5151         (microblaze_classify_address): Handle TLS.
5152         (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
5153         label_mentioned_p and microblaze_tls_referenced_p.
5154         (microblaze_legitimize_address): Handle TLS.
5155         (microblaze_address_insns): Handle ADDRESS_TLS.
5156         (pic_address_needs_scratch): Handle TLS.
5157         (print_operand_address): Handle TLS.
5158         (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
5159         (microblaze_expand_move): Handle TLS.
5160         (microblaze_legitimate_constant_p): Check
5161         microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
5162         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
5163         * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
5164         (PIC_OFFSET_TABLE_REGNUM): Set.
5165         * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
5166         * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
5167         (addsi3, movsi_internal2, movdf_internal): Update constraints
5168         * config/microblaze/predicates.md (arith_plus_operand): Define
5169         (move_operand): Redefine as move_src_operand,
5170         check microblaze_tls_referenced_p.
5172 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
5174         * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
5175         (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
5177 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
5179         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
5180         CC mode for AND.
5182 2013-03-14  Jakub Jelinek  <jakub@redhat.com>
5184         PR tree-optimization/53265
5185         * common.opt (Waggressive-loop-optimizations): New option.
5186         * tree-ssa-loop-niter.c: Include tree-pass.h.
5187         (do_warn_aggressive_loop_optimizations): New function.
5188         (record_estimate): Call it.  Don't add !is_exit bounds to loop->bounds
5189         if number_of_latch_executions returned constant.
5190         (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
5191         early.  If number_of_latch_executions returned constant, set
5192         nb_iterations_upper_bound back to it.
5193         * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
5194         field.
5195         * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
5196         * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
5198         * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
5199         (MULTILIB_OSDIRNAMES): Set.
5200         * genmultilib: If defaultosdirname doesn't start with :: , set
5201         defaultosdirname2 instead, clear it and emit two . multilib_raw
5202         entries instead of just one.
5204 2013-03-14  Kaz Kojima  <kkojima@gcc.gnu.org>
5206         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
5207         (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
5208         * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
5209         (SUBTARGET_OVERRIDE_OPTIONS): New.
5211 2013-03-13  Oleg Endo  <olegendo@gcc.gnu.org>
5213         PR target/49880
5214         * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
5215         (musermode): Convert to Var(TARGET_USERMODE).
5216         * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
5217         MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
5218         * config/sh/sh.c (sh_option_override): Use
5219         TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
5220         * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
5221         condition.
5222         (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
5223         TARGET_SH4.
5224         (udivsi3_i4_single, divsi3_i4_single): Use
5225         TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
5227 2013-03-13  Dave Korn  <dave.korn.cygwin@....>
5229         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
5230         default setting.
5232 2013-03-13  Richard Biener  <rguenther@suse.de>
5234         PR tree-optimization/56608
5235         * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
5236         calls when vectorizing basic-blocks.
5238 2013-03-13  Jakub Jelinek  <jakub@redhat.com>
5240         PR plugins/45078
5241         * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
5242         tm_file.
5244 2013-03-12  Jakub Jelinek  <jakub@redhat.com>
5246         * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
5248 2013-03-11  Jan Hubicka  <jh@suse.cz>
5250         PR lto/56557
5251         * lto-streamer-out.c (output_symbol_p): Skip references from
5252         constructors of external variables.
5254 2013-03-11  Jan Hubicka  <jh@suse.cz>
5256         PR middle-end/56571
5257         * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
5258         from pseudos.
5259         * emit-rtl.c (verify_rtx_sharing): Likewise.
5260         (copy_insn_1): Likewise.
5261         * rtl.c (copy_rtx): Likewise.
5263 2013-03-11  Georg-Johann Lay  <avr@gjlay.de>
5265         PR target/56591
5266         * config/avr/avr.c (avr_print_operand): Add space after '%c' in
5267         output_operand_lossage message.
5269 2013-03-11  Richard Earnshaw  <rearnsha@arm.com>
5271         PR target/56470
5272         * arm.c (shift_op): Validate RTL pattern on the fly.
5273         (arm_print_operand, case 'S'): Don't use shift_operator to validate
5274         the RTL.
5276 2013-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5278         PR target/56347
5279         * config/pa/pa.md (call_value): Check for calls to powf and direct to
5280         new call patterns that clobber %fr12.
5281         (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
5282         split and postreload patterns.
5283         * config/pa/pa.c (pa_conditional_register_usage): Revert marking
5284         registers %fr12 and %fr12R as call used.
5286 2013-03-09  Steven Bosscher  <steven@gcc.gnu.org>
5288         * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
5289         (canon_address, record_store, replace_read, check_mem_read_rtx,
5290         scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
5291         dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
5292         rest_of_handle_dse): Likewise.
5294 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
5296         PR middle-end/56524
5297         * tree.h (tree_optimization_option): Rename target_optabs to optabs.
5298         Add base_optabs.
5299         (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
5300         (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
5301         (save_optabs_if_changed): Replace with...
5302         (init_tree_optimization_optabs): ...this.
5303         * optabs.c (save_optabs_if_changed): Rename to...
5304         (init_tree_optimization_optabs): ...this.  Take the optimization node
5305         as argument.  Do nothing if the base optabs are already correct.
5306         Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
5307         to recompute optabs.
5308         * function.h (function): Remove optabs field.
5309         * function.c (invoke_set_current_function_hook): Call
5310         init_tree_optimization_optabs.  Use the result to initialize
5311         this_fn_optabs.
5313 2013-02-27  Aldy Hernandez  <aldyh@redhat.com>
5315         * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
5316         if GTMA_HAS_NO_INSTRUMENTATION.
5317         (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
5318         (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
5319         * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
5320         * gimple-pretty-print.c (dump_gimple_transaction): Handle
5321         GTMA_HAS_NO_INSTRUMENTATION.
5323 2013-03-08  Jakub Jelinek  <jakub@redhat.com>
5325         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
5326         libasan_preinit.o.
5328 2013-03-08  Marek Polacek  <polacek@redhat.com>
5329             Jakub Jelinek  <jakub@redhat.com>
5331         PR tree-optimization/56478
5332         * predict.c (is_comparison_with_loop_invariant_p): Change the
5333         type of loop_step to tree.
5334         (predict_loops): Adjust.
5335         (predict_iv_comparison): Perform the computations on double_ints.
5337 2013-03-08  Richard Biener  <rguenther@suse.de>
5339         PR tree-optimization/56570
5340         * tree-cfg.c (verify_expr_location_1): Verify locations for
5341         DECL_DEBUG_EXPR.
5342         * tree-sra.c (create_access_replacement): Strip locations
5343         from DECL_DEBUG_EXPRs.
5345 2013-03-08  Richard Biener  <rguenther@suse.de>
5347         * tree-inline.c (expand_call_inline): Do not associate
5348         a BLOCK with the location in BLOCK_SOURCE_LOCATION.
5349         * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
5351 2013-03-08  Richard Biener  <rguenther@suse.de>
5353         * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
5354         or block changes with -Og.  Fix for location / block encoding
5355         changes and PHI arguments with locations.
5357 2013-03-07  Steven Bosscher  <steven@gcc.gnu.org>
5359         * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
5360         for all counters.
5361         (struct output_info): Likewise.
5362         (register_overhead): Remove bad gcc_assert.
5363         (bitmap_find_bit): If there is only a single bitmap element, do not
5364         count a miss as a search.
5365         (print_statistics): Update for counter type changes.
5366         (dump_bitmap_statistics): Likewise.  Print headers such that they
5367         are properly lined up with the printed counters.
5369 2013-03-07  Jakub Jelinek  <jakub@redhat.com>
5371         PR tree-optimization/56559
5372         * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
5373         check that it has only a single use.
5375 2013-03-07  Richard Biener  <rguenther@suse.de>
5377         * doc/invoke.texi (fwhole-program): Discourage use in combination
5378         with -flto.
5380 2013-03-06  Jakub Jelinek  <jakub@redhat.com>
5382         * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
5384         PR tree-optimization/56539
5385         * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
5386         instead of GSI_CONTINUE_LINKING as last argument to
5387         force_gimple_operand_gsi.  Adjust function comment.
5389         * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
5390         aarch64-cores.def.
5392         PR middle-end/56548
5393         * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
5394         promoted mode, convert the result back to the original mode.
5396 2013-03-06  Richard Biener  <rguenther@suse.de>
5398         PR middle-end/56294
5399         * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
5400         (insert_updated_phi_nodes_compare_uids): New function.
5401         (update_ssa): Sort symbols_to_rename after UID before
5402         traversing it to insert PHI nodes.
5404 2013-03-06  Richard Biener  <rguenther@suse.de>
5406         PR middle-end/50494
5407         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
5408         Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
5410         Revert
5411         2013-02-13  Richard Biener  <rguenther@suse.de>
5413         PR lto/50494
5414         * varasm.c (output_constant_def_1): Get the decl representing
5415         the constant as argument.
5416         (output_constant_def): Wrap output_constant_def_1.
5417         (make_decl_rtl): Use output_constant_def_1 with the decl
5418         representing the constant.
5419         (build_constant_desc): Optionally re-use a decl already
5420         representing the constant.
5421         (tree_output_constant_def): Adjust.
5423 2013-03-06  Joey Ye  <joey.ye@arm.com>
5425         PR lto/50293
5426         * gcc.c (convert_white_space): New function.
5427         (main): Handles white space in function name.
5429 2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
5431         PR target/56529
5432         * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
5433         instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
5434         to SH_DIV_CALL_TABLE for TARGET_SH2.
5435         * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
5436         list.
5437         * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
5438         call-table options.
5440 2013-03-05  Sterling Augustine  <saugustine@google.com>
5441             Cary Coutant  <ccoutant@google.com>
5443         PR debug/55364
5444         * dwarf2out.c (resolve_addr): Don't call
5445         remove_loc_list_addr_table_entries a second time for the same
5446         expression.
5448 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
5450         PR debug/56510
5451         * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
5452         (avoid_complex_debug_insns): New function.
5453         (expand_debug_locations): Call it.
5455         PR rtl-optimization/56484
5456         * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
5457         lifetimes of hard registers on small register class machines.
5459 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
5461         * config/microblaze/microblaze-protos.h: Rename
5462         microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
5463         * config/microblaze/microblaze.c (microblaze_attribute_table): Add
5464         fast_interrupt.
5465         (microblaze_fast_interrupt_function_p): New function.
5466         (microblaze_is_interrupt_handler): Rename to
5467         microblaze_is_interrupt_variant and add fast_interrupt check.
5468         (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
5469         (save_restore_insns): Likewise.
5470         (compute_frame_size): Likewise.
5471         (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
5472         (microblaze_globalize_label): Likewise.
5473         * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
5474         * config/microblaze/microblaze.md: Use wrapper
5475         microblaze_is_interrupt_variant.
5477 2013-03-05  Kai Tietz  <ktietz@redhat.com>
5479         * sdbout.c (sdbout_one_type): Switch to current function's section
5480         supporting cold/hot.
5482 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
5484         * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
5485         -mxl-reorder.
5487 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
5489         PR middle-end/56461
5490         * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
5491         if VALGRIND_GET_VBITS is defined, temporarily make object
5492         memory all defined, and restore previous valgrind addressability
5493         and definability afterwards.  Free this_object at the end.
5495         PR middle-end/56461
5496         * lra.c (lra): Call lra_clear_live_ranges if live_p,
5497         right before calling lra_create_live_ranges, also call it
5498         when clearing live_p.  Only call lra_clear_live_ranges
5499         at the end if live_p.
5501         PR middle-end/56461
5502         * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
5504 2013-03-05  Richard Biener  <rguenther@suse.de>
5506         PR tree-optimization/56521
5507         * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
5508         value-id.
5510 2013-03-05  Steven Bosscher  <steven@gcc.gnu.org>
5512         PR c++/55135
5513         * except.h (remove_unreachable_eh_regions): New prototype.
5514         * except.c (remove_eh_handler_splicer): New function, split out
5515         of remove_eh_handler.
5516         (remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
5517         warning about running it on many EH regions one at a time.
5518         (remove_unreachable_eh_regions_worker): New function, walk the
5519         EH tree in depth-first order and remove non-marked regions.
5520         (remove_unreachable_eh_regions): New function.
5521         * tree-eh.c (mark_reachable_handlers): New function, split out
5522         from remove_unreachable_handlers.
5523         (remove_unreachable_handlers): Use mark_reachable_handlers and
5524         remove_unreachable_eh_regions.
5525         (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
5526         and remove_unreachable_eh_regions.
5528 2013-03-05  Richard Biener  <rguenther@suse.de>
5530         PR middle-end/56525
5531         * loop-init.c (fix_loop_structure): Remove loops in two stages,
5532         not freeing them until the end.
5534 2013-03-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5536         * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
5538 2013-03-05  Richard Biener  <rguenther@suse.de>
5540         PR tree-optimization/56270
5541         * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
5542         of loads after scheduling an SLP instance.
5544 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
5546         * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
5547         tic6x.exp.
5548         (check_gcc_parallelize): Run guality.exp as a separate job from
5549         vect.exp with unsorted.exp and $(dg_target_exps) separately from
5550         struct-layout-1.exp with stackalign.exp.
5552         * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
5554         PR middle-end/56461
5555         * tree-vect-slp.c (vect_supported_load_permutation_p): Free
5556         load_index sbitmap even if some bit in it isn't set.
5558         PR middle-end/56461
5559         * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
5560         (discover_iteration_bound_by_body_walk): Change queues to
5561         vec<vec<basic_block> > and queue to vec<basic_block>.  Fix up
5562         spelling in comment.  Call safe_push on queues[bound_index] directly.
5563         Release queues[queue_index] in every iteration unconditionally.
5564         Release bounds vector.
5566         PR middle-end/56461
5567         * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
5568         free_stmt_vec_info on any left-over stmt_vec_info in the vector.
5569         * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
5570         inner_phis vector.
5572 2013-03-05  Richard Biener  <rguenther@suse.de>
5574         PR lto/56515
5575         * tree-inline.c (remap_blocks_to_null): New function.
5576         (expand_call_inline): When expanding a call stmt without
5577         an associated block inline remap all callee blocks to NULL.
5579 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
5581         PR rtl-optimization/56494
5582         * simplify-rtx.c (simplify_truncation): If C is narrower than A,
5583         optimize (truncate:A (subreg:B (truncate:C X) 0)) into
5584         (subreg:A (truncate:C X) 0) instead of (truncate:A X).
5586         PR middle-end/56461
5587         * sel-sched-ir.c (free_sched_pools): Release
5588         succs_info_pool.stack[succs_info_pool.max_top] vectors too
5589         if succs_info_pool.max_top isn't -1.
5591         PR bootstrap/56509
5592         * opts.c (opts_obstack, opts_concat): Moved to...
5593         * opts-common.c (opts_obstack, opts_concat): ... here.
5595 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
5597         PR middle-end/56461
5598         * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
5600 2013-03-04  Martin Jambor  <mjambor@suse.cz>
5602         * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
5603         all appropriate places.
5605 2013-01-04  Eric Botcazou  <ebotcazou@adacore.com>
5607         PR tree-optimization/56424
5608         * ipa-split.c (split_function): Do not set the RSO flag if result is
5609         not by reference and its type is a register type.
5611 2013-03-04  David Holsgrove  <david.holsgrove@xilinx.com>
5613         * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
5614         (microblaze_legitimate_pic_operand): Likewise
5615         * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
5616         new function microblaze_legitimate_pic_operand
5617         * config/microblaze/microblaze-protos.h
5618         (microblaze_legitimate_pic_operand): Declare.
5620 2013-03-04  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
5622         * config/microblaze/predicates.md (call_insn_simple_operand):
5623         New predicate for supported rtx code types.
5624         * config/microblaze/microblaze.md (call_internal1): Use
5625         call_insn_simple_operand predicate.
5627 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
5629         PR middle-end/56461
5630         * tree-loop-distribution.c (ldist_gen): Call partition_free after each
5631         partitions.ordered_remove.
5633         PR middle-end/56461
5634         * tree-vect-stmts.c (vectorizable_conversion): Don't call
5635         vec_oprnds0.create (1) for modifier == NONE.
5637         PR middle-end/56461
5638         * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
5639         on vec_oprnds0 or vec_oprnds1 before loop, only call it on
5640         vec_oprnds1 right before pushing anything to it for
5641         scalar_shift_arg.
5643         PR middle-end/56461
5644         * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
5645         set nbbs to 0 instead of having separate code path.
5646         (vect_analyze_loop_form): Call destroy_loop_vec_info with true
5647         instead of false as last argument if returning NULL.
5649 2013-03-03  Sandra Loosemore  <sandra@codesourcery.com>
5651         * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
5652         the attribute is now called "target" instead of "option".
5653         (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
5654         * doc/tm.texi.in (Target Attributes):  Likewise document the correct
5655         attribute/pragma name for TARGET_OPTION_VALID_P and
5656         TARGET_OPTION_PRAGMA_PARSE.  Also copy-edit and correct markup.
5657         * doc/tm.texi: Regenerated.
5659 2013-03-02  David Holsgrove  <david.holsgrove@xilinx.com>
5661         * config/microblaze/microblaze.c:
5662         Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
5663         * config/microblaze/microblaze.h: Add -mxl-reorder to
5664         DRIVER_SELF_SPECS.
5665         * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
5666         instructions emitted if TARGET_REORDER.
5667         * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
5668         or 0 for -m/-mno case, but initialises as 2 to detect default use case
5669         separately.
5671 2013-03-01  Xinliang David Li  <davidxl@google.com>
5673         * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
5674         walk length.
5676 2013-03-01  Jakub Jelinek  <jakub@redhat.com>
5678         PR middle-end/56461
5679         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
5680         vector even when returning true.  Fix up function comment formatting.
5682         PR middle-end/56461
5683         * ira-build.c (ira_loop_nodes_count): New variable.
5684         (create_loop_tree_nodes): Initialize it.
5685         (finish_loop_tree_nodes): Use it instead of looking at current_loops.
5687         PR middle-end/56461
5688         * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
5689         method on dr_chain and result_chain.
5690         * tree-vect-stmts.c (vectorizable_store): Only call
5691         result_chain.create if j == 0.
5693         PR middle-end/56461
5694         * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
5695         vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
5696         before overwriting it.
5698 2013-03-01  Tobias Burnus  <burnus@net-b.de>
5700         * doc/extended.texi (C Extensions): Change order in @menu
5701         to match @node.
5702         (Other MIPS Built-in Functions): Move last MIPS entry before
5703         "picoChip Built-in Functions".
5704         (SH Built-in Functions): Move after RX Built-in Functions.
5705         * doc/gcc.texi (Introduction): Change order in @menu
5706         to match @node.
5707         * doc/md.texi (Constraints): Ditto.
5708         * gty.texi (Type Information): Ditto.
5709         (User-provided marking routines for template types): Make
5710         subsection.
5711         * doc/invoke.texi (AArch64 Options): Move before
5712         "Adapteva Epiphany Options".
5714 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
5715             Jakub Jelinek  <jakub@redhat.com>
5717         PR sanitizer/56454
5718         * asan.c (gate_asan): Lookup no_sanitize_address instead of
5719         no_address_safety_analysis attribute.
5720         * doc/extend.texi (no_address_safety_attribute): Rename to
5721         no_sanitize_address attribute, mention no_address_safety_analysis
5722         attribute as deprecated alias.
5724 2013-02-28  Jakub Jelinek  <jakub@redhat.com>
5726         PR middle-end/56461
5727         * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
5728         type to vec<vec<tree> > *.
5729         * tree-vect-slp.c (vect_get_slp_defs): Likewise.  Change vec_defs
5730         to be vec<tree> instead of vec<tree> *, set vec_defs
5731         to vNULL and call vec_defs.create (number_of_vects), adjust other
5732         uses of vec_defs.
5733         * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
5734         vectorizable_condition): Adjust vect_get_slp_defs callers.
5736 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
5738         * config/aarch64/aarch64.c
5739         (aarch64_float_const_representable): Remove unused variable.
5741 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
5743         * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
5745 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
5747         * config/aarch64/aarch64-builtins.c
5748         (aarch64_init_simd_builtins): Make static.
5750 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
5752         * config/aarch64/aarch64.c
5753         (aarch64_simd_make_constant): Make static.
5755 2013-02-28  Martin Jambor  <mjambor@suse.cz>
5757         * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
5758         with no initialization to the RHS of debug statements.
5760 2013-02-28  Martin Jambor  <mjambor@suse.cz>
5762         PR tree-optimization/56294
5763         * tree-sra.c (analyze_access_subtree): Create replacement declarations.
5764         Adjust dumping.
5765         (get_access_replacement): Do not call create_access_replacement.
5766         Assert a replacement exists.
5767         (get_repl_default_def_ssa_name): Create the replacement declaration
5768         itself.
5770 2013-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5772         * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
5773         final_end_function.
5775 2013-02-28  Marek Polacek  <polacek@redhat.com>
5777         PR rtl-optimization/56466
5778         * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
5779         if we're changing a loop.
5780         (peel_loops_completely): Likewise.
5782 2013-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
5784         PR c++/55813
5785         * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
5787 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
5789         PR target/56445
5790         * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
5791         macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
5792         INTX_FTYPE_FX, FX_FTYPE_INTX.
5793         * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
5795 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
5797         * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
5798         (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
5799         (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
5800         (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
5801         (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
5802         (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
5803         (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
5804         (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
5805         (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
5806         (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
5807         (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
5808         (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
5809         (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
5810         (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
5811         (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
5812         (avrxmega6): Increase max flash segments from 5 to 6.
5813         * config/avr/t-multilib: Regenerate.
5814         * config/avr/avr-tables.opt: Regenerate.
5815         * doc/avr-mmcu.texi: Regenerate.
5817 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
5819         * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
5820         (avr_device_to_arch): Rename to avr_device_to_ld.
5821         (avr_device_to_as): New prototype.
5822         (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
5823         (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
5824         * config/avr/driver-avr.c (avr_device_to_as): New.
5825         (avr_device_to_arch): Rename to avr_device_to_ld.
5827 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
5829         PR middle-end/56461
5830         * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
5831         method on dr_chain and result_chain.
5833         PR middle-end/56461
5834         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
5835         pointer_set_destroy on not_executed_last_iteration.
5837         PR middle-end/56461
5838         * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
5840         PR middle-end/56461
5841         * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
5842         FOR_EACH_DEFINED_FUNCTION when freeing state.
5844         PR middle-end/56461
5845         * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
5846         pool_free.
5847         (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
5848         overwriting it.
5850         PR middle-end/56461
5851         * ipa-cp.c (decide_whether_version_node): Call vec_free on
5852         known_aggs[i].items and release known_aggs vector.
5854         PR middle-end/56461
5855         * ipa-reference.c (propagate): Free node_info even for alias nodes.
5857 2013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
5859         * config/microblaze/microblaze.c (microblaze_emit_compare):
5860         Use xor for EQ/NE comparisions.
5861         * config/microblaze/microblaze.md (cstoresf4): Add constraints
5862         (cbranchsf4): Adjust operator to comparison_operator.
5864 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
5866         PR middle-end/56461
5867         * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
5868         vector.
5869         * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
5870         vec_safe_push, always update *slot.
5871         (redirect_edge_var_map_clear): Use vec_free.
5872         (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
5873         (free_var_map_entry): Use vec_free.
5874         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
5875         FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
5877 2013-02-27  Andrey Belevantsev  <abel@ispras.ru>
5879         PR middle-end/45472
5880         * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
5881         when the may_trap_p bit of the exprs being merged differs.
5882         Reorder tests for speculativeness in the logical and operator.
5884 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
5886         * incpath.c (add_standard_paths): Use reconcat instead of concat
5887         where appropriate and avoid leaking memory.
5889         * opts.h: Include obstack.h.
5890         (opts_concat): New prototype.
5891         (opts_obstack): New declaration.
5892         * opts.c (opts_concat): New function.
5893         (opts_obstack): New variable.
5894         (init_options_struct): Call gcc_init_obstack on opts_obstack.
5895         (finish_options): Use opts_concat instead of concat
5896         and XOBNEWVEC instead of XNEWVEC.
5897         * opts-common.c (generate_canonical_option, decode_cmdline_option,
5898         generate_option): Likewise.
5899         * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
5900         * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
5902         PR target/56455
5903         * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
5904         and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
5906 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
5908         PR middle-end/56461
5909         * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
5911 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
5913         * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
5914         (arm_block_move_unaligned_straight): Likewise.
5915         (arm_adjust_block_mem): Likewise.
5917 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
5919         PR target/48901
5920         * config/lm32/lm32.c (gen_int_relational): Remove unused variables
5921         temp, cond and label.
5922         * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
5924         PR target/52500
5925         * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
5926         * config/c6x/c6x.h (dbx_register_map): Update declaration.
5928         PR target/52501
5929         * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
5930         of prologue/epilogue functions.
5932         PR target/52550
5933         * config/tilegx/tilegx.c (tilegx_expand_prologue):
5934         Remove unused variable cfa_offset.
5935         * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
5937         PR target/54639
5938         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
5939         type promotion to unsigned.
5941         PR target/54640
5942         * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
5943         for HOST_WIDE_INT of 32 bit / same size as int.
5944         (arm_block_move_unaligned_straight): Likewise.
5945         (arm_adjust_block_mem): Likewise.
5947         PR target/54662
5948         * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
5949         ALL_CFLAGS.
5951 2013-02-26  Marek Polacek  <polacek@redhat.com>
5953         PR tree-optimization/56426
5954         * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
5956 2013-02-26  Richard Biener  <rguenther@suse.de>
5958         PR target/56444
5959         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
5960         unused variable loops.
5962 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
5964         PR tree-optimization/56448
5965         * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
5966         TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
5967         Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
5968         later operands of the references, or even first operand for
5969         INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
5971         PR tree-optimization/56443
5972         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
5973         overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
5974         to type_for_mode langhook.
5976 2013-02-25  Matt Turner  <mattst88@gmail.com>
5978         * doc/invoke.texi: Document r4700.
5980 2013-02-25  Richard Biener  <rguenther@suse.de>
5982         PR tree-optimization/56175
5983         * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
5984         split out from ...
5985         (simplify_bitwise_binary): ... here.  Also guard the conversion
5986         of (type) X op CST to (type) (X op ((type-x) CST)) with it.
5988 2013-02-25  Catherine Moore  <clm@codesourcery.com>
5990         Revert:
5991         2013-02-24  Catherine Moore  <clm@codesourcery.com>
5992             Maciej W. Rozycki  <macro@codesourcery.com>
5993             Tom de Vries  <tom@codesourcery.com>
5994             Nathan Sidwell  <nathan@codesourcery.com>
5995             Iain Sandoe  <iain@codesourcery.com>
5996             Nathan Froyd  <froydnj@codesourcery.com>
5997             Chao-ying Fu  <fu@mips.com>
5999         * doc/extend.texi: (micromips, nomicromips, nocompression):
6000         Document new function attributes.
6001         * doc/invoke.texi (minterlink-compressed, mmicromips,
6002         m14k, m14ke, m14kec): Document new options.
6003         (minterlink-mips16): Update documentation.
6004         * doc/md.texi (ZC, ZD): Document new constraints.
6005         * configure.ac (gcc_cv_as_micromips): Check if linker
6006         supports the .set micromips directive.
6007         * configure: Regenerate.
6008         * config.in: Regenerate.
6009         * config/mips/mips-tables.opt: Regenerate.
6010         * config/mips/micromips.md: New file.
6011         * constraints.md (ZC, AD): New constraints.
6012         * config/mips/predicates.md (movep_src_register): New predicate.
6013         (movep_src_operand): New predicate.
6014         (non_volatile_mem_operand): New predicate.
6015         * config/mips/mips.md (multimem): New type.
6016         (length): Differentiate between 17-bit and 18-bit branch offsets.
6017         (MOVEP1, MOVEP2): New mode iterator.
6018         (mov_<load>l): Use ZC constraint.
6019         (mov_<load>r): Likewise.
6020         (mov_<store>l): Likewise.
6021         (mov_<store>r): Likewise.
6022         (*branch_equality<mode>_inverted): Add microMIPS support.
6023         (*branch_equality<mode>): Likewise.
6024         (*jump_absolute): Likewise.
6025         (indirect_jump_<mode>): Likewise.
6026         (tablejump_<mode>): Likewise.
6027         (<optab>_internal): Likewise.
6028         (sibcall_internal): Likewise.
6029         (sibcall_value_internal): Likewise.
6030         (prefetch): Use constraint ZD.
6031         * config/mips/mips.opt (minterlink-compressed): New option.
6032         (minterlink-mips16): Now an alias for minterlink-compressed.
6033         (mmicromips): New option.
6034         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
6035         (compare_and_swap_12): Likewise.
6036         (sync_add<mode>): Likewise.
6037         (sync_<optab>_12): Likewise.
6038         (sync_old_<optab>_12): Likewise.
6039         (sync_new_<optab>_12): Likewise.
6040         (sync_nand_12): Likewise.
6041         (sync_old_nand_12): Likewise.
6042         (sync_new_nand_12): Likewise.
6043         (sync_sub<mode>): Likewise.
6044         (sync_old_add<mode>): Likewise.
6045         (sync_old_sub<mode>): Likewise.
6046         (sync_new_add<mode>): Likewise.
6047         (sync_new_sub<mode>): Likewise.
6048         (sync_<optab><mode>): Likewise.
6049         (sync_old_<optab><mode>): Likewise.
6050         (sync_new_<optab><mode>): Likewise.
6051         (sync_nand<mode>): Likewise.
6052         (sync_old_nand<mode>): Likewise.
6053         (sync_new_nand<mode>): Likewise.
6054         (sync_lock_test_and_set<mode>): Likewise.
6055         (test_and_set_12): Likewise.
6056         (atomic_compare_and_swap<mode>): Likewise.
6057         (atomic_exchange<mode>_llsc): Likewise.
6058         (atomic_fetch_add<mode>_llsc): Likewise.
6059         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
6060         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
6061         (umips_save_restore_pattern_p): Likewise.
6062         (umips_load_store_pair_p): Likewise.
6063         (umips_output_load_store_pair): Likewise.
6064         (umips_movep_target_p): Likewise.
6065         (umips_12bit_offset_address_p): Likewise.
6066         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
6067         (mips_base_mips16): Rename this...
6068         (mips_base_compression_flags): ...to this. Update all uses.
6069         (mips_attribute_table): Add micromips, nomicromips and nocompression.
6070         (mips_mips16_decl_p): Delete.
6071         (mips_nomips16_decl_p): Delete.
6072         (mips_get_compress_on_flags): New function.
6073         (mips_get_compress_off_flags): New function.
6074         (mips_get_compress_mode): New function.
6075         (mips_get_compress_on_name): New function.
6076         (mips_get_compress_off_name): New function.
6077         (mips_insert_attributes): Support multiple compression types.
6078         (mips_merge_decl_attributes): Likewise.
6079         (umips_12bit_offset_address_p): New function.
6080         (mips_start_function_definition): Emit .set micromips directive.
6081         (mips_call_may_need_jalx_p): New function.
6082         (mips_function_ok_for_sibcall): Add microMIPS support.
6083         (mips_print_operand_punctuation): Support short delay slots and
6084         compact jumps.
6085         (umips_swm_mask, umips_swm_encoding): New.
6086         (umips_build_save_restore): New function.
6087         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
6088         (was_mips16_p): Remove.
6089         (old_compression_mode): New.
6090         (mips_set_compression_mode): New function.
6091         (mips_set_current_function): Add microMIPS support.
6092         (mips_option_override): Likewise.
6093         (umips_save_restore_pattern_p): New function.
6094         (umips_output_save_restore): New function.
6095         (umips_load_store_pair_p_1): New function.
6096         (umips_load_store_pair_p): New function.
6097         (umips_output_load_store_pair_1): New function.
6098         (umips_output_load_store_pair): New function.
6099         (umips_movep_target_p) New function.
6100         (mips_prepare_pch_save): Add microMIPS support.
6101         * config/mips/mips.h (TARGET_COMPRESSION): New.
6102         (TARGET_CPU_CPP_BUILTINS): Update macro
6103         to use new compression flags and to support microMIPS.
6104         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
6105         (MIPS_ARCH_FLOAT_SPEC): Likewise.
6106         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
6107         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
6108         (ASM_SPEC): Support mmicromips and mno-micromips.
6109         (M16STORE_REG_P): New macro.
6110         (MIPS_CALL): Support TARGET_MICROMIPS.
6111         (MICROMIPS_J): New macro.
6112         (mips_base_mips16): Rename this...
6113         (mips_base_compression_flags): ...to this.
6114         (UMIPS_12BIT_OFFSET_P): New macro.
6115         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
6116         (MULTILIB_DIRNAMES): Likewise.
6118 2013-02-25  Tom de Vries  <tom@codesourcery.com>
6120         PR rtl-optimization/56131
6121         * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
6122         * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
6123         NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
6125 2013-02-25  Tobias Burnus  <burnus@net-b.de>
6127         * doc/invoke.texi (-fsanitize=): Move from optimization
6128         to debugging options.
6130 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
6132         * sched-deps.c (sched_analyze_insn): Fix typo in comment.
6134 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
6135             Alexander Monakov  <amonakov@ispras.ru>
6137         PR middle-end/56077
6138         * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
6139         flush pending lists also on non-jumps.  Adjust comment.
6141 2013-02-24  Catherine Moore  <clm@codesourcery.com>
6142             Maciej W. Rozycki  <macro@codesourcery.com>
6143             Tom de Vries  <tom@codesourcery.com>
6144             Nathan Sidwell  <nathan@codesourcery.com>
6145             Iain Sandoe  <iain@codesourcery.com>
6146             Nathan Froyd  <froydnj@codesourcery.com>
6147             Chao-ying Fu  <fu@mips.com>
6149         * doc/extend.texi: (micromips, nomicromips, nocompression):
6150         Document new function attributes.
6151         * doc/invoke.texi (minterlink-compressed, mmicromips,
6152         m14k, m14ke, m14kec): Document new options.
6153         (minterlink-mips16): Update documentation.
6154         * doc/md.texi (ZC, ZD): Document new constraints.
6155         * configure.ac (gcc_cv_as_micromips): Check if linker
6156         supports the .set micromips directive.
6157         * configure: Regenerate.
6158         * config.in: Regenerate.
6159         * config/mips/mips-tables.opt: Regenerate.
6160         * config/mips/micromips.md: New file.
6161         * constraints.md (ZC, AD): New constraints.
6162         * config/mips/predicates.md (movep_src_register): New predicate.
6163         (movep_src_operand): New predicate.
6164         (non_volatile_mem_operand): New predicate.
6165         * config/mips/mips.md (multimem): New type.
6166         (length): Differentiate between 17-bit and 18-bit branch offsets.
6167         (MOVEP1, MOVEP2): New mode iterator.
6168         (mov_<load>l): Use ZC constraint.
6169         (mov_<load>r): Likewise.
6170         (mov_<store>l): Likewise.
6171         (mov_<store>r): Likewise.
6172         (*branch_equality<mode>_inverted): Add microMIPS support.
6173         (*branch_equality<mode>): Likewise.
6174         (*jump_absolute): Likewise.
6175         (indirect_jump_<mode>): Likewise.
6176         (tablejump_<mode>): Likewise.
6177         (<optab>_internal): Likewise.
6178         (sibcall_internal): Likewise.
6179         (sibcall_value_internal): Likewise.
6180         (prefetch): Use constraint ZD.
6181         * config/mips/mips.opt (minterlink-compressed): New option.
6182         (minterlink-mips16): Now an alias for minterlink-compressed.
6183         (mmicromips): New option.
6184         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
6185         (compare_and_swap_12): Likewise.
6186         (sync_add<mode>): Likewise.
6187         (sync_<optab>_12): Likewise.
6188         (sync_old_<optab>_12): Likewise.
6189         (sync_new_<optab>_12): Likewise.
6190         (sync_nand_12): Likewise.
6191         (sync_old_nand_12): Likewise.
6192         (sync_new_nand_12): Likewise.
6193         (sync_sub<mode>): Likewise.
6194         (sync_old_add<mode>): Likewise.
6195         (sync_old_sub<mode>): Likewise.
6196         (sync_new_add<mode>): Likewise.
6197         (sync_new_sub<mode>): Likewise.
6198         (sync_<optab><mode>): Likewise.
6199         (sync_old_<optab><mode>): Likewise.
6200         (sync_new_<optab><mode>): Likewise.
6201         (sync_nand<mode>): Likewise.
6202         (sync_old_nand<mode>): Likewise.
6203         (sync_new_nand<mode>): Likewise.
6204         (sync_lock_test_and_set<mode>): Likewise.
6205         (test_and_set_12): Likewise.
6206         (atomic_compare_and_swap<mode>): Likewise.
6207         (atomic_exchange<mode>_llsc): Likewise.
6208         (atomic_fetch_add<mode>_llsc): Likewise.
6209         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
6210         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
6211         (umips_save_restore_pattern_p): Likewise.
6212         (umips_load_store_pair_p): Likewise.
6213         (umips_output_load_store_pair): Likewise.
6214         (umips_movep_target_p): Likewise.
6215         (umips_12bit_offset_address_p): Likewise.
6216         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
6217         (mips_base_mips16): Rename this...
6218         (mips_base_compression_flags): ...to this. Update all uses.
6219         (mips_attribute_table): Add micromips, nomicromips and nocompression.
6220         (mips_mips16_decl_p): Delete.
6221         (mips_nomips16_decl_p): Delete.
6222         (mips_get_compress_on_flags): New function.
6223         (mips_get_compress_off_flags): New function.
6224         (mips_get_compress_mode): New function.
6225         (mips_get_compress_on_name): New function.
6226         (mips_get_compress_off_name): New function.
6227         (mips_insert_attributes): Support multiple compression types.
6228         (mips_merge_decl_attributes): Likewise.
6229         (umips_12bit_offset_address_p): New function.
6230         (mips_start_function_definition): Emit .set micromips directive.
6231         (mips_call_may_need_jalx_p): New function.
6232         (mips_function_ok_for_sibcall): Add microMIPS support.
6233         (mips_print_operand_punctuation): Support short delay slots and
6234         compact jumps.
6235         (umips_swm_mask, umips_swm_encoding): New.
6236         (umips_build_save_restore): New function.
6237         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
6238         (was_mips16_p): Remove.
6239         (old_compression_mode): New.
6240         (mips_set_compression_mode): New function.
6241         (mips_set_current_function): Add microMIPS support.
6242         (mips_option_override): Likewise.
6243         (umips_save_restore_pattern_p): New function.
6244         (umips_output_save_restore): New function.
6245         (umips_load_store_pair_p_1): New function.
6246         (umips_load_store_pair_p): New function.
6247         (umips_output_load_store_pair_1): New function.
6248         (umips_output_load_store_pair): New function.
6249         (umips_movep_target_p) New function.
6250         (mips_prepare_pch_save): Add microMIPS support.
6251         * config/mips/mips.h (TARGET_COMPRESSION): New.
6252         (TARGET_CPU_CPP_BUILTINS): Update macro
6253         to use new compression flags and to support microMIPS.
6254         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
6255         (MIPS_ARCH_FLOAT_SPEC): Likewise.
6256         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
6257         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
6258         (ASM_SPEC): Support mmicromips and mno-micromips.
6259         (M16STORE_REG_P): New macro.
6260         (MIPS_CALL): Support TARGET_MICROMIPS.
6261         (MICROMIPS_J): New macro.
6262         (mips_base_mips16): Rename this...
6263         (mips_base_compression_flags): ...to this.
6264         (UMIPS_12BIT_OFFSET_P): New macro.
6265         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
6266         (MULTILIB_DIRNAMES): Likewise.
6268 2013-02-24  Jakub Jelinek  <jakub@redhat.com>
6270         PR target/52555
6271         * target-globals.c (save_target_globals): For init_reg_sets and
6272         target_reinit remporarily set this_fn_optabs to this_target_optabs.
6274 2013-02-22  James Grennahlgh  <james.greenhalgh@arm.com>
6276         * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
6277         * config/aarch64/t-aarch64
6278         (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
6280 2013-02-22  Vladimir Makarov  <vmakarov@redhat.com>
6282         PR inline-asm/56148
6283         * lra-constraints.c (process_alt_operands): Reload operand
6284         conflicting with earlier clobber only if no more other conflicting
6285         operands.
6287 2013-02-22  Jakub Jelinek  <jakub@redhat.com>
6289         PR sanitizer/56393
6290         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
6291         if not linking a shared library.
6293 2013-02-22  Seth LaForge  <sethml@google.com>
6295         * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
6297 2013-02-22  Greta Yorsh  <Greta.Yorsh@arm.com>
6299         * config/arm/arm.md (split for extendsidi): Update condition.
6300         (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
6301         * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
6302         (qhs_zextenddi_cstr): Likewise.
6304 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
6306         PR middle-end/56420
6307         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
6308         avoid signed wrapping.
6309         (expand_mult): Handle properly multiplication by
6310         ((dword_type) -1) << (BITS_PER_WORD - 1).  Improve multiplication by
6311         ((dword_type) 1) << (BITS_PER_WORD - 1).  Avoid undefined behavior
6312         in the compiler if coeff is HOST_WIDE_INT_MIN.
6313         (expand_divmod): Don't make ext_op1 static, change it's type to
6314         uhwi.  Avoid undefined behavior in -INTVAL (op1).
6316         PR rtl-optimization/50339
6317         * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
6318         field.
6319         * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
6320         (compute_costs): Call compute_splitting_shift also for ASHIFTRT
6321         into splitting_ashiftrt field.
6322         (find_decomposable_shift_zext, resolve_shift_zext): Handle also
6323         ASHIFTRT.
6324         (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
6325         choices.
6327 2013-02-20  Aldy Hernandez  <aldyh@redhat.com>
6329         PR middle-end/56108
6330         * trans-mem.c (execute_tm_mark): Do not expand transactions that
6331         are sure to go irrevocable.
6333 2013-02-21  Hans-Peter Nilsson  <hp@axis.com>
6335         * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
6336         scalars are valid operands.
6338 2013-02-21  Martin Jambor  <mjambor@suse.cz>
6340         PR tree-optimization/56310
6341         * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
6342         only matching indices and non-negative final offsets.
6343         (intersect_aggregates_with_edge): Pass src_idx to
6344         agg_replacements_to_vector.  Pass src_idx insstead of index to
6345         intersect_with_agg_replacements.
6347 2013-02-21  Martin Jambor  <mjambor@suse.cz>
6349         * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
6350         instead of hard-wired defaults.
6352 2013-02-21  Maciej W. Rozycki  <macro@codesourcery.com>
6354         * doc/invoke.texi (MIPS Options): Update documentation of the
6355         floating-point multiply-accumulate instruction restrictions.
6357 2013-02-21  Kostya Serebryany  <kcc@google.com>
6359         * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
6360         asan_shadow_offset on x86_64 linux.
6362 2013-02-21  Richard Biener  <rguenther@suse.de>
6364         PR tree-optimization/56415
6365         Revert
6366         2013-02-11  Richard Biener  <rguenther@suse.de>
6368         PR tree-optimization/56273
6369         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
6370         first VRP run.
6372 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
6374         PR bootstrap/56258
6375         * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
6376         instead of @itemx.
6378         PR inline-asm/56405
6379         * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
6380         use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
6382 2013-02-20  Jan Hubicka  <jh@suse.cz>
6384         PR tree-optimization/56265
6385         * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
6386         when target is referenced for first time.
6388 2013-02-20  Richard Biener  <rguenther@suse.de>
6390         * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
6391         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
6392         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
6393         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
6394         not return anything.
6395         (rename_ssa_copies): Do not remove unused locals.
6396         * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
6397         * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
6398         * passes.c (execute_function_todo): Do not schedule unused locals
6399         removal if cleanup_tree_cfg did something.
6400         * tree-ssa-live.c (remove_unused_locals): Dump statistics
6401         about the number of removed locals.
6403 2013-02-20  Richard Biener  <rguenther@suse.de>
6405         PR tree-optimization/56398
6406         * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
6408 2013-02-20  Martin Jambor  <mjambor@suse.cz>
6410         PR tree-optimization/55334
6411         * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
6412         restricted pointers to arrays.
6414 2013-02-20  Richard Biener  <rguenther@suse.de>
6415             Jakub Jelinek  <jakub@redhat.com>
6417         PR tree-optimization/56396
6418         * tree-ssa-ccp.c (n_const_val): New static variable.
6419         (get_value): Return NULL for SSA names we don't have a lattice
6420         entry for.
6421         (ccp_initialize): Initialize n_const_val.
6422         * tree-ssa-copy.c (n_copy_of): New static variable.
6423         (init_copy_prop): Initialize n_copy_of.
6424         (get_value): Return NULL_TREE for SSA names we don't have a
6425         lattice entry for.
6427 2013-02-20  Martin Jambor  <mjambor@suse.cz>
6429         * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
6431 2013-02-20  Richard Biener  <rguenther@suse.de>
6433         * genpreds.c (write_lookup_constraint): Do not compare first
6434         letter of the constraint again.
6436 2013-02-20  Richard Biener  <rguenther@suse.de>
6438         * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
6439         and ceil_log2.
6440         (get_use_iv_cost): Terminate hashtable walk when coming across
6441         an empty entry.
6443 2013-02-20  Igor Zamyatin  <igor.zamyatin@intel.com>
6445         * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
6446         reassociation for avx2 targets.
6448 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
6450         * config/microblaze/microblaze.c: microblaze_has_clz = 0
6451         Add version check for v8.10.a to enable microblaze_has_clz
6452         * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
6453         version and TARGET_PATTERN_COMPARE check
6454         * config/microblaze/microblaze.md: New clzsi2 instruction
6456 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
6458         * config/microblaze/microblaze.md (call_value_intern): Check symbol is
6459         function before branching.
6461 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
6463         * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
6464         DUMP_INSN_RTX_UID.
6465         (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
6467 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
6469         PR middle-end/55889
6470         * sel-sched.c: Include ira.h.
6471         (implicit_clobber_conflict_p): New function.
6472         (moveup_expr): Use it.
6473         * Makefile.in (sel-sched.o): Depend on ira.h.
6475 2013-02-19  Richard Biener  <rguenther@suse.de>
6477         PR tree-optimization/56384
6478         * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
6479         (vn_hash_type): Split out from ...
6480         (vn_hash_constant_with_type): ... here.
6481         * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
6482         (vn_phi_eq): Compare types from vn_phi_s structure.
6483         (vn_phi_lookup): Populate vn_phi_s type.
6484         (vn_phi_insert): Likewise.
6486 2013-02-19  Jakub Jelinek  <jakub@redhat.com>
6488         PR tree-optimization/56350
6489         * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
6490         if haven't found reduction or nested cycle operand, rather than
6491         asserting we must find it.
6493         PR tree-optimization/56381
6494         * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
6495         to fold_build3.
6497 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
6498             Jakub Jelinek  <jakub@redhat.com>
6500         PR target/52555
6501         * genopinit.c (raw_optab_handler): Use this_fn_optabs.
6502         (swap_optab_enable): Same.
6503         (init_all_optabs): Use argument instead of global.
6504         * tree.h (struct tree_optimization_option): New field target_optabs.
6505         * expr.h (init_all_optabs): Add argument to prototype.
6506         (TREE_OPTIMIZATION_OPTABS): New.
6507         (save_optabs_if_changed): Protoize.
6508         * optabs.h: Declare this_fn_optabs.
6509         * optabs.c (save_optabs_if_changed): New.
6510         Declare this_fn_optabs.
6511         (init_optabs): Add argument to init_all_optabs() call.
6512         * function.c (invoke_set_current_function_hook): Handle per
6513         function optabs.
6514         * function.h (struct function): New field optabs.
6515         * config/mips/mips.c (mips_set_mips16_mode): Handle when
6516         optimization_current_node has changed.
6517         * target-globals.h (save_target_globals_default_opts): Protoize.
6518         * target-globals.c (save_target_globals_default_opts): New.
6520 2013-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6522         PR target/56347
6523         * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
6524         registers %fr12 and %fr12R as call used.
6526         PR target/56214
6527         * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
6528         and HImode, require all displacements to be an integer multiple of
6529         their mode size.
6530         * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
6531         only allow QImode and HImode when reload is in progress and strict is
6532         true.  Likewise for symbolic addresses.  Use base14_operand to check
6533         displacements in REG+BASE addresses.
6535 2013-02-18  Richard Biener  <rguenther@suse.de>
6537         PR tree-optimization/56366
6538         * tree-vect-loop.c (get_initial_def_for_induction): Properly
6539         handle sign-conversion of outer-loop initial induction value.
6541 2013-02-18  Richard Biener  <rguenther@suse.de>
6543         PR middle-end/56349
6544         * cfghooks.c (merge_blocks): If we merge a latch into another
6545         block adjust references to it.
6546         * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
6547         (verify_loop_structure): Verify that a recorded latch is in fact
6548         a latch.
6550 2013-02-18  Richard Biener  <rguenther@suse.de>
6552         PR tree-optimization/56321
6553         * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
6554         order SSA name release and virtual operand unlinking.
6556 2013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
6558         * config/microblaze/microblaze.md (save_stack_block): Define.
6559         (restore_stack_block): Likewise.
6561 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
6563         * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
6564         * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
6565         * config/microblaze/microblaze.c (microblaze_option_override):
6566         Bail out early for PIC modes when target does not support PIC.
6568 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
6570         * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
6571         Replace with a microblaze version.
6572         (microblaze_trampoline_init): Adapt for microblaze.
6573         * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
6574         microblaze.
6576 2013-02-16  Jakub Jelinek  <jakub@redhat.com>
6577             Dodji Seketeli  <dodji@redhat.com>
6579         PR asan/56330
6580         * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
6581         (instrument_mem_region_access): Do not forget to always put
6582         instrumentation of the of 'base' and 'base + len' in a "if (len !=
6583         0) statement, even for cases where either 'base' or 'base + len'
6584         are not instrumented -- because they have been previously
6585         instrumented.  Simplify the logic by putting all the statements
6586         instrument 'base + len' inside a sequence, and then insert that
6587         sequence right before the current insertion point.  Then, to
6588         instrument 'base + len', just get an iterator on that statement.
6589         And do not forget to update the pointer to iterator the function
6590         received as argument.
6592 2013-02-15  Vladimir Makarov  <vmakarov@redhat.com>
6594         PR rtl-optimization/56348
6595         * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
6597 2013-02-15  Steven Bosscher  <steven@gcc.gnu.org>
6599         * graph.c (start_graph_dump): Print dumpfile base as digraph label.
6600         (clean_graph_dump_file): Pass base to start_graph_dump.
6602 2013-02-14  Richard Henderson  <rth@redhat.com>
6604         PR target/55941
6605         * lower-subreg.c (simple_move): Check dest mode instead of src mode.
6607 2013-02-14  Steven Bosscher  <steven@gcc.gnu.org>
6609         * collect2-aix.h: Define F_LOADONLY.
6611 2013-02-14  Richard Biener  <rguenther@suse.de>
6613         PR lto/50494
6614         * varasm.c (output_constant_def_1): Get the decl representing
6615         the constant as argument.
6616         (output_constant_def): Wrap output_constant_def_1.
6617         (make_decl_rtl): Use output_constant_def_1 with the decl
6618         representing the constant.
6619         (build_constant_desc): Optionally re-use a decl already
6620         representing the constant.
6621         (tree_output_constant_def): Adjust.
6623 2013-02-14  Dodji Seketeli  <dodji@redhat.com>
6625         Fix an asan crash
6626         * asan.c (instrument_builtin_call):  Really put the length of the
6627         second source argument into src1_len.
6629 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
6631         * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
6632         argument.  If it is false, don't create edge from then_bb to
6633         fallthru_bb.
6634         (insert_if_then_before_iter): Pass true to it.
6635         (build_check_stmt): Pass false to it.
6636         (transform_statements): Flush hash table only on extended basic
6637         block boundaries, rather than at the beginning of every bb.
6638         Don't flush hash table on nonfreeing_call_p calls.
6639         * tree-flow.h (nonfreeing_call_p): New prototype.
6640         * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
6642 2013-02-13  David S. Miller  <davem@davemloft.net>
6644         * expmed.c (expand_shift_1): Only strip scalar integer subregs.
6646 2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>
6648         PR target/56184
6649         * ira.c (max_regno_before_ira): Move from ...
6650         (ira): ... here.
6651         (fix_reg_equiv_init): Use max_regno_before_ira instead of
6652         vec_safe_length.
6654 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
6656         * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
6658 2013-02-13  Richard Biener  <rguenther@suse.de>
6660         PR lto/56295
6661         * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
6662         globals in MEM_REFs.
6664 2013-02-13  Richard Biener  <rguenther@suse.de>
6666         * loop-init.c (loop_optimizer_init): Clear loop state when
6667         re-initializing preserved loops.
6668         * loop-unswitch.c (unswitch_single_loop): Return whether
6669         we unswitched the loop.  Do not verify loop state here.
6670         (unswitch_loops): When we unswitched a loop discover new loops.
6672 2013-02-13  Kostya Serebryany  <kcc@google.com>
6674         * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
6675         on x86_64 linux.
6676         * sanitizer.def: Rename __asan_init to __asan_init_v1.
6678 2013-02-12  Dodji Seketeli  <dodji@redhat.com>
6680         Avoid instrumenting duplicated memory access in the same basic block
6681         * Makefile.in (asan.o): Add new dependency on hash-table.h
6682         * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
6683         (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
6684         (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
6685         (free_mem_ref_resources, has_mem_ref_been_instrumented)
6686         (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
6687         (get_mem_ref_of_assignment): New functions.
6688         (get_mem_refs_of_builtin_call): Extract from
6689         instrument_builtin_call and tweak a little bit to make it fit with
6690         the new signature.
6691         (instrument_builtin_call): Use the new
6692         get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
6693         of is_gimple_builtin_call.
6694         (instrument_derefs, instrument_mem_region_access): Insert the
6695         instrumented memory reference into the hash table.
6696         (maybe_instrument_assignment): Renamed instrument_assignment into
6697         this, and change it to advance the iterator when instrumentation
6698         actually happened and return true in that case.  This makes it
6699         homogeneous with maybe_instrument_assignment, and thus give a
6700         chance to callers to be more 'regular'.
6701         (transform_statements): Clear the memory reference hash table
6702         whenever we enter a new BB, when we cross a function call, or when
6703         we are done transforming statements.  Use
6704         maybe_instrument_assignment instead of instrumentation.  No more
6705         need to special case maybe_instrument_assignment and advance the
6706         iterator after calling it; it's now handled just like
6707         maybe_instrument_call.  Update comment.
6709 2013-02-13  Richard Biener  <rguenther@suse.de>
6711         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
6712         Fix loop discovery code.
6714 2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>
6716         PR inline-asm/56148
6717         * lra-constraints.c (process_alt_operands): Match early clobber
6718         operand with itself.  Check conflicts with earlyclobber only if
6719         the operand is not reloaded.  Prefer to reload conflicting operand
6720         if earlyclobber and matching operands are the same.
6722 2013-02-12  Richard Biener  <rguenther@suse.de>
6724         PR lto/56297
6725         * lto-streamer-out.c (write_symbol): Do not output symbols
6726         for hard register variables.
6728 2013-02-12  Georg-Johann Lay  <avr@gjlay.de>
6730         PR target/54222
6731         * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
6732         (umulsidi3_insn, mulsidi3_insn): New insns.
6734 2013-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
6736         * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
6737         (struct tune_params): Add vec_costs field.
6738         * config/arm/arm.c (arm_builtin_vectorization_cost)
6739         (arm_add_stmt_cost): New functions.
6740         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
6741         (TARGET_VECTORIZE_ADD_STMT_COST): Define.
6742         (arm_default_vec_cost): New struct of type cpu_vec_costs.
6743         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
6744         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
6745         (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
6746         (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
6748 2013-02-12  Richard Biener  <rguenther@suse.de>
6750         PR lto/56295
6751         * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
6752         decls again if possible.
6754 2013-02-12  Richard Biener  <rguenther@suse.de>
6756         PR middle-end/56288
6757         * tree-ssa.c (verify_ssa_name): Fix check, move
6758         SSA_NAME_IN_FREE_LIST check up.
6760 2013-02-12  Jakub Jelinek  <jakub@redhat.com>
6761             Steven Bosscher   <steven@gcc.gnu.org>
6763         PR rtl-optimization/56151
6764         * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
6765         equal to op0 or op1, and last_insn pattern is CODE operation
6766         with MEM dest and one of the operands matches that MEM.
6768 2013-02-11  Sriraman Tallam  <tmsriramgoogle.com>
6770         * doc/extend.texi: Document Function Multiversioning and "default"
6771         parameter string to target attribute.
6772         * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
6773         target attribute parameter is "default".
6774         (ix86_compare_version_priority): Remove checks for target attribute.
6775         (ix86_mangle_function_version_assembler_name): Change error to sorry.
6776         Remove check for target attribute equal to NULL. Add assert.
6777         (ix86_generate_version_dispatcher_body): Change error to sorry.
6779 2013-02-11  Iain Sandoe  <iain@codesourcery.com>
6780             Jack Howarth  <howarth@bromo.med.uc.edu>
6781             Patrick Marlier  <patrick.marlier@gmail.com>
6783         PR libitm/55693
6784         * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
6785         define ENDFILE_SPEC as TM_DESTRUCTOR.
6786         * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
6788 2013-02-11  Alexander Potapenko  <glider@google.com>
6789             Jack Howarth  <howarth@bromo.med.uc.edu>
6790             Jakub Jelinek  <jakub@redhat.com>
6792         PR sanitizer/55617
6793         * config/darwin.c (cdtor_record): Rename ctor_record.
6794         (sort_cdtor_records): Rename sort_ctor_records.
6795         (finalize_dtors): New routine to sort destructors by
6796         priority before use in assemble_integer.
6797         (machopic_asm_out_destructor): Use finalize_dtors if needed.
6799 2013-02-11  Uros Bizjak  <ubizjak@gmail.com>
6801         PR rtl-optimization/56275
6802         * simplify-rtx.c (avoid_constant_pool_reference): Check that
6803         offset is non-negative and less than cmode size before
6804         calling simplify_subreg.
6806 2013-02-11  Richard Biener  <rguenther@suse.de>
6808         PR tree-optimization/56264
6809         * cfgloop.h (fix_loop_structure): Adjust prototype.
6810         * loop-init.c (fix_loop_structure): Return the number of
6811         newly discovered loops.
6812         * tree-cfgcleanup.c (repair_loop_structures): When new loops
6813         are discovered, do a full loop-closed SSA rewrite.
6815 2013-02-11  Richard Biener  <rguenther@suse.de>
6817         PR tree-optimization/56273
6818         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
6819         first VRP run.
6820         (check_array_ref): Fix missing newline in dumps.
6821         (search_for_addr_array): Likewise.
6823 2013-02-09  David Edelsohn  <dje.gcc@gmail.com>
6825         * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
6827 2013-02-09  Jakub Jelinek  <jakub@redhat.com>
6829         PR target/56256
6830         * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
6832 2013-02-08  Vladimir Makarov  <vmakarov@redhat.com>
6834         PR rtl-optimization/56246
6835         * lra-constraints.c (simplify_operand_subreg): Try to reuse
6836         reload pseudo.
6837         * lra.c (lra): Clear lra_optional_reload_pseudos only when all
6838         constraints are satisfied.
6840 2013-02-08  Jeff Law  <law@redhat.com>
6842         PR debug/53948
6843         * emit-rtl.c (reg_is_parm_p): New function.
6844         * regs.h (reg_is_parm_p): New prototype.
6845         * ira-conflicts.c (ira_build_conflicts): Allow parameters in
6846         callee-clobbered registers.
6848 2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6850         PR target/56043
6851         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
6852         If there is no implicit builtin declaration, just return NULL.
6854 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
6856         * config/i386/sse.md (FMAMODEM): New mode iterator.
6857         (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
6858         mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
6860 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
6862         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
6863         when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
6864         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
6866 2013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
6868         * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
6869         (microblaze*-*-elf): Likewise.
6870         * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
6871         LINK_SPEC.
6872         * config/microblaze/microblaze-c.c: Add builtin defines for
6873         _LITTLE_ENDIAN and _BIG_ENDIAN.
6874         * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
6875         add to TARGET_DEFAULT flags.
6876         Expand ASM_SPEC and LINK_SPEC.
6877         Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
6878         * config/microblaze/microblaze.md: Update extendsidi2 and
6879         movdi_internal instructions to use low-order / high-order reg
6880         print_operands.
6881         * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
6882         options and inversemask / mask of LITTLE_ENDIAN.
6883         * config/microblaze/t-microblaze: Expand multilib options to
6884         include mlittle-endian (le) and update exceptions patterns.
6886 2013-02-08  Jakub Jelinek  <jakub@redhat.com>
6888         PR rtl-optimization/56195
6889         * lra-constraints.c (get_reload_reg): Don't reuse regs
6890         if they have smaller mode than requested, if they have
6891         wider mode than requested, try to return a SUBREG.
6893         PR tree-optimization/56250
6894         * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
6895         if type is unsigned and code isn't MULT_EXPR.
6897 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
6899         PR tree-optimization/56064
6900         * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
6901         bits according to mode.
6902         * fixed-value.h (fixed_from_double_int)
6903         (const_fixed_from_double_int): Adjust comments.
6905 2013-02-08  Richard Biener  <rguenther@suse.de>
6907         PR lto/56231
6908         * lto-streamer.h (struct data_in): Remove current_file, current_line
6909         and current_col members.
6910         * lto-streamer-out.c (lto_output_location): Stream changed bits
6911         en-block for efficiency.
6912         * lto-streamer-in.c (clear_line_info): Remove.
6913         (lto_input_location): Cache current file, line and column
6914         globally via local statics.  Read changed bits en-block.
6915         (input_function): Do not call clear_line_info.
6916         (lto_read_body): Likewise.
6917         (lto_input_toplevel_asms): Likewise.
6919 2013-02-08  Michael Matz  <matz@suse.de>
6921         PR tree-optimization/52448
6922         * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
6923         (nt_call_phase): New static.
6924         (add_or_mark_expr): Only mark accesses with newer phase than any
6925         call seen.
6926         (nonfreeing_call_p): New.
6927         (nt_init_block): Update nt_call_phase, mark blocks as visited.
6928         (nt_fini_block): Keep blocks marked as visited.
6929         (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
6931 2013-02-08  Richard Biener  <rguenther@suse.de>
6933         * ira.c (ira): Free broken dominator information.
6935 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
6937         * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
6939 2013-02-08  Marek Polacek  <polacek@redhat.com>
6941         * cfgloop.c (verify_loop_structure): Add more checking of headers.
6943 2013-02-08  Richard Biener  <rguenther@suse.de>
6945         PR middle-end/56181
6946         * cfgloop.h (flow_loops_find): Adjust.
6947         (bb_loop_header_p): Declare.
6948         * cfgloop.c (bb_loop_header_p): New function split out from ...
6949         (flow_loops_find): ... here.  Adjust function signature,
6950         support incremental loop structure update.
6951         (verify_loop_structure): Cleanup.  Verify a loop is a loop.
6952         * cfgloopmanip.c (fix_loop_structure): Move ...
6953         * loop-init.c (fix_loop_structure): ... here.
6954         (apply_loop_flags): Split out from ...
6955         (loop_optimizer_init): ... here.
6956         (fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
6957         in incremental mode, only remove dead loops here.
6959 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
6961         PR target/54222
6962         * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
6963         * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
6964         (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
6965         (*round<mode>3.libgcc): New insns for fixed-modes.
6966         * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
6967         (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
6968         (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
6969         * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
6970         implementations.  Define to __builtin_avr_absFX,
6971         __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
6972         (roundFX, countlsFX): Define to __builtin_avr_roundFX,
6973         __builtin_avr_countlsFX, respectively.
6974         * config/avr/avr-c.c (target.h): Include it.
6975         (enum avr_builtin_id): New enum.
6976         (avr_resolve_overloaded_builtin): New static function.
6977         (avr_register_target_pragmas): Use it to set
6978         targetm.resolve_overloaded_builtin.
6979         * config/avr/avr.c (avr_init_builtins): Supply myriads of local
6980         tree nodes used by DEF_BUILTIN.
6981         (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
6982         (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
6983         <AVR_BUILTIN_xxBITS>: Same.
6985 2013-02-08  Richard Biener  <rguenther@suse.de>
6987         * cfgloop.c (verify_loop_structure): Properly handle
6988         a loop exiting to another loop header.
6989         * ira-int.h (ira_loops): Remove.
6990         * ira.c (ira_loops): Remove.
6991         (ira): Use loop_optimizer_init and loop_optimizer_finalize.
6992         (do_reload): Use loop_optimizer_finalize.
6993         * ira-build.c (create_loop_tree_nodes): Use get_loops and
6994         number_of_loops to access the loop tree.
6995         (more_one_region_p): Likewise.
6996         (finish_loop_tree_nodes): Likewise.
6997         (rebuild_regno_allocno_maps): Likewise.
6998         (mark_loops_for_removal): Likewise.
6999         (mark_all_loops_for_removal): Likewise.
7000         (remove_unnecessary_regions): Likewise.
7001         (ira_build): Likewise.
7002         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
7004 2013-02-08  Richard Biener  <rguenther@suse.de>
7006         * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
7007         * ipa-pure-const.c (analyze_function): Avoid calling
7008         mark_irreducible_loops twice.
7009         * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
7011 2013-02-07  David S. Miller  <davem@davemloft.net>
7013         * dwarf2out.c (based_loc_descr): Perform leaf register remapping
7014         on 'reg'.
7015         * var-tracking.c (vt_add_function_parameter): Test the presence of
7016         HAVE_window_save properly and do not remap argument registers when
7017         we have a leaf function.
7019 2013-02-07  Uros Bizjak  <ubizjak@gmail.com>
7021         PR bootstrap/56227
7022         * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
7023         instead of "ll".
7024         * config/i386/i386.c (ix86_print_operand): Ditto.
7026 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
7028         * lra-constraints.c (process_alt_operands): Fix recently added comment.
7030 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
7032         PR rtl-optimization/56225
7033         * lra-constraints.c (process_alt_operands): Check that reload hard
7034         reg can hold value for strict_low_part.
7036 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
7038         PR debug/56154
7039         * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
7040         dwarf2out_end_function.
7041         (in_first_function_p, maybe_at_text_label_p,
7042         first_loclabel_num_not_at_text_label): New variables.
7043         (dwarf2out_var_location): In the first function find out
7044         lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
7045         (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
7046         functions.
7048 2013-02-07  Eric Botcazou  <ebotcazou@adacore.com>
7050         PR rtl-optimization/56178
7051         * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
7052         SUBREG of a register.  Tidy up related block of code.
7053         * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
7054         note if the source is a register or a SUBREG of a register.
7056 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
7058         PR target/56228
7059         * config/rs6000/rs6000.md (ptrm): New mode attr.
7060         (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
7061         call_value_indirect_aix<pttrsize>,
7062         call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
7063         m in constraints.
7065 2013-02-07  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
7067         * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
7068         if -bnortl. Convert to strcmp and strncmp.
7070 2013-02-07  Alan Modra  <amodra@gmail.com>
7072         PR target/54009
7073         * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
7074         addresses won't wrap when offsetting.
7075         (rs6000_secondary_reload): Provide secondary reloads needed for
7076         wrapping LO_SUM addresses.
7078 2013-02-06  Thomas Schwinge  <thomas@codesourcery.com>
7080         * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
7081         MACH, just __MACH__.
7083 2013-02-06  Richard Biener  <rguenther@suse.de>
7085         * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
7086         instead of calling fix_loop_structure.
7088 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
7090         PR middle-end/56217
7091         * omp-low.c (use_pointer_for_field): Return false if
7092         lower_send_shared_vars doesn't generate any copy-out code.
7094 2013-02-06  Tom de Vries  <tom@codesourcery.com>
7096         PR rtl-optimization/56131
7097         * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
7098         to get the bb of a NOTE_INSN_BASIC_BLOCK.  Handle the case that the bb
7099         of the label is NULL.  Add comment.
7101 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
7103         * tree.h (struct tree_decl_with_vis): Remove thread_local field.
7105         PR sanitizer/55374
7106         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
7107         (STATIC_LIBTSAN_LIBS): Likewise.
7108         * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
7109         (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
7110         is defined, don't add anything else beyond that.
7111         (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
7112         (LINK_COMMAND_SPEC): Use them.
7114         PR tree-optimization/56205
7115         * tree-stdarg.c (check_all_va_list_escapes): Return true if
7116         there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
7117         and some va_list_escape_vars SSA_NAME appears in some PHI argument.
7119 2013-02-05  Richard Biener  <rguenther@suse.de>
7121         PR tree-optimization/53342
7122         PR tree-optimization/53185
7123         * tree-vectorizer.h (vect_check_strided_load): Remove.
7124         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
7125         not disallow peeling for vectorized strided loads.
7126         (vect_check_strided_load): Make static and simplify.
7127         (vect_analyze_data_refs): Adjust.
7128         * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
7129         correctly when vectorizing strided loads.
7131 2013-02-05  Richard Biener  <rguenther@suse.de>
7133         * doc/install.texi: Refer to ISL, not PPL.
7135 2013-02-05  Jan Hubicka  <jh@suse.cz>
7137         PR tree-optimization/55789
7138         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
7140 2013-02-05  Jan Hubicka  <jh@suse.cz>
7142         PR tree-optimization/55789
7143         * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
7144         the dead call anyway.
7146 2013-02-05  Eric Botcazou  <ebotcazou@adacore.com>
7148         PR sanitizer/55374
7149         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
7151 2013-02-04  Alexander Potapenko  <glider@google.com>
7152             Jack Howarth  <howarth@bromo.med.uc.edu>
7153             Jakub Jelinek  <jakub@redhat.com>
7155         PR sanitizer/55617
7156         * config/darwin.c (sort_ctor_records): Stabilized qsort
7157         on constructor priority by using original position.
7158         (finalize_ctors): New routine to sort constructors by
7159         priority before use in assemble_integer.
7160         (machopic_asm_out_constructor): Use finalize_ctors if needed.
7162 2013-02-04  Jakub Jelinek  <jakub@redhat.com>
7164         PR libstdc++/54314
7165         * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
7166         about visibility on artificial decls.
7167         * config/sol2.c (solaris_assemble_visibility): Likewise.
7169 2013-02-04  Kai Tietz  <ktietz@redhat.com>
7171         PR target/56186
7172         * config/i386/i386.c (function_value_ms_64): Add additional valtype
7173         argument and improve checking of return-argument types for 16-byte
7174         modes.
7175         (ix86_function_value_1): Add additional valtype argument on call
7176         of function_value_64.
7177         (return_in_memory_ms_64): Sync 16-byte sized mode handling with
7178         handling infunction_value_64 function.
7180 2013-02-04  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
7182         * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
7184 2013-02-04  Richard Biener  <rguenther@suse.de>
7186         PR tree-optimization/56188
7187         * tree-ssa-structalias.c (label_visit): Consider case with
7188         initially non-empty points-to set.
7189         (perform_var_substitution): Dump node mapping and clean up.
7191 2013-02-04  Richard Guenther  <rguenther@suse.de>
7193         PR lto/56168
7194         * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
7195         node prevail as last resort.
7196         (lto_symtab_merge_decls): Remove guard on LTRANS here.
7197         (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
7199 2013-02-04  Richard Biener  <rguenther@suse.de>
7201         PR tree-optimization/56113
7202         * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
7203         Merge into ...
7204         (equiv_class_lookup_or_add): ... this.
7205         (label_visit): Adjust and fix error in previous patch.
7206         (perform_var_substitution): Adjust.
7208 2013-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
7210         * config/sh/divtab.c: Fix formatting and comments throughout the file.
7211         * config/sh/sh4-300.md: Likewise.
7212         * config/sh/sh4a.md: Likewise.
7213         * config/sh/constraints.md: Likewise.
7214         * config/sh/sh.md: Likewise.
7215         * config/sh/netbsd-elf.h: Likewise.
7216         * config/sh/predicates.md: Likewise.
7217         * config/sh/sh-protos.h: Likewise.
7218         * config/sh/ushmedia.h: Likewise.
7219         * config/sh/linux.h: Likewise.
7220         * config/sh/sh.c: Likewise.
7221         * config/sh/superh.h: Likewise.
7222         * config/sh/elf.h: Likewise.
7223         * config/sh/sh4.md: Likewise.
7224         * config/sh/sh.h: Likewise.
7226 2013-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7228         * config/pa/constraints.md: Adjust unused letters.  Change "T"
7229         constraint to match_test floating_point_store_memory_operand().
7230         * config/pa/predicates.md (reg_plus_base_memory_operand): New.
7231         (base14_operand): New.
7232         (floating_point_store_memory_operand): New.
7233         (integer_store_memory_operand): Revise to use base14_operand and
7234         reg_plus_base_memory_operand.
7235         (move_dest_operand): Allow symbolic_memory_operands.
7236         (symbolic_memory_operand): Check for LO_SOM.
7237         (symbolic_operand): Change default case to break.
7238         * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
7239         CONST_DOUBLE values to be reloaded by putting them into memory when
7240         the destination is a floating point register.
7241         (movdf): Remove code to handle CONST_DOUBLE.
7242         (movsf): Likewise.
7243         (reload_indf_r1): New.
7244         (reload_insf_r1): New.
7245         Consistently use "Q" and "T" constraints with integer and floating
7246         point move instructions, respectively.
7247         (movdi): Remove FAIL.
7248         Change predicate for source operand unamed DImode move from
7249         general_operand to move_src_operand.
7250         (umulsidi3): Change predicate for destination operand to
7251         register_operand.
7252         Likewise for similar unamed patterns.
7253         * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
7254         * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
7255         (hppa_legitimize_address): Simplify mask calculation.
7256         (pa_emit_move_sequence): Revised handling of secondary reloads from
7257         REG+D addresses for floating point loads and stores.  Directly handle
7258         loading CONST0_RTX (mode) to a floating point register.
7259         (pa_secondary_reload): Handle reloading DF and SFmode constant values
7260         to floating point registers.  Don't restrict secondary reloads to
7261         floating point registers to integer modes.  Revise some comments and
7262         cleanup some code.
7263         (TARGET_LEGITIMATE_ADDRESS_P): Define.
7264         (pa_legitimate_address_p): New.
7265         (pa_legitimize_reload_address): New.
7266         * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
7267         (STRICT_REG_OK_FOR_BASE_P): New.
7268         (GO_IF_LEGITIMATE_ADDRESS): Delete.  Update some related comments.
7269         (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
7271 2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
7272             Andrew Dixie  <andrewd@gentrack.com>
7274         * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
7275         flag set.
7277 2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
7279         * expmed.c (extract_bit_field_1): Pass the full width of the
7280         structure to get_best_reg_extraction_insn.
7282 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
7284         PR target/54601
7285         * configure.ac (use_cxa_atexit): Add AIX.
7286         * configure: Regenerate.
7288         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
7290 2013-02-01  Jakub Jelinek  <jakub@redhat.com>
7292         PR debug/54793
7293         * final.c (need_profile_function): New variable.
7294         (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
7295         If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
7296         is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
7297         notes, targetm.asm_out.function_prologue doesn't emit anything,
7298         HAVE_prologue and profiler should be emitted before prologue,
7299         set need_profile_function instead of emitting it.
7300         (final_scan_insn): If need_profile_function, emit
7301         profile_function on the first NOTE_INSN_BASIC_BLOCK or
7302         NOTE_INSN_FUNCTION_BEG note.
7304 2013-02-01  Richard Henderson  <rth@redhat.com>
7306         * config/rs6000/rs6000.md (smulditi3): New.
7307         (umulditi3): New.
7309         * config/alpha/alpha.md (umulditi3): New.
7311 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
7313         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
7314         (ASM_OUTPUT_ALIGNED_LOCAL): New.
7316 2013-02-01  Richard Biener  <rguenther@suse.de>
7318         PR tree-optimization/56113
7319         * tree-ssa-structalias.c (label_visit): Reduce work for
7320         single-predecessor nodes.
7322 2013-02-01  Eric Botcazou  <ebotcazou@adacore.com>
7324         * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
7325         range isn't testing for zero.
7327 2013-01-31  Steven Bosscher  <steven@gcc.gnu.org>
7329         PR middle-end/56113
7330         * fwprop.c (fwprop_init): Set up loops without CFG modifications.
7332 2013-01-31  Hiroyuki Ono  <hiroyuki.ono.jc@renesas.com>
7333             Nick Clifton  <nickc@redhat.com>
7335         * config/v850/constraints.md (Q): Define as a memory constraint.
7336         * config/v850/predicates.md (label_ref_operand): New predicate.
7337         (e3v5_shift_operand): New predicate.
7338         (ior_operator): New predicate.
7339         * config/v850/t-v850: Add e3v5 multilib.
7340         * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
7341         (v850_gen_movdi): Prototype.
7342         * config/v850/v850.c: Add support for e3v5 architecture.
7343         Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
7344         TARGET_V850E_UP.
7345         (construct_save_jarl): Add e3v5 long JARL support.
7346         (v850_adjust_insn_length): New function.  Adjust length of call
7347         insns when using e3v5 instructions.
7348         (v850_gen_movdi): New function: Generate instructions to move a
7349         DImode value.
7350         * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
7351         (CPP_SPEC): Define __v850e3v5__ as appropriate.
7352         (TARGET_USE_FPU): Enable for e3v5.
7353         (CONST_OK_FOR_W): New macro.
7354         (ADJUST_INSN_LENGTH): Define.
7355         * config/v850/v850.md (UNSPEC_LOOP): Define.
7356         (attr cpu): Add v850e3v5.
7357         Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
7358         (movdi): New pattern.
7359         (movdi_internal): New pattern.
7360         (cbranchsf4): Conditionalize on TARGET_USE_FPU.
7361         (cbranchdf4): Conditionalize on TARGET_USE_FPU.
7362         (cstoresf4): Likewise.
7363         (cstoredf4): Likewise.
7364         (insv): New pattern.
7365         (rotlso3_a): New pattern.
7366         (rotlsi3_b): New pattern
7367         (rotlsi3_v850e3v5): New pattern.
7368         (doloop_begin): New pattern.
7369         (fix_loop_counter): New pattern.
7370         (doloop_end): New pattern.
7371         (branch_normal): Add e3v5 long branch support.
7372         (branch_invert): Likewise.
7373         (branch_z_normal): Likewise.
7374         (branch_z_invert): Likewise.
7375         (branch_nz_normal): Likewise.
7376         (branch_nz_invert): Likewise.
7377         (call_internal_short): Add e3v5 register-indirect JARL support.
7378         (call_internal_long): Likewise.
7379         (call_value_internal_short): Likewise.
7380         (call_value_internal_long): Likewise.
7381         * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
7382         (mloop): New option.
7383         * config.gcc: Add support for configuring v840e3v5 target.
7384         * doc/invoke.texi: Document new v850 specific command line options.
7386 2013-01-31  Paul Koning  <ni1d@arrl.net>
7388         PR debug/55059
7389         PR debug/54508
7390         * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
7391         children if parent is a class.
7392         (prune_unused_types_prune): Don't add DW_AT_declaration.
7394 2013-01-31  Richard Biener  <rguenther@suse.de>
7396         PR tree-optimization/56157
7397         * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
7398         match up operand with SLP child.
7400 2013-01-31  Jason Merrill  <jason@redhat.com>
7402         PR debug/54410
7403         * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
7404         parameters the first time.
7405         (gen_scheduled_generic_parms_dies): Check completeness here.
7407 2013-01-31  Richard Biener  <rguenther@suse.de>
7409         PR middle-end/53073
7410         * common.opt (faggressive-loop-optimizations): New flag,
7411         enabled by default.
7412         * doc/invoke.texi (faggressive-loop-optimizations): Document.
7413         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
7414         infer_loop_bounds_from_undefined by it.
7416 2013-01-31  Richard Biener  <rguenther@suse.de>
7418         PR tree-optimization/56150
7419         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
7420         visit virtual operands.
7421         (find_uses_to_rename_bb): Likewise.
7423 2013-01-31  Richard Biener  <rguenther@suse.de>
7425         PR tree-optimization/56150
7426         * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
7427         mixed store non-store stmts.
7429 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
7431         PR sanitizer/55374
7432         * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
7433         LIBASAN_EARLY_SPEC is defined.
7434         (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
7435         (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
7436         before %o.
7437         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
7439         PR c++/55742
7440         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
7441         invalid args instead of ICEing on it.
7442         (ix86_valid_target_attribute_tree): Return error_mark_node if
7443         ix86_valid_target_attribute_inner_p failed.
7444         (ix86_valid_target_attribute_p): Return false only if
7445         ix86_valid_target_attribute_tree returned error_mark_node.  Allow
7446         target("default") attribute.
7447         (sorted_attr_string): Change argument from const char * to tree,
7448         merge in all target attribute arguments rather than just one.
7449         Formatting fix.  Use XNEWVEC instead of xmalloc and XDELETEVEC
7450         instead of free.  Avoid using strcat.
7451         (ix86_mangle_function_version_assembler_name): Mangle
7452         target("default") as if no target attribute is present.  Adjust
7453         sorted_attr_string caller.  Avoid leaking memory.  Use XNEWVEC
7454         instead of xmalloc and XDELETEVEC instead of free.
7455         (ix86_function_versions): Don't return true if one of the decls
7456         doesn't have target attribute.  If they don't and one of the decls
7457         is DECL_FUNCTION_VERSIONED, report an error.  Adjust
7458         sorted_attr_string caller.  Use XDELETEVEC instead of free.
7459         (ix86_supports_function_versions): Remove.
7460         (make_name): Fix up formatting.
7461         (make_dispatcher_decl): Remove resolver_name and its initialization.
7462         Avoid leaking memory.
7463         (is_function_default_version): Return true if there is
7464         target("default") attribute rather than no target attribute at all.
7465         (make_resolver_func): Avoid leaking memory.
7466         (ix86_generate_version_dispatcher_body): Likewise.
7467         (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
7468         * target.def (supports_function_versions): Remove.
7469         * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
7470         * doc/tm.texi: Regenerated.
7472 2013-01-30  Vladimir Makarov  <vmakarov@redhat.com>
7474         PR rtl-optimization/56144
7475         * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
7476         for values with side effects.
7478 2013-01-30  Richard Biener  <rguenther@suse.de>
7480         * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
7481         (sparseset_pop): Likewise.
7482         * cfganal.c (compute_idf): Likewise.  Increase work-stack size
7483         to be able to use quick_push in the worker loop.
7485 2013-01-30  Marek Polacek  <polacek@redhat.com>
7487         * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
7489 2013-01-30  Richard Biener  <rguenther@suse.de>
7491         PR lto/56147
7492         * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
7494 2013-01-30  Georg-Johann Lay  <avr@gjlay.de>
7496         PR tree-optimization/56064
7497         * fixed-value.c (fixed_from_double_int): New function.
7498         * fixed-value.h (fixed_from_double_int): New prototype.
7499         (const_fixed_from_double_int): New static inline function.
7500         * fold-const.c (native_interpret_fixed): New static function.
7501         (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
7502         (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
7503         (native_encode_fixed): New static function.
7504         (native_encode_expr) <FIXED_CST>: Use it.
7505         (native_interpret_int): Move double_int worker code to...
7506         * double-int.c (double_int::from_buffer): ...this new static method.
7507         * double-int.h (double_int::from_buffer): Prototype it.
7509 2013-01-30  Richard Biener  <rguenther@suse.de>
7511         * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
7512         New pointer-map and obstack.
7513         (init_alias_vars): Allocate pointer-map and obstack.
7514         (delete_points_to_sets): Free them.
7515         (find_what_var_points_to): Cache result.
7516         (find_what_p_points_to): Adjust for changed interface of
7517         find_what_var_points_to.
7518         (compute_points_to_sets): Likewise.
7519         (ipa_pta_execute): Likewise.
7521 2013-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7523         * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
7524         * configure: Regenerate.
7525         * config.in: Regenerate.
7526         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
7527         #nobits/#progbits if supported.
7529 2013-01-29  Oleg Endo  <olegendo@gcc.gnu.org>
7531         PR target/56121
7532         * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
7533         bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
7534         bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
7536 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
7538         * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
7539         (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7541 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
7543         * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
7544         * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
7546 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
7548         * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
7549         declaration.
7550         * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
7551         * config/arm/cortex-a7.md: New bypasses using
7552         arm_mac_accumulator_is_result.
7554 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
7556         * config/arm/cortex-a7.md (cortex_a7_neon_mul):  New reservation.
7557         (cortex_a7_neon_mla): Likewise.
7558         (cortex_a7_fpfmad): New reservation.
7559         (cortex_a7_fpmacs): Use ffmas and update required units.
7560         (cortex_a7_fpmuld): Update required units and latency.
7561         (cortex_a7_fpmacd): Likewise.
7562         (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
7563         (cortex_a7_neon). Likewise.
7564         (bypass) Update participating units.
7566 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
7568         * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
7569         * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
7570         from fmac to ffma.
7571         * config/arm/vfp11.md (vfp_farith): Use ffmas.
7572         (vfp_fmul): Use ffmad.
7573         * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
7574         (cortex_r4_fmacd): Use ffmad.
7575         * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
7576         * config/arm/cortex-a9.md (cortex_a9_fmacs):  Use ffmas.
7577         (cortex_a9_fmacd): Use ffmad.
7578         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
7579         (cortex_a8_vfp_macd): Use ffmad.
7580         * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
7581         (cortex_a5_fpmacd): Use ffmad.
7582         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
7583         (cortex_a15_vfp_macd): Use ffmad.
7584         * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
7586 2013-01-29  Jason Merrill  <jason@redhat.com>
7588         PR libstdc++/54314
7589         * varasm.c (default_assemble_visibility): Don't warn about
7590         visibility on artificial decls.
7592 2013-01-29  Richard Biener  <rguenther@suse.de>
7594         PR tree-optimization/56113
7595         * tree-ssa-structalias.c (equiv_class_lookup): Also return
7596         the bitmap leader.
7597         (label_visit): Free duplicate bitmaps and record the leader instead.
7598         (perform_var_substitution): Adjust.
7600 2013-01-29  Richard Biener  <rguenther@suse.de>
7602         PR tree-optimization/55270
7603         * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
7604         the CFG, schedule loops for fixup.
7606 2013-01-29  Nick Clifton  <nickc@redhat.com>
7608         * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
7609         SP_REG.
7611 2013-01-28  Leif Ekblad  <leif@rdos.net>
7613         * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
7614         * config/i386/i386.h (TARGET_RDOS): New macro.
7615         (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
7616         * config/i386/i386.c (ix86_option_override_internal): For 64bit
7617         TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
7618         * config/i386/i386.opt (mlarge-data-threshold): Initialize to
7619         DEFAULT_LARGE_SECTION_THRESHOLD.
7620         * config/i386/i386.md (R14_REG, R15_REG): New constants.
7621         * config/i386/rdos.h: New file.
7622         * config/i386/rdos64.h: New file.
7624 2013-01-28  Bernd Schmidt  <bernds@codesourcery.com>
7626         PR other/54814
7627         * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
7628         TEST_HARD_REG_BIT.
7630 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
7632         PR rtl-optimization/56117
7633         * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
7634         call cselib_lookup_from_insn on the MEM before calling
7635         add_insn_mem_dependence.
7637 2013-01-28  Richard Biener  <rguenther@suse.de>
7639         * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
7640         to a stmt that didn't have one.
7641         (copy_phis_for_bb): Likewise for PHI arguments.
7642         (copy_debug_stmt): Likewise for debug stmts.
7644 2013-01-28  Richard Biener  <rguenther@suse.de>
7646         PR tree-optimization/56034
7647         * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
7648         (partition_builtin_p): Adjust.
7649         (generate_code_for_partition): Handle PKIND_REDUCTION.  Assert
7650         it is the last partition.
7651         (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
7652         up the vertex for the definition.
7653         (classify_partition): Classify whether a partition is a
7654         PKIND_REDUCTION, thus has uses outside of the loop.
7655         (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
7656         Merge all PKIND_REDUCTION partitions into the last partition.
7657         (tree_loop_distribution): Seed partitions from reductions as well.
7659 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
7661         PR tree-optimization/56125
7662         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
7663         pow(x,c) into sqrt(x) * powi(x, n/2) or
7664         1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
7665         optimizing for size.
7666         Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
7667         1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
7668         integer.
7670         PR tree-optimization/56094
7671         * gimplify.c (force_gimple_operand_1): Temporarily set input_location
7672         to UNKNOWN_LOCATION while gimplifying expr.
7674 2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
7676         PR target/56114
7677         * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
7678         operand 0 in movabs insn template for -masm=intel asm alternative.
7679         (*movabs<mode>_2): Ditto for operand 1.
7681 2013-01-26  David Holsgrove  <david.holsgrove@xilinx.com>
7683         PR target/54663
7684         * config.gcc (microblaze*-linux*): Add tmake_file to allow building
7685         of microblaze-c.o
7687 2013-01-26  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
7689         * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
7690         tm_file.
7692 2013-01-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7694         * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
7695         Undef to avoid warning.
7697 2013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
7699         * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
7700         * configure: Regenerate.
7702 2013-01-25  Jakub Jelinek  <jakub@redhat.com>
7704         PR tree-optimization/56098
7705         * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
7706         for stmts with volatile ops.
7707         (cond_store_replacement): Don't optimize if assign has volatile ops.
7708         (cond_if_else_store_replacement_1): Don't optimize if either
7709         then_assign or else_assign have volatile ops.
7710         (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
7711         volatile ops.
7713 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
7715         * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
7717 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
7719         * doc/extend.texi (Example of asm with clobbered asm reg): Fix
7720         missing ':' in asm example.
7722 2013-01-25  Tejas Belagod  <tejas.belagod@arm.com>
7724         * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
7725         entries into lane and laneq entries.
7726         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
7727         Remove AdvSIMD scalar modes.
7728         (aarch64_sq<r>dmulh_laneq<mode>): New.
7729         (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
7730         modes.
7731         * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
7732         builtin implementations to relfect changes in RTL in aarch64-simd.md.
7733         * config/aarch64/iterators.md (VCOND): New.
7734         (VCONQ): New.
7736 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
7738         PR target/54222
7739         * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
7740         Add NULL LIBNAME argument to existing definitions.
7741         (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
7742         * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
7743         * config/avr/avr.c (DEF_BUILTIN): Same.
7744         (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
7745         (avr_expand_builtin): Expand to a vanilla call if a libgcc
7746         implementation is available (DECL_ASSEMBLER_NAME is set).
7747         (avr_fold_absfx): New static function.
7748         (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
7749         AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
7750         AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
7751         AVR_BUILTIN_ABSLLK.
7752         * config/avr/stdfix.h (abshr, absr, abslr, absllr)
7753         (abshk, absk, abslk, absllk): Provide as static inline functions.
7755 2013-01-25  Marek Polacek  <polacek@redhat.com>
7757         PR tree-optimization/56035
7758         * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
7760 2012-01-24  Uros Bizjak  <ubizjak@gmail.com>
7762         * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
7763         (*movtf_internal_rex64): Add (!o,C) alternative
7764         (*movxf_internal_rex64): Ditto.
7765         (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
7767 2013-01-24  Shenghou Ma  <minux.ma@gmail.com>
7769         * doc/invoke.texi: fix typo.
7770         * doc/objc.texi: fix typo.
7772 2013-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
7774         * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
7775         for the first two alternatives.
7777 2013-01-24  Diego Novillo  <dnovillo@google.com>
7779         * Makefile.in (GGC): Remove.  Replace all instances with ggc-page.o.
7780         (ggc-zone.o): Remove.
7781         * configure.ac: Remove option --with-gc.
7782         * configure: Re-generate.
7783         * doc/install.texi: Remove documentation for --with-gc.
7784         * gengtype.c (write_enum_defn): Remove.  Update all users.
7785         (write_Types_process_field): Remove generation of gt_e_* argument.
7786         (output_type_enum): Remove.  Update all users.
7787         (write_enum_defn): Remove.  Update all users.
7788         (enum alloc_zone): Remove.  Update all users.
7789         (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
7790         * ggc-common.c (ggc_splay_alloc): Remove first argument.
7791         Update all callers.
7792         (struct ptr_data): Remove field TYPE.  Update all users.
7793         (gt_pch_note_object): Remove argument TYPE.  Update all users.
7794         * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
7795         Update all users.
7796         * ggc-none.c (ggc_alloc_typed_stat): Remove.
7797         (struct alloc_zone): Remove.
7798         (ggc_internal_alloc_zone_stat): Remove.
7799         (ggc_internal_cleared_alloc_zone_stat): Remove.
7800         * ggc-page.c (ggc_alloc_typed_stat): Remove.
7801         (ggc_pch_count_object): Remove last argument.  Update all users.
7802         (ggc_pch_alloc_object): Remove last argument.  Update all users.
7803         (struct alloc_zone): Remove.
7804         * ggc-zone.c: Remove.
7805         * ggc.h (gt_pch_note_object): Remove last argument.  Update all users.
7806         (struct alloc_zone): Remove.
7807         (ggc_alloc_typed_stat): Remove.
7808         (ggc_alloc_typed): Remove.
7809         (ggc_splay_alloc): Remove first argument.
7810         (rtl_zone): Remove.  Update all users.
7811         (tree_zone): Remove.  Update all users.
7812         (tree_id_zone): Remove.  Update all users.
7813         (ggc_internal_zone_alloc_stat): Remove.  Update all users.
7814         (ggc_internal_zone_cleared_alloc_stat): Remove.  Update all users.
7815         (ggc_internal_zone_vec_alloc_stat): Remove.  Update all users.
7816         * tree-ssanames.c: Remove references to zone allocator in comments.
7818 2013-01-24  Georg-Johann Lay  <avr@gjlay.de>
7820         * config/avr/avr.c (avr_out_fract): Make register numbers that
7821         might be outside of source operand signed.
7823 2013-01-24  Uros Bizjak  <ubizjak@gmail.com>
7825         * config/i386/constraints.md (Yf): New constraint.
7826         * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
7827         of f constraint to conditionaly disable x87 register preferences.
7828         (*movdf_internal): Ditto.
7829         (*movsf_internal): Ditto.
7831 2013-01-24  Steven Bosscher  <steven@gcc.gnu.org>
7833         PR inline-asm/55934
7834         * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
7835         that have operands with impossible constraints.
7836         Add a FIXME for a speed-up opportunity.
7837         * lra-constraints.c (process_alt_operands): Verify that a class
7838         selected from constraints on asms is valid for the operand mode.
7839         (curr_insn_transform): Remove incorrect comment.
7841 2013-01-23  David Edelsohn  <dje.gcc@gmail.com>
7843         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
7844         TOC operand is a valid symbol ref in the constant pool.
7846 2013-01-23  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
7848         * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
7850 2013-01-23  Georg-Johann Lay  <avr@gjlay.de>
7852         PR target/54222
7853         * config/avr/stdfix.h: New file.
7854         * t-avr (stdfix-gcc.h): New rule to build it.
7855         (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
7857 2013-01-23  Kostya Serebryany  <kcc@google.com>
7859         * config/darwin.h: remove dependency on
7860         CoreFoundation (asan on Mac OS).
7862 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
7864         PR target/49069
7865         * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
7866         instead of cmpdi_operand for first comparison operand.
7867         Don't assert that comparison operands aren't both constants.
7869 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
7871         * doc/install.texi (Downloading the Source): Update references to
7872         downloading separate components.
7874 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
7876         * doc/extend.texi (__int128): Improve grammar.
7878 2013-01-22  Uros Bizjak  <ubizjak@gmail.com>
7880         PR target/56028
7881         * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
7882         alternative to (o,r).
7883         (*movdi_internal_rex64): Remove (!o,n) alternative.
7884         (DImode immediate->memory splitter): Remove.
7885         (DImode immediate->memory peephole2): Remove.
7886         (movtf): Enable for TARGET_64BIT || TARGET_SSE.
7887         (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
7888         alternative to (!o,*r).
7889         (*movtf_internal_sse): New pattern.
7890         (*movxf_internal_rex64): New pattern.
7891         (*movxf_internal): Disable for TARGET_64BIT.
7892         (*movdf_internal_rex64): Remove (!o,F) alternative.
7894 2013-01-22  Jakub Jelinek  <jakub@redhat.com>
7896         PR middle-end/56074
7897         * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
7898         isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
7899         * tree-vect-loop-manip.c (find_loop_location): Also ignore
7900         stmt locations where LOCATION_LOCUS of the stmt location is
7901         UNKNOWN_LOCATION or BUILTINS_LOCATION.
7903         PR target/55686
7904         * config/i386/i386.md (UNSPEC_STOS): New.
7905         (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
7906         *strsetqi_1): Add UNSPEC_STOS.
7908 2013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>
7910         PR c++/56067
7911         * doc/invoke.texi: Remove left over -Wsynth example.
7913 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
7915         PR tree-optimization/56051
7916         * fold-const.c (fold_binary_loc): Don't fold
7917         X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
7918         a narrowing conversion, or widening conversion from signed
7919         to unsigned.
7921 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
7923         PR rtl-optimization/56023
7924         * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
7925         dependent on debug instruction.
7927 2013-01-21  Martin Jambor  <mjambor@suse.cz>
7929         PR middle-end/56022
7930         * function.c (allocate_struct_function): Call
7931         invoke_set_current_function_hook earlier.
7933 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
7935         * reload1.c (init_reload): Only initialize reload_obstack
7936         during the first call.
7938 2013-01-21  Marek Polacek  <polacek@redhat.com>
7940         * cfgloop.c (verify_loop_structure): Fix up grammar.
7942 2013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>
7944         * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
7945         pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
7947 2013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7949         PR target/56058
7950         * config/arm/marvell-pj4.md: Update copyright year.
7951         Fix up use of alu to alu_reg and simple_alu_imm.
7953 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
7955         * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
7957 2013-01-20  Vladimir Makarov  <vmakarov@redhat.com>
7959         PR target/55433
7960         * lra-constraints.c (curr_insn_transform): Don't reuse original
7961         insn for secondary memory move when memory mode should be different.
7963 2013-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7965         * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
7966         atomic_storedi_1): New patterns.
7968 2013-01-20  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7970         btver2 pipeline descriptions.
7971         * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
7972         descriptions.
7973         * config/i386/i386.md (btver2_decode): New type attributes.
7974         * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
7975         type attributes.
7976         * config/i386/btver2.md: New file describing btver2 pipelines.
7978 2013-01-19  Andrew Pinski  <apinski@cavium.com>
7980         PR tree-optimization/52631
7981         * tree-ssa-sccvn (visit_use): Before looking up the original
7982         statement, try looking up the simplified expression.
7984 2013-01-19  Anthony Green  <green@moxielogic.com>
7986         * config/moxie/moxie.c (moxie_expand_prologue): Set
7987         current_function_static_stack_size.
7989 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
7991         PR tree-optimization/56029
7992         * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
7993         gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
7995 2013-01-18  Sharad Singhai  <singhai@google.com>
7997         PR tree-optimization/55995
7998         * dumpfile.c (dump_loc): Print location only if available.
7999         * tree-vectorizer.c (increase_alignment): Intialize vect_location.
8001 2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>
8003         PR target/55433
8004         * lra-constraints.c (curr_insn_transform): Reuse original insn for
8005         secondary memory move.
8006         (inherit_reload_reg): Use rclass instead of cl for
8007         check_secondary_memory_needed_p.
8009 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
8011         PR middle-end/56015
8012         * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
8013         the case where writing real complex part of target modifies op1.
8015 2013-01-18  James Greenhalgh  <james.greenhalgh@arm.com>
8017         * config/aarch64/aarch64-simd.md
8018         (aarch64_vcond_internal<mode>): Handle unordered cases.
8019         * config/aarch64/iterators.md (v_cmp_result): New.
8021 2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
8022             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8024         * config/arm/marvell-pj4.md: New file.
8025         * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
8026         * config/arm/arm.md (generic_sched): Add marvell_pj4.
8027         (generic_vfp): Likewise.
8028         * config/arm/arm-cores.def: Add marvell-pj4.
8029         * config/arm/arm-tune.md: Regenerate.
8030         * config/arm/arm-tables.opt: Regenerate.
8031         * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
8032         * doc/invoke.texi: Document marvell-pj4.
8034 2013-01-18  Tejas Belagod  <tejas.belagod@arm.com>
8036         * config/aarch64/arm_neon.h: Map scalar types to standard types.
8038 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
8040         PR debug/54114
8041         PR debug/54402
8042         PR debug/49888
8043         * var-tracking.c (negative_power_of_two_p): New.
8044         (global_get_addr_cache, local_get_addr_cache): New.
8045         (get_addr_from_global_cache, get_addr_from_local_cache): New.
8046         (vt_canonicalize_addr): Rewrite using the above.  Adjust the
8047         heading comment.
8048         (vt_stack_offset_p): Remove.
8049         (vt_canon_true_dep): Always canonicalize loc's address.
8050         (clobber_overlapping_mems): Make sure we have a MEM.
8051         (local_get_addr_clear_given_value): New.
8052         (val_reset): Clear local cached entries.
8053         (compute_bb_dataflow): Create and release the local cache.
8054         Disable duplicate MEMs clobbering.
8055         (emit_notes_in_bb): Clobber MEMs likewise.
8056         (vt_emit_notes): Create and release the local cache.
8057         (vt_initialize, vt_finalize): Create and release the global
8058         cache, respectively.
8059         * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
8061 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
8063         PR libmudflap/53359
8064         * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
8065         not found in the symtab.
8067 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
8069         PR debug/56006
8070         PR rtl-optimization/55547
8071         PR rtl-optimization/53827
8072         PR debug/53671
8073         PR debug/49888
8074         * alias.c (offset_overlap_p): New, factored out of...
8075         (memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
8076         the conservative special case for symbolic constants.  Don't
8077         adjust zero sizes on alignment.
8079 2013-01-18  Bernd Schmidt  <bernds@codesourcery.com>
8081         PR rtl-optimization/52573
8082         * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
8083         REG_UNUSED for the same register.
8085 2013-01-17  Richard Biener  <rguenther@suse.de>
8086             Marek Polacek  <polacek@redhat.com>
8088         PR rtl-optimization/55833
8089         * loop-unswitch.c (unswitch_loops): Move loop verification...
8090         (unswitch_single_loop): ...here.  Call mark_irreducible_loops.
8091         * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
8092         Set it to true when we're removing a loop from hierarchy tree in
8093         an irreducible region.
8094         (fix_bb_placements): Adjust caller.
8095         (fix_loop_placements): Likewise.
8097 2013-01-17  Georg-Johann Lay  <avr@gjlay.de>
8099         * config/avr/builtins.def (DEF_BUILTIN): Factor out
8100         "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
8101         Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
8102         Remove ID.  Adjust comments.
8103         * config/avr/avr-c.c (avr_builtin_name): Remove.
8104         (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
8105         * config/avr/avr.c (avr_tolower): New static function.
8106         (DEF_BUILTIN): Remove parameter ID.  Prefix ICODE by 'CODE_FOR_'.
8107         Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
8108         (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
8109         default expansion.
8111 2013-01-17  Jan Hubicka  <jh@suse.cz>
8113         PR tree-optimization/55273
8114         * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
8116 2013-01-17  Uros Bizjak  <ubizjak@gmail.com>
8118         PR target/55981
8119         * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
8120         store through atomic_store<mode>_1.
8121         (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
8123 2013-01-17  Martin Jambor  <mjambor@suse.cz>
8125         PR tree-optimizations/55264
8126         * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
8127         for virtual methods.
8128         * ipa.c (symtab_remove_unreachable_nodes): Never return true for
8129         virtual methods before inlining is over.
8130         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
8131         virtual functions.
8132         * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
8133         non-virtual.
8135 2013-01-16  Vladimir Makarov  <vmakarov@redhat.com>
8137         PR rtl-optimization/56005
8138         * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
8139         pending reads for prefetch.
8141 2013-01-16  Ian Bolton  <ian.bolton@arm.com>
8143         * config/aarch64/aarch64.md
8144         (*cstoresi_neg_uxtw): New pattern.
8145         (*cmovsi_insn_uxtw): New pattern.
8146         (*<optab>si3_uxtw): New pattern.
8147         (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
8148         (*<optab>si3_insn_uxtw): New pattern.
8149         (*bswapsi2_uxtw): New pattern.
8151 2013-01-16  Richard Biener  <rguenther@suse.de>
8153         * tree-inline.c (tree_function_versioning): Remove set but
8154         never used variable.
8156 2013-01-16  Richard Biener  <rguenther@suse.de>
8158         PR tree-optimization/55964
8159         * tree-flow.h (rename_variables_in_loop): Remove.
8160         (rename_variables_in_bb): Likewise.
8161         * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
8162         (copy_loop_before): Adjust and delete update-ssa status.
8163         * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8164         (rename_variables_in_bb): Likewise.  Properly walk over predecessors.
8165         (rename_variables_in_loop): Remove.
8166         (slpeel_update_phis_for_duplicate_loop): Likewise.
8167         (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
8168         use available cfg machinery instead of duplicating it.
8169         Update PHI nodes and perform poor-mans SSA update here.
8170         (slpeel_tree_peel_loop_to_edge): Adjust.
8172 2013-01-16  Richard Biener  <rguenther@suse.de>
8174         PR tree-optimization/54767
8175         PR tree-optimization/53465
8176         * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
8177         (vrp_visit_phi_node): For PHI arguments coming via backedges
8178         drop all symbolical range information.
8179         (execute_vrp): Compute backedges.
8181 2013-01-16  Richard Biener  <rguenther@suse.de>
8183         * doc/install.texi: Update CLooG and ISL requirements to
8184         0.18.0 and 0.11.1.
8186 2013-01-16  Christian Bruel  <christian.bruel@st.com>
8188         PR target/55301
8189         * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
8190         (broken_move): Handle UNSPECV_SP_SWITCH_B.
8191         * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
8193 2013-01-16  DJ Delorie  <dj@redhat.com>
8195         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
8196         (UNSPECV_SP_SWITCH_E): New.
8197         (sp_switch_1): Change to an unspec.
8198         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
8199         replace $r15.
8201 2013-01-16  Uros Bizjak  <ubizjak@gmail.com>
8203         * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
8204         with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
8205         * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
8206         (expand_mem_thread_fence): Ditto.
8207         (expand_mem_signal_fence): Ditto.
8208         (expand_atomic_load): Ditto.
8209         (expand_atomic_store): Ditto.
8211 2013-01-16  Alexandre Oliva  <aoliva@redhat.com>
8213         PR rtl-optimization/55547
8214         PR rtl-optimization/53827
8215         PR debug/53671
8216         PR debug/49888
8217         * alias.c (memrefs_conflict_p): Set sizes to negative after
8218         AND adjustments.
8220 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
8222         PR target/55940
8223         * function.c (thread_prologue_and_epilogue_insns): Always
8224         add crtl->drap_reg to set_up_by_prologue.set, even if
8225         stack_realign_drap is false.
8227 2013-01-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8229         * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
8230         and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
8231         *call): Fix indention.
8233 2013-01-15  Tom de Vries  <tom@codesourcery.com>
8235         PR target/55876
8236         * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
8237         Update comment.
8239 2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>
8241         PR rtl-optimization/55153
8242         * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
8244 2013-01-15  Martin Jambor  <mjambor@suse.cz>
8246         PR tree-optimization/55920
8247         * tree-sra.c (analyze_access_subtree): Do not mark non-removable
8248         accesses as grp_to_be_debug_replaced.
8250 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
8252         PR tree-optimization/55920
8253         * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
8254         there is non-useless type conversion needed from debug rhs to lhs,
8255         use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
8257 2013-01-15  Joseph Myers  <joseph@codesourcery.com>
8258             Mikael Pettersson  <mikpe@it.uu.se>
8260         PR target/43961
8261         * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
8262         Thumb.
8263         (ASM_OUTPUT_CASE_LABEL): Remove.
8264         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
8265         * final.c (shorten_branches): Update alignment of labels before
8266         jump tables if CASE_VECTOR_SHORTEN_MODE.
8268 2013-01-15  Richard Biener  <rguenther@suse.de>
8270         PR bootstrap/55961
8271         * system.h: Do not include gmp.h for building host tools.
8273 2013-01-15  Richard Biener  <rguenther@suse.de>
8275         PR middle-end/55882
8276         * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
8277         account for bitpos when computing alignment.
8279 2013-01-15  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>
8281         * config/i386/i386-c.c (ix86_target_macros_internal): New case.
8282         (ix86_target_macros_internal): Likewise.
8284         * config/i386/i386.c (m_CORE2I7): Removed.
8285         (m_CORE_HASWELL): New macro.
8286         (m_CORE_ALL): Likewise.
8287         (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
8288         (initial_ix86_arch_features): Likewise.
8289         (processor_target_table): Initializations for Core avx2.
8290         (cpu_names): New names "core-avx2".
8291         (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
8292         PROCESSOR_CORE_HASWELL.
8293         (ix86_issue_rate): New case.
8294         (ia32_multipass_dfa_lookahead): Likewise.
8295         (ix86_sched_init_global): Likewise.
8297         * config/i386/i386.h (TARGET_HASWELL): New macro.
8298         (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
8299         (processor_type): New PROCESSOR_HASWELL.
8301 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
8303         PR tree-optimization/55955
8304         * tree-vect-loop.c (vectorizable_reduction): Give up early on
8305         *SHIFT_EXPR and *ROTATE_EXPR codes.
8307         PR tree-optimization/48766
8308         * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
8309         -ftrapv disable -fwrapv.
8311 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
8313         PR target/55974
8314         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
8315         etc. to 1 and not to __flash.
8316         Use LL suffix for __INT24_MAX__ with -mint8.
8317         Use ULL suffix for __UINT24_MAX__ with -mint8.
8319 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
8321         * config/avr/avr-arch.h
8322         (struct base_arch_s): Use typedef avr_arch_t instead.
8323         (struct arch_info_s): Use typedef avr_arch_info_t instead.
8324         (struct mcu_type_s): Use typedef avr_mcu_t instead.
8325         * config/avr/avr.c: Same.
8326         * config/avr/avr-devices.c: Same.
8327         * config/avr/driver-avr.c: Same.
8328         * config/avr/gen-avr-mmcu-texi.c: Same.
8329         * config/avr/avr-mcus.def: Adjust comment.
8331 2013-01-14  Tejas Belagod  <tejas.belagod@arm.com>
8333         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
8334         * config/aarch64/iterators.md (VALLDI): New.
8336 2013-01-14  Uros Bizjak  <ubizjak@gmail.com>
8337             Andi Kleen  <ak@linux.intel.com>
8339         PR target/55948
8340         * config/i386/sync.md (atomic_store<mode>_1): New pattern.
8341         (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
8342         memmodel flag.
8344 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
8346         * config/avr/avr-stdint.h: Remove trailing blanks.
8347         * config/avr/avr-log.h: Same.
8348         * config/avr/avr-arch.h: Same.
8349         * config/avr/avr-devices.c: Same.
8350         * config/avr/avr-dimode.md: Same.
8351         * config/avr/predicates.md: Same.
8352         * config/avr/avr-c.c: Same.  And fix typo.
8354         * config/avr/avr-protos.h: Same.  And:
8355         (function_arg_regno_p): Rename to avr_function_arg_regno_p.
8356         (init_cumulative_args): Rename to avr_init_cumulative_args.
8357         (expand_prologue): Rename to avr_expand_prologue.
8358         (expand_epilogue): Rename to avr_expand_epilogue.
8359         (adjust_insn_length): Rename to avr_adjust_insn_length.
8360         (notice_update_cc): Rename to avr_notice_update_cc.
8361         (final_prescan_insn): Rename to avr_final_prescan_insn.
8362         * config/avr/avr.c: Same.
8363         * config/avr/avr.h: Same.
8364         * config/avr/avr.md: Remove trailing blanks.
8365         (prologue): Use avr_expand_prologue.
8366         (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
8368 2013-01-14  Richard Biener  <rguenther@suse.de>
8370         * tree-cfg.c (verify_expr_location, verify_expr_location_1,
8371         verify_location, collect_subblocks): New functions.
8372         (verify_gimple_in_cfg): Verify that locations only reference
8373         BLOCKs in the functions BLOCK tree.
8375 2013-01-14  Richard Biener  <rguenther@suse.de>
8377         * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
8378         PHI argument.
8379         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
8380         unshare reference.
8381         (insert_out_of_ssa_copy_on_edge): Likewise.
8382         (rewrite_close_phi_out_of_ssa): Likewise.
8383         * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
8384         debug expressions.
8385         * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
8386         propagated constants.
8387         * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
8388         can not be shared.
8390 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
8392         * config/avr/avr-modes.def: Add GPL copyright notice.
8394 2013-01-13  Uros Bizjak  <ubizjak@gmail.com>
8396         * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
8397         MEMMODEL_MASK to determine memory model.
8398         (atomic_store<mode>): Ditto from operands[2].
8399         * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
8401 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
8403         PR fortran/55935
8404         * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
8405         (fold_gimple_assign): Don't call unshare_expr here.
8406         (fold_ctor_reference): Call unshare_expr.
8408 2013-01-13  Terry Guo  <terry.guo@arm.com>
8410         * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
8411         * doc/fragments.texi: Document MULTILIB_REUSE.
8412         * gcc.c (multilib_reuse): New internal spec.
8413         (set_multilib_dir): Also search multilib from multilib_reuse.
8414         * genmultilib (tmpmultilib3): Refactor code.
8415         (tmpmultilib4): Ditto.
8416         (multilib_reuse): New multilib argument.
8418 2013-01-13  Richard Sandiford  <rdsandiford@googlemail.com>
8420         * Makefile.in: Update copyright.
8422 2013-01-12  Tom de Vries  <tom@codesourcery.com>
8424         PR middle-end/55890
8425         * calls.c (expand_call): Check if arg_nr is valid.
8427 2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8429         * doc/extend.texi (X86 Built-in Functions): Add whitespace in
8430         __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
8431         documentation.  Add missing '__' in front of
8432         __builtin_ia32_packssdw256.
8434 2013-01-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8436         PR target/55719
8437         * config/s390/s390.c (s390_preferred_reload_class): Do not return
8438         NO_REGS for larl operands.
8439         (s390_reload_larl_operand): Use s390_load_address instead of
8440         emit_move_insn.
8442 2013-01-11  Richard Biener  <rguenther@suse.de>
8444         * tree-cfg.c (verify_node_sharing_1): Split out from ...
8445         (verify_node_sharing): ... here.
8446         (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
8448 2013-01-11  Eric Botcazou  <ebotcazou@adacore.com>
8450         * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
8451         Substitute TREECHECKING.
8452         * configure: Regenerate.
8453         * Makefile.in (TREECHECKING): New.
8455 2013-01-11  Richard Guenther  <rguenther@suse.de>
8457         PR tree-optimization/44061
8458         * tree-vrp.c (extract_range_basic): Compute zero as
8459         value-range for __builtin_constant_p of function parameters.
8461 2013-01-10  Richard Sandiford  <rdsandiford@googlemail.com>
8463         Update copyright years.
8465 2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>
8467         PR rtl-optimization/55672
8468         * lra-eliminations.c (mark_not_eliminable): Permit addition with
8469         const to be eliminable.
8471 2013-01-10  David Edelsohn  <dje.gcc@gmail.com>
8473         * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
8474         * configure: Regenerate.
8476 2013-01-10  Richard Biener  <rguenther@suse.de>
8478         * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
8480 2013-01-10  Richard Biener  <rguenther@suse.de>
8482         PR bootstrap/55792
8483         * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
8484         locations for virtual PHI arguments.
8485         (rewrite_update_phi_arguments): Likewise.
8487 2013-01-10  Joel Sherrill  <joel.sherrill@OARcorp.com>
8489         * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
8490         on to assembler.
8492 2013-01-10  Jakub Jelinek  <jakub@redhat.com>
8494         PR tree-optimization/55921
8495         * tree-complex.c (expand_complex_asm): New function.
8496         (expand_complex_operations_1): Call it for GIMPLE_ASM.
8498 2013-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8500         PR target/55718
8501         * config/s390/s390.c (s390_symref_operand_p)
8502         (s390_loadrelative_operand_p): Merge the two functions.
8503         (s390_check_qrst_address, print_operand_address): Add parameters
8504         to s390_loadrelative_operand_p invokation.
8505         (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
8506         (s390_reload_larl_operand, s390_secondary_reload): Use
8507         s390_loadrelative_operand_p instead of s390_symref_operand_p.
8508         (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
8510 2013-01-09  Mike Stump  <mikestump@comcast.net>
8512         * dse.c (record_store): Remove unnecessary assert.
8514 2013-01-09  Jan Hubicka  <jh@suse.cz>
8516         PR tree-optimization/55569
8517         * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
8518         * cfgloop.h (scale_loop_profile): Likewise.
8520 2013-01-09  Jan Hubicka  <jh@suse.cz>
8522         PR lto/45375
8523         * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
8524         functions.
8525         * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
8527 2013-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
8529         PR middle-end/55114
8530         * expr.h (maybe_emit_group_store): Declare.
8531         * expr.c (maybe_emit_group_store): New function.
8532         * builtins.c (expand_builtin_int_roundingfn): Call it.
8533         (expand_builtin_int_roundingfn_2): Likewise.
8535 2013-01-09  Vladimir Makarov  <vmakarov@redhat.com>
8537         PR rtl-optimization/55829
8538         * lra-constraints.c (match_reload): Add code for absent output.
8539         (curr_insn_transform): Add code for reloads of matched inputs
8540         without output.
8542 2013-01-09  Uros Bizjak  <ubizjak@gmail.com>
8544         * config/i386/sse.md (*vec_interleave_highv2df): Change mode
8545         attribute of movddup insn to DF.
8546         (*vec_interleave_lowv2df): Ditto.
8547         (vec_dupv2df): Ditto.
8549 2013-01-09  Jan Hubicka  <jh@suse.cz>
8551         PR tree-optimiation/55875
8552         * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
8553         EVERY_ITERATION parameter.
8554         (number_of_iterations_exit): Check if exit is executed every iteration.
8555         (idx_infer_loop_bounds): Similarly here.
8556         (n_of_executions_at_most): Simplify
8557         to only test for cases where statement is dominated by the
8558         particular bound; handle correctly the "postdominance" test.
8559         (scev_probably_wraps_p): Use max loop iterations info
8560         as a global bound first.
8562 2013-01-09  Nguyen Duy Dat  <dat.nguyen.yn@rvc.renesas.com>
8563             Nick Clifton  <nickc@redhat.com>
8565         * config/v850/v850.md (cbranchsf4): New pattern.
8566         (cstoresf4): New pattern.
8567         (cbranchdf4): New pattern.
8568         (cstoredf4): New pattern.
8569         (movsicc): Disallow floating point comparisons.
8570         (cmpsf_le_insn): Fix order of operators.
8571         (cmpsf_lt_insn): Likewise.
8572         (cmpsf_eq_insn): Likewise.
8573         (cmpdf_le_insn): Likewise.
8574         (cmpdf_lt_insn): Likewise.
8575         (cmpdf_eq_insn): Likewise.
8576         (cmpsf_ge_insn): Use LE comparison.
8577         (cmpdf_ge_insn): Likewise.
8578         (cmpsf_gt_insn): Use LT comparison.
8579         (cmpdf_gt_insn): Likewise.
8580         (cmpsf_ne_insn): Delete pattern.
8581         (cmpdf_ne_insn): Delete pattern.
8582         * config/v850/v850.c (v850_gen_float_compare): Use
8583         gen_cmpdf_eq_insn for NE comparison.
8584         (v850_float_z_comparison_operator)
8585         (v850_float_nz_comparison_operator): Move from here ...
8586         * config/v850/predicates.md: ... to here.  Move GT and GE
8587         comparisons into v850_float_z_comparison_operator.
8588         * config/v850/v850-protos.h (v850_float_z_comparison_operator):
8589         Delete prototype.
8590         (v850_float_nz_comparison_operator): Likewise.
8592 2013-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8594         * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
8595         with calls to gen_insvsi/gen_insvdi.
8597 2013-01-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8599         * config/i386/i386.c (initial_ix86_tune_features): Set up
8600         X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
8602 2013-01-09  Steven Bosscher  <steven@gcc.gnu.org>
8603             Jakub Jelinek  <jakub@redhat.com>
8605         PR tree-optimization/48189
8606         * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
8607         If nitercst is 0, don't predict the exit edge.
8609 2013-01-08  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8611         * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
8612         in asm_fprintf with reg_names.
8613         (aarch64_print_operand_address): Likewise.
8614         (aarch64_return_addr): Likewise.
8615         * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
8617 2013-01-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8619         * config/pa/pa.h (VAL_U6_BITS_P): Define.
8620         (INT_U6_BITS): Likewise.
8621         * config/pa/predicates.md (uint6_operand): New predicate.
8622         (shift5_operand, shift6_operand): Likewise.
8623         * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
8624         arith32_operand.
8625         (lshrdi3): Use shift6_operand.
8626         (shrpsi4, shrpdi4): New insn patterns.
8627         (extzv): Delete expander.
8628         (extzvsi, extzvdi): New expanders.  Use uint5_operand and uint6_operand
8629         predicates in unamed zero extract patterns.  Tighten common constraint.
8630         (extv): Delete expander.
8631         (extvsi, extvdi): New expanders.  Use uint5_operand and uint6_operand
8632         predicates in unamed sign extract patterns.  Tighten common constraint.
8633         (insv): Delete expander.
8634         (insvsi, insvdi): New expanders.  Use uint5_operand and uint6_operand
8635         predicates in unamed insert patterns.  Tighten common constraint.
8636         Change uint32_operand predicate to uint6_operand predicate in unamed
8637         DImode pattern to insert constant values of type 1...1xxxx.
8639 2013-01-04  Jan Hubicka  <jh@suse.cz>
8641         PR tree-optimization/55823
8642         * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
8643         issue.
8645 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
8646             Uros Bizjak  <ubizjak@gmail.com>
8648         PR rtl-optimization/55845
8649         * df-problems.c (can_move_insns_across): Stop scanning at
8650         volatile_insn_p source instruction or give up if
8651         across_from .. across_to range contains any volatile_insn_p
8652         instructions.
8654 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
8656         * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
8657         * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
8658         Declare.
8659         * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
8660         aarch64_simd_make_constant, aarch64_expand_vector_init): New.
8662 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
8664         PR fortran/55341
8665         * asan.c (asan_clear_shadow): New function.
8666         (asan_emit_stack_protection): Use it.
8668 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
8670         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
8671         aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
8672         with tab instead of space.
8674 2013-01-08  Nick Clifton  <nickc@redhat.com>
8676         * config/rl78/rl78.c (rl78_expand_prologue): Always select
8677         register bank 0 at the start of an interrupt handler.
8678         * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
8679         MDBH registers.
8681 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
8683         * config/aarch64/aarch64-simd.md
8684         (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
8685         (aarch64_simd_bsl): Likewise.
8686         (aarch64_vcond_internal<mode>): Likewise.
8687         (vcond<mode><mode>): Likewise.
8688         (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
8689         * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
8691 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
8693         * config/aarch64/aarch64-builtins.c
8694         (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
8696 2013-01-08  Martin Jambor  <mjambor@suse.cz>
8698         PR debug/55579
8699         * tree-sra.c (analyze_access_subtree): Return true also after
8700         potentially creating a debug-only replacement.
8702 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
8704         PR middle-end/55890
8705         * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
8707         PR tree-optimization/54120
8708         * tree-vrp.c (range_fits_type_p): Don't allow
8709         src_precision < precision from signed vr to unsigned_p
8710         if vr->min or vr->max is negative.
8711         (simplify_float_conversion_using_ranges): Test can_float_p
8712         against CODE_FOR_nothing.
8714 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
8715             Richard Biener  <rguenther@suse.de>
8717         PR middle-end/55851
8718         * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
8719         types instead of just INTEGER_TYPE types.
8721 2013-01-07  Mark Kettenis  <kettenis@openbsd.org>
8723         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
8724         TF_SIZE): Define.
8726 2013-01-07  Steve Ellcey  <sellcey@mips.com>
8728         PR target/42661
8729         * config/mips/mips.opt: Change mad to mmad to match documentation.
8731 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
8733         PR target/55897
8734         * doc/extend.texi (AVR Named Address Spaces): __memx goes into
8735         .progmemx.data now.
8737 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
8739         PR target/55897
8740         * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
8741         (avr_addrspace_t): Add .section_name field.
8742         * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
8743         array size.
8744         (avr_addrspace): Same.  Initialize .section_name.  Remove last
8745         NULL entry.  Put __memx into .progmemx.data.
8746         (progmem_section_prefix): Remove.
8747         (avr_asm_init_sections): No need to initialize progmem_section.
8748         (avr_asm_named_section): Use avr_addrspace[].section_name to get
8749         section name prefix.
8750         (avr_asm_select_section): Ditto.  And use get_unnamed_section to
8751         retrieve the progmem section.
8752         * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
8753         boundary to run over avr_addrspace[].
8754         (avr_register_target_pragmas): Ditto.
8756 2013-01-06  Jakub Jelinek  <jakub@redhat.com>
8758         * varasm.c (output_constant_def_contents): For asan_protect_global
8759         protected strings, adjust DECL_ALIGN if needed, before testing for
8760         anchored symbols.
8761         (place_block_symbol): Adjust size for asan protected STRING_CSTs if
8762         TREE_CONSTANT_POOL_ADDRESS_P.  Increase alignment for asan protected
8763         normal decls.
8764         (output_object_block): For asan protected decls, emit asan padding
8765         after their contents.
8766         * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
8767         (asan_finish_file): Test it here instead.
8769 2013-01-07  Nick Clifton  <nickc@redhat.com>
8770             Matthias Klose  <doko@debian.org>
8771             Doug Kwan  <dougkwan@google.com>
8772             H.J. Lu  <hongjiu.lu@intel.com>
8774         PR driver/55470
8775         * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
8777         * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
8779         * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
8781         * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
8783         * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
8785 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
8787         PR target/54461
8788         * doc/install.texi (Cross-Compiler-Specific Options): Document
8789         --with-avrlibc.
8791 2013-01-07  Tejas Belagod  <tejas.belagod@arm.com>
8793         * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
8794         vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
8795         vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
8796         vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
8797         vqmovun_high_s64): Fix source operand number and update copyright.
8799 2013-01-07  Richard Biener  <rguenther@suse.de>
8801         PR middle-end/55890
8802         * gimple.h (gimple_call_builtin_p): New overload.
8803         * gimple.c (validate_call): New function.
8804         (gimple_call_builtin_p): Likewise.
8805         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8806         Use gimple_call_builtin_p.
8807         (find_func_clobbers): Likewise.
8808         * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
8809         (strlen_optimize_stmt): Likewise.
8811 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
8813         * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
8814         (vld1q_dup_*): Likewise.
8815         (vld1_*): Likewise.
8816         (vld1q_*): Likewise.
8817         (vld1_lane_*): Likewise.
8818         (vld1q_lane_*): Likewise.
8820 2013-01-07  Richard Biener  <rguenther@suse.de>
8822         * lto-streamer.h (LTO_minor_version): Bump to 2.
8824 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
8826         * config/aarch64/aarch64-protos.h
8827         (aarch64_const_double_zero_rtx_p): Rename to...
8828         (aarch64_float_const_zero_rtx_p): ...this.
8829         (aarch64_float_const_representable_p): New.
8830         (aarch64_output_simd_mov_immediate): Likewise.
8831         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
8832         move immediate case.
8833         * config/aarch64/aarch64.c
8834         (aarch64_const_double_zero_rtx_p): Rename to...
8835         (aarch64_float_const_zero_rtx_p): ...this.
8836         (aarch64_print_operand): Allow printing of new constants.
8837         (aarch64_valid_floating_const): New.
8838         (aarch64_legitimate_constant_p): Check for valid floating-point
8839         constants.
8840         (aarch64_simd_valid_immediate): Likewise.
8841         (aarch64_vect_float_const_representable_p): New.
8842         (aarch64_float_const_representable_p): Likewise.
8843         (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
8844         (aarch64_output_simd_mov_immediate): New.
8845         * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
8846         (*movdf_aarch64): Likewise.
8847         * config/aarch64/constraints.md (Ufc): New.
8848         (Y): call aarch64_float_const_zero_rtx.
8849         * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
8851 2013-01-07  Richard Biener  <rguenther@suse.de>
8853         PR tree-optimization/55888
8854         PR tree-optimization/55862
8855         * tree-ssa-pre.c (phi_translate_1): Revert previous change.
8856         (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
8857         not if it is contained therein.
8859 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
8861         * config/avr/t-avr: Typo.
8863 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
8865         PR55243
8866         * config/avr/t-avr: Don't automatically rebuild
8867         $(srcdir)/config/avr/t-multilib
8868         $(srcdir)/config/avr/avr-tables.opt
8869         $(srcdir)/doc/avr-mmcu.texi
8870         (avr-mcus): New phony target to build them on request.
8871         (s-avr-mlib, s-avr-mmcu-texi): Remove.
8872         * avr/avr-mcus.def: Adjust comments.
8874 2013-01-07  Uros Bizjak  <ubizjak@gmail.com>
8876         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
8878 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8880         * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
8882 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8884         * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
8886 2013-01-05  David Edelsohn  <dje.gcc@gmail.com>
8888         * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
8889         to generate profiling.
8890         * config/rs6000/aix64.h (LIB_SPEC): Same.
8892 2013-01-04  Andrew Pinski  <apinski@cavium.com>
8894         * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
8895         New function.
8896         (TARGET_FIXED_CONDITION_CODE_REGS): Define.
8898 2013-01-04  Uros Bizjak  <ubizjak@gmail.com>
8900         * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
8901         unconditionally.
8902         (ix86_expand_move): Ditto.
8903         (ix86_zero_extend_to_Pmode): Ditto.
8904         (ix86_expand_call): Ditto.
8905         (ix86_expand_special_args_builtin): Ditto.
8906         (ix86_expand_builtin): Ditto.
8908 2013-01-04  Richard Biener  <rguenther@suse.de>
8910         PR tree-optimization/55862
8911         * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
8912         translating them through PHI nodes.
8914 2013-01-04  Martin Jambor  <mjambor@suse.cz>
8916         PR tree-optimization/55755
8917         * tree-sra.c (sra_modify_assign): Do not check that an access has no
8918         children when trying to avoid producing a VIEW_CONVERT_EXPR.
8920 2013-01-04  Marek Polacek  <polacek@redhat.com>
8922         PR middle-end/55859
8923         * opts.c (default_options_optimization): Clarify error message.
8925 2013-01-04  Richard Biener  <rguenther@suse.de>
8927         PR middle-end/55863
8928         * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
8929         reassociation.
8931 2013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8933         PR target/53789
8934         * config/pa/pa.md (movsi): Revert previous change.
8935         * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
8936         references.
8938 2013-01-03  Richard Henderson  <rth@redhat.com>
8940         * config/i386/i386.c (ix86_expand_move): Always assign to op1
8941         after eliminating TLS symbols.
8943 2013-01-03  Marc Glisse  <marc.glisse@inria.fr>
8945         PR bootstrap/50167
8946         * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
8947         * graphite-poly.c (debug_gmp_value): Likewise.
8949 2013-01-03  Uros Bizjak  <ubizjak@gmail.com>
8951         PR target/55712
8952         * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
8953         selected code model, define __code_mode_small__, __code_model_medium__,
8954         __code_model_large__, __code_model_32__ or __code_model_kernel__.
8955         * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
8956         xchg temporary register with %k.  Declare temporary register as
8957         early clobbered.
8958         [__x86_64__]: For medium and large code models, preserve %rbx register.
8960 2013-01-03  Richard Biener  <rguenther@suse.de>
8962         * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
8963         (dump_subscript): Adjust.
8964         (finalize_ddr_dependent): Do not dump redundant info.
8965         (analyze_siv_subscript): Adjust.
8966         (subscript_dependence_tester): Likewise.
8967         (compute_affine_dependence): Likewise.
8969 2013-01-03  Richard Biener  <rguenther@suse.de>
8971         Revert
8972         2013-01-03  Richard Biener  <rguenther@suse.de>
8974         PR tree-optimization/55857
8975         * tree-vect-stmts.c (vectorizable_load): Do not setup
8976         re-alignment for invariant loads.
8978         2013-01-02  Richard Biener  <rguenther@suse.de>
8980         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
8981         invariant load do not generate a vector load from the scalar location.
8983 2013-01-03  Richard Biener  <rguenther@suse.de>
8985         * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
8986         for not vectorizing.
8987         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
8988         not build INDIRECT_REFs, call get_name once only.
8989         (vect_create_data_ref_ptr): Likewise.  Dump base object kind
8990         based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
8992 2013-01-03  Richard Biener  <rguenther@suse.de>
8994         PR tree-optimization/55857
8995         * tree-vect-stmts.c (vectorizable_load): Do not setup
8996         re-alignment for invariant loads.
8998 2013-01-03  Richard Biener  <rguenther@suse.de>
9000         PR lto/55848
9001         * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
9002         prefer a built-in decl.
9004 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
9006         * gcc.c (process_command): Update copyright notice dates.
9007         * gcov.c (print_version): Likewise.
9008         * gcov-dump.c (print_version): Likewise.
9010         PR rtl-optimization/55838
9011         * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
9012         iv0.step, iv1.step and step.
9014 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
9015             Marc Glisse  <marc.glisse@inria.fr>
9017         PR tree-optimization/55832
9018         * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
9019         ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
9020         integer_{one,zero}_node.
9022 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
9024         PR debug/54402
9025         * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
9026         * var-tracking.c (reverse_op): Don't add reverse ops to
9027         VALUEs that have already
9028         PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
9030 2013-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
9032         * doc/contrib.texi: Note years as release manager for Mark Mitchell.
9034 2013-01-02  Teresa Johnson  <tejohnson@google.com>
9036         * dumpfile.c (dump_loc): Print filename with location.
9037         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
9038         new location_t parameter to emit complete unroll message with
9039         new dump framework.
9040         (canonicalize_loop_induction_variables): Compute loops location
9041         and pass to try_unroll_loop_completely.
9042         * loop-unroll.c (report_unroll_peel): New function.
9043         (peel_loops_completely): Use new dump format with location
9044         for main dumpfile message, and invoke report_unroll_peel on success.
9045         (decide_unrolling_and_peeling): Ditto.
9046         (decide_peel_once_rolling): Remove old dumpfile message subsumed
9047         by report_unroll_peel.
9048         (decide_peel_completely): Ditto.
9049         (decide_unroll_constant_iterations): Ditto.
9050         (decide_unroll_runtime_iterations): Ditto.
9051         (decide_peel_simple): Ditto.
9052         (decide_unroll_stupid): Ditto.
9053         * cfgloop.c (get_loop_location): New function.
9054         * cfgloop.h (get_loop_location): Declare.
9056 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
9058         * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
9059         NULL.
9061 2013-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9063         PR middle-end/55198
9064         * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
9065         BLKmode objects when EXPAND_MEMORY is specified.
9067 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
9069         * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
9070         in loop predicate.
9071         (fold_builtin_cpu): Do not share cpu model decls across statements.
9073 2013-01-02  Jason Merrill  <jason@redhat.com>
9075         PR c++/55804
9076         * tree.c (build_array_type_1): Revert earlier change.
9078 2013-01-02  Yufeng Zhang  <yufeng.zhang@arm.com>
9080         * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
9081         "cortex-a57".
9082         * config/aarch64/aarch64-tune.md: Re-generate.
9084 2013-01-02  Richard Biener  <rguenther@suse.de>
9086         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
9087         invariant load do not generate a vector load from the scalar location.
9089 2013-01-02  Richard Biener  <rguenther@suse.de>
9091         PR bootstrap/55784
9092         * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
9093         * configure: Regenerate.
9095 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
9097         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
9098         (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
9099         (expand_builtin_int_roundingfn_2): Keep the original target around
9100         for the fallback case.
9102 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
9104         * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
9105         to be clear for sign changes.
9107 2013-01-01  Jan Hubicka  <jh@suse.cz>
9109         * ipa-inline-analysis.c: Fix formatting.
9111 2013-01-01  Jakub Jelinek  <jakub@redhat.com>
9113         PR tree-optimization/55831
9114         * tree-vect-loop.c (get_initial_def_for_induction): Use
9115         gsi_after_labels instead of gsi_start_bb.
9117 Copyright (C) 2013 Free Software Foundation, Inc.
9119 Copying and distribution of this file, with or without modification,
9120 are permitted in any medium without royalty provided the copyright
9121 notice and this notice are preserved.