OSDN Git Service

2011-12-23 Tristan Gingold <gingold@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-12-23  Tristan Gingold  <gingold@adacore.com>
2
3         * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define.
4
5 2011-12-22  Bin Cheng  <bin.cheng@arm.com>
6         Richard Guenther  <rguenther@suse.de>
7
8         PR tree-optimization/43491
9         * tree-ssa-pre.c (eliminate): Don't replace global register
10         variable when it is the RHS of a single assign.
11
12 2011-12-22  Joey Ye  <joey.ye@arm.com>
13
14         * toplev.c (process_options): Fix typo.
15
16 2011-12-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17
18         PR middle-end/51252
19         * config/pa/pa.c (pa_som_tm_clone_table_section): New function.
20         (som_tm_clone_table_section): Declare.
21         (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace.
22         (pa_som_asm_init_sections): Init som_tm_clone_table_section.
23         * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
24
25 2011-12-22  Richard Sandiford  <rdsandiford@googlemail.com>
26
27         * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook.
28         * doc/tm.texi: Regenerate.
29         * target.def (prepare_pch_save): New hook.
30         * c-family/c-pch.c (c_common_write_pch): Call it.
31         * config/mips/mips.c (was_mips16_pch_p): Delete.
32         (mips_set_mips16_mode): Don't refer to was_mips16_pch_p.
33         (mips_prepare_pch_save): New function.
34         (TARGET_PREPARE_PCH_SAVE): Define.
35
36 2011-12-22  Aldy Hernandez  <aldyh@redhat.com>
37
38         PR middle-end/51212
39         * opts.c (finish_options): Call sorry on -fgnu-tm and
40         -fnon-call-exceptions combination.
41
42 2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
43
44         * doc/invoke.texi (C++ Dialect Options): Add missing options and
45         move -Wzero-as-null-pointer-constant to ...
46         (Warning Options): ... here.
47
48 2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
49
50         PR target/47643
51         * doc/invoke.texi (i386 and x86-64 Options): Fix description of
52         -mtune without -march.
53
54 2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
55
56         PR target/51643
57         * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
58         change.
59
60 2011-12-22  Tristan Gingold  <gingold@adacore.com>
61
62         * config/ia64/ia64.c (ia64_promote_function_mode): Remove.
63         (TARGET_PROMOTE_FUNCTION_MODE): Remove.
64         (ia64_function_value): Call promote_function_mode instead of
65         ia64_promote_function_mode.
66         * config/ia64/vms.h (PROMOTE_MODE): Define.
67         (TARGET_PROMOTE_FUNCTION_MODE): Define.
68
69 2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
70
71         PR target/27468
72         * common/config/alpha/alpha-common.c (alpha_option_optimization_table):
73         Enable flag_ree at -O2 or higher.
74
75 2011-12-22  Richard Guenther  <rguenther@suse.de>
76
77         PR lto/51650
78         * lto.c (uniquify_nodes): Register TYPE_DECLs with the
79         debuginfo machinery.
80
81 2011-12-22  Bernd Schmidt  <bernds@codesourcery.com>
82
83         * tree-pass.h (pass_reload): Declare.
84         * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots):
85         New global variables, moved out of ira.
86         (do_reload): New static function, split off from the second half
87         of ...
88         (ira): ... here.
89         (gate_ira): Remove.
90         (pass_ira): Use TV_IRA, set gate to NULL, and set flags to
91         TODO_dump_func.
92         (rest_of_handle_reload): New static function.
93         (pass_reload): New.
94
95 2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
96
97         * common/config/i386/i386-common.c (ix86_option_optimization_table):
98         Move OPT_free processing from ...
99         * config/i386/i386.c (ix86_option_override_internal):  ... here.
100
101 2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
102
103         PR target/51643
104         * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
105         weak function on bare-metal EABI targets.
106
107 2011-12-21  Jonathan Wakely  <jwakely.gcc@gmail.com>
108             Jim Avera  <james_avera@yahoo.com>
109
110         * doc/extend.texi (__builtin_expect): Improve example.
111
112 2011-12-21  Uros Bizjak  <ubizjak@gmail.com>
113
114         * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree
115         also for 32bit targets.
116
117 2011-12-21  Richard Henderson  <rth@redhat.com>
118
119         PR target/51552
120         * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code...
121         (scan_trace): ... here.
122
123 2011-12-21  Jason Merrill  <jason@redhat.com>
124
125         * doc/standards.texi (C++ language): Update for C++11.
126
127 2011-12-21  Jakub Jelinek  <jakub@redhat.com>
128
129         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize
130         *op0 and *op1 to NULL_TREE first to avoid warnings.
131         * calls.c (initialize_argument_information): Initialize base to avoid
132         warnings.
133
134         PR middle-end/51644
135         PR middle-end/51647
136         * tree-eh.c (decide_copy_try_finally): At -O0, return true
137         even when ndests is not 1, if there are only gimple_clobber_p
138         (or debug) stmts in the finally sequence.
139         * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p
140         stmts.
141
142 2011-12-21  Aldy Hernandez  <aldyh@redhat.com>
143
144         PR middle-end/51472
145         * trans-mem.c (tm_log_add): Use create_tmp_var_reg.
146
147 2011-12-21  Martin Jambor  <mjambor@suse.cz>
148
149         * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
150         (rewrite_update_enter_block): Likewise.
151         (dump_update_ssa): Likewise.
152         (update_ssa): Likewise but also dump a newline at the beginning.
153
154 2011-12-21  Enkovich Ilya  <ilya.enkovich@intel.com>
155
156         PR target/50038
157         * implicit-zee.c: Delete.
158         * ree.c: New file.
159         * Makefile.in: Replace implicit-zee.c with ree.c.
160         * config/i386/i386.c (ix86_option_override_internal): Rename
161         flag_zee to flag_ree.
162         * common.opt (fzee): Ignored.
163         (free): New.
164         * passes.c (init_optimization_passes): Replace pass_implicit_zee
165         with pass_ree.
166         * tree-pass.h (pass_implicit_zee): Delete.
167         (pass_ree): New.
168         * timevar.def (TV_ZEE): Delete.
169         (TV_REE): New.
170         * doc/invoke.texi: Add -free description.
171
172 2011-12-21  Tristan Gingold  <gingold@adacore.com>
173
174         * config/vms/vms-protos.h (vms_function_section): New prototype.
175         * config/vms/vms.c (vms_function_section): New function.
176         * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define.
177
178 2011-12-21  Richard Guenther  <rguenther@suse.de>
179
180         PR lto/41159
181         * tree-outof-ssa.c (insert_value_copy_on_edge): Use the
182         mode of the pseudo as destination mode.  Only assert that
183         is equal to the promoted mode of the decl if it is a REG.
184
185 2011-12-21  Tristan Gingold  <gingold@adacore.com>
186
187         * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define.
188
189 2011-12-20  Richard Henderson  <rth@redhat.com>
190
191         * config/ia64/ia64.c (MAX_VECT_LEN): New.
192         (struct expand_vec_perm_d): New.
193         (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
194         (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1.
195         (expand_vselect, expand_vselect_vconcat): New.
196         (expand_vec_perm_identity, expand_vec_perm_shrp): New.
197         (expand_vec_perm_1, expand_vec_perm_broadcast): New.
198         (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New.
199         (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New.
200         (ia64_vectorize_vec_perm_const_ok): New.
201         (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New.
202         * config/ia64/ia64-protos.h: Update.
203         * config/ia64/vect.md (VEC): New mode iterator.
204         (vecint): New mode attribute.
205         (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'.
206         (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise.
207         (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise.
208         (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise.
209         (mix1_even, mix1_odd, mux1_alt): Likewise.
210         (mux1_brcst_qi): Remove '*' from name.
211         (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove.
212         (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove.
213         (vec_extract_evenv2si, vec_extract_oddv2si): Remove.
214         (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
215         (vec_extract_evenodd_helper): Remove.
216         (vec_setv2sf): Use ia64_expand_vec_setv2sf.
217         (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd.
218         (vec_pack_trunc_v2si): Likewise.
219         (vec_perm_const<VEC>): New.
220
221 2011-12-20  Richard Henderson  <rth@redhat.com>
222
223         * tree-vect-generic.c (expand_vector_operations_1): Correct tests
224         for vector types -- use the type not the mode.  Fix optab selection
225         for vector shifts by a scalar.  Handle over-large integer modes
226         like BLKmode.
227
228 2011-12-20  Richard Henderson  <rth@redhat.com>
229
230         * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform
231         post-reload splitting.
232
233         * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2.
234         * config/arm/arm.c (arm_select_cc_mode): Use it.
235
236 2011-12-20  Richard Sandiford  <rdsandiford@googlemail.com>
237
238         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
239         handling of signedness differences to integer types.  Only build
240         a new optype if type1 isn't correct.
241
242 2011-12-20  Vladimir Makarov  <vmakarov@redhat.com>
243
244         PR target/49865
245         * ira-costs.c (find_costs_and_classes): Prefer registers even
246           if the memory cost is the same.
247
248 2011-12-20  Joseph Myers  <joseph@codesourcery.com>
249
250         * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)
251         (finish_struct): Refer to C11 in comments.  Use flag_isoc11.
252         * c-parser.c (c_parser_static_assert_declaration)
253         (c_parser_static_assert_declaration_no_semi, c_parser_declspecs)
254         (c_parser_alignas_specifier, c_parser_alignof_expression): Refer
255         to C11 in comments.  Use flag_isoc11.
256         * c-typeck.c (comptypes_check_different_types): Refer to C11 in
257         comment.
258         * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x.
259         * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference
260         to -std=c1x and -std=gnu1x.
261         * doc/extend.texi (Inline, Alternate Keywords, Other Builtins)
262         (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11
263         instead of -std=c1x and C1X.
264         * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in
265         preference to -std=c1x.
266         (-std=gnu11): Document in preference to -std=gnu1x.
267         * doc/standards.texi: Document C11 instead of C1X.  Document C11
268         as actual standard.  Document headers required from freestanding
269         C11 implementations.
270         * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >=
271         201112L for C11.  Update comments to refer to C11.
272
273 2011-12-20  Andreas Schwab  <schwab@linux-m68k.org>
274
275         * configure: Regenerate.
276
277 2011-12-20  Bernd Schmidt  <bernds@codesourcery.com>
278
279         PR middle-end/51200
280         * expr.c (store_field): Avoid a direct store if the mode is larger
281         than the size of the bit field.
282         * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
283         treat non-volatile bit fields like volatile ones.
284         * toplev.c (process_options): Disallow combination of
285         -fstrict-volatile-bitfields and ABI versions less than 2.
286         * config/arm/arm.c (arm_option_override): Don't enable
287         flag_strict_volatile_bitfields if the ABI version is less than 2.
288         * config/h8300/h8300.c (h8300_option_override): Likewise.
289         * config/rx/rx.c (rx_option_override): Likewise.
290         * config/m32c/m32c.c (m32c_option_override): Likewise.
291         * config/sh/sh.c (sh_option_override): Likewise.
292
293 2011-12-20  Richard Guenther  <rguenther@suse.de>
294
295         PR lto/46796
296         * dwarf2out.c (modified_type_die): When the type variant
297         chain is corrupt use the types name, if available, instead
298         of __unknown__.
299
300 2011-12-20  Tristan Gingold  <gingold@adacore.com>
301
302         * config/alpha/alpha.c (alpha_start_function): Adjust condition to
303         create VMS trampoline entry point.
304
305 2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
306
307         PR rtl-optimization/42839
308         * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND
309         optimization if the source register is already extended.
310
311 2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
312
313         * lower-subreg.c (can_decompose_p): Check every word of a hard
314         register.
315
316 2011-12-19  Sandra Loosemore  <sandra@codesourcery.com>
317             Tom de Vries <tom@codesourcery.com>
318
319         PR rtl-opt/50380
320         * cse.c (find_comparison_args): Detect fixed point and
321         bail early.
322
323 2011-12-19  Aldy Hernandez  <aldyh@redhat.com>
324
325         PR middle-end/51411
326         * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK.
327
328 2011-12-19  Quentin Neill  <quentin.neill@amd.com>
329
330         PR target/48743
331         * config/i386/driver-i386.c (host_detect_local_cpu): Also check
332         family to distinguish PROCESSOR_ATHLON.
333
334 2011-12-19  Richard Guenther  <rguenther@suse.de>
335
336         PR lto/51573
337         * streamer-hooks.h (struct streamer_hooks): Add second
338         ref_p parameter to write_tree.
339         (stream_write_tree): Adjust.
340         (stream_write_tree_shallow_non_ref): New define.
341         * lto-streamer.h (lto_output_tree): Adjust.
342         * lto-streamer-out.c (lto_output_tree): Likewise.
343         * tree-streamer-out.c (streamer_write_chain): Only
344         force the immediate tree to be streamed as non-reference.
345
346 2011-12-19  Martin Jambor  <mjambor@suse.cz>
347
348         PR tree-optimization/51583
349         * tree-sra.c (load_assign_lhs_subreplacements): Call
350         force_gimple_operand_gsi when necessary also in case of no
351         corresponding replacement on the RHS.
352
353 2011-12-19  Jakub Jelinek  <jakub@redhat.com>
354
355         * gimple.h (gimplify_seq_add_stmt): Rename to...
356         (gimple_seq_add_stmt_without_update): ... this.
357         * gimplify.c (gimplify_seq_add_stmt): Rename to...
358         (gimple_seq_add_stmt_without_update): ... this.
359         (gimplify_seq_add_stmt): New inline wrapper for it.
360         * tree-vect-patterns.c (append_pattern_def_seq): Use
361         gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.
362
363         PR tree-optimization/51596
364         * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges
365         when needed.
366
367         PR middle-end/51590
368         PR tree-optimization/51606
369         * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq):
370         New inline functions.
371         (vect_recog_over_widening_pattern,
372         vect_recog_vector_vector_shift_pattern,
373         vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern,
374         adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them.
375
376 2011-12-19  Richard Guenther  <rguenther@suse.de>
377
378         PR lto/51572
379         * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL
380         from TYPE_FIELDS.
381         (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS.
382         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do
383         not stream TREE_CHAIN.
384         (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
385         using streamer_write_chain.
386         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
387         Do not stream TREE_CHAIN.
388         (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
389         using streamer_read_chain.
390         * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs.
391         * gimple.c (gimple_canonical_types_compatible_p): Properly
392         handle trailing non-FIELD_DECLs in TYPE_FIELDS.
393
394 2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
395
396         * configure: Regenerate.
397
398 2011-12-19  Bernd Schmidt  <bernds@codesourcery.com>
399
400         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for
401         partial integer modes.
402
403 2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
404
405         PR target/51532
406         * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define.
407         * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS.
408         * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 ||
409         TARGET_68040).
410
411 2011-12-18  Anatoly Sokolov  <aesok@post.ru>
412
413         * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
414         LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP,
415         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
416         * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
417         (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg,
418         ia64_legitimate_address_disp, ia64_legitimate_address_p): New
419         functions.
420
421 2011-12-17  Tom de Vries  <tom@codesourcery.com>
422
423         PR tree-optimization/51491
424         * tree-ssa-ccp.c (insert_clobber_before_stack_restore)
425         (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function.
426         (ccp_fold_stmt): Use insert_clobbers_for_var after a successful
427         fold_builtin_alloca_with_align.
428         (ccp_visit_stmt): Calculate and free dominator info.
429
430 2011-12-16  Eric Botcazou  <ebotcazou@adacore.com>
431
432         * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
433         (frame_blockage): New expander.
434         (frame_blockage<P:mode>): New instruction.
435         * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
436         instructions establishing the frame isn't atomic, emit frame blockage.
437
438 2011-12-16  Tristan Gingold  <gingold@adacore.com>
439
440         * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define.
441
442 2011-12-16  Tristan Gingold  <gingold@adacore.com>
443
444         * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias.
445         (alpha_write_one_linkage): Use assemble_name to emit linkage name.
446
447 2011-12-16  Tristan Gingold  <gingold@adacore.com>
448
449         * config/vms/t-vms (vms.o, vms-c.o): Force output filename.
450
451 2011-12-16  Tristan Gingold  <gingold@adacore.com>
452
453         * config/vms/vms.c (VMS_CRTL_GLOBAL): Define.
454         (vms_patch_builtins): Handle.
455         * config/vms/vms-crtlmap.map: Add an entry for environ.
456
457 2011-12-16  Jakub Jelinek  <jakub@redhat.com>
458
459         PR debug/51557
460         * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes
461         other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND.
462
463         PR tree-optimization/51576
464         * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt
465         even if fold_stmt didn't change anything.
466
467 2011-12-16  Richard Guenther  <rguenther@suse.de>
468
469         PR lto/51572
470         * dwarf2out.c (gen_type_die_with_usage): Use the context of
471         the TYPE_DECL as well if it is file-scope.
472
473 2011-12-15  DJ Delorie  <dj@redhat.com>
474
475         * config/rl78/rl78.md (return): Rename to rl78_return.
476         * config/rl78/rl78.c (rl78_expand_epilogue): Use new name.
477         (rl78_expand_eh_epilogue): Use new name.
478         (rl78_calculate_death_notes): Likewise.
479
480 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
481
482         * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt
483         field, add pattern_def_seq.
484         (STMT_VINFO_PATTERN_DEF_STMT): Remove.
485         (STMT_VINFO_PATTERN_DEF_SEQ): Define.
486         (NUM_PATTERNS): Bump to 10.
487         * tree-vect-loop.c (vect_determine_vectorization_factor,
488         vect_transform_loop): Adjust for pattern def changing from a single
489         gimple stmt to gimple_seq.
490         * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info,
491         free_stmt_vec_info): Likewise.
492         * tree-vect-patterns.c (vect_recog_over_widening_pattern,
493         vect_recog_vector_vector_shift_pattern,
494         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
495         adjust_bool_pattern, vect_mark_pattern_stmts): Likewise.
496         (vect_recog_sdivmod_pow2_pattern): New function.
497         (vect_vect_recog_func_ptrs): Add it.
498
499         * config/i386/sse.md (vcond<V_256:mode><VI_256:mode>,
500         vcond<V_128:mode><VI124_128:mode>, vcond<VI8F_128:mode>v2di):
501         Use general_operand instead of nonimmediate_operand for
502         operand 5 and no predicate for operands 1 and 2.
503         * config/i386/i386.c (ix86_expand_int_vcond): Optimize
504         x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic
505         resp. logical shift.
506
507 2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
508
509         * config/avr/avr-protos.h (print_operand): Remove.
510         (print_operand_address): Remove.
511         * config/avr/avr.h (PRINT_OPERAND): Remove.
512         (PRINT_OPERAND_ADDRESS): Remove.
513         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
514         * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define.
515         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
516         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
517         (print_operand_address): Rename to...
518         (avr_print_operand_address): ...this and make static.
519         (print_operand): Rename to...
520         (avr_print_operand): ...this and make static.
521         (avr_print_operand_punct_valid_p): New static function.
522
523 2011-12-15  Andreas Tobler  <andreast@fgznet.ch>
524
525         * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
526
527 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
528
529         PR c/51360
530         * c-parser.c (c_parser_omp_clause_num_threads,
531         c_parser_omp_clause_schedule): Call mark_exp_read.
532
533 2011-12-15  Romain Geissler  <romain.geissler@gmail.com>
534
535         * builtins.def (BUILT_IN_STPNCPY_CHK): New definition.
536         * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning):
537         Add BUILT_IN_STPNCPY_CHK case.
538         * gimple-fold.c (gimple_fold_builtin): Likewise.
539         * tree-object-size.c (pass_through_call): Likewise.
540         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
541         call_may_clobber_ref_p_1): Likewise.
542         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
543         find_func_clobbers): Likewise.
544         * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk
545         * builtins.c (fold_builtin_strncpy_chk): Likewise.
546         Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is
547         ignored.
548
549 2011-12-15  Richard Guenther  <rguenther@suse.de>
550
551         PR lto/51567
552         * gimple.c (compare_type_names_p): Also compare the TREE_CODE.
553         (iterative_hash_name): Also hash the TREE_CODE.
554         (gimple_types_compatible_p_1): For types with a TYPE_DECL
555         name and a type DECL_CONTEXT recurse to that type.
556         (iterative_hash_gimple_type): Likewise.
557
558 2011-12-15  Iain Sandoe  <iains@gcc.gnu.org>
559
560         * config/rs6000/rs6000.c  (rs6000_emit_prologue): Move update of
561         VRSave mask to save_world() when that is in use.
562
563 2011-12-15  Richard Guenther  <rguenther@suse.de>
564
565         * lto-wrapper.c (run_gcc): In non-parallel mode remove
566         ltrans inputs immediately after processing them.  In parallel
567         mode truncate the ltrans inputs in the make rule that processes
568         them if temporary files are not to be preserved.
569
570 2011-12-15  Anatoly Sokolov  <aesok@post.ru>
571
572         * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
573         * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost):
574         New functions.
575         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
576
577 2011-12-15  Richard Guenther  <rguenther@suse.de>
578
579         PR lto/51564
580         * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
581         STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
582         uses documentation.
583         (TREE_ASM_WRITTEN): Update documentation to mention its use
584         on TYPE_DECLs from debug info generation.
585         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
586         TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
587         all other types.
588
589 2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
590
591         PR target/51050
592         * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
593         (avr_prologue_setup_frame): Ditto.
594
595 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
596
597         PR debug/51517
598         * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
599         !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
600
601 2012-12-15  Richard Guenther  <rguenther@suse.de>
602
603         Revert
604         PR lto/48437
605         * lto-streamer-out.c (tree_is_indexable): Exclude block-local
606         extern declarations.
607
608         PR lto/48508
609         PR lto/48437
610         * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
611         VAR_DECLs and FUNCTION_DECLs locally.
612
613 2011-12-14  Richard Henderson  <rth@redhat.com>
614
615         * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
616         (*compare_negsi_si, *compare_addsi2_op0): Likewise.
617         (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
618         (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
619
620 2011-12-14  Richard Guenther  <rguenther@suse.de>
621
622         * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
623         propagating all kinds of constants.
624
625 2011-12-14  Richard Guenther  <rguenther@suse.de>
626
627         PR lto/51497
628         * lto-streamer-in.c (lto_read_body): Fixup local types
629         TYPE_CANONICAL and variant chain.
630
631 2011-12-14  Richard Guenther  <rguenther@suse.de>
632
633         * tree.c (free_lang_data_in_type): Do not clear fields
634         dependent on debuginfo level setting.
635         (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
636         * tree.h (TYPE_STUB_DECL): Properly check that we access a type.
637
638 2011-12-14  Georg-Johann Lay  <avr@gjlay.de>
639
640         PR target/50931
641         * config/avr/avr.md (mulpsi3): New expander.
642         (*umulqihipsi3, *umulhiqipsi3): New insns.
643         (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
644         (mulsqipsi3, *mulpsi3): New insn-and-splits.
645         (ashlpsi3): Turn to expander.  Move insn code to...
646         (*ashlpsi3): ...this new insn.
647
648 2011-12-14  Richard Guenther  <rguenther@suse.de>
649
650         * tree-cfg.c (replace_uses_by): Only mark blocks altered
651         that will make a difference.  Only recompute ADDR_EXPR
652         invariantness if it could possibly have changed.  Do so
653         before folding the statement.
654
655 2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>
656
657         * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
658         * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
659         * lto-streamer-in.c (lto_read_body): Likewise.
660         (lto_input_toplevel_asms): Likewise.
661         * lto-section-in.c (lto_create_simple_input_block): Likewise.
662         * ipa-inline-analysis.c (inline_read_section): Likewise.
663         * ipa-prop.c (ipa_prop_read_section): Likewise.
664
665         * df.h (DF_NOTE): Fix typo in comment.
666
667 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
668
669         * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
670         DECL_LANG_SPECIFIC.
671
672 2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
673
674         * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
675
676 2011-12-13  Andrew Pinski  <apinski@cavium.com>
677             Adam Nemet  <anemet@caviumnetworks.com>
678
679         * config/mips/mips-cpus.def: Add Octeon2.
680         * config/mips/mips-tables.opt: Regenerate.
681         * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
682         * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
683         * config/mips/octeon.md (octeon_arith): Add Octeon2.
684         (octeon_condmove): Likewise.
685         (octeon_load): Rename to ..
686         (octeon_load_o1): this.
687         (octeon_load_o2): New reserve.
688         (octeon_cop_o2): New reserve.
689         (octeon_store):  Match Octeon2 also.
690         (octeon_brj): Rename to ..
691         (octeon_brj_o1): this.
692         (octeon_brj_o2): New reserve.
693         (octeon_imul3): Rename to ...
694         (octeon_imul3_o1): this.
695         (octeon_imul3_o2): New reserve.
696         (octeon_imul): Rename to ...
697         (octeon_imul_o1): this.
698         (octeon_imul_o2): New reserve.
699         (octeon_mfhilo): Rename to ...
700         (octeon_mfhilo_o1): This.
701         (octeon_mfhilo_o2): New reserve.
702         (octeon_imadd): Rename to ...
703         (octeon_imadd_o1): this.
704         (octeon_imadd_o2): New reserve.
705         (octeon_idiv): Rename to ..
706         (octeon_idiv_o1): This.
707         (octeon_idiv_o2_si): New reserve.
708         (octeon_idiv_o2_di): Likewise.
709         (octeon_unknown): Match Octeon2 also.
710         * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
711         (mips_issue_rate): Octeon2 can issue 2 at a time.
712         * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
713         (TARGET_OCTEON2): New define.
714         (TUNE_OCTEON): Match Octeon2 also.
715
716 2011-12-13  Richard Henderson  <rth@redhat.com>
717
718         * config/sparc/tso.h: New file.
719         * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
720         * config/sparc/sparc.c (sparc_option_override): Honor
721         SUBTARGET_DEFAULT_MEMORY_MODEL.
722         * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
723
724 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
725
726         PR middle-end/51443
727         * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
728         (diagnose_tm_1): Same.
729         (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
730         (ipa_tm_scan_irr_function): Return gracefully when no
731         DECL_STRUCT_FUNCTION.
732         (ipa_tm_scan_irr_block): Believe the user on TM attributes.
733
734 2011-12-13  Martin Jambor  <mjambor@suse.cz>
735
736         PR middle-end/50628
737         * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
738         sub-accesses of scalar accesses.
739
740 2011-12-13  Martin Jambor  <mjambor@suse.cz>
741
742         PR tree-optimization/51362
743         * ipa-cp.c (estimate_local_effects): When estimated size of a
744         specialized clone is zero, bump it to one.
745
746 2011-12-13  Richard Guenther  <rguenther@suse.de>
747
748         PR lto/48354
749         * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
750         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
751         Stream DECL_ORIGINAL_TYPE.
752         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
753         Likewise.
754
755 2011-12-13  Jakub Jelinek  <jakub@redhat.com>
756
757         Revert
758         2011-12-12  Jakub Jelinek  <jakub@redhat.com>
759
760         PR tree-optimization/51481
761         * gimple-fold.c (gimple_fold_call): Call
762         maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
763         edges, but gimple_fold_builtin result can't throw.
764
765 2011-12-13  Jakub Jelinek  <jakub@redhat.com>
766             Michael Matz  <matz@suse.de>
767
768         PR tree-optimization/51117
769         * tree-eh.c (sink_clobbers): New function.
770         (execute_lower_eh_dispatch): Call it for BBs ending with
771         internally throwing RESX.
772         * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
773         at the first real instruction.
774
775 2011-12-13  Tristan Gingold  <gingold@adacore.com>
776
777         * final.c (final_scan_insn): Guard the call to begin_epilogue
778         debug hook.
779
780 2011-12-13  Tristan Gingold  <gingold@adacore.com>
781
782         * vmsdbgout.c (vmsdbgout_write_source_line): New function.
783         (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
784         (vmsdbgout_begin_epilogue): Likewise.
785         (vmsdbgout_end_epilogue): Likewise.
786         (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
787
788 2011-12-13  Richard Guenther  <rguenther@suse.de>
789
790         PR middle-end/51481
791         * tree-cfg.c (replace_uses_by): Pass proper arguments to
792         maybe_clean_or_replace_eh_stmt.
793
794 2011-12-13  Richard Guenther  <rguenther@suse.de>
795
796         PR tree-optimization/51519
797         * ipa-inline.c (edge_badness): Use edge growth in non-guessed
798         branch probability case as well.
799
800 2011-12-13  Revital Eres  <revital.eres@linaro.org>
801
802         * modulo-sched.c (mark_loop_unsched): Free bbs.
803
804 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
805
806         PR rtl-optimization/51495
807         * function.c (thread_prologue_and_epilogue_insns): Don't add
808         to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
809         from basic blocks not needing prologue.
810
811         PR tree-optimization/51481
812         * gimple-fold.c (gimple_fold_call): Call
813         maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
814         edges, but gimple_fold_builtin result can't throw.
815
816 2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>
817
818         PR rtl-optimization/21617
819         * ira-color.c (bucket_allocno_compare_func): Don't compare
820         allocno classes.  Compare number of hard registers needed.
821
822 2011-12-12  Eric Botcazou  <ebotcazou@adacore.com>
823
824         PR tree-optimization/50569
825         * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
826         in the expression of MODEL instead of just the last one.
827
828 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
829
830         PR middle-end/51510
831         * calls.c (internal_arg_pointer_based_exp_scan): Don't use
832         VEC_safe_grow_cleared if idx is smaller than VEC_length.
833
834 2011-12-12  Richard Sandiford  <richard.sandiford@linaro.org>
835
836         PR middle-end/50873
837         * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
838         instead of force_reg.  Do nothing if the address is already a
839         non-virtual pseudo register.
840
841 2011-12-12  Torvald Riegel  <triegel@redhat.com>
842
843         * gimplify.c (voidify_wrapper_expr): Add default handling for
844         outermost wrapper.
845
846 2011-12-12  Torvald Riegel  <triegel@redhat.com>
847
848         * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
849         commits as equal.
850
851 2011-12-12  Iain Sandoe  <iains@gcc.gnu.org>
852
853         * config/darwin-sections.def (zobj_const_data_section): Fix over-
854         length section name.
855
856 2011-12-11  Richard Henderson  <rth@redhat.com>
857
858         * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
859         BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
860
861 2011-12-11  Jakub Jelinek  <jakub@redhat.com>
862
863         PR tree-optimization/51485
864         * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
865         DRs in call stmts.
866
867 2011-12-11  Patrick Marlier  <patrick.marlier@gmail.com>
868
869         * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
870
871 2011-12-10  Richard Henderson  <rth@redhat.com>
872
873         * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
874         vec_select + vec_concat.
875         (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
876         altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
877         (vec_perm_constv16qi): New.
878         (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
879         vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
880         vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
881         * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
882         vec_select + vec_concat.
883         (paired_merge10, paired_merge01, paired_merge11): Likewise.
884         (vec_perm_constv2sf): New.
885         (vec_interleave_highv2sf, vec_interleave_lowv2sf,
886         vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
887         * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
888         vec_select + vec_concat.
889         (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
890         (vec_perm_constv2si): New.
891         * config/rs6000/vector.md (vec_interleave_highv4sf,
892         vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
893         vec_interleave_low<VEC_64>): Remove.
894         * config/rs6000/vsx.md (VS_double): New mode attribute.
895         (UNSPEC_VSX_XXPERMDI): Remove.
896         (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
897         (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
898         (vsx_xxpermdi_<VSX_L>): Change to expander.
899         (vec_perm_const<VSX_D>): New.
900         (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
901         * config/rs6000/predicates.md (const_0_to_1_operand): New.
902         (const_2_to_3_operand): New.
903         * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
904         (altivec_expand_vec_perm_const): New.
905         (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
906         (rs6000_vectorize_vec_perm_const_ok): New.
907         (rs6000_do_expand_vec_perm): New.
908         (rs6000_expand_extract_even, rs6000_expand_interleave): New.
909         * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
910         * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
911         * config/rs6000/rs6000-protos.h: Update.
912
913 2011-12-10  Richard Henderson  <rth@redhat.com>
914
915         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
916         CONST_INT to expand_vec_perm as the selector.
917         * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
918
919 2011-12-10  Richard Henderson  <rth@redhat.com>
920
921         * genmodes.c (struct mode_data): Remove wider_2x member.
922         (blank_mode): Adjust initializer.
923         (calc_wider_mode): Use XALLOCAVEC.
924         (emit_move_wider): Select double-width same-element vectors for
925         2xwider vectors.
926         * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
927         * config/i386/i386.c (doublesize_vector_mode): Remove.
928         (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
929
930 2011-12-10  Joern Rennecke  <joern.rennecke@embecosm.com>
931
932         * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
933         (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
934         (USE_STORE_POST_DECREMENT): Likewise.
935
936         * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
937         broken out of ..
938         (INCOMING_RETURN_ADDR_RTX) .. this.  Use EPIPHANY_RETURN_REGNO.
939         (DWARF_FRAME_RETURN_COLUMN): New macro.
940
941         * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
942         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
943         Split "timer" value into "timer0" and "timer1".
944         Handle page_miss, message and wand.  Don't handle static_flag.
945         Adjust warning text.
946         (epiphany_start_function): New function.
947         (epiphany_compute_function_type): Split "timer" value into "timer0"
948         and "timer1".  Handle page_miss, message and wand.
949         Don't handle static_flag.
950         (epiphany_expand_epilogue): Don't use frame_insn for status / iret
951         restore.
952         * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
953         (enum epiphany_function_type):
954         Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
955         and EPIPHANY_FUNCTION_TIMER1.
956         Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
957         Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
958         Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
959
960 2011-12-10  Nathan Sidwell  <nathan@acm.org>
961
962         PR gcov-profile/51449
963         * coverage.c (coverage_end_function): Always process the coverage
964         variables.
965
966 2011-12-09  Aldy Hernandez  <aldyh@redhat.com>
967
968         PR/51291
969         * tree.c (build_common_builtin_nodes): Do not use TM_PURE
970         attribute unless language has support for TM.
971         * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in
972         the absence of TM builtins.
973
974 2011-12-09  Eric Botcazou  <ebotcazou@adacore.com>
975
976         * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
977         Also check the TYPE_MODE to recognize useless pointer conversions.
978
979 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
980
981         PR tree-optimization/51117
982         * tree-eh.c (optimize_clobbers): Don't remove just one
983         clobber, but all consecutive clobbers before RESX.
984         Use gimple_clobber_p predicate.
985
986 2011-12-09  Michael Meissner  <meissner@the-meissners.org>
987
988         * config/rs6000/rs6000.c (altivec_expand_builtin): Call
989         expand_call to return a valid funciton instead of return
990         cosnt0_rtx/NULL_RTX if there was an error with the builtin.
991         (altivec_expand_ld_builtin): Ditto.
992         (rs6000_inner_target_options): If VSX is selected as a target
993         attribute or pragma, enable ALTIVEC also.
994         (rs6000_pragma_target_parse): Call rs6000_option_override_internal
995         to do all of the standard processing when switching options,
996         including redefining appropriate macros.
997
998         PR rtl-optimization/51469
999         * varasm.c (default_binds_local_p_1): If the symbol is a gnu
1000         indirect function, mark the symbol as non-local.
1001
1002 2011-12-09  H.J. Lu  <hongjiu.lu@intel.com>
1003
1004         PR bootstrap/51479
1005         * Makefile.in (errors.o): Restored.
1006
1007 2011-12-09  Richard Guenther  <rguenther@suse.de>
1008
1009         PR lto/48042
1010         * tree.c (free_lang_data_in_decl): Remove freeing conditional
1011         on debuginfo level.
1012
1013 2011-12-09  Joern Rennecke  <joern.rennecke@embecosm.com>
1014
1015         PR middle-end/40154
1016         * emit-rtl.c (set_dst_reg_note): New function.
1017         * rtl.h (set_dst_reg_note): Declare.
1018         * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
1019         (emit_libcall_block, expand_fix): Likewise.
1020         * function.c (assign_parm_setup_reg, expand_function_start): Likewise.
1021         * expmed.c (expand_mult_const, expand_divmod): Likewise.
1022         * reload1.c (gen_reload): Likewise.
1023
1024         * dse.c (get_stored_val, get_call_args): Use gen_int_mode.
1025         * expmed.c (expand_divmod): Likewise.
1026         * combine.c (simplify_if_then_else): Likewise.
1027
1028 2011-12-09  Kai Tietz  <ktietz@redhat.com>
1029
1030         * ira-color.c (print_hard_regs_subforest): Use
1031         HOST_WIDEST_INT_PRINT_DEC instead of %lld.
1032         (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT.
1033         (add_allocno_hard_regs): Change type of argument cost
1034         to HOST_WIDEST_INT.
1035         * ira-conflict.c (build_conflict_bit_table): Replace use
1036         of long-long by HOST_WIDEST_INT.
1037
1038 2011-12-09  Georg-Johann Lay  <avr@gjlay.de>
1039
1040         PR target/51425
1041         * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use
1042         zero_extract:QIHI instead of zero_extract:HI.
1043
1044 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
1045             Andrew Pinski  <apinski@cavium.com>
1046
1047         PR tree-optimization/51117
1048         * tree-eh.c (optimize_clobbers): New function.
1049         (execute_lower_eh_dispatch): Call it.
1050
1051 2011-12-09  Richard Guenther  <rguenther@suse.de>
1052
1053         PR tree-optimization/51482
1054         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1055         Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors.
1056
1057 2011-12-09  Kai Tietz  <ktietz@redhat.com>
1058
1059         * implicit-zee.c (num_realized): Change type to long.
1060         (num_ze_opportunities): Likewise.
1061
1062 2011-12-08  Andrew Pinski  <apinski@cavium.com>
1063
1064         * config/mips/mips-cpus.def (octeon+): New CPU.
1065         * config/mips/mips-tables.opt: Regenerate.
1066         * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
1067
1068 2011-12-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1069
1070         PR middle-end/39976
1071         * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI.
1072         (struct hashable_expr): Add struct phi field.
1073         (initialize_hash_element): Handle phis; change to use XCNEWVEC.
1074         (hashable_expr_equal_p): Handle phis.
1075         (iterative_hash_hashable_expr): Likewise.
1076         (print_expr_hash_elt): Likewise.
1077         (free_expr_hash_elt): Likewise.
1078         (dom_opt_enter_block): Create equivalences from redundant phis.
1079         (eliminate_redundant_computations): Handle redundant phis.
1080         (lookup_avail_expr): Handle phis.
1081
1082 2011-12-08  Jakub Jelinek  <jakub@redhat.com>
1083
1084         PR tree-optimization/51466
1085         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
1086         TREE_SIDE_EFFECTS.
1087
1088 2011-12-08  Richard Guenther  <rguenther@suse.de>
1089
1090         * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts
1091         volatile when processing operands of an ADDR_EXPR.
1092         (get_indirect_ref_operands): Likewise.
1093         (get_tmr_operands): Likewise.
1094         (get_expr_operands): Likewise.
1095
1096 2011-12-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1097
1098         PR target/50395
1099         * config/s390/s390.c (s390_mainpool_finish): Emit the jump over
1100         the literal pool as jump insn.
1101
1102 2011-12-08  Richard Guenther  <rguenther@suse.de>
1103
1104         PR tree-optimization/49772
1105         * tree-inline.c (optimize_inline_calls): Remove bail out on errors.
1106
1107 2011-12-08  Richard Guenther  <rguenther@suse.de>
1108
1109         PR lto/50747
1110         * lto-streamer-out.c (produce_symtab): Remove asserts.
1111
1112 2011-12-08  Richard Guenther  <rguenther@suse.de>
1113
1114         PR lto/49945
1115         * lto-streamer-out.c (tree_is_indexable): Localize variably
1116         modified types and their FIELD_DECLs.
1117
1118 2011-12-08  Eric Botcazou  <ebotcazou@adacore.com>
1119
1120         PR tree-optimization/51315
1121         * tree.h (get_object_or_type_alignment): Declare.
1122         * expr.c (get_object_or_type_alignment): Move to...
1123         * builtins.c (get_object_or_type_alignment): ...here.  Add assertion.
1124         * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
1125         (tree_non_aligned_mem_p): ...this.  Add ALIGN parameter.  Look into
1126         MEM_REFs and use get_object_or_type_alignment for them.
1127         (build_accesses_from_assign): Adjust for above change.
1128         (access_precludes_ipa_sra_p): Likewise.
1129
1130 2011-12-08  Richard Guenther  <rguenther@suse.de>
1131
1132         PR lto/48437
1133         * lto-streamer-out.c (tree_is_indexable): Exclude block-local
1134         extern declarations.
1135
1136 2011-12-07  Andrew Pinski  <apinski@cavium.com>
1137
1138         PR middle-end/45416
1139         * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for
1140         SSA-expand.
1141
1142 2011-12-07  Richard Guenther  <rguenther@suse.de>
1143
1144         PR tree-optimization/50823
1145         * ipa-inline.c (edge_badness): Do not account for the number of
1146         remaining calls.
1147
1148 2011-12-07  Martin Jambor  <mjambor@suse.cz>
1149
1150         PR tree-optimization/50744
1151         * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive,
1152         compute evaluation in HOST_WIDEST_INT.
1153         (safe_add): New function
1154         (propagate_effects): Use safe_add to accumulate effects.
1155
1156 2011-12-06  Joel Sherrill <joel.sherrill@oarcorp.com>
1157
1158         * config/rs6000/rtems.h: Switch to using global_options_set
1159         in SUBSUBTARGET_OVERRIDE_OPTIONS.
1160
1161 2011-12-06  David S. Miller  <davem@davemloft.net>
1162
1163         * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection.
1164
1165 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1166
1167         * config/avr/avr.c (avr_file_start): Fix missing ,
1168
1169 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
1170
1171         PR target/51354
1172         * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
1173         unconditionally.
1174
1175 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1176
1177         Forward-port from gcc-4_6-branch r181936 2011-12-02.
1178         * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and
1179         AT86RF401 have a 16-bit SP (their manual is bogus).
1180
1181 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1182
1183         Forward-port from gcc-4_6-branch r181936 2011-12-02.
1184
1185         PR target/51002
1186         * config/avr/avr.md (movhi_sp_r): Set insn condition to
1187         !AVR_HAVE_8BIT_SP.
1188         * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in
1189         %B0,__SP_H__" if AVR_HAVE_8BIT_SP.
1190         (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.
1191
1192 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1193
1194         PR target/51409
1195         PR target/49868
1196         * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1,
1197         ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4,
1198         ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum.
1199         (avr_addrspace_t): New typedef.
1200         (avr_addrspace): New declaration.
1201         * config/avr/avr-c.c (avr_toupper): New static function.
1202         (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use
1203         avr_addrspace to get address space information.
1204         * config/avr/avr.c (avr_addrspace): New variable.
1205         (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
1206         avr_asm_named_section, avr_section_type_flags,
1207         avr_asm_select_section, avr_addr_space_address_mode,
1208         avr_addr_space_convert, avr_emit_movmemhi): Use it.
1209         (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
1210         (avr_pgm_segment): Remove.
1211
1212 2011-12-06  Richard Guenther  <rguenther@suse.de>
1213
1214         PR middle-end/50601
1215         * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
1216         quirk adjustjment ...
1217         * passes.c (rest_of_decl_compilation): ... here.
1218
1219 2011-12-06  Richard Guenther  <rguenther@suse.de>
1220
1221         PR middle-end/51436
1222         * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check
1223         for the fact we do not have virtual operands when not optimizing.
1224
1225 2011-12-06  Richard Guenther  <rguenther@suse.de>
1226
1227         PR tree-optimization/51245
1228         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
1229         New function.
1230         (vn_reference_lookup_3): Use it.  Properly valueize all refs we create.
1231
1232 2011-12-06  Iain Sandoe  <iains@gcc.gnu.org>
1233
1234         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
1235         rs6000_current_abi.
1236
1237 2011-12-06  Richard Guenther  <rguenther@suse.de>
1238
1239         PR tree-optimization/51363
1240         * gimple.c (gimple_rhs_has_side_effects): Remove.
1241         * gimple.h (gimple_rhs_has_side_effects): Likewise.
1242         * tree-ssa-dom.c (optimize_stmt): Simplify conditional.
1243
1244 2011-12-06  Alan Modra  <amodra@gmail.com>
1245
1246         PR target/50906
1247         * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
1248         Do not mark r11 setup as frame-related.  Pass correct offset to
1249         rs6000_emit_savres_rtx.  Correct out-of-line rs6000_frame_related
1250         arguments.  Correct sp_offset.  Remove "offset" fudge from
1251         in-line rs6000_frame_related call.  Rename misleading variable.
1252         Fix comments and whitespace.  Tidy some expressions.
1253         (rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
1254         to r11 in out-of-line case.  Correct sp_offset.  Pass correct
1255         offset to rs6000_emit_savres_rtx.  Rename misleading variable.
1256         Fix comments and whitespace.  Tidy some expressions.
1257         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
1258         adjustment when !saving_GPRs_inline.  Correct register mode
1259         used in address calcs.
1260         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
1261         !restoring_GPRs_inline.
1262
1263 2011-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1264
1265         * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
1266         formatting character for vmov.f64 case.
1267
1268 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
1269
1270         PR tree-optimization/51396
1271         * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
1272         if MUL_RESULT has zero uses.
1273
1274         PR debug/51410
1275         * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
1276         for debug info if scope is file_scope.
1277
1278         PR c/51339
1279         * c-decl.c (c_finish_incomplete_decl, finish_decl): Call
1280         relayout_decl instead of layout_decl.
1281
1282 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
1283
1284         * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
1285         if there is in epilogue.
1286
1287 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
1288
1289         * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
1290         to emit_library_call_value.
1291         (expand_atomic_compare_and_swap): Likewise.
1292
1293 2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>
1294
1295         PR other/50775
1296         * ira-int.h (struct ira_object): Remove add_data.
1297         (OBJECT_ADD_DATA): Remove.
1298
1299         * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
1300         initialization.
1301
1302         * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
1303         allocno_hard_regs_t, allocno_hard_regs.
1304         (object_hard_regs_node_t, object_hard_regs_node): Rename to
1305         allocno_hard_regs_node_t and allocno_hard_regs_node.
1306         (struct allocno_color_data): Add new member last_process.  Move
1307         profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
1308         from object_color_data.
1309         (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove.
1310         (curr_allocno_process): New static variable.
1311         (object_hard_regs_eq, object_hard_regs_htab): Rename to
1312         allocno_hard_regs_eq and allocno_hard_regs_htab.
1313         (init_object_hard_regs, finish_object_hard_regs): Rename to
1314         init_allocno_hard_regs and finish_allocno_hard_regs.
1315         (object_hard_regs_compare, object_hard_regs_node_t): Rename to
1316         allocno_hard_regs_compare and allocno_hard_regs_node_t.
1317         (create_new_object_hard_regs_node): Rename to
1318         create_new_allocno_hard_regs_node.
1319         (add_new_object_hard_regs_node_to_forest): Rename to
1320         add_new_allocno_hard_regs_node_to_forest.
1321         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
1322         Rename to add_allocno_hard_regs_to_forest and
1323         collect_allocno_hard_regs_cover.
1324         (setup_object_hard_regs_nodes_parent): Rename to
1325         setup_allocno_hard_regs_nodes_parent.
1326         (remove_unused_object_hard_regs_nodes): Rename to
1327         remove_unused_allocno_hard_regs_nodes.
1328         (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
1329         Rename to enumerate_allocno_hard_regs_nodes and
1330         allocno_hard_regs_nodes_num.
1331         (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
1332         allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
1333         (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
1334         allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
1335         (object_hard_regs_subnode_index): Rename to
1336         allocno_hard_regs_subnode_index.
1337         (setup_object_hard_regs_subnode_index): Rename to
1338         setup_allocno_hard_regs_subnode_index.
1339         (get_object_hard_regs_subnodes_num): Rename to
1340         get_allocno_hard_regs_subnodes_num.
1341         (form_object_hard_regs_nodes_forest): Rename to
1342         form_allocno_hard_regs_nodes_forest.
1343         (finish_object_hard_regs_nodes_tree): Rename to
1344         form_allocno_hard_regs_nodes_forest
1345         (finish_object_hard_regs_nodes_forest): Rename to
1346         finish_allocno_hard_regs_nodes_forest.
1347         (setup_left_conflict_sizes_p): Use allocno data instead of object ones.
1348         Process conflict allocnos once.
1349         (update_left_conflict_sizes_p): Use allocno data instead of object
1350         ones.  Change prototype signature.
1351         (empty_profitable_hard_regs): Use allocno data instead of object ones.
1352         (setup_profitable_hard_regs): Ditto.
1353         (get_conflict_profitable_regs): Rename to
1354         get_conflict_and_start_profitable_regs.  Use allocno data for
1355         profitable regs calculation.
1356         (check_hard_reg_p): Change prototype signature.  Check profitable
1357         regs for allocno not the objects.
1358         (assign_hard_reg): Process conflict allocnos only once for
1359         updating conflict costs.
1360         (setup_allocno_available_regs_num): Use allocno data instead of
1361         object ones.  Modify debug output.
1362         (color_pass): Remove initialization and finalization of object
1363         color data.
1364
1365 2011-12-05  Kazu Hirata  <kazu@codesourcery.com>
1366
1367         PR target/51408
1368         * config/arm/arm.md (*minmax_arithsi): Always require the else
1369         clause in the MINUS case.
1370
1371 2011-12-05  Richard Guenther  <rguenther@suse.de>
1372
1373         PR tree-optimization/50904
1374         * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
1375         (MEM_ANALYZABLE): New.
1376         (memory_references): Remove clobbered_vops and vop_ref_map
1377         members, add all_refs_stored_in_loop member.
1378         (memref_free): Adjust.
1379         (mem_ref_alloc): Likewise.
1380         (gather_mem_refs_stmt): Do not record clobbers, instead
1381         record refs for unanalyzable stmts.
1382         (gather_mem_refs_in_loops): Do not propagate clobbers.
1383         (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
1384         record_vop_access, get_vop_accesses, get_vop_stores,
1385         add_vop_ref_mapping): Remove.
1386         (create_vop_ref_mapping_loop): Adjust to simply record all stores.
1387         (analyze_memory_references): Adjust.
1388         (refs_independent_p): Check for not analyzable refs.
1389         (can_sm_ref_p): Likewise.
1390         (ref_indep_loop_p_1): Simplify.
1391         (tree_ssa_lim_finalize): Adjust.
1392
1393         * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
1394         rather than magic constants.  Assign zero cost to PAREN_EXPR
1395         and SSA_NAME copies.  Assign cost proportional to the vector
1396         size for vector constructors.
1397
1398 2011-12-05  Richard Guenther  <rguenther@suse.de>
1399
1400         * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
1401         * tree-ssa-alias.c (ao_ref_init): Initialize it.
1402         (ao_ref_init_from_ptr_and_size): Likewise.
1403         (refs_may_alias_p_1): Two volatile accesses conflict.
1404         (ref_maybe_used_by_call_p_1): Likewise.
1405         (call_may_clobber_ref_p_1): Likewise.
1406         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
1407         volatile_p field.
1408
1409 2011-12-05  Richard Guenther  <rguenther@suse.de>
1410
1411         * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA
1412         names.  Remove SSA operand checking, call verify_ssa_operands.
1413         * tree-ssa-operands.h (verify_ssa_operands): Declare.
1414         * tree-ssa-operands.c (verify_ssa_operands): New function.
1415
1416 2011-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1417
1418         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
1419         * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
1420         * config/arm/constraints.md ("Dt"): New constraint.
1421         * config/arm/predicates.md
1422         (const_double_vcvt_power_of_two_reciprocal): New.
1423         * config/arm/vfp.md (FCVTI32typename): New.
1424         (FCVT): New iterator.
1425         (*combine_vcvt_f32_<FCVTI32typename>): New.
1426         (*combine_vcvt_f64_<FCVTI32typename>): New.
1427
1428 2011-12-05  Richard Guenther  <rguenther@suse.de>
1429
1430         * cgraph.c (cgraph_create_edge_1): Initialize
1431         call_stmt_cannot_inline_p from the stmt if possible.
1432         (cgraph_make_edge_direct): Likewise.
1433         * gimple-streamer-in.c (input_gimple_stmt): Do not
1434         call gimple_call_set_cannot_inline.
1435         * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values.
1436         (gimple_call_set_cannot_inline): Remove.
1437         (gimple_call_cannot_inline_p): Likewise.
1438         * ipa-inline-analysis.c (initialize_inline_failed): Look
1439         at the edge call_stmt_cannot_inline_p flag.
1440         * ipa-inline.c (can_inline_edge_p): Likewise.
1441         (early_inliner): Only update the edge flag.
1442         * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
1443         (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
1444         * cgraphunit.c (assemble_thunk): Likewise.
1445         * gimple-fold.c (gimple_fold_call): Likewise.
1446
1447         * tree.h (CALL_CANNOT_INLINE_P): Remove.
1448         * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
1449         * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
1450         alloca calls inline.
1451         * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
1452         * gimple.c (gimple_build_call_from_tree): Do not read
1453         CALL_CANNOT_INLINE_P.
1454         * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
1455
1456 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
1457             Eric Botcazou  <ebotcazou@adacore.com>
1458
1459         PR middle-end/51323
1460         PR middle-end/50074
1461         * calls.c (internal_arg_pointer_exp_state): New variable.
1462         (internal_arg_pointer_based_exp_1,
1463         internal_arg_pointer_exp_scan): New functions.
1464         (internal_arg_pointer_based_exp): New function.
1465         (mem_overlaps_already_clobbered_arg_p): Use it.
1466         (expand_call): Free internal_arg_pointer_exp_state.cache vector
1467         and clear internal_arg_pointer_exp_state.scan_start.
1468
1469 2011-12-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1470
1471         * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
1472         * config/sh/sync.md: New file.
1473         * config/sh/sh.md: Include sync.md.
1474         * config/sh/sh.opt (msoft-atomic): New option.
1475         * doc/invoke.texi (SH Options): Document it.
1476
1477 2011-12-04  Nathan Sidwell  <nathan@acm.org>
1478
1479         * gcov-io.h (struct gcov_info): Replace trailing array with
1480         pointer to array.
1481         * profile.c (branch_prob): Only call renamed
1482         coverage_begin_function once.
1483         * coverage.h (coverage_begin_output): Rename to ...
1484         (coverage_begin_function): ... here.
1485         * coverage.c (struct function_list): Rename to ...
1486         (struct coverage_data): ... this.  Update all uses.
1487         (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals.
1488         (bbg_file_opened, bbg_function_announced): Remove.
1489         (get_coverage_counts): Adjust message.
1490         (coverage_begin_ouput): Rename to ...
1491         (coverage_begin_function): ... here.  Move file opening to
1492         coverage_init.  Adjust for being called only once.
1493         (coverage_end_function): Remove bbg file and inhibit further
1494         output here on error.
1495         (build_info_type): Adjust for change to pointer to array.
1496         (build_info): Receive array of function pointers and adjust.
1497         (create_coverage): Break into ...
1498         (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
1499         ... these, and adjust.
1500         (coverage_init): Open the notes file here.  Tidy.
1501         (coverage_finish): Call coverage_obj_init etc.
1502
1503 2011-12-04  Ira Rosen  <ira.rosen@linaro.org>
1504
1505         PR middle-end/51285
1506         * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
1507         phi nodes for outer loop in case of double reduction.
1508
1509 2011-12-04  Jérémie Detrey  <Jeremie.Detrey@loria.fr>
1510
1511         PR target/51393
1512         * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
1513         parameter as long long.
1514
1515 2011-12-04  Richard Sandiford  <rdsandiford@googlemail.com>
1516
1517         PR middle-end/51351
1518         * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
1519         in the external names.
1520
1521 2011-12-03  Jack Howarth <howarth@bromo.med.uc.edu>
1522
1523         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
1524         non-PIC code when targeting 10.7 or later.
1525
1526 2011-12-03  Iain Sandoe  <iains@gcc.gnu.org>
1527
1528         * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
1529         Darwin >= 10.
1530         (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
1531         (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
1532
1533 2011-12-03  Jakub Jelinek  <jakub@redhat.com>
1534
1535         * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
1536         VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
1537         VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
1538         (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
1539         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
1540         and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
1541
1542         PR debug/50317
1543         * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
1544         vars that aren't referenced.
1545         (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
1546         of unreferenced local vars.
1547         * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
1548         TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
1549
1550 2011-12-03  Anatoly Sokolov  <aesok@post.ru>
1551
1552         * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
1553         * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
1554         * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1555         (arm_libcall_value_1, arm_function_value_regno_p): New function.
1556         (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
1557         (aapcs_libcall_value): Make static.
1558         (arm_libcall_value): Add static qualifier.
1559
1560 2011-12-02  Jakub Jelinek  <jakub@redhat.com>
1561
1562         PR target/51387
1563         * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
1564         V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
1565         permutation instead of extract even permutation.
1566
1567 2011-12-02  Nathan Sidwell  <nathan@acm.org>
1568
1569         * gcov.c (struct arc_info): Add is_throw field.
1570         (struct (block_info): Add exceptional field, reduce flags size to
1571         account for it.
1572         (struct function_info): Add has_catch field.
1573         (struct line_info): Add unexceptional field.
1574         (process_file): Call find_exception_blocks if necessary.
1575         (read_graph_file): Adjust.  Note if an exceptional edge is seen.
1576         (find_exception_blocks): New.
1577         (add_line_counts): Set line's unexceptional flag if not exceptional.
1578         (output_branch_count): Note exceptional arcs, lines and blocks.
1579         * gcov-dump.c (tag_arcs): Decode arc flags.
1580         * doc/gcov.texi: Document '=====' lines.
1581
1582 2011-12-02  Anatoly Sokolov  <aesok@post.ru>
1583
1584         * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1585         PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
1586         * config/ia64/ia64-protos.h (ia64_print_operand,
1587         ia64_print_operand_address): Remove.
1588         * config/ia64/ia64.c (TARGET_PRINT_OPERAND,
1589         TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
1590         Define.
1591         (ia64_print_operand_punct_valid_p): New function.
1592         (ia64_print_operand, ia64_print_operand_address): Make static.
1593
1594 2011-12-02  Michael Meissner  <meissner@the-meissners.org>
1595
1596         PR target/51390
1597         * config/rs6000/rs6000.c (def_builtin): Use the correct field to
1598         figure out the function's attributes.
1599         (struct builtin_description): Mark mask field as const since we no
1600         longer need to modify it for SPE and PAIRED builtins.
1601
1602 2011-12-02  Joseph Myers  <joseph@codesourcery.com>
1603
1604         Revert:
1605
1606         2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1607
1608         PR rtl-opt/37451
1609         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
1610         zero extend count after the correction to it is done.
1611         (doloop_optimize): Update call to doloop_modify, don't zero extend
1612         count before call.
1613
1614         2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1615
1616         PR rtl-opt/37782
1617         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1618         mode count is in.
1619         (doloop_optimize): Update call to doloop_modify.
1620
1621 2011-12-02  Richard Guenther  <rguenther@suse.de>
1622
1623         PR lto/47259
1624         * ipa.c (varpool_externally_visible_p): Register variables
1625         are always externally visible.
1626
1627 2011-12-02  Sameera Deshpande  <sameera.deshpande@arm.com>
1628
1629         * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
1630           non-NULL.
1631
1632 2011-12-02  Martin Jambor  <mjambor@suse.cz>
1633
1634         PR tree-optimization/50622
1635         * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
1636         if both lacc and racc are grp_partial_lhs.
1637
1638 2011-12-01  Kaz Kojima  <kkojima@gcc.gnu.org>
1639
1640         PR target/50814.
1641         * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
1642         TARGET_SH3.
1643         (shl_sext_kind): Likewise.
1644         * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
1645         * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
1646         (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
1647         (ashlsi3): Likewise.
1648         (ashrsi3_d): Likewise.
1649         (lshrsi3_d): Likewise.
1650         (lshrsi3): Likewise.
1651
1652 2011-12-01  Diego Novillo  <dnovillo@google.com>
1653
1654         PR bootstrap/51346
1655         * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
1656         use the statement's inline indicator instead of E's.
1657         Remove consistency check.
1658
1659 2011-12-01  Diego Novillo  <dnovillo@google.com>
1660
1661         PR bootstrap/51346
1662         Revert
1663
1664         2011-11-29  Diego Novillo  <dnovillo@google.com>
1665
1666         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
1667         Update field call_stmt_cannot_inline_p from call
1668         graph edge, if needed.
1669         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
1670
1671 2011-12-01  Nathan Sidwell  <nathan@acm.org>
1672
1673         PR gcov-profile/51113
1674         * coverage.c (build_var): Keep coverage variables static.
1675
1676 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
1677
1678         PR tree-optimization/51356
1679         * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
1680         vectype doesn't have VECTOR_MODE_P.
1681
1682         PR debug/50317
1683         * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
1684         as unnecessary a store to a variable with gimple reg type.
1685         * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
1686         on local unreferenced variables.
1687         * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
1688         for !target_for_debug_bind variables.
1689
1690 2011-12-01  Patrick Marlier  <patrick.marlier@gmail.com>
1691
1692         PR middle-end/51273
1693         * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
1694         * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
1695         * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
1696
1697 2011-12-01  Andrew Pinski  <apinski@cavium.com>
1698
1699         PR lto/51198
1700         * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
1701         DECL_INITIAL also.
1702
1703 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
1704
1705         PR tree-optimization/51246
1706         * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
1707
1708         PR rtl-optimization/51014
1709         * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
1710         both from bb and orig_bb.
1711
1712 2011-12-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1713
1714         PR tree-optimization/50802
1715         * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
1716         considering what happens to ranges during sign changes and/or
1717         intermediate narrowing conversions.
1718
1719 2011-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1720
1721         PR middle-end/50283
1722         * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
1723         (in_nullified_branch_delay): Likewise.
1724         (in_call_delay): Likewise.
1725
1726 2011-11-30  Richard Henderson  <rth@redhat.com>
1727
1728         * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
1729         boolean return is true.
1730
1731 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
1732
1733         PR rtl-optimization/51044
1734         * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
1735         rather than just insn body.
1736
1737         PR target/50725
1738         * function.c (thread_prologue_and_epilogue_insns): If
1739         stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
1740         regset.
1741
1742         PR middle-end/51089
1743         * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
1744         avoid creating duplicate edges here.
1745         (cleanup_empty_eh_unsplit): And remove it in the caller.
1746
1747 2011-11-30  Andrew Pinski  <apinski@cavium.com>
1748
1749         PR c/51321
1750         * c-parser.c (c_parser_postfix_expression): Check groktypename results
1751         before looking at the main variant.
1752
1753 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
1754
1755         PR rtl-optimization/48721
1756         * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
1757         reg_pending_barrier to TRUE_BARRIER.
1758
1759         PR rtl-optimization/48721
1760         * sched-ebb.c (begin_move_insn): Insert empty unreachable
1761         block after BARRIER if insn is followed by it.
1762
1763 2011-11-30  Richard Henderson  <rth@redhat.com>
1764
1765         * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
1766         * config/sparc/sparc.opt (mmemory-model=): New option.
1767         * doc/invoke.texi (Sparc Options): Document it.
1768         * config/sparc/sparc.c (sparc_option_override): Provide default
1769         for sparc_memory_model.
1770         (sparc_emit_membar_for_model): Omit barrier combinations that are
1771         implied by the memory model.
1772
1773 2011-11-30  Richard Henderson  <rth@redhat.com>
1774
1775         * config/sparc/sync.md (I124MODE): New mode iterator.
1776         (memory_barrier): Remove.
1777         (atomic_exchangesi): New.
1778         (swapsi): Rename from *swapsi.
1779         (atomic_test_and_set<I124MODE>): New.
1780         (ldstubqi): Rename from *ldstubqi, merge with expander.
1781         (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
1782         (sync_lock_test_and_setsi): Remove.
1783         (sync_lock_test_and_set<I12MODE>): Remove.
1784
1785 2011-11-30  Richard Henderson  <rth@redhat.com>
1786
1787         * config/sparc/constraints.md ("w"): New.
1788         * config/sparc/predicates.md (mem_noofs_operand): New.
1789         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
1790         Generate the boolean result of the atomic_compare_exchange.
1791         (sparc_expand_compare_and_swap): New.
1792         * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
1793         (atomic_compare_and_swap<I48MODE>_1): Rename from
1794         *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
1795         (*atomic_compare_and_swapdi_v8plus): Rename from
1796         *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
1797         (sync_compare_and_swap<I12MODE>): Remove.
1798         (sync_compare_and_swap<I48MODE>): Remove.
1799
1800 2011-11-30  Richard Henderson  <rth@redhat.com>
1801
1802         * config/sparc/predicates.md (register_or_v9_zero_operand): New.
1803         * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
1804         * config/sparc/sync.md (atomic_load<I>): New.
1805         (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
1806
1807 2011-11-30  Richard Henderson  <rth@redhat.com>
1808
1809         * config/sparc/predicates.md (zero_or_v7_operand): New.
1810         * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
1811         * config/sparc/sparc-protos.h: Update.
1812         * config/sparc/sync.md (mem_thread_fence): New.
1813         (memory_barrier): Use sparc_emit_membar_for_model.
1814         (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
1815         (*membar_v8): Accept and ignore the membar mask.
1816         (*membar): Accept and print the membar mask.
1817
1818 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1819
1820         * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
1821         * config/arm/arm.md (mul64): New attribute.
1822         (generic_sched): Cortex-A15 is not scheduled generically.
1823         (cortex-a15.md): Include.
1824         * config/arm/cortex-a15.md: New machine description.
1825         * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
1826
1827 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1828
1829         * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
1830
1831 2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
1832
1833         * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
1834         * doc/tm.texi: Regenerate.
1835         * flags.h (flag_next_runtime): Remove references.
1836         * toplev.c: Likewise.
1837         * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
1838         * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
1839         * config/darwin.c (darwin_override_options): Provide default
1840         Objective-C abi settings and target conflict checks.
1841         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
1842         code. Adjust indenting.
1843
1844 2011-11-29  Joseph Myers  <joseph@codesourcery.com>
1845
1846         * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
1847         (REG_CLASS_CONTENTS): Add NON_SP_REGS.
1848         (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
1849         * config/sh/constraints.md (u): New constraint.
1850
1851 2011-11-29  Oleg Endo  <oleg.endo@t-online.de>
1852
1853         PR target/51337
1854         * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
1855         register is being loaded from a pseudo in memory.
1856
1857 2011-11-29  DJ Delorie  <dj@redhat.com>
1858
1859         * config.gcc (rl78-*-elf): New case.
1860         * doc/extend.texi: Add RL78 documentation.
1861         * doc/invoke.texi: Likewise.
1862         * doc/md.texi: Likewise.
1863         * doc/contrib.texi: Add RL78.
1864         * doc/install.texi: Add rl78-*-elf.
1865         * config/rl78: New directory for the Renesas RL78.
1866
1867 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
1868
1869         PR tree-optimization/51247
1870         * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
1871         types instead of adding 1 subtract -1 and instead of subtracting 1
1872         add -1 to avoid overflows.
1873
1874 2011-11-29  Andrew MacLeod  <amacleod@redhat.com>
1875
1876         PR target/50123
1877         * optabs.c (maybe_optimize_fetch_op): New.  Look for more optimal
1878         instructions for a FECTH_OP or OP_FECTH sequence.
1879         (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
1880
1881 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
1882
1883         * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
1884         (movdi_via_fpu): Remove.
1885         (loaddi_via_fpu): New insn pattern.
1886         (storedi_via_fpu): Ditto.
1887         (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
1888         (atomic_storedi_fpu): Ditto.
1889         * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
1890         (subst_stack_regs_pat): Handle UNSPEC_STA.
1891
1892 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
1893
1894         * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
1895         allocate scratch memory for alternative 0.
1896
1897 2011-11-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
1898
1899         * config/rs6000/rs6000-builtins.def: Completely rewrite builtin
1900         handling to centralize more of the builtins in this file.  Change
1901         some builtin enumerations to be more consistant.  Use a new mask
1902         to hold the current builtins, including SPE and PAIRED builtins
1903         which no longer are set via target_flags masks.  Add
1904         -mdebug=builtin debug support.  For power machines, define all
1905         Altivec and VSX buitins when the compiler starts, but don't allow
1906         the use of a builtin unless the appropriate switch is used, or
1907         #pragma GCC target is used to change the options.  If the user
1908         uses #pragma GCC target, update the appropriate hardware macros.
1909         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
1910         * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
1911         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
1912         (rs6000_define_or_undefine_macro): Ditto.
1913         (rs6000_target_modify_macros): Ditto.
1914         (rs6000_cpu_cpp_builtins): Ditto.
1915         (altivec_overloaded_builtins): Ditto.
1916         (altivec_build_resolved_builtin): Ditto.
1917         * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
1918         (rs6000_builtin_info): Ditto.
1919         (def_builtin): Ditto.
1920         (enable_mask_for_builtins): Ditto.
1921         (DEBUG_FMT_X): Ditto.
1922         (rs6000_debug_reg_global): Ditto.
1923         (rs6000_builtin_mask_calculate): Ditto.
1924         (rs6000_option_override_internal): Ditto.
1925         (rs6000_builtin_conversion): Ditto.
1926         (rs6000_builtin_vectorized_function): Ditto.
1927         (bdesc_3arg): Ditto.
1928         (bdesc_dst): Ditto.
1929         (bdesc_2arg): Ditto.
1930         (builtin_description_predicates): Ditto.
1931         (bdesc_altivec_preds): Ditto.
1932         (bdesc_spe_predicates): Ditto.
1933         (bdesc_spe_evsel): Ditto.
1934         (bdesc_paired_preds): Ditto.
1935         (bdesc_abs): Ditto.
1936         (bdesc_1arg): Ditto.
1937         (rs6000_overloaded_builtin_p): Ditto.
1938         (rs6000_expand_unop_builtin): Ditto.
1939         (bdesc_2arg_spe): Ditto.
1940         (spe_expand_builtin): Ditto.
1941         (rs6000_invalid_builtin): Ditto.
1942         (rs6000_expand_builtin): Ditto.
1943         (rs6000_init_builtins): Ditto.
1944         (spe_init_builtins): Ditto.
1945         (paired_init_builtins): Ditto.
1946         (altivec_init_builtins): Ditto.
1947         (builtin_function_type): Ditto.
1948         (rs6000_common_init_builtins): Ditto.
1949         (rs6000_builtin_reciprocal): Ditto.
1950         (rs6000_builtin_mask_names): Ditto.
1951         (rs6000_pragma_target_parse): Ditto.
1952         (rs6000_function_specific_print): Ditto.
1953         * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
1954         (MASK_DEBUG_ALL): Ditto.
1955         (TARGET_DEBUG_BUILTIN): Ditto.
1956         (TARGET_EXTRA_BUILTINS): Ditto.
1957         (REGISTER_TARGET_PRAGMAS): Ditto.
1958         (enum rs6000_btc): Ditto.
1959         (RS6000_BTC_*): Ditto.
1960         (RS6000_BTM_*): Ditto.
1961         (enum rs6000_builtins): Ditto.
1962         * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
1963         (rs6000_target_modify_macros): Ditto.
1964         (rs6000_target_modify_macros_ptr): Ditto.
1965
1966         * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
1967         standard name for converting vector unsigned values to floating
1968         point.  Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
1969         is handled by machine independent code.
1970         * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
1971         (rs6000_builtin_conversion): Ditto.
1972
1973 2011-11-29  Dodji Seketeli  <dodji@redhat.com>
1974
1975         * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
1976         (maybe_unwind_expanded_macro_loc): Adjust.
1977
1978 2011-11-29  David Edelsohn  <dje.gcc@gmail.com>
1979             Aldy Hernandez  <aldyh@redhat.com>
1980
1981         * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
1982         if DECL_ONE_ONLY.
1983         (ipa_tm_create_version): Same.
1984
1985 2011-11-29  Bernd Schmidt  <bernds@codesourcery.com>
1986
1987         * haifa-sched.c (recompute_todo_spec): Simplify and correct the
1988         code checking for a clobber of a condition register when deciding
1989         whether to predicate.
1990
1991 2011-11-29  Diego Novillo  <dnovillo@google.com>
1992
1993         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
1994         Update field call_stmt_cannot_inline_p from call graph edge, if needed.
1995         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
1996
1997 2011-11-29  Sameera Deshpande  <sameera.deshpande@arm.com>
1998
1999         * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
2000         (movdf_soft_insn): Likewise.
2001         * config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
2002         * config/arm/neon.md (neon_mov<mode>): Likewise.
2003         * config/arm/vfp.md (movdi_vfp): Likewise.
2004         (movdi_vfp_cortexa8): Likewise.
2005         (movdf_vfp): Likewise.
2006
2007 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
2008
2009         PR middle-end/50074
2010         * expr.c (expand_expr_addr_expr_1): Don't call force_operand for
2011         EXPAND_SUM modifier.
2012
2013 2011-11-29  Ira Rosen  <ira.rosen@linaro.org>
2014
2015         PR tree-optimization/51301
2016         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
2017         the last statement doesn't convert to a bigger type than the original
2018         type of the computation.
2019
2020 2011-11-28  Richard Henderson  <rth@redhat.com>
2021
2022         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
2023         Handle overlap between retval and oldval.  Always compute boolval
2024         from CR0 EQ value.
2025
2026 2011-11-28  Jakub Jelinek  <jakub@redhat.com>
2027
2028         PR debug/50317
2029         * tree-ssa.c (execute_update_addresses_taken): Remove
2030         var ={v} {CLOBBER} stmts instead of rewriting them into
2031         var_N ={v} {CLOBBER}.
2032
2033         PR middle-end/50907
2034         * function.c (convert_jumps_to_returns): When redirecting an edge
2035         succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
2036
2037         PR tree-optimization/50078
2038         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
2039         TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
2040
2041         PR tree-optimization/50682
2042         * tree-eh.c (maybe_remove_unreachable_handlers): New function.
2043         * tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
2044         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
2045
2046 2011-11-28  Georg-Johann Lay  <avr@gjlay.de>
2047
2048         * doc/extend.texi (AVR Built-in Functions): Add documentation for
2049         __builtin_avr_map8 and __builtin_avr_map16.
2050
2051         * config/avr/avr.md: Document new %t and %T asm output codes.
2052         (define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
2053         (adjust_len): Add map_bits.
2054         (map_bitsqi, map_bitshi): New insns.
2055         * config/avr/avr-protos.h (avr_out_map_bits): New.
2056         * config/avr/avr-protos.c (print_operand): Implement %t and %T.
2057         (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
2058         (avr_double_int_push_digit): New function.
2059         (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
2060         (avr_sig_map, avr_map_hamming_byte): New functions.
2061         (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
2062         avr_out_map_bits): New functions.
2063         (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2064         (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
2065         (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
2066         (avr_expand_builtin): ...and expand them.
2067         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
2068         __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
2069
2070 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2071
2072         PR target/51278
2073         * config/mips/mips.c (mips_rtx_costs): Handle baddu.
2074
2075 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2076
2077         * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
2078
2079 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2080
2081         * config/mips/mips-protos.h (mips_emit_binary): Declare.
2082         * config/mips/mips.c (mips_emit_binary): Make global.
2083         (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
2084         (mips_conditional_register_usage): Don't treat LO and HI as
2085         register operands in MIPS16 mode.
2086         (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
2087         for MIPS16 code.
2088         * config/mips/predicates.md (muldiv_target_operand): New predicate.
2089         (move_operand): Allow hilo_operand.
2090         * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
2091         target of MIPS16 multiplies, then move it into the target register.
2092         (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
2093         (<u>mulsidi3_32bit_mips16): New expander.
2094         (<u>mulsidi3_32bit): Use muldiv_target_operand.
2095         (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
2096         (<u>mulsidi3_64bit): Require !TARGET_MIPS16.  Split into
2097         <u>mulsidi3_64bit_split.
2098         (<u>mulsidi3_64bit_mips16): New expander.
2099         (<u>mulsidi3_64bit_split): Likewise, using expansions from
2100         two previous define_splits.
2101         (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
2102         muldiv_target_operand.
2103         (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
2104         (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
2105         Split into <su>mulsi3_highpart_split.
2106         (<su>mulsi3_highpart_split): New expander.
2107         (<su>muldi3_highpart): Turn into a define_expand.
2108         Use <su>muldi3_highpart_split for MIPS16 code.
2109         (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
2110         Require !TARGET_MIPS16.  Split into <su>muldi3_highpart_split.
2111         (<su>muldi3_highpart_split): New expander.
2112         (<u>mulditi3): Explicitly specify LO as the target of MIPS16
2113         multiplies, then move it into the target register.
2114         (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
2115         (divmod<mode>4, udivmod<mode>4): Turn into define_expands.
2116         Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
2117         move LO into operand 0.
2118         (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
2119         from <u>divmod<mode>4.  Use muldiv_target_operand.
2120         Require !TARGET_MIPS16.  Split into <u>divmod<mode>4_split.
2121         (<u>divmod<mode>4_split): New expander.
2122         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
2123         (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
2124
2125 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2126
2127         * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
2128         and x_operand_reg_set.
2129         (accessible_reg_set, operand_reg_set): New macros.
2130         * reginfo.c (init_reg_sets): Initialize accessible_reg_set and
2131         operand_reg_set.
2132         (saved_accessible_reg_set, saved_operand_reg_set): New variables.
2133         (save_register_info): Save them.
2134         (restore_register_info): Restore them.
2135         (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
2136         Remove NO_REGS registers from operand_reg_set.  Treat members
2137         of operand_reg_set as fixed.
2138         * recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
2139         (register_operand, nonmemory_operand): Likewise.
2140         * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
2141         register variables.  Check accessible_reg_set and operand_reg_set.
2142         * config/mips/mips.c (mips_conditional_register_usage): Remove
2143         inaccessible register from accessible_reg_set, rather than just
2144         making them fixed.
2145
2146 2011-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
2147
2148         * config/pa/pa-linux.h (TARGET_GAS): Remove comment.
2149
2150 2011-11-26  Richard Henderson  <rth@redhat.com>
2151
2152         * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
2153         for Linux.
2154
2155 2011-11-26  Richard Henderson  <rth@redhat.com>
2156
2157         * optabs.c (expand_atomic_fetch_op): Always return result.
2158
2159         * optabs.c (init_sync_libfuncs_1): Include max in iteration.
2160
2161         * omp-low.c (expand_omp_atomic): Assume anything aligned to
2162         BIGGEST_ALIGNMENT is aligned.
2163
2164 2011-11-26  Richard Henderson  <rth@redhat.com>
2165
2166         * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
2167         (UNSPECV_TAS_1, UNSPECV_TAS_2): New.
2168         (I): New mode iterator.
2169         (xz): New mode attribute.
2170         * config/m68k/sync.md: New file.
2171
2172         * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
2173         * config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
2174
2175 2011-11-26  Nathan Sidwell  <nathan@acm.org>
2176
2177         PR gcov-profile/51297
2178         * gcov.c (main): Allocate initial names and sources arrays.
2179         (find_source): Don't check for null name or source arrays here.
2180
2181 2011-11-26  Jakub Jelinek  <jakub@redhat.com>
2182
2183         PR rtl-optimization/49912
2184         * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
2185         when counting n_branch.
2186
2187 2011-11-26  Uros Bizjak  <ubizjak@gmail.com>
2188
2189         * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
2190
2191 2011-11-26  Joern Rennecke  <joern.rennecke@embecosm.com>
2192
2193         PR middle-end/50074
2194         * calls.c (mem_overlaps_already_clobbered_arg_p):
2195         Return false if no outgoing arguments have been stored so far.
2196
2197 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
2198
2199         * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
2200
2201 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
2202
2203         PR other/51011
2204         * tree.h (is_builtin_name): No longer external.
2205         * builtins.c (is_builtin_name): Make static.
2206         * varasm.c (incorporeal_function_p): __sync and __atomic external calls
2207         are not incorporeal and may need asm label processing.
2208
2209 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
2210
2211         PR target/50566
2212         * config/avr/avr-protos.h (avr_log_t): Add field .builtin.
2213         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
2214         Don't bypass TARGET_ALL_DEBUG.  Print self-info with ?.
2215         (avr_log_vadump): Support %D and %X to print double_int.
2216         (avr_double_int_pop_digit): New static function.
2217         (avr_dump_double_int_hex): New static function.
2218
2219 2011-11-24  Enkovich Ilya  <ilya.enkovich@intel.com>
2220
2221         PR target/51287
2222         * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
2223         attr check.
2224
2225 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
2226
2227         * optab.c (maybe_emit_atomic_exchange): New.  Try to emit an
2228         atomic_exchange pattern.
2229         (maybe_emit_sync_lock_test_and_set): New.  Try to emit an exchange
2230         using __sync_lock_test_and_set.
2231         (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
2232         exchange using a compare_and_swap loop.
2233         (expand_sync_lock_test_and_set): New.  Expand sync_lock_test_and_set.
2234         (expand_atomic_test_and_set): New.  Expand test_and_set operation.
2235         (expand_atomic_exchange): Use new maybe_emit_* functions.
2236         (expand_atomic_store): Use new maybe_emit_* functions.
2237         * builtins.c (expand_builtin_sync_lock_test_and_set): Call
2238         expand_sync_lock_test_and_set routine.
2239         (expand_builtin_atomic_exchange): Remove parameter from call.
2240         (expand_builtin_atomic_clear): Use atomic_clear pattern if present.
2241         (expand_builtin_atomic_test_and_set): Add target and simply call
2242         expand_atomic_test_and_set.
2243         (expand_builtin): Add target to expand_builtin_atomic_test_and_set.
2244         * expr.h (expand_atomic_exchange): Add parameter.
2245         (expand_sync_lock_test_and_set): New prototype.
2246         (expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
2247
2248 2011-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2249
2250         PR target/51134
2251         * config/i386/i386.h (processor_costs): Revert revision 181357.
2252         * config/i386/i386.c (cost models): Likewise.
2253         (core_cost): Likewise.
2254         (promote_duplicated_reg): Likewise.
2255         (promote_duplicated_reg_to_size): Likewise.
2256         (processor_target): Likewise.
2257         (expand_set_or_movmem_via_loop_with_iter): Likewise.
2258         (expand_set_or_movmem_via_loop): Likewise.
2259         (emit_strset): Likewise.
2260         (expand_movmem_epilogue): Likewise.
2261         (expand_setmem_epilogue): Likewise.
2262         (expand_movmem_prologue): Likewise.
2263         (expand_setmem_prologue): Likewise.
2264         (expand_constant_movmem_prologue): Likewise.
2265         (expand_constant_setmem_prologue): Likewise.
2266         (decide_alg): Likewise.
2267         (decide_alignment): Likewise.
2268         (ix86_expand_movmem): Likewise.
2269         (ix86_expand_setmem): Likewise.
2270         (ix86_slow_unaligned_access): Likewise.
2271         * config/i386/i386.md (strset): Likewise.
2272         * config/i386/sse.md (vec_dupv4si): Likewise.
2273         (vec_dupv2di): Likewise.
2274
2275 2011-11-24  Georg-Johann Lay  <avr@gjlay.de>
2276
2277         * config/avr/avr.md (*rotlhi2.15): Set length to 4.
2278
2279 2011-11-24  Razya Ladelsky  <razya@il.ibm.com>
2280
2281         * tree-data-ref.c (initialize_data_dependence_relation): Update
2282         comment for the self dependence case.
2283         (compute_self_dependence): Remove.
2284         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
2285         compute_self_dependenc.
2286
2287 2011-11-24  Alan Modra  <amodra@gmail.com>
2288
2289         * c-decl.c (warn_if_shadowing): Don't warn if shadowed
2290         identifier is from system header.
2291
2292 2011-11-23  Jakub Jelinek  <jakub@redhat.com>
2293
2294         PR target/51261
2295         * config/i386/i386.c (decide_alg): Initialize *dynamic_check
2296         even if !optimize.
2297
2298 2011-11-23  Vladimir Makarov  <vmakarov@redhat.com>
2299
2300         PR rtl-optimization/48455
2301         * doc/invoke.texi (-fira-region): Document default values.
2302
2303         * flags-types.h (enum ira_region): Add new value
2304         IRA_REGION_AUTODETECT.
2305
2306         * common.opt (fira-region): Set up initial value to
2307         IRA_REGION_AUTODETECT.
2308
2309         * toplev.c (process_options): Set up flag_ira_region depending on
2310         -O options.
2311
2312         * ira.c (ira.c): Remove optimize guard for ira_build.
2313
2314 2011-11-23  Chung-Lin Tang  <cltang@codesourcery.com>
2315
2316         PR rtl-optimization/50496
2317         * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
2318         only after epilogue is created. Add comments.
2319
2320 2011-11-22  Richard Henderson  <rth@redhat.com>
2321
2322         * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
2323         Generate the barrier required for the memory model.
2324         (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
2325         * config/ia64/ia64-protos.h: Update.
2326         * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
2327         (UNSPEC_CMPXCHG_REL): New.
2328         * config/ia64/sync.md (mem_thread_fence): New.
2329         (atomic_load<IMODE>, atomic_store<IMODE>): New.
2330         (atomic_compare_and_swap<IMODE>): New.
2331         (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
2332         (atomic_exchange<IMODE>): New.
2333         (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
2334         (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
2335         (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
2336         (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
2337         (fetchadd_rel_<I48MODE>): New.
2338         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
2339         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
2340         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
2341         (sync_compare_and_swap<IMODE>): Remove.
2342         (sync_lock_release<IMODE>): Remove.
2343
2344         * config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
2345         and UNSPECV_* constants.
2346
2347 2011-11-22  Tom de Vries  <tom@codesourcery.com>
2348
2349         PR rtl-optimization/50764
2350         * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
2351         not moved past preceding jump.
2352
2353 2011-11-22  Jeff Law  <law@redhat.com>
2354
2355         * doc/contrib.texi: Add entry for David Binderman.
2356
2357 2011-11-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2358
2359         * postreload.c (reload_combine): Mark reg_state as invalid at
2360         volatile insns if there has been a use already.
2361
2362 2011-11-21  Aldy Hernandez  <aldyh@redhat.com>
2363
2364         * opts.c (finish_options): Do not fail for -fgnu-tm.
2365         * gimple-streamer-out.c (output_gimple_stmt): Handle
2366         GIMPLE_TRANSACTION.
2367         * gimple-streamer-in.c (input_gimple_stmt): Same.
2368         * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
2369         (lto_output_node): Write tm_clone bit.
2370
2371 2011-11-22  Ian Lance Taylor  <iant@google.com>
2372
2373         * doc/install.texi (Configuration): Correct doc of
2374         --enable-build-poststage1-with-cxx: it is not experimental.
2375
2376 2011-11-22  Jakub Jelinek  <jakub@redhat.com>
2377
2378         PR tree-optimization/51074
2379         * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
2380         handling for BYTES_BIG_ENDIAN.
2381         * optabs.c (can_vec_perm_for_code_p): Likewise.
2382
2383 2011-11-22  Michael Matz  <matz@suse.de>
2384
2385         PR other/51125
2386         * trans-mem.c (expand_block_tm): Ignore clobbers.
2387
2388 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
2389
2390         *  config/darwin.h (ENDFILE_SPEC): New.
2391         (DARWIN_CRT1_SPEC): Add crttms.o.
2392         (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
2393         * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
2394
2395 2011-11-22  Michael Matz  <matz@suse.de>
2396
2397         PR c++/51264
2398         * tree.c (iterative_hash_expr): Remove break after return.
2399
2400 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
2401
2402         * target.def (tm_clone_table_section): New hook.
2403         * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
2404         * doc/tm.texi: Regenerate.
2405         * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
2406         * output.h (default_clone_table_section): New prototype.
2407         * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
2408         * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
2409         * config/darwin.c (darwin_tm_clone_table_section): New.
2410
2411 2011-11-21  Torvald Riegel  <triegel@redhat.com>
2412
2413         * trans-mem.c (diagnose_tm_1): Print an expression instead of a
2414         declaration in error messages for indirect calls.
2415
2416 2011-11-21  David S. Miller  <davem@davemloft.net>
2417
2418         * config/sparc/sparc.c (sparc_regmode_natural_size): New function
2419         implementing REGMODE_NATURAL_SIZE taking into consideration vector
2420         modes.
2421         (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
2422         * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
2423         sparc_modes_tieable_p): Declare.
2424         * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
2425         MODES_TIEABLE_P): Use new helper functions.
2426
2427         Revert
2428         2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2429
2430         PR middle-end/50325
2431         * expmed.c (store_bit_field_1): Use extract_bit_field on big
2432         endian targets if the source cannot be exactly covered by word
2433         mode chunks.
2434
2435 2011-11-21  Jakub Jelinek  <jakub@redhat.com>
2436
2437         PR debug/50827
2438         * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
2439         macro instead of XEXP.
2440
2441 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
2442
2443         * configure: Regenerate.
2444
2445 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
2446
2447         * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
2448         must not affect cc0.
2449         * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
2450         register does not change cc0. Same for any constant to ld-register.
2451
2452 2011-11-21  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
2455         UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
2456         Move from config/i386/i386.md
2457         (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
2458         * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
2459         UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
2460         UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
2461         UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
2462         UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
2463         UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
2464         UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
2465         UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
2466         UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
2467         UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
2468         UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
2469         UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
2470         (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
2471         UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
2472         Ditto.
2473         * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
2474         UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
2475         (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
2476         UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
2477         (sse2_lfence): Move from config/i386/sse.md.
2478         (*sse2_lfence): Ditto.
2479         (sse_sfence): Ditto.
2480         (*sse_sfence): Ditto.
2481         (sse2_mfence): Ditto.
2482         (mfence_sse2): Ditto.  Rename from *sse2_mfence.  Enable also
2483         for TARGET_64BIT.
2484         (mem_thread_fence): Use mfence_sse2.
2485
2486 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
2487
2488         * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
2489         * config/avr/avr-devices.c: Ditto. And initialize it.
2490         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
2491         __AVR_SFR_OFFSET__.
2492         * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
2493         (out_movhi_r_mr, out_movhi_mr_r): Remove.
2494         (out_movsi_r_mr, out_movsi_mr_r): Remove.
2495         * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
2496         (*insv.io, *insv.not.io): Ditto.
2497         * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
2498         (print_operand): Implement "%i" to print address as I/O address.
2499         (output_movqi): Clean up call of out_movqi_mr_r.
2500         (output_movhi): Clean up call of out_movhi_mr_r.
2501         (avr_file_start): Use avr_current_arch->sfr_offset instead of
2502         magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
2503         (avr_out_sbxx_branch): Use %i instead of %m-0x20.
2504         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
2505         (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
2506         (out_shift_with_cnt): Clean up code: Use avr_asm_len.
2507         (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
2508         (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
2509         Clean up call of avr_out_store_psi.
2510         (output_reload_in_const): Don't cut symbols longer than 2 bytes.
2511         (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
2512         try if setting pre-cleared register is advantageous.
2513         (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
2514
2515 2011-11-20  Joey Ye  <joey.ye@arm.com>
2516
2517         * expr.c (expand_expr_real_1): Correctly handle strict volatile
2518         bitfield loads smaller than mode size.
2519
2520 2011-11-20  Richard Henderson  <rth@redhat.com>
2521
2522         * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
2523
2524 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
2525
2526         PR target/51235
2527         * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
2528         patterns for supported mode only.
2529
2530         PR target/51236
2531         * config/i386/i386.c (ix86_expand_builtin)
2532         <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
2533
2534 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
2535
2536         * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
2537         (UNSPEC_MOVNTQ): New unspec.
2538         * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
2539         Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
2540         * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
2541         UNSPEC_MOVNTI.
2542         (STORENT_MODE): Add DI and V4DI modes.
2543
2544 2011-11-20  Nathan Sidwell  <nathan@acm.org>
2545
2546         PR gcov-profile/51113
2547         * coverage.c (build_var): Propagate visibility for public
2548         decls.  Use make_decl_one_only for PIC correctness.
2549
2550         testsuite/
2551         * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
2552         * gcc.misc-tests/gcov-16.c: New.
2553         * gcc.misc-tests/gcov-17.c: New.
2554         * g++.dg/gcov/gcov-8.C: New.
2555         * g++.dg/gcov/gcov-9.C: New.
2556         * g++.dg/gcov/gcov-10.C: New.
2557
2558 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2559
2560         PR rtl-optimization/51187
2561         * reorg.c (relax_delay_slots): Do not consider a jump useless if there
2562         is a barrier between the jump and its target label.
2563
2564 2011-11-19  Patrick Marlier  <patrick.marlier@gmail.com>
2565
2566         PR middle-end/51211
2567         * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
2568
2569 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2570
2571         * expmed.c (store_bit_field_1): Revert bogus formatting change.
2572
2573 2011-11-19  Richard Earnshaw  <rearnsha@arm.com>
2574
2575         PR target/50493
2576         * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
2577         overlap of src and dest operands.
2578
2579 2011-11-19  Iain Sandoe  <iains@gcc.gnu.org>
2580
2581         * config/darwin.h (ASM_DEBUG_SPEC): New.
2582         * config/darwin9.h (ASM_DEBUG_SPEC): New.
2583
2584 2011-11-18  Jan Hubicka  <jh@suse.cz>
2585
2586         * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
2587         issues are fixed.
2588
2589 2011-11-18  Anatoly Sokolov  <aesok@post.ru>
2590
2591         * config/cris/cris.c (cris_function_value_regno_p): Make static.
2592         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2593         * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
2594         * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
2595
2596 2011-11-18  H.J. Lu  <hongjiu.lu@intel.com>
2597
2598         PR target/33944
2599         * doc/extend.texi: Document __builtin_ia32_movnti64.
2600
2601         * config/i386/emmintrin.h (_mm_stream_si64): New.
2602
2603         * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
2604
2605         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
2606         (bdesc_special_args): Update __builtin_ia32_movnti.  Add
2607         __builtin_ia32_movnti64.
2608         (ix86_expand_special_args_builtin): Handle
2609         VOID_FTYPE_PLONGLONG_LONGLONG.
2610
2611         * config/i386/i386.md (UNSPEC_MOVNTI): New.
2612
2613         * config/i386/sse.md (sse2_movntsi): Renamed to ...
2614         (sse2_movnti<mode>): This.
2615
2616 2011-11-18  Georg-Johann Lay  <avr@gjlay.de>
2617
2618         PR target/49868
2619         * config/avr/avr.h (base_arch_s): Add field n_segments.
2620         (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
2621         ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
2622         (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
2623         (INIT_EXPANDERS): New define.
2624         * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
2625         (avr_init_expanders): New.
2626         (avr_emit_movmemhi, avr_out_movmem): New.
2627         (avr_xload_libgcc_p): New.
2628         * config/avr/avr-c.c (avr_register_target_pragmas): Register
2629         address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
2630         (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
2631         __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
2632         * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
2633
2634         * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
2635         3 bits instead of just 1.
2636         (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
2637         (progmem_section): Change from section to array of sections.
2638         (progmem_section_prefix): New static variable.
2639         (avr_file_start): Print set for __RAMPZ__
2640         (avr_option_override): Move initialization of RTXes from here...
2641         (avr_init_expanders): ...to this new function.
2642         (avr_pgm_segment): New static function.
2643         (avr_decl_pgm_p): Handle error_mark_node.
2644         (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
2645         (avr_out_xload, avr_find_unused_d_reg): New static functions.
2646         (expand_prologue, expand_epilogue): Use rampz_rtx.
2647         (print_operand): Hande CONST_STRING.
2648         (avr_xload_libgcc_p): New static function.
2649         (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
2650         (avr_progmem_p): Return 2 for 24-bit flash address space.
2651         (avr_out_sbxx_branch): Clean-up code from ASn macros.
2652         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
2653         address and print symbolically.
2654         (avr_asm_named_section, avr_section_type_flags,
2655         avr_encode_section_info, avr_asm_select_section,
2656         avr_addr_space_address_mode, avr_addr_space_pointer_mode,
2657         avr_addr_space_legitimate_address_p, avr_addr_space_convert,
2658         avr_addr_space_legitimize_address): Handle new address spaces.
2659         (avr_output_progmem_section_asm_op): New static function.
2660         (avr_asm_init_sections): Initialize progmem_section[].
2661         (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
2662         (avr_const_address_lo16): New static function.
2663         (avr_assemble_integer): Use it to handle 3-byte integers.
2664         (avr_emit_movmemhi, avr_out_movmem): New functions.
2665
2666         * config/avr/predicates.md (nox_general_operand): Handle new
2667         address spaces.
2668         * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
2669         (adjust_len): Add xload, movmem.
2670         (SP_ADDR): New define_constants.
2671         (isa): Add "lpm", "lpmx", "elpm", "elpmx".
2672         (enabled): Handle them.
2673         (load<mode>_libgcc): New expander.
2674         (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
2675         (xload8_A, xload<mode>_A): New insn-and-splits.
2676         (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
2677         (mov<mode>): Handle new address spaces.
2678         (movmemhi): Rewrite using avr_emit_movmemhi.
2679         (MOVMEM_r_d): New mode attribute.
2680         (movmem_<mode>, movmem_qi_elpm): New insns.
2681         (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
2682         C-code.  Use label instead of hard-coded instrunction lengths.
2683
2684 2011-11-18  Martin Jambor  <mjambor@suse.cz>
2685
2686         PR tree-optimization/50605
2687         * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
2688         of IPA invariant decls.
2689
2690 2011-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2691
2692         * tree-outof-ssa.c (insert_back_edge_copies):  Add call to
2693         mark_dfs_back_edges.
2694
2695 2011-11-18  Iain Sandoe  <iains@gcc.gnu.org>
2696
2697         PR target/49992
2698         * configure.ac: Remove ranlib special-casing for Darwin.
2699         * configure: Regenerate.
2700
2701 2011-11-18  Uros Bizjak  <ubizjak@gmail.com>
2702
2703         PR tree-optimization/51118
2704         * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
2705         before using TREE_TYPE accessor on expr.
2706
2707 2011-11-17  Jan Hubicka  <jh@suse.cz>
2708
2709         PR bootstrap/51134
2710         * i386.c (atom_cost): Fix 32bit memset description.
2711         (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
2712         for epilogue loops.
2713         (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
2714         byte loop.
2715         (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
2716         when not optimizing always use rep movsb or lincall; do not produce
2717         word sized loops when optimizing memset for size (to avoid need
2718         for large constants).
2719         (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
2720         choose unroll factors better; always do 128bit moves when producing
2721         SSE loops; do not produce loopy epilogue when size is too small.
2722         (promote_duplicated_reg_to_size): Do not look into desired alignments
2723         when doing vector expansion.
2724         (ix86_expand_setmem): Track better when promoted value is available;
2725         choose unroll factors more sanely. Output loopy epilogue only
2726         when needed.
2727
2728 2011-11-17  Steve Ellcey  <sje@cup.hp.com>
2729
2730         PR middle-end/51144
2731         * output.h (fprint_w): Remove.
2732         * final.c (fprint_w): Remove.
2733         (output_addr_const): Change fprint_w back to fprintf.
2734
2735 2011-11-17  Andrew Pinski  <apinski@cavium.com>
2736
2737         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
2738
2739 2011-11-17  Andrew MacLeod  <amacleod@redhat.com>
2740
2741         * builtins.c (expand_builtin): Remove 4th parameter representing
2742         weak/strong mode when __atomic_compare_exchange becomes a library call.
2743
2744 2011-11-17  Richard Henderson  <rth@redhat.com>
2745
2746         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
2747         new pseudo for target after convert_modes.
2748         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
2749
2750 2011-11-17  Richard Henderson  <rth@redhat.com>
2751
2752         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
2753         new pseudo for target after convert_modes.
2754         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
2755
2756 2011-11-17  Richard Henderson  <rth@redhat.com>
2757
2758         * builtins.c (expand_builtin_mem_thread_fence): Remove.
2759         (expand_builtin_mem_signal_fence): Remove.
2760         (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
2761         (expand_builtin_sync_synchronize): Likewise.
2762         (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
2763         * optabs.c (expand_asm_memory_barrier): Split out from
2764         expand_builtin_mem_signal_fence.
2765         (expand_mem_thread_fence): New, a combination of code from
2766         expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
2767         (expand_mem_signal_fence): Moved and renamed from
2768         expand_builtin_mem_signal_fence.
2769         (expand_atomic_exchange): Use expand_mem_thread_fence.
2770         (expand_atomic_load, expand_atomic_store): Likewise.
2771         * expr.h, optabs.h: Update decls.
2772
2773 2011-11-17  Bin Cheng  <bin.cheng@arm.com>
2774
2775         PR rtl-optimization/50663
2776         * cprop.c (implicit_set_indexes): New global variable.
2777         (insert_set_in_table): Add additional parameter and record implicit
2778         set information.
2779         (hash_scan_set): Add additional parameter and pass it to above.
2780         (hash_scan_insn): Pass false to hash_scan_set.
2781         (compute_hash_table_work): Pass true to hash_scan_set.
2782         (compute_cprop_data): Add implicit set to AVIN of block which the
2783         implicit set is recorded for.
2784         (one_cprop_pass): Handle implicit_set_indexes array.
2785
2786 2011-11-17  Michael Matz  <matz@suse.de>
2787
2788         PR middle-end/50644
2789         PR middle-end/50741
2790         * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
2791         current function.
2792         (remove_unused_locals): Ditto.
2793
2794 2011-11-16  Richard Henderson  <rth@redhat.com>
2795
2796         * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
2797         ALIAS_SET_MEMORY_BARRIER when creating a new memory.
2798         (alpha_split_atomic_exchange_12): Likewise.
2799         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
2800
2801 2011-11-16  Joseph Myers  <joseph@codesourcery.com>
2802
2803         * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
2804
2805 2011-11-16  David Edelsohn  <dje.gcc@gmail.com>
2806
2807         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
2808         Default to minimum alignment if decl is NULL.
2809
2810 2011-11-16  Uros Bizjak  <ubizjak@gmail.com>
2811
2812         * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
2813         sequence for AVX.
2814         (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
2815
2816 2011-11-16  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
2817
2818         * doc/invoke.texi: Document AMD bdver1 and btver1.
2819
2820 2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
2821             Bernd Schmidt <bernds@coudesourcery.com>
2822             Sebastian Huber <sebastian.huber@embedded-brains.de>
2823
2824         PR target/49641
2825         * config/arm/arm.c (store_multiple_sequence): Avoid cases where
2826         the base reg is stored iff compiling for Thumb1.
2827
2828 2011-11-16  Razya Ladelsky  <razya@il.ibm.com>
2829
2830         PR tree-optimization/49960
2831         * tree-data-ref.c (initialize_data_dependence_relation): Add
2832         initializations.
2833         Remove call to compute_self_dependence.
2834         (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
2835         (compute_self_dependence): Remove old code. Add call to
2836         compute_affine_dependence.
2837         (compute_all_dependences): Remove call to compute_self_dependence.
2838         Add call to compute_affine_dependence.
2839
2840 2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2841
2842         PR middle-end/50325
2843         * expmed.c (store_bit_field_1): Use extract_bit_field on big
2844         endian targets if the source cannot be exactly covered by word
2845         mode chunks.
2846
2847 2011-11-15  Joseph Myers  <joseph@codesourcery.com>
2848
2849         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
2850         ELF_STRING_LIMIT.
2851
2852 2011-11-15  Richard Henderson  <rth@redhat.com>
2853
2854         * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
2855         (alpha_post_atomic_barrier): New.
2856         (alpha_split_atomic_op): New memmodel argument; honor it.
2857         (alpha_split_compare_and_swap): Take array of operands.  Honor
2858         memmodel; always set bool output
2859         (alpha_expand_compare_and_swap_12): Similarly.
2860         (alpha_split_compare_and_swap_12): Similarly.
2861         (alpha_split_atomic_exchange): Similarly.  Rename from
2862         alpha_split_lock_test_and_set.
2863         (alpha_expand_atomic_exchange_12): Similarly.  Rename from
2864         alpha_expand_lock_test_and_set_12.
2865         (alpha_split_atomic_exchange_12): Similarly.  Rename from
2866         alpha_split_lock_test_and_set_12.
2867         * config/alpha/alpha-protos.h: Update.
2868         * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
2869         * config/alpha/constraints.md ("w"): New.
2870         * config/alpha/predicates.md (mem_noofs_operand): New.
2871         * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
2872         sync_compare_and_swap<mode>; add the new parameters.
2873         (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
2874         (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
2875         (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
2876         (atomic_<op><mode>): Update from sync_<op><mode>.
2877
2878 2011-11-16  Tom de Vries  <tom@codesourcery.com>
2879
2880         * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
2881
2882 2011-11-16  Alan Modra  <amodra@gmail.com>
2883
2884         PR rtl-optimization/51051
2885         PR bootstrap/51086
2886         * function.c (thread_prologue_and_epilogue_insns): Guard
2887         emitting return with single_succ_p test.
2888
2889 2011-11-15  Joern Rennecke  <joern.rennecke@embecosm.com>
2890
2891         * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
2892         get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
2893
2894 2011-11-15  Uros Bizjak  <ubizjak@gmail.com>
2895
2896         * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
2897         (vec_pack_sfix_trunc_v2df): Ditto.
2898         (vec_pack_sfix_v2df): Ditto.
2899         (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
2900         avx_vec_concatv8si patterns.
2901         (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
2902         avx_vec_concatv8si patterns.
2903
2904 2011-11-15  Torvald Riegel  <triegel@redhat.com>
2905
2906         * c-parser.c (c_parser_transaction_expression): Require parentheses
2907         when parsing transaction expressions.
2908
2909 2011-11-15  Tristan Gingold  <gingold@adacore.com>
2910
2911         * incpath.c (get_added_cpp_dirs): New function.
2912         * incpath.h (get_added_cpp_dirs): Declare.
2913         * config/vms/vms-c.c (vms_c_register_includes): New function.
2914         (vms_std_modules): New variable.
2915         * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
2916         (vms_c_register_includes): Declare.
2917
2918 2011-11-15  Tristan Gingold  <gingold@adacore.com>
2919
2920         * c-family/c-pragma.h (pragma_extern_prefix): Declare.
2921         * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
2922         * config/vms/vms-c.c (saved_extern_prefix): New variable.
2923         (vms_pragma_extern_prefix): New function.
2924         (vms_c_register_pragma): Register vms_pragma_extern_prefix.
2925
2926 2011-11-15  Georg-Johann Lay  <avr@gjlay.de>
2927
2928         PR target/49868
2929         * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
2930         (REGISTER_TARGET_PRAGMAS): New define.
2931         * config/avr/avr-protos.h (avr_mem_pgm_p): New.
2932         (avr_load_libgcc_p): New.
2933         (avr_register_target_pragmas): New.
2934         (asm_output_external_libcall): Remove.
2935         (avr_log_t): Add field "progmem".  Order alphabetically.
2936         * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
2937         * config/avr/avr-c.c (langhooks.h): New include.
2938         (avr_register_target_pragmas): New function. Register address
2939         space __pgm.
2940         (avr_cpu_cpp_builtins): Add built-in define __PGM.
2941
2942         * config/avr/avr.c: Include "c-family/c-common.h".
2943         (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
2944         (TARGET_LEGITIMIZE_ADDRESS): Remove define.
2945         (TARGET_ADDR_SPACE_SUBSET_P): Define to...
2946         (avr_addr_space_subset_p): ...this new static function.
2947         (TARGET_ADDR_SPACE_CONVERT): Define to...
2948         (avr_addr_space_convert): ...this new static function.
2949         (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
2950         (avr_addr_space_address_mode): ...this new static function.
2951         (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
2952         (avr_addr_space_pointer_mode): ...this new static function.
2953         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
2954         (avr_addr_space_legitimate_address_p): ...this new static function.
2955         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
2956         (avr_addr_space_legitimize_address): ...this new static function.
2957         (avr_mode_code_base_reg_class): Handle address spaces.
2958         (avr_regno_mode_code_ok_for_base_p): Ditto.
2959         (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
2960         (avr_option_override): Initialize them.
2961         (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
2962         variables.
2963         (avr_pgm_segment): New static function.
2964         (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
2965         (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
2966         (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
2967         avr_out_lpm to handle loads from progmem.
2968         (avr_load_libgcc_p): New static function.
2969         (avr_progmem_p): Test if decl is in flash.
2970         (avr_pgm_pointer_const_p): New static function.
2971         (avr_nonconst_pointer_addrspace): New static function.
2972         (avr_pgm_check_var_decl): New static function.
2973         (avr_insert_attributes): Use it.  Change error message to report
2974         cause (progmem or address space) when code wants to write to flash.
2975         (avr_section_type_flags): Unset section flag SECTION_BSS for
2976         data in progmem.
2977
2978         * config/avr/predicates.md (nop_general_operand): New predicate.
2979         (nox_general_operand): New predicate.
2980         * config/avr/avr.md (LPM_REGNO): New define_constant.
2981         (load<mode>_libgcc): New expander.
2982         (*load.<mode>.libgcc): New insn.
2983         (mov<mode>): Handle loads from non-generic AS.
2984         (movmemhi): Ditto.  Propagate address space information to newly
2985         created MEM.
2986         (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
2987         to nox_general_operand.
2988         (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
2989         nop_general_operand.
2990         (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
2991         (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
2992         (split-lpmx): New split.
2993         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
2994         *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
2995
2996 2011-11-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2997
2998         * ipa-cp.c (ipa_value_from_jfunc): Make global.
2999         (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
3000         (get_indirect_edge_target): Rename, make global.
3001         (devirtualization_time_bonus, estimate_local_effects,)
3002         (ipcp_discover_new_direct_edges): Update.
3003         * ipa-inline-analysis.c (evaluate_conditions_for_edge):
3004         Generalize to also handle types.  Rename to ...
3005         (evaluate_properties_for_edge): Use instead of
3006         evaluate_conditions_for_edge.
3007         (estimate_edge_devirt_benefit): New function.
3008         (estimate_calls_size_and_time): Use it.
3009         (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
3010         (inline_merge_summary): Update.
3011         (do_estimate_edge_time, do_estimate_edge_growth): Update.  Calculate
3012         parameter information at the call site and pass it on to subroutines.
3013         * tree-inline.c (estimate_num_insns): Distinguish between direct and
3014         indirect calls.
3015         (init_inline_once): Set size and time costs or indirect calls.
3016         * tree-inline.h (eni_weights): Add indirect_call_cost.
3017
3018 2011-11-15  Tom de Vries  <tom@codesourcery.com>
3019
3020         PR tree-optimization/51005
3021         * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
3022         mark_basic_block_deleted.
3023         (update_worklist): Inline purge_bbs.
3024         (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
3025         (delete_block_update_dominator_info): Remove.
3026         (replace_block_by): Remove update_vops parameter.  Partially evaluate
3027         for update_vops == false.
3028         (apply_clusters): Remove update_vops parameter.  Remove update_vops
3029         argument in replace_block_by call.
3030         (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
3031         (tail_merge_optimize): Remove update_vops argument to apply_clusters.
3032         Remove call to purge_bbs.  Add calls to calculate_dominance_info and
3033         free_dominance_info.  Add MAY_HAVE_DEBUG_STMTS  before calling
3034         update_debug_stmts.  Mark vop var for renaming, if necessary.
3035
3036 2011-11-15  Bernd Schmidt  <bernds@codesourcery.com>
3037
3038         PR rtl-optimization/51051
3039         * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
3040         move would cause fallthrough into the exit block.
3041
3042 2011-11-14  Richard Henderson  <rth@redhat.com>
3043
3044         * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
3045         handled.
3046         (emit_store_conditional): Likewise.
3047         (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
3048         (rs6000_adjust_atomic_subword): New.
3049         (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
3050         (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
3051         for pre-reload expansion.
3052         (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
3053         rs6000_expand_compare_and_swapqhi): Merge into ...
3054         (rs6000_expand_atomic_compare_and_swap): ... here.  New function.
3055         rs6000_split_lock_test_and_set; expand immediately.  Handle
3056         QImode and HImode.
3057         * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
3058         from UNSPECV_LWSYNC.
3059         * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
3060         (mem_thread_fence): New.
3061         (hwsync): Rename from memory_barrier.
3062         (*hwsync): Rename from *sync_internal.
3063         (lwsync, *lwsync): Mirror hwsync implementation.
3064         (isync): Don't reference memory.
3065         (loadsync): New.
3066         (atomic_load<INT>, atomic_store<INT>): New.
3067         (ATOMIC): New mode iterator.
3068         (load_locked<ATOMIC>): Rename from load_locked_<GPR>.
3069         (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
3070         (sync_compare_and_swap<GPR>): Remove.
3071         (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
3072         (sync_compare_and_swapqhi_internal): Remove.
3073         (sync_lock_test_and_set<GPR>): Remove.
3074         (sync_<FETCHOP><INT1>): Remove.
3075         (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
3076         (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
3077         (sync_old_<FETCHOP><GPR>): Remove.
3078         (*sync_old_<FETCHOP>si_internal): Remove.
3079         (*sync_old_<FETCHOP>di_internal): Remove.
3080         (sync_old_nand<INT1>): Remove.
3081         (*sync_old_nand<GPR>_internal): Remove.
3082         (sync_new_<FETCHOP><GPR>): Remove.
3083         (*sync_new_<FETCHOP>si_internal): Remove.
3084         (*sync_new_<FETCHOP>di_internal): Remove.
3085         (sync_new_nand<INT1>): Remove.
3086         (*sync_new_nand<GPR>_internal): Remove.
3087         (*atomic_andsi, *atomic_anddi): Remove.
3088         (*sync_addshort_internal, *sync_subshort_internal): Remove.
3089         (*sync_andsi_internal, *sync_boolsi_internal): Remove.
3090         (*sync_boolcshort_internal): Remove.
3091         (sync_lock_release<INT1>): Remove.
3092         (atomic_compare_and_swap<INT1>): New.
3093         (atomic_exchange<INT1>): New.
3094         (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
3095         (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
3096         (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
3097
3098 2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
3099
3100         * config/i386/sse.md (round<mode>2): Use register_operand for
3101         operand 1 predicate.
3102         (round<mode>2_sfix): Ditto.
3103         (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
3104
3105 2011-11-14  Nathan Sidwell  <nathan@acm.org>
3106
3107         * gcov.c (canonicalize_name): Protect use of S_ISLNK.
3108
3109 2011-11-14  Jan Hubicka  <jh@suse.cz>
3110
3111         PR target/51126
3112         * config/i386/i386.c (core cost model): Correct pasto.
3113
3114 2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
3115
3116         * config/i386/sse.md (round<mode>2_sfix): New expander.
3117         (round<mode>2_vec_pack_sfix): Ditto.
3118         (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
3119         (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
3120         * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
3121         V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
3122         V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
3123         * config/i386/i386.c (ix86_builtins): Add
3124         IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
3125         IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
3126         (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
3127         __builtin_ia32_roundpd_az_vec_pack_sfix{,256},
3128         __builtin_ia32_{floorps,ceilps}_sfix{,256}and
3129         __builtin_ia32_roundps_az_sfix{,256} descriptions.
3130         (ix86_expand_sse_round_vec_pack_sfix): New.
3131         (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
3132         V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
3133         V8SI_FTYPE_V4DF_V4DF_ROUND types.  Check last argument of
3134         CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
3135         CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
3136         (ix86_builtin_vectorized_function): Handle
3137         BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
3138         BUILT_IN_{I,L,LL}ROUND{,F}
3139
3140 2011-11-14  Jan Hubicka  <jh@suse.cz>
3141
3142         PR middle-end/50598
3143         * cgraph.h (varpool_externally_visible_p): Declare.
3144         (varpool_add_new_variable): Declare.
3145         * tree-emultls.c (get_emutls_init_templ_addr,
3146         new_emutls_decl): Use varpool_add_new_variable.
3147         * ipa.c (varpool_externally_visible_p): Export.
3148         * varpool.c (varpool_add_new_variable): New function.
3149
3150 2011-11-14  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
3151             Jan Hubicka  <jh@suse.cz>
3152
3153         * config/i386/i386.h (processor_costs): Add second dimension to
3154         stringop_algs array.
3155         * config/i386/i386.c (cost models): Initialize second dimension of
3156         stringop_algs arrays.
3157         (core_cost): New costs based on generic64 costs with updated stringop
3158         values.
3159         (promote_duplicated_reg): Add support for vector modes, add
3160         declaration.
3161         (promote_duplicated_reg_to_size): Likewise.
3162         (processor_target): Set core costs for core variants.
3163         (expand_set_or_movmem_via_loop_with_iter): New function.
3164         (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
3165         different loops, produced by this function.
3166         (emit_strset): New function.
3167         (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
3168         use SSE-moves where possible.
3169         (expand_setmem_epilogue): Likewise.
3170         (expand_movmem_prologue): Likewise for prologue.
3171         (expand_setmem_prologue): Likewise.
3172         (expand_constant_movmem_prologue): Likewise.
3173         (expand_constant_setmem_prologue): Likewise.
3174         (decide_alg): Add new argument align_unknown.  Fix algorithm of
3175         strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
3176         (decide_alignment): Update desired alignment according to chosen move
3177         mode.
3178         (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
3179         (ix86_expand_setmem): Likewise.
3180         (ix86_slow_unaligned_access): Implementation of new hook
3181         slow_unaligned_access.
3182         * config/i386/i386.md (strset): Enable half-SSE moves.
3183         * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
3184         (vec_dupv2di): Add expand for vec_dupv2di.
3185
3186 2011-11-14  Dimitrios Apostolou  <jimis@gmx.net>
3187
3188         PR bootstrap/51094
3189         PR middle-end/51116
3190         * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
3191         * varasm.c (default_elf_internal_label): Remove.
3192
3193 2011-11-14  Kai Tietz  <ktietz@redhat.com>
3194
3195         * gcov.c (generate_results): Add missing semicolon and correct indent.
3196
3197 2011-11-14  Ira Rosen  <ira.rosen@linaro.org>
3198
3199         PR bootstrap/51112
3200         * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype.
3201
3202 2011-11-14  Mingjie Xing  <mingjie.xing@gmail.com>
3203
3204         * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes}
3205         to @pxref{Function Attributes}.
3206
3207 2011-11-13  Oleg Endo  <oleg.endo@t-online.de>
3208
3209         PR target/50694
3210         * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
3211         New macros.
3212         (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
3213         taking the default configuration into account.
3214
3215 2011-11-13  Jonathan Wakely  <jwakely.gcc@gmail.com>
3216
3217         * doc/install.texi (Specific): Fix anchor for
3218         x86_64-*-solaris2.1[0-9]*.
3219
3220 2011-11-13  Nathan Sidwell  <nathan@acm.org>
3221
3222         * gcov.c (source_prefix, source_length): New globals.
3223         (flag_relative_only): Likewise.
3224         (print_usage, options, process_args): Update.
3225         (generate_results): Use coverage.name, check
3226         flag_relative_only. Adjust messages.
3227         (find_source): Check source_prefix.
3228         (output_lines): Use coverage.name, adjust messages.
3229         * doc/gcov.texi (Invoking Gcov): Document new options.
3230
3231 2011-11-12  Jason Merrill  <jason@redhat.com>
3232
3233         PR c++/51060
3234         * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
3235         (gimplify_modify_expr): Don't try to simplify it.
3236
3237 2011-11-12  Dimitrios Apostolou  <jimis@gmx.net>
3238
3239         PR bootstrap/51094
3240         * config/elfos.h (STRING_ASM_OP): Define.
3241         * varasm.c (default_elf_asm_output_limited_string): Use it.
3242
3243         PR bootstrap/51094
3244         * gcc/configure.ac: Check for stpcpy declaration.
3245         * system.h: Declare it if not.
3246         * config.in, configure: Regenerate.
3247
3248 2011-11-12  Richard Henderson  <rth@redhat.com>
3249
3250         * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
3251         nonimmediate_operand for the destination.
3252         (fixuns_trunc<SFDF>si2_stfiwx): Likewise.
3253
3254         * builtins.c (expand_builtin_compare_and_swap): If target is const0,
3255         don't pass the target to expand_atomic_compare_and_swap.
3256         (expand_builtin_atomic_compare_exchange): Likewise.
3257
3258         * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
3259         * config/sh/sh.c (sh_init_sync_libfuncs): New.
3260
3261         * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
3262         * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
3263         * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
3264
3265 2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
3266
3267         PR target/45233
3268         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3269         Only expand a symbol ref. into an access when the entity is defined
3270         in the TU.
3271
3272 2011-11-12  Jan Hubicka  <jh@suse.cz>
3273
3274         PR bootstrap/50822
3275         * cgraphunit.c (output_weakrefs): Output really only weakrefs.
3276
3277 2011-11-12  Nathan Sidwell  <nathan@acm.org>
3278
3279         * gcov.c (struct name_map): New.
3280         (names, n_names, a_names): New global vars.
3281         (print_usage): Adjust usage.
3282         (generate_results): Canonicalize main file name.
3283         (release_structures): Adjust.
3284         (name_search, name_sort): New callbacks.
3285         (find_source): Look for and create a canonical name.
3286         (canonicalize_name): New.
3287         (make_gcov_file_name): Reimplement and fix mangling.
3288         (mangle_name): New.
3289         * doc/gcov.texi: Update documentation about path preservation.
3290
3291 2011-11-11  David S. Miller  <davem@davemloft.net>
3292
3293         * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3294         * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3295
3296 2011-11-11  Jakub Jelinek  <jakub@redhat.com>
3297
3298         * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
3299         New prototype.
3300         * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
3301         function.
3302         (ix86_expand_epilogue): Use it.
3303         * config/i386/i386.md (return, simple_return): Call it in the
3304         expanders.
3305
3306         PR tree-optimization/51091
3307         * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
3308         rhs also in the va_list_simple_ptr case.
3309
3310         PR tree-optimization/51058
3311         * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
3312         (vect_schedule_slp): Call it.
3313         * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
3314         don't replace scalar calls with setting of their lhs to zero here.
3315
3316         PR tree-optimization/51074
3317         * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
3318         (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
3319         VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
3320         VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
3321         (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
3322         CONSTRUCTOR operands.
3323         * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
3324         expressions.
3325         * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
3326         to 0 .. 2 * elements - 1.
3327
3328 2011-11-11  Richard Henderson  <rth@redhat.com>
3329
3330         * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
3331         (dump_gimple_omp_atomic_store): Likewise.
3332         * optabs.c (can_atomic_exchange_p): New.
3333         * optabs.h (can_atomic_exchange_p): Declare.
3334         * omp-low.c (expand_omp_atomic_load): Implement.
3335         (expand_omp_atomic_store): Likewise.
3336         (expand_omp_atomic): Update for new arguments to load/store.
3337
3338 2011-11-11  Eric Botcazou  <ebotcazou@adacore.com>
3339
3340         * cprop.c: Adjust outdated comments throughout.
3341         (hash_scan_set): Rename PAT parameter into SET.
3342         (cprop_pavloc): Rename into...
3343         (cprop_avloc): ...this.
3344         (cprop_absaltered): Rename into...
3345         (cprop_kill): ...this.
3346         (alloc_cprop_mem): Adjust for above renaming.
3347         (free_cprop_mem): Likewise.
3348         (compute_cprop_data): Likewise.
3349         (compute_local_properties): Rename TRANSP parameter into KILL and
3350         adjust throughout.  Rework comments.
3351         (try_replace_reg): Fix long line.
3352         (cprop_jump): Likewise.
3353         (constprop_register): Fix prototype and take INSN last.
3354         (cprop_insn): Adjust calls to above function.  Fix long lines.
3355         (bypass_block): Likewise.
3356         (one_cprop_pass): Likewise.
3357
3358 2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
3359
3360         * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
3361         (ELF_STRING_LIMIT): Rename from STRING_LIMIT.
3362
3363 2011-11-11  Jason Merrill  <jason@redhat.com>
3364
3365         * varasm.c (default_elf_asm_output_limited_string): #ifdef
3366         ELF_ASCII_ESCAPES.
3367         (default_elf_asm_output_ascii): Likewise.
3368
3369 2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
3370
3371         PR target/50762
3372         * config/i386/constraints.md (j): New address constraint.
3373         * config/i386/predicates.md (lea_address_operand): Redefine as
3374         special predicate.
3375         * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
3376         (*lea_4_zext): Ditto.
3377
3378 2011-11-11  David S. Miller  <davem@davemloft.net>
3379
3380         Revert
3381         2011-11-05  David S. Miller  <davem@davemloft.net>
3382
3383         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
3384         (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
3385         (*zero_extend_v8qi_<P:mode>_insn,
3386         *zero_extend_v4hi_<P:mode>_insn): New insns.
3387         * config/sparc/sparc.c (vector_init_move_words,
3388         vector_init_prepare_elts, sparc_expand_vector_init_vis2,
3389         sparc_expand_vector_init_vis1): New functions.
3390         (vector_init_bshuffle): Rewrite to handle more cases and make use
3391         of locs[] array prepared by vector_init_prepare_elts.
3392         (vector_init_fpmerge, vector_init_faligndata): Delete.
3393         (sparc_expand_vector_init): Rewrite using new infrastructure.
3394
3395 2011-11-11  Jakub Jelinek  <jakub@redhat.com>
3396
3397         * opts-common.c (generate_canonical_option): Free opt_text
3398         it it has been allocated here and not stored anywhere.
3399
3400         * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
3401         vector.
3402         (vect_create_new_slp_node): Don't allocate node before checking stmt
3403         type.
3404         (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
3405         free def_stmts vectors and additionally free oprnd_info.
3406         (vect_build_slp_tree): Adjust callers.  Call it even if
3407         stop_recursion.  If vect_create_new_slp_node or
3408         vect_build_slp_tree fails, properly handle freeing memory.
3409         If it succeeded, clear def_stmts in oprnd_info.
3410
3411 2011-11-11  Dimitrios Apostolou  <jimis@gmx.net>
3412
3413         * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on
3414         multiple lines for readability.
3415         * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare.
3416         (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf.
3417         * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data,
3418         dw2_asm_data_uleb128, dw2_asm_delta_uleb128,
3419         dw2_asm_delta_sleb128): Convert fprintf calls to the new functions.
3420         * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of
3421         fprintf.
3422         * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions
3423         serving as fast replacements for fprintf integer to string conversions.
3424         (sprint_ul_rev): Internal helper for the above.
3425         (output_addr_const) <CONST_INT>: Don't use fprintf.
3426         * varasm.c: Fix some whitespace inconsistencies.
3427         (default_elf_asm_output_limited_string): New.
3428         (default_elf_asm_output_ascii): Likewise.
3429         (default_elf_internal_label): Likewise.
3430         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and
3431         stpcpy instead of sprintf.
3432         (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
3433         (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and
3434         STRING_LIMIT macros.
3435         (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that
3436         provide the same functionality.
3437         * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf.
3438
3439 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
3440
3441         * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
3442
3443 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
3444
3445         PR middle-end/51038
3446         * builtins.c (expand_builtin_atomic_clear): New.  Expand atomic_clear.
3447         (expand_builtin_atomic_test_and_set): New.  Expand atomic test_and_set.
3448         (expand_builtin): Add cases for test_and_set and clear.
3449         * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
3450         (BUILT_IN_ATOMIC_CLEAR): New.
3451
3452 2011-11-10  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
3453