comparison gcc/ChangeLog-2011 @ 16:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
15:561a7518be6b 16:04ced10e8804
1 2011-12-31 Alexandre Oliva <aoliva@redhat.com>
2
3 * cselib.h (cselib_add_permanent_equiv): Declare.
4 (canonical_cselib_val): New.
5 * cselib.c (new_elt_loc_list): Rework to support value
6 equivalences. Adjust all callers.
7 (preserve_only_constants): Retain value equivalences.
8 (references_value_p): Retain preserved values.
9 (rtx_equal_for_cselib_1): Handle value equivalences.
10 (cselib_invalidate_regno): Use canonical value.
11 (cselib_add_permanent_equiv): New.
12 * alias.c (find_base_term): Reset locs lists while recursing.
13 * var-tracking.c (val_bind): New. Don't add equivalences
14 present in cselib table, compared with code moved from...
15 (val_store): ... here.
16 (val_resolve): Use val_bind.
17 (VAL_EXPR_HAS_REVERSE): Drop.
18 (add_uses): Do not create MOps for addresses. Do not mark
19 non-REG non-MEM expressions as requiring resolution.
20 (reverse_op): Record reverse as a cselib equivalence.
21 (add_stores): Use it. Do not create MOps for addresses.
22 Do not require resolution for non-REG non-MEM expressions.
23 Simplify support for reverse operations.
24 (compute_bb_dataflow): Drop reverse support.
25 (emit_notes_in_bb): Likewise.
26 (create_entry_value): Rename to...
27 (record_entry_value): ... this. Use cselib equivalences.
28 (vt_add_function_parameter): Adjust.
29
30 2011-12-30 Michael Meissner <meissner@linux.vnet.ibm.com>
31
32 * config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko
33 in setting options via target #pragma or attribute.
34
35 2011-12-30 Anatoly Sokolov <aesok@post.ru>
36
37 * config/bfin/bfin.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
38 * config/bfin/bfin-protos.h (bfin_register_move_cost,
39 bfin_memory_move_cost): Remove.
40 * config/bfin/bfin.c (bfin_register_move_cost,
41 bfin_memory_move_cost): Make static. Change arguments type from
42 enum reg_class to reg_class_t and from int to bool.
43 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
44
45 2011-12-30 Nathan Sidwell <nathan@acm.org>
46
47 * gcov.c (total_lines, total_executed): New global vars.
48 (generate_results): Call executed_summary.
49 (executed_summary): New function, broken out of ...
50 (function_summary): ... here. Call it.
51 * coverage.c (coverage_finish): Also check for local_tick == -1.
52 * gcov-dump (tag_function): Correct labelling typo.
53
54 2011-12-29 Michael Meissner <meissner@linux.vnet.ibm.com>
55
56 PR target/51623
57 * config/rs6000/rs6000.c (rs6000_assemble_integer): Delete check
58 for an initialized pointer being in a text section with
59 -mrelocatable, since it should never happen.
60
61 2011-12-29 Michael Eager <eager@eagercon.com>
62
63 * config/microblaze/microblaze.md: Add expander for simple_return,
64 return, add return_internal and simple_return_internal insns.
65
66 2011-12-29 Oleg Endo <olegendo@gcc.gnu.org>
67
68 * config/sh/sh.h (BRANCH_COST): Use sh_branch_cost variable.
69 * config/sh/sh.c (sh_option_override): Simplify sh_branch_cost
70 expression.
71
72 2011-12-28 Ian Lance Taylor <iant@google.com>
73
74 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Go for Go.
75
76 2011-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
77
78 PR target/51623
79 * config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call
80 unlikely_text_section_p. Instead check for being in a code section.
81
82 2011-12-28 Ira Rosen <irar@il.ibm.com>
83
84 PR tree-optimization/51684
85 * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original
86 statement in case of a pattern.
87 (vect_schedule_slp): Likewise.
88
89 2011-12-27 Eric Botcazou <ebotcazou@adacore.com>
90
91 PR rtl-optimization/51667
92 * ree.c (insn_merge_code): Delete.
93 (is_insn_merge_attempted): Likewise.
94 (get_insn_status): Likewise.
95 (set_insn_status): Likewise.
96 (struct ext_cand): Add CODE and MODE fields.
97 (combine_set_extend): Rename to...
98 (combine_set_extension): ...this. Use above fields and tidy up.
99 (transform_ifelse): Likewise.
100 (get_defs): Return the chain of definitions.
101 (is_this_a_cmove): Merge into...
102 (is_cond_copy_insn): ...this. Return bool.
103 (make_defs_and_copies_lists): Adjust calls to get_defs and simplify.
104 (merge_def_and_ext): Adjust call to combine_set_extend.
105 (combine_reaching_defs): Remove calls to {g|s}et_insn_status.
106 (struct extend_info): Rename to...
107 (struct re_info): ...this. Add DEF_MAP field.
108 (add_ext_candidate): Merge into...
109 (add_removable_extension): ...this. Adjust calls to get_defs. Ensure
110 reaching definitions are associated with only one kind of extension.
111 (find_removable_extensions): Create and destroy the definition map.
112 (find_and_remove_re): Return void. Change 'long' variables to 'int'.
113 Do not deal with is_insn_merge_attempted.
114
115 2011-12-25 Jan Hubicka <jh@suse.cz>
116
117 PR middle-end/48641
118 * tree-ssa-threadupdate.c (redirect_edges): Watch for overflow.
119
120 2011-12-26 Oleg Endo <oleg.endo@t-online.de>
121
122 * config/sh/sync.md: Add soft atomics ABI description.
123 (fetchop_name): Use 'or' instead of 'ior'.
124 (fetchop_insn): Remove.
125 (atomic_compare_and_swap<mode>_soft):
126 Don't insert aligning nop after the write-back instruction. Fix
127 multi-line asm output formatting style.
128 (atomic_fetch_<fetchop_name><mode>_soft): Likewise.
129 (atomic_fetch_nand<mode>_soft): Likewise.
130 (atomic_<fetchop_name>_fetch<mode>_soft): Likewise.
131 (atomic_nand_fetch<mode>_soft): Likewise.
132
133 2011-12-23 Richard Henderson <rth@redhat.com>
134
135 * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR): Remove.
136 * cfgexpand.c (expand_debug_expr): Don't handle them.
137 * expr.c (expand_expr_real_2): Likewise.
138 * fold-const.c (fold_binary_loc): Likewise.
139 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
140 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
141 * tree-inline.c (estimate_operator_cost): Likewise.
142 * tree-pretty-print.c (dump_generic_node): Likewise.
143 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
144 * optabs.c (optab_for_tree_code): Likewise.
145 (can_vec_perm_for_code_p): Remove.
146 (expand_binop): Don't try it.
147 (init_optabs): Don't init vec_extract_even/odd_optab.
148 * genopinit.c (optabs): Likewise.
149 * optabs.h (OTI_vec_extract_even, OTI_vec_extract_odd): Remove.
150 (vec_extract_even_optab, vec_extract_odd_optab): Remove.
151 * tree-vect-data-refs.c (vect_strided_store_supported): Tidy code.
152 (vect_permute_store_chain): Use TYPE_VECTOR_SUBPARTS instead of
153 GET_MODE_NUNITS; check vect_gen_perm_mask return value instead of
154 asserting vect_strided_store_supported.
155 (vect_strided_load_supported): Use can_vec_perm_p.
156 (vect_permute_load_chain): Use VEC_PERM_EXPR.
157
158 * doc/generic.texi (VEC_EXTRACT_EVEN_EXPR): Remove.
159 (VEC_EXTRACT_ODD_EXPR): Remove.
160 * doc/md.texi (vec_extract_even, vec_extract_odd): Remove.
161
162 2011-12-23 Anatoly Sokolov <aesok@post.ru>
163
164 * config/score/score.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
165 * config/score/score-protos.h (score_register_move_cost): Remove.
166 * config/score/score.c (TARGET_REGISTER_MOVE_COST): Define.
167 (score_register_move_cost): Make static. Change arguments type from
168 enum reg_class to reg_class_t.
169
170 2011-12-23 Jakub Jelinek <jakub@redhat.com>
171 Richard Henderson <rth@redhat.com>
172
173 * tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove.
174 * gimple-pretty-print.c (dump_binary_rhs): Don't handle
175 VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
176 * expr.c (expand_expr_real_2): Likewise.
177 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
178 * cfgexpand.c (expand_debug_expr): Likewise.
179 * tree-inline.c (estimate_operator_cost): Likewise.
180 * tree-pretty-print.c (dump_generic_node): Likewise.
181 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
182 * fold-const.c (fold_binary_loc): Likewise.
183 * doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR,
184 VEC_INTERLEAVE_LOW_EXPR): Remove documentation.
185 * optabs.c (optab_for_tree_code): Don't handle
186 VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
187 (expand_binop, init_optabs): Remove vec_interleave_high_optab
188 and vec_interleave_low_optab.
189 * genopinit.c (optabs): Likewise.
190 * optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove.
191 (vec_interleave_high_optab, vec_interleave_low_optab): Remove.
192 * doc/md.texi (vec_interleave_high, vec_interleave_low): Remove
193 documentation.
194 * tree-vect-stmts.c (gen_perm_mask): Renamed to...
195 (vect_gen_perm_mask): ... this. No longer static.
196 (perm_mask_for_reverse, vectorizable_load): Adjust callers.
197 * tree-vectorizer.h (vect_gen_perm_mask): New prototype.
198 * tree-vect-data-refs.c (vect_strided_store_supported): Don't try
199 VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of
200 can_vec_perm_for_code_p.
201 (vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving
202 masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR.
203 * config/i386/i386.c (expand_vec_perm_interleave2): If
204 expand_vec_perm_interleave3 would handle it, return false.
205 (expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab.
206
207 2011-12-23 Richard Henderson <rth@redhat.com>
208
209 * config/mips/loongson.md (UNSPEC_LOONGSON_PINSR_0,
210 UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2,
211 UNSPEC_LOONGSON_PINSR_3): Replace with...
212 (UNSPEC_LOONGSON_PINSRH): ... this.
213 (UNSPEC_LOONGSON_VINIT): New.
214 (UNSPEC_LOONGSON_DSLL, UNSPEC_LOONGSON_DSRL): New.
215 (VWB): New mode iterator.
216 (V_inner): New mode attribute.
217 (loongson_vec_init1_<VHB>): New.
218 (*vec_concatv2si): New.
219 (and<VWHB>3, ior<VWHB>3, xor<VWHB>3, one_cmpl<VWHB>2): New.
220 (*loongson_nor): New.
221 (loongson_pextrh): Un-macro-ify.
222 (loongson_pmaddhw): Likewise.
223 (smaxv4hi3, umaxv8qi3, sminv4hi3, uminv8qi3): Likewise.
224 (loongson_pinsrh_0): Represent with vec_select+vec_concat.
225 (loongson_pinsrh_1, loongson_pinsrh_2, loongson_pinsrh_3): Likewise.
226 (*vec_setv4hi, vec_setv4hi): New.
227 (sdot_prodv4hi): New.
228 (smax<VWB>3, smin<VWB>3): New.
229 (reduc_uplus_v8qi): New.
230 (loongson_pshufh): Remove destination matching input.
231 (ashl<VWH>3, ashr<VWH>3, lshr<VWH>3): Fix type attribute.
232 (vec_interleave_high<VWHB>, vec_interleave_low<VWHB>): Remove.
233 (loongson_punpckhbh, loongson_punpckhhw, loongson_punpckhhw_qi,
234 loongson_punpckhwd, loongson_punpckhwd_qi, loongson_punpckhwd_hi,
235 loongson_punpcklbh, loongson_punpcklhw, loongson_punpcklhw_qi,
236 loongson_punpcklwd, loongson_punpcklwd_qi, loongson_punpcklwd_hi,
237 vec_perm_const<VWHB>, vec_unpacks_lo_<VHB>, vec_unpacks_hi_<VHB>,
238 vec_unpacku_lo_<VHB>, vec_unpacku_hi_<VHB>, vec_shl_<VWHBDI>,
239 vec_shr_<VWHBDI>, reduc_uplus_<VWH>, reduc_splus_<VWHB>,
240 reduc_smax_<VWHB>, reduc_smin_<VWHB>, reduc_umax_<VWHB>,
241 reduc_umin_<VB>): New.
242 * config/mips/mips-ps-3d.md (vec_perm_const_ps): New.
243 (mips_pul_ps, mips_puu_ps, mips_pll_ps, mips_plu_ps): Expand in
244 terms of vec_perm_const_ps.
245 (vec_perm_constv2sf): New.
246 (vec_initv2sf): Use mips_expand_vector_init.
247 (vec_concatv2sf): Rename from vec_initv2sf_internal.
248 (vec_setv2sf): Use vec_perm_const_ps.
249 (reduc_splus_v2sf, reduc_smin_v2sf, reduc_smax_v2sf): New.
250 * config/mips/loongson.h (pshufh_u, pshufh_s): Don't pass dest to
251 the builtin.
252 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V4SF): New modes.
253 * config/mips/mips-protos.h: Update.
254 * config/mips/mips.c (mips_get_arg_info): Match V2SFmode, not all
255 MODE_VECTOR_FLOAT.
256 (mips_return_mode_in_fpr_p): Likewise.
257 (mips_cannot_change_mode_class): Allow 8-byte integral mode changes.
258 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw,
259 CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh,
260 CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): Remove.
261 (mips_builtins): Remove first operand for loongson pshufh builtins.
262 (MAX_VECT_LEN, struct expand_vec_perm_d): New.
263 (mips_expand_vselect, mips_expand_vselect_vconcat,
264 mips_expand_vpc_loongson_even_odd, mips_expand_vpc_loongson_pshufh,
265 mips_expand_vpc_loongson_bcast, mips_expand_vec_perm_const_1,
266 mips_expand_vec_perm_const, mips_vectorize_vec_perm_const_ok,
267 mips_expand_vec_unpack, mips_constant_elt_p, mips_expand_vi_broadcast,
268 mips_expand_vi_constant, mips_expand_vi_loongson_one_pinsrh,
269 mips_expand_vi_general, mips_expand_vec_reduc, mips_expand_vec_minmax,
270 TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
271 (mips_expand_vector_init): Rewrite.
272 * config/mips/predicates.md (const_2_or_3_operand): New.
273 (const_0_to_3_operand): New.
274
275 2011-12-23 Dmitry Plotnikov <dplotnikov@ispras.ru>
276
277 * config/arm/neon.md (float<mode><V_cvtto>2): New.
278 (floatuns<mode><V_cvtto>2): New.
279 (fix_trunc<mode><V_cvtto>2): New.
280 (fix_truncuns<mode><V_cvtto>2): New.
281 * config/arm/iterators.md (V_cvtto): New iterator.
282
283 2011-12-23 Richard Guenther <rguenther@suse.de>
284
285 PR rtl-optimization/50396
286 * simplify-rtx.c (simplify_binary_operation_1): Properly
287 guard code that only works for integers.
288
289 2011-12-23 Tristan Gingold <gingold@adacore.com>
290
291 * config/vms/vms-crtlmap.map (log10): Fix typo.
292
293 2011-12-23 Tristan Gingold <gingold@adacore.com>
294
295 * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define.
296
297 2011-12-22 Bin Cheng <bin.cheng@arm.com>
298 Richard Guenther <rguenther@suse.de>
299
300 PR tree-optimization/43491
301 * tree-ssa-pre.c (eliminate): Don't replace global register
302 variable when it is the RHS of a single assign.
303
304 2011-12-22 Joey Ye <joey.ye@arm.com>
305
306 * toplev.c (process_options): Fix typo.
307
308 2011-12-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
309
310 PR middle-end/51252
311 * config/pa/pa.c (pa_som_tm_clone_table_section): New function.
312 (som_tm_clone_table_section): Declare.
313 (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace.
314 (pa_som_asm_init_sections): Init som_tm_clone_table_section.
315 * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
316
317 2011-12-22 Richard Sandiford <rdsandiford@googlemail.com>
318
319 * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook.
320 * doc/tm.texi: Regenerate.
321 * target.def (prepare_pch_save): New hook.
322 * c-family/c-pch.c (c_common_write_pch): Call it.
323 * config/mips/mips.c (was_mips16_pch_p): Delete.
324 (mips_set_mips16_mode): Don't refer to was_mips16_pch_p.
325 (mips_prepare_pch_save): New function.
326 (TARGET_PREPARE_PCH_SAVE): Define.
327
328 2011-12-22 Aldy Hernandez <aldyh@redhat.com>
329
330 PR middle-end/51212
331 * opts.c (finish_options): Call sorry on -fgnu-tm and
332 -fnon-call-exceptions combination.
333
334 2011-12-22 Jonathan Wakely <jwakely.gcc@gmail.com>
335
336 * doc/invoke.texi (C++ Dialect Options): Add missing options and
337 move -Wzero-as-null-pointer-constant to ...
338 (Warning Options): ... here.
339
340 2011-12-22 Jonathan Wakely <jwakely.gcc@gmail.com>
341
342 PR target/47643
343 * doc/invoke.texi (i386 and x86-64 Options): Fix description of
344 -mtune without -march.
345
346 2011-12-21 Richard Earnshaw <rearnsha@arm.com>
347
348 PR target/51643
349 * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
350 change.
351
352 2011-12-22 Tristan Gingold <gingold@adacore.com>
353
354 * config/ia64/ia64.c (ia64_promote_function_mode): Remove.
355 (TARGET_PROMOTE_FUNCTION_MODE): Remove.
356 (ia64_function_value): Call promote_function_mode instead of
357 ia64_promote_function_mode.
358 * config/ia64/vms.h (PROMOTE_MODE): Define.
359 (TARGET_PROMOTE_FUNCTION_MODE): Define.
360
361 2011-12-22 Uros Bizjak <ubizjak@gmail.com>
362
363 PR target/27468
364 * common/config/alpha/alpha-common.c (alpha_option_optimization_table):
365 Enable flag_ree at -O2 or higher.
366
367 2011-12-22 Richard Guenther <rguenther@suse.de>
368
369 PR lto/51650
370 * lto.c (uniquify_nodes): Register TYPE_DECLs with the
371 debuginfo machinery.
372
373 2011-12-22 Bernd Schmidt <bernds@codesourcery.com>
374
375 * tree-pass.h (pass_reload): Declare.
376 * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots):
377 New global variables, moved out of ira.
378 (do_reload): New static function, split off from the second half
379 of ...
380 (ira): ... here.
381 (gate_ira): Remove.
382 (pass_ira): Use TV_IRA, set gate to NULL, and set flags to
383 TODO_dump_func.
384 (rest_of_handle_reload): New static function.
385 (pass_reload): New.
386
387 2011-12-22 Uros Bizjak <ubizjak@gmail.com>
388
389 * common/config/i386/i386-common.c (ix86_option_optimization_table):
390 Move OPT_free processing from ...
391 * config/i386/i386.c (ix86_option_override_internal): ... here.
392
393 2011-12-21 Richard Earnshaw <rearnsha@arm.com>
394
395 PR target/51643
396 * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
397 weak function on bare-metal EABI targets.
398
399 2011-12-21 Jonathan Wakely <jwakely.gcc@gmail.com>
400 Jim Avera <james_avera@yahoo.com>
401
402 * doc/extend.texi (__builtin_expect): Improve example.
403
404 2011-12-21 Uros Bizjak <ubizjak@gmail.com>
405
406 * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree
407 also for 32bit targets.
408
409 2011-12-21 Richard Henderson <rth@redhat.com>
410
411 PR target/51552
412 * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code...
413 (scan_trace): ... here.
414
415 2011-12-21 Jason Merrill <jason@redhat.com>
416
417 * doc/standards.texi (C++ language): Update for C++11.
418
419 2011-12-21 Jakub Jelinek <jakub@redhat.com>
420
421 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize
422 *op0 and *op1 to NULL_TREE first to avoid warnings.
423 * calls.c (initialize_argument_information): Initialize base to avoid
424 warnings.
425
426 PR middle-end/51644
427 PR middle-end/51647
428 * tree-eh.c (decide_copy_try_finally): At -O0, return true
429 even when ndests is not 1, if there are only gimple_clobber_p
430 (or debug) stmts in the finally sequence.
431 * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p
432 stmts.
433
434 2011-12-21 Aldy Hernandez <aldyh@redhat.com>
435
436 PR middle-end/51472
437 * trans-mem.c (tm_log_add): Use create_tmp_var_reg.
438
439 2011-12-21 Martin Jambor <mjambor@suse.cz>
440
441 * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
442 (rewrite_update_enter_block): Likewise.
443 (dump_update_ssa): Likewise.
444 (update_ssa): Likewise but also dump a newline at the beginning.
445
446 2011-12-21 Enkovich Ilya <ilya.enkovich@intel.com>
447
448 PR target/50038
449 * implicit-zee.c: Delete.
450 * ree.c: New file.
451 * Makefile.in: Replace implicit-zee.c with ree.c.
452 * config/i386/i386.c (ix86_option_override_internal): Rename
453 flag_zee to flag_ree.
454 * common.opt (fzee): Ignored.
455 (free): New.
456 * passes.c (init_optimization_passes): Replace pass_implicit_zee
457 with pass_ree.
458 * tree-pass.h (pass_implicit_zee): Delete.
459 (pass_ree): New.
460 * timevar.def (TV_ZEE): Delete.
461 (TV_REE): New.
462 * doc/invoke.texi: Add -free description.
463
464 2011-12-21 Tristan Gingold <gingold@adacore.com>
465
466 * config/vms/vms-protos.h (vms_function_section): New prototype.
467 * config/vms/vms.c (vms_function_section): New function.
468 * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define.
469
470 2011-12-21 Richard Guenther <rguenther@suse.de>
471
472 PR lto/41159
473 * tree-outof-ssa.c (insert_value_copy_on_edge): Use the
474 mode of the pseudo as destination mode. Only assert that
475 is equal to the promoted mode of the decl if it is a REG.
476
477 2011-12-21 Tristan Gingold <gingold@adacore.com>
478
479 * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define.
480
481 2011-12-20 Richard Henderson <rth@redhat.com>
482
483 * config/ia64/ia64.c (MAX_VECT_LEN): New.
484 (struct expand_vec_perm_d): New.
485 (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
486 (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1.
487 (expand_vselect, expand_vselect_vconcat): New.
488 (expand_vec_perm_identity, expand_vec_perm_shrp): New.
489 (expand_vec_perm_1, expand_vec_perm_broadcast): New.
490 (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New.
491 (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New.
492 (ia64_vectorize_vec_perm_const_ok): New.
493 (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New.
494 * config/ia64/ia64-protos.h: Update.
495 * config/ia64/vect.md (VEC): New mode iterator.
496 (vecint): New mode attribute.
497 (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'.
498 (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise.
499 (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise.
500 (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise.
501 (mix1_even, mix1_odd, mux1_alt): Likewise.
502 (mux1_brcst_qi): Remove '*' from name.
503 (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove.
504 (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove.
505 (vec_extract_evenv2si, vec_extract_oddv2si): Remove.
506 (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
507 (vec_extract_evenodd_helper): Remove.
508 (vec_setv2sf): Use ia64_expand_vec_setv2sf.
509 (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd.
510 (vec_pack_trunc_v2si): Likewise.
511 (vec_perm_const<VEC>): New.
512
513 2011-12-20 Richard Henderson <rth@redhat.com>
514
515 * tree-vect-generic.c (expand_vector_operations_1): Correct tests
516 for vector types -- use the type not the mode. Fix optab selection
517 for vector shifts by a scalar. Handle over-large integer modes
518 like BLKmode.
519
520 2011-12-20 Richard Henderson <rth@redhat.com>
521
522 * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform
523 post-reload splitting.
524
525 * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2.
526 * config/arm/arm.c (arm_select_cc_mode): Use it.
527
528 2011-12-20 Richard Sandiford <rdsandiford@googlemail.com>
529
530 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
531 handling of signedness differences to integer types. Only build
532 a new optype if type1 isn't correct.
533
534 2011-12-20 Vladimir Makarov <vmakarov@redhat.com>
535
536 PR target/49865
537 * ira-costs.c (find_costs_and_classes): Prefer registers even
538 if the memory cost is the same.
539
540 2011-12-20 Joseph Myers <joseph@codesourcery.com>
541
542 * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)
543 (finish_struct): Refer to C11 in comments. Use flag_isoc11.
544 * c-parser.c (c_parser_static_assert_declaration)
545 (c_parser_static_assert_declaration_no_semi, c_parser_declspecs)
546 (c_parser_alignas_specifier, c_parser_alignof_expression): Refer
547 to C11 in comments. Use flag_isoc11.
548 * c-typeck.c (comptypes_check_different_types): Refer to C11 in
549 comment.
550 * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x.
551 * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference
552 to -std=c1x and -std=gnu1x.
553 * doc/extend.texi (Inline, Alternate Keywords, Other Builtins)
554 (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11
555 instead of -std=c1x and C1X.
556 * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in
557 preference to -std=c1x.
558 (-std=gnu11): Document in preference to -std=gnu1x.
559 * doc/standards.texi: Document C11 instead of C1X. Document C11
560 as actual standard. Document headers required from freestanding
561 C11 implementations.
562 * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >=
563 201112L for C11. Update comments to refer to C11.
564
565 2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
566
567 * configure: Regenerate.
568
569 2011-12-20 Bernd Schmidt <bernds@codesourcery.com>
570
571 PR middle-end/51200
572 * expr.c (store_field): Avoid a direct store if the mode is larger
573 than the size of the bit field.
574 * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
575 treat non-volatile bit fields like volatile ones.
576 * toplev.c (process_options): Disallow combination of
577 -fstrict-volatile-bitfields and ABI versions less than 2.
578 * config/arm/arm.c (arm_option_override): Don't enable
579 flag_strict_volatile_bitfields if the ABI version is less than 2.
580 * config/h8300/h8300.c (h8300_option_override): Likewise.
581 * config/rx/rx.c (rx_option_override): Likewise.
582 * config/m32c/m32c.c (m32c_option_override): Likewise.
583 * config/sh/sh.c (sh_option_override): Likewise.
584
585 2011-12-20 Richard Guenther <rguenther@suse.de>
586
587 PR lto/46796
588 * dwarf2out.c (modified_type_die): When the type variant
589 chain is corrupt use the types name, if available, instead
590 of __unknown__.
591
592 2011-12-20 Tristan Gingold <gingold@adacore.com>
593
594 * config/alpha/alpha.c (alpha_start_function): Adjust condition to
595 create VMS trampoline entry point.
596
597 2011-12-19 Richard Sandiford <rdsandiford@googlemail.com>
598
599 PR rtl-optimization/42839
600 * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND
601 optimization if the source register is already extended.
602
603 2011-12-19 Richard Sandiford <rdsandiford@googlemail.com>
604
605 * lower-subreg.c (can_decompose_p): Check every word of a hard
606 register.
607
608 2011-12-19 Sandra Loosemore <sandra@codesourcery.com>
609 Tom de Vries <tom@codesourcery.com>
610
611 PR rtl-opt/50380
612 * cse.c (find_comparison_args): Detect fixed point and
613 bail early.
614
615 2011-12-19 Aldy Hernandez <aldyh@redhat.com>
616
617 PR middle-end/51411
618 * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK.
619
620 2011-12-19 Quentin Neill <quentin.neill@amd.com>
621
622 PR target/48743
623 * config/i386/driver-i386.c (host_detect_local_cpu): Also check
624 family to distinguish PROCESSOR_ATHLON.
625
626 2011-12-19 Richard Guenther <rguenther@suse.de>
627
628 PR lto/51573
629 * streamer-hooks.h (struct streamer_hooks): Add second
630 ref_p parameter to write_tree.
631 (stream_write_tree): Adjust.
632 (stream_write_tree_shallow_non_ref): New define.
633 * lto-streamer.h (lto_output_tree): Adjust.
634 * lto-streamer-out.c (lto_output_tree): Likewise.
635 * tree-streamer-out.c (streamer_write_chain): Only
636 force the immediate tree to be streamed as non-reference.
637
638 2011-12-19 Martin Jambor <mjambor@suse.cz>
639
640 PR tree-optimization/51583
641 * tree-sra.c (load_assign_lhs_subreplacements): Call
642 force_gimple_operand_gsi when necessary also in case of no
643 corresponding replacement on the RHS.
644
645 2011-12-19 Jakub Jelinek <jakub@redhat.com>
646
647 * gimple.h (gimplify_seq_add_stmt): Rename to...
648 (gimple_seq_add_stmt_without_update): ... this.
649 * gimplify.c (gimplify_seq_add_stmt): Rename to...
650 (gimple_seq_add_stmt_without_update): ... this.
651 (gimplify_seq_add_stmt): New inline wrapper for it.
652 * tree-vect-patterns.c (append_pattern_def_seq): Use
653 gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.
654
655 PR tree-optimization/51596
656 * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges
657 when needed.
658
659 PR middle-end/51590
660 PR tree-optimization/51606
661 * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq):
662 New inline functions.
663 (vect_recog_over_widening_pattern,
664 vect_recog_vector_vector_shift_pattern,
665 vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern,
666 adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them.
667
668 2011-12-19 Richard Guenther <rguenther@suse.de>
669
670 PR lto/51572
671 * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL
672 from TYPE_FIELDS.
673 (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS.
674 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do
675 not stream TREE_CHAIN.
676 (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
677 using streamer_write_chain.
678 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
679 Do not stream TREE_CHAIN.
680 (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
681 using streamer_read_chain.
682 * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs.
683 * gimple.c (gimple_canonical_types_compatible_p): Properly
684 handle trailing non-FIELD_DECLs in TYPE_FIELDS.
685
686 2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
687
688 * configure: Regenerate.
689
690 2011-12-19 Bernd Schmidt <bernds@codesourcery.com>
691
692 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for
693 partial integer modes.
694
695 2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
696
697 PR target/51532
698 * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define.
699 * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS.
700 * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 ||
701 TARGET_68040).
702
703 2011-12-18 Anatoly Sokolov <aesok@post.ru>
704
705 * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
706 LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP,
707 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
708 * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
709 (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg,
710 ia64_legitimate_address_disp, ia64_legitimate_address_p): New
711 functions.
712
713 2011-12-17 Tom de Vries <tom@codesourcery.com>
714
715 PR tree-optimization/51491
716 * tree-ssa-ccp.c (insert_clobber_before_stack_restore)
717 (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function.
718 (ccp_fold_stmt): Use insert_clobbers_for_var after a successful
719 fold_builtin_alloca_with_align.
720 (ccp_visit_stmt): Calculate and free dominator info.
721
722 2011-12-16 Eric Botcazou <ebotcazou@adacore.com>
723
724 * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
725 (frame_blockage): New expander.
726 (frame_blockage<P:mode>): New instruction.
727 * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
728 instructions establishing the frame isn't atomic, emit frame blockage.
729
730 2011-12-16 Tristan Gingold <gingold@adacore.com>
731
732 * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define.
733
734 2011-12-16 Tristan Gingold <gingold@adacore.com>
735
736 * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias.
737 (alpha_write_one_linkage): Use assemble_name to emit linkage name.
738
739 2011-12-16 Tristan Gingold <gingold@adacore.com>
740
741 * config/vms/t-vms (vms.o, vms-c.o): Force output filename.
742
743 2011-12-16 Tristan Gingold <gingold@adacore.com>
744
745 * config/vms/vms.c (VMS_CRTL_GLOBAL): Define.
746 (vms_patch_builtins): Handle.
747 * config/vms/vms-crtlmap.map: Add an entry for environ.
748
749 2011-12-16 Jakub Jelinek <jakub@redhat.com>
750
751 PR debug/51557
752 * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes
753 other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND.
754
755 PR tree-optimization/51576
756 * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt
757 even if fold_stmt didn't change anything.
758
759 2011-12-16 Richard Guenther <rguenther@suse.de>
760
761 PR lto/51572
762 * dwarf2out.c (gen_type_die_with_usage): Use the context of
763 the TYPE_DECL as well if it is file-scope.
764
765 2011-12-15 DJ Delorie <dj@redhat.com>
766
767 * config/rl78/rl78.md (return): Rename to rl78_return.
768 * config/rl78/rl78.c (rl78_expand_epilogue): Use new name.
769 (rl78_expand_eh_epilogue): Use new name.
770 (rl78_calculate_death_notes): Likewise.
771
772 2011-12-15 Jakub Jelinek <jakub@redhat.com>
773
774 * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt
775 field, add pattern_def_seq.
776 (STMT_VINFO_PATTERN_DEF_STMT): Remove.
777 (STMT_VINFO_PATTERN_DEF_SEQ): Define.
778 (NUM_PATTERNS): Bump to 10.
779 * tree-vect-loop.c (vect_determine_vectorization_factor,
780 vect_transform_loop): Adjust for pattern def changing from a single
781 gimple stmt to gimple_seq.
782 * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info,
783 free_stmt_vec_info): Likewise.
784 * tree-vect-patterns.c (vect_recog_over_widening_pattern,
785 vect_recog_vector_vector_shift_pattern,
786 vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
787 adjust_bool_pattern, vect_mark_pattern_stmts): Likewise.
788 (vect_recog_sdivmod_pow2_pattern): New function.
789 (vect_vect_recog_func_ptrs): Add it.
790
791 * config/i386/sse.md (vcond<V_256:mode><VI_256:mode>,
792 vcond<V_128:mode><VI124_128:mode>, vcond<VI8F_128:mode>v2di):
793 Use general_operand instead of nonimmediate_operand for
794 operand 5 and no predicate for operands 1 and 2.
795 * config/i386/i386.c (ix86_expand_int_vcond): Optimize
796 x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic
797 resp. logical shift.
798
799 2011-12-15 Georg-Johann Lay <avr@gjlay.de>
800
801 * config/avr/avr-protos.h (print_operand): Remove.
802 (print_operand_address): Remove.
803 * config/avr/avr.h (PRINT_OPERAND): Remove.
804 (PRINT_OPERAND_ADDRESS): Remove.
805 (PRINT_OPERAND_PUNCT_VALID_P): Remove.
806 * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define.
807 (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
808 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
809 (print_operand_address): Rename to...
810 (avr_print_operand_address): ...this and make static.
811 (print_operand): Rename to...
812 (avr_print_operand): ...this and make static.
813 (avr_print_operand_punct_valid_p): New static function.
814
815 2011-12-15 Andreas Tobler <andreast@fgznet.ch>
816
817 * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
818
819 2011-12-15 Jakub Jelinek <jakub@redhat.com>
820
821 PR c/51360
822 * c-parser.c (c_parser_omp_clause_num_threads,
823 c_parser_omp_clause_schedule): Call mark_exp_read.
824
825 2011-12-15 Romain Geissler <romain.geissler@gmail.com>
826
827 * builtins.def (BUILT_IN_STPNCPY_CHK): New definition.
828 * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning):
829 Add BUILT_IN_STPNCPY_CHK case.
830 * gimple-fold.c (gimple_fold_builtin): Likewise.
831 * tree-object-size.c (pass_through_call): Likewise.
832 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
833 call_may_clobber_ref_p_1): Likewise.
834 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
835 find_func_clobbers): Likewise.
836 * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk
837 * builtins.c (fold_builtin_strncpy_chk): Likewise.
838 Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is
839 ignored.
840
841 2011-12-15 Richard Guenther <rguenther@suse.de>
842
843 PR lto/51567
844 * gimple.c (compare_type_names_p): Also compare the TREE_CODE.
845 (iterative_hash_name): Also hash the TREE_CODE.
846 (gimple_types_compatible_p_1): For types with a TYPE_DECL
847 name and a type DECL_CONTEXT recurse to that type.
848 (iterative_hash_gimple_type): Likewise.
849
850 2011-12-15 Iain Sandoe <iains@gcc.gnu.org>
851
852 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move update of
853 VRSave mask to save_world() when that is in use.
854
855 2011-12-15 Richard Guenther <rguenther@suse.de>
856
857 * lto-wrapper.c (run_gcc): In non-parallel mode remove
858 ltrans inputs immediately after processing them. In parallel
859 mode truncate the ltrans inputs in the make rule that processes
860 them if temporary files are not to be preserved.
861
862 2011-12-15 Anatoly Sokolov <aesok@post.ru>
863
864 * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
865 * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost):
866 New functions.
867 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
868
869 2011-12-15 Richard Guenther <rguenther@suse.de>
870
871 PR lto/51564
872 * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
873 STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
874 uses documentation.
875 (TREE_ASM_WRITTEN): Update documentation to mention its use
876 on TYPE_DECLs from debug info generation.
877 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
878 TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
879 all other types.
880
881 2011-12-15 Georg-Johann Lay <avr@gjlay.de>
882
883 PR target/51050
884 * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
885 (avr_prologue_setup_frame): Ditto.
886
887 2011-12-15 Jakub Jelinek <jakub@redhat.com>
888
889 PR debug/51517
890 * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
891 !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
892
893 2012-12-15 Richard Guenther <rguenther@suse.de>
894
895 Revert
896 PR lto/48437
897 * lto-streamer-out.c (tree_is_indexable): Exclude block-local
898 extern declarations.
899
900 PR lto/48508
901 PR lto/48437
902 * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
903 VAR_DECLs and FUNCTION_DECLs locally.
904
905 2011-12-14 Richard Henderson <rth@redhat.com>
906
907 * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
908 (*compare_negsi_si, *compare_addsi2_op0): Likewise.
909 (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
910 (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
911
912 2011-12-14 Richard Guenther <rguenther@suse.de>
913
914 * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
915 propagating all kinds of constants.
916
917 2011-12-14 Richard Guenther <rguenther@suse.de>
918
919 PR lto/51497
920 * lto-streamer-in.c (lto_read_body): Fixup local types
921 TYPE_CANONICAL and variant chain.
922
923 2011-12-14 Richard Guenther <rguenther@suse.de>
924
925 * tree.c (free_lang_data_in_type): Do not clear fields
926 dependent on debuginfo level setting.
927 (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
928 * tree.h (TYPE_STUB_DECL): Properly check that we access a type.
929
930 2011-12-14 Georg-Johann Lay <avr@gjlay.de>
931
932 PR target/50931
933 * config/avr/avr.md (mulpsi3): New expander.
934 (*umulqihipsi3, *umulhiqipsi3): New insns.
935 (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
936 (mulsqipsi3, *mulpsi3): New insn-and-splits.
937 (ashlpsi3): Turn to expander. Move insn code to...
938 (*ashlpsi3): ...this new insn.
939
940 2011-12-14 Richard Guenther <rguenther@suse.de>
941
942 * tree-cfg.c (replace_uses_by): Only mark blocks altered
943 that will make a difference. Only recompute ADDR_EXPR
944 invariantness if it could possibly have changed. Do so
945 before folding the statement.
946
947 2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
948
949 * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
950 * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
951 * lto-streamer-in.c (lto_read_body): Likewise.
952 (lto_input_toplevel_asms): Likewise.
953 * lto-section-in.c (lto_create_simple_input_block): Likewise.
954 * ipa-inline-analysis.c (inline_read_section): Likewise.
955 * ipa-prop.c (ipa_prop_read_section): Likewise.
956
957 * df.h (DF_NOTE): Fix typo in comment.
958
959 2011-12-13 Aldy Hernandez <aldyh@redhat.com>
960
961 * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
962 DECL_LANG_SPECIFIC.
963
964 2011-12-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
965
966 * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
967
968 2011-12-13 Andrew Pinski <apinski@cavium.com>
969 Adam Nemet <anemet@caviumnetworks.com>
970
971 * config/mips/mips-cpus.def: Add Octeon2.
972 * config/mips/mips-tables.opt: Regenerate.
973 * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
974 * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
975 * config/mips/octeon.md (octeon_arith): Add Octeon2.
976 (octeon_condmove): Likewise.
977 (octeon_load): Rename to ..
978 (octeon_load_o1): this.
979 (octeon_load_o2): New reserve.
980 (octeon_cop_o2): New reserve.
981 (octeon_store): Match Octeon2 also.
982 (octeon_brj): Rename to ..
983 (octeon_brj_o1): this.
984 (octeon_brj_o2): New reserve.
985 (octeon_imul3): Rename to ...
986 (octeon_imul3_o1): this.
987 (octeon_imul3_o2): New reserve.
988 (octeon_imul): Rename to ...
989 (octeon_imul_o1): this.
990 (octeon_imul_o2): New reserve.
991 (octeon_mfhilo): Rename to ...
992 (octeon_mfhilo_o1): This.
993 (octeon_mfhilo_o2): New reserve.
994 (octeon_imadd): Rename to ...
995 (octeon_imadd_o1): this.
996 (octeon_imadd_o2): New reserve.
997 (octeon_idiv): Rename to ..
998 (octeon_idiv_o1): This.
999 (octeon_idiv_o2_si): New reserve.
1000 (octeon_idiv_o2_di): Likewise.
1001 (octeon_unknown): Match Octeon2 also.
1002 * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
1003 (mips_issue_rate): Octeon2 can issue 2 at a time.
1004 * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
1005 (TARGET_OCTEON2): New define.
1006 (TUNE_OCTEON): Match Octeon2 also.
1007
1008 2011-12-13 Richard Henderson <rth@redhat.com>
1009
1010 * config/sparc/tso.h: New file.
1011 * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
1012 * config/sparc/sparc.c (sparc_option_override): Honor
1013 SUBTARGET_DEFAULT_MEMORY_MODEL.
1014 * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
1015
1016 2011-12-13 Aldy Hernandez <aldyh@redhat.com>
1017
1018 PR middle-end/51443
1019 * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
1020 (diagnose_tm_1): Same.
1021 (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
1022 (ipa_tm_scan_irr_function): Return gracefully when no
1023 DECL_STRUCT_FUNCTION.
1024 (ipa_tm_scan_irr_block): Believe the user on TM attributes.
1025
1026 2011-12-13 Martin Jambor <mjambor@suse.cz>
1027
1028 PR middle-end/50628
1029 * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
1030 sub-accesses of scalar accesses.
1031
1032 2011-12-13 Martin Jambor <mjambor@suse.cz>
1033
1034 PR tree-optimization/51362
1035 * ipa-cp.c (estimate_local_effects): When estimated size of a
1036 specialized clone is zero, bump it to one.
1037
1038 2011-12-13 Richard Guenther <rguenther@suse.de>
1039
1040 PR lto/48354
1041 * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
1042 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
1043 Stream DECL_ORIGINAL_TYPE.
1044 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
1045 Likewise.
1046
1047 2011-12-13 Jakub Jelinek <jakub@redhat.com>
1048
1049 Revert
1050 2011-12-12 Jakub Jelinek <jakub@redhat.com>
1051
1052 PR tree-optimization/51481
1053 * gimple-fold.c (gimple_fold_call): Call
1054 maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH
1055 edges, but gimple_fold_builtin result can't throw.
1056
1057 2011-12-13 Jakub Jelinek <jakub@redhat.com>
1058 Michael Matz <matz@suse.de>
1059
1060 PR tree-optimization/51117
1061 * tree-eh.c (sink_clobbers): New function.
1062 (execute_lower_eh_dispatch): Call it for BBs ending with
1063 internally throwing RESX.
1064 * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
1065 at the first real instruction.
1066
1067 2011-12-13 Tristan Gingold <gingold@adacore.com>
1068
1069 * final.c (final_scan_insn): Guard the call to begin_epilogue
1070 debug hook.
1071
1072 2011-12-13 Tristan Gingold <gingold@adacore.com>
1073
1074 * vmsdbgout.c (vmsdbgout_write_source_line): New function.
1075 (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
1076 (vmsdbgout_begin_epilogue): Likewise.
1077 (vmsdbgout_end_epilogue): Likewise.
1078 (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
1079
1080 2011-12-13 Richard Guenther <rguenther@suse.de>
1081
1082 PR middle-end/51481
1083 * tree-cfg.c (replace_uses_by): Pass proper arguments to
1084 maybe_clean_or_replace_eh_stmt.
1085
1086 2011-12-13 Richard Guenther <rguenther@suse.de>
1087
1088 PR tree-optimization/51519
1089 * ipa-inline.c (edge_badness): Use edge growth in non-guessed
1090 branch probability case as well.
1091
1092 2011-12-13 Revital Eres <revital.eres@linaro.org>
1093
1094 * modulo-sched.c (mark_loop_unsched): Free bbs.
1095
1096 2011-12-12 Jakub Jelinek <jakub@redhat.com>
1097
1098 PR rtl-optimization/51495
1099 * function.c (thread_prologue_and_epilogue_insns): Don't add
1100 to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
1101 from basic blocks not needing prologue.
1102
1103 PR tree-optimization/51481
1104 * gimple-fold.c (gimple_fold_call): Call
1105 maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH
1106 edges, but gimple_fold_builtin result can't throw.
1107
1108 2011-12-12 Vladimir Makarov <vmakarov@redhat.com>
1109
1110 PR rtl-optimization/21617
1111 * ira-color.c (bucket_allocno_compare_func): Don't compare
1112 allocno classes. Compare number of hard registers needed.
1113
1114 2011-12-12 Eric Botcazou <ebotcazou@adacore.com>
1115
1116 PR tree-optimization/50569
1117 * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
1118 in the expression of MODEL instead of just the last one.
1119
1120 2011-12-12 Jakub Jelinek <jakub@redhat.com>
1121
1122 PR middle-end/51510
1123 * calls.c (internal_arg_pointer_based_exp_scan): Don't use
1124 VEC_safe_grow_cleared if idx is smaller than VEC_length.
1125
1126 2011-12-12 Richard Sandiford <richard.sandiford@linaro.org>
1127
1128 PR middle-end/50873
1129 * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
1130 instead of force_reg. Do nothing if the address is already a
1131 non-virtual pseudo register.
1132
1133 2011-12-12 Torvald Riegel <triegel@redhat.com>
1134
1135 * gimplify.c (voidify_wrapper_expr): Add default handling for
1136 outermost wrapper.
1137
1138 2011-12-12 Torvald Riegel <triegel@redhat.com>
1139
1140 * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
1141 commits as equal.
1142
1143 2011-12-12 Iain Sandoe <iains@gcc.gnu.org>
1144
1145 * config/darwin-sections.def (zobj_const_data_section): Fix over-
1146 length section name.
1147
1148 2011-12-11 Richard Henderson <rth@redhat.com>
1149
1150 * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
1151 BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
1152
1153 2011-12-11 Jakub Jelinek <jakub@redhat.com>
1154
1155 PR tree-optimization/51485
1156 * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
1157 DRs in call stmts.
1158
1159 2011-12-11 Patrick Marlier <patrick.marlier@gmail.com>
1160
1161 * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
1162
1163 2011-12-10 Richard Henderson <rth@redhat.com>
1164
1165 * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
1166 vec_select + vec_concat.
1167 (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
1168 altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
1169 (vec_perm_constv16qi): New.
1170 (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
1171 vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
1172 vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
1173 * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
1174 vec_select + vec_concat.
1175 (paired_merge10, paired_merge01, paired_merge11): Likewise.
1176 (vec_perm_constv2sf): New.
1177 (vec_interleave_highv2sf, vec_interleave_lowv2sf,
1178 vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
1179 * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
1180 vec_select + vec_concat.
1181 (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
1182 (vec_perm_constv2si): New.
1183 * config/rs6000/vector.md (vec_interleave_highv4sf,
1184 vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
1185 vec_interleave_low<VEC_64>): Remove.
1186 * config/rs6000/vsx.md (VS_double): New mode attribute.
1187 (UNSPEC_VSX_XXPERMDI): Remove.
1188 (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
1189 (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
1190 (vsx_xxpermdi_<VSX_L>): Change to expander.
1191 (vec_perm_const<VSX_D>): New.
1192 (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
1193 * config/rs6000/predicates.md (const_0_to_1_operand): New.
1194 (const_2_to_3_operand): New.
1195 * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
1196 (altivec_expand_vec_perm_const): New.
1197 (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
1198 (rs6000_vectorize_vec_perm_const_ok): New.
1199 (rs6000_do_expand_vec_perm): New.
1200 (rs6000_expand_extract_even, rs6000_expand_interleave): New.
1201 * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
1202 * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
1203 * config/rs6000/rs6000-protos.h: Update.
1204
1205 2011-12-10 Richard Henderson <rth@redhat.com>
1206
1207 * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
1208 CONST_INT to expand_vec_perm as the selector.
1209 * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
1210
1211 2011-12-10 Richard Henderson <rth@redhat.com>
1212
1213 * genmodes.c (struct mode_data): Remove wider_2x member.
1214 (blank_mode): Adjust initializer.
1215 (calc_wider_mode): Use XALLOCAVEC.
1216 (emit_move_wider): Select double-width same-element vectors for
1217 2xwider vectors.
1218 * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
1219 * config/i386/i386.c (doublesize_vector_mode): Remove.
1220 (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
1221
1222 2011-12-10 Joern Rennecke <joern.rennecke@embecosm.com>
1223
1224 * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
1225 (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
1226 (USE_STORE_POST_DECREMENT): Likewise.
1227
1228 * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
1229 broken out of ..
1230 (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO.
1231 (DWARF_FRAME_RETURN_COLUMN): New macro.
1232
1233 * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
1234 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
1235 Split "timer" value into "timer0" and "timer1".
1236 Handle page_miss, message and wand. Don't handle static_flag.
1237 Adjust warning text.
1238 (epiphany_start_function): New function.
1239 (epiphany_compute_function_type): Split "timer" value into "timer0"
1240 and "timer1". Handle page_miss, message and wand.
1241 Don't handle static_flag.
1242 (epiphany_expand_epilogue): Don't use frame_insn for status / iret
1243 restore.
1244 * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
1245 (enum epiphany_function_type):
1246 Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
1247 and EPIPHANY_FUNCTION_TIMER1.
1248 Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
1249 Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
1250 Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
1251
1252 2011-12-10 Nathan Sidwell <nathan@acm.org>
1253
1254 PR gcov-profile/51449
1255 * coverage.c (coverage_end_function): Always process the coverage
1256 variables.
1257
1258 2011-12-09 Aldy Hernandez <aldyh@redhat.com>
1259
1260 PR/51291
1261 * tree.c (build_common_builtin_nodes): Do not use TM_PURE
1262 attribute unless language has support for TM.
1263 * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in
1264 the absence of TM builtins.
1265
1266 2011-12-09 Eric Botcazou <ebotcazou@adacore.com>
1267
1268 * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
1269 Also check the TYPE_MODE to recognize useless pointer conversions.
1270
1271 2011-12-09 Jakub Jelinek <jakub@redhat.com>
1272
1273 PR tree-optimization/51117
1274 * tree-eh.c (optimize_clobbers): Don't remove just one
1275 clobber, but all consecutive clobbers before RESX.
1276 Use gimple_clobber_p predicate.
1277
1278 2011-12-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1279
1280 * config/rs6000/rs6000.c (altivec_expand_builtin): Call
1281 expand_call to return a valid funciton instead of return
1282 cosnt0_rtx/NULL_RTX if there was an error with the builtin.
1283 (altivec_expand_ld_builtin): Ditto.
1284 (rs6000_inner_target_options): If VSX is selected as a target
1285 attribute or pragma, enable ALTIVEC also.
1286 (rs6000_pragma_target_parse): Call rs6000_option_override_internal
1287 to do all of the standard processing when switching options,
1288 including redefining appropriate macros.
1289
1290 PR rtl-optimization/51469
1291 * varasm.c (default_binds_local_p_1): If the symbol is a gnu
1292 indirect function, mark the symbol as non-local.
1293
1294 2011-12-09 H.J. Lu <hongjiu.lu@intel.com>
1295
1296 PR bootstrap/51479
1297 * Makefile.in (errors.o): Restored.
1298
1299 2011-12-09 Richard Guenther <rguenther@suse.de>
1300
1301 PR lto/48042
1302 * tree.c (free_lang_data_in_decl): Remove freeing conditional
1303 on debuginfo level.
1304
1305 2011-12-09 Joern Rennecke <joern.rennecke@embecosm.com>
1306
1307 PR middle-end/40154
1308 * emit-rtl.c (set_dst_reg_note): New function.
1309 * rtl.h (set_dst_reg_note): Declare.
1310 * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
1311 (emit_libcall_block, expand_fix): Likewise.
1312 * function.c (assign_parm_setup_reg, expand_function_start): Likewise.
1313 * expmed.c (expand_mult_const, expand_divmod): Likewise.
1314 * reload1.c (gen_reload): Likewise.
1315
1316 * dse.c (get_stored_val, get_call_args): Use gen_int_mode.
1317 * expmed.c (expand_divmod): Likewise.
1318 * combine.c (simplify_if_then_else): Likewise.
1319
1320 2011-12-09 Kai Tietz <ktietz@redhat.com>
1321
1322 * ira-color.c (print_hard_regs_subforest): Use
1323 HOST_WIDEST_INT_PRINT_DEC instead of %lld.
1324 (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT.
1325 (add_allocno_hard_regs): Change type of argument cost
1326 to HOST_WIDEST_INT.
1327 * ira-conflict.c (build_conflict_bit_table): Replace use
1328 of long-long by HOST_WIDEST_INT.
1329
1330 2011-12-09 Georg-Johann Lay <avr@gjlay.de>
1331
1332 PR target/51425
1333 * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use
1334 zero_extract:QIHI instead of zero_extract:HI.
1335
1336 2011-12-09 Jakub Jelinek <jakub@redhat.com>
1337 Andrew Pinski <apinski@cavium.com>
1338
1339 PR tree-optimization/51117
1340 * tree-eh.c (optimize_clobbers): New function.
1341 (execute_lower_eh_dispatch): Call it.
1342
1343 2011-12-09 Richard Guenther <rguenther@suse.de>
1344
1345 PR tree-optimization/51482
1346 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1347 Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors.
1348
1349 2011-12-09 Kai Tietz <ktietz@redhat.com>
1350
1351 * implicit-zee.c (num_realized): Change type to long.
1352 (num_ze_opportunities): Likewise.
1353
1354 2011-12-08 Andrew Pinski <apinski@cavium.com>
1355
1356 * config/mips/mips-cpus.def (octeon+): New CPU.
1357 * config/mips/mips-tables.opt: Regenerate.
1358 * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
1359
1360 2011-12-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1361
1362 PR middle-end/39976
1363 * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI.
1364 (struct hashable_expr): Add struct phi field.
1365 (initialize_hash_element): Handle phis; change to use XCNEWVEC.
1366 (hashable_expr_equal_p): Handle phis.
1367 (iterative_hash_hashable_expr): Likewise.
1368 (print_expr_hash_elt): Likewise.
1369 (free_expr_hash_elt): Likewise.
1370 (dom_opt_enter_block): Create equivalences from redundant phis.
1371 (eliminate_redundant_computations): Handle redundant phis.
1372 (lookup_avail_expr): Handle phis.
1373
1374 2011-12-08 Jakub Jelinek <jakub@redhat.com>
1375
1376 PR tree-optimization/51466
1377 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
1378 TREE_SIDE_EFFECTS.
1379
1380 2011-12-08 Richard Guenther <rguenther@suse.de>
1381
1382 * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts
1383 volatile when processing operands of an ADDR_EXPR.
1384 (get_indirect_ref_operands): Likewise.
1385 (get_tmr_operands): Likewise.
1386 (get_expr_operands): Likewise.
1387
1388 2011-12-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1389
1390 PR target/50395
1391 * config/s390/s390.c (s390_mainpool_finish): Emit the jump over
1392 the literal pool as jump insn.
1393
1394 2011-12-08 Richard Guenther <rguenther@suse.de>
1395
1396 PR tree-optimization/49772
1397 * tree-inline.c (optimize_inline_calls): Remove bail out on errors.
1398
1399 2011-12-08 Richard Guenther <rguenther@suse.de>
1400
1401 PR lto/50747
1402 * lto-streamer-out.c (produce_symtab): Remove asserts.
1403
1404 2011-12-08 Richard Guenther <rguenther@suse.de>
1405
1406 PR lto/49945
1407 * lto-streamer-out.c (tree_is_indexable): Localize variably
1408 modified types and their FIELD_DECLs.
1409
1410 2011-12-08 Eric Botcazou <ebotcazou@adacore.com>
1411
1412 PR tree-optimization/51315
1413 * tree.h (get_object_or_type_alignment): Declare.
1414 * expr.c (get_object_or_type_alignment): Move to...
1415 * builtins.c (get_object_or_type_alignment): ...here. Add assertion.
1416 * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
1417 (tree_non_aligned_mem_p): ...this. Add ALIGN parameter. Look into
1418 MEM_REFs and use get_object_or_type_alignment for them.
1419 (build_accesses_from_assign): Adjust for above change.
1420 (access_precludes_ipa_sra_p): Likewise.
1421
1422 2011-12-08 Richard Guenther <rguenther@suse.de>
1423
1424 PR lto/48437
1425 * lto-streamer-out.c (tree_is_indexable): Exclude block-local
1426 extern declarations.
1427
1428 2011-12-07 Andrew Pinski <apinski@cavium.com>
1429
1430 PR middle-end/45416
1431 * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for
1432 SSA-expand.
1433
1434 2011-12-07 Richard Guenther <rguenther@suse.de>
1435
1436 PR tree-optimization/50823
1437 * ipa-inline.c (edge_badness): Do not account for the number of
1438 remaining calls.
1439
1440 2011-12-07 Martin Jambor <mjambor@suse.cz>
1441
1442 PR tree-optimization/50744
1443 * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive,
1444 compute evaluation in HOST_WIDEST_INT.
1445 (safe_add): New function
1446 (propagate_effects): Use safe_add to accumulate effects.
1447
1448 2011-12-06 Joel Sherrill <joel.sherrill@oarcorp.com>
1449
1450 * config/rs6000/rtems.h: Switch to using global_options_set
1451 in SUBSUBTARGET_OVERRIDE_OPTIONS.
1452
1453 2011-12-06 David S. Miller <davem@davemloft.net>
1454
1455 * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection.
1456
1457 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1458
1459 * config/avr/avr.c (avr_file_start): Fix missing ,
1460
1461 2011-12-06 Jakub Jelinek <jakub@redhat.com>
1462
1463 PR target/51354
1464 * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
1465 unconditionally.
1466
1467 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1468
1469 Forward-port from gcc-4_6-branch r181936 2011-12-02.
1470 * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and
1471 AT86RF401 have a 16-bit SP (their manual is bogus).
1472
1473 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1474
1475 Forward-port from gcc-4_6-branch r181936 2011-12-02.
1476
1477 PR target/51002
1478 * config/avr/avr.md (movhi_sp_r): Set insn condition to
1479 !AVR_HAVE_8BIT_SP.
1480 * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in
1481 %B0,__SP_H__" if AVR_HAVE_8BIT_SP.
1482 (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.
1483
1484 2011-12-06 Georg-Johann Lay <avr@gjlay.de>
1485
1486 PR target/51409
1487 PR target/49868
1488 * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1,
1489 ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4,
1490 ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum.
1491 (avr_addrspace_t): New typedef.
1492 (avr_addrspace): New declaration.
1493 * config/avr/avr-c.c (avr_toupper): New static function.
1494 (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use
1495 avr_addrspace to get address space information.
1496 * config/avr/avr.c (avr_addrspace): New variable.
1497 (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
1498 avr_asm_named_section, avr_section_type_flags,
1499 avr_asm_select_section, avr_addr_space_address_mode,
1500 avr_addr_space_convert, avr_emit_movmemhi): Use it.
1501 (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
1502 (avr_pgm_segment): Remove.
1503
1504 2011-12-06 Richard Guenther <rguenther@suse.de>
1505
1506 PR middle-end/50601
1507 * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
1508 quirk adjustjment ...
1509 * passes.c (rest_of_decl_compilation): ... here.
1510
1511 2011-12-06 Richard Guenther <rguenther@suse.de>
1512
1513 PR middle-end/51436
1514 * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check
1515 for the fact we do not have virtual operands when not optimizing.
1516
1517 2011-12-06 Richard Guenther <rguenther@suse.de>
1518
1519 PR tree-optimization/51245
1520 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
1521 New function.
1522 (vn_reference_lookup_3): Use it. Properly valueize all refs we create.
1523
1524 2011-12-06 Iain Sandoe <iains@gcc.gnu.org>
1525
1526 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
1527 rs6000_current_abi.
1528
1529 2011-12-06 Richard Guenther <rguenther@suse.de>
1530
1531 PR tree-optimization/51363
1532 * gimple.c (gimple_rhs_has_side_effects): Remove.
1533 * gimple.h (gimple_rhs_has_side_effects): Likewise.
1534 * tree-ssa-dom.c (optimize_stmt): Simplify conditional.
1535
1536 2011-12-06 Alan Modra <amodra@gmail.com>
1537
1538 PR target/50906
1539 * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
1540 Do not mark r11 setup as frame-related. Pass correct offset to
1541 rs6000_emit_savres_rtx. Correct out-of-line rs6000_frame_related
1542 arguments. Correct sp_offset. Remove "offset" fudge from
1543 in-line rs6000_frame_related call. Rename misleading variable.
1544 Fix comments and whitespace. Tidy some expressions.
1545 (rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
1546 to r11 in out-of-line case. Correct sp_offset. Pass correct
1547 offset to rs6000_emit_savres_rtx. Rename misleading variable.
1548 Fix comments and whitespace. Tidy some expressions.
1549 (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
1550 adjustment when !saving_GPRs_inline. Correct register mode
1551 used in address calcs.
1552 (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
1553 !restoring_GPRs_inline.
1554
1555 2011-12-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1556
1557 * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
1558 formatting character for vmov.f64 case.
1559
1560 2011-12-05 Jakub Jelinek <jakub@redhat.com>
1561
1562 PR tree-optimization/51396
1563 * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
1564 if MUL_RESULT has zero uses.
1565
1566 PR debug/51410
1567 * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
1568 for debug info if scope is file_scope.
1569
1570 PR c/51339
1571 * c-decl.c (c_finish_incomplete_decl, finish_decl): Call
1572 relayout_decl instead of layout_decl.
1573
1574 2011-12-05 Richard Sandiford <rdsandiford@googlemail.com>
1575
1576 * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
1577 if there is in epilogue.
1578
1579 2011-12-05 Richard Sandiford <rdsandiford@googlemail.com>
1580
1581 * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
1582 to emit_library_call_value.
1583 (expand_atomic_compare_and_swap): Likewise.
1584
1585 2011-12-05 Vladimir Makarov <vmakarov@redhat.com>
1586
1587 PR other/50775
1588 * ira-int.h (struct ira_object): Remove add_data.
1589 (OBJECT_ADD_DATA): Remove.
1590
1591 * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
1592 initialization.
1593
1594 * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
1595 allocno_hard_regs_t, allocno_hard_regs.
1596 (object_hard_regs_node_t, object_hard_regs_node): Rename to
1597 allocno_hard_regs_node_t and allocno_hard_regs_node.
1598 (struct allocno_color_data): Add new member last_process. Move
1599 profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
1600 from object_color_data.
1601 (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove.
1602 (curr_allocno_process): New static variable.
1603 (object_hard_regs_eq, object_hard_regs_htab): Rename to
1604 allocno_hard_regs_eq and allocno_hard_regs_htab.
1605 (init_object_hard_regs, finish_object_hard_regs): Rename to
1606 init_allocno_hard_regs and finish_allocno_hard_regs.
1607 (object_hard_regs_compare, object_hard_regs_node_t): Rename to
1608 allocno_hard_regs_compare and allocno_hard_regs_node_t.
1609 (create_new_object_hard_regs_node): Rename to
1610 create_new_allocno_hard_regs_node.
1611 (add_new_object_hard_regs_node_to_forest): Rename to
1612 add_new_allocno_hard_regs_node_to_forest.
1613 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
1614 Rename to add_allocno_hard_regs_to_forest and
1615 collect_allocno_hard_regs_cover.
1616 (setup_object_hard_regs_nodes_parent): Rename to
1617 setup_allocno_hard_regs_nodes_parent.
1618 (remove_unused_object_hard_regs_nodes): Rename to
1619 remove_unused_allocno_hard_regs_nodes.
1620 (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
1621 Rename to enumerate_allocno_hard_regs_nodes and
1622 allocno_hard_regs_nodes_num.
1623 (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
1624 allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
1625 (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
1626 allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
1627 (object_hard_regs_subnode_index): Rename to
1628 allocno_hard_regs_subnode_index.
1629 (setup_object_hard_regs_subnode_index): Rename to
1630 setup_allocno_hard_regs_subnode_index.
1631 (get_object_hard_regs_subnodes_num): Rename to
1632 get_allocno_hard_regs_subnodes_num.
1633 (form_object_hard_regs_nodes_forest): Rename to
1634 form_allocno_hard_regs_nodes_forest.
1635 (finish_object_hard_regs_nodes_tree): Rename to
1636 form_allocno_hard_regs_nodes_forest
1637 (finish_object_hard_regs_nodes_forest): Rename to
1638 finish_allocno_hard_regs_nodes_forest.
1639 (setup_left_conflict_sizes_p): Use allocno data instead of object ones.
1640 Process conflict allocnos once.
1641 (update_left_conflict_sizes_p): Use allocno data instead of object
1642 ones. Change prototype signature.
1643 (empty_profitable_hard_regs): Use allocno data instead of object ones.
1644 (setup_profitable_hard_regs): Ditto.
1645 (get_conflict_profitable_regs): Rename to
1646 get_conflict_and_start_profitable_regs. Use allocno data for
1647 profitable regs calculation.
1648 (check_hard_reg_p): Change prototype signature. Check profitable
1649 regs for allocno not the objects.
1650 (assign_hard_reg): Process conflict allocnos only once for
1651 updating conflict costs.
1652 (setup_allocno_available_regs_num): Use allocno data instead of
1653 object ones. Modify debug output.
1654 (color_pass): Remove initialization and finalization of object
1655 color data.
1656
1657 2011-12-05 Kazu Hirata <kazu@codesourcery.com>
1658
1659 PR target/51408
1660 * config/arm/arm.md (*minmax_arithsi): Always require the else
1661 clause in the MINUS case.
1662
1663 2011-12-05 Richard Guenther <rguenther@suse.de>
1664
1665 PR tree-optimization/50904
1666 * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
1667 (MEM_ANALYZABLE): New.
1668 (memory_references): Remove clobbered_vops and vop_ref_map
1669 members, add all_refs_stored_in_loop member.
1670 (memref_free): Adjust.
1671 (mem_ref_alloc): Likewise.
1672 (gather_mem_refs_stmt): Do not record clobbers, instead
1673 record refs for unanalyzable stmts.
1674 (gather_mem_refs_in_loops): Do not propagate clobbers.
1675 (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
1676 record_vop_access, get_vop_accesses, get_vop_stores,
1677 add_vop_ref_mapping): Remove.
1678 (create_vop_ref_mapping_loop): Adjust to simply record all stores.
1679 (analyze_memory_references): Adjust.
1680 (refs_independent_p): Check for not analyzable refs.
1681 (can_sm_ref_p): Likewise.
1682 (ref_indep_loop_p_1): Simplify.
1683 (tree_ssa_lim_finalize): Adjust.
1684
1685 * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
1686 rather than magic constants. Assign zero cost to PAREN_EXPR
1687 and SSA_NAME copies. Assign cost proportional to the vector
1688 size for vector constructors.
1689
1690 2011-12-05 Richard Guenther <rguenther@suse.de>
1691
1692 * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
1693 * tree-ssa-alias.c (ao_ref_init): Initialize it.
1694 (ao_ref_init_from_ptr_and_size): Likewise.
1695 (refs_may_alias_p_1): Two volatile accesses conflict.
1696 (ref_maybe_used_by_call_p_1): Likewise.
1697 (call_may_clobber_ref_p_1): Likewise.
1698 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
1699 volatile_p field.
1700
1701 2011-12-05 Richard Guenther <rguenther@suse.de>
1702
1703 * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA
1704 names. Remove SSA operand checking, call verify_ssa_operands.
1705 * tree-ssa-operands.h (verify_ssa_operands): Declare.
1706 * tree-ssa-operands.c (verify_ssa_operands): New function.
1707
1708 2011-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1709
1710 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
1711 * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
1712 * config/arm/constraints.md ("Dt"): New constraint.
1713 * config/arm/predicates.md
1714 (const_double_vcvt_power_of_two_reciprocal): New.
1715 * config/arm/vfp.md (FCVTI32typename): New.
1716 (FCVT): New iterator.
1717 (*combine_vcvt_f32_<FCVTI32typename>): New.
1718 (*combine_vcvt_f64_<FCVTI32typename>): New.
1719
1720 2011-12-05 Richard Guenther <rguenther@suse.de>
1721
1722 * cgraph.c (cgraph_create_edge_1): Initialize
1723 call_stmt_cannot_inline_p from the stmt if possible.
1724 (cgraph_make_edge_direct): Likewise.
1725 * gimple-streamer-in.c (input_gimple_stmt): Do not
1726 call gimple_call_set_cannot_inline.
1727 * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values.
1728 (gimple_call_set_cannot_inline): Remove.
1729 (gimple_call_cannot_inline_p): Likewise.
1730 * ipa-inline-analysis.c (initialize_inline_failed): Look
1731 at the edge call_stmt_cannot_inline_p flag.
1732 * ipa-inline.c (can_inline_edge_p): Likewise.
1733 (early_inliner): Only update the edge flag.
1734 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
1735 (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
1736 * cgraphunit.c (assemble_thunk): Likewise.
1737 * gimple-fold.c (gimple_fold_call): Likewise.
1738
1739 * tree.h (CALL_CANNOT_INLINE_P): Remove.
1740 * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
1741 * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
1742 alloca calls inline.
1743 * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
1744 * gimple.c (gimple_build_call_from_tree): Do not read
1745 CALL_CANNOT_INLINE_P.
1746 * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
1747
1748 2011-12-05 Jakub Jelinek <jakub@redhat.com>
1749 Eric Botcazou <ebotcazou@adacore.com>
1750
1751 PR middle-end/51323
1752 PR middle-end/50074
1753 * calls.c (internal_arg_pointer_exp_state): New variable.
1754 (internal_arg_pointer_based_exp_1,
1755 internal_arg_pointer_exp_scan): New functions.
1756 (internal_arg_pointer_based_exp): New function.
1757 (mem_overlaps_already_clobbered_arg_p): Use it.
1758 (expand_call): Free internal_arg_pointer_exp_state.cache vector
1759 and clear internal_arg_pointer_exp_state.scan_start.
1760
1761 2011-12-04 Kaz Kojima <kkojima@gcc.gnu.org>
1762
1763 * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
1764 * config/sh/sync.md: New file.
1765 * config/sh/sh.md: Include sync.md.
1766 * config/sh/sh.opt (msoft-atomic): New option.
1767 * doc/invoke.texi (SH Options): Document it.
1768
1769 2011-12-04 Nathan Sidwell <nathan@acm.org>
1770
1771 * gcov-io.h (struct gcov_info): Replace trailing array with
1772 pointer to array.
1773 * profile.c (branch_prob): Only call renamed
1774 coverage_begin_function once.
1775 * coverage.h (coverage_begin_output): Rename to ...
1776 (coverage_begin_function): ... here.
1777 * coverage.c (struct function_list): Rename to ...
1778 (struct coverage_data): ... this. Update all uses.
1779 (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals.
1780 (bbg_file_opened, bbg_function_announced): Remove.
1781 (get_coverage_counts): Adjust message.
1782 (coverage_begin_ouput): Rename to ...
1783 (coverage_begin_function): ... here. Move file opening to
1784 coverage_init. Adjust for being called only once.
1785 (coverage_end_function): Remove bbg file and inhibit further
1786 output here on error.
1787 (build_info_type): Adjust for change to pointer to array.
1788 (build_info): Receive array of function pointers and adjust.
1789 (create_coverage): Break into ...
1790 (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
1791 ... these, and adjust.
1792 (coverage_init): Open the notes file here. Tidy.
1793 (coverage_finish): Call coverage_obj_init etc.
1794
1795 2011-12-04 Ira Rosen <ira.rosen@linaro.org>
1796
1797 PR middle-end/51285
1798 * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
1799 phi nodes for outer loop in case of double reduction.
1800
1801 2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
1802
1803 PR target/51393
1804 * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
1805 parameter as long long.
1806
1807 2011-12-04 Richard Sandiford <rdsandiford@googlemail.com>
1808
1809 PR middle-end/51351
1810 * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
1811 in the external names.
1812
1813 2011-12-03 Jack Howarth <howarth@bromo.med.uc.edu>
1814
1815 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
1816 non-PIC code when targeting 10.7 or later.
1817
1818 2011-12-03 Iain Sandoe <iains@gcc.gnu.org>
1819
1820 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
1821 Darwin >= 10.
1822 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
1823 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
1824
1825 2011-12-03 Jakub Jelinek <jakub@redhat.com>
1826
1827 * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
1828 VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
1829 VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
1830 (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
1831 VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
1832 and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
1833
1834 PR debug/50317
1835 * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
1836 vars that aren't referenced.
1837 (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
1838 of unreferenced local vars.
1839 * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
1840 TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
1841
1842 2011-12-03 Anatoly Sokolov <aesok@post.ru>
1843
1844 * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
1845 * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
1846 * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1847 (arm_libcall_value_1, arm_function_value_regno_p): New function.
1848 (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
1849 (aapcs_libcall_value): Make static.
1850 (arm_libcall_value): Add static qualifier.
1851
1852 2011-12-02 Jakub Jelinek <jakub@redhat.com>
1853
1854 PR target/51387
1855 * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
1856 V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
1857 permutation instead of extract even permutation.
1858
1859 2011-12-02 Nathan Sidwell <nathan@acm.org>
1860
1861 * gcov.c (struct arc_info): Add is_throw field.
1862 (struct (block_info): Add exceptional field, reduce flags size to
1863 account for it.
1864 (struct function_info): Add has_catch field.
1865 (struct line_info): Add unexceptional field.
1866 (process_file): Call find_exception_blocks if necessary.
1867 (read_graph_file): Adjust. Note if an exceptional edge is seen.
1868 (find_exception_blocks): New.
1869 (add_line_counts): Set line's unexceptional flag if not exceptional.
1870 (output_branch_count): Note exceptional arcs, lines and blocks.
1871 * gcov-dump.c (tag_arcs): Decode arc flags.
1872 * doc/gcov.texi: Document '=====' lines.
1873
1874 2011-12-02 Anatoly Sokolov <aesok@post.ru>
1875
1876 * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1877 PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
1878 * config/ia64/ia64-protos.h (ia64_print_operand,
1879 ia64_print_operand_address): Remove.
1880 * config/ia64/ia64.c (TARGET_PRINT_OPERAND,
1881 TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
1882 Define.
1883 (ia64_print_operand_punct_valid_p): New function.
1884 (ia64_print_operand, ia64_print_operand_address): Make static.
1885
1886 2011-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1887
1888 PR target/51390
1889 * config/rs6000/rs6000.c (def_builtin): Use the correct field to
1890 figure out the function's attributes.
1891 (struct builtin_description): Mark mask field as const since we no
1892 longer need to modify it for SPE and PAIRED builtins.
1893
1894 2011-12-02 Joseph Myers <joseph@codesourcery.com>
1895
1896 Revert:
1897
1898 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
1899
1900 PR rtl-opt/37451
1901 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
1902 zero extend count after the correction to it is done.
1903 (doloop_optimize): Update call to doloop_modify, don't zero extend
1904 count before call.
1905
1906 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1907
1908 PR rtl-opt/37782
1909 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1910 mode count is in.
1911 (doloop_optimize): Update call to doloop_modify.
1912
1913 2011-12-02 Richard Guenther <rguenther@suse.de>
1914
1915 PR lto/47259
1916 * ipa.c (varpool_externally_visible_p): Register variables
1917 are always externally visible.
1918
1919 2011-12-02 Sameera Deshpande <sameera.deshpande@arm.com>
1920
1921 * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
1922 non-NULL.
1923
1924 2011-12-02 Martin Jambor <mjambor@suse.cz>
1925
1926 PR tree-optimization/50622
1927 * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
1928 if both lacc and racc are grp_partial_lhs.
1929
1930 2011-12-01 Kaz Kojima <kkojima@gcc.gnu.org>
1931
1932 PR target/50814.
1933 * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
1934 TARGET_SH3.
1935 (shl_sext_kind): Likewise.
1936 * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
1937 * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
1938 (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
1939 (ashlsi3): Likewise.
1940 (ashrsi3_d): Likewise.
1941 (lshrsi3_d): Likewise.
1942 (lshrsi3): Likewise.
1943
1944 2011-12-01 Diego Novillo <dnovillo@google.com>
1945
1946 PR bootstrap/51346
1947 * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
1948 use the statement's inline indicator instead of E's.
1949 Remove consistency check.
1950
1951 2011-12-01 Diego Novillo <dnovillo@google.com>
1952
1953 PR bootstrap/51346
1954 Revert
1955
1956 2011-11-29 Diego Novillo <dnovillo@google.com>
1957
1958 * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
1959 Update field call_stmt_cannot_inline_p from call
1960 graph edge, if needed.
1961 * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
1962
1963 2011-12-01 Nathan Sidwell <nathan@acm.org>
1964
1965 PR gcov-profile/51113
1966 * coverage.c (build_var): Keep coverage variables static.
1967
1968 2011-12-01 Jakub Jelinek <jakub@redhat.com>
1969
1970 PR tree-optimization/51356
1971 * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
1972 vectype doesn't have VECTOR_MODE_P.
1973
1974 PR debug/50317
1975 * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
1976 as unnecessary a store to a variable with gimple reg type.
1977 * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
1978 on local unreferenced variables.
1979 * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
1980 for !target_for_debug_bind variables.
1981
1982 2011-12-01 Patrick Marlier <patrick.marlier@gmail.com>
1983
1984 PR middle-end/51273
1985 * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
1986 * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
1987 * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
1988
1989 2011-12-01 Andrew Pinski <apinski@cavium.com>
1990
1991 PR lto/51198
1992 * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
1993 DECL_INITIAL also.
1994
1995 2011-12-01 Jakub Jelinek <jakub@redhat.com>
1996
1997 PR tree-optimization/51246
1998 * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
1999
2000 PR rtl-optimization/51014
2001 * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
2002 both from bb and orig_bb.
2003
2004 2011-12-01 Joern Rennecke <joern.rennecke@embecosm.com>
2005
2006 PR tree-optimization/50802
2007 * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
2008 considering what happens to ranges during sign changes and/or
2009 intermediate narrowing conversions.
2010
2011 2011-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2012
2013 PR middle-end/50283
2014 * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
2015 (in_nullified_branch_delay): Likewise.
2016 (in_call_delay): Likewise.
2017
2018 2011-11-30 Richard Henderson <rth@redhat.com>
2019
2020 * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
2021 boolean return is true.
2022
2023 2011-11-30 Jakub Jelinek <jakub@redhat.com>
2024
2025 PR rtl-optimization/51044
2026 * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
2027 rather than just insn body.
2028
2029 PR target/50725
2030 * function.c (thread_prologue_and_epilogue_insns): If
2031 stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
2032 regset.
2033
2034 PR middle-end/51089
2035 * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
2036 avoid creating duplicate edges here.
2037 (cleanup_empty_eh_unsplit): And remove it in the caller.
2038
2039 2011-11-30 Andrew Pinski <apinski@cavium.com>
2040
2041 PR c/51321
2042 * c-parser.c (c_parser_postfix_expression): Check groktypename results
2043 before looking at the main variant.
2044
2045 2011-11-30 Jakub Jelinek <jakub@redhat.com>
2046
2047 PR rtl-optimization/48721
2048 * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
2049 reg_pending_barrier to TRUE_BARRIER.
2050
2051 PR rtl-optimization/48721
2052 * sched-ebb.c (begin_move_insn): Insert empty unreachable
2053 block after BARRIER if insn is followed by it.
2054
2055 2011-11-30 Richard Henderson <rth@redhat.com>
2056
2057 * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
2058 * config/sparc/sparc.opt (mmemory-model=): New option.
2059 * doc/invoke.texi (Sparc Options): Document it.
2060 * config/sparc/sparc.c (sparc_option_override): Provide default
2061 for sparc_memory_model.
2062 (sparc_emit_membar_for_model): Omit barrier combinations that are
2063 implied by the memory model.
2064
2065 2011-11-30 Richard Henderson <rth@redhat.com>
2066
2067 * config/sparc/sync.md (I124MODE): New mode iterator.
2068 (memory_barrier): Remove.
2069 (atomic_exchangesi): New.
2070 (swapsi): Rename from *swapsi.
2071 (atomic_test_and_set<I124MODE>): New.
2072 (ldstubqi): Rename from *ldstubqi, merge with expander.
2073 (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
2074 (sync_lock_test_and_setsi): Remove.
2075 (sync_lock_test_and_set<I12MODE>): Remove.
2076
2077 2011-11-30 Richard Henderson <rth@redhat.com>
2078
2079 * config/sparc/constraints.md ("w"): New.
2080 * config/sparc/predicates.md (mem_noofs_operand): New.
2081 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
2082 Generate the boolean result of the atomic_compare_exchange.
2083 (sparc_expand_compare_and_swap): New.
2084 * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
2085 (atomic_compare_and_swap<I48MODE>_1): Rename from
2086 *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
2087 (*atomic_compare_and_swapdi_v8plus): Rename from
2088 *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
2089 (sync_compare_and_swap<I12MODE>): Remove.
2090 (sync_compare_and_swap<I48MODE>): Remove.
2091
2092 2011-11-30 Richard Henderson <rth@redhat.com>
2093
2094 * config/sparc/predicates.md (register_or_v9_zero_operand): New.
2095 * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
2096 * config/sparc/sync.md (atomic_load<I>): New.
2097 (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
2098
2099 2011-11-30 Richard Henderson <rth@redhat.com>
2100
2101 * config/sparc/predicates.md (zero_or_v7_operand): New.
2102 * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
2103 * config/sparc/sparc-protos.h: Update.
2104 * config/sparc/sync.md (mem_thread_fence): New.
2105 (memory_barrier): Use sparc_emit_membar_for_model.
2106 (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
2107 (*membar_v8): Accept and ignore the membar mask.
2108 (*membar): Accept and print the membar mask.
2109
2110 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2111
2112 * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
2113 * config/arm/arm.md (mul64): New attribute.
2114 (generic_sched): Cortex-A15 is not scheduled generically.
2115 (cortex-a15.md): Include.
2116 * config/arm/cortex-a15.md: New machine description.
2117 * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
2118
2119 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2120
2121 * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
2122
2123 2011-11-30 Iain Sandoe <iains@gcc.gnu.org>
2124
2125 * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
2126 * doc/tm.texi: Regenerate.
2127 * flags.h (flag_next_runtime): Remove references.
2128 * toplev.c: Likewise.
2129 * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
2130 * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
2131 * config/darwin.c (darwin_override_options): Provide default
2132 Objective-C abi settings and target conflict checks.
2133 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
2134 code. Adjust indenting.
2135
2136 2011-11-29 Joseph Myers <joseph@codesourcery.com>
2137
2138 * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
2139 (REG_CLASS_CONTENTS): Add NON_SP_REGS.
2140 (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
2141 * config/sh/constraints.md (u): New constraint.
2142
2143 2011-11-29 Oleg Endo <oleg.endo@t-online.de>
2144
2145 PR target/51337
2146 * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
2147 register is being loaded from a pseudo in memory.
2148
2149 2011-11-29 DJ Delorie <dj@redhat.com>
2150
2151 * config.gcc (rl78-*-elf): New case.
2152 * doc/extend.texi: Add RL78 documentation.
2153 * doc/invoke.texi: Likewise.
2154 * doc/md.texi: Likewise.
2155 * doc/contrib.texi: Add RL78.
2156 * doc/install.texi: Add rl78-*-elf.
2157 * config/rl78: New directory for the Renesas RL78.
2158
2159 2011-11-29 Jakub Jelinek <jakub@redhat.com>
2160
2161 PR tree-optimization/51247
2162 * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
2163 types instead of adding 1 subtract -1 and instead of subtracting 1
2164 add -1 to avoid overflows.
2165
2166 2011-11-29 Andrew MacLeod <amacleod@redhat.com>
2167
2168 PR target/50123
2169 * optabs.c (maybe_optimize_fetch_op): New. Look for more optimal
2170 instructions for a FECTH_OP or OP_FECTH sequence.
2171 (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
2172
2173 2011-11-29 Uros Bizjak <ubizjak@gmail.com>
2174
2175 * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
2176 (movdi_via_fpu): Remove.
2177 (loaddi_via_fpu): New insn pattern.
2178 (storedi_via_fpu): Ditto.
2179 (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
2180 (atomic_storedi_fpu): Ditto.
2181 * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
2182 (subst_stack_regs_pat): Handle UNSPEC_STA.
2183
2184 2011-11-29 Uros Bizjak <ubizjak@gmail.com>
2185
2186 * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
2187 allocate scratch memory for alternative 0.
2188
2189 2011-11-29 Michael Meissner <meissner@linux.vnet.ibm.com>
2190
2191 * config/rs6000/rs6000-builtins.def: Completely rewrite builtin
2192 handling to centralize more of the builtins in this file. Change
2193 some builtin enumerations to be more consistant. Use a new mask
2194 to hold the current builtins, including SPE and PAIRED builtins
2195 which no longer are set via target_flags masks. Add
2196 -mdebug=builtin debug support. For power machines, define all
2197 Altivec and VSX buitins when the compiler starts, but don't allow
2198 the use of a builtin unless the appropriate switch is used, or
2199 #pragma GCC target is used to change the options. If the user
2200 uses #pragma GCC target, update the appropriate hardware macros.
2201 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
2202 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
2203 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
2204 (rs6000_define_or_undefine_macro): Ditto.
2205 (rs6000_target_modify_macros): Ditto.
2206 (rs6000_cpu_cpp_builtins): Ditto.
2207 (altivec_overloaded_builtins): Ditto.
2208 (altivec_build_resolved_builtin): Ditto.
2209 * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
2210 (rs6000_builtin_info): Ditto.
2211 (def_builtin): Ditto.
2212 (enable_mask_for_builtins): Ditto.
2213 (DEBUG_FMT_X): Ditto.
2214 (rs6000_debug_reg_global): Ditto.
2215 (rs6000_builtin_mask_calculate): Ditto.
2216 (rs6000_option_override_internal): Ditto.
2217 (rs6000_builtin_conversion): Ditto.
2218 (rs6000_builtin_vectorized_function): Ditto.
2219 (bdesc_3arg): Ditto.
2220 (bdesc_dst): Ditto.
2221 (bdesc_2arg): Ditto.
2222 (builtin_description_predicates): Ditto.
2223 (bdesc_altivec_preds): Ditto.
2224 (bdesc_spe_predicates): Ditto.
2225 (bdesc_spe_evsel): Ditto.
2226 (bdesc_paired_preds): Ditto.
2227 (bdesc_abs): Ditto.
2228 (bdesc_1arg): Ditto.
2229 (rs6000_overloaded_builtin_p): Ditto.
2230 (rs6000_expand_unop_builtin): Ditto.
2231 (bdesc_2arg_spe): Ditto.
2232 (spe_expand_builtin): Ditto.
2233 (rs6000_invalid_builtin): Ditto.
2234 (rs6000_expand_builtin): Ditto.
2235 (rs6000_init_builtins): Ditto.
2236 (spe_init_builtins): Ditto.
2237 (paired_init_builtins): Ditto.
2238 (altivec_init_builtins): Ditto.
2239 (builtin_function_type): Ditto.
2240 (rs6000_common_init_builtins): Ditto.
2241 (rs6000_builtin_reciprocal): Ditto.
2242 (rs6000_builtin_mask_names): Ditto.
2243 (rs6000_pragma_target_parse): Ditto.
2244 (rs6000_function_specific_print): Ditto.
2245 * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
2246 (MASK_DEBUG_ALL): Ditto.
2247 (TARGET_DEBUG_BUILTIN): Ditto.
2248 (TARGET_EXTRA_BUILTINS): Ditto.
2249 (REGISTER_TARGET_PRAGMAS): Ditto.
2250 (enum rs6000_btc): Ditto.
2251 (RS6000_BTC_*): Ditto.
2252 (RS6000_BTM_*): Ditto.
2253 (enum rs6000_builtins): Ditto.
2254 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
2255 (rs6000_target_modify_macros): Ditto.
2256 (rs6000_target_modify_macros_ptr): Ditto.
2257
2258 * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
2259 standard name for converting vector unsigned values to floating
2260 point. Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
2261 is handled by machine independent code.
2262 * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
2263 (rs6000_builtin_conversion): Ditto.
2264
2265 2011-11-29 Dodji Seketeli <dodji@redhat.com>
2266
2267 * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
2268 (maybe_unwind_expanded_macro_loc): Adjust.
2269
2270 2011-11-29 David Edelsohn <dje.gcc@gmail.com>
2271 Aldy Hernandez <aldyh@redhat.com>
2272
2273 * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
2274 if DECL_ONE_ONLY.
2275 (ipa_tm_create_version): Same.
2276
2277 2011-11-29 Bernd Schmidt <bernds@codesourcery.com>
2278
2279 * haifa-sched.c (recompute_todo_spec): Simplify and correct the
2280 code checking for a clobber of a condition register when deciding
2281 whether to predicate.
2282
2283 2011-11-29 Diego Novillo <dnovillo@google.com>
2284
2285 * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
2286 Update field call_stmt_cannot_inline_p from call graph edge, if needed.
2287 * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2288
2289 2011-11-29 Sameera Deshpande <sameera.deshpande@arm.com>
2290
2291 * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
2292 (movdf_soft_insn): Likewise.
2293 * config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
2294 * config/arm/neon.md (neon_mov<mode>): Likewise.
2295 * config/arm/vfp.md (movdi_vfp): Likewise.
2296 (movdi_vfp_cortexa8): Likewise.
2297 (movdf_vfp): Likewise.
2298
2299 2011-11-29 Jakub Jelinek <jakub@redhat.com>
2300
2301 PR middle-end/50074
2302 * expr.c (expand_expr_addr_expr_1): Don't call force_operand for
2303 EXPAND_SUM modifier.
2304
2305 2011-11-29 Ira Rosen <ira.rosen@linaro.org>
2306
2307 PR tree-optimization/51301
2308 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
2309 the last statement doesn't convert to a bigger type than the original
2310 type of the computation.
2311
2312 2011-11-28 Richard Henderson <rth@redhat.com>
2313
2314 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
2315 Handle overlap between retval and oldval. Always compute boolval
2316 from CR0 EQ value.
2317
2318 2011-11-28 Jakub Jelinek <jakub@redhat.com>
2319
2320 PR debug/50317
2321 * tree-ssa.c (execute_update_addresses_taken): Remove
2322 var ={v} {CLOBBER} stmts instead of rewriting them into
2323 var_N ={v} {CLOBBER}.
2324
2325 PR middle-end/50907
2326 * function.c (convert_jumps_to_returns): When redirecting an edge
2327 succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
2328
2329 PR tree-optimization/50078
2330 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
2331 TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
2332
2333 PR tree-optimization/50682
2334 * tree-eh.c (maybe_remove_unreachable_handlers): New function.
2335 * tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
2336 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
2337
2338 2011-11-28 Georg-Johann Lay <avr@gjlay.de>
2339
2340 * doc/extend.texi (AVR Built-in Functions): Add documentation for
2341 __builtin_avr_map8 and __builtin_avr_map16.
2342
2343 * config/avr/avr.md: Document new %t and %T asm output codes.
2344 (define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
2345 (adjust_len): Add map_bits.
2346 (map_bitsqi, map_bitshi): New insns.
2347 * config/avr/avr-protos.h (avr_out_map_bits): New.
2348 * config/avr/avr-protos.c (print_operand): Implement %t and %T.
2349 (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
2350 (avr_double_int_push_digit): New function.
2351 (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
2352 (avr_sig_map, avr_map_hamming_byte): New functions.
2353 (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
2354 avr_out_map_bits): New functions.
2355 (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2356 (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
2357 (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
2358 (avr_expand_builtin): ...and expand them.
2359 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
2360 __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
2361
2362 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2363
2364 PR target/51278
2365 * config/mips/mips.c (mips_rtx_costs): Handle baddu.
2366
2367 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2368
2369 * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
2370
2371 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2372
2373 * config/mips/mips-protos.h (mips_emit_binary): Declare.
2374 * config/mips/mips.c (mips_emit_binary): Make global.
2375 (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
2376 (mips_conditional_register_usage): Don't treat LO and HI as
2377 register operands in MIPS16 mode.
2378 (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
2379 for MIPS16 code.
2380 * config/mips/predicates.md (muldiv_target_operand): New predicate.
2381 (move_operand): Allow hilo_operand.
2382 * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
2383 target of MIPS16 multiplies, then move it into the target register.
2384 (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
2385 (<u>mulsidi3_32bit_mips16): New expander.
2386 (<u>mulsidi3_32bit): Use muldiv_target_operand.
2387 (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
2388 (<u>mulsidi3_64bit): Require !TARGET_MIPS16. Split into
2389 <u>mulsidi3_64bit_split.
2390 (<u>mulsidi3_64bit_mips16): New expander.
2391 (<u>mulsidi3_64bit_split): Likewise, using expansions from
2392 two previous define_splits.
2393 (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
2394 muldiv_target_operand.
2395 (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
2396 (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
2397 Split into <su>mulsi3_highpart_split.
2398 (<su>mulsi3_highpart_split): New expander.
2399 (<su>muldi3_highpart): Turn into a define_expand.
2400 Use <su>muldi3_highpart_split for MIPS16 code.
2401 (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
2402 Require !TARGET_MIPS16. Split into <su>muldi3_highpart_split.
2403 (<su>muldi3_highpart_split): New expander.
2404 (<u>mulditi3): Explicitly specify LO as the target of MIPS16
2405 multiplies, then move it into the target register.
2406 (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
2407 (divmod<mode>4, udivmod<mode>4): Turn into define_expands.
2408 Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
2409 move LO into operand 0.
2410 (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
2411 from <u>divmod<mode>4. Use muldiv_target_operand.
2412 Require !TARGET_MIPS16. Split into <u>divmod<mode>4_split.
2413 (<u>divmod<mode>4_split): New expander.
2414 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
2415 (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
2416
2417 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
2418
2419 * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
2420 and x_operand_reg_set.
2421 (accessible_reg_set, operand_reg_set): New macros.
2422 * reginfo.c (init_reg_sets): Initialize accessible_reg_set and
2423 operand_reg_set.
2424 (saved_accessible_reg_set, saved_operand_reg_set): New variables.
2425 (save_register_info): Save them.
2426 (restore_register_info): Restore them.
2427 (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
2428 Remove NO_REGS registers from operand_reg_set. Treat members
2429 of operand_reg_set as fixed.
2430 * recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
2431 (register_operand, nonmemory_operand): Likewise.
2432 * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
2433 register variables. Check accessible_reg_set and operand_reg_set.
2434 * config/mips/mips.c (mips_conditional_register_usage): Remove
2435 inaccessible register from accessible_reg_set, rather than just
2436 making them fixed.
2437
2438 2011-11-27 Gerald Pfeifer <gerald@pfeifer.com>
2439
2440 * config/pa/pa-linux.h (TARGET_GAS): Remove comment.
2441
2442 2011-11-26 Richard Henderson <rth@redhat.com>
2443
2444 * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
2445 for Linux.
2446
2447 2011-11-26 Richard Henderson <rth@redhat.com>
2448
2449 * optabs.c (expand_atomic_fetch_op): Always return result.
2450
2451 * optabs.c (init_sync_libfuncs_1): Include max in iteration.
2452
2453 * omp-low.c (expand_omp_atomic): Assume anything aligned to
2454 BIGGEST_ALIGNMENT is aligned.
2455
2456 2011-11-26 Richard Henderson <rth@redhat.com>
2457
2458 * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
2459 (UNSPECV_TAS_1, UNSPECV_TAS_2): New.
2460 (I): New mode iterator.
2461 (xz): New mode attribute.
2462 * config/m68k/sync.md: New file.
2463
2464 * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
2465 * config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
2466
2467 2011-11-26 Nathan Sidwell <nathan@acm.org>
2468
2469 PR gcov-profile/51297
2470 * gcov.c (main): Allocate initial names and sources arrays.
2471 (find_source): Don't check for null name or source arrays here.
2472
2473 2011-11-26 Jakub Jelinek <jakub@redhat.com>
2474
2475 PR rtl-optimization/49912
2476 * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
2477 when counting n_branch.
2478
2479 2011-11-26 Uros Bizjak <ubizjak@gmail.com>
2480
2481 * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
2482
2483 2011-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
2484
2485 PR middle-end/50074
2486 * calls.c (mem_overlaps_already_clobbered_arg_p):
2487 Return false if no outgoing arguments have been stored so far.
2488
2489 2011-11-25 Georg-Johann Lay <avr@gjlay.de>
2490
2491 * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
2492
2493 2011-11-24 Andrew MacLeod <amacleod@redhat.com>
2494
2495 PR other/51011
2496 * tree.h (is_builtin_name): No longer external.
2497 * builtins.c (is_builtin_name): Make static.
2498 * varasm.c (incorporeal_function_p): __sync and __atomic external calls
2499 are not incorporeal and may need asm label processing.
2500
2501 2011-11-25 Georg-Johann Lay <avr@gjlay.de>
2502
2503 PR target/50566
2504 * config/avr/avr-protos.h (avr_log_t): Add field .builtin.
2505 * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
2506 Don't bypass TARGET_ALL_DEBUG. Print self-info with ?.
2507 (avr_log_vadump): Support %D and %X to print double_int.
2508 (avr_double_int_pop_digit): New static function.
2509 (avr_dump_double_int_hex): New static function.
2510
2511 2011-11-24 Enkovich Ilya <ilya.enkovich@intel.com>
2512
2513 PR target/51287
2514 * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
2515 attr check.
2516
2517 2011-11-24 Andrew MacLeod <amacleod@redhat.com>
2518
2519 * optab.c (maybe_emit_atomic_exchange): New. Try to emit an
2520 atomic_exchange pattern.
2521 (maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange
2522 using __sync_lock_test_and_set.
2523 (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
2524 exchange using a compare_and_swap loop.
2525 (expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set.
2526 (expand_atomic_test_and_set): New. Expand test_and_set operation.
2527 (expand_atomic_exchange): Use new maybe_emit_* functions.
2528 (expand_atomic_store): Use new maybe_emit_* functions.
2529 * builtins.c (expand_builtin_sync_lock_test_and_set): Call
2530 expand_sync_lock_test_and_set routine.
2531 (expand_builtin_atomic_exchange): Remove parameter from call.
2532 (expand_builtin_atomic_clear): Use atomic_clear pattern if present.
2533 (expand_builtin_atomic_test_and_set): Add target and simply call
2534 expand_atomic_test_and_set.
2535 (expand_builtin): Add target to expand_builtin_atomic_test_and_set.
2536 * expr.h (expand_atomic_exchange): Add parameter.
2537 (expand_sync_lock_test_and_set): New prototype.
2538 (expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
2539
2540 2011-11-24 H.J. Lu <hongjiu.lu@intel.com>
2541
2542 PR target/51134
2543 * config/i386/i386.h (processor_costs): Revert revision 181357.
2544 * config/i386/i386.c (cost models): Likewise.
2545 (core_cost): Likewise.
2546 (promote_duplicated_reg): Likewise.
2547 (promote_duplicated_reg_to_size): Likewise.
2548 (processor_target): Likewise.
2549 (expand_set_or_movmem_via_loop_with_iter): Likewise.
2550 (expand_set_or_movmem_via_loop): Likewise.
2551 (emit_strset): Likewise.
2552 (expand_movmem_epilogue): Likewise.
2553 (expand_setmem_epilogue): Likewise.
2554 (expand_movmem_prologue): Likewise.
2555 (expand_setmem_prologue): Likewise.
2556 (expand_constant_movmem_prologue): Likewise.
2557 (expand_constant_setmem_prologue): Likewise.
2558 (decide_alg): Likewise.
2559 (decide_alignment): Likewise.
2560 (ix86_expand_movmem): Likewise.
2561 (ix86_expand_setmem): Likewise.
2562 (ix86_slow_unaligned_access): Likewise.
2563 * config/i386/i386.md (strset): Likewise.
2564 * config/i386/sse.md (vec_dupv4si): Likewise.
2565 (vec_dupv2di): Likewise.
2566
2567 2011-11-24 Georg-Johann Lay <avr@gjlay.de>
2568
2569 * config/avr/avr.md (*rotlhi2.15): Set length to 4.
2570
2571 2011-11-24 Razya Ladelsky <razya@il.ibm.com>
2572
2573 * tree-data-ref.c (initialize_data_dependence_relation): Update
2574 comment for the self dependence case.
2575 (compute_self_dependence): Remove.
2576 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
2577 compute_self_dependenc.
2578
2579 2011-11-24 Alan Modra <amodra@gmail.com>
2580
2581 * c-decl.c (warn_if_shadowing): Don't warn if shadowed
2582 identifier is from system header.
2583
2584 2011-11-23 Jakub Jelinek <jakub@redhat.com>
2585
2586 PR target/51261
2587 * config/i386/i386.c (decide_alg): Initialize *dynamic_check
2588 even if !optimize.
2589
2590 2011-11-23 Vladimir Makarov <vmakarov@redhat.com>
2591
2592 PR rtl-optimization/48455
2593 * doc/invoke.texi (-fira-region): Document default values.
2594
2595 * flags-types.h (enum ira_region): Add new value
2596 IRA_REGION_AUTODETECT.
2597
2598 * common.opt (fira-region): Set up initial value to
2599 IRA_REGION_AUTODETECT.
2600
2601 * toplev.c (process_options): Set up flag_ira_region depending on
2602 -O options.
2603
2604 * ira.c (ira.c): Remove optimize guard for ira_build.
2605
2606 2011-11-23 Chung-Lin Tang <cltang@codesourcery.com>
2607
2608 PR rtl-optimization/50496
2609 * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
2610 only after epilogue is created. Add comments.
2611
2612 2011-11-22 Richard Henderson <rth@redhat.com>
2613
2614 * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
2615 Generate the barrier required for the memory model.
2616 (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
2617 * config/ia64/ia64-protos.h: Update.
2618 * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
2619 (UNSPEC_CMPXCHG_REL): New.
2620 * config/ia64/sync.md (mem_thread_fence): New.
2621 (atomic_load<IMODE>, atomic_store<IMODE>): New.
2622 (atomic_compare_and_swap<IMODE>): New.
2623 (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
2624 (atomic_exchange<IMODE>): New.
2625 (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
2626 (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
2627 (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
2628 (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
2629 (fetchadd_rel_<I48MODE>): New.
2630 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
2631 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
2632 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
2633 (sync_compare_and_swap<IMODE>): Remove.
2634 (sync_lock_release<IMODE>): Remove.
2635
2636 * config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
2637 and UNSPECV_* constants.
2638
2639 2011-11-22 Tom de Vries <tom@codesourcery.com>
2640
2641 PR rtl-optimization/50764
2642 * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
2643 not moved past preceding jump.
2644
2645 2011-11-22 Jeff Law <law@redhat.com>
2646
2647 * doc/contrib.texi: Add entry for David Binderman.
2648
2649 2011-11-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2650
2651 * postreload.c (reload_combine): Mark reg_state as invalid at
2652 volatile insns if there has been a use already.
2653
2654 2011-11-21 Aldy Hernandez <aldyh@redhat.com>
2655
2656 * opts.c (finish_options): Do not fail for -fgnu-tm.
2657 * gimple-streamer-out.c (output_gimple_stmt): Handle
2658 GIMPLE_TRANSACTION.
2659 * gimple-streamer-in.c (input_gimple_stmt): Same.
2660 * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
2661 (lto_output_node): Write tm_clone bit.
2662
2663 2011-11-22 Ian Lance Taylor <iant@google.com>
2664
2665 * doc/install.texi (Configuration): Correct doc of
2666 --enable-build-poststage1-with-cxx: it is not experimental.
2667
2668 2011-11-22 Jakub Jelinek <jakub@redhat.com>
2669
2670 PR tree-optimization/51074
2671 * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
2672 handling for BYTES_BIG_ENDIAN.
2673 * optabs.c (can_vec_perm_for_code_p): Likewise.
2674
2675 2011-11-22 Michael Matz <matz@suse.de>
2676
2677 PR other/51125
2678 * trans-mem.c (expand_block_tm): Ignore clobbers.
2679
2680 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
2681
2682 * config/darwin.h (ENDFILE_SPEC): New.
2683 (DARWIN_CRT1_SPEC): Add crttms.o.
2684 (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
2685 * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
2686
2687 2011-11-22 Michael Matz <matz@suse.de>
2688
2689 PR c++/51264
2690 * tree.c (iterative_hash_expr): Remove break after return.
2691
2692 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
2693
2694 * target.def (tm_clone_table_section): New hook.
2695 * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
2696 * doc/tm.texi: Regenerate.
2697 * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
2698 * output.h (default_clone_table_section): New prototype.
2699 * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
2700 * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
2701 * config/darwin.c (darwin_tm_clone_table_section): New.
2702
2703 2011-11-21 Torvald Riegel <triegel@redhat.com>
2704
2705 * trans-mem.c (diagnose_tm_1): Print an expression instead of a
2706 declaration in error messages for indirect calls.
2707
2708 2011-11-21 David S. Miller <davem@davemloft.net>
2709
2710 * config/sparc/sparc.c (sparc_regmode_natural_size): New function
2711 implementing REGMODE_NATURAL_SIZE taking into consideration vector
2712 modes.
2713 (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
2714 * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
2715 sparc_modes_tieable_p): Declare.
2716 * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
2717 MODES_TIEABLE_P): Use new helper functions.
2718
2719 Revert
2720 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2721
2722 PR middle-end/50325
2723 * expmed.c (store_bit_field_1): Use extract_bit_field on big
2724 endian targets if the source cannot be exactly covered by word
2725 mode chunks.
2726
2727 2011-11-21 Jakub Jelinek <jakub@redhat.com>
2728
2729 PR debug/50827
2730 * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
2731 macro instead of XEXP.
2732
2733 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
2734
2735 * configure: Regenerate.
2736
2737 2011-11-21 Georg-Johann Lay <avr@gjlay.de>
2738
2739 * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
2740 must not affect cc0.
2741 * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
2742 register does not change cc0. Same for any constant to ld-register.
2743
2744 2011-11-21 Uros Bizjak <ubizjak@gmail.com>
2745
2746 * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
2747 UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
2748 Move from config/i386/i386.md
2749 (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
2750 * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
2751 UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
2752 UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
2753 UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
2754 UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
2755 UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
2756 UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
2757 UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
2758 UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
2759 UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
2760 UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
2761 UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
2762 (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
2763 UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
2764 Ditto.
2765 * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
2766 UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
2767 (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
2768 UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
2769 (sse2_lfence): Move from config/i386/sse.md.
2770 (*sse2_lfence): Ditto.
2771 (sse_sfence): Ditto.
2772 (*sse_sfence): Ditto.
2773 (sse2_mfence): Ditto.
2774 (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also
2775 for TARGET_64BIT.
2776 (mem_thread_fence): Use mfence_sse2.
2777
2778 2011-11-21 Georg-Johann Lay <avr@gjlay.de>
2779
2780 * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
2781 * config/avr/avr-devices.c: Ditto. And initialize it.
2782 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
2783 __AVR_SFR_OFFSET__.
2784 * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
2785 (out_movhi_r_mr, out_movhi_mr_r): Remove.
2786 (out_movsi_r_mr, out_movsi_mr_r): Remove.
2787 * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
2788 (*insv.io, *insv.not.io): Ditto.
2789 * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
2790 (print_operand): Implement "%i" to print address as I/O address.
2791 (output_movqi): Clean up call of out_movqi_mr_r.
2792 (output_movhi): Clean up call of out_movhi_mr_r.
2793 (avr_file_start): Use avr_current_arch->sfr_offset instead of
2794 magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
2795 (avr_out_sbxx_branch): Use %i instead of %m-0x20.
2796 (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
2797 (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
2798 (out_shift_with_cnt): Clean up code: Use avr_asm_len.
2799 (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
2800 (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
2801 Clean up call of avr_out_store_psi.
2802 (output_reload_in_const): Don't cut symbols longer than 2 bytes.
2803 (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
2804 try if setting pre-cleared register is advantageous.
2805 (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
2806
2807 2011-11-20 Joey Ye <joey.ye@arm.com>
2808
2809 * expr.c (expand_expr_real_1): Correctly handle strict volatile
2810 bitfield loads smaller than mode size.
2811
2812 2011-11-20 Richard Henderson <rth@redhat.com>
2813
2814 * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
2815
2816 2011-11-20 Uros Bizjak <ubizjak@gmail.com>
2817
2818 PR target/51235
2819 * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
2820 patterns for supported mode only.
2821
2822 PR target/51236
2823 * config/i386/i386.c (ix86_expand_builtin)
2824 <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
2825
2826 2011-11-20 Uros Bizjak <ubizjak@gmail.com>
2827
2828 * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
2829 (UNSPEC_MOVNTQ): New unspec.
2830 * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
2831 Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
2832 * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
2833 UNSPEC_MOVNTI.
2834 (STORENT_MODE): Add DI and V4DI modes.
2835
2836 2011-11-20 Nathan Sidwell <nathan@acm.org>
2837
2838 PR gcov-profile/51113
2839 * coverage.c (build_var): Propagate visibility for public
2840 decls. Use make_decl_one_only for PIC correctness.
2841
2842 testsuite/
2843 * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
2844 * gcc.misc-tests/gcov-16.c: New.
2845 * gcc.misc-tests/gcov-17.c: New.
2846 * g++.dg/gcov/gcov-8.C: New.
2847 * g++.dg/gcov/gcov-9.C: New.
2848 * g++.dg/gcov/gcov-10.C: New.
2849
2850 2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
2851
2852 PR rtl-optimization/51187
2853 * reorg.c (relax_delay_slots): Do not consider a jump useless if there
2854 is a barrier between the jump and its target label.
2855
2856 2011-11-19 Patrick Marlier <patrick.marlier@gmail.com>
2857
2858 PR middle-end/51211
2859 * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
2860
2861 2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
2862
2863 * expmed.c (store_bit_field_1): Revert bogus formatting change.
2864
2865 2011-11-19 Richard Earnshaw <rearnsha@arm.com>
2866
2867 PR target/50493
2868 * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
2869 overlap of src and dest operands.
2870
2871 2011-11-19 Iain Sandoe <iains@gcc.gnu.org>
2872
2873 * config/darwin.h (ASM_DEBUG_SPEC): New.
2874 * config/darwin9.h (ASM_DEBUG_SPEC): New.
2875
2876 2011-11-18 Jan Hubicka <jh@suse.cz>
2877
2878 * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
2879 issues are fixed.
2880
2881 2011-11-18 Anatoly Sokolov <aesok@post.ru>
2882
2883 * config/cris/cris.c (cris_function_value_regno_p): Make static.
2884 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2885 * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
2886 * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
2887
2888 2011-11-18 H.J. Lu <hongjiu.lu@intel.com>
2889
2890 PR target/33944
2891 * doc/extend.texi: Document __builtin_ia32_movnti64.
2892
2893 * config/i386/emmintrin.h (_mm_stream_si64): New.
2894
2895 * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
2896
2897 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
2898 (bdesc_special_args): Update __builtin_ia32_movnti. Add
2899 __builtin_ia32_movnti64.
2900 (ix86_expand_special_args_builtin): Handle
2901 VOID_FTYPE_PLONGLONG_LONGLONG.
2902
2903 * config/i386/i386.md (UNSPEC_MOVNTI): New.
2904
2905 * config/i386/sse.md (sse2_movntsi): Renamed to ...
2906 (sse2_movnti<mode>): This.
2907
2908 2011-11-18 Georg-Johann Lay <avr@gjlay.de>
2909
2910 PR target/49868
2911 * config/avr/avr.h (base_arch_s): Add field n_segments.
2912 (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
2913 ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
2914 (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
2915 (INIT_EXPANDERS): New define.
2916 * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
2917 (avr_init_expanders): New.
2918 (avr_emit_movmemhi, avr_out_movmem): New.
2919 (avr_xload_libgcc_p): New.
2920 * config/avr/avr-c.c (avr_register_target_pragmas): Register
2921 address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx.
2922 (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
2923 __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
2924 * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
2925
2926 * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
2927 3 bits instead of just 1.
2928 (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
2929 (progmem_section): Change from section to array of sections.
2930 (progmem_section_prefix): New static variable.
2931 (avr_file_start): Print set for __RAMPZ__
2932 (avr_option_override): Move initialization of RTXes from here...
2933 (avr_init_expanders): ...to this new function.
2934 (avr_pgm_segment): New static function.
2935 (avr_decl_pgm_p): Handle error_mark_node.
2936 (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
2937 (avr_out_xload, avr_find_unused_d_reg): New static functions.
2938 (expand_prologue, expand_epilogue): Use rampz_rtx.
2939 (print_operand): Hande CONST_STRING.
2940 (avr_xload_libgcc_p): New static function.
2941 (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
2942 (avr_progmem_p): Return 2 for 24-bit flash address space.
2943 (avr_out_sbxx_branch): Clean-up code from ASn macros.
2944 (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
2945 address and print symbolically.
2946 (avr_asm_named_section, avr_section_type_flags,
2947 avr_encode_section_info, avr_asm_select_section,
2948 avr_addr_space_address_mode, avr_addr_space_pointer_mode,
2949 avr_addr_space_legitimate_address_p, avr_addr_space_convert,
2950 avr_addr_space_legitimize_address): Handle new address spaces.
2951 (avr_output_progmem_section_asm_op): New static function.
2952 (avr_asm_init_sections): Initialize progmem_section[].
2953 (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
2954 (avr_const_address_lo16): New static function.
2955 (avr_assemble_integer): Use it to handle 3-byte integers.
2956 (avr_emit_movmemhi, avr_out_movmem): New functions.
2957
2958 * config/avr/predicates.md (nox_general_operand): Handle new
2959 address spaces.
2960 * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
2961 (adjust_len): Add xload, movmem.
2962 (SP_ADDR): New define_constants.
2963 (isa): Add "lpm", "lpmx", "elpm", "elpmx".
2964 (enabled): Handle them.
2965 (load<mode>_libgcc): New expander.
2966 (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
2967 (xload8_A, xload<mode>_A): New insn-and-splits.
2968 (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
2969 (mov<mode>): Handle new address spaces.
2970 (movmemhi): Rewrite using avr_emit_movmemhi.
2971 (MOVMEM_r_d): New mode attribute.
2972 (movmem_<mode>, movmem_qi_elpm): New insns.
2973 (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
2974 C-code. Use label instead of hard-coded instrunction lengths.
2975
2976 2011-11-18 Martin Jambor <mjambor@suse.cz>
2977
2978 PR tree-optimization/50605
2979 * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
2980 of IPA invariant decls.
2981
2982 2011-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2983
2984 * tree-outof-ssa.c (insert_back_edge_copies): Add call to
2985 mark_dfs_back_edges.
2986
2987 2011-11-18 Iain Sandoe <iains@gcc.gnu.org>
2988
2989 PR target/49992
2990 * configure.ac: Remove ranlib special-casing for Darwin.
2991 * configure: Regenerate.
2992
2993 2011-11-18 Uros Bizjak <ubizjak@gmail.com>
2994
2995 PR tree-optimization/51118
2996 * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
2997 before using TREE_TYPE accessor on expr.
2998
2999 2011-11-17 Jan Hubicka <jh@suse.cz>
3000
3001 PR bootstrap/51134
3002 * i386.c (atom_cost): Fix 32bit memset description.
3003 (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
3004 for epilogue loops.
3005 (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
3006 byte loop.
3007 (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
3008 when not optimizing always use rep movsb or lincall; do not produce
3009 word sized loops when optimizing memset for size (to avoid need
3010 for large constants).
3011 (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
3012 choose unroll factors better; always do 128bit moves when producing
3013 SSE loops; do not produce loopy epilogue when size is too small.
3014 (promote_duplicated_reg_to_size): Do not look into desired alignments
3015 when doing vector expansion.
3016 (ix86_expand_setmem): Track better when promoted value is available;
3017 choose unroll factors more sanely. Output loopy epilogue only
3018 when needed.
3019
3020 2011-11-17 Steve Ellcey <sje@cup.hp.com>
3021
3022 PR middle-end/51144
3023 * output.h (fprint_w): Remove.
3024 * final.c (fprint_w): Remove.
3025 (output_addr_const): Change fprint_w back to fprintf.
3026
3027 2011-11-17 Andrew Pinski <apinski@cavium.com>
3028
3029 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
3030
3031 2011-11-17 Andrew MacLeod <amacleod@redhat.com>
3032
3033 * builtins.c (expand_builtin): Remove 4th parameter representing
3034 weak/strong mode when __atomic_compare_exchange becomes a library call.
3035
3036 2011-11-17 Richard Henderson <rth@redhat.com>
3037
3038 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
3039 new pseudo for target after convert_modes.
3040 (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
3041
3042 2011-11-17 Richard Henderson <rth@redhat.com>
3043
3044 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
3045 new pseudo for target after convert_modes.
3046 (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
3047
3048 2011-11-17 Richard Henderson <rth@redhat.com>
3049
3050 * builtins.c (expand_builtin_mem_thread_fence): Remove.
3051 (expand_builtin_mem_signal_fence): Remove.
3052 (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
3053 (expand_builtin_sync_synchronize): Likewise.
3054 (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
3055 * optabs.c (expand_asm_memory_barrier): Split out from
3056 expand_builtin_mem_signal_fence.
3057 (expand_mem_thread_fence): New, a combination of code from
3058 expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
3059 (expand_mem_signal_fence): Moved and renamed from
3060 expand_builtin_mem_signal_fence.
3061 (expand_atomic_exchange): Use expand_mem_thread_fence.
3062 (expand_atomic_load, expand_atomic_store): Likewise.
3063 * expr.h, optabs.h: Update decls.
3064
3065 2011-11-17 Bin Cheng <bin.cheng@arm.com>
3066
3067 PR rtl-optimization/50663
3068 * cprop.c (implicit_set_indexes): New global variable.
3069 (insert_set_in_table): Add additional parameter and record implicit
3070 set information.
3071 (hash_scan_set): Add additional parameter and pass it to above.
3072 (hash_scan_insn): Pass false to hash_scan_set.
3073 (compute_hash_table_work): Pass true to hash_scan_set.
3074 (compute_cprop_data): Add implicit set to AVIN of block which the
3075 implicit set is recorded for.
3076 (one_cprop_pass): Handle implicit_set_indexes array.
3077
3078 2011-11-17 Michael Matz <matz@suse.de>
3079
3080 PR middle-end/50644
3081 PR middle-end/50741
3082 * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
3083 current function.
3084 (remove_unused_locals): Ditto.
3085
3086 2011-11-16 Richard Henderson <rth@redhat.com>
3087
3088 * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
3089 ALIAS_SET_MEMORY_BARRIER when creating a new memory.
3090 (alpha_split_atomic_exchange_12): Likewise.
3091 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
3092
3093 2011-11-16 Joseph Myers <joseph@codesourcery.com>
3094
3095 * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
3096
3097 2011-11-16 David Edelsohn <dje.gcc@gmail.com>
3098
3099 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
3100 Default to minimum alignment if decl is NULL.
3101
3102 2011-11-16 Uros Bizjak <ubizjak@gmail.com>
3103
3104 * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
3105 sequence for AVX.
3106 (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
3107
3108 2011-11-16 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
3109
3110 * doc/invoke.texi: Document AMD bdver1 and btver1.
3111
3112 2011-11-16 Richard Earnshaw <rearnsha@arm.com>
3113 Bernd Schmidt <bernds@coudesourcery.com>
3114 Sebastian Huber <sebastian.huber@embedded-brains.de>
3115
3116 PR target/49641
3117 * config/arm/arm.c (store_multiple_sequence): Avoid cases where
3118 the base reg is stored iff compiling for Thumb1.
3119
3120 2011-11-16 Razya Ladelsky <razya@il.ibm.com>
3121
3122 PR tree-optimization/49960
3123 * tree-data-ref.c (initialize_data_dependence_relation): Add
3124 initializations.
3125 Remove call to compute_self_dependence.
3126 (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
3127 (compute_self_dependence): Remove old code. Add call to
3128 compute_affine_dependence.
3129 (compute_all_dependences): Remove call to compute_self_dependence.
3130 Add call to compute_affine_dependence.
3131
3132 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3133
3134 PR middle-end/50325
3135 * expmed.c (store_bit_field_1): Use extract_bit_field on big
3136 endian targets if the source cannot be exactly covered by word
3137 mode chunks.
3138
3139 2011-11-15 Joseph Myers <joseph@codesourcery.com>
3140
3141 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
3142 ELF_STRING_LIMIT.
3143
3144 2011-11-15 Richard Henderson <rth@redhat.com>
3145
3146 * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
3147 (alpha_post_atomic_barrier): New.
3148 (alpha_split_atomic_op): New memmodel argument; honor it.
3149 (alpha_split_compare_and_swap): Take array of operands. Honor
3150 memmodel; always set bool output
3151 (alpha_expand_compare_and_swap_12): Similarly.
3152 (alpha_split_compare_and_swap_12): Similarly.
3153 (alpha_split_atomic_exchange): Similarly. Rename from
3154 alpha_split_lock_test_and_set.
3155 (alpha_expand_atomic_exchange_12): Similarly. Rename from
3156 alpha_expand_lock_test_and_set_12.
3157 (alpha_split_atomic_exchange_12): Similarly. Rename from
3158 alpha_split_lock_test_and_set_12.
3159 * config/alpha/alpha-protos.h: Update.
3160 * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
3161 * config/alpha/constraints.md ("w"): New.
3162 * config/alpha/predicates.md (mem_noofs_operand): New.
3163 * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
3164 sync_compare_and_swap<mode>; add the new parameters.
3165 (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
3166 (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
3167 (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
3168 (atomic_<op><mode>): Update from sync_<op><mode>.
3169
3170 2011-11-16 Tom de Vries <tom@codesourcery.com>
3171
3172 * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
3173
3174 2011-11-16 Alan Modra <amodra@gmail.com>
3175
3176 PR rtl-optimization/51051
3177 PR bootstrap/51086
3178 * function.c (thread_prologue_and_epilogue_insns): Guard
3179 emitting return with single_succ_p test.
3180
3181 2011-11-15 Joern Rennecke <joern.rennecke@embecosm.com>
3182
3183 * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
3184 get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
3185
3186 2011-11-15 Uros Bizjak <ubizjak@gmail.com>
3187
3188 * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
3189 (vec_pack_sfix_trunc_v2df): Ditto.
3190 (vec_pack_sfix_v2df): Ditto.
3191 (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
3192 avx_vec_concatv8si patterns.
3193 (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
3194 avx_vec_concatv8si patterns.
3195
3196 2011-11-15 Torvald Riegel <triegel@redhat.com>
3197
3198 * c-parser.c (c_parser_transaction_expression): Require parentheses
3199 when parsing transaction expressions.
3200
3201 2011-11-15 Tristan Gingold <gingold@adacore.com>
3202
3203 * incpath.c (get_added_cpp_dirs): New function.
3204 * incpath.h (get_added_cpp_dirs): Declare.
3205 * config/vms/vms-c.c (vms_c_register_includes): New function.
3206 (vms_std_modules): New variable.
3207 * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
3208 (vms_c_register_includes): Declare.
3209
3210 2011-11-15 Tristan Gingold <gingold@adacore.com>
3211
3212 * c-family/c-pragma.h (pragma_extern_prefix): Declare.
3213 * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
3214 * config/vms/vms-c.c (saved_extern_prefix): New variable.
3215 (vms_pragma_extern_prefix): New function.
3216 (vms_c_register_pragma): Register vms_pragma_extern_prefix.
3217
3218 2011-11-15 Georg-Johann Lay <avr@gjlay.de>
3219
3220 PR target/49868
3221 * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
3222 (REGISTER_TARGET_PRAGMAS): New define.
3223 * config/avr/avr-protos.h (avr_mem_pgm_p): New.
3224 (avr_load_libgcc_p): New.
3225 (avr_register_target_pragmas): New.
3226 (asm_output_external_libcall): Remove.
3227 (avr_log_t): Add field "progmem". Order alphabetically.
3228 * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
3229 * config/avr/avr-c.c (langhooks.h): New include.
3230 (avr_register_target_pragmas): New function. Register address
3231 space __pgm.
3232 (avr_cpu_cpp_builtins): Add built-in define __PGM.
3233
3234 * config/avr/avr.c: Include "c-family/c-common.h".
3235 (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
3236 (TARGET_LEGITIMIZE_ADDRESS): Remove define.
3237 (TARGET_ADDR_SPACE_SUBSET_P): Define to...
3238 (avr_addr_space_subset_p): ...this new static function.
3239 (TARGET_ADDR_SPACE_CONVERT): Define to...
3240 (avr_addr_space_convert): ...this new static function.
3241 (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
3242 (avr_addr_space_address_mode): ...this new static function.
3243 (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
3244 (avr_addr_space_pointer_mode): ...this new static function.
3245 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
3246 (avr_addr_space_legitimate_address_p): ...this new static function.
3247 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
3248 (avr_addr_space_legitimize_address): ...this new static function.
3249 (avr_mode_code_base_reg_class): Handle address spaces.
3250 (avr_regno_mode_code_ok_for_base_p): Ditto.
3251 (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
3252 (avr_option_override): Initialize them.
3253 (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
3254 variables.
3255 (avr_pgm_segment): New static function.
3256 (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
3257 (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
3258 (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
3259 avr_out_lpm to handle loads from progmem.
3260 (avr_load_libgcc_p): New static function.
3261 (avr_progmem_p): Test if decl is in flash.
3262 (avr_pgm_pointer_const_p): New static function.
3263 (avr_nonconst_pointer_addrspace): New static function.
3264 (avr_pgm_check_var_decl): New static function.
3265 (avr_insert_attributes): Use it. Change error message to report
3266 cause (progmem or address space) when code wants to write to flash.
3267 (avr_section_type_flags): Unset section flag SECTION_BSS for
3268 data in progmem.
3269
3270 * config/avr/predicates.md (nop_general_operand): New predicate.
3271 (nox_general_operand): New predicate.
3272 * config/avr/avr.md (LPM_REGNO): New define_constant.
3273 (load<mode>_libgcc): New expander.
3274 (*load.<mode>.libgcc): New insn.
3275 (mov<mode>): Handle loads from non-generic AS.
3276 (movmemhi): Ditto. Propagate address space information to newly
3277 created MEM.
3278 (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
3279 to nox_general_operand.
3280 (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
3281 nop_general_operand.
3282 (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
3283 (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
3284 (split-lpmx): New split.
3285 (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
3286 *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
3287
3288 2011-11-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3289
3290 * ipa-cp.c (ipa_value_from_jfunc): Make global.
3291 (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
3292 (get_indirect_edge_target): Rename, make global.
3293 (devirtualization_time_bonus, estimate_local_effects,)
3294 (ipcp_discover_new_direct_edges): Update.
3295 * ipa-inline-analysis.c (evaluate_conditions_for_edge):
3296 Generalize to also handle types. Rename to ...
3297 (evaluate_properties_for_edge): Use instead of
3298 evaluate_conditions_for_edge.
3299 (estimate_edge_devirt_benefit): New function.
3300 (estimate_calls_size_and_time): Use it.
3301 (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
3302 (inline_merge_summary): Update.
3303 (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate
3304 parameter information at the call site and pass it on to subroutines.
3305 * tree-inline.c (estimate_num_insns): Distinguish between direct and
3306 indirect calls.
3307 (init_inline_once): Set size and time costs or indirect calls.
3308 * tree-inline.h (eni_weights): Add indirect_call_cost.
3309
3310 2011-11-15 Tom de Vries <tom@codesourcery.com>
3311
3312 PR tree-optimization/51005
3313 * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
3314 mark_basic_block_deleted.
3315 (update_worklist): Inline purge_bbs.
3316 (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
3317 (delete_block_update_dominator_info): Remove.
3318 (replace_block_by): Remove update_vops parameter. Partially evaluate
3319 for update_vops == false.
3320 (apply_clusters): Remove update_vops parameter. Remove update_vops
3321 argument in replace_block_by call.
3322 (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
3323 (tail_merge_optimize): Remove update_vops argument to apply_clusters.
3324 Remove call to purge_bbs. Add calls to calculate_dominance_info and
3325 free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling
3326 update_debug_stmts. Mark vop var for renaming, if necessary.
3327
3328 2011-11-15 Bernd Schmidt <bernds@codesourcery.com>
3329
3330 PR rtl-optimization/51051
3331 * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
3332 move would cause fallthrough into the exit block.
3333
3334 2011-11-14 Richard Henderson <rth@redhat.com>
3335
3336 * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
3337 handled.
3338 (emit_store_conditional): Likewise.
3339 (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
3340 (rs6000_adjust_atomic_subword): New.
3341 (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
3342 (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
3343 for pre-reload expansion.
3344 (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
3345 rs6000_expand_compare_and_swapqhi): Merge into ...
3346 (rs6000_expand_atomic_compare_and_swap): ... here. New function.
3347 rs6000_split_lock_test_and_set; expand immediately. Handle
3348 QImode and HImode.
3349 * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
3350 from UNSPECV_LWSYNC.
3351 * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
3352 (mem_thread_fence): New.
3353 (hwsync): Rename from memory_barrier.
3354 (*hwsync): Rename from *sync_internal.
3355 (lwsync, *lwsync): Mirror hwsync implementation.
3356 (isync): Don't reference memory.
3357 (loadsync): New.
3358 (atomic_load<INT>, atomic_store<INT>): New.
3359 (ATOMIC): New mode iterator.
3360 (load_locked<ATOMIC>): Rename from load_locked_<GPR>.
3361 (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
3362 (sync_compare_and_swap<GPR>): Remove.
3363 (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
3364 (sync_compare_and_swapqhi_internal): Remove.
3365 (sync_lock_test_and_set<GPR>): Remove.
3366 (sync_<FETCHOP><INT1>): Remove.
3367 (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
3368 (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
3369 (sync_old_<FETCHOP><GPR>): Remove.
3370 (*sync_old_<FETCHOP>si_internal): Remove.
3371 (*sync_old_<FETCHOP>di_internal): Remove.
3372 (sync_old_nand<INT1>): Remove.
3373 (*sync_old_nand<GPR>_internal): Remove.
3374 (sync_new_<FETCHOP><GPR>): Remove.
3375 (*sync_new_<FETCHOP>si_internal): Remove.
3376 (*sync_new_<FETCHOP>di_internal): Remove.
3377 (sync_new_nand<INT1>): Remove.
3378 (*sync_new_nand<GPR>_internal): Remove.
3379 (*atomic_andsi, *atomic_anddi): Remove.
3380 (*sync_addshort_internal, *sync_subshort_internal): Remove.
3381 (*sync_andsi_internal, *sync_boolsi_internal): Remove.
3382 (*sync_boolcshort_internal): Remove.
3383 (sync_lock_release<INT1>): Remove.
3384 (atomic_compare_and_swap<INT1>): New.
3385 (atomic_exchange<INT1>): New.
3386 (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
3387 (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
3388 (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
3389
3390 2011-11-14 Uros Bizjak <ubizjak@gmail.com>
3391
3392 * config/i386/sse.md (round<mode>2): Use register_operand for
3393 operand 1 predicate.
3394 (round<mode>2_sfix): Ditto.
3395 (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
3396
3397 2011-11-14 Nathan Sidwell <nathan@acm.org>
3398
3399 * gcov.c (canonicalize_name): Protect use of S_ISLNK.
3400
3401 2011-11-14 Jan Hubicka <jh@suse.cz>
3402
3403 PR target/51126
3404 * config/i386/i386.c (core cost model): Correct pasto.
3405
3406 2011-11-14 Uros Bizjak <ubizjak@gmail.com>
3407
3408 * config/i386/sse.md (round<mode>2_sfix): New expander.
3409 (round<mode>2_vec_pack_sfix): Ditto.
3410 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
3411 (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
3412 * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
3413 V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
3414 V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
3415 * config/i386/i386.c (ix86_builtins): Add
3416 IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
3417 IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
3418 (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
3419 __builtin_ia32_roundpd_az_vec_pack_sfix{,256},
3420 __builtin_ia32_{floorps,ceilps}_sfix{,256}and
3421 __builtin_ia32_roundps_az_sfix{,256} descriptions.
3422 (ix86_expand_sse_round_vec_pack_sfix): New.
3423 (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
3424 V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
3425 V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of
3426 CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
3427 CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
3428 (ix86_builtin_vectorized_function): Handle
3429 BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
3430 BUILT_IN_{I,L,LL}ROUND{,F}
3431
3432 2011-11-14 Jan Hubicka <jh@suse.cz>
3433
3434 PR middle-end/50598
3435 * cgraph.h (varpool_externally_visible_p): Declare.
3436 (varpool_add_new_variable): Declare.
3437 * tree-emultls.c (get_emutls_init_templ_addr,
3438 new_emutls_decl): Use varpool_add_new_variable.
3439 * ipa.c (varpool_externally_visible_p): Export.
3440 * varpool.c (varpool_add_new_variable): New function.
3441
3442 2011-11-14 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
3443 Jan Hubicka <jh@suse.cz>
3444
3445 * config/i386/i386.h (processor_costs): Add second dimension to
3446 stringop_algs array.
3447 * config/i386/i386.c (cost models): Initialize second dimension of
3448 stringop_algs arrays.
3449 (core_cost): New costs based on generic64 costs with updated stringop
3450 values.
3451 (promote_duplicated_reg): Add support for vector modes, add
3452 declaration.
3453 (promote_duplicated_reg_to_size): Likewise.
3454 (processor_target): Set core costs for core variants.
3455 (expand_set_or_movmem_via_loop_with_iter): New function.
3456 (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
3457 different loops, produced by this function.
3458 (emit_strset): New function.
3459 (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
3460 use SSE-moves where possible.
3461 (expand_setmem_epilogue): Likewise.
3462 (expand_movmem_prologue): Likewise for prologue.
3463 (expand_setmem_prologue): Likewise.
3464 (expand_constant_movmem_prologue): Likewise.
3465 (expand_constant_setmem_prologue): Likewise.
3466 (decide_alg): Add new argument align_unknown. Fix algorithm of
3467 strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
3468 (decide_alignment): Update desired alignment according to chosen move
3469 mode.
3470 (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
3471 (ix86_expand_setmem): Likewise.
3472 (ix86_slow_unaligned_access): Implementation of new hook
3473 slow_unaligned_access.
3474 * config/i386/i386.md (strset): Enable half-SSE moves.
3475 * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
3476 (vec_dupv2di): Add expand for vec_dupv2di.
3477
3478 2011-11-14 Dimitrios Apostolou <jimis@gmx.net>
3479
3480 PR bootstrap/51094
3481 PR middle-end/51116
3482 * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
3483 * varasm.c (default_elf_internal_label): Remove.
3484
3485 2011-11-14 Kai Tietz <ktietz@redhat.com>
3486
3487 * gcov.c (generate_results): Add missing semicolon and correct indent.
3488
3489 2011-11-14 Ira Rosen <ira.rosen@linaro.org>
3490
3491 PR bootstrap/51112
3492 * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype.
3493
3494 2011-11-14 Mingjie Xing <mingjie.xing@gmail.com>
3495
3496 * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes}
3497 to @pxref{Function Attributes}.
3498
3499 2011-11-13 Oleg Endo <oleg.endo@t-online.de>
3500
3501 PR target/50694
3502 * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
3503 New macros.
3504 (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
3505 taking the default configuration into account.
3506
3507 2011-11-13 Jonathan Wakely <jwakely.gcc@gmail.com>
3508
3509 * doc/install.texi (Specific): Fix anchor for
3510 x86_64-*-solaris2.1[0-9]*.
3511
3512 2011-11-13 Nathan Sidwell <nathan@acm.org>
3513
3514 * gcov.c (source_prefix, source_length): New globals.
3515 (flag_relative_only): Likewise.
3516 (print_usage, options, process_args): Update.
3517 (generate_results): Use coverage.name, check
3518 flag_relative_only. Adjust messages.
3519 (find_source): Check source_prefix.
3520 (output_lines): Use coverage.name, adjust messages.
3521 * doc/gcov.texi (Invoking Gcov): Document new options.
3522
3523 2011-11-12 Jason Merrill <jason@redhat.com>
3524
3525 PR c++/51060
3526 * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
3527 (gimplify_modify_expr): Don't try to simplify it.
3528
3529 2011-11-12 Dimitrios Apostolou <jimis@gmx.net>
3530
3531 PR bootstrap/51094
3532 * config/elfos.h (STRING_ASM_OP): Define.
3533 * varasm.c (default_elf_asm_output_limited_string): Use it.
3534
3535 PR bootstrap/51094
3536 * gcc/configure.ac: Check for stpcpy declaration.
3537 * system.h: Declare it if not.
3538 * config.in, configure: Regenerate.
3539
3540 2011-11-12 Richard Henderson <rth@redhat.com>
3541
3542 * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
3543 nonimmediate_operand for the destination.
3544 (fixuns_trunc<SFDF>si2_stfiwx): Likewise.
3545
3546 * builtins.c (expand_builtin_compare_and_swap): If target is const0,
3547 don't pass the target to expand_atomic_compare_and_swap.
3548 (expand_builtin_atomic_compare_exchange): Likewise.
3549
3550 * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
3551 * config/sh/sh.c (sh_init_sync_libfuncs): New.
3552
3553 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
3554 * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
3555 * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
3556
3557 2011-11-12 Iain Sandoe <iains@gcc.gnu.org>
3558
3559 PR target/45233
3560 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3561 Only expand a symbol ref. into an access when the entity is defined
3562 in the TU.
3563
3564 2011-11-12 Jan Hubicka <jh@suse.cz>
3565
3566 PR bootstrap/50822
3567 * cgraphunit.c (output_weakrefs): Output really only weakrefs.
3568
3569 2011-11-12 Nathan Sidwell <nathan@acm.org>
3570
3571 * gcov.c (struct name_map): New.
3572 (names, n_names, a_names): New global vars.
3573 (print_usage): Adjust usage.
3574 (generate_results): Canonicalize main file name.
3575 (release_structures): Adjust.
3576 (name_search, name_sort): New callbacks.
3577 (find_source): Look for and create a canonical name.
3578 (canonicalize_name): New.
3579 (make_gcov_file_name): Reimplement and fix mangling.
3580 (mangle_name): New.
3581 * doc/gcov.texi: Update documentation about path preservation.
3582
3583 2011-11-11 David S. Miller <davem@davemloft.net>
3584
3585 * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3586 * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3587
3588 2011-11-11 Jakub Jelinek <jakub@redhat.com>
3589
3590 * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
3591 New prototype.
3592 * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
3593 function.
3594 (ix86_expand_epilogue): Use it.
3595 * config/i386/i386.md (return, simple_return): Call it in the
3596 expanders.
3597
3598 PR tree-optimization/51091
3599 * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
3600 rhs also in the va_list_simple_ptr case.
3601
3602 PR tree-optimization/51058
3603 * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
3604 (vect_schedule_slp): Call it.
3605 * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
3606 don't replace scalar calls with setting of their lhs to zero here.
3607
3608 PR tree-optimization/51074
3609 * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
3610 (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
3611 VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
3612 VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
3613 (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
3614 CONSTRUCTOR operands.
3615 * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
3616 expressions.
3617 * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
3618 to 0 .. 2 * elements - 1.
3619
3620 2011-11-11 Richard Henderson <rth@redhat.com>
3621
3622 * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
3623 (dump_gimple_omp_atomic_store): Likewise.
3624 * optabs.c (can_atomic_exchange_p): New.
3625 * optabs.h (can_atomic_exchange_p): Declare.
3626 * omp-low.c (expand_omp_atomic_load): Implement.
3627 (expand_omp_atomic_store): Likewise.
3628 (expand_omp_atomic): Update for new arguments to load/store.
3629
3630 2011-11-11 Eric Botcazou <ebotcazou@adacore.com>
3631
3632 * cprop.c: Adjust outdated comments throughout.
3633 (hash_scan_set): Rename PAT parameter into SET.
3634 (cprop_pavloc): Rename into...
3635 (cprop_avloc): ...this.
3636 (cprop_absaltered): Rename into...
3637 (cprop_kill): ...this.
3638 (alloc_cprop_mem): Adjust for above renaming.
3639 (free_cprop_mem): Likewise.
3640 (compute_cprop_data): Likewise.
3641 (compute_local_properties): Rename TRANSP parameter into KILL and
3642 adjust throughout. Rework comments.
3643 (try_replace_reg): Fix long line.
3644 (cprop_jump): Likewise.
3645 (constprop_register): Fix prototype and take INSN last.
3646 (cprop_insn): Adjust calls to above function. Fix long lines.
3647 (bypass_block): Likewise.
3648 (one_cprop_pass): Likewise.
3649
3650 2011-11-11 Uros Bizjak <ubizjak@gmail.com>
3651
3652 * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
3653 (ELF_STRING_LIMIT): Rename from STRING_LIMIT.
3654
3655 2011-11-11 Jason Merrill <jason@redhat.com>
3656
3657 * varasm.c (default_elf_asm_output_limited_string): #ifdef
3658 ELF_ASCII_ESCAPES.
3659 (default_elf_asm_output_ascii): Likewise.
3660
3661 2011-11-11 Uros Bizjak <ubizjak@gmail.com>
3662
3663 PR target/50762
3664 * config/i386/constraints.md (j): New address constraint.
3665 * config/i386/predicates.md (lea_address_operand): Redefine as
3666 special predicate.
3667 * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
3668 (*lea_4_zext): Ditto.
3669
3670 2011-11-11 David S. Miller <davem@davemloft.net>
3671
3672 Revert
3673 2011-11-05 David S. Miller <davem@davemloft.net>
3674
3675 * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
3676 (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
3677 (*zero_extend_v8qi_<P:mode>_insn,
3678 *zero_extend_v4hi_<P:mode>_insn): New insns.
3679 * config/sparc/sparc.c (vector_init_move_words,
3680 vector_init_prepare_elts, sparc_expand_vector_init_vis2,
3681 sparc_expand_vector_init_vis1): New functions.
3682 (vector_init_bshuffle): Rewrite to handle more cases and make use
3683 of locs[] array prepared by vector_init_prepare_elts.
3684 (vector_init_fpmerge, vector_init_faligndata): Delete.
3685 (sparc_expand_vector_init): Rewrite using new infrastructure.
3686
3687 2011-11-11 Jakub Jelinek <jakub@redhat.com>
3688
3689 * opts-common.c (generate_canonical_option): Free opt_text
3690 it it has been allocated here and not stored anywhere.
3691
3692 * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
3693 vector.
3694 (vect_create_new_slp_node): Don't allocate node before checking stmt
3695 type.
3696 (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
3697 free def_stmts vectors and additionally free oprnd_info.
3698 (vect_build_slp_tree): Adjust callers. Call it even if
3699 stop_recursion. If vect_create_new_slp_node or
3700 vect_build_slp_tree fails, properly handle freeing memory.
3701 If it succeeded, clear def_stmts in oprnd_info.
3702
3703 2011-11-11 Dimitrios Apostolou <jimis@gmx.net>
3704
3705 * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on
3706 multiple lines for readability.
3707 * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare.
3708 (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf.
3709 * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data,
3710 dw2_asm_data_uleb128, dw2_asm_delta_uleb128,
3711 dw2_asm_delta_sleb128): Convert fprintf calls to the new functions.
3712 * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of
3713 fprintf.
3714 * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions
3715 serving as fast replacements for fprintf integer to string conversions.
3716 (sprint_ul_rev): Internal helper for the above.
3717 (output_addr_const) <CONST_INT>: Don't use fprintf.
3718 * varasm.c: Fix some whitespace inconsistencies.
3719 (default_elf_asm_output_limited_string): New.
3720 (default_elf_asm_output_ascii): Likewise.
3721 (default_elf_internal_label): Likewise.
3722 * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and
3723 stpcpy instead of sprintf.
3724 (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
3725 (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and
3726 STRING_LIMIT macros.
3727 (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that
3728 provide the same functionality.
3729 * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf.
3730
3731 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
3732
3733 * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
3734
3735 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
3736
3737 PR middle-end/51038
3738 * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear.
3739 (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set.
3740 (expand_builtin): Add cases for test_and_set and clear.
3741 * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
3742 (BUILT_IN_ATOMIC_CLEAR): New.
3743
3744 2011-11-10 Roberto Agostino Vitillo <ravitillo@lbl.gov>
3745
3746 PR debug/50983
3747 * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
3748 value in the current line table.
3749
3750 2011-11-10 Nathan Sidwell <nathan@acm.org>
3751
3752 * gcov.c (struct function_info): Make src an index, not a pointer.
3753 (struct source_info): Remove index and next source fields.
3754 (fn_end): New static var.
3755 (sources_index): Remove.
3756 (sources): Now a pointer to an array, not a list.
3757 (n_sources, a_sources): New.
3758 (process_file): Adjust for changes to read_graph_file. Insert
3759 functions into source lists and check line numbers here.
3760 (generate_results): Only allocate lines for sources with
3761 contents. Adjust for source array.
3762 (release_structures): Likewise.
3763 (find_source): Return source index, adjust for source array.
3764 (read_graph_file): Return function list. Don't insert into source
3765 lists here.
3766 (read_count_file): Take list of functions.
3767 (solve_flow_graph): Reverse the arc lists here.
3768 (add_line_counts): Adjust for source array.
3769
3770 2011-11-10 Jakub Jelinek <jakub@redhat.com>
3771
3772 PR middle-end/51077
3773 * tree-object-size.c (addr_object_size): Check TREE_CODE of
3774 MEM_REF's operand rather than code of the MEM_REF itself.
3775
3776 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
3777
3778 PR rtl-optimization/51040
3779 * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should
3780 be AND followed by NOT.
3781 * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND
3782 should be AND followed by NOT.
3783
3784 2011-11-10 Jakub Jelinek <jakub@redhat.com>
3785
3786 * vec.h (VEC_BASE): If base is at offset 0 in the structure,
3787 use &(P)->base even if P is NULL.
3788
3789 PR rtl-optimization/51023
3790 * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use
3791 val_signbit_known_clear_p for signed comparison narrowing
3792 optimization. Don't check for non-VOIDmode, use
3793 HWI_COMPUTABLE_MODE_P macro.
3794 <case ZERO_EXTEND>: Don't check for non-VOIDmode.
3795 Optimize even when const_op is equal to GET_MODE_MASK (mode),
3796 don't optimize if const_op is negative.
3797
3798 2011-11-10 Richard Guenther <rguenther@suse.de>
3799
3800 PR tree-optimization/51042
3801 * tree-ssa-pre.c (phi_translate_1): Avoid recursing on
3802 self-referential expressions. Refactor code to avoid duplication.
3803
3804 2011-11-10 Richard Guenther <rguenther@suse.de>
3805
3806 PR tree-optimization/51070
3807 * tree-loop-distribution.c (generate_builtin): Do not replace
3808 the loop with a builtin if the partition contains statements which
3809 results are used outside of the loop.
3810 (pass_loop_distribution): Verify and collect.
3811
3812 2011-11-10 Richard Guenther <rguenther@suse.de>
3813
3814 PR tree-optimization/51030
3815 * tree-ssa-phiopt.c (jump_function_from_stmt): New function.
3816 (value_replacement): Use it to handle trivial non-empty
3817 intermediate blocks.
3818
3819 2011-11-10 Richard Guenther <rguenther@suse.de>
3820
3821 PR middle-end/51071
3822 * gimple.c (gimple_has_side_effects): Remove checking code
3823 that doesn't belong here.
3824
3825 2011-11-10 Ira Rosen <ira.rosen@linaro.org>
3826
3827 PR tree-optimization/51058
3828 * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR.
3829
3830 2011-11-10 Jakub Jelinek <jakub@redhat.com>
3831
3832 PR tree-optimization/51000
3833 * tree-vect-patterns.c (vect_recog_bool_pattern): If adding
3834 a pattern stmt for a bool store, adjust DR_STMT too.
3835 Don't handle bool conversions to single bit precision lhs.
3836 * tree-vect-stmts.c (vect_remove_stores): If next is a pattern
3837 stmt, remove its related stmt and free its stmt_vinfo.
3838 (free_stmt_vec_info): Free also pattern stmt's vinfo and
3839 pattern def stmt's vinfo.
3840 * tree-vect-loop.c (destroy_loop_vec_info): Don't try to
3841 free pattern stmt's vinfo here.
3842 (vect_transform_loop): When calling vect_remove_stores,
3843 do gsi_next first and don't call gsi_remove. If not strided
3844 store, free stmt vinfo for gsi_stmt (si) rather than stmt.
3845
3846 2011-11-09 Jakub Jelinek <jakub@redhat.com>
3847
3848 PR target/50911
3849 * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is
3850 V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode
3851 to V4SFmode.
3852
3853 * function.h (requires_stack_frame_p): New prototype.
3854 * function.c (requires_stack_frame_p): No longer static.
3855 * config/i386/i386.c (ix86_finalize_stack_realign_flags): If
3856 stack_realign_fp was just a conservative guess for a function
3857 which doesn't use sp/fp/argp at all, clear frame_pointer_needed
3858 and stack realignment.
3859
3860 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
3861
3862 PR preprocessor/51061
3863 * incpath.c (merge_include_chains): Make sure to not pass null
3864 pointers to free_path.
3865
3866 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
3867
3868 * doc/invoke.texi ([Option Summary, C++ Language Options]):
3869 Add -Wzero-as-null-pointer-constant.
3870
3871 2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
3872
3873 * config/arm/arm-cores.def: Add -mcpu=cortex-a7.
3874 * config/arm/arm-tables.opt: Regenerate.
3875 * config/arm/arm-tune.md: Likewise.
3876 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7.
3877 * doc/invoke.texi: Document -mcpu=cortex-a7.
3878
3879 2011-11-09 Richard Guenther <rguenther@suse.de>
3880
3881 Revert
3882 2011-11-09 Richard Guenther <rguenther@suse.de>
3883
3884 * tree-cfg.c (verify_gimple_call): Verify that
3885 gimple_call_cannot_inline_p is returning a conservative
3886 correct result according to gimple_check_call_matching_types.
3887
3888 2011-11-09 Richard Guenther <rguenther@suse.de>
3889
3890 PR tree-optimization/51039
3891 * tree-cfg.c (verify_gimple_call): Verify that
3892 gimple_call_cannot_inline_p is returning a conservative
3893 correct result according to gimple_check_call_matching_types.
3894 * ipa-inline-analysis.c (estimate_function_body_sizes): Remove
3895 code dealing with un-inlinablility.
3896 * gimple-streamer-in.c (input_gimple_stmt): Update the
3897 non-inlinable flag.
3898
3899 2011-11-09 Richard Guenther <rguenther@suse.de>
3900
3901 PR tree-optimization/51039
3902 * tree-inline.c (setup_one_parameter): Always perform a
3903 valid gimple type change.
3904 (declare_return_variable): Likewise.
3905
3906 2011-11-09 Jakub Jelinek <jakub@redhat.com>
3907
3908 * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf,
3909 vconduv4sfv4si): New patterns.
3910 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle
3911 different dest_mode from comparison mode.
3912
3913 2011-11-09 Richard Guenther <rguenther@suse.de>
3914
3915 * gimple-fold.c (canonicalize_constructor_val): Mark
3916 address-taken variables addressable.
3917
3918 2011-11-09 Ira Rosen <ira.rosen@linaro.org>
3919
3920 PR tree-optimization/51015
3921 * tree-vect-loop.c (vect_determine_vectorization_factor): Expect
3922 vectype to be set for pattern def stmts.
3923
3924 2011-11-09 Alan Modra <amodra@gmail.com>
3925
3926 * function.c (bb_active_p): Delete.
3927 (dup_block_and_redirect, active_insn_between): New functions.
3928 (convert_jumps_to_returns, emit_return_for_exit): New functions,
3929 split out from..
3930 (thread_prologue_and_epilogue_insns): ..here. Delete
3931 shadowing variables. Don't do prologue register clobber tests
3932 when shrink wrapping already failed. Delete all last_bb_active
3933 code. Instead compute tail block candidates for duplicating
3934 exit path. Remove these from antic set. Duplicate tails when
3935 reached from both blocks needing a prologue/epilogue and
3936 blocks not needing such.
3937 * ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and
3938 HAVE_simple_return.
3939 * bb-reorder.c (get_uncond_jump_length): Make global.
3940 * bb-reorder.h (get_uncond_jump_length): Declare.
3941 * cfgrtl.c (rtl_create_basic_block): Comment typo fix.
3942 (rtl_split_edge): Likewise. Warning fix.
3943 (rtl_duplicate_bb): New function.
3944 (rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block.
3945 * Makefile.in (function.o): Update dependencies.
3946
3947 2011-11-08 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3948 Georg-Johann Lay <avr@gjlay.de>
3949
3950 * doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space
3951 argument.
3952 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3953 * doc/tm.texi: Regenerate.
3954
3955 * config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address
3956 space argument.
3957 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3958 * config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise.
3959 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3960 * config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space
3961 argument.
3962 (REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto.
3963 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
3964 (avr_regno_mode_code_ok_for_base_p): Ditto.
3965 * config/avr/avr.c (avr_mode_code_base_reg_class): Ditto.
3966 (avr_regno_mode_code_ok_for_base_p): Ditto.
3967 (avr_reg_ok_for_addr_p): Pass AS down to
3968 avr_regno_mode_code_ok_for_base_p.
3969
3970 * addresses.h (base_reg_class): Add address space argument.
3971 Pass to MODE_CODE_BASE_REG_CLASS.
3972 (ok_for_base_p_1): Add address space argument. Pass to
3973 REGNO_MODE_CODE_OK_FOR_BASE_P.
3974 (regno_ok_for_base_p): Add address space argument. Pass to
3975 ok_for_base_p_1.
3976
3977 * regrename.c (scan_rtx_address): Add address space argument.
3978 Pass address space to regno_ok_for_base_p and base_reg_class.
3979 Update recursive calls.
3980 (scan_rtx): Pass address space to scan_rtx_address.
3981 (build_def_use): Likewise.
3982 * regcprop.c (replace_oldest_value_addr): Add address space
3983 argument. Pass to regno_ok_for_base_p and base_reg_class.
3984 Update recursive calls.
3985 (replace_oldest_value_mem): Pass address space to
3986 replace_oldest_value_addr.
3987 (copyprop_hardreg_forward_1): Likewise.
3988
3989 * reload.c (find_reloads_address_1): Add address space argument.
3990 Pass address space to base_reg_class and regno_ok_for_base_p.
3991 Update recursive calls.
3992 (find_reloads_address): Pass address space to base_reg_class,
3993 regno_ok_for_base_p, and find_reloads_address_1.
3994 (find_reloads): Pass address space to base_reg_class.
3995 (find_reloads_subreg_address): Likewise.
3996
3997 * ira-costs.c (record_reg_classes): Update calls to base_reg_class.
3998 (ok_for_base_p_nonstrict): Add address space argument. Pass to
3999 ok_for_base_p_1.
4000 (record_address_regs): Add address space argument. Pass to
4001 base_reg_class and ok_for_base_p_nonstrict. Update recursive calls.
4002 (record_operand_costs): Pass address space to record_address_regs.
4003 (scan_one_insn): Likewise.
4004
4005 * caller-save.c (init_caller_save): Update call to base_reg_class.
4006 * ira-conflicts.c (ira_build_conflicts): Likewise.
4007 * reload1.c (maybe_fix_stack_asms): Likewise.
4008
4009 2011-11-08 Michael Matz <matz@suse.de>
4010
4011 * gengtype.c (write_field_root): Avoid out-of-scope access of newv.
4012
4013 * tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.
4014
4015 * tree.h (TREE_CLOBBER_P): New macro.
4016 * gimple.h (gimple_clobber_p): New inline function.
4017 * gimplify.c (gimplify_bind_expr): Add clobbers for all variables
4018 that go out of scope and live in memory.
4019 * tree-ssa-operands.c (get_expr_operands): Transfer volatility also
4020 for constructors.
4021 * cfgexpand.c (decl_to_stack_part): New static variable.
4022 (add_stack_var): Allocate it, and remember mapping.
4023 (fini_vars_expansion): Deallocate it.
4024 (stack_var_conflict_p): Add early outs.
4025 (visit_op, visit_conflict, add_scope_conflicts_1,
4026 add_scope_conflicts): New static functions.
4027 (expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
4028 (expand_used_vars): Add scope conflicts.
4029 (expand_gimple_stmt_1): Expand clobbers to nothing.
4030 (expand_debug_expr): Ditto.
4031
4032 * tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
4033 * tree-ssa-live.c (remove_unused_locals): Remove clobbers that
4034 refer to otherwise unused locals.
4035 * tree-sra.c (build_accesses_from_assign): Ignore clobbers.
4036 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
4037 SSA names aren't necessary.
4038 (propagate_necessity): Accept and ignore constructors on the rhs, tidy.
4039 * gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
4040 * tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
4041 any known value.
4042 * tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
4043 don't zero-initialize something.
4044 * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
4045 clobber RHS, we don't want PHI nodes with those.
4046
4047 2011-11-08 Jakub Jelinek <jakub@redhat.com>
4048
4049 * config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
4050 if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
4051
4052 2011-11-08 Richard Guenther <rguenther@suse.de>
4053
4054 PR tree-optimization/51012
4055 * ipa-prop.c (update_indirect_edges_after_inlining): Fixup
4056 non-inlinable state.
4057 * cgraph.c (cgraph_make_edge_direct): Likewise.
4058
4059 2011-11-08 Eric Botcazou <ebotcazou@adacore.com>
4060
4061 PR rtl-optimization/47698
4062 * ifcvt.c (noce_operand_ok): Move around comment.
4063
4064 2011-11-08 Richard Guenther <rguenther@suse.de>
4065
4066 PR lto/50999
4067 * lto-opts.c (append_to_collect_gcc_options): Split out from...
4068 (lto_write_options): ... here. Prepend frontend specific flags.
4069
4070 2011-11-08 Jakub Jelinek <jakub@redhat.com>
4071
4072 * config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask
4073 0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.
4074
4075 * tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
4076 Handle vectorization of SLP calls.
4077 (vect_analyze_stmt): Adjust caller, add call to it for SLP too.
4078 (vect_transform_stmt): Adjust vectorizable_call caller, remove
4079 assertion.
4080 * tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start
4081 with op_idx 3.
4082 (vect_build_slp_tree): Allow CALL_EXPR.
4083
4084 2011-11-08 Richard Guenther <rguenther@suse.de>
4085
4086 * gimple-fold.c (canonicalize_constructor_val): Make sure
4087 we have referenced vars setup before adding to them.
4088
4089 2011-11-07 Richard Henderson <rth@redhat.com>
4090 Aldy Hernandez <aldyh@redhat.com>
4091 Andrew MacLeod <amacleod@redhat.com>
4092 Torvald Riegel <triegel@redhat.com>
4093
4094 Merged from transactional-memory.
4095
4096 * gtm-builtins.def: New file.
4097 * trans-mem.c: New file.
4098 * trans-mem.h: New file.
4099
4100 * opts.c (finish_options): Error out when using -flto and -fgnu-tm.
4101
4102 * config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants.
4103 (ix86_handle_tm_regparm_attribute, struct bdesc_tm,
4104 ix86_builtin_tm_load, ix86_builtin_tm_store,
4105 ix86_init_tm_builtins): New.
4106 (ix86_init_builtins): Initialize TM builtins.
4107 (struct ix86_attribute_table): Add "*tm regparm".
4108 * config/i386/i386-builtin-types.def (PV2SI): Define.
4109 (PCV2SI): Define.
4110 Define V2SI_FTYPE_PCV2SI.
4111 Define V4SF_FTYPE_PCV4SF.
4112 Define V8SF_FTYPE_PCV8SF.
4113 Define VOID_PV2SI_V2SI.
4114
4115 * doc/invoke.texi (C Dialect Options): Document -fgnu-tm and
4116 tm-max-aggregate-size.
4117 * doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and
4118 TARGET_VECTORIZE_BUILTIN_TM_STORE hooks.
4119 * doc/tm.texi: Regenerate.
4120
4121 * attribs.c (apply_tm_attr): New.
4122 (init_attributes): Allow '*' prefix for overrides.
4123 (register_attribute): Likewise.
4124 * builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New.
4125 (ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST,
4126 ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST,
4127 ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST,
4128 ATTR_TMPURE_NOTHROW_LIST): New.
4129 * builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR,
4130 BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248],
4131 BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE,
4132 BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New.
4133 * builtins.def: Include gtm-builtins.def. Add comments regarding
4134 transactional memory synchronization.
4135 (DEF_TM_BUILTIN): New.
4136 * c-parser.c (struct c_parser): Add in_transaction.
4137 (c_parser_transaction, c_parser_transaction_expression,
4138 c_parser_transaction_cancel, c_parser_transaction_attributes): New.
4139 (c_parser_attribute_any_word): Split out from c_parser_attributes.
4140 (c_parser_statement_after_labels): Handle RID_TRANSACTION*.
4141 (c_parser_unary_expression): Same.
4142 * c-tree.h (c_finish_transaction): Declare.
4143 * c-typeck.c (c_finish_transaction): New.
4144 (build_function_call_vec): Call tm_malloc_replacement.
4145 * calls.c (is_tm_builtin): New.
4146 (flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE.
4147 * cfgbuild.c (make_edges): Add edges for REG_TM notes.
4148 * cfgexpand.c (expand_call_stmt): Call
4149 mark_transaction_restart_calls.
4150 (gimple_expand_cfg): Free the tm_restart map.
4151 (mark_transaction_restart_calls): New.
4152 * cfgrtl.c (purge_dead_edges): Look for REG_TM notes.
4153 * cgraph.c (dump_cgraph_node): Handle tm_clone.
4154 * cgraph.h (struct cgraph_node): Add tm_clone field.
4155 (decl_is_tm_clone): New.
4156 (struct cgraph_local_info): Add tm_may_enter_irr.
4157 (cgraph_copy_node_for_versioning): Declare.
4158 * cgraphunit.c (cgraph_copy_node_for_versioning): Export;
4159 copy analyzed from old version.
4160 * combine.c (distribute_notes): Handle REG_TM notes.
4161 * common.opt: Add -fgnu-tm.
4162 * crtstuff.c (__TMC_LIST__, __TMC_END__): New.
4163 (__do_global_dtors_aux): Deregister clone table.
4164 (frame_dummy): Register clone table.
4165 * emit-rtl.c (try_split): Handle REG_TM. Early return if no function
4166 body.
4167 * gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and
4168 GIMPLE_TRANSACTION.
4169 (gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE.
4170 * gimple-pretty-print.c: Include trans-mem.h.
4171 (dump_gimple_fmt): Add %x.
4172 (dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction.
4173 (dump_gimple_eh_else, dump_gimple_transaction): New.
4174 (dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
4175 * gimple.c (gimple_build_eh_else, gimple_build_transaction): New.
4176 (walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt
4177 field.
4178 (walk_gimple_op): Handle GIMPLE_TRANSACTION.
4179 (walk_gimple_stmt): Initialize and honor removed_stmt.
4180 Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
4181 (gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
4182 * gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New.
4183 * gimple.h (struct gimple_statement_eh_else,
4184 gimple_statement_transaction, GTMA_*): New.
4185 (gimple_statement_d): Add gimple_statement_eh_else and
4186 gimple_transaction.
4187 (gimple_build_eh_else, gimple_build_transaction,
4188 gimple_fold_call, diagnose_tm_safe_errors): Declare.
4189 (get_call_expr_in): Remove prototype.
4190 (gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
4191 (gimple_eh_else_n_body, gimple_eh_else_e_body,
4192 gimple_eh_else_set_n_body, gimple_eh_else_set_e_body,
4193 gimple_transaction_body, gimple_transaction_label,
4194 gimple_transaction_label_ptr, gimple_transaction_subcode,
4195 gimple_transaction_set_body, gimple_transaction_set_label,
4196 gimple_transaction_set_subcode): New.
4197 (struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt.
4198 * gimplify.c (create_tmp_var_name): Use clean_symbol_name.
4199 (voidify_wrapper_expr): Handle TRANSACTION_EXPR.
4200 (gimplify_transaction): New.
4201 (gimplify_expr): Handle TRANSACTION_EXPR.
4202 * gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New.
4203 * ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling
4204 TM pure functions.
4205 * Makefile.in: Add trans-mem.o and dependencies.
4206 (BUILTINS_DEF): Add gtm-builtins.def.
4207 (gimple-pretty-print.o): Depend on TRANS_MEM_H.
4208 (GTFILES): Add trans-mem.c.
4209 * omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION.
4210 * output.h (record_tm_clone_pair, finish_tm_clone_pairs,
4211 get_tm_clone_pair): Declare.
4212 * params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New.
4213 * passes.c (init_optimization_passes): Place transactional memory
4214 passes.
4215 * print-tree.c (print_node): Dump tm-clone.
4216 * recog.c (peep2_attempt): Handle REG_TM.
4217 * reg-notes.def (TM): New.
4218 * rtlanal.c (alloc_reg_note): Handle REG_TM.
4219 * target.def (builtin_tm_load, builtin_tm_store): New.
4220 * targhooks.c (default_builtin_tm_load_store): New.
4221 * targhooks.h (default_builtin_tm_load_store): Declare.
4222 * timevar.def (TV_TRANS_MEM): New.
4223 * toplev.c (compile_file): Call finish_tm_clone_pairs.
4224 * tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION.
4225 (cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary
4226 writes into the statements to update labels.
4227 (is_ctrl_altering_stmt): Add TM ending statements. Handle
4228 GIMPLE_TRANSACTION.
4229 (verify_gimple_transaction): New.
4230 (verify_gimple_stmt): Handle GIMPLE_TRANSACTION.
4231 (verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
4232 (gimple_redirect_edge_and_branch): Handle TM_TRANSACTION.
4233 (dump_function_to_file): Display [tm-clone] if applicable.
4234 * tree-eh.c (struct_ptr_eq): Make inline and move to tree.h.
4235 (struct_ptr_hash): Same.
4236 (collect_finally_tree): Handle GIMPLE_EH_ELSE.
4237 (replace_goto_queue_1): Likewise.
4238 (get_eh_else): New.
4239 (honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE.
4240 (lower_try_finally_nofallthru): Likewise.
4241 (lower_try_finally_onedest): Likewise.
4242 (lower_try_finally_copy): Likewise.
4243 (lower_try_finally_switch): Likewise.
4244 (lower_try_finally): Likewise.
4245 (decide_copy_try_finally): Likewise.
4246 (lower_eh_constructs_2): Likewise.
4247 (refactor_eh_r): Likewise.
4248 * tree-flow.h (struct gimple_df): Add tm_restart field.
4249 Define tm_restart_node.
4250 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION.
4251 (estimate_num_insns): Likewise.
4252 (init_inline_once): Init tm_cost.
4253 * tree-inline.h (struct eni_weights_d): Add tm_cost.
4254 * tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init,
4255 pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare.
4256 * tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR.
4257 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4258 BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
4259 Add support for TM vector loads. Add support for TM logging builtins.
4260 (call_may_clobber_ref_p_1): Add support for vector stores.
4261 * tree-ssa-structalias.c (find_func_aliases): Add support for TM
4262 vector stores and loads. Handle BUILT_IN_TM_MEMSET,
4263 BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
4264 * tree.c (strip_invariant_refs): Moved from gimple.c to here.
4265 (local_define_builtin): Handle ECF_TM_PURE.
4266 (build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE.
4267 * tree.def (TRANSACTION_EXPR): New.
4268 * tree.h (strip_invariant_refs): Moved from gimple.h to here.
4269 (TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK,
4270 TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED,
4271 BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P,
4272 CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New.
4273 (ECF_TM_PURE, ECF_TM_BUILTIN): New.
4274 (struct tree_function_decl): Add tm_clone_flag.
4275 (struct_ptr_eq, struct_ptr_hash): New.
4276 (apply_tm_attr): Declare.
4277 (is_tm_safe_or_pure): New.
4278 (build_tm_abort_call, is_tm_safe, is_tm_pure,
4279 is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement,
4280 tm_malloc_replacement): Declare.
4281 * varasm.c (tm_clone_hash): New.
4282 (record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair,
4283 dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New.
4284 (struct tm_alias_pair): New. Declare VEC types for object.
4285
4286 2011-11-07 Richard Henderson <rth@redhat.com>
4287
4288 * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
4289 OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
4290 OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
4291 OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
4292 OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
4293 rename from the direct_optab_index enum.
4294 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
4295 sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
4296 sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
4297 sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
4298 sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
4299 from the optab_table, not the direct_optab_table.
4300 (init_sync_libfuncs): Declare.
4301 (can_compare_and_swap_p): Update parameters.
4302 * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
4303 (can_compare_and_swap_p): Add allow_libcall parameter; if true,
4304 test for the legacy compare-and-swap libcall.
4305 (expand_atomic_exchange): Use the legacy test-and-set libcall.
4306 (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
4307 (struct atomic_op_functions): Update for optab type changes.
4308 (maybe_emit_op): Likewise.
4309 (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
4310 * builtins.c (fold_builtin_atomic_always_lock_free): Update call
4311 to can_compare_and_swap_p.
4312 * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
4313 (expand_omp_atomic_pipeline): Likewise.
4314 * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
4315 sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
4316 optabs.
4317 * doc/md.texi (sync_compare_and_swap): Update docs for libcalls.
4318
4319 2011-11-07 Jakub Jelinek <jakub@redhat.com>
4320
4321 * config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
4322 * config/i386/i386.c (enum ix86_builtins): Add
4323 IX86_BUILTIN_VEC_PACK_SFIX256.
4324 (bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
4325 (ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
4326 (ix86_builtin_vectorized_function): Also vectorize lrint using
4327 256-bit vectors for -mavx.
4328
4329 2011-11-07 Anatoly Sokolov <aesok@post.ru>
4330
4331 * config/cris/constraints.md: New file.
4332 * config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4333 CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
4334 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
4335 EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
4336 EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
4337 * config/cris/cris.c: Incule "tm-constrs.h".
4338 (cris_print_operand): Use satisfies_constraint_O.
4339 (cris_normal_notice_update_cc, cris_rtx_costs): Use
4340 satisfies_constraint_I.
4341 (cris_address_cost): Use satisfies_constraint_L.
4342 * config/cris/cris.md: Include "constraints.md".
4343 (*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
4344 *mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
4345 *ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
4346 *extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
4347 *extop<mode>si_swap_side): Use satisfies_constraint_N and
4348 satisfies_constraint_J.
4349 (moversideqi movemsideqi mover2side peephole2): Use
4350 satisfies_constraint_N and satisfies_constraint_J.
4351 (andu peephole2): Use satisfies_constraint_I and
4352 satisfies_constraint_O.
4353
4354 2011-11-07 Uros Bizjak <ubizjak@gmail.com>
4355
4356 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
4357 BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
4358
4359 2011-11-07 Andrew MacLeod <amacleod@redhat.com>
4360
4361 * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
4362 SWITCHABLE_TARGET can change the values during compilation.
4363 (expand_atomic_fetch_op): Handle parameter change ripples for
4364 get_atomic_op_for_code call.
4365
4366 2011-11-07 Andrew MacLeod <amacleod@redhat.com>
4367
4368 * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
4369 __atomic_store.
4370 * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
4371 only when originated from that builtin.
4372 (expand_atomic_store): Expand to __sync_lock_release when originated
4373 from that builtin.
4374 * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
4375 expand_atomic_exchange call originated from here.
4376 (expand_builtin_sync_lock_release): Add flag that expand_atomic_store
4377 call originated from here.
4378 (expand_builtin_atomic_exchange): Add origination flag.
4379 (expand_builtin_atomic_store): Add origination flag.
4380 * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
4381 parameters to indicate implementation fall back options.
4382
4383 2011-11-07 Georg-Johann Lay <avr@gjlay.de>
4384
4385 * config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
4386 now, not only CONST_INT and CONST_DOUBLE.
4387 (output_movqi): Use output_reload_in_const.
4388 (output_reload_inhi): Ditto.
4389 (output_reload_insisf): Move assertion to output_reload_in_const.
4390 (avr_out_reload_inpsi): Ditto.
4391
4392 2011-11-07 Nathan Sidwell <nathan@acm.org>
4393
4394 * gcov.c (object_summary): Replace with ...
4395 (object_runs): ... this.
4396 (process_file): Remove functions with no data.
4397 (generate_results): Ignore files with no lines.
4398 (release_function): New helper, broken out of ...
4399 (release_structures): ... here. Use it.
4400 (read_count_file): Adjust for new data file format.
4401 (output_lines): Use object_runs.
4402 * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
4403 (struct gcov_ctr_info): Move definition.
4404 (struct gcov_fn_info): Add key field, use gcov_ctr_info for
4405 trailing array.
4406 (struct gcov_info): Add merge function array, remove mask and
4407 counts. Trailing array is array of pointers to function info.
4408 * coverage.c (struct function_list): Replace counter numbers with
4409 counter arrays. Add fndecl field. GTYify.
4410 (counts_entry): Remove chain workspace.
4411 (functions_head): GTYify.
4412 (prg_n_ctrs): Remove.
4413 (fn_v_ctrs): New.
4414 (tree_ctr_tables): Remove.
4415 (read_counts_file): Cope with blank entries and expect program
4416 summaries before functions. Don't warn on missing entries.
4417 (coverage_counter_alloc): Allocate individual function arrays.
4418 (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
4419 for individual function arrays.
4420 (coverage_end_function): GTYify function list object. Finalize
4421 function's counter arrays.
4422 (build_var): New. Create a counter-related variable with
4423 appropriate linkage.
4424 (build_fn_info_type): Adjust for new runtime structure.
4425 (build_fn_info_value): Rename to ...
4426 (build_fn_info): ... here. Build new format data.
4427 (build_ctr_info_type, build_ctr_info_value): Remove.
4428 (build_info_type): New. Build new format data structure.
4429 (build_info): Adjust for new format data.
4430 (create_coverage): Likewise.
4431 * gcov-dump.c (tag_function): Recognize placeholders.
4432
4433 2011-11-07 Georg-Johann Lay <avr@gjlay.de>
4434
4435 * config/avr/constraints.md (Cm2): New constraint for int -2.
4436 * config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
4437 (*negqihi2): New insn.
4438
4439 2011-11-07 H.J. Lu <hongjiu.lu@intel.com>
4440
4441 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
4442 HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18.
4443
4444 2011-11-07 Jakub Jelinek <jakub@redhat.com>
4445
4446 * config/i386/i386.c (ix86_expand_builtin): If gather mask
4447 argument is known to have all high bits set, pass pc_rtx as
4448 second argument to the expander instead of op0.
4449 * config/i386/sse.md (*avx2_gathersi<mode>_2,
4450 *avx2_gatherdi<mode>_2): New patterns.
4451 * config/i386/avx2intrin.h (_mm256_i32gather_pd,
4452 _mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
4453 _mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
4454 _mm256_set1_pd.
4455
4456 PR tree-optimization/50789
4457 * tree-vect-stmts.c (process_use): Add force argument, avoid
4458 exist_non_indexing_operands_for_use_p check if true.
4459 (vect_mark_stmts_to_be_vectorized): Adjust callers. Handle
4460 STMT_VINFO_GATHER_P.
4461 (gen_perm_mask): New function.
4462 (perm_mask_for_reverse): Use it.
4463 (reverse_vec_element): Rename to...
4464 (permute_vec_elements): ... this. Add Y and MASK_VEC arguments,
4465 generalize for any permutations.
4466 (vectorizable_load): Adjust caller. Handle STMT_VINFO_GATHER_P.
4467 * target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
4468 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
4469 * doc/tm.texi: Regenerate.
4470 * tree-data-ref.c (initialize_data_dependence_relation,
4471 compute_self_dependence): No longer static.
4472 * tree-data-ref.h (initialize_data_dependence_relation,
4473 compute_self_dependence): New prototypes.
4474 * tree-vect-data-refs.c (vect_check_gather): New function.
4475 (vect_analyze_data_refs): Detect possible gather load data refs.
4476 * tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
4477 (STMT_VINFO_GATHER_P): Define.
4478 (vect_check_gather): New prototype.
4479 * config/i386/i386-builtin-types.def: Add types for alternate
4480 gather builtins.
4481 * config/i386/sse.md (AVXMODE48P_DI): Remove.
4482 (VEC_GATHER_MODE): Rename mode_attr to...
4483 (VEC_GATHER_IDXSI): ... this.
4484 (VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
4485 (avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
4486 instead of <VEC_GATHER_MODE>.
4487 (avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
4488 <AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
4489 on src and mask operands.
4490 (*avx2_gatherdi<mode>): Likewise. Use VEC_GATHER_MODE iterator
4491 instead of AVXMODE48P_DI.
4492 (avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
4493 * config/i386/i386.c (enum ix86_builtins): Add
4494 IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
4495 IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
4496 (ix86_init_mmx_sse_builtins): Create those builtins.
4497 (ix86_expand_builtin): Handle those builtins and adjust expansions
4498 of other gather builtins.
4499 (ix86_vectorize_builtin_gather): New function.
4500 (TARGET_VECTORIZE_BUILTIN_GATHER): Define.
4501
4502 2011-11-07 Uros Bizjak <ubizjak@gmail.com>
4503
4504 * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check.
4505
4506 2011-11-07 Tristan Gingold <gingold@adacore.com>
4507
4508 * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
4509 * config/vms/t-vms: Add vms-c.o rule.
4510 * config/vms/vms-c.c: New file.
4511 * config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
4512 * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.
4513
4514 2011-11-07 Tristan Gingold <gingold@adacore.com>
4515
4516 * config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
4517 TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
4518 TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
4519 POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
4520 (SUBTARGET_OS_CPP_BUILTINS): Define.
4521 (TARGET_DEFAULT): Tune according to POINTER_SIZE.
4522 (MASK_RETURN_ADDR): Define in 64 bit mode.
4523 * config/ia64/vms.h: Likewise.
4524 * config/vms/vms.h: New file.
4525 * config/vms/vms64.h: New file.
4526 * config/alpha/vms64.h: Removed.
4527 * config/ia64/vms64.h: Removed.
4528 * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
4529 Adjust for above change.
4530
4531 2011-11-07 Enkovich Ilya <ilya.enkovich@intel.com>
4532
4533 PR target/50962
4534 * config/i386/i386-protos.h (ix86_use_lea_for_mov): New.
4535 * config/i386/i386.c (ix86_use_lea_for_mov): Likewise.
4536 * config/i386/i386.md (movsi_internal): Emit lea if profitable.
4537 (movdi_internal_rex64): Likewise.
4538
4539 2011-11-07 Sergey Ostanevich <sergos.gnu@gmail.com>
4540
4541 PR rtl-optimization/47698
4542 * ifcvt.c (noce_operand_ok): Return false for mems with side effects.
4543
4544 2011-11-07 Tristan Gingold <gingold@adacore.com>
4545
4546 * common/config/alpha/alpha-common.c (alpha_option_init_struct):
4547 New function.
4548 (TARGET_OPTION_INIT_STRUCT): Define.
4549 * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
4550 (TARGET_MAX_ANCHOR_OFFSET)
4551 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.
4552
4553 2011-11-06 Quentin Neill <quentin.neill@amd.com>
4554
4555 Fix r180999, update ChangeLog
4556 * config.gcc: Add f16cintrin.h.
4557 * config/i386/f16cintrin.h: Add missing endif.
4558
4559 2011-11-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
4560
4561 * config.gcc (arm*-*-rtemseabi*): New target.
4562 * config/arm/rtems-eabi.h: New.
4563 * config/arm/t-rtems-eabi: New.
4564
4565 2011-11-06 David S. Miller <davem@davemloft.net>
4566
4567 * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete.
4568 (zero_extend_v8qi_vis, zero_extend_v4hi_vis,
4569 *zero_extend_v8qi_<P:mode>_insn,
4570 *zero_extend_v4hi_<P:mode>_insn): Express using vec_merge
4571 and vec_duplicate instead of using an UNSPEC.
4572
4573 2011-11-07 Alan Modra <amodra@gmail.com>
4574
4575 PR target/30282
4576 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
4577 blockage for ABI_V4.
4578
4579 2011-11-06 Dave Korn <dave.korn.cygwin@gmail.com>
4580
4581 * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent
4582 libgcj version bump.
4583 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
4584
4585 2011-11-06 Eric Botcazou <ebotcazou@adacore.com>
4586
4587 * gcse.c: Adjust outdated comments throughout.
4588 (struct mem_conflict_info): New structure.
4589 (mems_conflict_for_gcse_p): Use it to communicate with caller.
4590 (load_killed_in_block_p): Pass it to note_stores.
4591 (hash_expr): Remove superfluous line break.
4592 (hash_scan_set): Rename PAT parameter into SET.
4593 (hash_scan_insn): Reorder cases.
4594 (canon_list_insert): Fix long line.
4595 (edge_list): Delete.
4596 (prune_expressions): Rename E local variable into EXPR.
4597 (compute_pre_data): Return struct edge_list * object.
4598 (pre_expr_reaches_here_p_work): Fix formatting.
4599 (process_insert_insn): Move around comment.
4600 (pre_edge_insert): Fix long line.
4601 (pre_insert_copies): Likewise.
4602 (gcse_emit_move_after): Swap SRC and DEST parameters.
4603 (pre_delete): Adjust call to gcse_emit_move_after.
4604 (pre_gcse): Take struct edge_list * parameter. Fix long line.
4605 (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines.
4606 Use a local list of edges.
4607 (hoist_code): Fix long line. Adjust call to gcse_emit_move_after.
4608 (pre_ldst_expr_hash): Fix long line.
4609 (free_ldst_mems): Rename into...
4610 (free_ld_motion_mems): ...this.
4611 (first_ls_expr): Delete.
4612 (next_ls_expr): Likewise.
4613 (print_ldst_list): Do not use above two functions.
4614 (simple_mem): Adjust interface.
4615 (compute_ld_motion_mems): Fix formatting.
4616 (update_ld_motion_stores): Reuse local variable.
4617
4618 2011-11-06 Joseph Myers <joseph@codesourcery.com>
4619
4620 * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas
4621 specifiers.
4622 (build_null_declspecs): Initialize align_log and alignas_p fields.
4623 (declspecs_add_alignas): New.
4624 * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS.
4625 (c_parser_declspecs): Handle _Alignas specifiers.
4626 (c_parser_alignas_specifier): New.
4627 (c_parser_alignof_expression): Diagnose alignof use for non-C1X.
4628 Diagnose _Alignof (expression).
4629 * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields.
4630 (declspecs_add_alignas): Declare.
4631 * ginclude/stddef.h (max_align_t): Define for C1X and C++11.
4632 * ginclude/stdalign.h: New.
4633 * Makefile.in (USER_H): Add stdalign.h.
4634
4635 2011-11-06 Joern Rennecke <joern.rennecke@embecosm.com>
4636
4637 * regset.h (fixed_reg_set_regset): Declare.
4638 * dse.c: Include regset.h .
4639 (struct insn_info): Add member fixed_regs_live.
4640 (note_add_store_info): New typedef.
4641 (note_add_store): New function.
4642 (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t.
4643 Use gen_add3_insn / gen_move_insn.
4644 Check new insn for unwanted clobbers before emitting it.
4645 (check_for_inc_dec): Rename to...
4646 (check_for_inc_dec_1:) ... this. Return bool. Take insn_info
4647 parameter. Changed all callers in file.
4648 (check_for_inc_dec, copy_fixed_regs): New functions.
4649 (scan_insn): Set fixed_regs_live field of insn_info.
4650 * rtl.h (check_for_inc_dec): Update prototype.
4651 * postreload.c (reload_cse_simplify): Take new signature of
4652 check_ind_dec into account.
4653 * reginfo.c (fixed_reg_set_regset): New variable.
4654 (init_reg_sets_1): Initialize it.
4655
4656 2011-11-06 Jakub Jelinek <jakub@redhat.com>
4657
4658 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove
4659 any user labels.
4660
4661 2011-11-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4662
4663 * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
4664 Remove dependence of declaration and target define on definition of
4665 HPUX_LONG_DOUBLE_LIBRARY. Update implementation.
4666
4667 2011-11-06 Andrew Macleod <amacleod@redhat.com>
4668 Richard Henderson <rth@redhat.com>
4669 Aldy Hernandez <aldyh@redhat.com>
4670
4671 Merged from cxx-mem-model.
4672
4673 * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models
4674 * coretypes.h (enum memmodel): New. enumerated memory model type.
4675 * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H)
4676 * genopinit,c (optabs): Add atomic direct optab handlers.
4677 * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins.
4678 * builtin-types.def (BT_CONST_VOLATILE_PTR,
4679 BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
4680 BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
4681 BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT,
4682 BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
4683 BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
4684 BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types.
4685 * expr.h (expand_atomic_*): Add prototypes.
4686 (expand_{bool,val}_compare_and_swap): Remove prototypes.
4687 * c-typeck.c (build_function_call_vec): Don't reprocess __atomic
4688 parameters.
4689 * common.opt (Winvalid-memory-model): New warning flag.
4690 (finline-atomics): New. Flag to disable atomic inlining.
4691 * params.h (ALLOW_LOAD_DATA_RACES): New.
4692 (ALLOW_PACKED_LOAD_DATA_RACES): New.
4693 (ALLOW_PACKED_STORE_DATA_RACES): New.
4694 * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New.
4695 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New.
4696 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New.
4697 * builtins.c (is_builtin_name): Handle __atomic.
4698 (get_memmodel): New. Extract memory model.
4699 (expand_expr_force_mode): New. Factor out common code for ensuring an
4700 integer argument is in the proper mode.
4701 (expand_builtin_sync_operation): Remove ignore param. Always call
4702 expand_atomic_fetch_op instead of the old expanders.
4703 (expand_builtin_compare_and_swap,
4704 expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode,
4705 call atomic expanders instead of sync expanders.
4706 (expand_builtin_sync_lock_release): Call atomic_store expander.
4707 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
4708 expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New.
4709 (expand_builtin_atomic_exchange): New.
4710 (fold_builtin_atomic_always_lock_free,
4711 expand_builtin_atomic_always_lock_free,
4712 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
4713 New.
4714 (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence,
4715 expand_builtin_atomic_signal_fence): New.
4716 (expand_builtin_mem_signal_fence): New.
4717 (expand_builtin): Add cases for BUILT_IN_ATOMIC_*.
4718 (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE.
4719 * optabs.h (DOI_atomic_*): Define new atomics.
4720 (atomic_*_optab): Define.
4721 (can_compare_and_swap_p, expand_atomic_compare_and_swap): New
4722 prototypes.
4723 * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove.
4724 (expand_sync_lock_test_and_set): Remove.
4725 (expand_atomic_load, expand_atomic_store): New.
4726 (expand_atomic_exchange): New.
4727 (expand_atomic_compare_and_swap): New. Implements
4728 atomic_compare_exchange via compare and swap.
4729 (struct atomic_op_functions): Opcode table struct for fetch ops.
4730 (get_atomic_op_for_code): New. Return an opcode table entry.
4731 (maybe_emit_op): New. Try to emit a fetch op.
4732 (expand_atomic_fetch_op): New.
4733 (expand_val_compare_and_swap_1): Remove.
4734 (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove.
4735 (expand_atomic_compare_and_swap): Rename from
4736 expand_atomic_compare_exchange. Rewrite to return both success and
4737 oldval return values; expand via both atomic and sync optabs.
4738 (can_compare_and_swap_p): New.
4739 (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap.
4740 (maybe_gen_insn): Handle 7 and 8 operands.
4741 * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual
4742 fetch_op optabs, only test can_compare_and_swap_p. Use __atomic
4743 builtins instead of __sync builtins.
4744 (expand_omp_atomic_pipeline): Use can_compare_and_swap_p.
4745 * doc/extend.texi: Document __atomic built-in functions.
4746 * doc/invoke.texi: Document data race parameters.
4747 * doc/md.texi: Document atomic patterns.
4748 * config/i386/i386.md (UNSPEC_MOVA): New.
4749 (UNSPECV_CMPXCHG): Split into ...
4750 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2,
4751 UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New.
4752 * config/i386/sync.md (ATOMIC): New mode iterator.
4753 (atomic_load<ATOMIC>, atomic_store<ATOMIC>): New.
4754 (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New.
4755 (mem_thread_fence): Rename from memory_barrier.
4756 Handle the added memory model parameter.
4757 (mfence_nosse): Rename from memory_barrier_nosse.
4758 (sync_compare_and_swap<CASMODE>): Split into ...
4759 (atomic_compare_and_swap<SWI124>): this and ...
4760 (atomic_compare_and_swap<CASMODE>): this. Handle the new parameters.
4761 (atomic_compare_and_swap_single<SWI>): Rename from
4762 sync_compare_and_swap<SWI>; rewrite to use split unspecs.
4763 (atomic_compare_and_swap_double<DCASMODE>): Rename from
4764 sync_double_compare_and_swap<DCASMODE>; rewrite to use split unspecs.
4765 (*atomic_compare_and_swap_doubledi_pic): Rename from
4766 sync_double_compare_and_swapdi_pic; rewrite to use split unspecs.
4767 (atomic_fetch_add<SWI>): Rename from sync_old_add<SWI>; add memory
4768 model parameter.
4769 (*atomic_fetch_add_cmp<SWI>): Similarly.
4770 (atomic_add<SWI>, atomic<any_logic><SWI>): Similarly.
4771 (atomic_sub<SWI>): Similarly. Use x86_maybe_negate_const_int.
4772 (sync_lock_test_and_set<SWI>): Merge with ...
4773 (atomic_exchange<SWI>): ... this.
4774
4775 2011-11-6 Richard Guenther <rguenther@suse.de>
4776
4777 * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag.
4778
4779 2011-11-06 Ira Rosen <ira.rosen@linaro.org>
4780
4781 * tree-vectorizer.h (vectorizable_condition): Add argument.
4782 * tree-vect-loop.c (vectorizable_reduction): Fail for condition
4783 in SLP. Update calls to vectorizable_condition.
4784 * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to
4785 the arguments. Pass it to vect_is_simple_use_1.
4786 (vectorizable_condition): Add slp_node to the arguments. Support
4787 vectorization of basic blocks. Fail for reduction in SLP. Update
4788 calls to vect_is_simple_cond and vect_is_simple_use. Support SLP:
4789 call vect_get_slp_defs to get vector operands.
4790 (vect_analyze_stmt): Update calls to vectorizable_condition.
4791 (vect_transform_stmt): Likewise.
4792 * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR.
4793 (vect_get_and_check_slp_defs): Handle COND_EXPR. Allow pattern
4794 def stmts.
4795 (vect_build_slp_tree): Handle COND_EXPR.
4796 (vect_analyze_slp_instance): Push pattern statements to root node.
4797 (vect_get_constant_vectors): Fix comments. Handle COND_EXPR.
4798
4799 2011-11-05 David S. Miller <davem@davemloft.net>
4800
4801 * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
4802 (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
4803 (*zero_extend_v8qi_<P:mode>_insn,
4804 *zero_extend_v4hi_<P:mode>_insn): New insns.
4805 * config/sparc/sparc.c (vector_init_move_words,
4806 vector_init_prepare_elts, sparc_expand_vector_init_vis2,
4807 sparc_expand_vector_init_vis1): New functions.
4808 (vector_init_bshuffle): Rewrite to handle more cases and make use
4809 of locs[] array prepared by vector_init_prepare_elts.
4810 (vector_init_fpmerge, vector_init_faligndata): Delete.
4811 (sparc_expand_vector_init): Rewrite using new infrastructure.
4812
4813 2011-11-05 Joern Rennecke <joern.rennecke@embecosm.com>
4814
4815 * config.gcc (epiphany-*-*): New architecture.
4816 (epiphany-*-elf): New configuration.
4817 * config/epiphany, common/config/epiphany : New directories.
4818 * doc/extend.texi (disinterrupt attribute): Add Epiphany.
4819 (interrupt attribute): Add Epiphany.
4820 (long_call, short_call attribute): Add Epiphany.
4821 * doc/invoke.texi (Options): Add Epiphany options.
4822 * doc/md.texi (Machine Constraints): Add Epiphany constraints.
4823 * doc/install.texi (Options specification):
4824 Add --with-stack-offset=@var{num} description.
4825 (host/target specific issues): Add epiphany-*-elf.
4826 * doc/contrib.texi (Contributors): Mention Epiphany port.
4827
4828 2011-11-05 Jakub Jelinek <jakub@redhat.com>
4829
4830 PR tree-optimization/50693
4831 * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with
4832 non-forced user labels.
4833 (gimple_merge_blocks): Turn non-forced user labels into
4834 debug bind stmt with the label as first operand and reset value.
4835 (gimple_duplicate_bb): Don't duplicate label debug stmts.
4836 * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
4837 * final.c (final_scan_insn): Likewise.
4838 (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL.
4839 * var-tracking.c (debug_label_num): New variable.
4840 (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs,
4841 instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes.
4842 * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle
4843 NOTE_INSN_DELETED_DEBUG_LABEL.
4844 (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs.
4845 * insn-notes.def (DELETED_DEBUG_LABEL): New note kind.
4846 * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
4847 * gengtype.c (adjust_field_rtx_def): Likewise.
4848 * config/i386/i386.c (ix86_output_function_epilogue): For MachO
4849 clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL
4850 if their are at the end of function and nop hasn't been emitted.
4851 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise.
4852
4853 2011-11-05 Georg-Johann Lay <avr@gjlay.de>
4854
4855 PR rtl-optimization/50448
4856 * cprop.c (try_replace_reg): Also try to replace uses of FROM that
4857 appear in SET_DEST.
4858
4859 2011-11-05 Peter Dufault <dufault@hda.com>,
4860 Sebastian Huber <sebastian.huber@embedded-brains.de>
4861
4862 * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4863 Extend rs6000_spe handling.
4864
4865 2011-11-05 Ralf Corsépius <ralf.corsepius@rtems.org>
4866
4867 * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
4868 Remove -mcpu=601 multilib.
4869 Remove -Dmpc8260 multilib.
4870 * config/rs6000/rtems.h: Allow --float-gprs=... to override grps
4871 on E500 targets.
4872
4873 2011-11-05 Quentin Neill <quentin.neill@amd.com>
4874
4875 Piledriver f16cintrin.h fix.
4876 * config/i386/f16cintrin.h: Contents moved from immintrin.h.
4877 * config/i386/immintrin.h: Include f16cintrin.h.
4878 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h.
4879
4880
4881 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
4882
4883 PR c++/50608
4884 * c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
4885 to fold_offsetof.
4886 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
4887
4888 2011-11-04 Alan Modra <amodra@gmail.com>
4889
4890 * reload1.c (gen_reload): Don't use REGNO on SUBREGs.
4891 * print-rtl.c (print_rtx): Don't segfault on negative regno.
4892
4893 2011-11-04 David S. Miller <davem@davemloft.net>
4894
4895 PR target/49965
4896 * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the
4897 fact that sparc_emit_float_lib_cmp modifies the comparison in
4898 operands[1].
4899
4900 2011-11-04 Ralf Corsépius <ralf.corsepius@rtems.org>
4901
4902 * config/lm32/t-rtems: New.
4903 * config.gcc (lm32-*-rtems*): Add t-rtems.
4904
4905 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
4906
4907 PR target/50979
4908 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
4909
4910 2011-11-04 Jiangning Liu <jiangning.liu@arm.com>
4911
4912 PR rtl-optimization/38644
4913 * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
4914 for epilogue having stack adjustment.
4915
4916 2011-11-04 Georg-Johann Lay <avr@gjlay.de>
4917
4918 PR target/50931
4919 * config/avr/avr-modes.def: New file defining PSImode.
4920 * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
4921 __UINT24_MAX__): New built-in defines.
4922 * config/avr/avr.md (adjust_len): Add tstpsi, mov24, reload_in24,
4923 ashlpsi, ashrpsi, lshrpsi.
4924 (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
4925 (MOVMODE): New mode iterator.
4926 (movpsi): New expander.
4927 (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
4928 (*reload_inpsi, *movpsi): New insns.
4929 (*reload_inpsi): New RTL peephole.
4930 (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
4931 *addpsi3_sign_extend.hi): New insns.
4932 (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
4933 *subpsi3_sign_extend.hi): New insns.
4934 (divmodpsi4, udivmodpsi4): New define insn-and-split.
4935 (*divmodpsi4_call, *udivmodpsi4_call): New insns.
4936 (andpsi3, iorpsi3, xorpsi3): New insns.
4937 (*rotlpsi2.1, *rotlpsi2.23): New insns.
4938 (*rotw<mode>): Insn condition only allow even-sized modes.
4939 (*rotb<mode>): Insn condition allows odd-sized modes.
4940 (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
4941 (negpsi2, one_cmplpsi2): New insns.
4942 (extendqipsi2, extendhipsi2, extendpsisi2): New insns.
4943 (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
4944 insn-and-splits.
4945 (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
4946 (cbranchpsi4): New expander.
4947 * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
4948 * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
4949 avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
4950 avr_out_reload_inpsi): New prototypes.
4951
4952 * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
4953 (avr_scalar_mode_supported_p): ...this new static function.
4954 (avr_asm_len): Always return "".
4955 (avr_out_load_psi, avr_out_store_psi): New static functions.
4956 (avr_out_movpsi, avr_out_reload_inpsi): New functions.
4957 (avr_out_tstpsi): New function.
4958 (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
4959 (avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
4960 (avr_simplify_comparison_p): Ditto.
4961 (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
4962 ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
4963 ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
4964 (avr_rtx_costs_1): Report PSI costs.
4965 (avr_libcall_value): Handle odd-sized parameters.
4966 (avr_init_builtin_int24): New static function to define built-in
4967 24-bit types __int24 and __uint24.
4968 (avr_init_builtins): Use it.
4969
4970 2011-11-04 Thomas Doerfler <thomas.doerfler@embedded-brains.de>
4971
4972 PR target/50989
4973 * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional
4974 support for VFP floating point model.
4975
4976 2011-11-04 Tristan Gingold <gingold@adacore.com>
4977
4978 * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.
4979
4980 2011-11-04 Ira Rosen <ira.rosen@linaro.org>
4981
4982 Unrevert:
4983 2011-10-24 Ira Rosen <ira.rosen@linaro.org>
4984
4985 PR tree-optimization/50730
4986 * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
4987 analysis if encountered unsupported data-ref.
4988
4989 2011-11-04 Jakub Jelinek <jakub@redhat.com>
4990
4991 * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
4992 function.
4993 * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
4994 New prototype.
4995 * config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
4996 For floatunsv8siv8sf2 require TARGET_AVX2.
4997
4998 * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
4999 XORP argument. Subtract 0x1p31 instead of 0x1p32. Use normal
5000 signalling comparison instead of non-signalling. Store into
5001 *XORP pseudo holding 0x80000000 integers if 0x1p31 has been
5002 subtracted and 0 otherwise.
5003 * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
5004 Adjust prototype.
5005 * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
5006 already for TARGET_SSE2. Xor in vector initialized by
5007 ix86_expand_adjust_ufix_to_sfix_si at the end.
5008 (vec_pack_ufix_trunc_<mode>): Likewise.
5009
5010 * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
5011 not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
5012 WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what
5013 vectorizable_type_demotion and vectorizable_type_promotion did.
5014 Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer
5015 is {,un}signed {char,short}.
5016 (vect_create_vectorized_demotion_stmts): Fix comment typo. For
5017 recursive calls unconditionally use VEC_PACK_TRUNC_EXPR.
5018 Push vec_dest back to the vec_dsts vector at the end.
5019 (vect_create_vectorized_promotion_stmts): Don't recurse, do just
5020 one step. Removed multi_step_cvt, vec_dsts, slp_node and
5021 prev_stmt_info arguments, add vec_dest argument. Push always
5022 into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0
5023 with vec_tmp at the end after freeing old *vec_oprnd0 vector.
5024 (vectorizable_type_demotion, vectorizable_type_promotion): Removed.
5025 (vect_analyze_stmt): Don't call vectorizable_type_demotion and
5026 vectorizable_type_promotion. Call vectorizable_conversion even
5027 for SLP bb vectorization.
5028 (vect_transform_stmt): Call vectorizable_conversion instead of
5029 vectorizable_type_demotion and vectorizable_type_promotion.
5030 (supportable_widening_operation): Clear *multi_step_cvt first,
5031 simplify c1/c2 computation, free *interm_types vector on failure.
5032 (supportable_narrowing_operation): Clear *multi_step_cvt first,
5033 free *interm_types vector on failure, handle multi-step
5034 FIX_TRUNC_EXPR.
5035
5036 2011-11-04 Tristan Gingold <gingold@adacore.com>
5037
5038 * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl
5039 argument. Conditionally generate crash debug info. Adjust
5040 for alpha_funcs_tree removal.
5041 (machine_function): Add links field.
5042 (alpha_start_function): Conditionally generate crash debug info.
5043 (alpha_end_function): Adjust call to alpha_write_linkage.
5044 (alpha_funcs): Remove.
5045 (links_kind): Remove.
5046 (alpha_links): Remove num, target and lkind field. Add func field.
5047 (alpha_links_tree): Remove.
5048 (alpha_funcs_tree): Remove.
5049 (alpha_need_linkage): Remove.
5050 (alpha_use_linkage): Change prototype. Adjust.
5051 (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL.
5052 Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro.
5053 * config/alpha/alpha-protos.h (alpha_use_linkage): Update.
5054 (alpha_need_linkage): Remove.
5055 * config/alpha/alpha.md: Update calls to alpha_use_linkage.
5056 Adjust calls to alpha_need_linkage.
5057
5058 2011-11-03 Uros Bizjak <ubizjak@gmail.com>
5059
5060 * sched-vis.c (print_value): Handle STRICT_LOW_PART.
5061
5062 2011-11-03 Uros Bizjak <ubizjak@gmail.com>
5063
5064 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
5065 rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
5066 btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
5067
5068 2011-11-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5069
5070 PR target/50978
5071 * config/arm/t-bpabi: New file.
5072 * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for
5073 arm*-*-linux-*eabi.
5074 (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for
5075 arm*-*-uclinux*eabi.
5076 (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file
5077 for arm*-*-eabi*.
5078
5079 2011-11-03 Michael Matz <matz@suse.de>
5080
5081 PR bootstrap/50857
5082 * configure.ac: Check for -fno-exceptions -fno-rtti.
5083 * configure: Regenerate.
5084 * Makefile.in (NOEXCEPTION_FLAGS): New flag.
5085 (ALL_CXXFLAGS): Use it.
5086
5087 2011-11-03 Uros Bizjak <ubizjak@gmail.com>
5088
5089 * config/i386/i386.md: Use {} for multi-line preparation statements.
5090
5091 2011-11-03 Eric Botcazou <ebotcazou@adacore.com>
5092
5093 * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into...
5094 (movtf_insn_sp32): ...this.
5095 (movtf_insn_sp64_no_fpu): Consolidate into...
5096 (movtf_insn_sp64): ...this.
5097 (movtf_insn_sp64_hq): Do not test TARGET_FPU.
5098 * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise.
5099
5100 2011-11-03 Tristan Gingold <gingold@adacore.com>
5101
5102 * config/vms/vms.c (vms_patch_builtins): Fix typo.
5103
5104 2011-11-03 Richard Guenther <rguenther@suse.de>
5105
5106 PR lto/44965
5107 * lto-opts.c: Re-implement.
5108 * lto-streamer.h (lto_register_user_option): Remove.
5109 (lto_read_file_options): Likewise.
5110 (lto_reissue_options): Likewise.
5111 (lto_clear_user_options): Likewise.
5112 (lto_clear_file_options): Likewise.
5113 * opts-global.c (post_handling_callback): Remove.
5114 (set_default_handlers): Do not set post_handling_callback.
5115 (decode_options): Remove LTO specific code.
5116 * lto-wrapper.c (merge_and_complain): New function.
5117 (run_gcc): Read all input file options and
5118 prepend a merged set before the linker driver options.
5119 * gcc.c (driver_post_handling_callback): Remove.
5120 (set_option_handlers): Do not set post_handling_callback.
5121 * opts-common.c (handle_option): Do not call post_handling_callback.
5122 * opts.h (struct cl_option_handlers): Remove post_handling_callback.
5123
5124 2011-11-03 Richard Guenther <rguenther@suse.de>
5125
5126 * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION.
5127
5128 2011-11-03 Martin Jambor <mjambor@suse.cz>
5129
5130 * ipa-prop.c (type_change_info): New fields offset, object,
5131 known_current_type and multiple_types_encountered.
5132 (extr_type_from_vtbl_ptr_store): New function.
5133 (check_stmt_for_type_change): Use it, set multiple_types_encountered if
5134 the result is different from the previous one.
5135 (detect_type_change): Renamed to detect_type_change_1. New parameter
5136 comp_type. Set up new fields in tci, build known type jump
5137 functions if the new type can be identified.
5138 (detect_type_change): New function.
5139 * tree.h (DECL_CONTEXT): Comment new use.
5140
5141 2011-11-03 Richard Guenther <rguenther@suse.de>
5142
5143 PR lto/48217
5144 * lto-wrapper.c (get_options_from_collect_gcc_options): Properly
5145 decode an encoded literal '.
5146
5147 2011-11-03 Tristan Gingold <gingold@adacore.com>
5148
5149 * collect2.c (main): Add support of -f (response file) on AIX.
5150
5151 2011-11-03 Ira Rosen <ira.rosen@linaro.org>
5152
5153 PR tree-optimization/50912
5154 * tree-vectorizer.h (slp_void_p): New.
5155 (struct _slp_tree): Replace left and right with children. Update
5156 documentation.
5157 (struct _slp_oprnd_info): New.
5158 (vect_get_vec_defs): Declare.
5159 (vect_get_slp_defs): Update arguments.
5160 * tree-vect-loop.c (vect_create_epilog_for_reduction): Call
5161 vect_get_vec_defs instead of vect_get_slp_defs.
5162 (vectorizable_reduction): Likewise.
5163 * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
5164 Update call to vect_get_slp_defs.
5165 (vectorizable_conversion): Update call to vect_get_vec_defs.
5166 (vectorizable_assignment, vectorizable_shift,
5167 vectorizable_operation): Likewise.
5168 (vectorizable_type_demotion): Call vect_get_vec_defs instead of
5169 vect_get_slp_defs.
5170 (vectorizable_type_promotion, vectorizable_store): Likewise.
5171 (vect_analyze_stmt): Fix typo.
5172 * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
5173 (vect_print_slp_tree, vect_mark_slp_stmts,
5174 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
5175 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
5176 vect_schedule_slp_instance): Likewise.
5177 (vect_create_new_slp_node): New.
5178 (vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
5179 (vect_get_and_check_slp_defs): Pass information about defs using
5180 oprnds_info, allow any number of operands.
5181 (vect_build_slp_tree): Likewise. Update calls to
5182 vect_get_and_check_slp_defs. Fix comments.
5183 (vect_analyze_slp_instance): Move node creation to
5184 vect_create_new_slp_node.
5185 (vect_get_slp_defs): Allow any number of operands.
5186
5187 2011-11-02 Peter Bergner <bergner@vnet.ibm.com>
5188 Iain Sandoe <iains@gcc.gnu.org>
5189
5190 * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define.
5191 (get_ppc476_thunk_name): Use it.
5192 (rs6000_code_end): Likewise.
5193 (macho_branch_islands): Fix typo.
5194
5195 2011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
5196 Jason Merrill <jason@redhat.com>
5197
5198 PR c++/50810
5199 * configure.ac: Add -Wno-narrowing to warning options.
5200 * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
5201
5202 2011-11-02 Eric Botcazou <ebotcazou@adacore.com>
5203
5204 PR target/50945
5205 * config/sparc/sparc.md (movsf_insn): Reindent constraints.
5206 (movdf_insn_sp32): Likewise. Remove redundant G constraint.
5207 (movdf_insn_sp64): Likewise.
5208 (DFmode splitter): Do not test TARGET_FPU.
5209 (movtf_insn_sp32): Reindent constraints.
5210 (movtf_insn_sp32_no_fpu): Likewise.
5211 (movtf_insn_sp64): Likewise.
5212 (movtf_insn_sp64_hq): Likewise.
5213 (movtf_insn_sp64_no_fpu): Likewise.
5214
5215 2011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
5216
5217 PR c++/50956
5218 * builtins.c (fold_builtin_memchr): Fix cast.
5219
5220 2011-11-02 Teresa Johnson <tejohnson@google.com>
5221
5222 * config/i386/predicates.md (promotable_binary_operator): Add minus
5223 to the list of promotable operators.
5224
5225 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5226
5227 * gthr-single.h, gthr.h: Move to ../libgcc.
5228 * gthr-aix.h: Move to ../libgcc/config/rs6000.
5229 * gthr-dce.h: Move to ../libgcc/config/pa.
5230 * gthr-lynx.h: Move to ../libgcc/config.
5231 * gthr-mipssde.h: Move to ../libgcc/config/mips.
5232 * gthr-posix.h: Move to ../libgcc/config.
5233 * gthr-rtems.h: Likewise.
5234 * gthr-tpf.h: Move to ../libgcc/config/s390.
5235 * gthr-vxworks.h: Move to ../libgcc/config.
5236 * gthr-win32.h: Move to ../libgcc/config/i386.
5237 * configure.ac (gthread_flags): Remove
5238 (gthr-default.h): Don't create.
5239 (thread_file): Don't substitute.
5240 * configure: Regenerate.
5241 * Makefile.in (GCC_THREAD_FILE): Remove.
5242 (GTHREAD_FLAGS): Remove.
5243 (libgcc.mvars): Remove GTHREAD_FLAGS.
5244 * config/t-vxworks (EXTRA_HEADERS): Remove.
5245
5246 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5247 Paolo Bonzini <bonzini@gnu.org>
5248
5249 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
5250 * configure: Regenerate.
5251 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
5252 (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
5253 (libgcc_tm.h, cs-libgcc_tm.h): Remove.
5254 (clean): Remove libgcc_tm.h
5255 * mkconfig.sh: Don't include libgcc_tm.h in tm.h.
5256 * config.gcc (libgcc_tm_file): Remove.
5257 (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
5258 (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
5259 (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
5260 (avr-*-rtems*): Likewise.
5261 (avr-*-*): Likewise.
5262 (frv-*-elf): Likewise.
5263 (frv-*-*linux*): Likewise.
5264 (h8300-*-rtems*): Likewise.
5265 (h8300-*-elf*): Likewise.
5266 (i[34567]86-*-darwin*): Likewise.
5267 (x86_64-*-darwin*): Likewise.
5268 (rx-*-elf*): Likewise.
5269 (tic6x-*-elf): Likewise.
5270 (tic6x-*-uclinux): Likewise.
5271 (i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
5272
5273 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5274
5275 * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS)
5276 (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA)
5277 (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET)
5278 (INCLUDES_FOR_TARGET): Remove.
5279 (LIBGCC2_CFLAGS): Don't export.
5280 (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify):
5281 Remove.
5282 (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies.
5283 (libgcc.mvars): Likewise.
5284 Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST,
5285 LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS,
5286 TARGET_LIBGCC2_CFLAGS.
5287 Emit GTHREAD_FLAGS.
5288 * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc.
5289 * config/darwin-64.c: Move to ../libgcc/config.
5290 * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
5291 config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
5292 config/udivmodsi4.c: Move to ../libgcc/config.
5293 * config/gthr-posix.c: Move to ../libgcc/config/alpha.
5294 * config/memcmp.c, config/memcpy.c, config/memmove.c,
5295 config/memset.c: Move to ../libgcc/config.
5296 * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove.
5297 * config/t-freebsd: Remove.
5298 * config/t-freebsd-thread: Move to ../libgcc/config.
5299 * config/t-libgcc-pic: Move to ../libgcc/config.
5300 * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove.
5301 * config/t-linux: Remove.
5302 * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
5303 Remove.
5304 * config/t-openbsd-thread: Move to ../libgcc/config.
5305 * config/t-rtems (LIBGCC2_INCLUDES): Remove.
5306 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove.
5307 * config/t-svr4: Remove.
5308 * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS)
5309 (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove.
5310 * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config.
5311 * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S.
5312 * config/alpha/t-alpha, config/alpha/t-ieee: Remove.
5313 * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove.
5314 * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha.
5315 * config/arm/bpabi.c, config/arm/unaligned-funcs.c,
5316 config/arm/fp16.c, config/arm/linux-atomic.c,
5317 config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm.
5318 * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC)
5319 (TARGET_LIBGCC2_CFLAGS): Remove.
5320 * config/arm/t-bpabi, config/arm/t-linux: Remove.
5321 * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS)
5322 (LIB2FUNCS_STATIC_EXTRA): Remove.
5323 * config/arm/t-netbsd: Remove.
5324 * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC)
5325 (TARGET_LIBGCC2_CFLAGS): Remove.
5326 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove.
5327 * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC)
5328 (TARGET_LIBGCC2_CFLAGS): Remove.
5329 * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS)
5330 (LIBGCC, INSTALL_LIBGCC): Remove.
5331 * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove.
5332 * config/bfin/t-bfin-linux: Likewise.
5333 * config/bfin/t-bfin-uclinux: Likewise.
5334 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
5335 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
5336 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
5337 config/c6x/ltf.c: Move to ../libgcc/config/c6x.
5338 * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove.
5339 * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove.
5340 * config/cris/arit.c: Move to ../libgcc/config/cris.
5341 * config/cris/cris_abi_symbol.c: Remove.
5342 * config/cris/cris.h: Remove obsolete comment.
5343 * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
5344 * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
5345 ($(LIB2FUNCS_EXTRA)): Remove.
5346 * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
5347 (LIBGCC): Remove.
5348 * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
5349 * config/fr30/t-fr30: Remove.
5350 * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
5351 config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
5352 config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move
5353 to ../libgcc/config/frv.
5354 * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
5355 (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c)
5356 (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove.
5357 * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
5358 * config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
5359 config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
5360 config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300.
5361 * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
5362 (LIBGCC, INSTALL_LIBGCC): Remove.
5363 * config/i386/gthr-win32.c: Move to ../libgcc/config/i386.
5364 * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove.
5365 * config/i386/t-cygwin: Remove.
5366 * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
5367 (LIB2FUNCS_EXCLUDE): Remove.
5368 * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
5369 (LIBGCC, INSTALL_LIBGCC): Remove.
5370 * config/i386/t-gthr-win32: Move to ../libgcc/config/i386.
5371 * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove.
5372 * config/i386/t-mingw-w32: Likewise.
5373 * config/i386/t-mingw-w64: Likewise.
5374 * config/i386/t-openbsd: Likewise.
5375 * config/i386/t-nto: Remove.
5376 * config/ia64/quadlib.c: Move to ../libgcc/config/ia64.
5377 * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
5378 (quadlib.c): Remove.
5379 * config/ia64/t-ia64: Remove comment.
5380 * config/iq2000/lib2extra-funcs.c: Move to
5381 ../libgcc/config/iq2000/lib2funcs.c.
5382 * config/iq2000/t-iq2000: Remove.
5383 * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c.
5384 * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c.
5385 * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
5386 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove.
5387 * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5388 (INSTALL_LIBGCC): Remove.
5389 * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k.
5390 * config/m68k/t-floatlib: Remove.
5391 * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove.
5392 * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove.
5393 Fix typo.
5394 (LIBGCC, INSTALL_LIBGCC): Remove.
5395 * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c.
5396 * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c.
5397 * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove.
5398 * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5399 (INSTALL_LIBGCC): Remove.
5400 * config/mips/t-isa3264: Likewise.
5401 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove.
5402 * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5403 (INSTALL_LIBGCC): Remove.
5404 * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove.
5405 * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5406 (INSTALL_LIBGCC): Remove.
5407 * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS)
5408 (LIB2FUNCS_STATIC_EXTRA): Remove.
5409 * config/mips/vr4120-div.S: Move to ../libgcc/config/mips.
5410 * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove.
5411 * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove.
5412 * config/pa/fptr.c, config/pa/linux-atomic.c: Move to
5413 ../libgcc/config/pa.
5414 * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S.
5415 * config/pa/quadlib.c: Move to ../libgcc/config/pa.
5416 * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove.
5417 * config/pa/t-linux, config/pa/t-linux64: Remove.
5418 * config/pa/t-pa-hpux, config/pa/t-pa-hpux10,
5419 config/pa/t-pa-hpux11, config/pa/t-pa64: Remove.
5420 * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA):
5421 Remove.
5422 * config/picochip/libgccExtras: Move to ../libgcc/config/picochip.
5423 * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET)
5424 (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove.
5425 * config/rs6000/crtresfpr.asm: Move to
5426 ../libgcc/config/rs6000/crtresfpr.S.
5427 * config/rs6000/crtresgpr.asm: Move to
5428 ../libgcc/config/rs6000/crtresgpr.S.
5429 * config/rs6000/crtresxfpr.asm: Move to
5430 ../libgcc/config/rs6000/crtresxfpr.S.
5431 * config/rs6000/crtresxgpr.asm: Move to
5432 ../libgcc/config/rs6000/crtresxgpr.S.
5433 * config/rs6000/crtsavfpr.asm: Move to
5434 ../libgcc/config/rs6000/crtsavfpr.S.
5435 * config/rs6000/crtsavgpr.asm: Move to
5436 ../libgcc/config/rs6000/crtsavgpr.S.
5437 * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000.
5438 * config/rs6000/darwin-fpsave.asm: Move to
5439 ../libgcc/config/rs6000/darwin-fpsave.S.
5440 * config/rs6000/darwin-gpsave.asm: Move to
5441 ../libgcc/config/rs6000/darwin-gpsave.S.
5442 * config/rs6000/darwin-tramp.asm: Move to
5443 ../libgcc/config/rs6000/darwin-tramp.S.
5444 * config/rs6000/darwin-vecsave.asm: Move to
5445 ../libgcc/config/rs6000/darwin-vecsave.S.
5446 * config/rs6000/darwin-world.asm: Move to
5447 ../libgcc/config/rs6000/darwin-world.S.
5448 * config/rs6000/e500crtres32gpr.asm: Move to
5449 ../libgcc/config/rs6000/e500crtres32gpr.S.
5450 * config/rs6000/e500crtres64gpr.asm: Move to
5451 ../libgcc/config/rs6000/e500crtres64gpr.S.
5452 * config/rs6000/e500crtres64gprctr.asm: Move to
5453 ../libgcc/config/rs6000/e500crtres64gprctr.S.
5454 * config/rs6000/e500crtrest32gpr.asm: Move to
5455 ../libgcc/config/rs6000/e500crtrest32gpr.S.
5456 * config/rs6000/e500crtrest64gpr.asm: Move to
5457 ../libgcc/config/rs6000/e500crtrest64gpr.S.
5458 * config/rs6000/e500crtresx32gpr.asm: Move to
5459 ../libgcc/config/rs6000/e500crtresx32gpr.S.
5460 * config/rs6000/e500crtresx64gpr.asm: Move to
5461 ../libgcc/config/rs6000/e500crtresx64gpr.S.
5462 * config/rs6000/e500crtsav32gpr.asm: Move to
5463 ../libgcc/config/rs6000/e500crtsav32gpr.S.
5464 * config/rs6000/e500crtsav64gpr.asm: Move to
5465 ../libgcc/config/rs6000/e500crtsav64gpr.S.
5466 * config/rs6000/e500crtsav64gprctr.asm: Move to
5467 ../libgcc/config/rs6000/e500crtsav64gprctr.S.
5468 * config/rs6000/e500crtsavg32gpr.asm: Move to
5469 ../libgcc/config/rs6000/e500crtsavg32gpr.S.
5470 * config/rs6000/e500crtsavg64gpr.asm: Move to
5471 ../libgcc/config/rs6000/e500crtsavg64gpr.S.
5472 * config/rs6000/e500crtsavg64gprctr.asm: Move to
5473 ../libgcc/config/rs6000/e500crtsavg64gprctr.S.
5474 * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S.
5475 * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
5476 (TARGET_LIBGCC2_CFLAGS): Remove.
5477 * config/rs6000/t-aix52: Likewise.
5478 * config/rs6000/t-darwin: Remove.
5479 * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS)
5480 (LIB2FUNCS_EXTRA): Remove.
5481 * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove.
5482 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove.
5483 * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC)
5484 (INSTALL_LIBGCC): Remove.
5485 * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA)
5486 (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S)
5487 (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC)
5488 (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext))
5489 ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext))
5490 ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove.
5491 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA)
5492 (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove.
5493 * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove.
5494 * config/rs6000/t-vxworks: Remove comment.
5495 * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S.
5496 * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove.
5497 * config/sh/linux-atomic.asm: Move to
5498 ../libgcc/config/sh/linux-atomic.S.
5499 * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove.
5500 * config/sh/t-netbsd: Remove.
5501 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
5502 Remove.
5503 * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove.
5504 * config/sparc/t-leon: Likewise.
5505 * config/sparc/t-leon3: Likewise.
5506 * config/sparc/t-linux64: Likewise.
5507 * config/sparc/t-netbsd64: Fix typo.
5508 Remove comment.
5509 * config/spu/divmodti4.c, config/spu/divv2df3.c,
5510 config/spu/float_disf.c, config/spu/float_unsdidf.c,
5511 config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
5512 config/spu/mfc_multi_tag_release.c,
5513 config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
5514 config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
5515 config/spu/multi3.c: Move to ../libgcc/config/spu.
5516 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE)
5517 (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC)
5518 (INSTALL_LIBGCC): Remove.
5519 * config/stormy16/stormy16-lib2.c: Move to
5520 ../libgcc/config/stormy16/lib2.c.
5521 * config/stormy16/stormy16-lib2-ashlsi3.c: Move to
5522 ../libgcc/config/stormy16/ashlsi3.c.
5523 * config/stormy16/stormy16-lib2-ashrsi3.c: Move to
5524 ../libgcc/config/stormy16/ashrsi3.c.
5525 * config/stormy16/stormy16-lib2-clzhi2.c: Move to
5526 ../libgcc/config/stormy16/clzhi2.c.
5527 * config/stormy16/stormy16-lib2-cmpsi2.c: Move to
5528 ../libgcc/config/stormy16/cmpsi2.c.
5529 * config/stormy16/stormy16-lib2-ctzhi2.c: Move to
5530 ../libgcc/config/stormy16/ctzhi2.c.
5531 * config/stormy16/stormy16-lib2-divsi3.c: Move to
5532 ../libgcc/config/stormy16/divsi3.c.
5533 * config/stormy16/stormy16-lib2-ffshi2.c: Move to
5534 ../libgcc/config/stormy16/ffshi2.c.
5535 * config/stormy16/stormy16-lib2-lshrsi3.c: Move to
5536 ../libgcc/config/stormy16/lshrsi3.c.
5537 * config/stormy16/stormy16-lib2-modsi3.c: Move to
5538 ../libgcc/config/stormy16/modsi3.c.
5539 * config/stormy16/stormy16-lib2-parityhi2.c: Move to
5540 ../libgcc/config/stormy16/parityhi2.c.
5541 * config/stormy16/stormy16-lib2-popcounthi2.c: Move to
5542 ../libgcc/config/stormy16/popcounthi2.c.
5543 * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to
5544 ../libgcc/config/stormy16/ucmpsi2.c.
5545 * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to
5546 ../libgcc/config/stormy16/udivmodsi4.c.
5547 * config/stormy16/stormy16-lib2-udivsi3.c: Move to
5548 ../libgcc/config/stormy16/udivsi3.c.
5549 * config/stormy16/stormy16-lib2-umodsi3.c: Move to
5550 ../libgcc/config/stormy16/umodsi3.c.
5551 * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16.
5552 * config/v850/t-v850 (INSTALL_LIBGCC): Remove.
5553 * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa.
5554 * config/xtensa/t-elf: Remove.
5555 * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove.
5556 * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread
5557 from tmake_file.
5558 (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
5559 *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file.
5560 (*-*-netbsd*): Remove t-libgcc-pic from tmake_file.
5561 (*-*-openbsd*): Likewise.
5562 Remove t-openbsd-thread for posix threads.
5563 (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file.
5564 (alpha*-*-freebsd*): Likewise.
5565 (alpha*-*-netbsd*): Likewise.
5566 (alpha*-*-openbsd*): Likewise.
5567 (alpha64-dec-*vms*): Likewise.
5568 (alpha*-dec-*vms*): Likewise.
5569 (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file.
5570 (arm*-*-linux*): Remove t-linux from tmake_file.
5571 Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi.
5572 (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for
5573 arm*-*-uclinux*eabi.
5574 (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from
5575 tmake_file for arm*-*-eabi*.
5576 (fr30-*-elf): Remove tmake_file.
5577 (hppa*64*-*-linux*): Remove tmake_file.
5578 (hppa*-*-linux*): Likewise.
5579 (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from
5580 tmake_file.
5581 (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file.
5582 (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from
5583 tmake_file.
5584 (i[34567]86-*-elf*): Remove tmake_file.
5585 (x86_64-*-elf*): Likewise.
5586 (i[34567]86-*-nto-qnx*): Likewise.
5587 (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file.
5588 (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32
5589 from tmake_file if using win32 threads.
5590 (iq2000*-*-elf*): Remove tmake-file.
5591 (microblaze*-linux*): Likewise.
5592 (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
5593 (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
5594 (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
5595 (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for
5596 sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd.
5597 (xtensa*-*-elf*): Remove tmake_file.
5598
5599 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5600
5601 * Makefile.in (LIB1ASMSRC): Don't export.
5602 (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC.
5603 * config/arm/arm.c: Update lib1funcs.asm filename.
5604 * config/arm/linux-eabi.h: Likewise.
5605 * config/arm/bpabi-v6m.S, config/arm/bpabi.S,
5606 config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to
5607 ../libgcc/config/arm.
5608 * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S.
5609 * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5610 * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove.
5611 * config/arm/t-bpabi: Likewise.
5612 * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5613 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove.
5614 * config/arm/t-strongarm-elf: Likewise.
5615 * config/arm/t-symbian: Likewise.
5616 * config/arm/t-vxworks: Likewise.
5617 * config/arm/t-wince-pe: Likewise.
5618 * config/avr/libgcc.S: Move to ../libgcc/config/avr.
5619 * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5620 * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S.
5621 * config/bfin/t-bfin: Remove.
5622 * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5623 * config/bfin/t-bfin-linux: Likewise.
5624 * config/bfin/t-bfin-uclinux: Likewise.
5625 * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S.
5626 * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5627 * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S.
5628 * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5629 * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S.
5630 * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5631 * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename.
5632 * config/h8300/lib1funcs.asm: Move to
5633 ../libgcc/config/h8300/lib1funcs.S.
5634 * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5635 * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S.
5636 * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5637 * config/i386/t-interix: Likewise.
5638 * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S.
5639 * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove.
5640 * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5641 * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove.
5642 * config/m32c/m32c.c: Update m32c-lib1.S filename.
5643 * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S.
5644 * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5645 * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove.
5646 * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S.
5647 * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file.
5648 * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S.
5649 * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5650 * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S.
5651 * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5652 * config/mips/mips16.S: Move to ../libgcc/config/mips.
5653 * config/mips/t-libgcc-mips16: Remove.
5654 * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove.
5655 * config/pa/milli64.S: Move to ../libgcc/config/pa.
5656 * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
5657 * config/pa/t-linux64: Likewise.
5658 * config/picochip/libgccExtras/fake_libgcc.asm: Move to
5659 ../libgcc/config/picochip/lib1funcs.S.
5660 * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
5661 * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S.
5662 * config/sh/lib1funcs.h: Move to ../libgcc/config/sh.
5663 * config/sh/sh.h: Update lib1funcs.asm filename.
5664 * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove.
5665 * config/sh/t-netbsd: Likewise.
5666 * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE):
5667 Remove.
5668 * config/sh/t-sh64 (LIB1ASMFUNCS): Remove.
5669 * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S.
5670 * config/sparc/lb1spl.asm: Remove.
5671 * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5672 * config/sparc/t-leon: Likewise.
5673 * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove.
5674 * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S.
5675 * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove
5676 * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S.
5677 * config/vax/t-linux: Remove.
5678 * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to
5679 ../libgcc/config/xtensa.
5680 * config/xtensa/lib1funcs.asm: Move to
5681 ../libgcc/config/xtensa/lib1funcs.S.
5682 * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5683 * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file.
5684 (bfin*-*): Likewise.
5685 (mips64*-*-linux*, mipsisa64*-*-linux*): Remove
5686 mips/t-libgcc-mips16 from tmake_file.
5687 (mips*-*-linux*): Likewise.
5688 (mips*-sde-elf*): Likewise.
5689 (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
5690 (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
5691 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise.
5692 (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
5693 (mips-*-elf*, mipsel-*-elf*): Likewise.
5694 (mips64-*-elf*, mips64el-*-elf*): Likewise.
5695 (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
5696 (mips*-*-rtems*): Likewise.
5697 (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
5698 (vax-*-linux*): Remove vax/t-linux from tmake_file.
5699
5700 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5701
5702 * config.gcc (extra_parts): Remove.
5703 (*-*-freebsd*): Remove extra_parts.
5704 (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
5705 *-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
5706 (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
5707 Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
5708 *-*-netbsdelf[2-9]*.
5709 (*-*-openbsd*): Remove t-libc-ok from tmake_file.
5710 (alpha*-*-linux*): Remove extra_parts.
5711 (alpha*-*-freebsd*): Likewise.
5712 (bfin*-linux-uclibc*): Likewise.
5713 (fr30-*-elf): Likewise.
5714 (moxie-*-elf): Likewise.
5715 (moxie-*-uclinux*): Likewise.
5716 (h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
5717 (h8300-*-elf*): Likewise.
5718 (hppa*64*-*-hpux11*): Remove extra_parts.
5719 (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
5720 tmake_file.
5721 (x86_64-*-elf*): Likewise.
5722 (i[34567]86-*-freebsd*): Remove tmake_file.
5723 (x86_64-*-freebsd*): Likewise.
5724 (x86_64-*-netbsd*): Likewise.
5725 (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
5726 t-libc-ok from tmake_file.
5727 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5728 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
5729 i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from
5730 tmake_file.
5731 Remove extra_parts.
5732 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
5733 Remove i386/t-crtstuff from tmake_file.
5734 (i[34567]86-*-lynxos*): Likewise.
5735 Remove extra_parts.
5736 (ia64*-*-elf*): Remove extra_parts.
5737 (ia64*-*-freebsd*): Likewise.
5738 (ia64*-*-linux*): Likewise.
5739 (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
5740 (m32r-*-elf*): Remove extra_parts.
5741 (m32rle-*-elf*): Likewise.
5742 (m32r-*-rtems*): Likewise.
5743 (m68k-*-elf*, fido-*-elf*): Likewise.
5744 (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
5745 (m68k-*-rtems*): Remove extra_parts.
5746 (mep-*-*): Likewise.
5747 (microblaze*-linux*): Likewise.
5748 (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
5749 (mips*-*-linux*): Likewise.
5750 (powerpc-*-lynxos*): Likewise.
5751 (s390x-ibm-tpf*): Likewise.
5752 (score-*-elf): Likewise.
5753 Remove tmake_file.
5754 (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
5755 sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
5756 sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
5757 Remove sh/t-superh from tmake_file for sh*-superh-elf.
5758 Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
5759 (sh-*-rtems*): Remove sh/t-elf from tmake_file.
5760 (sh-wrs-vxworks): Likewise.
5761 (sparc-*-linux*): Remove extra_parts.
5762 (sparc64-*-linux*): Likewise.
5763 (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
5764 (xstormy16-*-elf): Likewise.
5765 (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
5766 (am33_2.0-*-linux*): Remove extra_parts.
5767 * configure.ac (extra_parts): Don't substitute.
5768 * configure: Regenerate.
5769 * crtstuff.c: Move to ../libgcc.
5770 * Makefile.in (CRTSTUFF_CFLAGS): Remove.
5771 (EXTRA_PARTS): Remove.
5772 (CRTSTUFF_T_CFLAGS): Remove.
5773 (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
5774 (GCC_EXTRA_PARTS): Remove.
5775 (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
5776 CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
5777 Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
5778 ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)