OSDN Git Service

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