1 2012-01-03 Richard Guenther <rguenther@suse.de>
4 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
5 the context of a limbo DIE when it does not already exist.
7 2012-01-03 Jakub Jelinek <jakub@redhat.com>
9 PR tree-optimization/51719
10 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
11 but direct call is, clear direct call's lhs and don't add fallthrough
12 edge from dcall_bb to join_bb and PHIs.
14 2012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
17 the instructions emitted by the pattern.
18 ("*TDC_insn_<mode>"): Add comment.
20 2012-01-03 Richard Guenther <rguenther@suse.de>
23 * fold-const.c (fold_comparison): Properly canonicalize
24 tree offset and HOST_WIDE_INT bit position.
26 2012-01-02 Uros Bizjak <ubizjak@gmail.com>
28 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
29 operands for extzv pattern.
31 2012-01-02 Jakub Jelinek <jakub@redhat.com>
34 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
37 2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
39 * doc/invoke.texi (-flto and related options): Copy-edit.
41 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
43 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
45 2012-01-02 Jakub Jelinek <jakub@redhat.com>
47 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
50 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
52 * expr.h (move_by_pieces_ninsns): Declare.
53 * expr.c (move_by_pieces_ninsns): Make external.
54 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
55 (mips_store_by_pieces_p): Likewise.
56 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
57 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
58 * config/mips/mips.c (mips_move_by_pieces_p): New function.
59 (mips_store_by_pieces_p): Likewise.
61 2012-01-02 Jakub Jelinek <jakub@redhat.com>
63 * passes.c (register_one_dump_file): Free full_name.
65 * reload1.c (reload): Don't allocate reg_max_ref_width here.
66 (calculate_elim_costs_all_insns): Free offsets_at and
67 offsets_known_at at the end and clear the pointers.
69 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
71 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
72 this option introduced in r180739.
74 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
77 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
78 (tmake_file target=avr): Add avr/t-multilib.
80 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
81 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
82 * config/avr/genmultilib.awk: New file.
83 * config/avr/t-multilib: New auto-generated file.
84 * config/avr/multilib.h: New auto-generated file.
85 * config/avr/t-avr (AVR_MCUS): New variable.
87 (s-mlib): Depend on t-multilib.
88 (t-multilib, multilib.h): New dependencies.
89 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
90 (MULTILIB_OPTIONS): Remove.
91 (MULTILIB_MATCHES): Remove.
92 (MULTILIB_DIRNAMES): Remove.
93 (MULTILIB_EXCEPTIONS): Remove:
94 * config/avr/genopt.sh: Don't use hard coded file name;
95 pass AVR_MCUS from t-avr instead.
97 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
99 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
101 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
103 Implement light-weight DImode support.
104 * config/avr/avr-dimode.md: New file.
105 * config/avr/avr.md: Include it.
106 (adjust_len): Add plus64, compare64.
107 (HIDI): Remove code iterator.
108 (code_stdname): New code attribute.
109 (rotx, rotsmode): Remove DI.
110 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
112 * config/avr/avr-protos.h (avr_have_dimode): New.
113 (avr_out_plus64, avr_out_compare64): New.
114 * config/avr/avr.c (avr_out_compare): Handle DImode.
115 (avr_have_dimode): New variable definition and initialization.
116 (avr_out_compare64, avr_out_plus64): New functions.
117 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
118 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
119 (avr_compare_pattern): Skip DImode comparisons.
121 2012-01-02 Revital Eres <revital.eres@linaro.org>
123 * ddg.c (def_has_ccmode_p): New function.
124 (add_cross_iteration_register_deps,
125 create_ddg_dep_from_intra_loop_link): Call it.
127 2012-01-02 Richard Guenther <rguenther@suse.de>
130 * invoke.texi (fassociative-math): Remove spurious paranthesis.
132 2012-01-01 Jakub Jelinek <jakub@redhat.com>
134 * gcc.c (process_command): Update copyright notice dates.
135 * gcov.c (print_version): Likewise.
136 * gcov-dump.c (print_version): Likewise.
137 * mips-tfile.c (main): Likewise.
138 * mips-tdump.c (main): Likewise.
140 2012-01-01 Ira Rosen <irar@il.ibm.com>
142 PR tree-optimization/51704
143 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
144 a use is inside the basic block or loop before accessing its vect info.
146 2012-01-01 Jan Hubicka <jhjh@suse.cz>
148 PR rtl-optimization/51069
149 * cfgloopmanip.c (remove_path): Removing path making irreducible
150 region unconditional makes BB part of the region.
152 2012-01-01 Jakub Jelinek <jakub@redhat.com>
154 PR tree-optimization/51683
155 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
156 calls with side-effects.
157 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
159 2011-12-31 Alexandre Oliva <aoliva@redhat.com>
161 * cselib.h (cselib_add_permanent_equiv): Declare.
162 (canonical_cselib_val): New.
163 * cselib.c (new_elt_loc_list): Rework to support value
164 equivalences. Adjust all callers.
165 (preserve_only_constants): Retain value equivalences.
166 (references_value_p): Retain preserved values.
167 (rtx_equal_for_cselib_1): Handle value equivalences.
168 (cselib_invalidate_regno): Use canonical value.
169 (cselib_add_permanent_equiv): New.
170 * alias.c (find_base_term): Reset locs lists while recursing.
171 * var-tracking.c (val_bind): New. Don't add equivalences
172 present in cselib table, compared with code moved from...
173 (val_store): ... here.
174 (val_resolve): Use val_bind.
175 (VAL_EXPR_HAS_REVERSE): Drop.
176 (add_uses): Do not create MOps for addresses. Do not mark
177 non-REG non-MEM expressions as requiring resolution.
178 (reverse_op): Record reverse as a cselib equivalence.
179 (add_stores): Use it. Do not create MOps for addresses.
180 Do not require resolution for non-REG non-MEM expressions.
181 Simplify support for reverse operations.
182 (compute_bb_dataflow): Drop reverse support.
183 (emit_notes_in_bb): Likewise.
184 (create_entry_value): Rename to...
185 (record_entry_value): ... this. Use cselib equivalences.
186 (vt_add_function_parameter): Adjust.
188 2011-12-30 Michael Meissner <meissner@linux.vnet.ibm.com>
190 * config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko
191 in setting options via target #pragma or attribute.
193 2011-12-30 Anatoly Sokolov <aesok@post.ru>
195 * config/bfin/bfin.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
196 * config/bfin/bfin-protos.h (bfin_register_move_cost,
197 bfin_memory_move_cost): Remove.
198 * config/bfin/bfin.c (bfin_register_move_cost,
199 bfin_memory_move_cost): Make static. Change arguments type from
200 enum reg_class to reg_class_t and from int to bool.
201 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
203 2011-12-30 Nathan Sidwell <nathan@acm.org>
205 * gcov.c (total_lines, total_executed): New global vars.
206 (generate_results): Call executed_summary.
207 (executed_summary): New function, broken out of ...
208 (function_summary): ... here. Call it.
209 * coverage.c (coverage_finish): Also check for local_tick == -1.
210 * gcov-dump (tag_function): Correct labelling typo.
212 2011-12-29 Michael Meissner <meissner@linux.vnet.ibm.com>
215 * config/rs6000/rs6000.c (rs6000_assemble_integer): Delete check
216 for an initialized pointer being in a text section with
217 -mrelocatable, since it should never happen.
219 2011-12-29 Michael Eager <eager@eagercon.com>
221 * config/microblaze/microblaze.md: Add expander for simple_return,
222 return, add return_internal and simple_return_internal insns.
224 2011-12-29 Oleg Endo <olegendo@gcc.gnu.org>
226 * config/sh/sh.h (BRANCH_COST): Use sh_branch_cost variable.
227 * config/sh/sh.c (sh_option_override): Simplify sh_branch_cost
230 2011-12-28 Ian Lance Taylor <iant@google.com>
232 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Go for Go.
234 2011-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
237 * config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call
238 unlikely_text_section_p. Instead check for being in a code section.
240 2011-12-28 Ira Rosen <irar@il.ibm.com>
242 PR tree-optimization/51684
243 * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original
244 statement in case of a pattern.
245 (vect_schedule_slp): Likewise.
247 2011-12-27 Eric Botcazou <ebotcazou@adacore.com>
249 PR rtl-optimization/51667
250 * ree.c (insn_merge_code): Delete.
251 (is_insn_merge_attempted): Likewise.
252 (get_insn_status): Likewise.
253 (set_insn_status): Likewise.
254 (struct ext_cand): Add CODE and MODE fields.
255 (combine_set_extend): Rename to...
256 (combine_set_extension): ...this. Use above fields and tidy up.
257 (transform_ifelse): Likewise.
258 (get_defs): Return the chain of definitions.
259 (is_this_a_cmove): Merge into...
260 (is_cond_copy_insn): ...this. Return bool.
261 (make_defs_and_copies_lists): Adjust calls to get_defs and simplify.
262 (merge_def_and_ext): Adjust call to combine_set_extend.
263 (combine_reaching_defs): Remove calls to {g|s}et_insn_status.
264 (struct extend_info): Rename to...
265 (struct re_info): ...this. Add DEF_MAP field.
266 (add_ext_candidate): Merge into...
267 (add_removable_extension): ...this. Adjust calls to get_defs. Ensure
268 reaching definitions are associated with only one kind of extension.
269 (find_removable_extensions): Create and destroy the definition map.
270 (find_and_remove_re): Return void. Change 'long' variables to 'int'.
271 Do not deal with is_insn_merge_attempted.
273 2011-12-25 Jan Hubicka <jh@suse.cz>
276 * tree-ssa-threadupdate.c (redirect_edges): Watch for overflow.
278 2011-12-26 Oleg Endo <oleg.endo@t-online.de>
280 * config/sh/sync.md: Add soft atomics ABI description.
281 (fetchop_name): Use 'or' instead of 'ior'.
282 (fetchop_insn): Remove.
283 (atomic_compare_and_swap<mode>_soft):
284 Don't insert aligning nop after the write-back instruction. Fix
285 multi-line asm output formatting style.
286 (atomic_fetch_<fetchop_name><mode>_soft): Likewise.
287 (atomic_fetch_nand<mode>_soft): Likewise.
288 (atomic_<fetchop_name>_fetch<mode>_soft): Likewise.
289 (atomic_nand_fetch<mode>_soft): Likewise.
291 2011-12-23 Richard Henderson <rth@redhat.com>
293 * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR): Remove.
294 * cfgexpand.c (expand_debug_expr): Don't handle them.
295 * expr.c (expand_expr_real_2): Likewise.
296 * fold-const.c (fold_binary_loc): Likewise.
297 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
298 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
299 * tree-inline.c (estimate_operator_cost): Likewise.
300 * tree-pretty-print.c (dump_generic_node): Likewise.
301 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
302 * optabs.c (optab_for_tree_code): Likewise.
303 (can_vec_perm_for_code_p): Remove.
304 (expand_binop): Don't try it.
305 (init_optabs): Don't init vec_extract_even/odd_optab.
306 * genopinit.c (optabs): Likewise.
307 * optabs.h (OTI_vec_extract_even, OTI_vec_extract_odd): Remove.
308 (vec_extract_even_optab, vec_extract_odd_optab): Remove.
309 * tree-vect-data-refs.c (vect_strided_store_supported): Tidy code.
310 (vect_permute_store_chain): Use TYPE_VECTOR_SUBPARTS instead of
311 GET_MODE_NUNITS; check vect_gen_perm_mask return value instead of
312 asserting vect_strided_store_supported.
313 (vect_strided_load_supported): Use can_vec_perm_p.
314 (vect_permute_load_chain): Use VEC_PERM_EXPR.
316 * doc/generic.texi (VEC_EXTRACT_EVEN_EXPR): Remove.
317 (VEC_EXTRACT_ODD_EXPR): Remove.
318 * doc/md.texi (vec_extract_even, vec_extract_odd): Remove.
320 2011-12-23 Anatoly Sokolov <aesok@post.ru>
322 * config/score/score.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
323 * config/score/score-protos.h (score_register_move_cost): Remove.
324 * config/score/score.c (TARGET_REGISTER_MOVE_COST): Define.
325 (score_register_move_cost): Make static. Change arguments type from
326 enum reg_class to reg_class_t.
328 2011-12-23 Jakub Jelinek <jakub@redhat.com>
329 Richard Henderson <rth@redhat.com>
331 * tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove.
332 * gimple-pretty-print.c (dump_binary_rhs): Don't handle
333 VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
334 * expr.c (expand_expr_real_2): Likewise.
335 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
336 * cfgexpand.c (expand_debug_expr): Likewise.
337 * tree-inline.c (estimate_operator_cost): Likewise.
338 * tree-pretty-print.c (dump_generic_node): Likewise.
339 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
340 * fold-const.c (fold_binary_loc): Likewise.
341 * doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR,
342 VEC_INTERLEAVE_LOW_EXPR): Remove documentation.
343 * optabs.c (optab_for_tree_code): Don't handle
344 VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
345 (expand_binop, init_optabs): Remove vec_interleave_high_optab
346 and vec_interleave_low_optab.
347 * genopinit.c (optabs): Likewise.
348 * optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove.
349 (vec_interleave_high_optab, vec_interleave_low_optab): Remove.
350 * doc/md.texi (vec_interleave_high, vec_interleave_low): Remove
352 * tree-vect-stmts.c (gen_perm_mask): Renamed to...
353 (vect_gen_perm_mask): ... this. No longer static.
354 (perm_mask_for_reverse, vectorizable_load): Adjust callers.
355 * tree-vectorizer.h (vect_gen_perm_mask): New prototype.
356 * tree-vect-data-refs.c (vect_strided_store_supported): Don't try
357 VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of
358 can_vec_perm_for_code_p.
359 (vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving
360 masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
361 * config/i386/i386.c (expand_vec_perm_interleave2): If
362 expand_vec_perm_interleave3 would handle it, return false.
363 (expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab.
365 2011-12-23 Richard Henderson <rth@redhat.com>
367 * config/mips/loongson.md (UNSPEC_LOONGSON_PINSR_0,
368 UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2,
369 UNSPEC_LOONGSON_PINSR_3): Replace with...
370 (UNSPEC_LOONGSON_PINSRH): ... this.
371 (UNSPEC_LOONGSON_VINIT): New.
372 (UNSPEC_LOONGSON_DSLL, UNSPEC_LOONGSON_DSRL): New.
373 (VWB): New mode iterator.
374 (V_inner): New mode attribute.
375 (loongson_vec_init1_<VHB>): New.
376 (*vec_concatv2si): New.
377 (and<VWHB>3, ior<VWHB>3, xor<VWHB>3, one_cmpl<VWHB>2): New.
378 (*loongson_nor): New.
379 (loongson_pextrh): Un-macro-ify.
380 (loongson_pmaddhw): Likewise.
381 (smaxv4hi3, umaxv8qi3, sminv4hi3, uminv8qi3): Likewise.
382 (loongson_pinsrh_0): Represent with vec_select+vec_concat.
383 (loongson_pinsrh_1, loongson_pinsrh_2, loongson_pinsrh_3): Likewise.
384 (*vec_setv4hi, vec_setv4hi): New.
385 (sdot_prodv4hi): New.
386 (smax<VWB>3, smin<VWB>3): New.
387 (reduc_uplus_v8qi): New.
388 (loongson_pshufh): Remove destination matching input.
389 (ashl<VWH>3, ashr<VWH>3, lshr<VWH>3): Fix type attribute.
390 (vec_interleave_high<VWHB>, vec_interleave_low<VWHB>): Remove.
391 (loongson_punpckhbh, loongson_punpckhhw, loongson_punpckhhw_qi,
392 loongson_punpckhwd, loongson_punpckhwd_qi, loongson_punpckhwd_hi,
393 loongson_punpcklbh, loongson_punpcklhw, loongson_punpcklhw_qi,
394 loongson_punpcklwd, loongson_punpcklwd_qi, loongson_punpcklwd_hi,
395 vec_perm_const<VWHB>, vec_unpacks_lo_<VHB>, vec_unpacks_hi_<VHB>,
396 vec_unpacku_lo_<VHB>, vec_unpacku_hi_<VHB>, vec_shl_<VWHBDI>,
397 vec_shr_<VWHBDI>, reduc_uplus_<VWH>, reduc_splus_<VWHB>,
398 reduc_smax_<VWHB>, reduc_smin_<VWHB>, reduc_umax_<VWHB>,
399 reduc_umin_<VB>): New.
400 * config/mips/mips-ps-3d.md (vec_perm_const_ps): New.
401 (mips_pul_ps, mips_puu_ps, mips_pll_ps, mips_plu_ps): Expand in
402 terms of vec_perm_const_ps.
403 (vec_perm_constv2sf): New.
404 (vec_initv2sf): Use mips_expand_vector_init.
405 (vec_concatv2sf): Rename from vec_initv2sf_internal.
406 (vec_setv2sf): Use vec_perm_const_ps.
407 (reduc_splus_v2sf, reduc_smin_v2sf, reduc_smax_v2sf): New.
408 * config/mips/loongson.h (pshufh_u, pshufh_s): Don't pass dest to
410 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V4SF): New modes.
411 * config/mips/mips-protos.h: Update.
412 * config/mips/mips.c (mips_get_arg_info): Match V2SFmode, not all
414 (mips_return_mode_in_fpr_p): Likewise.
415 (mips_cannot_change_mode_class): Allow 8-byte integral mode changes.
416 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw,
417 CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh,
418 CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): Remove.
419 (mips_builtins): Remove first operand for loongson pshufh builtins.
420 (MAX_VECT_LEN, struct expand_vec_perm_d): New.
421 (mips_expand_vselect, mips_expand_vselect_vconcat,
422 mips_expand_vpc_loongson_even_odd, mips_expand_vpc_loongson_pshufh,
423 mips_expand_vpc_loongson_bcast, mips_expand_vec_perm_const_1,
424 mips_expand_vec_perm_const, mips_vectorize_vec_perm_const_ok,
425 mips_expand_vec_unpack, mips_constant_elt_p, mips_expand_vi_broadcast,
426 mips_expand_vi_constant, mips_expand_vi_loongson_one_pinsrh,
427 mips_expand_vi_general, mips_expand_vec_reduc, mips_expand_vec_minmax,
428 TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
429 (mips_expand_vector_init): Rewrite.
430 * config/mips/predicates.md (const_2_or_3_operand): New.
431 (const_0_to_3_operand): New.
433 2011-12-23 Dmitry Plotnikov <dplotnikov@ispras.ru>
435 * config/arm/neon.md (float<mode><V_cvtto>2): New.
436 (floatuns<mode><V_cvtto>2): New.
437 (fix_trunc<mode><V_cvtto>2): New.
438 (fix_truncuns<mode><V_cvtto>2): New.
439 * config/arm/iterators.md (V_cvtto): New iterator.
441 2011-12-23 Richard Guenther <rguenther@suse.de>
443 PR rtl-optimization/50396
444 * simplify-rtx.c (simplify_binary_operation_1): Properly
445 guard code that only works for integers.
447 2011-12-23 Tristan Gingold <gingold@adacore.com>
449 * config/vms/vms-crtlmap.map (log10): Fix typo.
451 2011-12-23 Tristan Gingold <gingold@adacore.com>
453 * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define.
455 2011-12-22 Bin Cheng <bin.cheng@arm.com>
456 Richard Guenther <rguenther@suse.de>
458 PR tree-optimization/43491
459 * tree-ssa-pre.c (eliminate): Don't replace global register
460 variable when it is the RHS of a single assign.
462 2011-12-22 Joey Ye <joey.ye@arm.com>
464 * toplev.c (process_options): Fix typo.
466 2011-12-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
469 * config/pa/pa.c (pa_som_tm_clone_table_section): New function.
470 (som_tm_clone_table_section): Declare.
471 (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace.
472 (pa_som_asm_init_sections): Init som_tm_clone_table_section.
473 * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
475 2011-12-22 Richard Sandiford <rdsandiford@googlemail.com>
477 * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook.
478 * doc/tm.texi: Regenerate.
479 * target.def (prepare_pch_save): New hook.
480 * c-family/c-pch.c (c_common_write_pch): Call it.
481 * config/mips/mips.c (was_mips16_pch_p): Delete.
482 (mips_set_mips16_mode): Don't refer to was_mips16_pch_p.
483 (mips_prepare_pch_save): New function.
484 (TARGET_PREPARE_PCH_SAVE): Define.
486 2011-12-22 Aldy Hernandez <aldyh@redhat.com>
489 * opts.c (finish_options): Call sorry on -fgnu-tm and
490 -fnon-call-exceptions combination.
492 2011-12-22 Jonathan Wakely <jwakely.gcc@gmail.com>
494 * doc/invoke.texi (C++ Dialect Options): Add missing options and
495 move -Wzero-as-null-pointer-constant to ...
496 (Warning Options): ... here.
498 2011-12-22 Jonathan Wakely <jwakely.gcc@gmail.com>
501 * doc/invoke.texi (i386 and x86-64 Options): Fix description of
502 -mtune without -march.
504 2011-12-21 Richard Earnshaw <rearnsha@arm.com>
507 * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
510 2011-12-22 Tristan Gingold <gingold@adacore.com>
512 * config/ia64/ia64.c (ia64_promote_function_mode): Remove.
513 (TARGET_PROMOTE_FUNCTION_MODE): Remove.
514 (ia64_function_value): Call promote_function_mode instead of
515 ia64_promote_function_mode.
516 * config/ia64/vms.h (PROMOTE_MODE): Define.
517 (TARGET_PROMOTE_FUNCTION_MODE): Define.
519 2011-12-22 Uros Bizjak <ubizjak@gmail.com>
522 * common/config/alpha/alpha-common.c (alpha_option_optimization_table):
523 Enable flag_ree at -O2 or higher.
525 2011-12-22 Richard Guenther <rguenther@suse.de>
528 * lto.c (uniquify_nodes): Register TYPE_DECLs with the
531 2011-12-22 Bernd Schmidt <bernds@codesourcery.com>
533 * tree-pass.h (pass_reload): Declare.
534 * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots):
535 New global variables, moved out of ira.
536 (do_reload): New static function, split off from the second half
540 (pass_ira): Use TV_IRA, set gate to NULL, and set flags to
542 (rest_of_handle_reload): New static function.
545 2011-12-22 Uros Bizjak <ubizjak@gmail.com>
547 * common/config/i386/i386-common.c (ix86_option_optimization_table):
548 Move OPT_free processing from ...
549 * config/i386/i386.c (ix86_option_override_internal): ... here.
551 2011-12-21 Richard Earnshaw <rearnsha@arm.com>
554 * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
555 weak function on bare-metal EABI targets.
557 2011-12-21 Jonathan Wakely <jwakely.gcc@gmail.com>
558 Jim Avera <james_avera@yahoo.com>
560 * doc/extend.texi (__builtin_expect): Improve example.
562 2011-12-21 Uros Bizjak <ubizjak@gmail.com>
564 * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree
565 also for 32bit targets.
567 2011-12-21 Richard Henderson <rth@redhat.com>
570 * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code...
571 (scan_trace): ... here.
573 2011-12-21 Jason Merrill <jason@redhat.com>
575 * doc/standards.texi (C++ language): Update for C++11.
577 2011-12-21 Jakub Jelinek <jakub@redhat.com>
579 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize
580 *op0 and *op1 to NULL_TREE first to avoid warnings.
581 * calls.c (initialize_argument_information): Initialize base to avoid
586 * tree-eh.c (decide_copy_try_finally): At -O0, return true
587 even when ndests is not 1, if there are only gimple_clobber_p
588 (or debug) stmts in the finally sequence.
589 * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p
592 2011-12-21 Aldy Hernandez <aldyh@redhat.com>
595 * trans-mem.c (tm_log_add): Use create_tmp_var_reg.
597 2011-12-21 Martin Jambor <mjambor@suse.cz>
599 * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
600 (rewrite_update_enter_block): Likewise.
601 (dump_update_ssa): Likewise.
602 (update_ssa): Likewise but also dump a newline at the beginning.
604 2011-12-21 Enkovich Ilya <ilya.enkovich@intel.com>
607 * implicit-zee.c: Delete.
609 * Makefile.in: Replace implicit-zee.c with ree.c.
610 * config/i386/i386.c (ix86_option_override_internal): Rename
611 flag_zee to flag_ree.
612 * common.opt (fzee): Ignored.
614 * passes.c (init_optimization_passes): Replace pass_implicit_zee
616 * tree-pass.h (pass_implicit_zee): Delete.
618 * timevar.def (TV_ZEE): Delete.
620 * doc/invoke.texi: Add -free description.
622 2011-12-21 Tristan Gingold <gingold@adacore.com>
624 * config/vms/vms-protos.h (vms_function_section): New prototype.
625 * config/vms/vms.c (vms_function_section): New function.
626 * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define.
628 2011-12-21 Richard Guenther <rguenther@suse.de>
631 * tree-outof-ssa.c (insert_value_copy_on_edge): Use the
632 mode of the pseudo as destination mode. Only assert that
633 is equal to the promoted mode of the decl if it is a REG.
635 2011-12-21 Tristan Gingold <gingold@adacore.com>
637 * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define.
639 2011-12-20 Richard Henderson <rth@redhat.com>
641 * config/ia64/ia64.c (MAX_VECT_LEN): New.
642 (struct expand_vec_perm_d): New.
643 (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
644 (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1.
645 (expand_vselect, expand_vselect_vconcat): New.
646 (expand_vec_perm_identity, expand_vec_perm_shrp): New.
647 (expand_vec_perm_1, expand_vec_perm_broadcast): New.
648 (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New.
649 (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New.
650 (ia64_vectorize_vec_perm_const_ok): New.
651 (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New.
652 * config/ia64/ia64-protos.h: Update.
653 * config/ia64/vect.md (VEC): New mode iterator.
654 (vecint): New mode attribute.
655 (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'.
656 (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise.
657 (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise.
658 (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise.
659 (mix1_even, mix1_odd, mux1_alt): Likewise.
660 (mux1_brcst_qi): Remove '*' from name.
661 (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove.
662 (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove.
663 (vec_extract_evenv2si, vec_extract_oddv2si): Remove.
664 (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
665 (vec_extract_evenodd_helper): Remove.
666 (vec_setv2sf): Use ia64_expand_vec_setv2sf.
667 (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd.
668 (vec_pack_trunc_v2si): Likewise.
669 (vec_perm_const<VEC>): New.
671 2011-12-20 Richard Henderson <rth@redhat.com>
673 * tree-vect-generic.c (expand_vector_operations_1): Correct tests
674 for vector types -- use the type not the mode. Fix optab selection
675 for vector shifts by a scalar. Handle over-large integer modes
678 2011-12-20 Richard Henderson <rth@redhat.com>
680 * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform
681 post-reload splitting.
683 * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2.
684 * config/arm/arm.c (arm_select_cc_mode): Use it.
686 2011-12-20 Richard Sandiford <rdsandiford@googlemail.com>
688 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
689 handling of signedness differences to integer types. Only build
690 a new optype if type1 isn't correct.
692 2011-12-20 Vladimir Makarov <vmakarov@redhat.com>
695 * ira-costs.c (find_costs_and_classes): Prefer registers even
696 if the memory cost is the same.
698 2011-12-20 Joseph Myers <joseph@codesourcery.com>
700 * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)
701 (finish_struct): Refer to C11 in comments. Use flag_isoc11.
702 * c-parser.c (c_parser_static_assert_declaration)
703 (c_parser_static_assert_declaration_no_semi, c_parser_declspecs)
704 (c_parser_alignas_specifier, c_parser_alignof_expression): Refer
705 to C11 in comments. Use flag_isoc11.
706 * c-typeck.c (comptypes_check_different_types): Refer to C11 in
708 * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x.
709 * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference
710 to -std=c1x and -std=gnu1x.
711 * doc/extend.texi (Inline, Alternate Keywords, Other Builtins)
712 (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11
713 instead of -std=c1x and C1X.
714 * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in
715 preference to -std=c1x.
716 (-std=gnu11): Document in preference to -std=gnu1x.
717 * doc/standards.texi: Document C11 instead of C1X. Document C11
718 as actual standard. Document headers required from freestanding
720 * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >=
721 201112L for C11. Update comments to refer to C11.
723 2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
725 * configure: Regenerate.
727 2011-12-20 Bernd Schmidt <bernds@codesourcery.com>
730 * expr.c (store_field): Avoid a direct store if the mode is larger
731 than the size of the bit field.
732 * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
733 treat non-volatile bit fields like volatile ones.
734 * toplev.c (process_options): Disallow combination of
735 -fstrict-volatile-bitfields and ABI versions less than 2.
736 * config/arm/arm.c (arm_option_override): Don't enable
737 flag_strict_volatile_bitfields if the ABI version is less than 2.
738 * config/h8300/h8300.c (h8300_option_override): Likewise.
739 * config/rx/rx.c (rx_option_override): Likewise.
740 * config/m32c/m32c.c (m32c_option_override): Likewise.
741 * config/sh/sh.c (sh_option_override): Likewise.
743 2011-12-20 Richard Guenther <rguenther@suse.de>
746 * dwarf2out.c (modified_type_die): When the type variant
747 chain is corrupt use the types name, if available, instead
750 2011-12-20 Tristan Gingold <gingold@adacore.com>
752 * config/alpha/alpha.c (alpha_start_function): Adjust condition to
753 create VMS trampoline entry point.
755 2011-12-19 Richard Sandiford <rdsandiford@googlemail.com>
757 PR rtl-optimization/42839
758 * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND
759 optimization if the source register is already extended.
761 2011-12-19 Richard Sandiford <rdsandiford@googlemail.com>
763 * lower-subreg.c (can_decompose_p): Check every word of a hard
766 2011-12-19 Sandra Loosemore <sandra@codesourcery.com>
767 Tom de Vries <tom@codesourcery.com>
770 * cse.c (find_comparison_args): Detect fixed point and
773 2011-12-19 Aldy Hernandez <aldyh@redhat.com>
776 * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK.
778 2011-12-19 Quentin Neill <quentin.neill@amd.com>
781 * config/i386/driver-i386.c (host_detect_local_cpu): Also check
782 family to distinguish PROCESSOR_ATHLON.
784 2011-12-19 Richard Guenther <rguenther@suse.de>
787 * streamer-hooks.h (struct streamer_hooks): Add second
788 ref_p parameter to write_tree.
789 (stream_write_tree): Adjust.
790 (stream_write_tree_shallow_non_ref): New define.
791 * lto-streamer.h (lto_output_tree): Adjust.
792 * lto-streamer-out.c (lto_output_tree): Likewise.
793 * tree-streamer-out.c (streamer_write_chain): Only
794 force the immediate tree to be streamed as non-reference.
796 2011-12-19 Martin Jambor <mjambor@suse.cz>
798 PR tree-optimization/51583
799 * tree-sra.c (load_assign_lhs_subreplacements): Call
800 force_gimple_operand_gsi when necessary also in case of no
801 corresponding replacement on the RHS.
803 2011-12-19 Jakub Jelinek <jakub@redhat.com>
805 * gimple.h (gimplify_seq_add_stmt): Rename to...
806 (gimple_seq_add_stmt_without_update): ... this.
807 * gimplify.c (gimplify_seq_add_stmt): Rename to...
808 (gimple_seq_add_stmt_without_update): ... this.
809 (gimplify_seq_add_stmt): New inline wrapper for it.
810 * tree-vect-patterns.c (append_pattern_def_seq): Use
811 gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.
813 PR tree-optimization/51596
814 * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges
818 PR tree-optimization/51606
819 * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq):
820 New inline functions.
821 (vect_recog_over_widening_pattern,
822 vect_recog_vector_vector_shift_pattern,
823 vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern,
824 adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them.
826 2011-12-19 Richard Guenther <rguenther@suse.de>
829 * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL
831 (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS.
832 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do
833 not stream TREE_CHAIN.
834 (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
835 using streamer_write_chain.
836 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
837 Do not stream TREE_CHAIN.
838 (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
839 using streamer_read_chain.
840 * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs.
841 * gimple.c (gimple_canonical_types_compatible_p): Properly
842 handle trailing non-FIELD_DECLs in TYPE_FIELDS.
844 2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
846 * configure: Regenerate.
848 2011-12-19 Bernd Schmidt <bernds@codesourcery.com>
850 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for
851 partial integer modes.
853 2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
856 * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define.
857 * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS.
858 * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 ||
861 2011-12-18 Anatoly Sokolov <aesok@post.ru>
863 * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
864 LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP,
865 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
866 * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
867 (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg,
868 ia64_legitimate_address_disp, ia64_legitimate_address_p): New
871 2011-12-17 Tom de Vries <tom@codesourcery.com>
873 PR tree-optimization/51491
874 * tree-ssa-ccp.c (insert_clobber_before_stack_restore)
875 (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function.
876 (ccp_fold_stmt): Use insert_clobbers_for_var after a successful
877 fold_builtin_alloca_with_align.
878 (ccp_visit_stmt): Calculate and free dominator info.
880 2011-12-16 Eric Botcazou <ebotcazou@adacore.com>
882 * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
883 (frame_blockage): New expander.
884 (frame_blockage<P:mode>): New instruction.
885 * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
886 instructions establishing the frame isn't atomic, emit frame blockage.
888 2011-12-16 Tristan Gingold <gingold@adacore.com>
890 * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define.
892 2011-12-16 Tristan Gingold <gingold@adacore.com>
894 * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias.
895 (alpha_write_one_linkage): Use assemble_name to emit linkage name.
897 2011-12-16 Tristan Gingold <gingold@adacore.com>
899 * config/vms/t-vms (vms.o, vms-c.o): Force output filename.
901 2011-12-16 Tristan Gingold <gingold@adacore.com>
903 * config/vms/vms.c (VMS_CRTL_GLOBAL): Define.
904 (vms_patch_builtins): Handle.
905 * config/vms/vms-crtlmap.map: Add an entry for environ.
907 2011-12-16 Jakub Jelinek <jakub@redhat.com>
910 * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes
911 other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND.
913 PR tree-optimization/51576
914 * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt
915 even if fold_stmt didn't change anything.
917 2011-12-16 Richard Guenther <rguenther@suse.de>
920 * dwarf2out.c (gen_type_die_with_usage): Use the context of
921 the TYPE_DECL as well if it is file-scope.
923 2011-12-15 DJ Delorie <dj@redhat.com>
925 * config/rl78/rl78.md (return): Rename to rl78_return.
926 * config/rl78/rl78.c (rl78_expand_epilogue): Use new name.
927 (rl78_expand_eh_epilogue): Use new name.
928 (rl78_calculate_death_notes): Likewise.
930 2011-12-15 Jakub Jelinek <jakub@redhat.com>
932 * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt
933 field, add pattern_def_seq.
934 (STMT_VINFO_PATTERN_DEF_STMT): Remove.
935 (STMT_VINFO_PATTERN_DEF_SEQ): Define.
936 (NUM_PATTERNS): Bump to 10.
937 * tree-vect-loop.c (vect_determine_vectorization_factor,
938 vect_transform_loop): Adjust for pattern def changing from a single
939 gimple stmt to gimple_seq.
940 * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info,
941 free_stmt_vec_info): Likewise.
942 * tree-vect-patterns.c (vect_recog_over_widening_pattern,
943 vect_recog_vector_vector_shift_pattern,
944 vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
945 adjust_bool_pattern, vect_mark_pattern_stmts): Likewise.
946 (vect_recog_sdivmod_pow2_pattern): New function.
947 (vect_vect_recog_func_ptrs): Add it.
949 * config/i386/sse.md (vcond<V_256:mode><VI_256:mode>,
950 vcond<V_128:mode><VI124_128:mode>, vcond<VI8F_128:mode>v2di):
951 Use general_operand instead of nonimmediate_operand for
952 operand 5 and no predicate for operands 1 and 2.
953 * config/i386/i386.c (ix86_expand_int_vcond): Optimize
954 x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic
957 2011-12-15 Georg-Johann Lay <avr@gjlay.de>
959 * config/avr/avr-protos.h (print_operand): Remove.
960 (print_operand_address): Remove.
961 * config/avr/avr.h (PRINT_OPERAND): Remove.
962 (PRINT_OPERAND_ADDRESS): Remove.
963 (PRINT_OPERAND_PUNCT_VALID_P): Remove.
964 * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define.
965 (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
966 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
967 (print_operand_address): Rename to...
968 (avr_print_operand_address): ...this and make static.
969 (print_operand): Rename to...
970 (avr_print_operand): ...this and make static.
971 (avr_print_operand_punct_valid_p): New static function.
973 2011-12-15 Andreas Tobler <andreast@fgznet.ch>
975 * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
977 2011-12-15 Jakub Jelinek <jakub@redhat.com>
980 * c-parser.c (c_parser_omp_clause_num_threads,
981 c_parser_omp_clause_schedule): Call mark_exp_read.
983 2011-12-15 Romain Geissler <romain.geissler@gmail.com>
985 * builtins.def (BUILT_IN_STPNCPY_CHK): New definition.
986 * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning):
987 Add BUILT_IN_STPNCPY_CHK case.
988 * gimple-fold.c (gimple_fold_builtin): Likewise.
989 * tree-object-size.c (pass_through_call): Likewise.
990 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
991 call_may_clobber_ref_p_1): Likewise.
992 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
993 find_func_clobbers): Likewise.
994 * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk
995 * builtins.c (fold_builtin_strncpy_chk): Likewise.
996 Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is
999 2011-12-15 Richard Guenther <rguenther@suse.de>
1002 * gimple.c (compare_type_names_p): Also compare the TREE_CODE.
1003 (iterative_hash_name): Also hash the TREE_CODE.
1004 (gimple_types_compatible_p_1): For types with a TYPE_DECL
1005 name and a type DECL_CONTEXT recurse to that type.
1006 (iterative_hash_gimple_type): Likewise.
1008 2011-12-15 Iain Sandoe <iains@gcc.gnu.org>
1010 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move update of
1011 VRSave mask to save_world() when that is in use.
1013 2011-12-15 Richard Guenther <rguenther@suse.de>
1015 * lto-wrapper.c (run_gcc): In non-parallel mode remove
1016 ltrans inputs immediately after processing them. In parallel
1017 mode truncate the ltrans inputs in the make rule that processes
1018 them if temporary files are not to be preserved.
1020 2011-12-15 Anatoly Sokolov <aesok@post.ru>
1022 * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1023 * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost):
1025 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
1027 2011-12-15 Richard Guenther <rguenther@suse.de>
1030 * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
1031 STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
1033 (TREE_ASM_WRITTEN): Update documentation to mention its use
1034 on TYPE_DECLs from debug info generation.
1035 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
1036 TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
1039 2011-12-15 Georg-Johann Lay <avr@gjlay.de>
1042 * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
1043 (avr_prologue_setup_frame): Ditto.
1045 2011-12-15 Jakub Jelinek <jakub@redhat.com>
1048 * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
1049 !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
1051 2012-12-15 Richard Guenther <rguenther@suse.de>
1055 * lto-streamer-out.c (tree_is_indexable): Exclude block-local
1056 extern declarations.
1060 * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
1061 VAR_DECLs and FUNCTION_DECLs locally.
1063 2011-12-14 Richard Henderson <rth@redhat.com>
1065 * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
1066 (*compare_negsi_si, *compare_addsi2_op0): Likewise.
1067 (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
1068 (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
1070 2011-12-14 Richard Guenther <rguenther@suse.de>
1072 * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
1073 propagating all kinds of constants.
1075 2011-12-14 Richard Guenther <rguenther@suse.de>
1078 * lto-streamer-in.c (lto_read_body): Fixup local types
1079 TYPE_CANONICAL and variant chain.
1081 2011-12-14 Richard Guenther <rguenther@suse.de>
1083 * tree.c (free_lang_data_in_type): Do not clear fields
1084 dependent on debuginfo level setting.
1085 (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
1086 * tree.h (TYPE_STUB_DECL): Properly check that we access a type.
1088 2011-12-14 Georg-Johann Lay <avr@gjlay.de>
1091 * config/avr/avr.md (mulpsi3): New expander.
1092 (*umulqihipsi3, *umulhiqipsi3): New insns.
1093 (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
1094 (mulsqipsi3, *mulpsi3): New insn-and-splits.
1095 (ashlpsi3): Turn to expander. Move insn code to...
1096 (*ashlpsi3): ...this new insn.
1098 2011-12-14 Richard Guenther <rguenther@suse.de>
1100 * tree-cfg.c (replace_uses_by): Only mark blocks altered
1101 that will make a difference. Only recompute ADDR_EXPR
1102 invariantness if it could possibly have changed. Do so
1103 before folding the statement.
1105 2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
1107 * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
1108 * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
1109 * lto-streamer-in.c (lto_read_body): Likewise.
1110 (lto_input_toplevel_asms): Likewise.
1111 * lto-section-in.c (lto_create_simple_input_block): Likewise.
1112 * ipa-inline-analysis.c (inline_read_section): Likewise.
1113 * ipa-prop.c (ipa_prop_read_section): Likewise.
1115 * df.h (DF_NOTE): Fix typo in comment.
1117 2011-12-13 Aldy Hernandez <aldyh@redhat.com>
1119 * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
1122 2011-12-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1124 * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
1126 2011-12-13 Andrew Pinski <apinski@cavium.com>
1127 Adam Nemet <anemet@caviumnetworks.com>
1129 * config/mips/mips-cpus.def: Add Octeon2.
1130 * config/mips/mips-tables.opt: Regenerate.
1131 * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
1132 * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
1133 * config/mips/octeon.md (octeon_arith): Add Octeon2.
1134 (octeon_condmove): Likewise.
1135 (octeon_load): Rename to ..
1136 (octeon_load_o1): this.
1137 (octeon_load_o2): New reserve.
1138 (octeon_cop_o2): New reserve.
1139 (octeon_store): Match Octeon2 also.
1140 (octeon_brj): Rename to ..
1141 (octeon_brj_o1): this.
1142 (octeon_brj_o2): New reserve.
1143 (octeon_imul3): Rename to ...
1144 (octeon_imul3_o1): this.
1145 (octeon_imul3_o2): New reserve.
1146 (octeon_imul): Rename to ...
1147 (octeon_imul_o1): this.
1148 (octeon_imul_o2): New reserve.
1149 (octeon_mfhilo): Rename to ...
1150 (octeon_mfhilo_o1): This.
1151 (octeon_mfhilo_o2): New reserve.
1152 (octeon_imadd): Rename to ...
1153 (octeon_imadd_o1): this.
1154 (octeon_imadd_o2): New reserve.
1155 (octeon_idiv): Rename to ..
1156 (octeon_idiv_o1): This.
1157 (octeon_idiv_o2_si): New reserve.
1158 (octeon_idiv_o2_di): Likewise.
1159 (octeon_unknown): Match Octeon2 also.
1160 * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
1161 (mips_issue_rate): Octeon2 can issue 2 at a time.
1162 * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
1163 (TARGET_OCTEON2): New define.
1164 (TUNE_OCTEON): Match Octeon2 also.
1166 2011-12-13 Richard Henderson <rth@redhat.com>
1168 * config/sparc/tso.h: New file.
1169 * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
1170 * config/sparc/sparc.c (sparc_option_override): Honor
1171 SUBTARGET_DEFAULT_MEMORY_MODEL.
1172 * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
1174 2011-12-13 Aldy Hernandez <aldyh@redhat.com>
1177 * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
1178 (diagnose_tm_1): Same.
1179 (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
1180 (ipa_tm_scan_irr_function): Return gracefully when no
1181 DECL_STRUCT_FUNCTION.
1182 (ipa_tm_scan_irr_block): Believe the user on TM attributes.
1184 2011-12-13 Martin Jambor <mjambor@suse.cz>
1187 * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
1188 sub-accesses of scalar accesses.
1190 2011-12-13 Martin Jambor <mjambor@suse.cz>
1192 PR tree-optimization/51362
1193 * ipa-cp.c (estimate_local_effects): When estimated size of a
1194 specialized clone is zero, bump it to one.
1196 2011-12-13 Richard Guenther <rguenther@suse.de>
1199 * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
1200 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
1201 Stream DECL_ORIGINAL_TYPE.
1202 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
1205 2011-12-13 Jakub Jelinek <jakub@redhat.com>
1208 2011-12-12 Jakub Jelinek <jakub@redhat.com>
1210 PR tree-optimization/51481
1211 * gimple-fold.c (gimple_fold_call): Call
1212 maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH
1213 edges, but gimple_fold_builtin result can't throw.
1215 2011-12-13 Jakub Jelinek <jakub@redhat.com>
1216 Michael Matz <matz@suse.de>
1218 PR tree-optimization/51117
1219 * tree-eh.c (sink_clobbers): New function.
1220 (execute_lower_eh_dispatch): Call it for BBs ending with
1221 internally throwing RESX.
1222 * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
1223 at the first real instruction.
1225 2011-12-13 Tristan Gingold <gingold@adacore.com>
1227 * final.c (final_scan_insn): Guard the call to begin_epilogue
1230 2011-12-13 Tristan Gingold <gingold@adacore.com>
1232 * vmsdbgout.c (vmsdbgout_write_source_line): New function.
1233 (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
1234 (vmsdbgout_begin_epilogue): Likewise.
1235 (vmsdbgout_end_epilogue): Likewise.
1236 (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
1238 2011-12-13 Richard Guenther <rguenther@suse.de>
1241 * tree-cfg.c (replace_uses_by): Pass proper arguments to
1242 maybe_clean_or_replace_eh_stmt.
1244 2011-12-13 Richard Guenther <rguenther@suse.de>
1246 PR tree-optimization/51519
1247 * ipa-inline.c (edge_badness): Use edge growth in non-guessed
1248 branch probability case as well.
1250 2011-12-13 Revital Eres <revital.eres@linaro.org>
1252 * modulo-sched.c (mark_loop_unsched): Free bbs.
1254 2011-12-12 Jakub Jelinek <jakub@redhat.com>
1256 PR rtl-optimization/51495
1257 * function.c (thread_prologue_and_epilogue_insns): Don't add
1258 to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
1259 from basic blocks not needing prologue.
1261 PR tree-optimization/51481
1262 * gimple-fold.c (gimple_fold_call): Call
1263 maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH
1264 edges, but gimple_fold_builtin result can't throw.
1266 2011-12-12 Vladimir Makarov <vmakarov@redhat.com>
1268 PR rtl-optimization/21617
1269 * ira-color.c (bucket_allocno_compare_func): Don't compare
1270 allocno classes. Compare number of hard registers needed.
1272 2011-12-12 Eric Botcazou <ebotcazou@adacore.com>
1274 PR tree-optimization/50569
1275 * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
1276 in the expression of MODEL instead of just the last one.
1278 2011-12-12 Jakub Jelinek <jakub@redhat.com>
1281 * calls.c (internal_arg_pointer_based_exp_scan): Don't use
1282 VEC_safe_grow_cleared if idx is smaller than VEC_length.
1284 2011-12-12 Richard Sandiford <richard.sandiford@linaro.org>
1287 * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
1288 instead of force_reg. Do nothing if the address is already a
1289 non-virtual pseudo register.
1291 2011-12-12 Torvald Riegel <triegel@redhat.com>
1293 * gimplify.c (voidify_wrapper_expr): Add default handling for
1296 2011-12-12 Torvald Riegel <triegel@redhat.com>
1298 * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
1301 2011-12-12 Iain Sandoe <iains@gcc.gnu.org>
1303 * config/darwin-sections.def (zobj_const_data_section): Fix over-
1304 length section name.
1306 2011-12-11 Richard Henderson <rth@redhat.com>
1308 * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
1309 BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
1311 2011-12-11 Jakub Jelinek <jakub@redhat.com>
1313 PR tree-optimization/51485
1314 * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
1317 2011-12-11 Patrick Marlier <patrick.marlier@gmail.com>
1319 * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
1321 2011-12-10 Richard Henderson <rth@redhat.com>
1323 * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
1324 vec_select + vec_concat.
1325 (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
1326 altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
1327 (vec_perm_constv16qi): New.
1328 (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
1329 vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
1330 vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
1331 * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
1332 vec_select + vec_concat.
1333 (paired_merge10, paired_merge01, paired_merge11): Likewise.
1334 (vec_perm_constv2sf): New.
1335 (vec_interleave_highv2sf, vec_interleave_lowv2sf,
1336 vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
1337 * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
1338 vec_select + vec_concat.
1339 (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
1340 (vec_perm_constv2si): New.
1341 * config/rs6000/vector.md (vec_interleave_highv4sf,
1342 vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
1343 vec_interleave_low<VEC_64>): Remove.
1344 * config/rs6000/vsx.md (VS_double): New mode attribute.
1345 (UNSPEC_VSX_XXPERMDI): Remove.
1346 (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
1347 (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
1348 (vsx_xxpermdi_<VSX_L>): Change to expander.
1349 (vec_perm_const<VSX_D>): New.
1350 (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
1351 * config/rs6000/predicates.md (const_0_to_1_operand): New.
1352 (const_2_to_3_operand): New.
1353 * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
1354 (altivec_expand_vec_perm_const): New.
1355 (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
1356 (rs6000_vectorize_vec_perm_const_ok): New.
1357 (rs6000_do_expand_vec_perm): New.
1358 (rs6000_expand_extract_even, rs6000_expand_interleave): New.
1359 * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
1360 * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
1361 * config/rs6000/rs6000-protos.h: Update.
1363 2011-12-10 Richard Henderson <rth@redhat.com>
1365 * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
1366 CONST_INT to expand_vec_perm as the selector.
1367 * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
1369 2011-12-10 Richard Henderson <rth@redhat.com>
1371 * genmodes.c (struct mode_data): Remove wider_2x member.
1372 (blank_mode): Adjust initializer.
1373 (calc_wider_mode): Use XALLOCAVEC.
1374 (emit_move_wider): Select double-width same-element vectors for
1376 * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
1377 * config/i386/i386.c (doublesize_vector_mode): Remove.
1378 (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
1380 2011-12-10 Joern Rennecke <joern.rennecke@embecosm.com>
1382 * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
1383 (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
1384 (USE_STORE_POST_DECREMENT): Likewise.
1386 * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
1388 (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO.
1389 (DWARF_FRAME_RETURN_COLUMN): New macro.
1391 * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
1392 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
1393 Split "timer" value into "timer0" and "timer1".
1394 Handle page_miss, message and wand. Don't handle static_flag.
1395 Adjust warning text.
1396 (epiphany_start_function): New function.
1397 (epiphany_compute_function_type): Split "timer" value into "timer0"
1398 and "timer1". Handle page_miss, message and wand.
1399 Don't handle static_flag.
1400 (epiphany_expand_epilogue): Don't use frame_insn for status / iret
1402 * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
1403 (enum epiphany_function_type):
1404 Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
1405 and EPIPHANY_FUNCTION_TIMER1.
1406 Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
1407 Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
1408 Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
1410 2011-12-10 Nathan Sidwell <nathan@acm.org>
1412 PR gcov-profile/51449
1413 * coverage.c (coverage_end_function): Always process the coverage
1416 2011-12-09 Aldy Hernandez <aldyh@redhat.com>
1419 * tree.c (build_common_builtin_nodes): Do not use TM_PURE
1420 attribute unless language has support for TM.
1421 * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in
1422 the absence of TM builtins.
1424 2011-12-09 Eric Botcazou <ebotcazou@adacore.com>
1426 * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
1427 Also check the TYPE_MODE to recognize useless pointer conversions.
1429 2011-12-09 Jakub Jelinek <jakub@redhat.com>
1431 PR tree-optimization/51117
1432 * tree-eh.c (optimize_clobbers): Don't remove just one
1433 clobber, but all consecutive clobbers before RESX.
1434 Use gimple_clobber_p predicate.
1436 2011-12-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1438 * config/rs6000/rs6000.c (altivec_expand_builtin): Call
1439 expand_call to return a valid funciton instead of return
1440 cosnt0_rtx/NULL_RTX if there was an error with the builtin.
1441 (altivec_expand_ld_builtin): Ditto.
1442 (rs6000_inner_target_options): If VSX is selected as a target
1443 attribute or pragma, enable ALTIVEC also.
1444 (rs6000_pragma_target_parse): Call rs6000_option_override_internal
1445 to do all of the standard processing when switching options,
1446 including redefining appropriate macros.
1448 PR rtl-optimization/51469
1449 * varasm.c (default_binds_local_p_1): If the symbol is a gnu
1450 indirect function, mark the symbol as non-local.
1452 2011-12-09 H.J. Lu <hongjiu.lu@intel.com>
1455 * Makefile.in (errors.o): Restored.
1457 2011-12-09 Richard Guenther <rguenther@suse.de>
1460 * tree.c (free_lang_data_in_decl): Remove freeing conditional
1463 2011-12-09 Joern Rennecke <joern.rennecke@embecosm.com>
1466 * emit-rtl.c (set_dst_reg_note): New function.
1467 * rtl.h (set_dst_reg_note): Declare.
1468 * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
1469 (emit_libcall_block, expand_fix): Likewise.
1470 * function.c (assign_parm_setup_reg, expand_function_start): Likewise.
1471 * expmed.c (expand_mult_const, expand_divmod): Likewise.
1472 * reload1.c (gen_reload): Likewise.
1474 * dse.c (get_stored_val, get_call_args): Use gen_int_mode.
1475 * expmed.c (expand_divmod): Likewise.
1476 * combine.c (simplify_if_then_else): Likewise.
1478 2011-12-09 Kai Tietz <ktietz@redhat.com>
1480 * ira-color.c (print_hard_regs_subforest): Use
1481 HOST_WIDEST_INT_PRINT_DEC instead of %lld.
1482 (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT.
1483 (add_allocno_hard_regs): Change type of argument cost
1485 * ira-conflict.c (build_conflict_bit_table): Replace use
1486 of long-long by HOST_WIDEST_INT.
1488 2011-12-09 Georg-Johann Lay <avr@gjlay.de>
1491 * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use
1492 zero_extract:QIHI instead of zero_extract:HI.
1494 2011-12-09 Jakub Jelinek <jakub@redhat.com>
1495 Andrew Pinski <apinski@cavium.com>
1497 PR tree-optimization/51117
1498 * tree-eh.c (optimize_clobbers): New function.
1499 (execute_lower_eh_dispatch): Call it.
1501 2011-12-09 Richard Guenther <rguenther@suse.de>
1503 PR tree-optimization/51482
1504 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1505 Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors.
1507 2011-12-09 Kai Tietz <ktietz@redhat.com>
1509 * implicit-zee.c (num_realized): Change type to long.
1510 (num_ze_opportunities): Likewise.
1512 2011-12-08 Andrew Pinski <apinski@cavium.com>
1514 * config/mips/mips-cpus.def (octeon+): New CPU.
1515 * config/mips/mips-tables.opt: Regenerate.
1516 * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
1518 2011-12-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1521 * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI.
1522 (struct hashable_expr): Add struct phi field.
1523 (initialize_hash_element): Handle phis; change to use XCNEWVEC.
1524 (hashable_expr_equal_p): Handle phis.
1525 (iterative_hash_hashable_expr): Likewise.
1526 (print_expr_hash_elt): Likewise.
1527 (free_expr_hash_elt): Likewise.
1528 (dom_opt_enter_block): Create equivalences from redundant phis.
1529 (eliminate_redundant_computations): Handle redundant phis.
1530 (lookup_avail_expr): Handle phis.
1532 2011-12-08 Jakub Jelinek <jakub@redhat.com>
1534 PR tree-optimization/51466
1535 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
1538 2011-12-08 Richard Guenther <rguenther@suse.de>
1540 * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts
1541 volatile when processing operands of an ADDR_EXPR.
1542 (get_indirect_ref_operands): Likewise.
1543 (get_tmr_operands): Likewise.
1544 (get_expr_operands): Likewise.
1546 2011-12-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1549 * config/s390/s390.c (s390_mainpool_finish): Emit the jump over
1550 the literal pool as jump insn.
1552 2011-12-08 Richard Guenther <rguenther@suse.de>
1554 PR tree-optimization/49772
1555 * tree-inline.c (optimize_inline_calls): Remove bail out on errors.
1557 2011-12-08 Richard Guenther <rguenther@suse.de>
1560 * lto-streamer-out.c (produce_symtab): Remove asserts.
1562 2011-12-08 Richard Guenther <rguenther@suse.de>
1565 * lto-streamer-out.c (tree_is_indexable): Localize variably
1566 modified types and their FIELD_DECLs.
1568 2011-12-08 Eric Botcazou <ebotcazou@adacore.com>
1570 PR tree-optimization/51315
1571 * tree.h (get_object_or_type_alignment): Declare.
1572 * expr.c (get_object_or_type_alignment): Move to...
1573 * builtins.c (get_object_or_type_alignment): ...here. Add assertion.
1574 * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
1575 (tree_non_aligned_mem_p): ...this. Add ALIGN parameter. Look into
1576 MEM_REFs and use get_object_or_type_alignment for them.
1577 (build_accesses_from_assign): Adjust for above change.
1578 (access_precludes_ipa_sra_p): Likewise.
1580 2011-12-08 Richard Guenther <rguenther@suse.de>
1583 * lto-streamer-out.c (tree_is_indexable): Exclude block-local
1584 extern declarations.
1586 2011-12-07 Andrew Pinski <apinski@cavium.com>
1589 * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for
1592 2011-12-07 Richard Guenther <rguenther@suse.de>
1594 PR tree-optimization/50823
1595 * ipa-inline.c (edge_badness): Do not account for the number of
1598 2011-12-07 Martin Jambor <mjambor@suse.cz>
1600 PR tree-optimization/50744
1601 * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive,
1602 compute evaluation in HOST_WIDEST_INT.
1603 (safe_add): New function
1604 (propagate_effects): Use safe_add to accumulate effects.
1606 2011-12-06 Joel Sherrill <joel.sherrill@oarcorp.com>
1608 * config/rs6000/rtems.h: Switch to using global_options_set
1609 in SUBSUBTARGET_OVERRIDE_OPTIONS.
1611 2011-12-06 David S. Miller <davem@davemloft.net>
1613 * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection.
1615 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1617 * config/avr/avr.c (avr_file_start): Fix missing ,
1619 2011-12-06 Jakub Jelinek <jakub@redhat.com>
1622 * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
1625 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1627 Forward-port from gcc-4_6-branch r181936 2011-12-02.
1628 * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and
1629 AT86RF401 have a 16-bit SP (their manual is bogus).
1631 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1633 Forward-port from gcc-4_6-branch r181936 2011-12-02.
1636 * config/avr/avr.md (movhi_sp_r): Set insn condition to
1638 * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in
1639 %B0,__SP_H__" if AVR_HAVE_8BIT_SP.
1640 (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.
1642 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1646 * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1,
1647 ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4,
1648 ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum.
1649 (avr_addrspace_t): New typedef.
1650 (avr_addrspace): New declaration.
1651 * config/avr/avr-c.c (avr_toupper): New static function.
1652 (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use
1653 avr_addrspace to get address space information.
1654 * config/avr/avr.c (avr_addrspace): New variable.
1655 (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
1656 avr_asm_named_section, avr_section_type_flags,
1657 avr_asm_select_section, avr_addr_space_address_mode,
1658 avr_addr_space_convert, avr_emit_movmemhi): Use it.
1659 (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
1660 (avr_pgm_segment): Remove.
1662 2011-12-06 Richard Guenther <rguenther@suse.de>
1665 * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
1666 quirk adjustjment ...
1667 * passes.c (rest_of_decl_compilation): ... here.
1669 2011-12-06 Richard Guenther <rguenther@suse.de>
1672 * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check
1673 for the fact we do not have virtual operands when not optimizing.
1675 2011-12-06 Richard Guenther <rguenther@suse.de>
1677 PR tree-optimization/51245
1678 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
1680 (vn_reference_lookup_3): Use it. Properly valueize all refs we create.
1682 2011-12-06 Iain Sandoe <iains@gcc.gnu.org>
1684 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
1687 2011-12-06 Richard Guenther <rguenther@suse.de>
1689 PR tree-optimization/51363
1690 * gimple.c (gimple_rhs_has_side_effects): Remove.
1691 * gimple.h (gimple_rhs_has_side_effects): Likewise.
1692 * tree-ssa-dom.c (optimize_stmt): Simplify conditional.
1694 2011-12-06 Alan Modra <amodra@gmail.com>
1697 * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
1698 Do not mark r11 setup as frame-related. Pass correct offset to
1699 rs6000_emit_savres_rtx. Correct out-of-line rs6000_frame_related
1700 arguments. Correct sp_offset. Remove "offset" fudge from
1701 in-line rs6000_frame_related call. Rename misleading variable.
1702 Fix comments and whitespace. Tidy some expressions.
1703 (rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
1704 to r11 in out-of-line case. Correct sp_offset. Pass correct
1705 offset to rs6000_emit_savres_rtx. Rename misleading variable.
1706 Fix comments and whitespace. Tidy some expressions.
1707 (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
1708 adjustment when !saving_GPRs_inline. Correct register mode
1709 used in address calcs.
1710 (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
1711 !restoring_GPRs_inline.
1713 2011-12-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1715 * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
1716 formatting character for vmov.f64 case.
1718 2011-12-05 Jakub Jelinek <jakub@redhat.com>
1720 PR tree-optimization/51396
1721 * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
1722 if MUL_RESULT has zero uses.
1725 * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
1726 for debug info if scope is file_scope.
1729 * c-decl.c (c_finish_incomplete_decl, finish_decl): Call
1730 relayout_decl instead of layout_decl.
1732 2011-12-05 Richard Sandiford <rdsandiford@googlemail.com>
1734 * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
1735 if there is in epilogue.
1737 2011-12-05 Richard Sandiford <rdsandiford@googlemail.com>
1739 * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
1740 to emit_library_call_value.
1741 (expand_atomic_compare_and_swap): Likewise.
1743 2011-12-05 Vladimir Makarov <vmakarov@redhat.com>
1746 * ira-int.h (struct ira_object): Remove add_data.
1747 (OBJECT_ADD_DATA): Remove.
1749 * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
1752 * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
1753 allocno_hard_regs_t, allocno_hard_regs.
1754 (object_hard_regs_node_t, object_hard_regs_node): Rename to
1755 allocno_hard_regs_node_t and allocno_hard_regs_node.
1756 (struct allocno_color_data): Add new member last_process. Move
1757 profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
1758 from object_color_data.
1759 (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove.
1760 (curr_allocno_process): New static variable.
1761 (object_hard_regs_eq, object_hard_regs_htab): Rename to
1762 allocno_hard_regs_eq and allocno_hard_regs_htab.
1763 (init_object_hard_regs, finish_object_hard_regs): Rename to
1764 init_allocno_hard_regs and finish_allocno_hard_regs.
1765 (object_hard_regs_compare, object_hard_regs_node_t): Rename to
1766 allocno_hard_regs_compare and allocno_hard_regs_node_t.
1767 (create_new_object_hard_regs_node): Rename to
1768 create_new_allocno_hard_regs_node.
1769 (add_new_object_hard_regs_node_to_forest): Rename to
1770 add_new_allocno_hard_regs_node_to_forest.
1771 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
1772 Rename to add_allocno_hard_regs_to_forest and
1773 collect_allocno_hard_regs_cover.
1774 (setup_object_hard_regs_nodes_parent): Rename to
1775 setup_allocno_hard_regs_nodes_parent.
1776 (remove_unused_object_hard_regs_nodes): Rename to
1777 remove_unused_allocno_hard_regs_nodes.
1778 (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
1779 Rename to enumerate_allocno_hard_regs_nodes and
1780 allocno_hard_regs_nodes_num.
1781 (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
1782 allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
1783 (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
1784 allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
1785 (object_hard_regs_subnode_index): Rename to
1786 allocno_hard_regs_subnode_index.
1787 (setup_object_hard_regs_subnode_index): Rename to
1788 setup_allocno_hard_regs_subnode_index.
1789 (get_object_hard_regs_subnodes_num): Rename to
1790 get_allocno_hard_regs_subnodes_num.
1791 (form_object_hard_regs_nodes_forest): Rename to
1792 form_allocno_hard_regs_nodes_forest.
1793 (finish_object_hard_regs_nodes_tree): Rename to
1794 form_allocno_hard_regs_nodes_forest
1795 (finish_object_hard_regs_nodes_forest): Rename to
1796 finish_allocno_hard_regs_nodes_forest.
1797 (setup_left_conflict_sizes_p): Use allocno data instead of object ones.
1798 Process conflict allocnos once.
1799 (update_left_conflict_sizes_p): Use allocno data instead of object
1800 ones. Change prototype signature.
1801 (empty_profitable_hard_regs): Use allocno data instead of object ones.
1802 (setup_profitable_hard_regs): Ditto.
1803 (get_conflict_profitable_regs): Rename to
1804 get_conflict_and_start_profitable_regs. Use allocno data for
1805 profitable regs calculation.
1806 (check_hard_reg_p): Change prototype signature. Check profitable
1807 regs for allocno not the objects.
1808 (assign_hard_reg): Process conflict allocnos only once for
1809 updating conflict costs.
1810 (setup_allocno_available_regs_num): Use allocno data instead of
1811 object ones. Modify debug output.
1812 (color_pass): Remove initialization and finalization of object
1815 2011-12-05 Kazu Hirata <kazu@codesourcery.com>
1818 * config/arm/arm.md (*minmax_arithsi): Always require the else
1819 clause in the MINUS case.
1821 2011-12-05 Richard Guenther <rguenther@suse.de>
1823 PR tree-optimization/50904
1824 * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
1825 (MEM_ANALYZABLE): New.
1826 (memory_references): Remove clobbered_vops and vop_ref_map
1827 members, add all_refs_stored_in_loop member.
1828 (memref_free): Adjust.
1829 (mem_ref_alloc): Likewise.
1830 (gather_mem_refs_stmt): Do not record clobbers, instead
1831 record refs for unanalyzable stmts.
1832 (gather_mem_refs_in_loops): Do not propagate clobbers.
1833 (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
1834 record_vop_access, get_vop_accesses, get_vop_stores,
1835 add_vop_ref_mapping): Remove.
1836 (create_vop_ref_mapping_loop): Adjust to simply record all stores.
1837 (analyze_memory_references): Adjust.
1838 (refs_independent_p): Check for not analyzable refs.
1839 (can_sm_ref_p): Likewise.
1840 (ref_indep_loop_p_1): Simplify.
1841 (tree_ssa_lim_finalize): Adjust.
1843 * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
1844 rather than magic constants. Assign zero cost to PAREN_EXPR
1845 and SSA_NAME copies. Assign cost proportional to the vector
1846 size for vector constructors.
1848 2011-12-05 Richard Guenther <rguenther@suse.de>
1850 * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
1851 * tree-ssa-alias.c (ao_ref_init): Initialize it.
1852 (ao_ref_init_from_ptr_and_size): Likewise.
1853 (refs_may_alias_p_1): Two volatile accesses conflict.
1854 (ref_maybe_used_by_call_p_1): Likewise.
1855 (call_may_clobber_ref_p_1): Likewise.
1856 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
1859 2011-12-05 Richard Guenther <rguenther@suse.de>
1861 * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA
1862 names. Remove SSA operand checking, call verify_ssa_operands.
1863 * tree-ssa-operands.h (verify_ssa_operands): Declare.
1864 * tree-ssa-operands.c (verify_ssa_operands): New function.
1866 2011-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1868 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
1869 * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
1870 * config/arm/constraints.md ("Dt"): New constraint.
1871 * config/arm/predicates.md
1872 (const_double_vcvt_power_of_two_reciprocal): New.
1873 * config/arm/vfp.md (FCVTI32typename): New.
1874 (FCVT): New iterator.
1875 (*combine_vcvt_f32_<FCVTI32typename>): New.
1876 (*combine_vcvt_f64_<FCVTI32typename>): New.
1878 2011-12-05 Richard Guenther <rguenther@suse.de>
1880 * cgraph.c (cgraph_create_edge_1): Initialize
1881 call_stmt_cannot_inline_p from the stmt if possible.
1882 (cgraph_make_edge_direct): Likewise.
1883 * gimple-streamer-in.c (input_gimple_stmt): Do not
1884 call gimple_call_set_cannot_inline.
1885 * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values.
1886 (gimple_call_set_cannot_inline): Remove.
1887 (gimple_call_cannot_inline_p): Likewise.
1888 * ipa-inline-analysis.c (initialize_inline_failed): Look
1889 at the edge call_stmt_cannot_inline_p flag.
1890 * ipa-inline.c (can_inline_edge_p): Likewise.
1891 (early_inliner): Only update the edge flag.
1892 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
1893 (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
1894 * cgraphunit.c (assemble_thunk): Likewise.
1895 * gimple-fold.c (gimple_fold_call): Likewise.
1897 * tree.h (CALL_CANNOT_INLINE_P): Remove.
1898 * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
1899 * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
1900 alloca calls inline.
1901 * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
1902 * gimple.c (gimple_build_call_from_tree): Do not read
1903 CALL_CANNOT_INLINE_P.
1904 * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
1906 2011-12-05 Jakub Jelinek <jakub@redhat.com>
1907 Eric Botcazou <ebotcazou@adacore.com>
1911 * calls.c (internal_arg_pointer_exp_state): New variable.
1912 (internal_arg_pointer_based_exp_1,
1913 internal_arg_pointer_exp_scan): New functions.
1914 (internal_arg_pointer_based_exp): New function.
1915 (mem_overlaps_already_clobbered_arg_p): Use it.
1916 (expand_call): Free internal_arg_pointer_exp_state.cache vector
1917 and clear internal_arg_pointer_exp_state.scan_start.
1919 2011-12-04 Kaz Kojima <kkojima@gcc.gnu.org>
1921 * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
1922 * config/sh/sync.md: New file.
1923 * config/sh/sh.md: Include sync.md.
1924 * config/sh/sh.opt (msoft-atomic): New option.
1925 * doc/invoke.texi (SH Options): Document it.
1927 2011-12-04 Nathan Sidwell <nathan@acm.org>
1929 * gcov-io.h (struct gcov_info): Replace trailing array with
1931 * profile.c (branch_prob): Only call renamed
1932 coverage_begin_function once.
1933 * coverage.h (coverage_begin_output): Rename to ...
1934 (coverage_begin_function): ... here.
1935 * coverage.c (struct function_list): Rename to ...
1936 (struct coverage_data): ... this. Update all uses.
1937 (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals.
1938 (bbg_file_opened, bbg_function_announced): Remove.
1939 (get_coverage_counts): Adjust message.
1940 (coverage_begin_ouput): Rename to ...
1941 (coverage_begin_function): ... here. Move file opening to
1942 coverage_init. Adjust for being called only once.
1943 (coverage_end_function): Remove bbg file and inhibit further
1944 output here on error.
1945 (build_info_type): Adjust for change to pointer to array.
1946 (build_info): Receive array of function pointers and adjust.
1947 (create_coverage): Break into ...
1948 (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
1949 ... these, and adjust.
1950 (coverage_init): Open the notes file here. Tidy.
1951 (coverage_finish): Call coverage_obj_init etc.
1953 2011-12-04 Ira Rosen <ira.rosen@linaro.org>
1956 * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
1957 phi nodes for outer loop in case of double reduction.
1959 2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
1962 * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
1963 parameter as long long.
1965 2011-12-04 Richard Sandiford <rdsandiford@googlemail.com>
1968 * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
1969 in the external names.
1971 2011-12-03 Jack Howarth <howarth@bromo.med.uc.edu>
1973 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
1974 non-PIC code when targeting 10.7 or later.
1976 2011-12-03 Iain Sandoe <iains@gcc.gnu.org>
1978 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
1980 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
1981 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
1983 2011-12-03 Jakub Jelinek <jakub@redhat.com>
1985 * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
1986 VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
1987 VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
1988 (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
1989 VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
1990 and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
1993 * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
1994 vars that aren't referenced.
1995 (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
1996 of unreferenced local vars.
1997 * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
1998 TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
2000 2011-12-03 Anatoly Sokolov <aesok@post.ru>
2002 * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
2003 * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
2004 * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2005 (arm_libcall_value_1, arm_function_value_regno_p): New function.
2006 (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
2007 (aapcs_libcall_value): Make static.
2008 (arm_libcall_value): Add static qualifier.
2010 2011-12-02 Jakub Jelinek <jakub@redhat.com>
2013 * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
2014 V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
2015 permutation instead of extract even permutation.
2017 2011-12-02 Nathan Sidwell <nathan@acm.org>
2019 * gcov.c (struct arc_info): Add is_throw field.
2020 (struct (block_info): Add exceptional field, reduce flags size to
2022 (struct function_info): Add has_catch field.
2023 (struct line_info): Add unexceptional field.
2024 (process_file): Call find_exception_blocks if necessary.
2025 (read_graph_file): Adjust. Note if an exceptional edge is seen.
2026 (find_exception_blocks): New.
2027 (add_line_counts): Set line's unexceptional flag if not exceptional.
2028 (output_branch_count): Note exceptional arcs, lines and blocks.
2029 * gcov-dump.c (tag_arcs): Decode arc flags.
2030 * doc/gcov.texi: Document '=====' lines.
2032 2011-12-02 Anatoly Sokolov <aesok@post.ru>
2034 * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2035 PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
2036 * config/ia64/ia64-protos.h (ia64_print_operand,
2037 ia64_print_operand_address): Remove.
2038 * config/ia64/ia64.c (TARGET_PRINT_OPERAND,
2039 TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
2041 (ia64_print_operand_punct_valid_p): New function.
2042 (ia64_print_operand, ia64_print_operand_address): Make static.
2044 2011-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2047 * config/rs6000/rs6000.c (def_builtin): Use the correct field to
2048 figure out the function's attributes.
2049 (struct builtin_description): Mark mask field as const since we no
2050 longer need to modify it for SPE and PAIRED builtins.
2052 2011-12-02 Joseph Myers <joseph@codesourcery.com>
2056 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2059 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2060 zero extend count after the correction to it is done.
2061 (doloop_optimize): Update call to doloop_modify, don't zero extend
2064 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2067 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2069 (doloop_optimize): Update call to doloop_modify.
2071 2011-12-02 Richard Guenther <rguenther@suse.de>
2074 * ipa.c (varpool_externally_visible_p): Register variables
2075 are always externally visible.
2077 2011-12-02 Sameera Deshpande <sameera.deshpande@arm.com>
2079 * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
2082 2011-12-02 Martin Jambor <mjambor@suse.cz>
2084 PR tree-optimization/50622
2085 * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
2086 if both lacc and racc are grp_partial_lhs.
2088 2011-12-01 Kaz Kojima <kkojima@gcc.gnu.org>
2091 * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
2093 (shl_sext_kind): Likewise.
2094 * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
2095 * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
2096 (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
2097 (ashlsi3): Likewise.
2098 (ashrsi3_d): Likewise.
2099 (lshrsi3_d): Likewise.
2100 (lshrsi3): Likewise.
2102 2011-12-01 Diego Novillo <dnovillo@google.com>
2105 * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
2106 use the statement's inline indicator instead of E's.
2107 Remove consistency check.
2109 2011-12-01 Diego Novillo <dnovillo@google.com>
2114 2011-11-29 Diego Novillo <dnovillo@google.com>
2116 * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
2117 Update field call_stmt_cannot_inline_p from call
2118 graph edge, if needed.
2119 * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2121 2011-12-01 Nathan Sidwell <nathan@acm.org>
2123 PR gcov-profile/51113
2124 * coverage.c (build_var): Keep coverage variables static.
2126 2011-12-01 Jakub Jelinek <jakub@redhat.com>
2128 PR tree-optimization/51356
2129 * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
2130 vectype doesn't have VECTOR_MODE_P.
2133 * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
2134 as unnecessary a store to a variable with gimple reg type.
2135 * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
2136 on local unreferenced variables.
2137 * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
2138 for !target_for_debug_bind variables.
2140 2011-12-01 Patrick Marlier <patrick.marlier@gmail.com>
2143 * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
2144 * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
2145 * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
2147 2011-12-01 Andrew Pinski <apinski@cavium.com>
2150 * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
2153 2011-12-01 Jakub Jelinek <jakub@redhat.com>
2155 PR tree-optimization/51246
2156 * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
2158 PR rtl-optimization/51014
2159 * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
2160 both from bb and orig_bb.
2162 2011-12-01 Joern Rennecke <joern.rennecke@embecosm.com>
2164 PR tree-optimization/50802
2165 * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
2166 considering what happens to ranges during sign changes and/or
2167 intermediate narrowing conversions.
2169 2011-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2172 * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
2173 (in_nullified_branch_delay): Likewise.
2174 (in_call_delay): Likewise.
2176 2011-11-30 Richard Henderson <rth@redhat.com>
2178 * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
2179 boolean return is true.
2181 2011-11-30 Jakub Jelinek <jakub@redhat.com>
2183 PR rtl-optimization/51044
2184 * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
2185 rather than just insn body.
2188 * function.c (thread_prologue_and_epilogue_insns): If
2189 stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
2193 * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
2194 avoid creating duplicate edges here.
2195 (cleanup_empty_eh_unsplit): And remove it in the caller.
2197 2011-11-30 Andrew Pinski <apinski@cavium.com>
2200 * c-parser.c (c_parser_postfix_expression): Check groktypename results
2201 before looking at the main variant.
2203 2011-11-30 Jakub Jelinek <jakub@redhat.com>
2205 PR rtl-optimization/48721
2206 * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
2207 reg_pending_barrier to TRUE_BARRIER.
2209 PR rtl-optimization/48721
2210 * sched-ebb.c (begin_move_insn): Insert empty unreachable
2211 block after BARRIER if insn is followed by it.
2213 2011-11-30 Richard Henderson <rth@redhat.com>
2215 * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
2216 * config/sparc/sparc.opt (mmemory-model=): New option.
2217 * doc/invoke.texi (Sparc Options): Document it.
2218 * config/sparc/sparc.c (sparc_option_override): Provide default
2219 for sparc_memory_model.
2220 (sparc_emit_membar_for_model): Omit barrier combinations that are
2221 implied by the memory model.
2223 2011-11-30 Richard Henderson <rth@redhat.com>
2225 * config/sparc/sync.md (I124MODE): New mode iterator.
2226 (memory_barrier): Remove.
2227 (atomic_exchangesi): New.
2228 (swapsi): Rename from *swapsi.
2229 (atomic_test_and_set<I124MODE>): New.
2230 (ldstubqi): Rename from *ldstubqi, merge with expander.
2231 (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
2232 (sync_lock_test_and_setsi): Remove.
2233 (sync_lock_test_and_set<I12MODE>): Remove.
2235 2011-11-30 Richard Henderson <rth@redhat.com>
2237 * config/sparc/constraints.md ("w"): New.
2238 * config/sparc/predicates.md (mem_noofs_operand): New.
2239 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
2240 Generate the boolean result of the atomic_compare_exchange.
2241 (sparc_expand_compare_and_swap): New.
2242 * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
2243 (atomic_compare_and_swap<I48MODE>_1): Rename from
2244 *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
2245 (*atomic_compare_and_swapdi_v8plus): Rename from
2246 *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
2247 (sync_compare_and_swap<I12MODE>): Remove.
2248 (sync_compare_and_swap<I48MODE>): Remove.
2250 2011-11-30 Richard Henderson <rth@redhat.com>
2252 * config/sparc/predicates.md (register_or_v9_zero_operand): New.
2253 * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
2254 * config/sparc/sync.md (atomic_load<I>): New.
2255 (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
2257 2011-11-30 Richard Henderson <rth@redhat.com>
2259 * config/sparc/predicates.md (zero_or_v7_operand): New.
2260 * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
2261 * config/sparc/sparc-protos.h: Update.
2262 * config/sparc/sync.md (mem_thread_fence): New.
2263 (memory_barrier): Use sparc_emit_membar_for_model.
2264 (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
2265 (*membar_v8): Accept and ignore the membar mask.
2266 (*membar): Accept and print the membar mask.
2268 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2270 * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
2271 * config/arm/arm.md (mul64): New attribute.
2272 (generic_sched): Cortex-A15 is not scheduled generically.
2273 (cortex-a15.md): Include.
2274 * config/arm/cortex-a15.md: New machine description.
2275 * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
2277 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2279 * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
2281 2011-11-30 Iain Sandoe <iains@gcc.gnu.org>
2283 * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
2284 * doc/tm.texi: Regenerate.
2285 * flags.h (flag_next_runtime): Remove references.
2286 * toplev.c: Likewise.
2287 * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
2288 * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
2289 * config/darwin.c (darwin_override_options): Provide default
2290 Objective-C abi settings and target conflict checks.
2291 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
2292 code. Adjust indenting.
2294 2011-11-29 Joseph Myers <joseph@codesourcery.com>
2296 * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
2297 (REG_CLASS_CONTENTS): Add NON_SP_REGS.
2298 (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
2299 * config/sh/constraints.md (u): New constraint.
2301 2011-11-29 Oleg Endo <oleg.endo@t-online.de>
2304 * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
2305 register is being loaded from a pseudo in memory.
2307 2011-11-29 DJ Delorie <dj@redhat.com>
2309 * config.gcc (rl78-*-elf): New case.
2310 * doc/extend.texi: Add RL78 documentation.
2311 * doc/invoke.texi: Likewise.
2312 * doc/md.texi: Likewise.
2313 * doc/contrib.texi: Add RL78.
2314 * doc/install.texi: Add rl78-*-elf.
2315 * config/rl78: New directory for the Renesas RL78.
2317 2011-11-29 Jakub Jelinek <jakub@redhat.com>
2319 PR tree-optimization/51247
2320 * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
2321 types instead of adding 1 subtract -1 and instead of subtracting 1
2322 add -1 to avoid overflows.
2324 2011-11-29 Andrew MacLeod <amacleod@redhat.com>
2327 * optabs.c (maybe_optimize_fetch_op): New. Look for more optimal
2328 instructions for a FECTH_OP or OP_FECTH sequence.
2329 (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
2331 2011-11-29 Uros Bizjak <ubizjak@gmail.com>
2333 * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
2334 (movdi_via_fpu): Remove.
2335 (loaddi_via_fpu): New insn pattern.
2336 (storedi_via_fpu): Ditto.
2337 (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
2338 (atomic_storedi_fpu): Ditto.
2339 * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
2340 (subst_stack_regs_pat): Handle UNSPEC_STA.
2342 2011-11-29 Uros Bizjak <ubizjak@gmail.com>
2344 * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
2345 allocate scratch memory for alternative 0.
2347 2011-11-29 Michael Meissner <meissner@linux.vnet.ibm.com>
2349 * config/rs6000/rs6000-builtins.def: Completely rewrite builtin
2350 handling to centralize more of the builtins in this file. Change
2351 some builtin enumerations to be more consistant. Use a new mask
2352 to hold the current builtins, including SPE and PAIRED builtins
2353 which no longer are set via target_flags masks. Add
2354 -mdebug=builtin debug support. For power machines, define all
2355 Altivec and VSX buitins when the compiler starts, but don't allow
2356 the use of a builtin unless the appropriate switch is used, or
2357 #pragma GCC target is used to change the options. If the user
2358 uses #pragma GCC target, update the appropriate hardware macros.
2359 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
2360 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
2361 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
2362 (rs6000_define_or_undefine_macro): Ditto.
2363 (rs6000_target_modify_macros): Ditto.
2364 (rs6000_cpu_cpp_builtins): Ditto.
2365 (altivec_overloaded_builtins): Ditto.
2366 (altivec_build_resolved_builtin): Ditto.
2367 * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
2368 (rs6000_builtin_info): Ditto.
2369 (def_builtin): Ditto.
2370 (enable_mask_for_builtins): Ditto.
2371 (DEBUG_FMT_X): Ditto.
2372 (rs6000_debug_reg_global): Ditto.
2373 (rs6000_builtin_mask_calculate): Ditto.
2374 (rs6000_option_override_internal): Ditto.
2375 (rs6000_builtin_conversion): Ditto.
2376 (rs6000_builtin_vectorized_function): Ditto.
2377 (bdesc_3arg): Ditto.
2379 (bdesc_2arg): Ditto.
2380 (builtin_description_predicates): Ditto.
2381 (bdesc_altivec_preds): Ditto.
2382 (bdesc_spe_predicates): Ditto.
2383 (bdesc_spe_evsel): Ditto.
2384 (bdesc_paired_preds): Ditto.
2386 (bdesc_1arg): Ditto.
2387 (rs6000_overloaded_builtin_p): Ditto.
2388 (rs6000_expand_unop_builtin): Ditto.
2389 (bdesc_2arg_spe): Ditto.
2390 (spe_expand_builtin): Ditto.
2391 (rs6000_invalid_builtin): Ditto.
2392 (rs6000_expand_builtin): Ditto.
2393 (rs6000_init_builtins): Ditto.
2394 (spe_init_builtins): Ditto.
2395 (paired_init_builtins): Ditto.
2396 (altivec_init_builtins): Ditto.
2397 (builtin_function_type): Ditto.
2398 (rs6000_common_init_builtins): Ditto.
2399 (rs6000_builtin_reciprocal): Ditto.
2400 (rs6000_builtin_mask_names): Ditto.
2401 (rs6000_pragma_target_parse): Ditto.
2402 (rs6000_function_specific_print): Ditto.
2403 * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
2404 (MASK_DEBUG_ALL): Ditto.
2405 (TARGET_DEBUG_BUILTIN): Ditto.
2406 (TARGET_EXTRA_BUILTINS): Ditto.
2407 (REGISTER_TARGET_PRAGMAS): Ditto.
2408 (enum rs6000_btc): Ditto.
2409 (RS6000_BTC_*): Ditto.
2410 (RS6000_BTM_*): Ditto.
2411 (enum rs6000_builtins): Ditto.
2412 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
2413 (rs6000_target_modify_macros): Ditto.
2414 (rs6000_target_modify_macros_ptr): Ditto.
2416 * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
2417 standard name for converting vector unsigned values to floating
2418 point. Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
2419 is handled by machine independent code.
2420 * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
2421 (rs6000_builtin_conversion): Ditto.
2423 2011-11-29 Dodji Seketeli <dodji@redhat.com>
2425 * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
2426 (maybe_unwind_expanded_macro_loc): Adjust.
2428 2011-11-29 David Edelsohn <dje.gcc@gmail.com>
2429 Aldy Hernandez <aldyh@redhat.com>
2431 * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
2433 (ipa_tm_create_version): Same.
2435 2011-11-29 Bernd Schmidt <bernds@codesourcery.com>
2437 * haifa-sched.c (recompute_todo_spec): Simplify and correct the
2438 code checking for a clobber of a condition register when deciding
2439 whether to predicate.
2441 2011-11-29 Diego Novillo <dnovillo@google.com>
2443 * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
2444 Update field call_stmt_cannot_inline_p from call graph edge, if needed.
2445 * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2447 2011-11-29 Sameera Deshpande <sameera.deshpande@arm.com>
2449 * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
2450 (movdf_soft_insn): Likewise.
2451 * config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
2452 * config/arm/neon.md (neon_mov<mode>): Likewise.
2453 * config/arm/vfp.md (movdi_vfp): Likewise.
2454 (movdi_vfp_cortexa8): Likewise.
2455 (movdf_vfp): Likewise.
2457 2011-11-29 Jakub Jelinek <jakub@redhat.com>
2460 * expr.c (expand_expr_addr_expr_1): Don't call force_operand for
2461 EXPAND_SUM modifier.
2463 2011-11-29 Ira Rosen <ira.rosen@linaro.org>
2465 PR tree-optimization/51301
2466 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
2467 the last statement doesn't convert to a bigger type than the original
2468 type of the computation.
2470 2011-11-28 Richard Henderson <rth@redhat.com>
2472 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
2473 Handle overlap between retval and oldval. Always compute boolval
2476 2011-11-28 Jakub Jelinek <jakub@redhat.com>
2479 * tree-ssa.c (execute_update_addresses_taken): Remove
2480 var ={v} {CLOBBER} stmts instead of rewriting them into
2481 var_N ={v} {CLOBBER}.
2484 * function.c (convert_jumps_to_returns): When redirecting an edge
2485 succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
2487 PR tree-optimization/50078
2488 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
2489 TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
2491 PR tree-optimization/50682
2492 * tree-eh.c (maybe_remove_unreachable_handlers): New function.
2493 * tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
2494 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
2496 2011-11-28 Georg-Johann Lay <avr@gjlay.de>
2498 * doc/extend.texi (AVR Built-in Functions): Add documentation for
2499 __builtin_avr_map8 and __builtin_avr_map16.
2501 * config/avr/avr.md: Document new %t and %T asm output codes.
2502 (define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
2503 (adjust_len): Add map_bits.
2504 (map_bitsqi, map_bitshi): New insns.
2505 * config/avr/avr-protos.h (avr_out_map_bits): New.
2506 * config/avr/avr-protos.c (print_operand): Implement %t and %T.
2507 (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
2508 (avr_double_int_push_digit): New function.
2509 (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
2510 (avr_sig_map, avr_map_hamming_byte): New functions.
2511 (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
2512 avr_out_map_bits): New functions.
2513 (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2514 (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
2515 (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
2516 (avr_expand_builtin): ...and expand them.
2517 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
2518 __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
2520 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2523 * config/mips/mips.c (mips_rtx_costs): Handle baddu.
2525 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2527 * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
2529 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2531 * config/mips/mips-protos.h (mips_emit_binary): Declare.
2532 * config/mips/mips.c (mips_emit_binary): Make global.
2533 (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
2534 (mips_conditional_register_usage): Don't treat LO and HI as
2535 register operands in MIPS16 mode.
2536 (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
2538 * config/mips/predicates.md (muldiv_target_operand): New predicate.
2539 (move_operand): Allow hilo_operand.
2540 * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
2541 target of MIPS16 multiplies, then move it into the target register.
2542 (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
2543 (<u>mulsidi3_32bit_mips16): New expander.
2544 (<u>mulsidi3_32bit): Use muldiv_target_operand.
2545 (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
2546 (<u>mulsidi3_64bit): Require !TARGET_MIPS16. Split into
2547 <u>mulsidi3_64bit_split.
2548 (<u>mulsidi3_64bit_mips16): New expander.
2549 (<u>mulsidi3_64bit_split): Likewise, using expansions from
2550 two previous define_splits.
2551 (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
2552 muldiv_target_operand.
2553 (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
2554 (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
2555 Split into <su>mulsi3_highpart_split.
2556 (<su>mulsi3_highpart_split): New expander.
2557 (<su>muldi3_highpart): Turn into a define_expand.
2558 Use <su>muldi3_highpart_split for MIPS16 code.
2559 (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
2560 Require !TARGET_MIPS16. Split into <su>muldi3_highpart_split.
2561 (<su>muldi3_highpart_split): New expander.
2562 (<u>mulditi3): Explicitly specify LO as the target of MIPS16
2563 multiplies, then move it into the target register.
2564 (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
2565 (divmod<mode>4, udivmod<mode>4): Turn into define_expands.
2566 Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
2567 move LO into operand 0.
2568 (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
2569 from <u>divmod<mode>4. Use muldiv_target_operand.
2570 Require !TARGET_MIPS16. Split into <u>divmod<mode>4_split.
2571 (<u>divmod<mode>4_split): New expander.
2572 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
2573 (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
2575 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2577 * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
2578 and x_operand_reg_set.
2579 (accessible_reg_set, operand_reg_set): New macros.
2580 * reginfo.c (init_reg_sets): Initialize accessible_reg_set and
2582 (saved_accessible_reg_set, saved_operand_reg_set): New variables.
2583 (save_register_info): Save them.
2584 (restore_register_info): Restore them.
2585 (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
2586 Remove NO_REGS registers from operand_reg_set. Treat members
2587 of operand_reg_set as fixed.
2588 * recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
2589 (register_operand, nonmemory_operand): Likewise.
2590 * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
2591 register variables. Check accessible_reg_set and operand_reg_set.
2592 * config/mips/mips.c (mips_conditional_register_usage): Remove
2593 inaccessible register from accessible_reg_set, rather than just
2596 2011-11-27 Gerald Pfeifer <gerald@pfeifer.com>
2598 * config/pa/pa-linux.h (TARGET_GAS): Remove comment.
2600 2011-11-26 Richard Henderson <rth@redhat.com>
2602 * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
2605 2011-11-26 Richard Henderson <rth@redhat.com>
2607 * optabs.c (expand_atomic_fetch_op): Always return result.
2609 * optabs.c (init_sync_libfuncs_1): Include max in iteration.
2611 * omp-low.c (expand_omp_atomic): Assume anything aligned to
2612 BIGGEST_ALIGNMENT is aligned.
2614 2011-11-26 Richard Henderson <rth@redhat.com>
2616 * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
2617 (UNSPECV_TAS_1, UNSPECV_TAS_2): New.
2618 (I): New mode iterator.
2619 (xz): New mode attribute.
2620 * config/m68k/sync.md: New file.
2622 * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
2623 * config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
2625 2011-11-26 Nathan Sidwell <nathan@acm.org>
2627 PR gcov-profile/51297
2628 * gcov.c (main): Allocate initial names and sources arrays.
2629 (find_source): Don't check for null name or source arrays here.
2631 2011-11-26 Jakub Jelinek <jakub@redhat.com>
2633 PR rtl-optimization/49912
2634 * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
2635 when counting n_branch.
2637 2011-11-26 Uros Bizjak <ubizjak@gmail.com>
2639 * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
2641 2011-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
2644 * calls.c (mem_overlaps_already_clobbered_arg_p):
2645 Return false if no outgoing arguments have been stored so far.
2647 2011-11-25 Georg-Johann Lay <avr@gjlay.de>
2649 * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
2651 2011-11-24 Andrew MacLeod <amacleod@redhat.com>
2654 * tree.h (is_builtin_name): No longer external.
2655 * builtins.c (is_builtin_name): Make static.
2656 * varasm.c (incorporeal_function_p): __sync and __atomic external calls
2657 are not incorporeal and may need asm label processing.
2659 2011-11-25 Georg-Johann Lay <avr@gjlay.de>
2662 * config/avr/avr-protos.h (avr_log_t): Add field .builtin.
2663 * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
2664 Don't bypass TARGET_ALL_DEBUG. Print self-info with ?.
2665 (avr_log_vadump): Support %D and %X to print double_int.
2666 (avr_double_int_pop_digit): New static function.
2667 (avr_dump_double_int_hex): New static function.
2669 2011-11-24 Enkovich Ilya <ilya.enkovich@intel.com>
2672 * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
2675 2011-11-24 Andrew MacLeod <amacleod@redhat.com>
2677 * optab.c (maybe_emit_atomic_exchange): New. Try to emit an
2678 atomic_exchange pattern.
2679 (maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange
2680 using __sync_lock_test_and_set.
2681 (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
2682 exchange using a compare_and_swap loop.
2683 (expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set.
2684 (expand_atomic_test_and_set): New. Expand test_and_set operation.
2685 (expand_atomic_exchange): Use new maybe_emit_* functions.
2686 (expand_atomic_store): Use new maybe_emit_* functions.
2687 * builtins.c (expand_builtin_sync_lock_test_and_set): Call
2688 expand_sync_lock_test_and_set routine.
2689 (expand_builtin_atomic_exchange): Remove parameter from call.
2690 (expand_builtin_atomic_clear): Use atomic_clear pattern if present.
2691 (expand_builtin_atomic_test_and_set): Add target and simply call
2692 expand_atomic_test_and_set.
2693 (expand_builtin): Add target to expand_builtin_atomic_test_and_set.
2694 * expr.h (expand_atomic_exchange): Add parameter.
2695 (expand_sync_lock_test_and_set): New prototype.
2696 (expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
2698 2011-11-24 H.J. Lu <hongjiu.lu@intel.com>
2701 * config/i386/i386.h (processor_costs): Revert revision 181357.
2702 * config/i386/i386.c (cost models): Likewise.
2703 (core_cost): Likewise.
2704 (promote_duplicated_reg): Likewise.
2705 (promote_duplicated_reg_to_size): Likewise.
2706 (processor_target): Likewise.
2707 (expand_set_or_movmem_via_loop_with_iter): Likewise.
2708 (expand_set_or_movmem_via_loop): Likewise.
2709 (emit_strset): Likewise.
2710 (expand_movmem_epilogue): Likewise.
2711 (expand_setmem_epilogue): Likewise.
2712 (expand_movmem_prologue): Likewise.
2713 (expand_setmem_prologue): Likewise.
2714 (expand_constant_movmem_prologue): Likewise.
2715 (expand_constant_setmem_prologue): Likewise.
2716 (decide_alg): Likewise.
2717 (decide_alignment): Likewise.
2718 (ix86_expand_movmem): Likewise.
2719 (ix86_expand_setmem): Likewise.
2720 (ix86_slow_unaligned_access): Likewise.
2721 * config/i386/i386.md (strset): Likewise.
2722 * config/i386/sse.md (vec_dupv4si): Likewise.
2723 (vec_dupv2di): Likewise.
2725 2011-11-24 Georg-Johann Lay <avr@gjlay.de>
2727 * config/avr/avr.md (*rotlhi2.15): Set length to 4.
2729 2011-11-24 Razya Ladelsky <razya@il.ibm.com>
2731 * tree-data-ref.c (initialize_data_dependence_relation): Update
2732 comment for the self dependence case.
2733 (compute_self_dependence): Remove.
2734 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
2735 compute_self_dependenc.
2737 2011-11-24 Alan Modra <amodra@gmail.com>
2739 * c-decl.c (warn_if_shadowing): Don't warn if shadowed
2740 identifier is from system header.
2742 2011-11-23 Jakub Jelinek <jakub@redhat.com>
2745 * config/i386/i386.c (decide_alg): Initialize *dynamic_check
2748 2011-11-23 Vladimir Makarov <vmakarov@redhat.com>
2750 PR rtl-optimization/48455
2751 * doc/invoke.texi (-fira-region): Document default values.
2753 * flags-types.h (enum ira_region): Add new value
2754 IRA_REGION_AUTODETECT.
2756 * common.opt (fira-region): Set up initial value to
2757 IRA_REGION_AUTODETECT.
2759 * toplev.c (process_options): Set up flag_ira_region depending on
2762 * ira.c (ira.c): Remove optimize guard for ira_build.
2764 2011-11-23 Chung-Lin Tang <cltang@codesourcery.com>
2766 PR rtl-optimization/50496
2767 * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
2768 only after epilogue is created. Add comments.
2770 2011-11-22 Richard Henderson <rth@redhat.com>
2772 * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
2773 Generate the barrier required for the memory model.
2774 (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
2775 * config/ia64/ia64-protos.h: Update.
2776 * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
2777 (UNSPEC_CMPXCHG_REL): New.
2778 * config/ia64/sync.md (mem_thread_fence): New.
2779 (atomic_load<IMODE>, atomic_store<IMODE>): New.
2780 (atomic_compare_and_swap<IMODE>): New.
2781 (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
2782 (atomic_exchange<IMODE>): New.
2783 (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
2784 (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
2785 (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
2786 (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
2787 (fetchadd_rel_<I48MODE>): New.
2788 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
2789 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
2790 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
2791 (sync_compare_and_swap<IMODE>): Remove.
2792 (sync_lock_release<IMODE>): Remove.
2794 * config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
2795 and UNSPECV_* constants.
2797 2011-11-22 Tom de Vries <tom@codesourcery.com>
2799 PR rtl-optimization/50764
2800 * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
2801 not moved past preceding jump.
2803 2011-11-22 Jeff Law <law@redhat.com>
2805 * doc/contrib.texi: Add entry for David Binderman.
2807 2011-11-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2809 * postreload.c (reload_combine): Mark reg_state as invalid at
2810 volatile insns if there has been a use already.
2812 2011-11-21 Aldy Hernandez <aldyh@redhat.com>
2814 * opts.c (finish_options): Do not fail for -fgnu-tm.
2815 * gimple-streamer-out.c (output_gimple_stmt): Handle
2817 * gimple-streamer-in.c (input_gimple_stmt): Same.
2818 * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
2819 (lto_output_node): Write tm_clone bit.
2821 2011-11-22 Ian Lance Taylor <iant@google.com>
2823 * doc/install.texi (Configuration): Correct doc of
2824 --enable-build-poststage1-with-cxx: it is not experimental.
2826 2011-11-22 Jakub Jelinek <jakub@redhat.com>
2828 PR tree-optimization/51074
2829 * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
2830 handling for BYTES_BIG_ENDIAN.
2831 * optabs.c (can_vec_perm_for_code_p): Likewise.
2833 2011-11-22 Michael Matz <matz@suse.de>
2836 * trans-mem.c (expand_block_tm): Ignore clobbers.
2838 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
2840 * config/darwin.h (ENDFILE_SPEC): New.
2841 (DARWIN_CRT1_SPEC): Add crttms.o.
2842 (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
2843 * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
2845 2011-11-22 Michael Matz <matz@suse.de>
2848 * tree.c (iterative_hash_expr): Remove break after return.
2850 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
2852 * target.def (tm_clone_table_section): New hook.
2853 * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
2854 * doc/tm.texi: Regenerate.
2855 * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
2856 * output.h (default_clone_table_section): New prototype.
2857 * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
2858 * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
2859 * config/darwin.c (darwin_tm_clone_table_section): New.
2861 2011-11-21 Torvald Riegel <triegel@redhat.com>
2863 * trans-mem.c (diagnose_tm_1): Print an expression instead of a
2864 declaration in error messages for indirect calls.
2866 2011-11-21 David S. Miller <davem@davemloft.net>
2868 * config/sparc/sparc.c (sparc_regmode_natural_size): New function
2869 implementing REGMODE_NATURAL_SIZE taking into consideration vector
2871 (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
2872 * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
2873 sparc_modes_tieable_p): Declare.
2874 * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
2875 MODES_TIEABLE_P): Use new helper functions.
2878 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2881 * expmed.c (store_bit_field_1): Use extract_bit_field on big
2882 endian targets if the source cannot be exactly covered by word
2885 2011-11-21 Jakub Jelinek <jakub@redhat.com>
2888 * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
2889 macro instead of XEXP.
2891 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
2893 * configure: Regenerate.
2895 2011-11-21 Georg-Johann Lay <avr@gjlay.de>
2897 * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
2898 must not affect cc0.
2899 * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
2900 register does not change cc0. Same for any constant to ld-register.
2902 2011-11-21 Uros Bizjak <ubizjak@gmail.com>
2904 * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
2905 UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
2906 Move from config/i386/i386.md
2907 (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
2908 * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
2909 UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
2910 UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
2911 UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
2912 UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
2913 UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
2914 UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
2915 UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
2916 UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
2917 UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
2918 UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
2919 UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
2920 (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
2921 UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
2923 * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
2924 UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
2925 (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
2926 UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
2927 (sse2_lfence): Move from config/i386/sse.md.
2928 (*sse2_lfence): Ditto.
2929 (sse_sfence): Ditto.
2930 (*sse_sfence): Ditto.
2931 (sse2_mfence): Ditto.
2932 (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also
2934 (mem_thread_fence): Use mfence_sse2.
2936 2011-11-21 Georg-Johann Lay <avr@gjlay.de>
2938 * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
2939 * config/avr/avr-devices.c: Ditto. And initialize it.
2940 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
2942 * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
2943 (out_movhi_r_mr, out_movhi_mr_r): Remove.
2944 (out_movsi_r_mr, out_movsi_mr_r): Remove.
2945 * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
2946 (*insv.io, *insv.not.io): Ditto.
2947 * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
2948 (print_operand): Implement "%i" to print address as I/O address.
2949 (output_movqi): Clean up call of out_movqi_mr_r.
2950 (output_movhi): Clean up call of out_movhi_mr_r.
2951 (avr_file_start): Use avr_current_arch->sfr_offset instead of
2952 magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
2953 (avr_out_sbxx_branch): Use %i instead of %m-0x20.
2954 (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
2955 (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
2956 (out_shift_with_cnt): Clean up code: Use avr_asm_len.
2957 (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
2958 (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
2959 Clean up call of avr_out_store_psi.
2960 (output_reload_in_const): Don't cut symbols longer than 2 bytes.
2961 (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
2962 try if setting pre-cleared register is advantageous.
2963 (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
2965 2011-11-20 Joey Ye <joey.ye@arm.com>
2967 * expr.c (expand_expr_real_1): Correctly handle strict volatile
2968 bitfield loads smaller than mode size.
2970 2011-11-20 Richard Henderson <rth@redhat.com>
2972 * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
2974 2011-11-20 Uros Bizjak <ubizjak@gmail.com>
2977 * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
2978 patterns for supported mode only.
2981 * config/i386/i386.c (ix86_expand_builtin)
2982 <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
2984 2011-11-20 Uros Bizjak <ubizjak@gmail.com>
2986 * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
2987 (UNSPEC_MOVNTQ): New unspec.
2988 * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
2989 Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
2990 * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
2992 (STORENT_MODE): Add DI and V4DI modes.
2994 2011-11-20 Nathan Sidwell <nathan@acm.org>
2996 PR gcov-profile/51113
2997 * coverage.c (build_var): Propagate visibility for public
2998 decls. Use make_decl_one_only for PIC correctness.
3001 * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
3002 * gcc.misc-tests/gcov-16.c: New.
3003 * gcc.misc-tests/gcov-17.c: New.
3004 * g++.dg/gcov/gcov-8.C: New.
3005 * g++.dg/gcov/gcov-9.C: New.
3006 * g++.dg/gcov/gcov-10.C: New.
3008 2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
3010 PR rtl-optimization/51187
3011 * reorg.c (relax_delay_slots): Do not consider a jump useless if there
3012 is a barrier between the jump and its target label.
3014 2011-11-19 Patrick Marlier <patrick.marlier@gmail.com>
3017 * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
3019 2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
3021 * expmed.c (store_bit_field_1): Revert bogus formatting change.
3023 2011-11-19 Richard Earnshaw <rearnsha@arm.com>
3026 * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
3027 overlap of src and dest operands.
3029 2011-11-19 Iain Sandoe <iains@gcc.gnu.org>
3031 * config/darwin.h (ASM_DEBUG_SPEC): New.
3032 * config/darwin9.h (ASM_DEBUG_SPEC): New.
3034 2011-11-18 Jan Hubicka <jh@suse.cz>
3036 * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
3039 2011-11-18 Anatoly Sokolov <aesok@post.ru>
3041 * config/cris/cris.c (cris_function_value_regno_p): Make static.
3042 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3043 * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
3044 * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
3046 2011-11-18 H.J. Lu <hongjiu.lu@intel.com>
3049 * doc/extend.texi: Document __builtin_ia32_movnti64.
3051 * config/i386/emmintrin.h (_mm_stream_si64): New.
3053 * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
3055 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
3056 (bdesc_special_args): Update __builtin_ia32_movnti. Add
3057 __builtin_ia32_movnti64.
3058 (ix86_expand_special_args_builtin): Handle
3059 VOID_FTYPE_PLONGLONG_LONGLONG.
3061 * config/i386/i386.md (UNSPEC_MOVNTI): New.
3063 * config/i386/sse.md (sse2_movntsi): Renamed to ...
3064 (sse2_movnti<mode>): This.
3066 2011-11-18 Georg-Johann Lay <avr@gjlay.de>
3069 * config/avr/avr.h (base_arch_s): Add field n_segments.
3070 (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
3071 ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
3072 (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
3073 (INIT_EXPANDERS): New define.
3074 * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
3075 (avr_init_expanders): New.
3076 (avr_emit_movmemhi, avr_out_movmem): New.
3077 (avr_xload_libgcc_p): New.
3078 * config/avr/avr-c.c (avr_register_target_pragmas): Register
3079 address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx.
3080 (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
3081 __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
3082 * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
3084 * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
3085 3 bits instead of just 1.
3086 (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
3087 (progmem_section): Change from section to array of sections.
3088 (progmem_section_prefix): New static variable.
3089 (avr_file_start): Print set for __RAMPZ__
3090 (avr_option_override): Move initialization of RTXes from here...
3091 (avr_init_expanders): ...to this new function.
3092 (avr_pgm_segment): New static function.
3093 (avr_decl_pgm_p): Handle error_mark_node.
3094 (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
3095 (avr_out_xload, avr_find_unused_d_reg): New static functions.
3096 (expand_prologue, expand_epilogue): Use rampz_rtx.
3097 (print_operand): Hande CONST_STRING.
3098 (avr_xload_libgcc_p): New static function.
3099 (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
3100 (avr_progmem_p): Return 2 for 24-bit flash address space.
3101 (avr_out_sbxx_branch): Clean-up code from ASn macros.
3102 (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
3103 address and print symbolically.
3104 (avr_asm_named_section, avr_section_type_flags,
3105 avr_encode_section_info, avr_asm_select_section,
3106 avr_addr_space_address_mode, avr_addr_space_pointer_mode,
3107 avr_addr_space_legitimate_address_p, avr_addr_space_convert,
3108 avr_addr_space_legitimize_address): Handle new address spaces.
3109 (avr_output_progmem_section_asm_op): New static function.
3110 (avr_asm_init_sections): Initialize progmem_section[].
3111 (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
3112 (avr_const_address_lo16): New static function.
3113 (avr_assemble_integer): Use it to handle 3-byte integers.
3114 (avr_emit_movmemhi, avr_out_movmem): New functions.
3116 * config/avr/predicates.md (nox_general_operand): Handle new
3118 * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
3119 (adjust_len): Add xload, movmem.
3120 (SP_ADDR): New define_constants.
3121 (isa): Add "lpm", "lpmx", "elpm", "elpmx".
3122 (enabled): Handle them.
3123 (load<mode>_libgcc): New expander.
3124 (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
3125 (xload8_A, xload<mode>_A): New insn-and-splits.
3126 (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
3127 (mov<mode>): Handle new address spaces.
3128 (movmemhi): Rewrite using avr_emit_movmemhi.
3129 (MOVMEM_r_d): New mode attribute.
3130 (movmem_<mode>, movmem_qi_elpm): New insns.
3131 (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
3132 C-code. Use label instead of hard-coded instrunction lengths.
3134 2011-11-18 Martin Jambor <mjambor@suse.cz>
3136 PR tree-optimization/50605
3137 * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
3138 of IPA invariant decls.
3140 2011-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3142 * tree-outof-ssa.c (insert_back_edge_copies): Add call to
3143 mark_dfs_back_edges.
3145 2011-11-18 Iain Sandoe <iains@gcc.gnu.org>
3148 * configure.ac: Remove ranlib special-casing for Darwin.
3149 * configure: Regenerate.
3151 2011-11-18 Uros Bizjak <ubizjak@gmail.com>
3153 PR tree-optimization/51118
3154 * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
3155 before using TREE_TYPE accessor on expr.
3157 2011-11-17 Jan Hubicka <jh@suse.cz>
3160 * i386.c (atom_cost): Fix 32bit memset description.
3161 (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
3163 (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
3165 (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
3166 when not optimizing always use rep movsb or lincall; do not produce
3167 word sized loops when optimizing memset for size (to avoid need
3168 for large constants).
3169 (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
3170 choose unroll factors better; always do 128bit moves when producing
3171 SSE loops; do not produce loopy epilogue when size is too small.
3172 (promote_duplicated_reg_to_size): Do not look into desired alignments
3173 when doing vector expansion.
3174 (ix86_expand_setmem): Track better when promoted value is available;
3175 choose unroll factors more sanely. Output loopy epilogue only
3178 2011-11-17 Steve Ellcey <sje@cup.hp.com>
3181 * output.h (fprint_w): Remove.
3182 * final.c (fprint_w): Remove.
3183 (output_addr_const): Change fprint_w back to fprintf.
3185 2011-11-17 Andrew Pinski <apinski@cavium.com>
3187 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
3189 2011-11-17 Andrew MacLeod <amacleod@redhat.com>
3191 * builtins.c (expand_builtin): Remove 4th parameter representing
3192 weak/strong mode when __atomic_compare_exchange becomes a library call.
3194 2011-11-17 Richard Henderson <rth@redhat.com>
3196 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
3197 new pseudo for target after convert_modes.
3198 (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
3200 2011-11-17 Richard Henderson <rth@redhat.com>
3202 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
3203 new pseudo for target after convert_modes.
3204 (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
3206 2011-11-17 Richard Henderson <rth@redhat.com>
3208 * builtins.c (expand_builtin_mem_thread_fence): Remove.
3209 (expand_builtin_mem_signal_fence): Remove.
3210 (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
3211 (expand_builtin_sync_synchronize): Likewise.
3212 (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
3213 * optabs.c (expand_asm_memory_barrier): Split out from
3214 expand_builtin_mem_signal_fence.
3215 (expand_mem_thread_fence): New, a combination of code from
3216 expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
3217 (expand_mem_signal_fence): Moved and renamed from
3218 expand_builtin_mem_signal_fence.
3219 (expand_atomic_exchange): Use expand_mem_thread_fence.
3220 (expand_atomic_load, expand_atomic_store): Likewise.
3221 * expr.h, optabs.h: Update decls.
3223 2011-11-17 Bin Cheng <bin.cheng@arm.com>
3225 PR rtl-optimization/50663
3226 * cprop.c (implicit_set_indexes): New global variable.
3227 (insert_set_in_table): Add additional parameter and record implicit
3229 (hash_scan_set): Add additional parameter and pass it to above.
3230 (hash_scan_insn): Pass false to hash_scan_set.
3231 (compute_hash_table_work): Pass true to hash_scan_set.
3232 (compute_cprop_data): Add implicit set to AVIN of block which the
3233 implicit set is recorded for.
3234 (one_cprop_pass): Handle implicit_set_indexes array.
3236 2011-11-17 Michael Matz <matz@suse.de>
3240 * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
3242 (remove_unused_locals): Ditto.
3244 2011-11-16 Richard Henderson <rth@redhat.com>
3246 * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
3247 ALIAS_SET_MEMORY_BARRIER when creating a new memory.
3248 (alpha_split_atomic_exchange_12): Likewise.
3249 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
3251 2011-11-16 Joseph Myers <joseph@codesourcery.com>
3253 * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
3255 2011-11-16 David Edelsohn <dje.gcc@gmail.com>
3257 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
3258 Default to minimum alignment if decl is NULL.
3260 2011-11-16 Uros Bizjak <ubizjak@gmail.com>
3262 * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
3264 (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
3266 2011-11-16 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
3268 * doc/invoke.texi: Document AMD bdver1 and btver1.
3270 2011-11-16 Richard Earnshaw <rearnsha@arm.com>
3271 Bernd Schmidt <bernds@coudesourcery.com>
3272 Sebastian Huber <sebastian.huber@embedded-brains.de>
3275 * config/arm/arm.c (store_multiple_sequence): Avoid cases where
3276 the base reg is stored iff compiling for Thumb1.
3278 2011-11-16 Razya Ladelsky <razya@il.ibm.com>
3280 PR tree-optimization/49960
3281 * tree-data-ref.c (initialize_data_dependence_relation): Add
3283 Remove call to compute_self_dependence.
3284 (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
3285 (compute_self_dependence): Remove old code. Add call to
3286 compute_affine_dependence.
3287 (compute_all_dependences): Remove call to compute_self_dependence.
3288 Add call to compute_affine_dependence.
3290 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3293 * expmed.c (store_bit_field_1): Use extract_bit_field on big
3294 endian targets if the source cannot be exactly covered by word
3297 2011-11-15 Joseph Myers <joseph@codesourcery.com>
3299 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
3302 2011-11-15 Richard Henderson <rth@redhat.com>
3304 * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
3305 (alpha_post_atomic_barrier): New.
3306 (alpha_split_atomic_op): New memmodel argument; honor it.
3307 (alpha_split_compare_and_swap): Take array of operands. Honor
3308 memmodel; always set bool output
3309 (alpha_expand_compare_and_swap_12): Similarly.
3310 (alpha_split_compare_and_swap_12): Similarly.
3311 (alpha_split_atomic_exchange): Similarly. Rename from
3312 alpha_split_lock_test_and_set.
3313 (alpha_expand_atomic_exchange_12): Similarly. Rename from
3314 alpha_expand_lock_test_and_set_12.
3315 (alpha_split_atomic_exchange_12): Similarly. Rename from
3316 alpha_split_lock_test_and_set_12.
3317 * config/alpha/alpha-protos.h: Update.
3318 * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
3319 * config/alpha/constraints.md ("w"): New.
3320 * config/alpha/predicates.md (mem_noofs_operand): New.
3321 * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
3322 sync_compare_and_swap<mode>; add the new parameters.
3323 (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
3324 (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
3325 (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
3326 (atomic_<op><mode>): Update from sync_<op><mode>.
3328 2011-11-16 Tom de Vries <tom@codesourcery.com>
3330 * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
3332 2011-11-16 Alan Modra <amodra@gmail.com>
3334 PR rtl-optimization/51051
3336 * function.c (thread_prologue_and_epilogue_insns): Guard
3337 emitting return with single_succ_p test.
3339 2011-11-15 Joern Rennecke <joern.rennecke@embecosm.com>
3341 * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
3342 get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
3344 2011-11-15 Uros Bizjak <ubizjak@gmail.com>
3346 * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
3347 (vec_pack_sfix_trunc_v2df): Ditto.
3348 (vec_pack_sfix_v2df): Ditto.
3349 (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
3350 avx_vec_concatv8si patterns.
3351 (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
3352 avx_vec_concatv8si patterns.
3354 2011-11-15 Torvald Riegel <triegel@redhat.com>
3356 * c-parser.c (c_parser_transaction_expression): Require parentheses
3357 when parsing transaction expressions.
3359 2011-11-15 Tristan Gingold <gingold@adacore.com>
3361 * incpath.c (get_added_cpp_dirs): New function.
3362 * incpath.h (get_added_cpp_dirs): Declare.
3363 * config/vms/vms-c.c (vms_c_register_includes): New function.
3364 (vms_std_modules): New variable.
3365 * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
3366 (vms_c_register_includes): Declare.
3368 2011-11-15 Tristan Gingold <gingold@adacore.com>
3370 * c-family/c-pragma.h (pragma_extern_prefix): Declare.
3371 * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
3372 * config/vms/vms-c.c (saved_extern_prefix): New variable.
3373 (vms_pragma_extern_prefix): New function.
3374 (vms_c_register_pragma): Register vms_pragma_extern_prefix.
3376 2011-11-15 Georg-Johann Lay <avr@gjlay.de>
3379 * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
3380 (REGISTER_TARGET_PRAGMAS): New define.
3381 * config/avr/avr-protos.h (avr_mem_pgm_p): New.
3382 (avr_load_libgcc_p): New.
3383 (avr_register_target_pragmas): New.
3384 (asm_output_external_libcall): Remove.
3385 (avr_log_t): Add field "progmem". Order alphabetically.
3386 * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
3387 * config/avr/avr-c.c (langhooks.h): New include.
3388 (avr_register_target_pragmas): New function. Register address
3390 (avr_cpu_cpp_builtins): Add built-in define __PGM.
3392 * config/avr/avr.c: Include "c-family/c-common.h".
3393 (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
3394 (TARGET_LEGITIMIZE_ADDRESS): Remove define.
3395 (TARGET_ADDR_SPACE_SUBSET_P): Define to...
3396 (avr_addr_space_subset_p): ...this new static function.
3397 (TARGET_ADDR_SPACE_CONVERT): Define to...
3398 (avr_addr_space_convert): ...this new static function.
3399 (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
3400 (avr_addr_space_address_mode): ...this new static function.
3401 (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
3402 (avr_addr_space_pointer_mode): ...this new static function.
3403 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
3404 (avr_addr_space_legitimate_address_p): ...this new static function.
3405 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
3406 (avr_addr_space_legitimize_address): ...this new static function.
3407 (avr_mode_code_base_reg_class): Handle address spaces.
3408 (avr_regno_mode_code_ok_for_base_p): Ditto.
3409 (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
3410 (avr_option_override): Initialize them.
3411 (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
3413 (avr_pgm_segment): New static function.
3414 (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
3415 (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
3416 (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
3417 avr_out_lpm to handle loads from progmem.
3418 (avr_load_libgcc_p): New static function.
3419 (avr_progmem_p): Test if decl is in flash.
3420 (avr_pgm_pointer_const_p): New static function.
3421 (avr_nonconst_pointer_addrspace): New static function.
3422 (avr_pgm_check_var_decl): New static function.
3423 (avr_insert_attributes): Use it. Change error message to report
3424 cause (progmem or address space) when code wants to write to flash.
3425 (avr_section_type_flags): Unset section flag SECTION_BSS for
3428 * config/avr/predicates.md (nop_general_operand): New predicate.
3429 (nox_general_operand): New predicate.
3430 * config/avr/avr.md (LPM_REGNO): New define_constant.
3431 (load<mode>_libgcc): New expander.
3432 (*load.<mode>.libgcc): New insn.
3433 (mov<mode>): Handle loads from non-generic AS.
3434 (movmemhi): Ditto. Propagate address space information to newly
3436 (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
3437 to nox_general_operand.
3438 (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
3439 nop_general_operand.
3440 (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
3441 (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
3442 (split-lpmx): New split.
3443 (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
3444 *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
3446 2011-11-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3448 * ipa-cp.c (ipa_value_from_jfunc): Make global.
3449 (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
3450 (get_indirect_edge_target): Rename, make global.
3451 (devirtualization_time_bonus, estimate_local_effects,)
3452 (ipcp_discover_new_direct_edges): Update.
3453 * ipa-inline-analysis.c (evaluate_conditions_for_edge):
3454 Generalize to also handle types. Rename to ...
3455 (evaluate_properties_for_edge): Use instead of
3456 evaluate_conditions_for_edge.
3457 (estimate_edge_devirt_benefit): New function.
3458 (estimate_calls_size_and_time): Use it.
3459 (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
3460 (inline_merge_summary): Update.
3461 (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate
3462 parameter information at the call site and pass it on to subroutines.
3463 * tree-inline.c (estimate_num_insns): Distinguish between direct and
3465 (init_inline_once): Set size and time costs or indirect calls.
3466 * tree-inline.h (eni_weights): Add indirect_call_cost.
3468 2011-11-15 Tom de Vries <tom@codesourcery.com>
3470 PR tree-optimization/51005
3471 * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
3472 mark_basic_block_deleted.
3473 (update_worklist): Inline purge_bbs.
3474 (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
3475 (delete_block_update_dominator_info): Remove.
3476 (replace_block_by): Remove update_vops parameter. Partially evaluate
3477 for update_vops == false.
3478 (apply_clusters): Remove update_vops parameter. Remove update_vops
3479 argument in replace_block_by call.
3480 (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
3481 (tail_merge_optimize): Remove update_vops argument to apply_clusters.
3482 Remove call to purge_bbs. Add calls to calculate_dominance_info and
3483 free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling
3484 update_debug_stmts. Mark vop var for renaming, if necessary.
3486 2011-11-15 Bernd Schmidt <bernds@codesourcery.com>
3488 PR rtl-optimization/51051
3489 * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
3490 move would cause fallthrough into the exit block.
3492 2011-11-14 Richard Henderson <rth@redhat.com>
3494 * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
3496 (emit_store_conditional): Likewise.
3497 (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
3498 (rs6000_adjust_atomic_subword): New.
3499 (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
3500 (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
3501 for pre-reload expansion.
3502 (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
3503 rs6000_expand_compare_and_swapqhi): Merge into ...
3504 (rs6000_expand_atomic_compare_and_swap): ... here. New function.
3505 rs6000_split_lock_test_and_set; expand immediately. Handle
3507 * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
3508 from UNSPECV_LWSYNC.
3509 * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
3510 (mem_thread_fence): New.
3511 (hwsync): Rename from memory_barrier.
3512 (*hwsync): Rename from *sync_internal.
3513 (lwsync, *lwsync): Mirror hwsync implementation.
3514 (isync): Don't reference memory.
3516 (atomic_load<INT>, atomic_store<INT>): New.
3517 (ATOMIC): New mode iterator.
3518 (load_locked<ATOMIC>): Rename from load_locked_<GPR>.
3519 (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
3520 (sync_compare_and_swap<GPR>): Remove.
3521 (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
3522 (sync_compare_and_swapqhi_internal): Remove.
3523 (sync_lock_test_and_set<GPR>): Remove.
3524 (sync_<FETCHOP><INT1>): Remove.
3525 (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
3526 (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
3527 (sync_old_<FETCHOP><GPR>): Remove.
3528 (*sync_old_<FETCHOP>si_internal): Remove.
3529 (*sync_old_<FETCHOP>di_internal): Remove.
3530 (sync_old_nand<INT1>): Remove.
3531 (*sync_old_nand<GPR>_internal): Remove.
3532 (sync_new_<FETCHOP><GPR>): Remove.
3533 (*sync_new_<FETCHOP>si_internal): Remove.
3534 (*sync_new_<FETCHOP>di_internal): Remove.
3535 (sync_new_nand<INT1>): Remove.
3536 (*sync_new_nand<GPR>_internal): Remove.
3537 (*atomic_andsi, *atomic_anddi): Remove.
3538 (*sync_addshort_internal, *sync_subshort_internal): Remove.
3539 (*sync_andsi_internal, *sync_boolsi_internal): Remove.
3540 (*sync_boolcshort_internal): Remove.
3541 (sync_lock_release<INT1>): Remove.
3542 (atomic_compare_and_swap<INT1>): New.
3543 (atomic_exchange<INT1>): New.
3544 (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
3545 (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
3546 (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
3548 2011-11-14 Uros Bizjak <ubizjak@gmail.com>
3550 * config/i386/sse.md (round<mode>2): Use register_operand for
3551 operand 1 predicate.
3552 (round<mode>2_sfix): Ditto.
3553 (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
3555 2011-11-14 Nathan Sidwell <nathan@acm.org>
3557 * gcov.c (canonicalize_name): Protect use of S_ISLNK.
3559 2011-11-14 Jan Hubicka <jh@suse.cz>
3562 * config/i386/i386.c (core cost model): Correct pasto.
3564 2011-11-14 Uros Bizjak <ubizjak@gmail.com>
3566 * config/i386/sse.md (round<mode>2_sfix): New expander.
3567 (round<mode>2_vec_pack_sfix): Ditto.
3568 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
3569 (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
3570 * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
3571 V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
3572 V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
3573 * config/i386/i386.c (ix86_builtins): Add
3574 IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
3575 IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
3576 (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
3577 __builtin_ia32_roundpd_az_vec_pack_sfix{,256},
3578 __builtin_ia32_{floorps,ceilps}_sfix{,256}and
3579 __builtin_ia32_roundps_az_sfix{,256} descriptions.
3580 (ix86_expand_sse_round_vec_pack_sfix): New.
3581 (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
3582 V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
3583 V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of
3584 CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
3585 CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
3586 (ix86_builtin_vectorized_function): Handle
3587 BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
3588 BUILT_IN_{I,L,LL}ROUND{,F}
3590 2011-11-14 Jan Hubicka <jh@suse.cz>
3593 * cgraph.h (varpool_externally_visible_p): Declare.
3594 (varpool_add_new_variable): Declare.
3595 * tree-emultls.c (get_emutls_init_templ_addr,
3596 new_emutls_decl): Use varpool_add_new_variable.
3597 * ipa.c (varpool_externally_visible_p): Export.
3598 * varpool.c (varpool_add_new_variable): New function.
3600 2011-11-14 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
3601 Jan Hubicka <jh@suse.cz>
3603 * config/i386/i386.h (processor_costs): Add second dimension to
3604 stringop_algs array.
3605 * config/i386/i386.c (cost models): Initialize second dimension of
3606 stringop_algs arrays.
3607 (core_cost): New costs based on generic64 costs with updated stringop
3609 (promote_duplicated_reg): Add support for vector modes, add
3611 (promote_duplicated_reg_to_size): Likewise.
3612 (processor_target): Set core costs for core variants.
3613 (expand_set_or_movmem_via_loop_with_iter): New function.
3614 (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
3615 different loops, produced by this function.
3616 (emit_strset): New function.
3617 (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
3618 use SSE-moves where possible.
3619 (expand_setmem_epilogue): Likewise.
3620 (expand_movmem_prologue): Likewise for prologue.
3621 (expand_setmem_prologue): Likewise.
3622 (expand_constant_movmem_prologue): Likewise.
3623 (expand_constant_setmem_prologue): Likewise.
3624 (decide_alg): Add new argument align_unknown. Fix algorithm of
3625 strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
3626 (decide_alignment): Update desired alignment according to chosen move
3628 (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
3629 (ix86_expand_setmem): Likewise.
3630 (ix86_slow_unaligned_access): Implementation of new hook
3631 slow_unaligned_access.
3632 * config/i386/i386.md (strset): Enable half-SSE moves.
3633 * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
3634 (vec_dupv2di): Add expand for vec_dupv2di.
3636 2011-11-14 Dimitrios Apostolou <jimis@gmx.net>
3640 * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
3641 * varasm.c (default_elf_internal_label): Remove.
3643 2011-11-14 Kai Tietz <ktietz@redhat.com>
3645 * gcov.c (generate_results): Add missing semicolon and correct indent.
3647 2011-11-14 Ira Rosen <ira.rosen@linaro.org>
3650 * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype.
3652 2011-11-14 Mingjie Xing <mingjie.xing@gmail.com>
3654 * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes}
3655 to @pxref{Function Attributes}.
3657 2011-11-13 Oleg Endo <oleg.endo@t-online.de>
3660 * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
3662 (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
3663 taking the default configuration into account.
3665 2011-11-13 Jonathan Wakely <jwakely.gcc@gmail.com>
3667 * doc/install.texi (Specific): Fix anchor for
3668 x86_64-*-solaris2.1[0-9]*.
3670 2011-11-13 Nathan Sidwell <nathan@acm.org>
3672 * gcov.c (source_prefix, source_length): New globals.
3673 (flag_relative_only): Likewise.
3674 (print_usage, options, process_args): Update.
3675 (generate_results): Use coverage.name, check
3676 flag_relative_only. Adjust messages.
3677 (find_source): Check source_prefix.
3678 (output_lines): Use coverage.name, adjust messages.
3679 * doc/gcov.texi (Invoking Gcov): Document new options.
3681 2011-11-12 Jason Merrill <jason@redhat.com>
3684 * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
3685 (gimplify_modify_expr): Don't try to simplify it.
3687 2011-11-12 Dimitrios Apostolou <jimis@gmx.net>
3690 * config/elfos.h (STRING_ASM_OP): Define.
3691 * varasm.c (default_elf_asm_output_limited_string): Use it.
3694 * gcc/configure.ac: Check for stpcpy declaration.
3695 * system.h: Declare it if not.
3696 * config.in, configure: Regenerate.
3698 2011-11-12 Richard Henderson <rth@redhat.com>
3700 * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
3701 nonimmediate_operand for the destination.
3702 (fixuns_trunc<SFDF>si2_stfiwx): Likewise.
3704 * builtins.c (expand_builtin_compare_and_swap): If target is const0,
3705 don't pass the target to expand_atomic_compare_and_swap.
3706 (expand_builtin_atomic_compare_exchange): Likewise.
3708 * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
3709 * config/sh/sh.c (sh_init_sync_libfuncs): New.
3711 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
3712 * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
3713 * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
3715 2011-11-12 Iain Sandoe <iains@gcc.gnu.org>
3718 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3719 Only expand a symbol ref. into an access when the entity is defined
3722 2011-11-12 Jan Hubicka <jh@suse.cz>
3725 * cgraphunit.c (output_weakrefs): Output really only weakrefs.
3727 2011-11-12 Nathan Sidwell <nathan@acm.org>
3729 * gcov.c (struct name_map): New.
3730 (names, n_names, a_names): New global vars.
3731 (print_usage): Adjust usage.
3732 (generate_results): Canonicalize main file name.
3733 (release_structures): Adjust.
3734 (name_search, name_sort): New callbacks.
3735 (find_source): Look for and create a canonical name.
3736 (canonicalize_name): New.
3737 (make_gcov_file_name): Reimplement and fix mangling.
3739 * doc/gcov.texi: Update documentation about path preservation.
3741 2011-11-11 David S. Miller <davem@davemloft.net>
3743 * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3744 * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3746 2011-11-11 Jakub Jelinek <jakub@redhat.com>
3748 * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
3750 * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
3752 (ix86_expand_epilogue): Use it.
3753 * config/i386/i386.md (return, simple_return): Call it in the
3756 PR tree-optimization/51091
3757 * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
3758 rhs also in the va_list_simple_ptr case.
3760 PR tree-optimization/51058
3761 * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
3762 (vect_schedule_slp): Call it.
3763 * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
3764 don't replace scalar calls with setting of their lhs to zero here.
3766 PR tree-optimization/51074
3767 * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
3768 (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
3769 VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
3770 VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
3771 (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
3772 CONSTRUCTOR operands.
3773 * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
3775 * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
3776 to 0 .. 2 * elements - 1.
3778 2011-11-11 Richard Henderson <rth@redhat.com>
3780 * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
3781 (dump_gimple_omp_atomic_store): Likewise.
3782 * optabs.c (can_atomic_exchange_p): New.
3783 * optabs.h (can_atomic_exchange_p): Declare.
3784 * omp-low.c (expand_omp_atomic_load): Implement.
3785 (expand_omp_atomic_store): Likewise.
3786 (expand_omp_atomic): Update for new arguments to load/store.
3788 2011-11-11 Eric Botcazou <ebotcazou@adacore.com>
3790 * cprop.c: Adjust outdated comments throughout.
3791 (hash_scan_set): Rename PAT parameter into SET.
3792 (cprop_pavloc): Rename into...
3793 (cprop_avloc): ...this.
3794 (cprop_absaltered): Rename into...
3795 (cprop_kill): ...this.
3796 (alloc_cprop_mem): Adjust for above renaming.
3797 (free_cprop_mem): Likewise.
3798 (compute_cprop_data): Likewise.
3799 (compute_local_properties): Rename TRANSP parameter into KILL and
3800 adjust throughout. Rework comments.
3801 (try_replace_reg): Fix long line.
3802 (cprop_jump): Likewise.
3803 (constprop_register): Fix prototype and take INSN last.
3804 (cprop_insn): Adjust calls to above function. Fix long lines.
3805 (bypass_block): Likewise.
3806 (one_cprop_pass): Likewise.
3808 2011-11-11 Uros Bizjak <ubizjak@gmail.com>
3810 * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
3811 (ELF_STRING_LIMIT): Rename from STRING_LIMIT.
3813 2011-11-11 Jason Merrill <jason@redhat.com>
3815 * varasm.c (default_elf_asm_output_limited_string): #ifdef
3817 (default_elf_asm_output_ascii): Likewise.
3819 2011-11-11 Uros Bizjak <ubizjak@gmail.com>
3822 * config/i386/constraints.md (j): New address constraint.
3823 * config/i386/predicates.md (lea_address_operand): Redefine as
3825 * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
3826 (*lea_4_zext): Ditto.
3828 2011-11-11 David S. Miller <davem@davemloft.net>
3831 2011-11-05 David S. Miller <davem@davemloft.net>
3833 * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
3834 (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
3835 (*zero_extend_v8qi_<P:mode>_insn,
3836 *zero_extend_v4hi_<P:mode>_insn): New insns.
3837 * config/sparc/sparc.c (vector_init_move_words,
3838 vector_init_prepare_elts, sparc_expand_vector_init_vis2,
3839 sparc_expand_vector_init_vis1): New functions.
3840 (vector_init_bshuffle): Rewrite to handle more cases and make use
3841 of locs[] array prepared by vector_init_prepare_elts.
3842 (vector_init_fpmerge, vector_init_faligndata): Delete.
3843 (sparc_expand_vector_init): Rewrite using new infrastructure.
3845 2011-11-11 Jakub Jelinek <jakub@redhat.com>
3847 * opts-common.c (generate_canonical_option): Free opt_text
3848 it it has been allocated here and not stored anywhere.
3850 * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
3852 (vect_create_new_slp_node): Don't allocate node before checking stmt
3854 (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
3855 free def_stmts vectors and additionally free oprnd_info.
3856 (vect_build_slp_tree): Adjust callers. Call it even if
3857 stop_recursion. If vect_create_new_slp_node or
3858 vect_build_slp_tree fails, properly handle freeing memory.
3859 If it succeeded, clear def_stmts in oprnd_info.
3861 2011-11-11 Dimitrios Apostolou <jimis@gmx.net>
3863 * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on
3864 multiple lines for readability.
3865 * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare.
3866 (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf.
3867 * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data,
3868 dw2_asm_data_uleb128, dw2_asm_delta_uleb128,
3869 dw2_asm_delta_sleb128): Convert fprintf calls to the new functions.
3870 * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of
3872 * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions
3873 serving as fast replacements for fprintf integer to string conversions.
3874 (sprint_ul_rev): Internal helper for the above.
3875 (output_addr_const) <CONST_INT>: Don't use fprintf.
3876 * varasm.c: Fix some whitespace inconsistencies.
3877 (default_elf_asm_output_limited_string): New.
3878 (default_elf_asm_output_ascii): Likewise.
3879 (default_elf_internal_label): Likewise.
3880 * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and
3881 stpcpy instead of sprintf.
3882 (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
3883 (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and
3884 STRING_LIMIT macros.
3885 (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that
3886 provide the same functionality.
3887 * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf.
3889 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
3891 * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
3893 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
3896 * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear.
3897 (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set.
3898 (expand_builtin): Add cases for test_and_set and clear.
3899 * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
3900 (BUILT_IN_ATOMIC_CLEAR): New.
3902 2011-11-10 Roberto Agostino Vitillo <ravitillo@lbl.gov>
3905 * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
3906 value in the current line table.
3908 2011-11-10 Nathan Sidwell <nathan@acm.org>
3910 * gcov.c (struct function_info): Make src an index, not a pointer.
3911 (struct source_info): Remove index and next source fields.
3912 (fn_end): New static var.
3913 (sources_index): Remove.
3914 (sources): Now a pointer to an array, not a list.
3915 (n_sources, a_sources): New.
3916 (process_file): Adjust for changes to read_graph_file. Insert
3917 functions into source lists and check line numbers here.
3918 (generate_results): Only allocate lines for sources with
3919 contents. Adjust for source array.
3920 (release_structures): Likewise.
3921 (find_source): Return source index, adjust for source array.
3922 (read_graph_file): Return function list. Don't insert into source
3924 (read_count_file): Take list of functions.
3925 (solve_flow_graph): Reverse the arc lists here.
3926 (add_line_counts): Adjust for source array.
3928 2011-11-10 Jakub Jelinek <jakub@redhat.com>
3931 * tree-object-size.c (addr_object_size): Check TREE_CODE of
3932 MEM_REF's operand rather than code of the MEM_REF itself.
3934 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
3936 PR rtl-optimization/51040
3937 * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should
3938 be AND followed by NOT.
3939 * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND
3940 should be AND followed by NOT.
3942 2011-11-10 Jakub Jelinek <jakub@redhat.com>
3944 * vec.h (VEC_BASE): If base is at offset 0 in the structure,
3945 use &(P)->base even if P is NULL.
3947 PR rtl-optimization/51023
3948 * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use
3949 val_signbit_known_clear_p for signed comparison narrowing
3950 optimization. Don't check for non-VOIDmode, use
3951 HWI_COMPUTABLE_MODE_P macro.
3952 <case ZERO_EXTEND>: Don't check for non-VOIDmode.
3953 Optimize even when const_op is equal to GET_MODE_MASK (mode),
3954 don't optimize if const_op is negative.
3956 2011-11-10 Richard Guenther <rguenther@suse.de>
3958 PR tree-optimization/51042
3959 * tree-ssa-pre.c (phi_translate_1): Avoid recursing on
3960 self-referential expressions. Refactor code to avoid duplication.
3962 2011-11-10 Richard Guenther <rguenther@suse.de>
3964 PR tree-optimization/51070
3965 * tree-loop-distribution.c (generate_builtin): Do not replace
3966 the loop with a builtin if the partition contains statements which
3967 results are used outside of the loop.
3968 (pass_loop_distribution): Verify and collect.
3970 2011-11-10 Richard Guenther <rguenther@suse.de>
3972 PR tree-optimization/51030
3973 * tree-ssa-phiopt.c (jump_function_from_stmt): New function.
3974 (value_replacement): Use it to handle trivial non-empty
3975 intermediate blocks.
3977 2011-11-10 Richard Guenther <rguenther@suse.de>
3980 * gimple.c (gimple_has_side_effects): Remove checking code
3981 that doesn't belong here.
3983 2011-11-10 Ira Rosen <ira.rosen@linaro.org>
3985 PR tree-optimization/51058
3986 * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR.
3988 2011-11-10 Jakub Jelinek <jakub@redhat.com>
3990 PR tree-optimization/51000
3991 * tree-vect-patterns.c (vect_recog_bool_pattern): If adding
3992 a pattern stmt for a bool store, adjust DR_STMT too.
3993 Don't handle bool conversions to single bit precision lhs.
3994 * tree-vect-stmts.c (vect_remove_stores): If next is a pattern
3995 stmt, remove its related stmt and free its stmt_vinfo.
3996 (free_stmt_vec_info): Free also pattern stmt's vinfo and
3997 pattern def stmt's vinfo.
3998 * tree-vect-loop.c (destroy_loop_vec_info): Don't try to
3999 free pattern stmt's vinfo here.
4000 (vect_transform_loop): When calling vect_remove_stores,
4001 do gsi_next first and don't call gsi_remove. If not strided
4002 store, free stmt vinfo for gsi_stmt (si) rather than stmt.
4004 2011-11-09 Jakub Jelinek <jakub@redhat.com>
4007 * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is
4008 V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode
4011 * function.h (requires_stack_frame_p): New prototype.
4012 * function.c (requires_stack_frame_p): No longer static.
4013 * config/i386/i386.c (ix86_finalize_stack_realign_flags): If
4014 stack_realign_fp was just a conservative guess for a function
4015 which doesn't use sp/fp/argp at all, clear frame_pointer_needed
4016 and stack realignment.
4018 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
4020 PR preprocessor/51061
4021 * incpath.c (merge_include_chains): Make sure to not pass null
4022 pointers to free_path.
4024 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
4026 * doc/invoke.texi ([Option Summary, C++ Language Options]):
4027 Add -Wzero-as-null-pointer-constant.
4029 2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
4031 * config/arm/arm-cores.def: Add -mcpu=cortex-a7.
4032 * config/arm/arm-tables.opt: Regenerate.
4033 * config/arm/arm-tune.md: Likewise.
4034 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7.
4035 * doc/invoke.texi: Document -mcpu=cortex-a7.