OSDN Git Service

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