OSDN Git Service

2011-12-23 Tristan Gingold <gingold@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-12-23  Tristan Gingold  <gingold@adacore.com>
2
3         * config/vms/vms-crtlmap.map (log10): Fix typo.
4
5 2011-12-23  Tristan Gingold  <gingold@adacore.com>
6
7         * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define.
8
9 2011-12-22  Bin Cheng  <bin.cheng@arm.com>
10         Richard Guenther  <rguenther@suse.de>
11
12         PR tree-optimization/43491
13         * tree-ssa-pre.c (eliminate): Don't replace global register
14         variable when it is the RHS of a single assign.
15
16 2011-12-22  Joey Ye  <joey.ye@arm.com>
17
18         * toplev.c (process_options): Fix typo.
19
20 2011-12-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21
22         PR middle-end/51252
23         * config/pa/pa.c (pa_som_tm_clone_table_section): New function.
24         (som_tm_clone_table_section): Declare.
25         (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace.
26         (pa_som_asm_init_sections): Init som_tm_clone_table_section.
27         * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
28
29 2011-12-22  Richard Sandiford  <rdsandiford@googlemail.com>
30
31         * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook.
32         * doc/tm.texi: Regenerate.
33         * target.def (prepare_pch_save): New hook.
34         * c-family/c-pch.c (c_common_write_pch): Call it.
35         * config/mips/mips.c (was_mips16_pch_p): Delete.
36         (mips_set_mips16_mode): Don't refer to was_mips16_pch_p.
37         (mips_prepare_pch_save): New function.
38         (TARGET_PREPARE_PCH_SAVE): Define.
39
40 2011-12-22  Aldy Hernandez  <aldyh@redhat.com>
41
42         PR middle-end/51212
43         * opts.c (finish_options): Call sorry on -fgnu-tm and
44         -fnon-call-exceptions combination.
45
46 2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
47
48         * doc/invoke.texi (C++ Dialect Options): Add missing options and
49         move -Wzero-as-null-pointer-constant to ...
50         (Warning Options): ... here.
51
52 2011-12-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
53
54         PR target/47643
55         * doc/invoke.texi (i386 and x86-64 Options): Fix description of
56         -mtune without -march.
57
58 2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
59
60         PR target/51643
61         * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
62         change.
63
64 2011-12-22  Tristan Gingold  <gingold@adacore.com>
65
66         * config/ia64/ia64.c (ia64_promote_function_mode): Remove.
67         (TARGET_PROMOTE_FUNCTION_MODE): Remove.
68         (ia64_function_value): Call promote_function_mode instead of
69         ia64_promote_function_mode.
70         * config/ia64/vms.h (PROMOTE_MODE): Define.
71         (TARGET_PROMOTE_FUNCTION_MODE): Define.
72
73 2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
74
75         PR target/27468
76         * common/config/alpha/alpha-common.c (alpha_option_optimization_table):
77         Enable flag_ree at -O2 or higher.
78
79 2011-12-22  Richard Guenther  <rguenther@suse.de>
80
81         PR lto/51650
82         * lto.c (uniquify_nodes): Register TYPE_DECLs with the
83         debuginfo machinery.
84
85 2011-12-22  Bernd Schmidt  <bernds@codesourcery.com>
86
87         * tree-pass.h (pass_reload): Declare.
88         * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots):
89         New global variables, moved out of ira.
90         (do_reload): New static function, split off from the second half
91         of ...
92         (ira): ... here.
93         (gate_ira): Remove.
94         (pass_ira): Use TV_IRA, set gate to NULL, and set flags to
95         TODO_dump_func.
96         (rest_of_handle_reload): New static function.
97         (pass_reload): New.
98
99 2011-12-22  Uros Bizjak  <ubizjak@gmail.com>
100
101         * common/config/i386/i386-common.c (ix86_option_optimization_table):
102         Move OPT_free processing from ...
103         * config/i386/i386.c (ix86_option_override_internal):  ... here.
104
105 2011-12-21  Richard Earnshaw  <rearnsha@arm.com>
106
107         PR target/51643
108         * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
109         weak function on bare-metal EABI targets.
110
111 2011-12-21  Jonathan Wakely  <jwakely.gcc@gmail.com>
112             Jim Avera  <james_avera@yahoo.com>
113
114         * doc/extend.texi (__builtin_expect): Improve example.
115
116 2011-12-21  Uros Bizjak  <ubizjak@gmail.com>
117
118         * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree
119         also for 32bit targets.
120
121 2011-12-21  Richard Henderson  <rth@redhat.com>
122
123         PR target/51552
124         * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code...
125         (scan_trace): ... here.
126
127 2011-12-21  Jason Merrill  <jason@redhat.com>
128
129         * doc/standards.texi (C++ language): Update for C++11.
130
131 2011-12-21  Jakub Jelinek  <jakub@redhat.com>
132
133         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize
134         *op0 and *op1 to NULL_TREE first to avoid warnings.
135         * calls.c (initialize_argument_information): Initialize base to avoid
136         warnings.
137
138         PR middle-end/51644
139         PR middle-end/51647
140         * tree-eh.c (decide_copy_try_finally): At -O0, return true
141         even when ndests is not 1, if there are only gimple_clobber_p
142         (or debug) stmts in the finally sequence.
143         * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p
144         stmts.
145
146 2011-12-21  Aldy Hernandez  <aldyh@redhat.com>
147
148         PR middle-end/51472
149         * trans-mem.c (tm_log_add): Use create_tmp_var_reg.
150
151 2011-12-21  Martin Jambor  <mjambor@suse.cz>
152
153         * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
154         (rewrite_update_enter_block): Likewise.
155         (dump_update_ssa): Likewise.
156         (update_ssa): Likewise but also dump a newline at the beginning.
157
158 2011-12-21  Enkovich Ilya  <ilya.enkovich@intel.com>
159
160         PR target/50038
161         * implicit-zee.c: Delete.
162         * ree.c: New file.
163         * Makefile.in: Replace implicit-zee.c with ree.c.
164         * config/i386/i386.c (ix86_option_override_internal): Rename
165         flag_zee to flag_ree.
166         * common.opt (fzee): Ignored.
167         (free): New.
168         * passes.c (init_optimization_passes): Replace pass_implicit_zee
169         with pass_ree.
170         * tree-pass.h (pass_implicit_zee): Delete.
171         (pass_ree): New.
172         * timevar.def (TV_ZEE): Delete.
173         (TV_REE): New.
174         * doc/invoke.texi: Add -free description.
175
176 2011-12-21  Tristan Gingold  <gingold@adacore.com>
177
178         * config/vms/vms-protos.h (vms_function_section): New prototype.
179         * config/vms/vms.c (vms_function_section): New function.
180         * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define.
181
182 2011-12-21  Richard Guenther  <rguenther@suse.de>
183
184         PR lto/41159
185         * tree-outof-ssa.c (insert_value_copy_on_edge): Use the
186         mode of the pseudo as destination mode.  Only assert that
187         is equal to the promoted mode of the decl if it is a REG.
188
189 2011-12-21  Tristan Gingold  <gingold@adacore.com>
190
191         * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define.
192
193 2011-12-20  Richard Henderson  <rth@redhat.com>
194
195         * config/ia64/ia64.c (MAX_VECT_LEN): New.
196         (struct expand_vec_perm_d): New.
197         (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
198         (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1.
199         (expand_vselect, expand_vselect_vconcat): New.
200         (expand_vec_perm_identity, expand_vec_perm_shrp): New.
201         (expand_vec_perm_1, expand_vec_perm_broadcast): New.
202         (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New.
203         (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New.
204         (ia64_vectorize_vec_perm_const_ok): New.
205         (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New.
206         * config/ia64/ia64-protos.h: Update.
207         * config/ia64/vect.md (VEC): New mode iterator.
208         (vecint): New mode attribute.
209         (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'.
210         (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise.
211         (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise.
212         (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise.
213         (mix1_even, mix1_odd, mux1_alt): Likewise.
214         (mux1_brcst_qi): Remove '*' from name.
215         (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove.
216         (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove.
217         (vec_extract_evenv2si, vec_extract_oddv2si): Remove.
218         (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
219         (vec_extract_evenodd_helper): Remove.
220         (vec_setv2sf): Use ia64_expand_vec_setv2sf.
221         (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd.
222         (vec_pack_trunc_v2si): Likewise.
223         (vec_perm_const<VEC>): New.
224
225 2011-12-20  Richard Henderson  <rth@redhat.com>
226
227         * tree-vect-generic.c (expand_vector_operations_1): Correct tests
228         for vector types -- use the type not the mode.  Fix optab selection
229         for vector shifts by a scalar.  Handle over-large integer modes
230         like BLKmode.
231
232 2011-12-20  Richard Henderson  <rth@redhat.com>
233
234         * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform
235         post-reload splitting.
236
237         * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2.
238         * config/arm/arm.c (arm_select_cc_mode): Use it.
239
240 2011-12-20  Richard Sandiford  <rdsandiford@googlemail.com>
241
242         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
243         handling of signedness differences to integer types.  Only build
244         a new optype if type1 isn't correct.
245
246 2011-12-20  Vladimir Makarov  <vmakarov@redhat.com>
247
248         PR target/49865
249         * ira-costs.c (find_costs_and_classes): Prefer registers even
250           if the memory cost is the same.
251
252 2011-12-20  Joseph Myers  <joseph@codesourcery.com>
253
254         * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)
255         (finish_struct): Refer to C11 in comments.  Use flag_isoc11.
256         * c-parser.c (c_parser_static_assert_declaration)
257         (c_parser_static_assert_declaration_no_semi, c_parser_declspecs)
258         (c_parser_alignas_specifier, c_parser_alignof_expression): Refer
259         to C11 in comments.  Use flag_isoc11.
260         * c-typeck.c (comptypes_check_different_types): Refer to C11 in
261         comment.
262         * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x.
263         * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference
264         to -std=c1x and -std=gnu1x.
265         * doc/extend.texi (Inline, Alternate Keywords, Other Builtins)
266         (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11
267         instead of -std=c1x and C1X.
268         * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in
269         preference to -std=c1x.
270         (-std=gnu11): Document in preference to -std=gnu1x.
271         * doc/standards.texi: Document C11 instead of C1X.  Document C11
272         as actual standard.  Document headers required from freestanding
273         C11 implementations.
274         * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >=
275         201112L for C11.  Update comments to refer to C11.
276
277 2011-12-20  Andreas Schwab  <schwab@linux-m68k.org>
278
279         * configure: Regenerate.
280
281 2011-12-20  Bernd Schmidt  <bernds@codesourcery.com>
282
283         PR middle-end/51200
284         * expr.c (store_field): Avoid a direct store if the mode is larger
285         than the size of the bit field.
286         * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
287         treat non-volatile bit fields like volatile ones.
288         * toplev.c (process_options): Disallow combination of
289         -fstrict-volatile-bitfields and ABI versions less than 2.
290         * config/arm/arm.c (arm_option_override): Don't enable
291         flag_strict_volatile_bitfields if the ABI version is less than 2.
292         * config/h8300/h8300.c (h8300_option_override): Likewise.
293         * config/rx/rx.c (rx_option_override): Likewise.
294         * config/m32c/m32c.c (m32c_option_override): Likewise.
295         * config/sh/sh.c (sh_option_override): Likewise.
296
297 2011-12-20  Richard Guenther  <rguenther@suse.de>
298
299         PR lto/46796
300         * dwarf2out.c (modified_type_die): When the type variant
301         chain is corrupt use the types name, if available, instead
302         of __unknown__.
303
304 2011-12-20  Tristan Gingold  <gingold@adacore.com>
305
306         * config/alpha/alpha.c (alpha_start_function): Adjust condition to
307         create VMS trampoline entry point.
308
309 2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
310
311         PR rtl-optimization/42839
312         * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND
313         optimization if the source register is already extended.
314
315 2011-12-19  Richard Sandiford  <rdsandiford@googlemail.com>
316
317         * lower-subreg.c (can_decompose_p): Check every word of a hard
318         register.
319
320 2011-12-19  Sandra Loosemore  <sandra@codesourcery.com>
321             Tom de Vries <tom@codesourcery.com>
322
323         PR rtl-opt/50380
324         * cse.c (find_comparison_args): Detect fixed point and
325         bail early.
326
327 2011-12-19  Aldy Hernandez  <aldyh@redhat.com>
328
329         PR middle-end/51411
330         * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK.
331
332 2011-12-19  Quentin Neill  <quentin.neill@amd.com>
333
334         PR target/48743
335         * config/i386/driver-i386.c (host_detect_local_cpu): Also check
336         family to distinguish PROCESSOR_ATHLON.
337
338 2011-12-19  Richard Guenther  <rguenther@suse.de>
339
340         PR lto/51573
341         * streamer-hooks.h (struct streamer_hooks): Add second
342         ref_p parameter to write_tree.
343         (stream_write_tree): Adjust.
344         (stream_write_tree_shallow_non_ref): New define.
345         * lto-streamer.h (lto_output_tree): Adjust.
346         * lto-streamer-out.c (lto_output_tree): Likewise.
347         * tree-streamer-out.c (streamer_write_chain): Only
348         force the immediate tree to be streamed as non-reference.
349
350 2011-12-19  Martin Jambor  <mjambor@suse.cz>
351
352         PR tree-optimization/51583
353         * tree-sra.c (load_assign_lhs_subreplacements): Call
354         force_gimple_operand_gsi when necessary also in case of no
355         corresponding replacement on the RHS.
356
357 2011-12-19  Jakub Jelinek  <jakub@redhat.com>
358
359         * gimple.h (gimplify_seq_add_stmt): Rename to...
360         (gimple_seq_add_stmt_without_update): ... this.
361         * gimplify.c (gimplify_seq_add_stmt): Rename to...
362         (gimple_seq_add_stmt_without_update): ... this.
363         (gimplify_seq_add_stmt): New inline wrapper for it.
364         * tree-vect-patterns.c (append_pattern_def_seq): Use
365         gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.
366
367         PR tree-optimization/51596
368         * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges
369         when needed.
370
371         PR middle-end/51590
372         PR tree-optimization/51606
373         * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq):
374         New inline functions.
375         (vect_recog_over_widening_pattern,
376         vect_recog_vector_vector_shift_pattern,
377         vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern,
378         adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them.
379
380 2011-12-19  Richard Guenther  <rguenther@suse.de>
381
382         PR lto/51572
383         * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL
384         from TYPE_FIELDS.
385         (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS.
386         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do
387         not stream TREE_CHAIN.
388         (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
389         using streamer_write_chain.
390         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
391         Do not stream TREE_CHAIN.
392         (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS
393         using streamer_read_chain.
394         * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs.
395         * gimple.c (gimple_canonical_types_compatible_p): Properly
396         handle trailing non-FIELD_DECLs in TYPE_FIELDS.
397
398 2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
399
400         * configure: Regenerate.
401
402 2011-12-19  Bernd Schmidt  <bernds@codesourcery.com>
403
404         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for
405         partial integer modes.
406
407 2011-12-19  Andreas Schwab  <schwab@linux-m68k.org>
408
409         PR target/51532
410         * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define.
411         * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS.
412         * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 ||
413         TARGET_68040).
414
415 2011-12-18  Anatoly Sokolov  <aesok@post.ru>
416
417         * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
418         LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP,
419         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
420         * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
421         (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg,
422         ia64_legitimate_address_disp, ia64_legitimate_address_p): New
423         functions.
424
425 2011-12-17  Tom de Vries  <tom@codesourcery.com>
426
427         PR tree-optimization/51491
428         * tree-ssa-ccp.c (insert_clobber_before_stack_restore)
429         (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function.
430         (ccp_fold_stmt): Use insert_clobbers_for_var after a successful
431         fold_builtin_alloca_with_align.
432         (ccp_visit_stmt): Calculate and free dominator info.
433
434 2011-12-16  Eric Botcazou  <ebotcazou@adacore.com>
435
436         * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
437         (frame_blockage): New expander.
438         (frame_blockage<P:mode>): New instruction.
439         * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
440         instructions establishing the frame isn't atomic, emit frame blockage.
441
442 2011-12-16  Tristan Gingold  <gingold@adacore.com>
443
444         * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define.
445
446 2011-12-16  Tristan Gingold  <gingold@adacore.com>
447
448         * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias.
449         (alpha_write_one_linkage): Use assemble_name to emit linkage name.
450
451 2011-12-16  Tristan Gingold  <gingold@adacore.com>
452
453         * config/vms/t-vms (vms.o, vms-c.o): Force output filename.
454
455 2011-12-16  Tristan Gingold  <gingold@adacore.com>
456
457         * config/vms/vms.c (VMS_CRTL_GLOBAL): Define.
458         (vms_patch_builtins): Handle.
459         * config/vms/vms-crtlmap.map: Add an entry for environ.
460
461 2011-12-16  Jakub Jelinek  <jakub@redhat.com>
462
463         PR debug/51557
464         * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes
465         other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND.
466
467         PR tree-optimization/51576
468         * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt
469         even if fold_stmt didn't change anything.
470
471 2011-12-16  Richard Guenther  <rguenther@suse.de>
472
473         PR lto/51572
474         * dwarf2out.c (gen_type_die_with_usage): Use the context of
475         the TYPE_DECL as well if it is file-scope.
476
477 2011-12-15  DJ Delorie  <dj@redhat.com>
478
479         * config/rl78/rl78.md (return): Rename to rl78_return.
480         * config/rl78/rl78.c (rl78_expand_epilogue): Use new name.
481         (rl78_expand_eh_epilogue): Use new name.
482         (rl78_calculate_death_notes): Likewise.
483
484 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
485
486         * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt
487         field, add pattern_def_seq.
488         (STMT_VINFO_PATTERN_DEF_STMT): Remove.
489         (STMT_VINFO_PATTERN_DEF_SEQ): Define.
490         (NUM_PATTERNS): Bump to 10.
491         * tree-vect-loop.c (vect_determine_vectorization_factor,
492         vect_transform_loop): Adjust for pattern def changing from a single
493         gimple stmt to gimple_seq.
494         * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info,
495         free_stmt_vec_info): Likewise.
496         * tree-vect-patterns.c (vect_recog_over_widening_pattern,
497         vect_recog_vector_vector_shift_pattern,
498         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
499         adjust_bool_pattern, vect_mark_pattern_stmts): Likewise.
500         (vect_recog_sdivmod_pow2_pattern): New function.
501         (vect_vect_recog_func_ptrs): Add it.
502
503         * config/i386/sse.md (vcond<V_256:mode><VI_256:mode>,
504         vcond<V_128:mode><VI124_128:mode>, vcond<VI8F_128:mode>v2di):
505         Use general_operand instead of nonimmediate_operand for
506         operand 5 and no predicate for operands 1 and 2.
507         * config/i386/i386.c (ix86_expand_int_vcond): Optimize
508         x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic
509         resp. logical shift.
510
511 2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
512
513         * config/avr/avr-protos.h (print_operand): Remove.
514         (print_operand_address): Remove.
515         * config/avr/avr.h (PRINT_OPERAND): Remove.
516         (PRINT_OPERAND_ADDRESS): Remove.
517         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
518         * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define.
519         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
520         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
521         (print_operand_address): Rename to...
522         (avr_print_operand_address): ...this and make static.
523         (print_operand): Rename to...
524         (avr_print_operand): ...this and make static.
525         (avr_print_operand_punct_valid_p): New static function.
526
527 2011-12-15  Andreas Tobler  <andreast@fgznet.ch>
528
529         * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
530
531 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
532
533         PR c/51360
534         * c-parser.c (c_parser_omp_clause_num_threads,
535         c_parser_omp_clause_schedule): Call mark_exp_read.
536
537 2011-12-15  Romain Geissler  <romain.geissler@gmail.com>
538
539         * builtins.def (BUILT_IN_STPNCPY_CHK): New definition.
540         * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning):
541         Add BUILT_IN_STPNCPY_CHK case.
542         * gimple-fold.c (gimple_fold_builtin): Likewise.
543         * tree-object-size.c (pass_through_call): Likewise.
544         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
545         call_may_clobber_ref_p_1): Likewise.
546         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
547         find_func_clobbers): Likewise.
548         * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk
549         * builtins.c (fold_builtin_strncpy_chk): Likewise.
550         Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is
551         ignored.
552
553 2011-12-15  Richard Guenther  <rguenther@suse.de>
554
555         PR lto/51567
556         * gimple.c (compare_type_names_p): Also compare the TREE_CODE.
557         (iterative_hash_name): Also hash the TREE_CODE.
558         (gimple_types_compatible_p_1): For types with a TYPE_DECL
559         name and a type DECL_CONTEXT recurse to that type.
560         (iterative_hash_gimple_type): Likewise.
561
562 2011-12-15  Iain Sandoe  <iains@gcc.gnu.org>
563
564         * config/rs6000/rs6000.c  (rs6000_emit_prologue): Move update of
565         VRSave mask to save_world() when that is in use.
566
567 2011-12-15  Richard Guenther  <rguenther@suse.de>
568
569         * lto-wrapper.c (run_gcc): In non-parallel mode remove
570         ltrans inputs immediately after processing them.  In parallel
571         mode truncate the ltrans inputs in the make rule that processes
572         them if temporary files are not to be preserved.
573
574 2011-12-15  Anatoly Sokolov  <aesok@post.ru>
575
576         * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
577         * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost):
578         New functions.
579         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
580
581 2011-12-15  Richard Guenther  <rguenther@suse.de>
582
583         PR lto/51564
584         * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY,
585         STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag
586         uses documentation.
587         (TREE_ASM_WRITTEN): Update documentation to mention its use
588         on TYPE_DECLs from debug info generation.
589         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
590         TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to
591         all other types.
592
593 2011-12-15  Georg-Johann Lay  <avr@gjlay.de>
594
595         PR target/51050
596         * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp.
597         (avr_prologue_setup_frame): Ditto.
598
599 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
600
601         PR debug/51517
602         * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
603         !DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
604
605 2012-12-15  Richard Guenther  <rguenther@suse.de>
606
607         Revert
608         PR lto/48437
609         * lto-streamer-out.c (tree_is_indexable): Exclude block-local
610         extern declarations.
611
612         PR lto/48508
613         PR lto/48437
614         * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL
615         VAR_DECLs and FUNCTION_DECLs locally.
616
617 2011-12-14  Richard Henderson  <rth@redhat.com>
618
619         * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable.
620         (*compare_negsi_si, *compare_addsi2_op0): Likewise.
621         (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise.
622         (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise.
623
624 2011-12-14  Richard Guenther  <rguenther@suse.de>
625
626         * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
627         propagating all kinds of constants.
628
629 2011-12-14  Richard Guenther  <rguenther@suse.de>
630
631         PR lto/51497
632         * lto-streamer-in.c (lto_read_body): Fixup local types
633         TYPE_CANONICAL and variant chain.
634
635 2011-12-14  Richard Guenther  <rguenther@suse.de>
636
637         * tree.c (free_lang_data_in_type): Do not clear fields
638         dependent on debuginfo level setting.
639         (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN.
640         * tree.h (TYPE_STUB_DECL): Properly check that we access a type.
641
642 2011-12-14  Georg-Johann Lay  <avr@gjlay.de>
643
644         PR target/50931
645         * config/avr/avr.md (mulpsi3): New expander.
646         (*umulqihipsi3, *umulhiqipsi3): New insns.
647         (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
648         (mulsqipsi3, *mulpsi3): New insn-and-splits.
649         (ashlpsi3): Turn to expander.  Move insn code to...
650         (*ashlpsi3): ...this new insn.
651
652 2011-12-14  Richard Guenther  <rguenther@suse.de>
653
654         * tree-cfg.c (replace_uses_by): Only mark blocks altered
655         that will make a difference.  Only recompute ADDR_EXPR
656         invariantness if it could possibly have changed.  Do so
657         before folding the statement.
658
659 2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>
660
661         * lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
662         * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
663         * lto-streamer-in.c (lto_read_body): Likewise.
664         (lto_input_toplevel_asms): Likewise.
665         * lto-section-in.c (lto_create_simple_input_block): Likewise.
666         * ipa-inline-analysis.c (inline_read_section): Likewise.
667         * ipa-prop.c (ipa_prop_read_section): Likewise.
668
669         * df.h (DF_NOTE): Fix typo in comment.
670
671 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
672
673         * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and
674         DECL_LANG_SPECIFIC.
675
676 2011-12-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
677
678         * regmove.c (fixup_match_2): Only access call_used_regs with hard regs.
679
680 2011-12-13  Andrew Pinski  <apinski@cavium.com>
681             Adam Nemet  <anemet@caviumnetworks.com>
682
683         * config/mips/mips-cpus.def: Add Octeon2.
684         * config/mips/mips-tables.opt: Regenerate.
685         * config/mips/mips.md (define_attr "cpu"): Add Octeon2.
686         * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2.
687         * config/mips/octeon.md (octeon_arith): Add Octeon2.
688         (octeon_condmove): Likewise.
689         (octeon_load): Rename to ..
690         (octeon_load_o1): this.
691         (octeon_load_o2): New reserve.
692         (octeon_cop_o2): New reserve.
693         (octeon_store):  Match Octeon2 also.
694         (octeon_brj): Rename to ..
695         (octeon_brj_o1): this.
696         (octeon_brj_o2): New reserve.
697         (octeon_imul3): Rename to ...
698         (octeon_imul3_o1): this.
699         (octeon_imul3_o2): New reserve.
700         (octeon_imul): Rename to ...
701         (octeon_imul_o1): this.
702         (octeon_imul_o2): New reserve.
703         (octeon_mfhilo): Rename to ...
704         (octeon_mfhilo_o1): This.
705         (octeon_mfhilo_o2): New reserve.
706         (octeon_imadd): Rename to ...
707         (octeon_imadd_o1): this.
708         (octeon_imadd_o2): New reserve.
709         (octeon_idiv): Rename to ..
710         (octeon_idiv_o1): This.
711         (octeon_idiv_o2_si): New reserve.
712         (octeon_idiv_o2_di): Likewise.
713         (octeon_unknown): Match Octeon2 also.
714         * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data.
715         (mips_issue_rate): Octeon2 can issue 2 at a time.
716         * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also.
717         (TARGET_OCTEON2): New define.
718         (TUNE_OCTEON): Match Octeon2 also.
719
720 2011-12-13  Richard Henderson  <rth@redhat.com>
721
722         * config/sparc/tso.h: New file.
723         * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it.
724         * config/sparc/sparc.c (sparc_option_override): Honor
725         SUBTARGET_DEFAULT_MEMORY_MODEL.
726         * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New.
727
728 2011-12-13  Aldy Hernandez  <aldyh@redhat.com>
729
730         PR middle-end/51443
731         * trans-mem.c (struct diagnose_tm): Remove saw_unsafe.
732         (diagnose_tm_1): Same.
733         (ipa_tm_execute): Do not test tm_may_enter_irr before we set it.
734         (ipa_tm_scan_irr_function): Return gracefully when no
735         DECL_STRUCT_FUNCTION.
736         (ipa_tm_scan_irr_block): Believe the user on TM attributes.
737
738 2011-12-13  Martin Jambor  <mjambor@suse.cz>
739
740         PR middle-end/50628
741         * tree-sra.c (propagate_subaccesses_across_link): Do not propagate
742         sub-accesses of scalar accesses.
743
744 2011-12-13  Martin Jambor  <mjambor@suse.cz>
745
746         PR tree-optimization/51362
747         * ipa-cp.c (estimate_local_effects): When estimated size of a
748         specialized clone is zero, bump it to one.
749
750 2011-12-13  Richard Guenther  <rguenther@suse.de>
751
752         PR lto/48354
753         * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE.
754         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
755         Stream DECL_ORIGINAL_TYPE.
756         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers):
757         Likewise.
758
759 2011-12-13  Jakub Jelinek  <jakub@redhat.com>
760
761         Revert
762         2011-12-12  Jakub Jelinek  <jakub@redhat.com>
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-13  Jakub Jelinek  <jakub@redhat.com>
770             Michael Matz  <matz@suse.de>
771
772         PR tree-optimization/51117
773         * tree-eh.c (sink_clobbers): New function.
774         (execute_lower_eh_dispatch): Call it for BBs ending with
775         internally throwing RESX.
776         * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only
777         at the first real instruction.
778
779 2011-12-13  Tristan Gingold  <gingold@adacore.com>
780
781         * final.c (final_scan_insn): Guard the call to begin_epilogue
782         debug hook.
783
784 2011-12-13  Tristan Gingold  <gingold@adacore.com>
785
786         * vmsdbgout.c (vmsdbgout_write_source_line): New function.
787         (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line.
788         (vmsdbgout_begin_epilogue): Likewise.
789         (vmsdbgout_end_epilogue): Likewise.
790         (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line.
791
792 2011-12-13  Richard Guenther  <rguenther@suse.de>
793
794         PR middle-end/51481
795         * tree-cfg.c (replace_uses_by): Pass proper arguments to
796         maybe_clean_or_replace_eh_stmt.
797
798 2011-12-13  Richard Guenther  <rguenther@suse.de>
799
800         PR tree-optimization/51519
801         * ipa-inline.c (edge_badness): Use edge growth in non-guessed
802         branch probability case as well.
803
804 2011-12-13  Revital Eres  <revital.eres@linaro.org>
805
806         * modulo-sched.c (mark_loop_unsched): Free bbs.
807
808 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
809
810         PR rtl-optimization/51495
811         * function.c (thread_prologue_and_epilogue_insns): Don't add
812         to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges
813         from basic blocks not needing prologue.
814
815         PR tree-optimization/51481
816         * gimple-fold.c (gimple_fold_call): Call
817         maybe_clean_or_replace_eh_stmt.  Avoid optimization if stmt has EH
818         edges, but gimple_fold_builtin result can't throw.
819
820 2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>
821
822         PR rtl-optimization/21617
823         * ira-color.c (bucket_allocno_compare_func): Don't compare
824         allocno classes.  Compare number of hard registers needed.
825
826 2011-12-12  Eric Botcazou  <ebotcazou@adacore.com>
827
828         PR tree-optimization/50569
829         * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
830         in the expression of MODEL instead of just the last one.
831
832 2011-12-12  Jakub Jelinek  <jakub@redhat.com>
833
834         PR middle-end/51510
835         * calls.c (internal_arg_pointer_based_exp_scan): Don't use
836         VEC_safe_grow_cleared if idx is smaller than VEC_length.
837
838 2011-12-12  Richard Sandiford  <richard.sandiford@linaro.org>
839
840         PR middle-end/50873
841         * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg
842         instead of force_reg.  Do nothing if the address is already a
843         non-virtual pseudo register.
844
845 2011-12-12  Torvald Riegel  <triegel@redhat.com>
846
847         * gimplify.c (voidify_wrapper_expr): Add default handling for
848         outermost wrapper.
849
850 2011-12-12  Torvald Riegel  <triegel@redhat.com>
851
852         * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction
853         commits as equal.
854
855 2011-12-12  Iain Sandoe  <iains@gcc.gnu.org>
856
857         * config/darwin-sections.def (zobj_const_data_section): Fix over-
858         length section name.
859
860 2011-12-11  Richard Henderson  <rth@redhat.com>
861
862         * config/rs6000/rs6000.c (rs6000_expand_interleave): Use
863         BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN.
864
865 2011-12-11  Jakub Jelinek  <jakub@redhat.com>
866
867         PR tree-optimization/51485
868         * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
869         DRs in call stmts.
870
871 2011-12-11  Patrick Marlier  <patrick.marlier@gmail.com>
872
873         * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge.
874
875 2011-12-10  Richard Henderson  <rth@redhat.com>
876
877         * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as
878         vec_select + vec_concat.
879         (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb,
880         altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise.
881         (vec_perm_constv16qi): New.
882         (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode,
883         vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi,
884         vec_interleave_high<VI>, vec_interleave_low<VI>): Remove.
885         * config/rs6000/paired.md (paired_merge00): Rewrite pattern as
886         vec_select + vec_concat.
887         (paired_merge10, paired_merge01, paired_merge11): Likewise.
888         (vec_perm_constv2sf): New.
889         (vec_interleave_highv2sf, vec_interleave_lowv2sf,
890         vec_extract_evenv2sf, vec_extract_oddv2sf): Remove.
891         * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as
892         vec_select + vec_concat.
893         (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New.
894         (vec_perm_constv2si): New.
895         * config/rs6000/vector.md (vec_interleave_highv4sf,
896         vec_interleave_lowv4sf, vec_interleave_high<VEC_64>,
897         vec_interleave_low<VEC_64>): Remove.
898         * config/rs6000/vsx.md (VS_double): New mode attribute.
899         (UNSPEC_VSX_XXPERMDI): Remove.
900         (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat.
901         (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise.
902         (vsx_xxpermdi_<VSX_L>): Change to expander.
903         (vec_perm_const<VSX_D>): New.
904         (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New.
905         * config/rs6000/predicates.md (const_0_to_1_operand): New.
906         (const_2_to_3_operand): New.
907         * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New.
908         (altivec_expand_vec_perm_const): New.
909         (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New.
910         (rs6000_vectorize_vec_perm_const_ok): New.
911         (rs6000_do_expand_vec_perm): New.
912         (rs6000_expand_extract_even, rs6000_expand_interleave): New.
913         * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes.
914         * config/rs6000/rs6000-modes.def: Add double-wide vector modes.
915         * config/rs6000/rs6000-protos.h: Update.
916
917 2011-12-10  Richard Henderson  <rth@redhat.com>
918
919         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a
920         CONST_INT to expand_vec_perm as the selector.
921         * optabs.c (expand_vec_perm): Assert the selector is of a proper mode.
922
923 2011-12-10  Richard Henderson  <rth@redhat.com>
924
925         * genmodes.c (struct mode_data): Remove wider_2x member.
926         (blank_mode): Adjust initializer.
927         (calc_wider_mode): Use XALLOCAVEC.
928         (emit_move_wider): Select double-width same-element vectors for
929         2xwider vectors.
930         * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
931         * config/i386/i386.c (doublesize_vector_mode): Remove.
932         (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
933
934 2011-12-10  Joern Rennecke  <joern.rennecke@embecosm.com>
935
936         * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
937         (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
938         (USE_STORE_POST_DECREMENT): Likewise.
939
940         * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro,
941         broken out of ..
942         (INCOMING_RETURN_ADDR_RTX) .. this.  Use EPIPHANY_RETURN_REGNO.
943         (DWARF_FRAME_RETURN_COLUMN): New macro.
944
945         * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare.
946         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
947         Split "timer" value into "timer0" and "timer1".
948         Handle page_miss, message and wand.  Don't handle static_flag.
949         Adjust warning text.
950         (epiphany_start_function): New function.
951         (epiphany_compute_function_type): Split "timer" value into "timer0"
952         and "timer1".  Handle page_miss, message and wand.
953         Don't handle static_flag.
954         (epiphany_expand_epilogue): Don't use frame_insn for status / iret
955         restore.
956         * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define.
957         (enum epiphany_function_type):
958         Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0
959         and EPIPHANY_FUNCTION_TIMER1.
960         Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values.
961         Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values.
962         Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND.
963
964 2011-12-10  Nathan Sidwell  <nathan@acm.org>
965
966         PR gcov-profile/51449
967         * coverage.c (coverage_end_function): Always process the coverage
968         variables.
969
970 2011-12-09  Aldy Hernandez  <aldyh@redhat.com>
971
972         PR/51291
973         * tree.c (build_common_builtin_nodes): Do not use TM_PURE
974         attribute unless language has support for TM.
975         * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in
976         the absence of TM builtins.
977
978 2011-12-09  Eric Botcazou  <ebotcazou@adacore.com>
979
980         * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>:
981         Also check the TYPE_MODE to recognize useless pointer conversions.
982
983 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
984
985         PR tree-optimization/51117
986         * tree-eh.c (optimize_clobbers): Don't remove just one
987         clobber, but all consecutive clobbers before RESX.
988         Use gimple_clobber_p predicate.
989
990 2011-12-09  Michael Meissner  <meissner@the-meissners.org>
991
992         * config/rs6000/rs6000.c (altivec_expand_builtin): Call
993         expand_call to return a valid funciton instead of return
994         cosnt0_rtx/NULL_RTX if there was an error with the builtin.
995         (altivec_expand_ld_builtin): Ditto.
996         (rs6000_inner_target_options): If VSX is selected as a target
997         attribute or pragma, enable ALTIVEC also.
998         (rs6000_pragma_target_parse): Call rs6000_option_override_internal
999         to do all of the standard processing when switching options,
1000         including redefining appropriate macros.
1001
1002         PR rtl-optimization/51469
1003         * varasm.c (default_binds_local_p_1): If the symbol is a gnu
1004         indirect function, mark the symbol as non-local.
1005
1006 2011-12-09  H.J. Lu  <hongjiu.lu@intel.com>
1007
1008         PR bootstrap/51479
1009         * Makefile.in (errors.o): Restored.
1010
1011 2011-12-09  Richard Guenther  <rguenther@suse.de>
1012
1013         PR lto/48042
1014         * tree.c (free_lang_data_in_decl): Remove freeing conditional
1015         on debuginfo level.
1016
1017 2011-12-09  Joern Rennecke  <joern.rennecke@embecosm.com>
1018
1019         PR middle-end/40154
1020         * emit-rtl.c (set_dst_reg_note): New function.
1021         * rtl.h (set_dst_reg_note): Declare.
1022         * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
1023         (emit_libcall_block, expand_fix): Likewise.
1024         * function.c (assign_parm_setup_reg, expand_function_start): Likewise.
1025         * expmed.c (expand_mult_const, expand_divmod): Likewise.
1026         * reload1.c (gen_reload): Likewise.
1027
1028         * dse.c (get_stored_val, get_call_args): Use gen_int_mode.
1029         * expmed.c (expand_divmod): Likewise.
1030         * combine.c (simplify_if_then_else): Likewise.
1031
1032 2011-12-09  Kai Tietz  <ktietz@redhat.com>
1033
1034         * ira-color.c (print_hard_regs_subforest): Use
1035         HOST_WIDEST_INT_PRINT_DEC instead of %lld.
1036         (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT.
1037         (add_allocno_hard_regs): Change type of argument cost
1038         to HOST_WIDEST_INT.
1039         * ira-conflict.c (build_conflict_bit_table): Replace use
1040         of long-long by HOST_WIDEST_INT.
1041
1042 2011-12-09  Georg-Johann Lay  <avr@gjlay.de>
1043
1044         PR target/51425
1045         * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use
1046         zero_extract:QIHI instead of zero_extract:HI.
1047
1048 2011-12-09  Jakub Jelinek  <jakub@redhat.com>
1049             Andrew Pinski  <apinski@cavium.com>
1050
1051         PR tree-optimization/51117
1052         * tree-eh.c (optimize_clobbers): New function.
1053         (execute_lower_eh_dispatch): Call it.
1054
1055 2011-12-09  Richard Guenther  <rguenther@suse.de>
1056
1057         PR tree-optimization/51482
1058         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1059         Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors.
1060
1061 2011-12-09  Kai Tietz  <ktietz@redhat.com>
1062
1063         * implicit-zee.c (num_realized): Change type to long.
1064         (num_ze_opportunities): Likewise.
1065
1066 2011-12-08  Andrew Pinski  <apinski@cavium.com>
1067
1068         * config/mips/mips-cpus.def (octeon+): New CPU.
1069         * config/mips/mips-tables.opt: Regenerate.
1070         * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
1071
1072 2011-12-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1073
1074         PR middle-end/39976
1075         * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI.
1076         (struct hashable_expr): Add struct phi field.
1077         (initialize_hash_element): Handle phis; change to use XCNEWVEC.
1078         (hashable_expr_equal_p): Handle phis.
1079         (iterative_hash_hashable_expr): Likewise.
1080         (print_expr_hash_elt): Likewise.
1081         (free_expr_hash_elt): Likewise.
1082         (dom_opt_enter_block): Create equivalences from redundant phis.
1083         (eliminate_redundant_computations): Handle redundant phis.
1084         (lookup_avail_expr): Handle phis.
1085
1086 2011-12-08  Jakub Jelinek  <jakub@redhat.com>
1087
1088         PR tree-optimization/51466
1089         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
1090         TREE_SIDE_EFFECTS.
1091
1092 2011-12-08  Richard Guenther  <rguenther@suse.de>
1093
1094         * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts
1095         volatile when processing operands of an ADDR_EXPR.
1096         (get_indirect_ref_operands): Likewise.
1097         (get_tmr_operands): Likewise.
1098         (get_expr_operands): Likewise.
1099
1100 2011-12-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1101
1102         PR target/50395
1103         * config/s390/s390.c (s390_mainpool_finish): Emit the jump over
1104         the literal pool as jump insn.
1105
1106 2011-12-08  Richard Guenther  <rguenther@suse.de>
1107
1108         PR tree-optimization/49772
1109         * tree-inline.c (optimize_inline_calls): Remove bail out on errors.
1110
1111 2011-12-08  Richard Guenther  <rguenther@suse.de>
1112
1113         PR lto/50747
1114         * lto-streamer-out.c (produce_symtab): Remove asserts.
1115
1116 2011-12-08  Richard Guenther  <rguenther@suse.de>
1117
1118         PR lto/49945
1119         * lto-streamer-out.c (tree_is_indexable): Localize variably
1120         modified types and their FIELD_DECLs.
1121
1122 2011-12-08  Eric Botcazou  <ebotcazou@adacore.com>
1123
1124         PR tree-optimization/51315
1125         * tree.h (get_object_or_type_alignment): Declare.
1126         * expr.c (get_object_or_type_alignment): Move to...
1127         * builtins.c (get_object_or_type_alignment): ...here.  Add assertion.
1128         * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
1129         (tree_non_aligned_mem_p): ...this.  Add ALIGN parameter.  Look into
1130         MEM_REFs and use get_object_or_type_alignment for them.
1131         (build_accesses_from_assign): Adjust for above change.
1132         (access_precludes_ipa_sra_p): Likewise.
1133
1134 2011-12-08  Richard Guenther  <rguenther@suse.de>
1135
1136         PR lto/48437
1137         * lto-streamer-out.c (tree_is_indexable): Exclude block-local
1138         extern declarations.
1139
1140 2011-12-07  Andrew Pinski  <apinski@cavium.com>
1141
1142         PR middle-end/45416
1143         * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for
1144         SSA-expand.
1145
1146 2011-12-07  Richard Guenther  <rguenther@suse.de>
1147
1148         PR tree-optimization/50823
1149         * ipa-inline.c (edge_badness): Do not account for the number of
1150         remaining calls.
1151
1152 2011-12-07  Martin Jambor  <mjambor@suse.cz>
1153
1154         PR tree-optimization/50744
1155         * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive,
1156         compute evaluation in HOST_WIDEST_INT.
1157         (safe_add): New function
1158         (propagate_effects): Use safe_add to accumulate effects.
1159
1160 2011-12-06  Joel Sherrill <joel.sherrill@oarcorp.com>
1161
1162         * config/rs6000/rtems.h: Switch to using global_options_set
1163         in SUBSUBTARGET_OVERRIDE_OPTIONS.
1164
1165 2011-12-06  David S. Miller  <davem@davemloft.net>
1166
1167         * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection.
1168
1169 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1170
1171         * config/avr/avr.c (avr_file_start): Fix missing ,
1172
1173 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
1174
1175         PR target/51354
1176         * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note
1177         unconditionally.
1178
1179 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1180
1181         Forward-port from gcc-4_6-branch r181936 2011-12-02.
1182         * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and
1183         AT86RF401 have a 16-bit SP (their manual is bogus).
1184
1185 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1186
1187         Forward-port from gcc-4_6-branch r181936 2011-12-02.
1188
1189         PR target/51002
1190         * config/avr/avr.md (movhi_sp_r): Set insn condition to
1191         !AVR_HAVE_8BIT_SP.
1192         * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in
1193         %B0,__SP_H__" if AVR_HAVE_8BIT_SP.
1194         (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.
1195
1196 2011-12-06  Georg-Johann Lay  <avr@gjlay.de>
1197
1198         PR target/51409
1199         PR target/49868
1200         * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1,
1201         ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4,
1202         ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum.
1203         (avr_addrspace_t): New typedef.
1204         (avr_addrspace): New declaration.
1205         * config/avr/avr-c.c (avr_toupper): New static function.
1206         (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use
1207         avr_addrspace to get address space information.
1208         * config/avr/avr.c (avr_addrspace): New variable.
1209         (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes,
1210         avr_asm_named_section, avr_section_type_flags,
1211         avr_asm_select_section, avr_addr_space_address_mode,
1212         avr_addr_space_convert, avr_emit_movmemhi): Use it.
1213         (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode.
1214         (avr_pgm_segment): Remove.
1215
1216 2011-12-06  Richard Guenther  <rguenther@suse.de>
1217
1218         PR middle-end/50601
1219         * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation
1220         quirk adjustjment ...
1221         * passes.c (rest_of_decl_compilation): ... here.
1222
1223 2011-12-06  Richard Guenther  <rguenther@suse.de>
1224
1225         PR middle-end/51436
1226         * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check
1227         for the fact we do not have virtual operands when not optimizing.
1228
1229 2011-12-06  Richard Guenther  <rguenther@suse.de>
1230
1231         PR tree-optimization/51245
1232         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
1233         New function.
1234         (vn_reference_lookup_3): Use it.  Properly valueize all refs we create.
1235
1236 2011-12-06  Iain Sandoe  <iains@gcc.gnu.org>
1237
1238         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
1239         rs6000_current_abi.
1240
1241 2011-12-06  Richard Guenther  <rguenther@suse.de>
1242
1243         PR tree-optimization/51363
1244         * gimple.c (gimple_rhs_has_side_effects): Remove.
1245         * gimple.h (gimple_rhs_has_side_effects): Likewise.
1246         * tree-ssa-dom.c (optimize_stmt): Simplify conditional.
1247
1248 2011-12-06  Alan Modra  <amodra@gmail.com>
1249
1250         PR target/50906
1251         * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
1252         Do not mark r11 setup as frame-related.  Pass correct offset to
1253         rs6000_emit_savres_rtx.  Correct out-of-line rs6000_frame_related
1254         arguments.  Correct sp_offset.  Remove "offset" fudge from
1255         in-line rs6000_frame_related call.  Rename misleading variable.
1256         Fix comments and whitespace.  Tidy some expressions.
1257         (rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
1258         to r11 in out-of-line case.  Correct sp_offset.  Pass correct
1259         offset to rs6000_emit_savres_rtx.  Rename misleading variable.
1260         Fix comments and whitespace.  Tidy some expressions.
1261         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
1262         adjustment when !saving_GPRs_inline.  Correct register mode
1263         used in address calcs.
1264         (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
1265         !restoring_GPRs_inline.
1266
1267 2011-12-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1268
1269         * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix
1270         formatting character for vmov.f64 case.
1271
1272 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
1273
1274         PR tree-optimization/51396
1275         * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
1276         if MUL_RESULT has zero uses.
1277
1278         PR debug/51410
1279         * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
1280         for debug info if scope is file_scope.
1281
1282         PR c/51339
1283         * c-decl.c (c_finish_incomplete_decl, finish_decl): Call
1284         relayout_decl instead of layout_decl.
1285
1286 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
1287
1288         * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
1289         if there is in epilogue.
1290
1291 2011-12-05  Richard Sandiford  <rdsandiford@googlemail.com>
1292
1293         * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
1294         to emit_library_call_value.
1295         (expand_atomic_compare_and_swap): Likewise.
1296
1297 2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>
1298
1299         PR other/50775
1300         * ira-int.h (struct ira_object): Remove add_data.
1301         (OBJECT_ADD_DATA): Remove.
1302
1303         * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
1304         initialization.
1305
1306         * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
1307         allocno_hard_regs_t, allocno_hard_regs.
1308         (object_hard_regs_node_t, object_hard_regs_node): Rename to
1309         allocno_hard_regs_node_t and allocno_hard_regs_node.
1310         (struct allocno_color_data): Add new member last_process.  Move
1311         profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
1312         from object_color_data.
1313         (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove.
1314         (curr_allocno_process): New static variable.
1315         (object_hard_regs_eq, object_hard_regs_htab): Rename to
1316         allocno_hard_regs_eq and allocno_hard_regs_htab.
1317         (init_object_hard_regs, finish_object_hard_regs): Rename to
1318         init_allocno_hard_regs and finish_allocno_hard_regs.
1319         (object_hard_regs_compare, object_hard_regs_node_t): Rename to
1320         allocno_hard_regs_compare and allocno_hard_regs_node_t.
1321         (create_new_object_hard_regs_node): Rename to
1322         create_new_allocno_hard_regs_node.
1323         (add_new_object_hard_regs_node_to_forest): Rename to
1324         add_new_allocno_hard_regs_node_to_forest.
1325         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
1326         Rename to add_allocno_hard_regs_to_forest and
1327         collect_allocno_hard_regs_cover.
1328         (setup_object_hard_regs_nodes_parent): Rename to
1329         setup_allocno_hard_regs_nodes_parent.
1330         (remove_unused_object_hard_regs_nodes): Rename to
1331         remove_unused_allocno_hard_regs_nodes.
1332         (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
1333         Rename to enumerate_allocno_hard_regs_nodes and
1334         allocno_hard_regs_nodes_num.
1335         (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
1336         allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
1337         (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
1338         allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
1339         (object_hard_regs_subnode_index): Rename to
1340         allocno_hard_regs_subnode_index.
1341         (setup_object_hard_regs_subnode_index): Rename to
1342         setup_allocno_hard_regs_subnode_index.
1343         (get_object_hard_regs_subnodes_num): Rename to
1344         get_allocno_hard_regs_subnodes_num.
1345         (form_object_hard_regs_nodes_forest): Rename to
1346         form_allocno_hard_regs_nodes_forest.
1347         (finish_object_hard_regs_nodes_tree): Rename to
1348         form_allocno_hard_regs_nodes_forest
1349         (finish_object_hard_regs_nodes_forest): Rename to
1350         finish_allocno_hard_regs_nodes_forest.
1351         (setup_left_conflict_sizes_p): Use allocno data instead of object ones.
1352         Process conflict allocnos once.
1353         (update_left_conflict_sizes_p): Use allocno data instead of object
1354         ones.  Change prototype signature.
1355         (empty_profitable_hard_regs): Use allocno data instead of object ones.
1356         (setup_profitable_hard_regs): Ditto.
1357         (get_conflict_profitable_regs): Rename to
1358         get_conflict_and_start_profitable_regs.  Use allocno data for
1359         profitable regs calculation.
1360         (check_hard_reg_p): Change prototype signature.  Check profitable
1361         regs for allocno not the objects.
1362         (assign_hard_reg): Process conflict allocnos only once for
1363         updating conflict costs.
1364         (setup_allocno_available_regs_num): Use allocno data instead of
1365         object ones.  Modify debug output.
1366         (color_pass): Remove initialization and finalization of object
1367         color data.
1368
1369 2011-12-05  Kazu Hirata  <kazu@codesourcery.com>
1370
1371         PR target/51408
1372         * config/arm/arm.md (*minmax_arithsi): Always require the else
1373         clause in the MINUS case.
1374
1375 2011-12-05  Richard Guenther  <rguenther@suse.de>
1376
1377         PR tree-optimization/50904
1378         * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
1379         (MEM_ANALYZABLE): New.
1380         (memory_references): Remove clobbered_vops and vop_ref_map
1381         members, add all_refs_stored_in_loop member.
1382         (memref_free): Adjust.
1383         (mem_ref_alloc): Likewise.
1384         (gather_mem_refs_stmt): Do not record clobbers, instead
1385         record refs for unanalyzable stmts.
1386         (gather_mem_refs_in_loops): Do not propagate clobbers.
1387         (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
1388         record_vop_access, get_vop_accesses, get_vop_stores,
1389         add_vop_ref_mapping): Remove.
1390         (create_vop_ref_mapping_loop): Adjust to simply record all stores.
1391         (analyze_memory_references): Adjust.
1392         (refs_independent_p): Check for not analyzable refs.
1393         (can_sm_ref_p): Likewise.
1394         (ref_indep_loop_p_1): Simplify.
1395         (tree_ssa_lim_finalize): Adjust.
1396
1397         * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
1398         rather than magic constants.  Assign zero cost to PAREN_EXPR
1399         and SSA_NAME copies.  Assign cost proportional to the vector
1400         size for vector constructors.
1401
1402 2011-12-05  Richard Guenther  <rguenther@suse.de>
1403
1404         * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
1405         * tree-ssa-alias.c (ao_ref_init): Initialize it.
1406         (ao_ref_init_from_ptr_and_size): Likewise.
1407         (refs_may_alias_p_1): Two volatile accesses conflict.
1408         (ref_maybe_used_by_call_p_1): Likewise.
1409         (call_may_clobber_ref_p_1): Likewise.
1410         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
1411         volatile_p field.
1412
1413 2011-12-05  Richard Guenther  <rguenther@suse.de>
1414
1415         * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA
1416         names.  Remove SSA operand checking, call verify_ssa_operands.
1417         * tree-ssa-operands.h (verify_ssa_operands): Declare.
1418         * tree-ssa-operands.c (verify_ssa_operands): New function.
1419
1420 2011-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1421
1422         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
1423         * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
1424         * config/arm/constraints.md ("Dt"): New constraint.
1425         * config/arm/predicates.md
1426         (const_double_vcvt_power_of_two_reciprocal): New.
1427         * config/arm/vfp.md (FCVTI32typename): New.
1428         (FCVT): New iterator.
1429         (*combine_vcvt_f32_<FCVTI32typename>): New.
1430         (*combine_vcvt_f64_<FCVTI32typename>): New.
1431
1432 2011-12-05  Richard Guenther  <rguenther@suse.de>
1433
1434         * cgraph.c (cgraph_create_edge_1): Initialize
1435         call_stmt_cannot_inline_p from the stmt if possible.
1436         (cgraph_make_edge_direct): Likewise.
1437         * gimple-streamer-in.c (input_gimple_stmt): Do not
1438         call gimple_call_set_cannot_inline.
1439         * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values.
1440         (gimple_call_set_cannot_inline): Remove.
1441         (gimple_call_cannot_inline_p): Likewise.
1442         * ipa-inline-analysis.c (initialize_inline_failed): Look
1443         at the edge call_stmt_cannot_inline_p flag.
1444         * ipa-inline.c (can_inline_edge_p): Likewise.
1445         (early_inliner): Only update the edge flag.
1446         * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
1447         (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
1448         * cgraphunit.c (assemble_thunk): Likewise.
1449         * gimple-fold.c (gimple_fold_call): Likewise.
1450
1451         * tree.h (CALL_CANNOT_INLINE_P): Remove.
1452         * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
1453         * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
1454         alloca calls inline.
1455         * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
1456         * gimple.c (gimple_build_call_from_tree): Do not read
1457         CALL_CANNOT_INLINE_P.
1458         * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
1459
1460 2011-12-05  Jakub Jelinek  <jakub@redhat.com>
1461             Eric Botcazou  <ebotcazou@adacore.com>
1462
1463         PR middle-end/51323
1464         PR middle-end/50074
1465         * calls.c (internal_arg_pointer_exp_state): New variable.
1466         (internal_arg_pointer_based_exp_1,
1467         internal_arg_pointer_exp_scan): New functions.
1468         (internal_arg_pointer_based_exp): New function.
1469         (mem_overlaps_already_clobbered_arg_p): Use it.
1470         (expand_call): Free internal_arg_pointer_exp_state.cache vector
1471         and clear internal_arg_pointer_exp_state.scan_start.
1472
1473 2011-12-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1474
1475         * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
1476         * config/sh/sync.md: New file.
1477         * config/sh/sh.md: Include sync.md.
1478         * config/sh/sh.opt (msoft-atomic): New option.
1479         * doc/invoke.texi (SH Options): Document it.
1480
1481 2011-12-04  Nathan Sidwell  <nathan@acm.org>
1482
1483         * gcov-io.h (struct gcov_info): Replace trailing array with
1484         pointer to array.
1485         * profile.c (branch_prob): Only call renamed
1486         coverage_begin_function once.
1487         * coverage.h (coverage_begin_output): Rename to ...
1488         (coverage_begin_function): ... here.
1489         * coverage.c (struct function_list): Rename to ...
1490         (struct coverage_data): ... this.  Update all uses.
1491         (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals.
1492         (bbg_file_opened, bbg_function_announced): Remove.
1493         (get_coverage_counts): Adjust message.
1494         (coverage_begin_ouput): Rename to ...
1495         (coverage_begin_function): ... here.  Move file opening to
1496         coverage_init.  Adjust for being called only once.
1497         (coverage_end_function): Remove bbg file and inhibit further
1498         output here on error.
1499         (build_info_type): Adjust for change to pointer to array.
1500         (build_info): Receive array of function pointers and adjust.
1501         (create_coverage): Break into ...
1502         (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
1503         ... these, and adjust.
1504         (coverage_init): Open the notes file here.  Tidy.
1505         (coverage_finish): Call coverage_obj_init etc.
1506
1507 2011-12-04  Ira Rosen  <ira.rosen@linaro.org>
1508
1509         PR middle-end/51285
1510         * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
1511         phi nodes for outer loop in case of double reduction.
1512
1513 2011-12-04  Jérémie Detrey  <Jeremie.Detrey@loria.fr>
1514
1515         PR target/51393
1516         * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
1517         parameter as long long.
1518
1519 2011-12-04  Richard Sandiford  <rdsandiford@googlemail.com>
1520
1521         PR middle-end/51351
1522         * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
1523         in the external names.
1524
1525 2011-12-03  Jack Howarth <howarth@bromo.med.uc.edu>
1526
1527         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
1528         non-PIC code when targeting 10.7 or later.
1529
1530 2011-12-03  Iain Sandoe  <iains@gcc.gnu.org>
1531
1532         * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
1533         Darwin >= 10.
1534         (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
1535         (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
1536
1537 2011-12-03  Jakub Jelinek  <jakub@redhat.com>
1538
1539         * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
1540         VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
1541         VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
1542         (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
1543         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
1544         and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
1545
1546         PR debug/50317
1547         * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
1548         vars that aren't referenced.
1549         (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
1550         of unreferenced local vars.
1551         * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
1552         TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
1553
1554 2011-12-03  Anatoly Sokolov  <aesok@post.ru>
1555
1556         * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
1557         * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
1558         * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1559         (arm_libcall_value_1, arm_function_value_regno_p): New function.
1560         (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
1561         (aapcs_libcall_value): Make static.
1562         (arm_libcall_value): Add static qualifier.
1563
1564 2011-12-02  Jakub Jelinek  <jakub@redhat.com>
1565
1566         PR target/51387
1567         * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
1568         V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
1569         permutation instead of extract even permutation.
1570
1571 2011-12-02  Nathan Sidwell  <nathan@acm.org>
1572
1573         * gcov.c (struct arc_info): Add is_throw field.
1574         (struct (block_info): Add exceptional field, reduce flags size to
1575         account for it.
1576         (struct function_info): Add has_catch field.
1577         (struct line_info): Add unexceptional field.
1578         (process_file): Call find_exception_blocks if necessary.
1579         (read_graph_file): Adjust.  Note if an exceptional edge is seen.
1580         (find_exception_blocks): New.
1581         (add_line_counts): Set line's unexceptional flag if not exceptional.
1582         (output_branch_count): Note exceptional arcs, lines and blocks.
1583         * gcov-dump.c (tag_arcs): Decode arc flags.
1584         * doc/gcov.texi: Document '=====' lines.
1585
1586 2011-12-02  Anatoly Sokolov  <aesok@post.ru>
1587
1588         * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1589         PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
1590         * config/ia64/ia64-protos.h (ia64_print_operand,
1591         ia64_print_operand_address): Remove.
1592         * config/ia64/ia64.c (TARGET_PRINT_OPERAND,
1593         TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
1594         Define.
1595         (ia64_print_operand_punct_valid_p): New function.
1596         (ia64_print_operand, ia64_print_operand_address): Make static.
1597
1598 2011-12-02  Michael Meissner  <meissner@the-meissners.org>
1599
1600         PR target/51390
1601         * config/rs6000/rs6000.c (def_builtin): Use the correct field to
1602         figure out the function's attributes.
1603         (struct builtin_description): Mark mask field as const since we no
1604         longer need to modify it for SPE and PAIRED builtins.
1605
1606 2011-12-02  Joseph Myers  <joseph@codesourcery.com>
1607
1608         Revert:
1609
1610         2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1611
1612         PR rtl-opt/37451
1613         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
1614         zero extend count after the correction to it is done.
1615         (doloop_optimize): Update call to doloop_modify, don't zero extend
1616         count before call.
1617
1618         2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1619
1620         PR rtl-opt/37782
1621         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1622         mode count is in.
1623         (doloop_optimize): Update call to doloop_modify.
1624
1625 2011-12-02  Richard Guenther  <rguenther@suse.de>
1626
1627         PR lto/47259
1628         * ipa.c (varpool_externally_visible_p): Register variables
1629         are always externally visible.
1630
1631 2011-12-02  Sameera Deshpande  <sameera.deshpande@arm.com>
1632
1633         * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
1634           non-NULL.
1635
1636 2011-12-02  Martin Jambor  <mjambor@suse.cz>
1637
1638         PR tree-optimization/50622
1639         * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
1640         if both lacc and racc are grp_partial_lhs.
1641
1642 2011-12-01  Kaz Kojima  <kkojima@gcc.gnu.org>
1643
1644         PR target/50814.
1645         * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
1646         TARGET_SH3.
1647         (shl_sext_kind): Likewise.
1648         * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
1649         * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
1650         (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
1651         (ashlsi3): Likewise.
1652         (ashrsi3_d): Likewise.
1653         (lshrsi3_d): Likewise.
1654         (lshrsi3): Likewise.
1655
1656 2011-12-01  Diego Novillo  <dnovillo@google.com>
1657
1658         PR bootstrap/51346
1659         * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
1660         use the statement's inline indicator instead of E's.
1661         Remove consistency check.
1662
1663 2011-12-01  Diego Novillo  <dnovillo@google.com>
1664
1665         PR bootstrap/51346
1666         Revert
1667
1668         2011-11-29  Diego Novillo  <dnovillo@google.com>
1669
1670         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
1671         Update field call_stmt_cannot_inline_p from call
1672         graph edge, if needed.
1673         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
1674
1675 2011-12-01  Nathan Sidwell  <nathan@acm.org>
1676
1677         PR gcov-profile/51113
1678         * coverage.c (build_var): Keep coverage variables static.
1679
1680 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
1681
1682         PR tree-optimization/51356
1683         * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
1684         vectype doesn't have VECTOR_MODE_P.
1685
1686         PR debug/50317
1687         * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
1688         as unnecessary a store to a variable with gimple reg type.
1689         * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
1690         on local unreferenced variables.
1691         * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
1692         for !target_for_debug_bind variables.
1693
1694 2011-12-01  Patrick Marlier  <patrick.marlier@gmail.com>
1695
1696         PR middle-end/51273
1697         * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
1698         * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
1699         * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
1700
1701 2011-12-01  Andrew Pinski  <apinski@cavium.com>
1702
1703         PR lto/51198
1704         * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
1705         DECL_INITIAL also.
1706
1707 2011-12-01  Jakub Jelinek  <jakub@redhat.com>
1708
1709         PR tree-optimization/51246
1710         * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
1711
1712         PR rtl-optimization/51014
1713         * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
1714         both from bb and orig_bb.
1715
1716 2011-12-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1717
1718         PR tree-optimization/50802
1719         * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
1720         considering what happens to ranges during sign changes and/or
1721         intermediate narrowing conversions.
1722
1723 2011-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1724
1725         PR middle-end/50283
1726         * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
1727         (in_nullified_branch_delay): Likewise.
1728         (in_call_delay): Likewise.
1729
1730 2011-11-30  Richard Henderson  <rth@redhat.com>
1731
1732         * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
1733         boolean return is true.
1734
1735 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
1736
1737         PR rtl-optimization/51044
1738         * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
1739         rather than just insn body.
1740
1741         PR target/50725
1742         * function.c (thread_prologue_and_epilogue_insns): If
1743         stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
1744         regset.
1745
1746         PR middle-end/51089
1747         * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
1748         avoid creating duplicate edges here.
1749         (cleanup_empty_eh_unsplit): And remove it in the caller.
1750
1751 2011-11-30  Andrew Pinski  <apinski@cavium.com>
1752
1753         PR c/51321
1754         * c-parser.c (c_parser_postfix_expression): Check groktypename results
1755         before looking at the main variant.
1756
1757 2011-11-30  Jakub Jelinek  <jakub@redhat.com>
1758
1759         PR rtl-optimization/48721
1760         * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
1761         reg_pending_barrier to TRUE_BARRIER.
1762
1763         PR rtl-optimization/48721
1764         * sched-ebb.c (begin_move_insn): Insert empty unreachable
1765         block after BARRIER if insn is followed by it.
1766
1767 2011-11-30  Richard Henderson  <rth@redhat.com>
1768
1769         * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
1770         * config/sparc/sparc.opt (mmemory-model=): New option.
1771         * doc/invoke.texi (Sparc Options): Document it.
1772         * config/sparc/sparc.c (sparc_option_override): Provide default
1773         for sparc_memory_model.
1774         (sparc_emit_membar_for_model): Omit barrier combinations that are
1775         implied by the memory model.
1776
1777 2011-11-30  Richard Henderson  <rth@redhat.com>
1778
1779         * config/sparc/sync.md (I124MODE): New mode iterator.
1780         (memory_barrier): Remove.
1781         (atomic_exchangesi): New.
1782         (swapsi): Rename from *swapsi.
1783         (atomic_test_and_set<I124MODE>): New.
1784         (ldstubqi): Rename from *ldstubqi, merge with expander.
1785         (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
1786         (sync_lock_test_and_setsi): Remove.
1787         (sync_lock_test_and_set<I12MODE>): Remove.
1788
1789 2011-11-30  Richard Henderson  <rth@redhat.com>
1790
1791         * config/sparc/constraints.md ("w"): New.
1792         * config/sparc/predicates.md (mem_noofs_operand): New.
1793         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
1794         Generate the boolean result of the atomic_compare_exchange.
1795         (sparc_expand_compare_and_swap): New.
1796         * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
1797         (atomic_compare_and_swap<I48MODE>_1): Rename from
1798         *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
1799         (*atomic_compare_and_swapdi_v8plus): Rename from
1800         *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
1801         (sync_compare_and_swap<I12MODE>): Remove.
1802         (sync_compare_and_swap<I48MODE>): Remove.
1803
1804 2011-11-30  Richard Henderson  <rth@redhat.com>
1805
1806         * config/sparc/predicates.md (register_or_v9_zero_operand): New.
1807         * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
1808         * config/sparc/sync.md (atomic_load<I>): New.
1809         (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
1810
1811 2011-11-30  Richard Henderson  <rth@redhat.com>
1812
1813         * config/sparc/predicates.md (zero_or_v7_operand): New.
1814         * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
1815         * config/sparc/sparc-protos.h: Update.
1816         * config/sparc/sync.md (mem_thread_fence): New.
1817         (memory_barrier): Use sparc_emit_membar_for_model.
1818         (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
1819         (*membar_v8): Accept and ignore the membar mask.
1820         (*membar): Accept and print the membar mask.
1821
1822 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1823
1824         * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
1825         * config/arm/arm.md (mul64): New attribute.
1826         (generic_sched): Cortex-A15 is not scheduled generically.
1827         (cortex-a15.md): Include.
1828         * config/arm/cortex-a15.md: New machine description.
1829         * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
1830
1831 2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1832
1833         * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
1834
1835 2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
1836
1837         * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
1838         * doc/tm.texi: Regenerate.
1839         * flags.h (flag_next_runtime): Remove references.
1840         * toplev.c: Likewise.
1841         * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
1842         * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
1843         * config/darwin.c (darwin_override_options): Provide default
1844         Objective-C abi settings and target conflict checks.
1845         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
1846         code. Adjust indenting.
1847
1848 2011-11-29  Joseph Myers  <joseph@codesourcery.com>
1849
1850         * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
1851         (REG_CLASS_CONTENTS): Add NON_SP_REGS.
1852         (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
1853         * config/sh/constraints.md (u): New constraint.
1854
1855 2011-11-29  Oleg Endo  <oleg.endo@t-online.de>
1856
1857         PR target/51337
1858         * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
1859         register is being loaded from a pseudo in memory.
1860
1861 2011-11-29  DJ Delorie  <dj@redhat.com>
1862
1863         * config.gcc (rl78-*-elf): New case.
1864         * doc/extend.texi: Add RL78 documentation.
1865         * doc/invoke.texi: Likewise.
1866         * doc/md.texi: Likewise.
1867         * doc/contrib.texi: Add RL78.
1868         * doc/install.texi: Add rl78-*-elf.
1869         * config/rl78: New directory for the Renesas RL78.
1870
1871 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
1872
1873         PR tree-optimization/51247
1874         * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
1875         types instead of adding 1 subtract -1 and instead of subtracting 1
1876         add -1 to avoid overflows.
1877
1878 2011-11-29  Andrew MacLeod  <amacleod@redhat.com>
1879
1880         PR target/50123
1881         * optabs.c (maybe_optimize_fetch_op): New.  Look for more optimal
1882         instructions for a FECTH_OP or OP_FECTH sequence.
1883         (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
1884
1885 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
1886
1887         * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
1888         (movdi_via_fpu): Remove.
1889         (loaddi_via_fpu): New insn pattern.
1890         (storedi_via_fpu): Ditto.
1891         (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
1892         (atomic_storedi_fpu): Ditto.
1893         * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
1894         (subst_stack_regs_pat): Handle UNSPEC_STA.
1895
1896 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
1897
1898         * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
1899         allocate scratch memory for alternative 0.
1900
1901 2011-11-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
1902
1903         * config/rs6000/rs6000-builtins.def: Completely rewrite builtin
1904         handling to centralize more of the builtins in this file.  Change
1905         some builtin enumerations to be more consistant.  Use a new mask
1906         to hold the current builtins, including SPE and PAIRED builtins
1907         which no longer are set via target_flags masks.  Add
1908         -mdebug=builtin debug support.  For power machines, define all
1909         Altivec and VSX buitins when the compiler starts, but don't allow
1910         the use of a builtin unless the appropriate switch is used, or
1911         #pragma GCC target is used to change the options.  If the user
1912         uses #pragma GCC target, update the appropriate hardware macros.
1913         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
1914         * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
1915         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
1916         (rs6000_define_or_undefine_macro): Ditto.
1917         (rs6000_target_modify_macros): Ditto.
1918         (rs6000_cpu_cpp_builtins): Ditto.
1919         (altivec_overloaded_builtins): Ditto.
1920         (altivec_build_resolved_builtin): Ditto.
1921         * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
1922         (rs6000_builtin_info): Ditto.
1923         (def_builtin): Ditto.
1924         (enable_mask_for_builtins): Ditto.
1925         (DEBUG_FMT_X): Ditto.
1926         (rs6000_debug_reg_global): Ditto.
1927         (rs6000_builtin_mask_calculate): Ditto.
1928         (rs6000_option_override_internal): Ditto.
1929         (rs6000_builtin_conversion): Ditto.
1930         (rs6000_builtin_vectorized_function): Ditto.
1931         (bdesc_3arg): Ditto.
1932         (bdesc_dst): Ditto.
1933         (bdesc_2arg): Ditto.
1934         (builtin_description_predicates): Ditto.
1935         (bdesc_altivec_preds): Ditto.
1936         (bdesc_spe_predicates): Ditto.
1937         (bdesc_spe_evsel): Ditto.
1938         (bdesc_paired_preds): Ditto.
1939         (bdesc_abs): Ditto.
1940         (bdesc_1arg): Ditto.
1941         (rs6000_overloaded_builtin_p): Ditto.
1942         (rs6000_expand_unop_builtin): Ditto.
1943         (bdesc_2arg_spe): Ditto.
1944         (spe_expand_builtin): Ditto.
1945         (rs6000_invalid_builtin): Ditto.
1946         (rs6000_expand_builtin): Ditto.
1947         (rs6000_init_builtins): Ditto.
1948         (spe_init_builtins): Ditto.
1949         (paired_init_builtins): Ditto.
1950         (altivec_init_builtins): Ditto.
1951         (builtin_function_type): Ditto.
1952         (rs6000_common_init_builtins): Ditto.
1953         (rs6000_builtin_reciprocal): Ditto.
1954         (rs6000_builtin_mask_names): Ditto.
1955         (rs6000_pragma_target_parse): Ditto.
1956         (rs6000_function_specific_print): Ditto.
1957         * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
1958         (MASK_DEBUG_ALL): Ditto.
1959         (TARGET_DEBUG_BUILTIN): Ditto.
1960         (TARGET_EXTRA_BUILTINS): Ditto.
1961         (REGISTER_TARGET_PRAGMAS): Ditto.
1962         (enum rs6000_btc): Ditto.
1963         (RS6000_BTC_*): Ditto.
1964         (RS6000_BTM_*): Ditto.
1965         (enum rs6000_builtins): Ditto.
1966         * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
1967         (rs6000_target_modify_macros): Ditto.
1968         (rs6000_target_modify_macros_ptr): Ditto.
1969
1970         * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
1971         standard name for converting vector unsigned values to floating
1972         point.  Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
1973         is handled by machine independent code.
1974         * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
1975         (rs6000_builtin_conversion): Ditto.
1976
1977 2011-11-29  Dodji Seketeli  <dodji@redhat.com>
1978
1979         * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
1980         (maybe_unwind_expanded_macro_loc): Adjust.
1981
1982 2011-11-29  David Edelsohn  <dje.gcc@gmail.com>
1983             Aldy Hernandez  <aldyh@redhat.com>
1984
1985         * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
1986         if DECL_ONE_ONLY.
1987         (ipa_tm_create_version): Same.
1988
1989 2011-11-29  Bernd Schmidt  <bernds@codesourcery.com>
1990
1991         * haifa-sched.c (recompute_todo_spec): Simplify and correct the
1992         code checking for a clobber of a condition register when deciding
1993         whether to predicate.
1994
1995 2011-11-29  Diego Novillo  <dnovillo@google.com>
1996
1997         * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
1998         Update field call_stmt_cannot_inline_p from call graph edge, if needed.
1999         * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
2000
2001 2011-11-29  Sameera Deshpande  <sameera.deshpande@arm.com>
2002
2003         * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
2004         (movdf_soft_insn): Likewise.
2005         * config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
2006         * config/arm/neon.md (neon_mov<mode>): Likewise.
2007         * config/arm/vfp.md (movdi_vfp): Likewise.
2008         (movdi_vfp_cortexa8): Likewise.
2009         (movdf_vfp): Likewise.
2010
2011 2011-11-29  Jakub Jelinek  <jakub@redhat.com>
2012
2013         PR middle-end/50074
2014         * expr.c (expand_expr_addr_expr_1): Don't call force_operand for
2015         EXPAND_SUM modifier.
2016
2017 2011-11-29  Ira Rosen  <ira.rosen@linaro.org>
2018
2019         PR tree-optimization/51301
2020         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
2021         the last statement doesn't convert to a bigger type than the original
2022         type of the computation.
2023
2024 2011-11-28  Richard Henderson  <rth@redhat.com>
2025
2026         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
2027         Handle overlap between retval and oldval.  Always compute boolval
2028         from CR0 EQ value.
2029
2030 2011-11-28  Jakub Jelinek  <jakub@redhat.com>
2031
2032         PR debug/50317
2033         * tree-ssa.c (execute_update_addresses_taken): Remove
2034         var ={v} {CLOBBER} stmts instead of rewriting them into
2035         var_N ={v} {CLOBBER}.
2036
2037         PR middle-end/50907
2038         * function.c (convert_jumps_to_returns): When redirecting an edge
2039         succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
2040
2041         PR tree-optimization/50078
2042         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
2043         TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
2044
2045         PR tree-optimization/50682
2046         * tree-eh.c (maybe_remove_unreachable_handlers): New function.
2047         * tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
2048         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
2049
2050 2011-11-28  Georg-Johann Lay  <avr@gjlay.de>
2051
2052         * doc/extend.texi (AVR Built-in Functions): Add documentation for
2053         __builtin_avr_map8 and __builtin_avr_map16.
2054
2055         * config/avr/avr.md: Document new %t and %T asm output codes.
2056         (define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
2057         (adjust_len): Add map_bits.
2058         (map_bitsqi, map_bitshi): New insns.
2059         * config/avr/avr-protos.h (avr_out_map_bits): New.
2060         * config/avr/avr-protos.c (print_operand): Implement %t and %T.
2061         (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
2062         (avr_double_int_push_digit): New function.
2063         (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
2064         (avr_sig_map, avr_map_hamming_byte): New functions.
2065         (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
2066         avr_out_map_bits): New functions.
2067         (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2068         (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
2069         (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
2070         (avr_expand_builtin): ...and expand them.
2071         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
2072         __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
2073
2074 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2075
2076         PR target/51278
2077         * config/mips/mips.c (mips_rtx_costs): Handle baddu.
2078
2079 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2080
2081         * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
2082
2083 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2084
2085         * config/mips/mips-protos.h (mips_emit_binary): Declare.
2086         * config/mips/mips.c (mips_emit_binary): Make global.
2087         (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
2088         (mips_conditional_register_usage): Don't treat LO and HI as
2089         register operands in MIPS16 mode.
2090         (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
2091         for MIPS16 code.
2092         * config/mips/predicates.md (muldiv_target_operand): New predicate.
2093         (move_operand): Allow hilo_operand.
2094         * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
2095         target of MIPS16 multiplies, then move it into the target register.
2096         (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
2097         (<u>mulsidi3_32bit_mips16): New expander.
2098         (<u>mulsidi3_32bit): Use muldiv_target_operand.
2099         (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
2100         (<u>mulsidi3_64bit): Require !TARGET_MIPS16.  Split into
2101         <u>mulsidi3_64bit_split.
2102         (<u>mulsidi3_64bit_mips16): New expander.
2103         (<u>mulsidi3_64bit_split): Likewise, using expansions from
2104         two previous define_splits.
2105         (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
2106         muldiv_target_operand.
2107         (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
2108         (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
2109         Split into <su>mulsi3_highpart_split.
2110         (<su>mulsi3_highpart_split): New expander.
2111         (<su>muldi3_highpart): Turn into a define_expand.
2112         Use <su>muldi3_highpart_split for MIPS16 code.
2113         (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
2114         Require !TARGET_MIPS16.  Split into <su>muldi3_highpart_split.
2115         (<su>muldi3_highpart_split): New expander.
2116         (<u>mulditi3): Explicitly specify LO as the target of MIPS16
2117         multiplies, then move it into the target register.
2118         (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
2119         (divmod<mode>4, udivmod<mode>4): Turn into define_expands.
2120         Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
2121         move LO into operand 0.
2122         (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
2123         from <u>divmod<mode>4.  Use muldiv_target_operand.
2124         Require !TARGET_MIPS16.  Split into <u>divmod<mode>4_split.
2125         (<u>divmod<mode>4_split): New expander.
2126         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
2127         (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
2128
2129 2011-11-27  Richard Sandiford  <rdsandiford@googlemail.com>
2130
2131         * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
2132         and x_operand_reg_set.
2133         (accessible_reg_set, operand_reg_set): New macros.
2134         * reginfo.c (init_reg_sets): Initialize accessible_reg_set and
2135         operand_reg_set.
2136         (saved_accessible_reg_set, saved_operand_reg_set): New variables.
2137         (save_register_info): Save them.
2138         (restore_register_info): Restore them.
2139         (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
2140         Remove NO_REGS registers from operand_reg_set.  Treat members
2141         of operand_reg_set as fixed.
2142         * recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
2143         (register_operand, nonmemory_operand): Likewise.
2144         * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
2145         register variables.  Check accessible_reg_set and operand_reg_set.
2146         * config/mips/mips.c (mips_conditional_register_usage): Remove
2147         inaccessible register from accessible_reg_set, rather than just
2148         making them fixed.
2149
2150 2011-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
2151
2152         * config/pa/pa-linux.h (TARGET_GAS): Remove comment.
2153
2154 2011-11-26  Richard Henderson  <rth@redhat.com>
2155
2156         * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
2157         for Linux.
2158
2159 2011-11-26  Richard Henderson  <rth@redhat.com>
2160
2161         * optabs.c (expand_atomic_fetch_op): Always return result.
2162
2163         * optabs.c (init_sync_libfuncs_1): Include max in iteration.
2164
2165         * omp-low.c (expand_omp_atomic): Assume anything aligned to
2166         BIGGEST_ALIGNMENT is aligned.
2167
2168 2011-11-26  Richard Henderson  <rth@redhat.com>
2169
2170         * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
2171         (UNSPECV_TAS_1, UNSPECV_TAS_2): New.
2172         (I): New mode iterator.
2173         (xz): New mode attribute.
2174         * config/m68k/sync.md: New file.
2175
2176         * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
2177         * config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
2178
2179 2011-11-26  Nathan Sidwell  <nathan@acm.org>
2180
2181         PR gcov-profile/51297
2182         * gcov.c (main): Allocate initial names and sources arrays.
2183         (find_source): Don't check for null name or source arrays here.
2184
2185 2011-11-26  Jakub Jelinek  <jakub@redhat.com>
2186
2187         PR rtl-optimization/49912
2188         * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
2189         when counting n_branch.
2190
2191 2011-11-26  Uros Bizjak  <ubizjak@gmail.com>
2192
2193         * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
2194
2195 2011-11-26  Joern Rennecke  <joern.rennecke@embecosm.com>
2196
2197         PR middle-end/50074
2198         * calls.c (mem_overlaps_already_clobbered_arg_p):
2199         Return false if no outgoing arguments have been stored so far.
2200
2201 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
2202
2203         * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
2204
2205 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
2206
2207         PR other/51011
2208         * tree.h (is_builtin_name): No longer external.
2209         * builtins.c (is_builtin_name): Make static.
2210         * varasm.c (incorporeal_function_p): __sync and __atomic external calls
2211         are not incorporeal and may need asm label processing.
2212
2213 2011-11-25  Georg-Johann Lay  <avr@gjlay.de>
2214
2215         PR target/50566
2216         * config/avr/avr-protos.h (avr_log_t): Add field .builtin.
2217         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
2218         Don't bypass TARGET_ALL_DEBUG.  Print self-info with ?.
2219         (avr_log_vadump): Support %D and %X to print double_int.
2220         (avr_double_int_pop_digit): New static function.
2221         (avr_dump_double_int_hex): New static function.
2222
2223 2011-11-24  Enkovich Ilya  <ilya.enkovich@intel.com>
2224
2225         PR target/51287
2226         * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
2227         attr check.
2228
2229 2011-11-24  Andrew MacLeod  <amacleod@redhat.com>
2230
2231         * optab.c (maybe_emit_atomic_exchange): New.  Try to emit an
2232         atomic_exchange pattern.
2233         (maybe_emit_sync_lock_test_and_set): New.  Try to emit an exchange
2234         using __sync_lock_test_and_set.
2235         (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
2236         exchange using a compare_and_swap loop.
2237         (expand_sync_lock_test_and_set): New.  Expand sync_lock_test_and_set.
2238         (expand_atomic_test_and_set): New.  Expand test_and_set operation.
2239         (expand_atomic_exchange): Use new maybe_emit_* functions.
2240         (expand_atomic_store): Use new maybe_emit_* functions.
2241         * builtins.c (expand_builtin_sync_lock_test_and_set): Call
2242         expand_sync_lock_test_and_set routine.
2243         (expand_builtin_atomic_exchange): Remove parameter from call.
2244         (expand_builtin_atomic_clear): Use atomic_clear pattern if present.
2245         (expand_builtin_atomic_test_and_set): Add target and simply call
2246         expand_atomic_test_and_set.
2247         (expand_builtin): Add target to expand_builtin_atomic_test_and_set.
2248         * expr.h (expand_atomic_exchange): Add parameter.
2249         (expand_sync_lock_test_and_set): New prototype.
2250         (expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
2251
2252 2011-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2253
2254         PR target/51134
2255         * config/i386/i386.h (processor_costs): Revert revision 181357.
2256         * config/i386/i386.c (cost models): Likewise.
2257         (core_cost): Likewise.
2258         (promote_duplicated_reg): Likewise.
2259         (promote_duplicated_reg_to_size): Likewise.
2260         (processor_target): Likewise.
2261         (expand_set_or_movmem_via_loop_with_iter): Likewise.
2262         (expand_set_or_movmem_via_loop): Likewise.
2263         (emit_strset): Likewise.
2264         (expand_movmem_epilogue): Likewise.
2265         (expand_setmem_epilogue): Likewise.
2266         (expand_movmem_prologue): Likewise.
2267         (expand_setmem_prologue): Likewise.
2268         (expand_constant_movmem_prologue): Likewise.
2269         (expand_constant_setmem_prologue): Likewise.
2270         (decide_alg): Likewise.
2271         (decide_alignment): Likewise.
2272         (ix86_expand_movmem): Likewise.
2273         (ix86_expand_setmem): Likewise.
2274         (ix86_slow_unaligned_access): Likewise.
2275         * config/i386/i386.md (strset): Likewise.
2276         * config/i386/sse.md (vec_dupv4si): Likewise.
2277         (vec_dupv2di): Likewise.
2278
2279 2011-11-24  Georg-Johann Lay  <avr@gjlay.de>
2280
2281         * config/avr/avr.md (*rotlhi2.15): Set length to 4.
2282
2283 2011-11-24  Razya Ladelsky  <razya@il.ibm.com>
2284
2285         * tree-data-ref.c (initialize_data_dependence_relation): Update
2286         comment for the self dependence case.
2287         (compute_self_dependence): Remove.
2288         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
2289         compute_self_dependenc.
2290
2291 2011-11-24  Alan Modra  <amodra@gmail.com>
2292
2293         * c-decl.c (warn_if_shadowing): Don't warn if shadowed
2294         identifier is from system header.
2295
2296 2011-11-23  Jakub Jelinek  <jakub@redhat.com>
2297
2298         PR target/51261
2299         * config/i386/i386.c (decide_alg): Initialize *dynamic_check
2300         even if !optimize.
2301
2302 2011-11-23  Vladimir Makarov  <vmakarov@redhat.com>
2303
2304         PR rtl-optimization/48455
2305         * doc/invoke.texi (-fira-region): Document default values.
2306
2307         * flags-types.h (enum ira_region): Add new value
2308         IRA_REGION_AUTODETECT.
2309
2310         * common.opt (fira-region): Set up initial value to
2311         IRA_REGION_AUTODETECT.
2312
2313         * toplev.c (process_options): Set up flag_ira_region depending on
2314         -O options.
2315
2316         * ira.c (ira.c): Remove optimize guard for ira_build.
2317
2318 2011-11-23  Chung-Lin Tang  <cltang@codesourcery.com>
2319
2320         PR rtl-optimization/50496
2321         * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
2322         only after epilogue is created. Add comments.
2323
2324 2011-11-22  Richard Henderson  <rth@redhat.com>
2325
2326         * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
2327         Generate the barrier required for the memory model.
2328         (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
2329         * config/ia64/ia64-protos.h: Update.
2330         * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
2331         (UNSPEC_CMPXCHG_REL): New.
2332         * config/ia64/sync.md (mem_thread_fence): New.
2333         (atomic_load<IMODE>, atomic_store<IMODE>): New.
2334         (atomic_compare_and_swap<IMODE>): New.
2335         (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
2336         (atomic_exchange<IMODE>): New.
2337         (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
2338         (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
2339         (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
2340         (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
2341         (fetchadd_rel_<I48MODE>): New.
2342         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
2343         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
2344         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
2345         (sync_compare_and_swap<IMODE>): Remove.
2346         (sync_lock_release<IMODE>): Remove.
2347
2348         * config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
2349         and UNSPECV_* constants.
2350
2351 2011-11-22  Tom de Vries  <tom@codesourcery.com>
2352
2353         PR rtl-optimization/50764
2354         * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
2355         not moved past preceding jump.
2356
2357 2011-11-22  Jeff Law  <law@redhat.com>
2358
2359         * doc/contrib.texi: Add entry for David Binderman.
2360
2361 2011-11-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2362
2363         * postreload.c (reload_combine): Mark reg_state as invalid at
2364         volatile insns if there has been a use already.
2365
2366 2011-11-21  Aldy Hernandez  <aldyh@redhat.com>
2367
2368         * opts.c (finish_options): Do not fail for -fgnu-tm.
2369         * gimple-streamer-out.c (output_gimple_stmt): Handle
2370         GIMPLE_TRANSACTION.
2371         * gimple-streamer-in.c (input_gimple_stmt): Same.
2372         * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
2373         (lto_output_node): Write tm_clone bit.
2374
2375 2011-11-22  Ian Lance Taylor  <iant@google.com>
2376
2377         * doc/install.texi (Configuration): Correct doc of
2378         --enable-build-poststage1-with-cxx: it is not experimental.
2379
2380 2011-11-22  Jakub Jelinek  <jakub@redhat.com>
2381
2382         PR tree-optimization/51074
2383         * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
2384         handling for BYTES_BIG_ENDIAN.
2385         * optabs.c (can_vec_perm_for_code_p): Likewise.
2386
2387 2011-11-22  Michael Matz  <matz@suse.de>
2388
2389         PR other/51125
2390         * trans-mem.c (expand_block_tm): Ignore clobbers.
2391
2392 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
2393
2394         *  config/darwin.h (ENDFILE_SPEC): New.
2395         (DARWIN_CRT1_SPEC): Add crttms.o.
2396         (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
2397         * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
2398
2399 2011-11-22  Michael Matz  <matz@suse.de>
2400
2401         PR c++/51264
2402         * tree.c (iterative_hash_expr): Remove break after return.
2403
2404 2011-11-22  Iain Sandoe  <iains@gcc.gnu.org>
2405
2406         * target.def (tm_clone_table_section): New hook.
2407         * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
2408         * doc/tm.texi: Regenerate.
2409         * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
2410         * output.h (default_clone_table_section): New prototype.
2411         * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
2412         * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
2413         * config/darwin.c (darwin_tm_clone_table_section): New.
2414
2415 2011-11-21  Torvald Riegel  <triegel@redhat.com>
2416
2417         * trans-mem.c (diagnose_tm_1): Print an expression instead of a
2418         declaration in error messages for indirect calls.
2419
2420 2011-11-21  David S. Miller  <davem@davemloft.net>
2421
2422         * config/sparc/sparc.c (sparc_regmode_natural_size): New function
2423         implementing REGMODE_NATURAL_SIZE taking into consideration vector
2424         modes.
2425         (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
2426         * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
2427         sparc_modes_tieable_p): Declare.
2428         * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
2429         MODES_TIEABLE_P): Use new helper functions.
2430
2431         Revert
2432         2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2433
2434         PR middle-end/50325
2435         * expmed.c (store_bit_field_1): Use extract_bit_field on big
2436         endian targets if the source cannot be exactly covered by word
2437         mode chunks.
2438
2439 2011-11-21  Jakub Jelinek  <jakub@redhat.com>
2440
2441         PR debug/50827
2442         * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
2443         macro instead of XEXP.
2444
2445 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
2446
2447         * configure: Regenerate.
2448
2449 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
2450
2451         * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
2452         must not affect cc0.
2453         * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
2454         register does not change cc0. Same for any constant to ld-register.
2455
2456 2011-11-21  Uros Bizjak  <ubizjak@gmail.com>
2457
2458         * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
2459         UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
2460         Move from config/i386/i386.md
2461         (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
2462         * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
2463         UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
2464         UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
2465         UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
2466         UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
2467         UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
2468         UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
2469         UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
2470         UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
2471         UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
2472         UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
2473         UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
2474         (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
2475         UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
2476         Ditto.
2477         * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
2478         UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
2479         (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
2480         UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
2481         (sse2_lfence): Move from config/i386/sse.md.
2482         (*sse2_lfence): Ditto.
2483         (sse_sfence): Ditto.
2484         (*sse_sfence): Ditto.
2485         (sse2_mfence): Ditto.
2486         (mfence_sse2): Ditto.  Rename from *sse2_mfence.  Enable also
2487         for TARGET_64BIT.
2488         (mem_thread_fence): Use mfence_sse2.
2489
2490 2011-11-21  Georg-Johann Lay  <avr@gjlay.de>
2491
2492         * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
2493         * config/avr/avr-devices.c: Ditto. And initialize it.
2494         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
2495         __AVR_SFR_OFFSET__.
2496         * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
2497         (out_movhi_r_mr, out_movhi_mr_r): Remove.
2498         (out_movsi_r_mr, out_movsi_mr_r): Remove.
2499         * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
2500         (*insv.io, *insv.not.io): Ditto.
2501         * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
2502         (print_operand): Implement "%i" to print address as I/O address.
2503         (output_movqi): Clean up call of out_movqi_mr_r.
2504         (output_movhi): Clean up call of out_movhi_mr_r.
2505         (avr_file_start): Use avr_current_arch->sfr_offset instead of
2506         magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
2507         (avr_out_sbxx_branch): Use %i instead of %m-0x20.
2508         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
2509         (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
2510         (out_shift_with_cnt): Clean up code: Use avr_asm_len.
2511         (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
2512         (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
2513         Clean up call of avr_out_store_psi.
2514         (output_reload_in_const): Don't cut symbols longer than 2 bytes.
2515         (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
2516         try if setting pre-cleared register is advantageous.
2517         (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
2518
2519 2011-11-20  Joey Ye  <joey.ye@arm.com>
2520
2521         * expr.c (expand_expr_real_1): Correctly handle strict volatile
2522         bitfield loads smaller than mode size.
2523
2524 2011-11-20  Richard Henderson  <rth@redhat.com>
2525
2526         * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
2527
2528 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
2529
2530         PR target/51235
2531         * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
2532         patterns for supported mode only.
2533
2534         PR target/51236
2535         * config/i386/i386.c (ix86_expand_builtin)
2536         <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
2537
2538 2011-11-20  Uros Bizjak  <ubizjak@gmail.com>
2539
2540         * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
2541         (UNSPEC_MOVNTQ): New unspec.
2542         * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
2543         Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
2544         * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
2545         UNSPEC_MOVNTI.
2546         (STORENT_MODE): Add DI and V4DI modes.
2547
2548 2011-11-20  Nathan Sidwell  <nathan@acm.org>
2549
2550         PR gcov-profile/51113
2551         * coverage.c (build_var): Propagate visibility for public
2552         decls.  Use make_decl_one_only for PIC correctness.
2553
2554         testsuite/
2555         * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
2556         * gcc.misc-tests/gcov-16.c: New.
2557         * gcc.misc-tests/gcov-17.c: New.
2558         * g++.dg/gcov/gcov-8.C: New.
2559         * g++.dg/gcov/gcov-9.C: New.
2560         * g++.dg/gcov/gcov-10.C: New.
2561
2562 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2563
2564         PR rtl-optimization/51187
2565         * reorg.c (relax_delay_slots): Do not consider a jump useless if there
2566         is a barrier between the jump and its target label.
2567
2568 2011-11-19  Patrick Marlier  <patrick.marlier@gmail.com>
2569
2570         PR middle-end/51211
2571         * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
2572
2573 2011-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2574
2575         * expmed.c (store_bit_field_1): Revert bogus formatting change.
2576
2577 2011-11-19  Richard Earnshaw  <rearnsha@arm.com>
2578
2579         PR target/50493
2580         * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
2581         overlap of src and dest operands.
2582
2583 2011-11-19  Iain Sandoe  <iains@gcc.gnu.org>
2584
2585         * config/darwin.h (ASM_DEBUG_SPEC): New.
2586         * config/darwin9.h (ASM_DEBUG_SPEC): New.
2587
2588 2011-11-18  Jan Hubicka  <jh@suse.cz>
2589
2590         * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
2591         issues are fixed.
2592
2593 2011-11-18  Anatoly Sokolov  <aesok@post.ru>
2594
2595         * config/cris/cris.c (cris_function_value_regno_p): Make static.
2596         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2597         * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
2598         * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
2599
2600 2011-11-18  H.J. Lu  <hongjiu.lu@intel.com>
2601
2602         PR target/33944
2603         * doc/extend.texi: Document __builtin_ia32_movnti64.
2604
2605         * config/i386/emmintrin.h (_mm_stream_si64): New.
2606
2607         * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
2608
2609         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
2610         (bdesc_special_args): Update __builtin_ia32_movnti.  Add
2611         __builtin_ia32_movnti64.
2612         (ix86_expand_special_args_builtin): Handle
2613         VOID_FTYPE_PLONGLONG_LONGLONG.
2614
2615         * config/i386/i386.md (UNSPEC_MOVNTI): New.
2616
2617         * config/i386/sse.md (sse2_movntsi): Renamed to ...
2618         (sse2_movnti<mode>): This.
2619
2620 2011-11-18  Georg-Johann Lay  <avr@gjlay.de>
2621
2622         PR target/49868
2623         * config/avr/avr.h (base_arch_s): Add field n_segments.
2624         (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
2625         ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
2626         (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
2627         (INIT_EXPANDERS): New define.
2628         * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
2629         (avr_init_expanders): New.
2630         (avr_emit_movmemhi, avr_out_movmem): New.
2631         (avr_xload_libgcc_p): New.
2632         * config/avr/avr-c.c (avr_register_target_pragmas): Register
2633         address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
2634         (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
2635         __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
2636         * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
2637
2638         * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
2639         3 bits instead of just 1.
2640         (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
2641         (progmem_section): Change from section to array of sections.
2642         (progmem_section_prefix): New static variable.
2643         (avr_file_start): Print set for __RAMPZ__
2644         (avr_option_override): Move initialization of RTXes from here...
2645         (avr_init_expanders): ...to this new function.
2646         (avr_pgm_segment): New static function.
2647         (avr_decl_pgm_p): Handle error_mark_node.
2648         (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
2649         (avr_out_xload, avr_find_unused_d_reg): New static functions.
2650         (expand_prologue, expand_epilogue): Use rampz_rtx.
2651         (print_operand): Hande CONST_STRING.
2652         (avr_xload_libgcc_p): New static function.
2653         (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
2654         (avr_progmem_p): Return 2 for 24-bit flash address space.
2655         (avr_out_sbxx_branch): Clean-up code from ASn macros.
2656         (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
2657         address and print symbolically.
2658         (avr_asm_named_section, avr_section_type_flags,
2659         avr_encode_section_info, avr_asm_select_section,
2660         avr_addr_space_address_mode, avr_addr_space_pointer_mode,
2661         avr_addr_space_legitimate_address_p, avr_addr_space_convert,
2662         avr_addr_space_legitimize_address): Handle new address spaces.
2663         (avr_output_progmem_section_asm_op): New static function.
2664         (avr_asm_init_sections): Initialize progmem_section[].
2665         (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
2666         (avr_const_address_lo16): New static function.
2667         (avr_assemble_integer): Use it to handle 3-byte integers.
2668         (avr_emit_movmemhi, avr_out_movmem): New functions.
2669
2670         * config/avr/predicates.md (nox_general_operand): Handle new
2671         address spaces.
2672         * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
2673         (adjust_len): Add xload, movmem.
2674         (SP_ADDR): New define_constants.
2675         (isa): Add "lpm", "lpmx", "elpm", "elpmx".
2676         (enabled): Handle them.
2677         (load<mode>_libgcc): New expander.
2678         (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
2679         (xload8_A, xload<mode>_A): New insn-and-splits.
2680         (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
2681         (mov<mode>): Handle new address spaces.
2682         (movmemhi): Rewrite using avr_emit_movmemhi.
2683         (MOVMEM_r_d): New mode attribute.
2684         (movmem_<mode>, movmem_qi_elpm): New insns.
2685         (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
2686         C-code.  Use label instead of hard-coded instrunction lengths.
2687
2688 2011-11-18  Martin Jambor  <mjambor@suse.cz>
2689
2690         PR tree-optimization/50605
2691         * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
2692         of IPA invariant decls.
2693
2694 2011-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2695
2696         * tree-outof-ssa.c (insert_back_edge_copies):  Add call to
2697         mark_dfs_back_edges.
2698
2699 2011-11-18  Iain Sandoe  <iains@gcc.gnu.org>
2700
2701         PR target/49992
2702         * configure.ac: Remove ranlib special-casing for Darwin.
2703         * configure: Regenerate.
2704
2705 2011-11-18  Uros Bizjak  <ubizjak@gmail.com>
2706
2707         PR tree-optimization/51118
2708         * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
2709         before using TREE_TYPE accessor on expr.
2710
2711 2011-11-17  Jan Hubicka  <jh@suse.cz>
2712
2713         PR bootstrap/51134
2714         * i386.c (atom_cost): Fix 32bit memset description.
2715         (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
2716         for epilogue loops.
2717         (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
2718         byte loop.
2719         (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
2720         when not optimizing always use rep movsb or lincall; do not produce
2721         word sized loops when optimizing memset for size (to avoid need
2722         for large constants).
2723         (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
2724         choose unroll factors better; always do 128bit moves when producing
2725         SSE loops; do not produce loopy epilogue when size is too small.
2726         (promote_duplicated_reg_to_size): Do not look into desired alignments
2727         when doing vector expansion.
2728         (ix86_expand_setmem): Track better when promoted value is available;
2729         choose unroll factors more sanely. Output loopy epilogue only
2730         when needed.
2731
2732 2011-11-17  Steve Ellcey  <sje@cup.hp.com>
2733
2734         PR middle-end/51144
2735         * output.h (fprint_w): Remove.
2736         * final.c (fprint_w): Remove.
2737         (output_addr_const): Change fprint_w back to fprintf.
2738
2739 2011-11-17  Andrew Pinski  <apinski@cavium.com>
2740
2741         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
2742
2743 2011-11-17  Andrew MacLeod  <amacleod@redhat.com>
2744
2745         * builtins.c (expand_builtin): Remove 4th parameter representing
2746         weak/strong mode when __atomic_compare_exchange becomes a library call.
2747
2748 2011-11-17  Richard Henderson  <rth@redhat.com>
2749
2750         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
2751         new pseudo for target after convert_modes.
2752         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
2753
2754 2011-11-17  Richard Henderson  <rth@redhat.com>
2755
2756         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
2757         new pseudo for target after convert_modes.
2758         (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
2759
2760 2011-11-17  Richard Henderson  <rth@redhat.com>
2761
2762         * builtins.c (expand_builtin_mem_thread_fence): Remove.
2763         (expand_builtin_mem_signal_fence): Remove.
2764         (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
2765         (expand_builtin_sync_synchronize): Likewise.
2766         (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
2767         * optabs.c (expand_asm_memory_barrier): Split out from
2768         expand_builtin_mem_signal_fence.
2769         (expand_mem_thread_fence): New, a combination of code from
2770         expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
2771         (expand_mem_signal_fence): Moved and renamed from
2772         expand_builtin_mem_signal_fence.
2773         (expand_atomic_exchange): Use expand_mem_thread_fence.
2774         (expand_atomic_load, expand_atomic_store): Likewise.
2775         * expr.h, optabs.h: Update decls.
2776
2777 2011-11-17  Bin Cheng  <bin.cheng@arm.com>
2778
2779         PR rtl-optimization/50663
2780         * cprop.c (implicit_set_indexes): New global variable.
2781         (insert_set_in_table): Add additional parameter and record implicit
2782         set information.
2783         (hash_scan_set): Add additional parameter and pass it to above.
2784         (hash_scan_insn): Pass false to hash_scan_set.
2785         (compute_hash_table_work): Pass true to hash_scan_set.
2786         (compute_cprop_data): Add implicit set to AVIN of block which the
2787         implicit set is recorded for.
2788         (one_cprop_pass): Handle implicit_set_indexes array.
2789
2790 2011-11-17  Michael Matz  <matz@suse.de>
2791
2792         PR middle-end/50644
2793         PR middle-end/50741
2794         * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
2795         current function.
2796         (remove_unused_locals): Ditto.
2797
2798 2011-11-16  Richard Henderson  <rth@redhat.com>
2799
2800         * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
2801         ALIAS_SET_MEMORY_BARRIER when creating a new memory.
2802         (alpha_split_atomic_exchange_12): Likewise.
2803         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
2804
2805 2011-11-16  Joseph Myers  <joseph@codesourcery.com>
2806
2807         * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
2808
2809 2011-11-16  David Edelsohn  <dje.gcc@gmail.com>
2810
2811         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
2812         Default to minimum alignment if decl is NULL.
2813
2814 2011-11-16  Uros Bizjak  <ubizjak@gmail.com>
2815
2816         * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
2817         sequence for AVX.
2818         (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
2819
2820 2011-11-16  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
2821
2822         * doc/invoke.texi: Document AMD bdver1 and btver1.
2823
2824 2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
2825             Bernd Schmidt <bernds@coudesourcery.com>
2826             Sebastian Huber <sebastian.huber@embedded-brains.de>
2827
2828         PR target/49641
2829         * config/arm/arm.c (store_multiple_sequence): Avoid cases where
2830         the base reg is stored iff compiling for Thumb1.
2831
2832 2011-11-16  Razya Ladelsky  <razya@il.ibm.com>
2833
2834         PR tree-optimization/49960
2835         * tree-data-ref.c (initialize_data_dependence_relation): Add
2836         initializations.
2837         Remove call to compute_self_dependence.
2838         (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
2839         (compute_self_dependence): Remove old code. Add call to
2840         compute_affine_dependence.
2841         (compute_all_dependences): Remove call to compute_self_dependence.
2842         Add call to compute_affine_dependence.
2843
2844 2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2845
2846         PR middle-end/50325
2847         * expmed.c (store_bit_field_1): Use extract_bit_field on big
2848         endian targets if the source cannot be exactly covered by word
2849         mode chunks.
2850
2851 2011-11-15  Joseph Myers  <joseph@codesourcery.com>
2852
2853         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
2854         ELF_STRING_LIMIT.
2855
2856 2011-11-15  Richard Henderson  <rth@redhat.com>
2857
2858         * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
2859         (alpha_post_atomic_barrier): New.
2860         (alpha_split_atomic_op): New memmodel argument; honor it.
2861         (alpha_split_compare_and_swap): Take array of operands.  Honor
2862         memmodel; always set bool output
2863         (alpha_expand_compare_and_swap_12): Similarly.
2864         (alpha_split_compare_and_swap_12): Similarly.
2865         (alpha_split_atomic_exchange): Similarly.  Rename from
2866         alpha_split_lock_test_and_set.
2867         (alpha_expand_atomic_exchange_12): Similarly.  Rename from
2868         alpha_expand_lock_test_and_set_12.
2869         (alpha_split_atomic_exchange_12): Similarly.  Rename from
2870         alpha_split_lock_test_and_set_12.
2871         * config/alpha/alpha-protos.h: Update.
2872         * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
2873         * config/alpha/constraints.md ("w"): New.
2874         * config/alpha/predicates.md (mem_noofs_operand): New.
2875         * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
2876         sync_compare_and_swap<mode>; add the new parameters.
2877         (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
2878         (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
2879         (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
2880         (atomic_<op><mode>): Update from sync_<op><mode>.
2881
2882 2011-11-16  Tom de Vries  <tom@codesourcery.com>
2883
2884         * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
2885
2886 2011-11-16  Alan Modra  <amodra@gmail.com>
2887
2888         PR rtl-optimization/51051
2889         PR bootstrap/51086
2890         * function.c (thread_prologue_and_epilogue_insns): Guard
2891         emitting return with single_succ_p test.
2892
2893 2011-11-15  Joern Rennecke  <joern.rennecke@embecosm.com>
2894
2895         * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
2896         get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
2897
2898 2011-11-15  Uros Bizjak  <ubizjak@gmail.com>
2899
2900         * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
2901         (vec_pack_sfix_trunc_v2df): Ditto.
2902         (vec_pack_sfix_v2df): Ditto.
2903         (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
2904         avx_vec_concatv8si patterns.
2905         (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
2906         avx_vec_concatv8si patterns.
2907
2908 2011-11-15  Torvald Riegel  <triegel@redhat.com>
2909
2910         * c-parser.c (c_parser_transaction_expression): Require parentheses
2911         when parsing transaction expressions.
2912
2913 2011-11-15  Tristan Gingold  <gingold@adacore.com>
2914
2915         * incpath.c (get_added_cpp_dirs): New function.
2916         * incpath.h (get_added_cpp_dirs): Declare.
2917         * config/vms/vms-c.c (vms_c_register_includes): New function.
2918         (vms_std_modules): New variable.
2919         * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
2920         (vms_c_register_includes): Declare.
2921
2922 2011-11-15  Tristan Gingold  <gingold@adacore.com>
2923
2924         * c-family/c-pragma.h (pragma_extern_prefix): Declare.
2925         * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
2926         * config/vms/vms-c.c (saved_extern_prefix): New variable.
2927         (vms_pragma_extern_prefix): New function.
2928         (vms_c_register_pragma): Register vms_pragma_extern_prefix.
2929
2930 2011-11-15  Georg-Johann Lay  <avr@gjlay.de>
2931
2932         PR target/49868
2933         * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
2934         (REGISTER_TARGET_PRAGMAS): New define.
2935         * config/avr/avr-protos.h (avr_mem_pgm_p): New.
2936         (avr_load_libgcc_p): New.
2937         (avr_register_target_pragmas): New.
2938         (asm_output_external_libcall): Remove.
2939         (avr_log_t): Add field "progmem".  Order alphabetically.
2940         * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
2941         * config/avr/avr-c.c (langhooks.h): New include.
2942         (avr_register_target_pragmas): New function. Register address
2943         space __pgm.
2944         (avr_cpu_cpp_builtins): Add built-in define __PGM.
2945
2946         * config/avr/avr.c: Include "c-family/c-common.h".
2947         (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
2948         (TARGET_LEGITIMIZE_ADDRESS): Remove define.
2949         (TARGET_ADDR_SPACE_SUBSET_P): Define to...
2950         (avr_addr_space_subset_p): ...this new static function.
2951         (TARGET_ADDR_SPACE_CONVERT): Define to...
2952         (avr_addr_space_convert): ...this new static function.
2953         (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
2954         (avr_addr_space_address_mode): ...this new static function.
2955         (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
2956         (avr_addr_space_pointer_mode): ...this new static function.
2957         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
2958         (avr_addr_space_legitimate_address_p): ...this new static function.
2959         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
2960         (avr_addr_space_legitimize_address): ...this new static function.
2961         (avr_mode_code_base_reg_class): Handle address spaces.
2962         (avr_regno_mode_code_ok_for_base_p): Ditto.
2963         (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
2964         (avr_option_override): Initialize them.
2965         (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
2966         variables.
2967         (avr_pgm_segment): New static function.
2968         (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
2969         (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
2970         (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
2971         avr_out_lpm to handle loads from progmem.
2972         (avr_load_libgcc_p): New static function.
2973         (avr_progmem_p): Test if decl is in flash.
2974         (avr_pgm_pointer_const_p): New static function.
2975         (avr_nonconst_pointer_addrspace): New static function.
2976         (avr_pgm_check_var_decl): New static function.
2977         (avr_insert_attributes): Use it.  Change error message to report
2978         cause (progmem or address space) when code wants to write to flash.
2979         (avr_section_type_flags): Unset section flag SECTION_BSS for
2980         data in progmem.
2981
2982         * config/avr/predicates.md (nop_general_operand): New predicate.
2983         (nox_general_operand): New predicate.
2984         * config/avr/avr.md (LPM_REGNO): New define_constant.
2985         (load<mode>_libgcc): New expander.
2986         (*load.<mode>.libgcc): New insn.
2987         (mov<mode>): Handle loads from non-generic AS.
2988         (movmemhi): Ditto.  Propagate address space information to newly
2989         created MEM.
2990         (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
2991         to nox_general_operand.
2992         (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
2993         nop_general_operand.
2994         (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
2995         (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
2996         (split-lpmx): New split.
2997         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
2998         *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
2999
3000 2011-11-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3001
3002         * ipa-cp.c (ipa_value_from_jfunc): Make global.
3003         (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
3004         (get_indirect_edge_target): Rename, make global.
3005         (devirtualization_time_bonus, estimate_local_effects,)
3006         (ipcp_discover_new_direct_edges): Update.
3007         * ipa-inline-analysis.c (evaluate_conditions_for_edge):
3008         Generalize to also handle types.  Rename to ...
3009         (evaluate_properties_for_edge): Use instead of
3010         evaluate_conditions_for_edge.
3011         (estimate_edge_devirt_benefit): New function.
3012         (estimate_calls_size_and_time): Use it.
3013         (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
3014         (inline_merge_summary): Update.
3015         (do_estimate_edge_time, do_estimate_edge_growth): Update.  Calculate
3016         parameter information at the call site and pass it on to subroutines.
3017         * tree-inline.c (estimate_num_insns): Distinguish between direct and
3018         indirect calls.
3019         (init_inline_once): Set size and time costs or indirect calls.
3020         * tree-inline.h (eni_weights): Add indirect_call_cost.
3021
3022 2011-11-15  Tom de Vries  <tom@codesourcery.com>
3023
3024         PR tree-optimization/51005
3025         * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
3026         mark_basic_block_deleted.
3027         (update_worklist): Inline purge_bbs.
3028         (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
3029         (delete_block_update_dominator_info): Remove.
3030         (replace_block_by): Remove update_vops parameter.  Partially evaluate
3031         for update_vops == false.
3032         (apply_clusters): Remove update_vops parameter.  Remove update_vops
3033         argument in replace_block_by call.
3034         (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
3035         (tail_merge_optimize): Remove update_vops argument to apply_clusters.
3036         Remove call to purge_bbs.  Add calls to calculate_dominance_info and
3037         free_dominance_info.  Add MAY_HAVE_DEBUG_STMTS  before calling
3038         update_debug_stmts.  Mark vop var for renaming, if necessary.
3039
3040 2011-11-15  Bernd Schmidt  <bernds@codesourcery.com>
3041
3042         PR rtl-optimization/51051
3043         * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
3044         move would cause fallthrough into the exit block.
3045
3046 2011-11-14  Richard Henderson  <rth@redhat.com>
3047
3048         * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
3049         handled.
3050         (emit_store_conditional): Likewise.
3051         (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
3052         (rs6000_adjust_atomic_subword): New.
3053         (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
3054         (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
3055         for pre-reload expansion.
3056         (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
3057         rs6000_expand_compare_and_swapqhi): Merge into ...
3058         (rs6000_expand_atomic_compare_and_swap): ... here.  New function.
3059         rs6000_split_lock_test_and_set; expand immediately.  Handle
3060         QImode and HImode.
3061         * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
3062         from UNSPECV_LWSYNC.
3063         * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
3064         (mem_thread_fence): New.
3065         (hwsync): Rename from memory_barrier.
3066         (*hwsync): Rename from *sync_internal.
3067         (lwsync, *lwsync): Mirror hwsync implementation.
3068         (isync): Don't reference memory.
3069         (loadsync): New.
3070         (atomic_load<INT>, atomic_store<INT>): New.
3071         (ATOMIC): New mode iterator.
3072         (load_locked<ATOMIC>): Rename from load_locked_<GPR>.
3073         (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
3074         (sync_compare_and_swap<GPR>): Remove.
3075         (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
3076         (sync_compare_and_swapqhi_internal): Remove.
3077         (sync_lock_test_and_set<GPR>): Remove.
3078         (sync_<FETCHOP><INT1>): Remove.
3079         (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
3080         (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
3081         (sync_old_<FETCHOP><GPR>): Remove.
3082         (*sync_old_<FETCHOP>si_internal): Remove.
3083         (*sync_old_<FETCHOP>di_internal): Remove.
3084         (sync_old_nand<INT1>): Remove.
3085         (*sync_old_nand<GPR>_internal): Remove.
3086         (sync_new_<FETCHOP><GPR>): Remove.
3087         (*sync_new_<FETCHOP>si_internal): Remove.
3088         (*sync_new_<FETCHOP>di_internal): Remove.
3089         (sync_new_nand<INT1>): Remove.
3090         (*sync_new_nand<GPR>_internal): Remove.
3091         (*atomic_andsi, *atomic_anddi): Remove.
3092         (*sync_addshort_internal, *sync_subshort_internal): Remove.
3093         (*sync_andsi_internal, *sync_boolsi_internal): Remove.
3094         (*sync_boolcshort_internal): Remove.
3095         (sync_lock_release<INT1>): Remove.
3096         (atomic_compare_and_swap<INT1>): New.
3097         (atomic_exchange<INT1>): New.
3098         (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
3099         (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
3100         (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
3101
3102 2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
3103
3104         * config/i386/sse.md (round<mode>2): Use register_operand for
3105         operand 1 predicate.
3106         (round<mode>2_sfix): Ditto.
3107         (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
3108
3109 2011-11-14  Nathan Sidwell  <nathan@acm.org>
3110
3111         * gcov.c (canonicalize_name): Protect use of S_ISLNK.
3112
3113 2011-11-14  Jan Hubicka  <jh@suse.cz>
3114
3115         PR target/51126
3116         * config/i386/i386.c (core cost model): Correct pasto.
3117
3118 2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
3119
3120         * config/i386/sse.md (round<mode>2_sfix): New expander.
3121         (round<mode>2_vec_pack_sfix): Ditto.
3122         (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
3123         (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
3124         * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
3125         V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
3126         V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
3127         * config/i386/i386.c (ix86_builtins): Add
3128         IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
3129         IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
3130         (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
3131         __builtin_ia32_roundpd_az_vec_pack_sfix{,256},
3132         __builtin_ia32_{floorps,ceilps}_sfix{,256}and
3133         __builtin_ia32_roundps_az_sfix{,256} descriptions.
3134         (ix86_expand_sse_round_vec_pack_sfix): New.
3135         (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
3136         V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
3137         V8SI_FTYPE_V4DF_V4DF_ROUND types.  Check last argument of
3138         CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
3139         CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
3140         (ix86_builtin_vectorized_function): Handle
3141         BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
3142         BUILT_IN_{I,L,LL}ROUND{,F}
3143
3144 2011-11-14  Jan Hubicka  <jh@suse.cz>
3145
3146         PR middle-end/50598
3147         * cgraph.h (varpool_externally_visible_p): Declare.
3148         (varpool_add_new_variable): Declare.
3149         * tree-emultls.c (get_emutls_init_templ_addr,
3150         new_emutls_decl): Use varpool_add_new_variable.
3151         * ipa.c (varpool_externally_visible_p): Export.
3152         * varpool.c (varpool_add_new_variable): New function.
3153
3154 2011-11-14  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
3155             Jan Hubicka  <jh@suse.cz>
3156
3157         * config/i386/i386.h (processor_costs): Add second dimension to
3158         stringop_algs array.
3159         * config/i386/i386.c (cost models): Initialize second dimension of
3160         stringop_algs arrays.
3161         (core_cost): New costs based on generic64 costs with updated stringop
3162         values.
3163         (promote_duplicated_reg): Add support for vector modes, add
3164         declaration.
3165         (promote_duplicated_reg_to_size): Likewise.
3166         (processor_target): Set core costs for core variants.
3167         (expand_set_or_movmem_via_loop_with_iter): New function.
3168         (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
3169         different loops, produced by this function.
3170         (emit_strset): New function.
3171         (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
3172         use SSE-moves where possible.
3173         (expand_setmem_epilogue): Likewise.
3174         (expand_movmem_prologue): Likewise for prologue.
3175         (expand_setmem_prologue): Likewise.
3176         (expand_constant_movmem_prologue): Likewise.
3177         (expand_constant_setmem_prologue): Likewise.
3178         (decide_alg): Add new argument align_unknown.  Fix algorithm of
3179         strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
3180         (decide_alignment): Update desired alignment according to chosen move
3181         mode.
3182         (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
3183         (ix86_expand_setmem): Likewise.
3184         (ix86_slow_unaligned_access): Implementation of new hook
3185         slow_unaligned_access.
3186         * config/i386/i386.md (strset): Enable half-SSE moves.
3187         * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
3188         (vec_dupv2di): Add expand for vec_dupv2di.
3189
3190 2011-11-14  Dimitrios Apostolou  <jimis@gmx.net>
3191
3192         PR bootstrap/51094
3193         PR middle-end/51116
3194         * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
3195         * varasm.c (default_elf_internal_label): Remove.
3196
3197 2011-11-14  Kai Tietz  <ktietz@redhat.com>
3198
3199         * gcov.c (generate_results): Add missing semicolon and correct indent.
3200
3201 2011-11-14  Ira Rosen  <ira.rosen@linaro.org>
3202
3203         PR bootstrap/51112
3204         * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype.
3205
3206 2011-11-14  Mingjie Xing  <mingjie.xing@gmail.com>
3207
3208         * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes}
3209         to @pxref{Function Attributes}.
3210
3211 2011-11-13  Oleg Endo  <oleg.endo@t-online.de>
3212
3213         PR target/50694
3214         * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
3215         New macros.
3216         (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
3217         taking the default configuration into account.
3218
3219 2011-11-13  Jonathan Wakely  <jwakely.gcc@gmail.com>
3220
3221         * doc/install.texi (Specific): Fix anchor for
3222         x86_64-*-solaris2.1[0-9]*.
3223
3224 2011-11-13  Nathan Sidwell  <nathan@acm.org>
3225
3226         * gcov.c (source_prefix, source_length): New globals.
3227         (flag_relative_only): Likewise.
3228         (print_usage, options, process_args): Update.
3229         (generate_results): Use coverage.name, check
3230         flag_relative_only. Adjust messages.
3231         (find_source): Check source_prefix.
3232         (output_lines): Use coverage.name, adjust messages.
3233         * doc/gcov.texi (Invoking Gcov): Document new options.
3234
3235 2011-11-12  Jason Merrill  <jason@redhat.com>
3236
3237         PR c++/51060
3238         * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
3239         (gimplify_modify_expr): Don't try to simplify it.
3240
3241 2011-11-12  Dimitrios Apostolou  <jimis@gmx.net>
3242
3243         PR bootstrap/51094
3244         * config/elfos.h (STRING_ASM_OP): Define.
3245         * varasm.c (default_elf_asm_output_limited_string): Use it.
3246
3247         PR bootstrap/51094
3248         * gcc/configure.ac: Check for stpcpy declaration.
3249         * system.h: Declare it if not.
3250         * config.in, configure: Regenerate.
3251
3252 2011-11-12  Richard Henderson  <rth@redhat.com>
3253
3254         * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
3255         nonimmediate_operand for the destination.
3256         (fixuns_trunc<SFDF>si2_stfiwx): Likewise.
3257
3258         * builtins.c (expand_builtin_compare_and_swap): If target is const0,
3259         don't pass the target to expand_atomic_compare_and_swap.
3260         (expand_builtin_atomic_compare_exchange): Likewise.
3261
3262         * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
3263         * config/sh/sh.c (sh_init_sync_libfuncs): New.
3264
3265         * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
3266         * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
3267         * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
3268
3269 2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>
3270
3271         PR target/45233
3272         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3273         Only expand a symbol ref. into an access when the entity is defined
3274         in the TU.
3275
3276 2011-11-12  Jan Hubicka  <jh@suse.cz>
3277
3278         PR bootstrap/50822
3279         * cgraphunit.c (output_weakrefs): Output really only weakrefs.
3280
3281 2011-11-12  Nathan Sidwell  <nathan@acm.org>
3282
3283         * gcov.c (struct name_map): New.
3284         (names, n_names, a_names): New global vars.
3285         (print_usage): Adjust usage.
3286         (generate_results): Canonicalize main file name.
3287         (release_structures): Adjust.
3288         (name_search, name_sort): New callbacks.
3289         (find_source): Look for and create a canonical name.
3290         (canonicalize_name): New.
3291         (make_gcov_file_name): Reimplement and fix mangling.
3292         (mangle_name): New.
3293         * doc/gcov.texi: Update documentation about path preservation.
3294
3295 2011-11-11  David S. Miller  <davem@davemloft.net>
3296
3297         * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3298         * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
3299
3300 2011-11-11  Jakub Jelinek  <jakub@redhat.com>
3301
3302         * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
3303         New prototype.
3304         * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
3305         function.
3306         (ix86_expand_epilogue): Use it.
3307         * config/i386/i386.md (return, simple_return): Call it in the
3308         expanders.
3309
3310         PR tree-optimization/51091
3311         * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
3312         rhs also in the va_list_simple_ptr case.
3313
3314         PR tree-optimization/51058
3315         * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
3316         (vect_schedule_slp): Call it.
3317         * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
3318         don't replace scalar calls with setting of their lhs to zero here.
3319
3320         PR tree-optimization/51074
3321         * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
3322         (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
3323         VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
3324         VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
3325         (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
3326         CONSTRUCTOR operands.
3327         * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
3328         expressions.
3329         * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
3330         to 0 .. 2 * elements - 1.
3331
3332 2011-11-11  Richard Henderson  <rth@redhat.com>
3333
3334         * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
3335         (dump_gimple_omp_atomic_store): Likewise.
3336         * optabs.c (can_atomic_exchange_p): New.
3337         * optabs.h (can_atomic_exchange_p): Declare.
3338         * omp-low.c (expand_omp_atomic_load): Implement.
3339         (expand_omp_atomic_store): Likewise.
3340         (expand_omp_atomic): Update for new arguments to load/store.
3341
3342 2011-11-11  Eric Botcazou  <ebotcazou@adacore.com>
3343
3344         * cprop.c: Adjust outdated comments throughout.
3345         (hash_scan_set): Rename PAT parameter into SET.
3346         (cprop_pavloc): Rename into...
3347         (cprop_avloc): ...this.
3348         (cprop_absaltered): Rename into...
3349         (cprop_kill): ...this.
3350         (alloc_cprop_mem): Adjust for above renaming.
3351         (free_cprop_mem): Likewise.
3352         (compute_cprop_data): Likewise.
3353         (compute_local_properties): Rename TRANSP parameter into KILL and
3354         adjust throughout.  Rework comments.
3355         (try_replace_reg): Fix long line.
3356         (cprop_jump): Likewise.
3357         (constprop_register): Fix prototype and take INSN last.
3358         (cprop_insn): Adjust calls to above function.  Fix long lines.
3359         (bypass_block): Likewise.
3360         (one_cprop_pass): Likewise.
3361
3362 2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
3363
3364         * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
3365         (ELF_STRING_LIMIT): Rename from STRING_LIMIT.
3366
3367 2011-11-11  Jason Merrill  <jason@redhat.com>
3368
3369         * varasm.c (default_elf_asm_output_limited_string): #ifdef
3370         ELF_ASCII_ESCAPES.
3371         (default_elf_asm_output_ascii): Likewise.
3372
3373 2011-11-11  Uros Bizjak  <ubizjak@gmail.com>
3374
3375         PR target/50762
3376         * config/i386/constraints.md (j): New address constraint.
3377         * config/i386/predicates.md (lea_address_operand): Redefine as
3378         special predicate.
3379         * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
3380         (*lea_4_zext): Ditto.
3381
3382 2011-11-11  David S. Miller  <davem@davemloft.net>
3383
3384         Revert
3385         2011-11-05  David S. Miller  <davem@davemloft.net>
3386
3387         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
3388         (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
3389         (*zero_extend_v8qi_<P:mode>_insn,
3390         *zero_extend_v4hi_<P:mode>_insn): New insns.
3391         * config/sparc/sparc.c (vector_init_move_words,
3392         vector_init_prepare_elts, sparc_expand_vector_init_vis2,
3393         sparc_expand_vector_init_vis1): New functions.
3394         (vector_init_bshuffle): Rewrite to handle more cases and make use
3395         of locs[] array prepared by vector_init_prepare_elts.
3396         (vector_init_fpmerge, vector_init_faligndata): Delete.
3397         (sparc_expand_vector_init): Rewrite using new infrastructure.
3398
3399 2011-11-11  Jakub Jelinek  <jakub@redhat.com>
3400
3401         * opts-common.c (generate_canonical_option): Free opt_text
3402         it it has been allocated here and not stored anywhere.
3403
3404         * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
3405         vector.
3406         (vect_create_new_slp_node): Don't allocate node before checking stmt
3407         type.
3408         (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
3409         free def_stmts vectors and additionally free oprnd_info.
3410         (vect_build_slp_tree): Adjust callers.  Call it even if
3411         stop_recursion.  If vect_create_new_slp_node or
3412         vect_build_slp_tree fails, properly handle freeing memory.
3413         If it succeeded, clear def_stmts in oprnd_info.
3414
3415 2011-11-11  Dimitrios Apostolou  <jimis@gmx.net>
3416
3417         * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on
3418         multiple lines for readability.
3419         * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare.
3420         (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf.
3421         * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data,
3422         dw2_asm_data_uleb128, dw2_asm_delta_uleb128,
3423         dw2_asm_delta_sleb128): Convert fprintf calls to the new functions.
3424         * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of
3425         fprintf.
3426         * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions
3427         serving as fast replacements for fprintf integer to string conversions.
3428         (sprint_ul_rev): Internal helper for the above.
3429         (output_addr_const) <CONST_INT>: Don't use fprintf.
3430         * varasm.c: Fix some whitespace inconsistencies.
3431         (default_elf_asm_output_limited_string): New.
3432         (default_elf_asm_output_ascii): Likewise.
3433         (default_elf_internal_label): Likewise.
3434         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and
3435         stpcpy instead of sprintf.
3436         (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
3437         (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and
3438         STRING_LIMIT macros.
3439         (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that
3440         provide the same functionality.
3441         * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf.
3442
3443 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
3444
3445         * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
3446
3447 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
3448
3449         PR middle-end/51038
3450         * builtins.c (expand_builtin_atomic_clear): New.  Expand atomic_clear.
3451         (expand_builtin_atomic_test_and_set): New.  Expand atomic test_and_set.
3452         (expand_builtin): Add cases for test_and_set and clear.
3453         * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
3454         (BUILT_IN_ATOMIC_CLEAR): New.
3455
3456 2011-11-10  Roberto Agostino Vitillo  <ravitillo@lbl.gov>
3457
3458         PR debug/50983
3459         * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
3460         value in the current line table.
3461
3462 2011-11-10  Nathan Sidwell  <nathan@acm.org>
3463
3464         * gcov.c (struct function_info): Make src an index, not a pointer.
3465         (struct source_info): Remove index and next source fields.
3466         (fn_end): New static var.
3467         (sources_index): Remove.
3468         (sources): Now a pointer to an array, not a list.
3469         (n_sources, a_sources): New.
3470         (process_file): Adjust for changes to read_graph_file. Insert
3471         functions into source lists and check line numbers here.
3472         (generate_results): Only allocate lines for sources with
3473         contents.  Adjust for source array.
3474         (release_structures): Likewise.
3475         (find_source): Return source index, adjust for source array.
3476         (read_graph_file): Return function list.  Don't insert into source
3477         lists here.
3478         (read_count_file): Take list of functions.
3479         (solve_flow_graph): Reverse the arc lists here.
3480         (add_line_counts): Adjust for source array.
3481
3482 2011-11-10  Jakub Jelinek  <jakub@redhat.com>
3483
3484         PR middle-end/51077
3485         * tree-object-size.c (addr_object_size): Check TREE_CODE of
3486         MEM_REF's operand rather than code of the MEM_REF itself.
3487
3488 2011-11-10  Andrew MacLeod  <amacleod@redhat.com>
3489
3490         PR rtl-optimization/51040
3491         * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should
3492         be AND followed by NOT.
3493         * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND
3494         should be AND followed by NOT.
3495
3496 2011-11-10  Jakub Jelinek  <jakub@redhat.com>
3497
3498         * vec.h (VEC_BASE): If base is at offset 0 in the structure,
3499         use &(P)->base even if P is NULL.
3500
3501         PR rtl-optimization/51023
3502         * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use
3503         val_signbit_known_clear_p for signed comparison narrowing
3504         optimization.  Don't check for non-VOIDmode, use
3505         HWI_COMPUTABLE_MODE_P macro.
3506         <case ZERO_EXTEND>: Don't check for non-VOIDmode.
3507         Optimize even when const_op is equal to GET_MODE_MASK (mode),
3508         don't optimize if const_op is negative.
3509
3510 2011-11-10  Richard Guenther  <rguenther@suse.de>
3511
3512         PR tree-optimization/51042
3513         * tree-ssa-pre.c (phi_translate_1): Avoid recursing on
3514         self-referential expressions.  Refactor code to avoid duplication.
3515
3516 2011-11-10  Richard Guenther  <rguenther@suse.de>
3517
3518         PR tree-optimization/51070
3519         * tree-loop-distribution.c (generate_builtin): Do not replace
3520         the loop with a builtin if the partition contains statements which
3521         results are used outside of the loop.
3522         (pass_loop_distribution): Verify and collect.
3523
3524 2011-11-10  Richard Guenther  <rguenther@suse.de>
3525
3526         PR tree-optimization/51030
3527         * tree-ssa-phiopt.c (jump_function_from_stmt): New function.
3528         (value_replacement): Use it to handle trivial non-empty
3529         intermediate blocks.
3530
3531 2011-11-10  Richard Guenther  <rguenther@suse.de>
3532
3533         PR middle-end/51071
3534         * gimple.c (gimple_has_side_effects): Remove checking code
3535         that doesn't belong here.
3536
3537 2011-11-10  Ira Rosen  <ira.rosen@linaro.org>
3538
3539         PR tree-optimization/51058
3540         * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR.
3541
3542 2011-11-10  Jakub Jelinek  <jakub@redhat.com>
3543
3544         PR tree-optimization/51000
3545         * tree-vect-patterns.c (vect_recog_bool_pattern): If adding
3546         a pattern stmt for a bool store, adjust DR_STMT too.
3547         Don't handle bool conversions to single bit precision lhs.
3548         * tree-vect-stmts.c (vect_remove_stores): If next is a pattern
3549         stmt, remove its related stmt and free its stmt_vinfo.
3550         (free_stmt_vec_info): Free also pattern stmt's vinfo and
3551         pattern def stmt's vinfo.
3552         * tree-vect-loop.c (destroy_loop_vec_info): Don't try to
3553         free pattern stmt's vinfo here.
3554         (vect_transform_loop): When calling vect_remove_stores,
3555         do gsi_next first and don't call gsi_remove.  If not strided
3556         store, free stmt vinfo for gsi_stmt (si) rather than stmt.
3557
3558 2011-11-09  Jakub Jelinek  <jakub@redhat.com>
3559
3560         PR target/50911
3561         * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is
3562         V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode
3563         to V4SFmode.
3564
3565         * function.h (requires_stack_frame_p): New prototype.
3566         * function.c (requires_stack_frame_p): No longer static.
3567         * config/i386/i386.c (ix86_finalize_stack_realign_flags): If
3568         stack_realign_fp was just a conservative guess for a function
3569         which doesn't use sp/fp/argp at all, clear frame_pointer_needed
3570         and stack realignment.
3571
3572 2011-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
3573
3574         PR preprocessor/51061
3575         * incpath.c (merge_include_chains): Make sure to not pass null
3576         pointers to free_path.
3577
3578 2011-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
3579
3580         * doc/invoke.texi ([Option Summary, C++ Language Options]):
3581         Add -Wzero-as-null-pointer-constant.
3582
3583 2011-11-07  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3584
3585         * config/arm/arm-cores.def: Add -mcpu=cortex-a7.
3586         * config/arm/arm-tables.opt: Regenerate.
3587         * config/arm/arm-tune.md: Likewise.
3588         * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7.
3589         * doc/invoke.texi: Document -mcpu=cortex-a7.
3590
3591 2011-11-09  Richard Guenther  <rguenther@suse.de>
3592
3593         Revert
3594         2011-11-09  Richard Guenther  <rguenther@suse.de>
3595
3596         * tree-cfg.c (verify_gimple_call): Verify that
3597         gimple_call_cannot_inline_p is returning a conservative
3598         correct result according to gimple_check_call_matching_types.
3599
3600 2011-11-09  Richard Guenther  <rguenther@suse.de>
3601
3602         PR tree-optimization/51039
3603         * tree-cfg.c (verify_gimple_call): Verify that
3604         gimple_call_cannot_inline_p is returning a conservative
3605         correct result according to gimple_check_call_matching_types.
3606         * ipa-inline-analysis.c (estimate_function_body_sizes): Remove
3607         code dealing with un-inlinablility.
3608         * gimple-streamer-in.c (input_gimple_stmt): Update the
3609         non-inlinable flag.
3610
3611 2011-11-09  Richard Guenther  <rguenther@suse.de>
3612
3613         PR tree-optimization/51039
3614         * tree-inline.c (setup_one_parameter): Always perform a
3615         valid gimple type change.
3616         (declare_return_variable): Likewise.
3617
3618 2011-11-09  Jakub Jelinek  <jakub@redhat.com>
3619
3620         * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf,
3621         vconduv4sfv4si): New patterns.
3622         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle
3623         different dest_mode from comparison mode.
3624
3625 2011-11-09  Richard Guenther  <rguenther@suse.de>
3626
3627         * gimple-fold.c (canonicalize_constructor_val): Mark
3628         address-taken variables addressable.
3629
3630 2011-11-09  Ira Rosen  <ira.rosen@linaro.org>
3631
3632         PR tree-optimization/51015
3633         * tree-vect-loop.c (vect_determine_vectorization_factor): Expect
3634         vectype to be set for pattern def stmts.
3635
3636 2011-11-09  Alan Modra  <amodra@gmail.com>
3637
3638         * function.c (bb_active_p): Delete.
3639         (dup_block_and_redirect, active_insn_between): New functions.
3640         (convert_jumps_to_returns, emit_return_for_exit): New functions,
3641         split out from..
3642         (thread_prologue_and_epilogue_insns): ..here.  Delete
3643         shadowing variables.  Don't do prologue register clobber tests
3644         when shrink wrapping already failed.  Delete all last_bb_active
3645         code.  Instead compute tail block candidates for duplicating
3646         exit path.  Remove these from antic set.  Duplicate tails when
3647         reached from both blocks needing a prologue/epilogue and
3648         blocks not needing such.
3649         * ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and
3650         HAVE_simple_return.
3651         * bb-reorder.c (get_uncond_jump_length): Make global.
3652         * bb-reorder.h (get_uncond_jump_length): Declare.
3653         * cfgrtl.c (rtl_create_basic_block): Comment typo fix.
3654         (rtl_split_edge): Likewise.  Warning fix.
3655         (rtl_duplicate_bb): New function.
3656         (rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block.
3657         * Makefile.in (function.o): Update dependencies.
3658
3659 2011-11-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3660             Georg-Johann Lay  <avr@gjlay.de>
3661
3662         * doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space
3663         argument.
3664         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3665         * doc/tm.texi: Regenerate.
3666
3667         * config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address
3668         space argument.
3669         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3670         * config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise.
3671         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
3672         * config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space
3673         argument.
3674         (REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto.
3675         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
3676         (avr_regno_mode_code_ok_for_base_p): Ditto.
3677         * config/avr/avr.c (avr_mode_code_base_reg_class): Ditto.
3678         (avr_regno_mode_code_ok_for_base_p): Ditto.
3679         (avr_reg_ok_for_addr_p): Pass AS down to
3680         avr_regno_mode_code_ok_for_base_p.
3681
3682         * addresses.h (base_reg_class): Add address space argument.
3683         Pass to MODE_CODE_BASE_REG_CLASS.
3684         (ok_for_base_p_1): Add address space argument.  Pass to
3685         REGNO_MODE_CODE_OK_FOR_BASE_P.
3686         (regno_ok_for_base_p): Add address space argument.  Pass to
3687         ok_for_base_p_1.
3688
3689         * regrename.c (scan_rtx_address): Add address space argument.
3690         Pass address space to regno_ok_for_base_p and base_reg_class.
3691         Update recursive calls.
3692         (scan_rtx): Pass address space to scan_rtx_address.
3693         (build_def_use): Likewise.
3694         * regcprop.c (replace_oldest_value_addr): Add address space
3695         argument.  Pass to regno_ok_for_base_p and base_reg_class.
3696         Update recursive calls.
3697         (replace_oldest_value_mem): Pass address space to
3698         replace_oldest_value_addr.
3699         (copyprop_hardreg_forward_1): Likewise.
3700
3701         * reload.c (find_reloads_address_1): Add address space argument.
3702         Pass address space to base_reg_class and regno_ok_for_base_p.
3703         Update recursive calls.
3704         (find_reloads_address): Pass address space to base_reg_class,
3705         regno_ok_for_base_p, and find_reloads_address_1.
3706         (find_reloads): Pass address space to base_reg_class.
3707         (find_reloads_subreg_address): Likewise.
3708
3709         * ira-costs.c (record_reg_classes): Update calls to base_reg_class.
3710         (ok_for_base_p_nonstrict): Add address space argument.  Pass to
3711         ok_for_base_p_1.
3712         (record_address_regs): Add address space argument.  Pass to
3713         base_reg_class and ok_for_base_p_nonstrict.  Update recursive calls.
3714         (record_operand_costs): Pass address space to record_address_regs.
3715         (scan_one_insn): Likewise.
3716
3717         * caller-save.c (init_caller_save): Update call to base_reg_class.
3718         * ira-conflicts.c (ira_build_conflicts): Likewise.
3719         * reload1.c (maybe_fix_stack_asms): Likewise.
3720
3721 2011-11-08  Michael Matz  <matz@suse.de>
3722
3723         * gengtype.c (write_field_root): Avoid out-of-scope access of newv.
3724
3725         * tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.
3726
3727         * tree.h (TREE_CLOBBER_P): New macro.
3728         * gimple.h (gimple_clobber_p): New inline function.
3729         * gimplify.c (gimplify_bind_expr): Add clobbers for all variables
3730         that go out of scope and live in memory.
3731         * tree-ssa-operands.c (get_expr_operands): Transfer volatility also
3732         for constructors.
3733         * cfgexpand.c (decl_to_stack_part): New static variable.
3734         (add_stack_var): Allocate it, and remember mapping.
3735         (fini_vars_expansion): Deallocate it.
3736         (stack_var_conflict_p): Add early outs.
3737         (visit_op, visit_conflict, add_scope_conflicts_1,
3738         add_scope_conflicts): New static functions.
3739         (expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
3740         (expand_used_vars): Add scope conflicts.
3741         (expand_gimple_stmt_1): Expand clobbers to nothing.
3742         (expand_debug_expr): Ditto.
3743
3744         * tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
3745         * tree-ssa-live.c (remove_unused_locals): Remove clobbers that
3746         refer to otherwise unused locals.
3747         * tree-sra.c (build_accesses_from_assign): Ignore clobbers.
3748         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
3749         SSA names aren't necessary.
3750         (propagate_necessity): Accept and ignore constructors on the rhs, tidy.
3751         * gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
3752         * tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
3753         any known value.
3754         * tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
3755         don't zero-initialize something.
3756         * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
3757         clobber RHS, we don't want PHI nodes with those.
3758
3759 2011-11-08  Jakub Jelinek  <jakub@redhat.com>
3760
3761         * config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
3762         if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
3763
3764 2011-11-08  Richard Guenther  <rguenther@suse.de>
3765
3766         PR tree-optimization/51012
3767         * ipa-prop.c (update_indirect_edges_after_inlining): Fixup
3768         non-inlinable state.
3769         * cgraph.c (cgraph_make_edge_direct): Likewise.
3770
3771 2011-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3772
3773         PR rtl-optimization/47698
3774         * ifcvt.c (noce_operand_ok): Move around comment.
3775
3776 2011-11-08  Richard Guenther  <rguenther@suse.de>
3777
3778         PR lto/50999
3779         * lto-opts.c (append_to_collect_gcc_options): Split out from...
3780         (lto_write_options): ... here.  Prepend frontend specific flags.
3781
3782 2011-11-08  Jakub Jelinek  <jakub@redhat.com>
3783
3784         * config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask
3785         0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.
3786
3787         * tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
3788         Handle vectorization of SLP calls.
3789         (vect_analyze_stmt): Adjust caller, add call to it for SLP too.
3790         (vect_transform_stmt): Adjust vectorizable_call caller, remove
3791         assertion.
3792         * tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start
3793         with op_idx 3.
3794         (vect_build_slp_tree): Allow CALL_EXPR.
3795
3796 2011-11-08  Richard Guenther  <rguenther@suse.de>
3797
3798         * gimple-fold.c (canonicalize_constructor_val): Make sure
3799         we have referenced vars setup before adding to them.
3800
3801 2011-11-07  Richard Henderson  <rth@redhat.com>
3802             Aldy Hernandez  <aldyh@redhat.com>
3803             Andrew MacLeod  <amacleod@redhat.com>
3804             Torvald Riegel  <triegel@redhat.com>
3805
3806         Merged from transactional-memory.
3807
3808         * gtm-builtins.def: New file.
3809         * trans-mem.c: New file.
3810         * trans-mem.h: New file.
3811
3812         * opts.c (finish_options): Error out when using -flto and -fgnu-tm.
3813
3814         * config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants.
3815         (ix86_handle_tm_regparm_attribute, struct bdesc_tm,
3816         ix86_builtin_tm_load, ix86_builtin_tm_store,
3817         ix86_init_tm_builtins): New.
3818         (ix86_init_builtins): Initialize TM builtins.
3819         (struct ix86_attribute_table): Add "*tm regparm".
3820         * config/i386/i386-builtin-types.def (PV2SI): Define.
3821         (PCV2SI): Define.
3822         Define V2SI_FTYPE_PCV2SI.
3823         Define V4SF_FTYPE_PCV4SF.
3824         Define V8SF_FTYPE_PCV8SF.
3825         Define VOID_PV2SI_V2SI.
3826
3827         * doc/invoke.texi (C Dialect Options): Document -fgnu-tm and
3828         tm-max-aggregate-size.
3829         * doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and
3830         TARGET_VECTORIZE_BUILTIN_TM_STORE hooks.
3831         * doc/tm.texi: Regenerate.
3832
3833         * attribs.c (apply_tm_attr): New.
3834         (init_attributes): Allow '*' prefix for overrides.
3835         (register_attribute): Likewise.
3836         * builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New.
3837         (ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST,
3838         ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST,
3839         ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST,
3840         ATTR_TMPURE_NOTHROW_LIST): New.
3841         * builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR,
3842         BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248],
3843         BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE,
3844         BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New.
3845         * builtins.def: Include gtm-builtins.def. Add comments regarding
3846         transactional memory synchronization.
3847         (DEF_TM_BUILTIN): New.
3848         * c-parser.c (struct c_parser): Add in_transaction.
3849         (c_parser_transaction, c_parser_transaction_expression,
3850         c_parser_transaction_cancel, c_parser_transaction_attributes): New.
3851         (c_parser_attribute_any_word): Split out from c_parser_attributes.
3852         (c_parser_statement_after_labels): Handle RID_TRANSACTION*.
3853         (c_parser_unary_expression): Same.
3854         * c-tree.h (c_finish_transaction): Declare.
3855         * c-typeck.c (c_finish_transaction): New.
3856         (build_function_call_vec): Call tm_malloc_replacement.
3857         * calls.c (is_tm_builtin): New.
3858         (flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE.
3859         * cfgbuild.c (make_edges): Add edges for REG_TM notes.
3860         * cfgexpand.c (expand_call_stmt): Call
3861         mark_transaction_restart_calls.
3862         (gimple_expand_cfg): Free the tm_restart map.
3863         (mark_transaction_restart_calls): New.
3864         * cfgrtl.c (purge_dead_edges): Look for REG_TM notes.
3865         * cgraph.c (dump_cgraph_node): Handle tm_clone.
3866         * cgraph.h (struct cgraph_node): Add tm_clone field.
3867         (decl_is_tm_clone): New.
3868         (struct cgraph_local_info): Add tm_may_enter_irr.
3869         (cgraph_copy_node_for_versioning): Declare.
3870         * cgraphunit.c (cgraph_copy_node_for_versioning): Export;
3871         copy analyzed from old version.
3872         * combine.c (distribute_notes): Handle REG_TM notes.
3873         * common.opt: Add -fgnu-tm.
3874         * crtstuff.c (__TMC_LIST__, __TMC_END__): New.
3875         (__do_global_dtors_aux): Deregister clone table.
3876         (frame_dummy): Register clone table.
3877         * emit-rtl.c (try_split): Handle REG_TM. Early return if no function
3878         body.
3879         * gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and
3880         GIMPLE_TRANSACTION.
3881         (gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE.
3882         * gimple-pretty-print.c: Include trans-mem.h.
3883         (dump_gimple_fmt): Add %x.
3884         (dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction.
3885         (dump_gimple_eh_else, dump_gimple_transaction): New.
3886         (dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3887         * gimple.c (gimple_build_eh_else, gimple_build_transaction): New.
3888         (walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt
3889         field.
3890         (walk_gimple_op): Handle GIMPLE_TRANSACTION.
3891         (walk_gimple_stmt): Initialize and honor removed_stmt.
3892         Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3893         (gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3894         * gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New.
3895         * gimple.h (struct gimple_statement_eh_else,
3896         gimple_statement_transaction, GTMA_*): New.
3897         (gimple_statement_d): Add gimple_statement_eh_else and
3898         gimple_transaction.
3899         (gimple_build_eh_else, gimple_build_transaction,
3900         gimple_fold_call, diagnose_tm_safe_errors): Declare.
3901         (get_call_expr_in): Remove prototype.
3902         (gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3903         (gimple_eh_else_n_body, gimple_eh_else_e_body,
3904         gimple_eh_else_set_n_body, gimple_eh_else_set_e_body,
3905         gimple_transaction_body, gimple_transaction_label,
3906         gimple_transaction_label_ptr, gimple_transaction_subcode,
3907         gimple_transaction_set_body, gimple_transaction_set_label,
3908         gimple_transaction_set_subcode): New.
3909         (struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt.
3910         * gimplify.c (create_tmp_var_name): Use clean_symbol_name.
3911         (voidify_wrapper_expr): Handle TRANSACTION_EXPR.
3912         (gimplify_transaction): New.
3913         (gimplify_expr): Handle TRANSACTION_EXPR.
3914         * gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New.
3915         * ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling
3916         TM pure functions.
3917         * Makefile.in: Add trans-mem.o and dependencies.
3918         (BUILTINS_DEF): Add gtm-builtins.def.
3919         (gimple-pretty-print.o): Depend on TRANS_MEM_H.
3920         (GTFILES): Add trans-mem.c.
3921         * omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION.
3922         * output.h (record_tm_clone_pair, finish_tm_clone_pairs,
3923         get_tm_clone_pair): Declare.
3924         * params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New.
3925         * passes.c (init_optimization_passes): Place transactional memory
3926         passes.
3927         * print-tree.c (print_node): Dump tm-clone.
3928         * recog.c (peep2_attempt): Handle REG_TM.
3929         * reg-notes.def (TM): New.
3930         * rtlanal.c (alloc_reg_note): Handle REG_TM.
3931         * target.def (builtin_tm_load, builtin_tm_store): New.
3932         * targhooks.c (default_builtin_tm_load_store): New.
3933         * targhooks.h (default_builtin_tm_load_store): Declare.
3934         * timevar.def (TV_TRANS_MEM): New.
3935         * toplev.c (compile_file): Call finish_tm_clone_pairs.
3936         * tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION.
3937         (cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary
3938         writes into the statements to update labels.
3939         (is_ctrl_altering_stmt): Add TM ending statements. Handle
3940         GIMPLE_TRANSACTION.
3941         (verify_gimple_transaction): New.
3942         (verify_gimple_stmt): Handle GIMPLE_TRANSACTION.
3943         (verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
3944         (gimple_redirect_edge_and_branch): Handle TM_TRANSACTION.
3945         (dump_function_to_file): Display [tm-clone] if applicable.
3946         * tree-eh.c (struct_ptr_eq): Make inline and move to tree.h.
3947         (struct_ptr_hash): Same.
3948         (collect_finally_tree): Handle GIMPLE_EH_ELSE.
3949         (replace_goto_queue_1): Likewise.
3950         (get_eh_else): New.
3951         (honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE.
3952         (lower_try_finally_nofallthru): Likewise.
3953         (lower_try_finally_onedest): Likewise.
3954         (lower_try_finally_copy): Likewise.
3955         (lower_try_finally_switch): Likewise.
3956         (lower_try_finally): Likewise.
3957         (decide_copy_try_finally): Likewise.
3958         (lower_eh_constructs_2): Likewise.
3959         (refactor_eh_r): Likewise.
3960         * tree-flow.h (struct gimple_df): Add tm_restart field.
3961         Define tm_restart_node.
3962         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION.
3963         (estimate_num_insns): Likewise.
3964         (init_inline_once): Init tm_cost.
3965         * tree-inline.h (struct eni_weights_d): Add tm_cost.
3966         * tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init,
3967         pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare.
3968         * tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR.
3969         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3970         BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
3971         Add support for TM vector loads.  Add support for TM logging builtins.
3972         (call_may_clobber_ref_p_1): Add support for vector stores.
3973         * tree-ssa-structalias.c (find_func_aliases): Add support for TM
3974         vector stores and loads. Handle BUILT_IN_TM_MEMSET,
3975         BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
3976         * tree.c (strip_invariant_refs): Moved from gimple.c to here.
3977         (local_define_builtin): Handle ECF_TM_PURE.
3978         (build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE.
3979         * tree.def (TRANSACTION_EXPR): New.
3980         * tree.h (strip_invariant_refs): Moved from gimple.h to here.
3981         (TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK,
3982         TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED,
3983         BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P,
3984         CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New.
3985         (ECF_TM_PURE, ECF_TM_BUILTIN): New.
3986         (struct tree_function_decl): Add tm_clone_flag.
3987         (struct_ptr_eq, struct_ptr_hash): New.
3988         (apply_tm_attr): Declare.
3989         (is_tm_safe_or_pure): New.
3990         (build_tm_abort_call, is_tm_safe, is_tm_pure,
3991         is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement,
3992         tm_malloc_replacement): Declare.
3993         * varasm.c (tm_clone_hash): New.
3994         (record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair,
3995         dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New.
3996         (struct tm_alias_pair): New.  Declare VEC types for object.
3997
3998 2011-11-07  Richard Henderson  <rth@redhat.com>
3999
4000         * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
4001         OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
4002         OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
4003         OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
4004         OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
4005         rename from the direct_optab_index enum.
4006         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
4007         sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
4008         sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
4009         sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
4010         sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
4011         from the optab_table, not the direct_optab_table.
4012         (init_sync_libfuncs): Declare.
4013         (can_compare_and_swap_p): Update parameters.
4014         * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
4015         (can_compare_and_swap_p): Add allow_libcall parameter; if true,
4016         test for the legacy compare-and-swap libcall.
4017         (expand_atomic_exchange): Use the legacy test-and-set libcall.
4018         (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
4019         (struct atomic_op_functions): Update for optab type changes.
4020         (maybe_emit_op): Likewise.
4021         (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
4022         * builtins.c (fold_builtin_atomic_always_lock_free): Update call
4023         to can_compare_and_swap_p.
4024         * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
4025         (expand_omp_atomic_pipeline): Likewise.
4026         * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
4027         sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
4028         optabs.
4029         * doc/md.texi (sync_compare_and_swap): Update docs for libcalls.
4030
4031 2011-11-07  Jakub Jelinek  <jakub@redhat.com>
4032
4033         * config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
4034         * config/i386/i386.c (enum ix86_builtins): Add
4035         IX86_BUILTIN_VEC_PACK_SFIX256.
4036         (bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
4037         (ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
4038         (ix86_builtin_vectorized_function): Also vectorize lrint using
4039         256-bit vectors for -mavx.
4040
4041 2011-11-07  Anatoly Sokolov  <aesok@post.ru>
4042
4043         * config/cris/constraints.md: New file.
4044         * config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4045         CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
4046         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
4047         EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
4048         EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
4049         * config/cris/cris.c: Incule "tm-constrs.h".
4050         (cris_print_operand): Use satisfies_constraint_O.
4051         (cris_normal_notice_update_cc, cris_rtx_costs): Use
4052         satisfies_constraint_I.
4053         (cris_address_cost): Use satisfies_constraint_L.
4054         * config/cris/cris.md: Include "constraints.md".
4055         (*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
4056         *mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
4057         *ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
4058         *extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
4059         *extop<mode>si_swap_side): Use satisfies_constraint_N and
4060         satisfies_constraint_J.
4061         (moversideqi movemsideqi mover2side peephole2): Use
4062         satisfies_constraint_N and satisfies_constraint_J.
4063         (andu peephole2): Use satisfies_constraint_I and
4064         satisfies_constraint_O.
4065
4066 2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
4067
4068         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
4069         BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
4070
4071 2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
4072
4073         * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
4074         SWITCHABLE_TARGET can change the values during compilation.
4075         (expand_atomic_fetch_op): Handle parameter change ripples for
4076         get_atomic_op_for_code call.
4077
4078 2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
4079
4080         * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
4081         __atomic_store.
4082         * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
4083         only when originated from that builtin.
4084         (expand_atomic_store): Expand to __sync_lock_release when originated
4085         from that builtin.
4086         * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
4087         expand_atomic_exchange call originated from here.
4088         (expand_builtin_sync_lock_release): Add flag that expand_atomic_store
4089         call originated from here.
4090         (expand_builtin_atomic_exchange): Add origination flag.
4091         (expand_builtin_atomic_store): Add origination flag.
4092         * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
4093         parameters to indicate implementation fall back options.
4094
4095 2011-11-07  Georg-Johann Lay  <avr@gjlay.de>
4096
4097         * config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
4098         now, not only CONST_INT and CONST_DOUBLE.
4099         (output_movqi): Use output_reload_in_const.
4100         (output_reload_inhi): Ditto.
4101         (output_reload_insisf): Move assertion to output_reload_in_const.
4102         (avr_out_reload_inpsi): Ditto.
4103
4104 2011-11-07  Nathan Sidwell  <nathan@acm.org>
4105
4106         * gcov.c (object_summary): Replace with ...
4107         (object_runs): ... this.
4108         (process_file): Remove functions with no data.
4109         (generate_results): Ignore files with no lines.
4110         (release_function): New helper, broken out of ...
4111         (release_structures): ... here.  Use it.
4112         (read_count_file): Adjust for new data file format.
4113         (output_lines): Use object_runs.
4114         * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
4115         (struct gcov_ctr_info): Move definition.
4116         (struct gcov_fn_info): Add key field, use gcov_ctr_info for
4117         trailing array.
4118         (struct gcov_info): Add merge function array, remove mask and
4119         counts.  Trailing array is array of pointers to function info.
4120         * coverage.c (struct function_list): Replace counter numbers with
4121         counter arrays.  Add fndecl field.  GTYify.
4122         (counts_entry): Remove chain workspace.
4123         (functions_head): GTYify.
4124         (prg_n_ctrs): Remove.
4125         (fn_v_ctrs): New.
4126         (tree_ctr_tables): Remove.
4127         (read_counts_file): Cope with blank entries and expect program
4128         summaries before functions.  Don't warn on missing entries.
4129         (coverage_counter_alloc): Allocate individual function arrays.
4130         (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
4131         for individual function arrays.
4132         (coverage_end_function): GTYify function list object. Finalize
4133         function's counter arrays.
4134         (build_var): New.  Create a counter-related variable with
4135         appropriate linkage.
4136         (build_fn_info_type): Adjust for new runtime structure.
4137         (build_fn_info_value): Rename to ...
4138         (build_fn_info): ... here.  Build new format data.
4139         (build_ctr_info_type, build_ctr_info_value): Remove.
4140         (build_info_type): New. Build new format data structure.
4141         (build_info): Adjust for new format data.
4142         (create_coverage): Likewise.
4143         * gcov-dump.c (tag_function): Recognize placeholders.
4144
4145 2011-11-07  Georg-Johann Lay  <avr@gjlay.de>
4146
4147         * config/avr/constraints.md (Cm2): New constraint for int -2.
4148         * config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
4149         (*negqihi2): New insn.
4150
4151 2011-11-07  H.J. Lu  <hongjiu.lu@intel.com>
4152
4153         * dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
4154         HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18.
4155
4156 2011-11-07  Jakub Jelinek  <jakub@redhat.com>
4157
4158         * config/i386/i386.c (ix86_expand_builtin): If gather mask
4159         argument is known to have all high bits set, pass pc_rtx as
4160         second argument to the expander instead of op0.
4161         * config/i386/sse.md (*avx2_gathersi<mode>_2,
4162         *avx2_gatherdi<mode>_2): New patterns.
4163         * config/i386/avx2intrin.h (_mm256_i32gather_pd,
4164         _mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
4165         _mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
4166         _mm256_set1_pd.
4167
4168         PR tree-optimization/50789
4169         * tree-vect-stmts.c (process_use): Add force argument, avoid
4170         exist_non_indexing_operands_for_use_p check if true.
4171         (vect_mark_stmts_to_be_vectorized): Adjust callers.  Handle
4172         STMT_VINFO_GATHER_P.
4173         (gen_perm_mask): New function.
4174         (perm_mask_for_reverse): Use it.
4175         (reverse_vec_element): Rename to...
4176         (permute_vec_elements): ... this.  Add Y and MASK_VEC arguments,
4177         generalize for any permutations.
4178         (vectorizable_load): Adjust caller.  Handle STMT_VINFO_GATHER_P.
4179         * target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
4180         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
4181         * doc/tm.texi: Regenerate.
4182         * tree-data-ref.c (initialize_data_dependence_relation,
4183         compute_self_dependence): No longer static.
4184         * tree-data-ref.h (initialize_data_dependence_relation,
4185         compute_self_dependence): New prototypes.
4186         * tree-vect-data-refs.c (vect_check_gather): New function.
4187         (vect_analyze_data_refs): Detect possible gather load data refs.
4188         * tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
4189         (STMT_VINFO_GATHER_P): Define.
4190         (vect_check_gather): New prototype.
4191         * config/i386/i386-builtin-types.def: Add types for alternate
4192         gather builtins.
4193         * config/i386/sse.md (AVXMODE48P_DI): Remove.
4194         (VEC_GATHER_MODE): Rename mode_attr to...
4195         (VEC_GATHER_IDXSI): ... this.
4196         (VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
4197         (avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
4198         instead of <VEC_GATHER_MODE>.
4199         (avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
4200         <AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
4201         on src and mask operands.
4202         (*avx2_gatherdi<mode>): Likewise.  Use VEC_GATHER_MODE iterator
4203         instead of AVXMODE48P_DI.
4204         (avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
4205         * config/i386/i386.c (enum ix86_builtins): Add
4206         IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
4207         IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
4208         (ix86_init_mmx_sse_builtins): Create those builtins.
4209         (ix86_expand_builtin): Handle those builtins and adjust expansions
4210         of other gather builtins.
4211         (ix86_vectorize_builtin_gather): New function.
4212         (TARGET_VECTORIZE_BUILTIN_GATHER): Define.
4213
4214 2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
4215
4216         * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check.
4217
4218 2011-11-07  Tristan Gingold  <gingold@adacore.com>
4219
4220         * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
4221         * config/vms/t-vms: Add vms-c.o rule.
4222         * config/vms/vms-c.c: New file.
4223         * config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
4224         * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.
4225
4226 2011-11-07  Tristan Gingold  <gingold@adacore.com>
4227
4228         * config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
4229         TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
4230         TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
4231         POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
4232         (SUBTARGET_OS_CPP_BUILTINS): Define.
4233         (TARGET_DEFAULT): Tune according to POINTER_SIZE.
4234         (MASK_RETURN_ADDR): Define in 64 bit mode.
4235         * config/ia64/vms.h: Likewise.
4236         * config/vms/vms.h: New file.
4237         * config/vms/vms64.h: New file.
4238         * config/alpha/vms64.h: Removed.
4239         * config/ia64/vms64.h: Removed.
4240         * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
4241         Adjust for above change.
4242
4243 2011-11-07  Enkovich Ilya  <ilya.enkovich@intel.com>
4244
4245         PR target/50962
4246         * config/i386/i386-protos.h (ix86_use_lea_for_mov): New.
4247         * config/i386/i386.c (ix86_use_lea_for_mov): Likewise.
4248         * config/i386/i386.md (movsi_internal): Emit lea if profitable.
4249         (movdi_internal_rex64): Likewise.
4250
4251 2011-11-07  Sergey Ostanevich  <sergos.gnu@gmail.com>
4252
4253         PR rtl-optimization/47698
4254         * ifcvt.c (noce_operand_ok): Return false for mems with side effects.
4255
4256 2011-11-07  Tristan Gingold  <gingold@adacore.com>
4257
4258         * common/config/alpha/alpha-common.c (alpha_option_init_struct):
4259         New function.
4260         (TARGET_OPTION_INIT_STRUCT): Define.
4261         * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
4262         (TARGET_MAX_ANCHOR_OFFSET)
4263         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.
4264
4265 2011-11-06  Quentin Neill  <quentin.neill@amd.com>
4266
4267         Fix r180999, update ChangeLog
4268         * config.gcc: Add f16cintrin.h.
4269         * config/i386/f16cintrin.h: Add missing endif.
4270
4271 2011-11-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4272
4273         * config.gcc (arm*-*-rtemseabi*): New target.
4274         * config/arm/rtems-eabi.h: New.
4275         * config/arm/t-rtems-eabi: New.
4276
4277 2011-11-06  David S. Miller  <davem@davemloft.net>
4278
4279         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete.
4280         (zero_extend_v8qi_vis, zero_extend_v4hi_vis,
4281         *zero_extend_v8qi_<P:mode>_insn,
4282         *zero_extend_v4hi_<P:mode>_insn): Express using vec_merge
4283         and vec_duplicate instead of using an UNSPEC.
4284
4285 2011-11-07  Alan Modra  <amodra@gmail.com>
4286
4287         PR target/30282
4288         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
4289         blockage for ABI_V4.
4290
4291 2011-11-06  Dave Korn  <dave.korn.cygwin@gmail.com>
4292
4293         * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent
4294         libgcj version bump.
4295         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
4296
4297 2011-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4298
4299         * gcse.c: Adjust outdated comments throughout.
4300         (struct mem_conflict_info): New structure.
4301         (mems_conflict_for_gcse_p): Use it to communicate with caller.
4302         (load_killed_in_block_p): Pass it to note_stores.
4303         (hash_expr): Remove superfluous line break.
4304         (hash_scan_set): Rename PAT parameter into SET.
4305         (hash_scan_insn): Reorder cases.
4306         (canon_list_insert): Fix long line.
4307         (edge_list): Delete.
4308         (prune_expressions): Rename E local variable into EXPR.
4309         (compute_pre_data): Return struct edge_list * object.
4310         (pre_expr_reaches_here_p_work): Fix formatting.
4311         (process_insert_insn): Move around comment.
4312         (pre_edge_insert): Fix long line.
4313         (pre_insert_copies): Likewise.
4314         (gcse_emit_move_after): Swap SRC and DEST parameters.
4315         (pre_delete): Adjust call to gcse_emit_move_after.
4316         (pre_gcse): Take struct edge_list * parameter.  Fix long line.
4317         (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines.
4318         Use a local list of edges.
4319         (hoist_code): Fix long line.  Adjust call to gcse_emit_move_after.
4320         (pre_ldst_expr_hash): Fix long line.
4321         (free_ldst_mems): Rename into...
4322         (free_ld_motion_mems): ...this.
4323         (first_ls_expr): Delete.
4324         (next_ls_expr): Likewise.
4325         (print_ldst_list): Do not use above two functions.
4326         (simple_mem): Adjust interface.
4327         (compute_ld_motion_mems): Fix formatting.
4328         (update_ld_motion_stores): Reuse local variable.
4329
4330 2011-11-06  Joseph Myers  <joseph@codesourcery.com>
4331
4332         * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas
4333         specifiers.
4334         (build_null_declspecs): Initialize align_log and alignas_p fields.
4335         (declspecs_add_alignas): New.
4336         * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS.
4337         (c_parser_declspecs): Handle _Alignas specifiers.
4338         (c_parser_alignas_specifier): New.
4339         (c_parser_alignof_expression): Diagnose alignof use for non-C1X.
4340         Diagnose _Alignof (expression).
4341         * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields.
4342         (declspecs_add_alignas): Declare.
4343         * ginclude/stddef.h (max_align_t): Define for C1X and C++11.
4344         * ginclude/stdalign.h: New.
4345         * Makefile.in (USER_H): Add stdalign.h.
4346
4347 2011-11-06  Joern Rennecke  <joern.rennecke@embecosm.com>
4348
4349         * regset.h (fixed_reg_set_regset): Declare.
4350         * dse.c: Include regset.h .
4351         (struct insn_info): Add member fixed_regs_live.
4352         (note_add_store_info): New typedef.
4353         (note_add_store): New function.
4354         (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t.
4355         Use gen_add3_insn / gen_move_insn.
4356         Check new insn for unwanted clobbers before emitting it.
4357         (check_for_inc_dec): Rename to...
4358         (check_for_inc_dec_1:) ... this.  Return bool.  Take insn_info
4359         parameter.  Changed all callers in file.
4360         (check_for_inc_dec, copy_fixed_regs): New functions.
4361         (scan_insn): Set fixed_regs_live field of insn_info.
4362         * rtl.h (check_for_inc_dec): Update prototype.
4363         * postreload.c (reload_cse_simplify): Take new signature of
4364         check_ind_dec into account.
4365         * reginfo.c (fixed_reg_set_regset): New variable.
4366         (init_reg_sets_1): Initialize it.
4367
4368 2011-11-06  Jakub Jelinek  <jakub@redhat.com>
4369
4370         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove
4371         any user labels.
4372
4373 2011-11-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4374
4375         * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
4376         Remove dependence of declaration and target define on definition of
4377         HPUX_LONG_DOUBLE_LIBRARY.  Update implementation.
4378
4379 2011-11-06  Andrew Macleod  <amacleod@redhat.com>
4380             Richard Henderson  <rth@redhat.com>
4381             Aldy Hernandez  <aldyh@redhat.com>
4382
4383         Merged from cxx-mem-model.
4384
4385         * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models
4386         * coretypes.h (enum memmodel): New.  enumerated memory model type.
4387         * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H)
4388         * genopinit,c (optabs): Add atomic direct optab handlers.
4389         * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins.
4390         * builtin-types.def (BT_CONST_VOLATILE_PTR,
4391         BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
4392         BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
4393         BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT,
4394         BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
4395         BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
4396         BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types.
4397         * expr.h (expand_atomic_*): Add prototypes.
4398         (expand_{bool,val}_compare_and_swap): Remove prototypes.
4399         * c-typeck.c (build_function_call_vec): Don't reprocess __atomic
4400         parameters.
4401         * common.opt (Winvalid-memory-model): New warning flag.
4402         (finline-atomics): New. Flag to disable atomic inlining.
4403         * params.h (ALLOW_LOAD_DATA_RACES): New.
4404         (ALLOW_PACKED_LOAD_DATA_RACES): New.
4405         (ALLOW_PACKED_STORE_DATA_RACES): New.
4406         * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New.
4407         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New.
4408         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New.
4409         * builtins.c (is_builtin_name): Handle __atomic.
4410         (get_memmodel): New.  Extract memory model.
4411         (expand_expr_force_mode): New. Factor out common code for ensuring an
4412         integer argument is in the proper mode.
4413         (expand_builtin_sync_operation): Remove ignore param.  Always call
4414         expand_atomic_fetch_op instead of the old expanders.
4415         (expand_builtin_compare_and_swap,
4416         expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode,
4417         call atomic expanders instead of sync expanders.
4418         (expand_builtin_sync_lock_release): Call atomic_store expander.
4419         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
4420         expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New.
4421         (expand_builtin_atomic_exchange): New.
4422         (fold_builtin_atomic_always_lock_free,
4423         expand_builtin_atomic_always_lock_free,
4424         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
4425         New.
4426         (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence,
4427         expand_builtin_atomic_signal_fence): New.
4428         (expand_builtin_mem_signal_fence): New.
4429         (expand_builtin): Add cases for BUILT_IN_ATOMIC_*.
4430         (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE.
4431         * optabs.h (DOI_atomic_*): Define new atomics.
4432         (atomic_*_optab): Define.
4433         (can_compare_and_swap_p, expand_atomic_compare_and_swap): New
4434         prototypes.
4435         * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove.
4436         (expand_sync_lock_test_and_set): Remove.
4437         (expand_atomic_load, expand_atomic_store): New.
4438         (expand_atomic_exchange): New.
4439         (expand_atomic_compare_and_swap): New.  Implements
4440         atomic_compare_exchange via compare and swap.
4441         (struct atomic_op_functions): Opcode table struct for fetch ops.
4442         (get_atomic_op_for_code): New.  Return an opcode table entry.
4443         (maybe_emit_op): New.  Try to emit a fetch op.
4444         (expand_atomic_fetch_op): New.
4445         (expand_val_compare_and_swap_1): Remove.
4446         (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove.
4447         (expand_atomic_compare_and_swap): Rename from
4448         expand_atomic_compare_exchange.  Rewrite to return both success and
4449         oldval return values; expand via both atomic and sync optabs.
4450         (can_compare_and_swap_p): New.
4451         (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap.
4452         (maybe_gen_insn): Handle 7 and 8 operands.
4453         * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual
4454         fetch_op optabs, only test can_compare_and_swap_p.  Use __atomic
4455         builtins instead of __sync builtins.
4456         (expand_omp_atomic_pipeline): Use can_compare_and_swap_p.
4457         * doc/extend.texi: Document __atomic built-in functions.
4458         * doc/invoke.texi: Document data race parameters.
4459         * doc/md.texi: Document atomic patterns.
4460         * config/i386/i386.md (UNSPEC_MOVA): New.
4461         (UNSPECV_CMPXCHG): Split into ...
4462         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2,
4463         UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New.
4464         * config/i386/sync.md (ATOMIC): New mode iterator.
4465         (atomic_load<ATOMIC>, atomic_store<ATOMIC>): New.
4466         (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New.
4467         (mem_thread_fence): Rename from memory_barrier.
4468         Handle the added memory model parameter.
4469         (mfence_nosse): Rename from memory_barrier_nosse.
4470         (sync_compare_and_swap<CASMODE>): Split into ...
4471         (atomic_compare_and_swap<SWI124>): this and ...
4472         (atomic_compare_and_swap<CASMODE>): this.  Handle the new parameters.
4473         (atomic_compare_and_swap_single<SWI>): Rename from
4474         sync_compare_and_swap<SWI>; rewrite to use split unspecs.
4475         (atomic_compare_and_swap_double<DCASMODE>): Rename from
4476         sync_double_compare_and_swap<DCASMODE>; rewrite to use split unspecs.
4477         (*atomic_compare_and_swap_doubledi_pic): Rename from
4478         sync_double_compare_and_swapdi_pic; rewrite to use split unspecs.
4479         (atomic_fetch_add<SWI>): Rename from sync_old_add<SWI>; add memory
4480         model parameter.
4481         (*atomic_fetch_add_cmp<SWI>): Similarly.
4482         (atomic_add<SWI>, atomic<any_logic><SWI>): Similarly.
4483         (atomic_sub<SWI>): Similarly.  Use x86_maybe_negate_const_int.
4484         (sync_lock_test_and_set<SWI>): Merge with ...
4485         (atomic_exchange<SWI>): ... this.
4486
4487 2011-11-6  Richard Guenther  <rguenther@suse.de>
4488
4489         * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag.
4490
4491 2011-11-06  Ira Rosen  <ira.rosen@linaro.org>
4492
4493         * tree-vectorizer.h (vectorizable_condition): Add argument.
4494         * tree-vect-loop.c (vectorizable_reduction): Fail for condition
4495         in SLP.  Update calls to vectorizable_condition.
4496         * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to
4497         the arguments.  Pass it to vect_is_simple_use_1.
4498         (vectorizable_condition): Add slp_node to the arguments.  Support
4499         vectorization of basic blocks.  Fail for reduction in SLP.  Update
4500         calls to vect_is_simple_cond and vect_is_simple_use.  Support SLP:
4501         call vect_get_slp_defs to get vector operands.
4502         (vect_analyze_stmt): Update calls to vectorizable_condition.
4503         (vect_transform_stmt): Likewise.
4504         * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR.
4505         (vect_get_and_check_slp_defs): Handle COND_EXPR.  Allow pattern
4506         def stmts.
4507         (vect_build_slp_tree): Handle COND_EXPR.
4508         (vect_analyze_slp_instance): Push pattern statements to root node.
4509         (vect_get_constant_vectors): Fix comments.  Handle COND_EXPR.
4510
4511 2011-11-05  David S. Miller  <davem@davemloft.net>
4512
4513         * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
4514         (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
4515         (*zero_extend_v8qi_<P:mode>_insn,
4516         *zero_extend_v4hi_<P:mode>_insn): New insns.
4517         * config/sparc/sparc.c (vector_init_move_words,
4518         vector_init_prepare_elts, sparc_expand_vector_init_vis2,
4519         sparc_expand_vector_init_vis1): New functions.
4520         (vector_init_bshuffle): Rewrite to handle more cases and make use
4521         of locs[] array prepared by vector_init_prepare_elts.
4522         (vector_init_fpmerge, vector_init_faligndata): Delete.
4523         (sparc_expand_vector_init): Rewrite using new infrastructure.
4524
4525 2011-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>
4526
4527         * config.gcc (epiphany-*-*): New architecture.
4528         (epiphany-*-elf): New configuration.
4529         * config/epiphany, common/config/epiphany : New directories.
4530         * doc/extend.texi (disinterrupt attribute): Add Epiphany.
4531         (interrupt attribute): Add Epiphany.
4532         (long_call, short_call attribute): Add Epiphany.
4533         * doc/invoke.texi (Options): Add Epiphany options.
4534         * doc/md.texi (Machine Constraints): Add Epiphany constraints.
4535         * doc/install.texi (Options specification):
4536         Add --with-stack-offset=@var{num} description.
4537         (host/target specific issues): Add epiphany-*-elf.
4538         * doc/contrib.texi (Contributors): Mention Epiphany port.
4539
4540 2011-11-05  Jakub Jelinek  <jakub@redhat.com>
4541
4542         PR tree-optimization/50693
4543         * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with
4544         non-forced user labels.
4545         (gimple_merge_blocks): Turn non-forced user labels into
4546         debug bind stmt with the label as first operand and reset value.
4547         (gimple_duplicate_bb): Don't duplicate label debug stmts.
4548         * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
4549         * final.c (final_scan_insn): Likewise.
4550         (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL.
4551         * var-tracking.c (debug_label_num): New variable.
4552         (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs,
4553         instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes.
4554         * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle
4555         NOTE_INSN_DELETED_DEBUG_LABEL.
4556         (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs.
4557         * insn-notes.def (DELETED_DEBUG_LABEL): New note kind.
4558         * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
4559         * gengtype.c (adjust_field_rtx_def): Likewise.
4560         * config/i386/i386.c (ix86_output_function_epilogue): For MachO
4561         clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL
4562         if their are at the end of function and nop hasn't been emitted.
4563         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise.
4564
4565 2011-11-05  Georg-Johann Lay  <avr@gjlay.de>
4566
4567         PR rtl-optimization/50448
4568         * cprop.c (try_replace_reg): Also try to replace uses of FROM that
4569         appear in SET_DEST.
4570
4571 2011-11-05  Peter Dufault  <dufault@hda.com>,
4572             Sebastian Huber  <sebastian.huber@embedded-brains.de>
4573
4574         * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4575         Extend rs6000_spe handling.
4576
4577 2011-11-05  Ralf Corsépius  <ralf.corsepius@rtems.org>
4578
4579         * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
4580         Remove -mcpu=601 multilib.
4581         Remove -Dmpc8260 multilib.
4582         * config/rs6000/rtems.h: Allow --float-gprs=... to override grps
4583         on E500 targets.
4584
4585 2011-11-05  Quentin Neill  <quentin.neill@amd.com>
4586
4587         Piledriver f16cintrin.h fix.
4588         * config/i386/f16cintrin.h: Contents moved from immintrin.h.
4589         * config/i386/immintrin.h: Include f16cintrin.h.
4590         * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h.
4591
4592
4593 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
4594
4595         PR c++/50608
4596         * c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
4597         to fold_offsetof.
4598         * c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
4599
4600 2011-11-04  Alan Modra  <amodra@gmail.com>
4601
4602         * reload1.c (gen_reload): Don't use REGNO on SUBREGs.
4603         * print-rtl.c (print_rtx): Don't segfault on negative regno.
4604
4605 2011-11-04  David S. Miller  <davem@davemloft.net>
4606
4607         PR target/49965
4608         * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the
4609         fact that sparc_emit_float_lib_cmp modifies the comparison in
4610         operands[1].
4611
4612 2011-11-04  Ralf Corsépius  <ralf.corsepius@rtems.org>
4613
4614         * config/lm32/t-rtems: New.
4615         * config.gcc (lm32-*-rtems*): Add t-rtems.
4616
4617 2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
4618
4619         PR target/50979
4620         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
4621
4622 2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>
4623
4624         PR rtl-optimization/38644
4625         * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
4626         for epilogue having stack adjustment.
4627
4628 2011-11-04  Georg-Johann Lay  <avr@gjlay.de>
4629
4630         PR target/50931
4631         * config/avr/avr-modes.def: New file defining PSImode.
4632         * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
4633         __UINT24_MAX__): New built-in defines.
4634         * config/avr/avr.md (adjust_len): Add tstpsi, mov24,  reload_in24,
4635         ashlpsi, ashrpsi, lshrpsi.
4636         (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
4637         (MOVMODE): New mode iterator.
4638         (movpsi): New expander.
4639         (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
4640         (*reload_inpsi, *movpsi): New insns.
4641         (*reload_inpsi): New RTL peephole.
4642         (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
4643         *addpsi3_sign_extend.hi): New insns.
4644         (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
4645         *subpsi3_sign_extend.hi): New insns.
4646         (divmodpsi4, udivmodpsi4): New define insn-and-split.
4647         (*divmodpsi4_call, *udivmodpsi4_call): New insns.
4648         (andpsi3, iorpsi3, xorpsi3): New insns.
4649         (*rotlpsi2.1, *rotlpsi2.23): New insns.
4650         (*rotw<mode>): Insn condition only allow even-sized modes.
4651         (*rotb<mode>): Insn condition allows odd-sized modes.
4652         (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
4653         (negpsi2, one_cmplpsi2): New insns.
4654         (extendqipsi2, extendhipsi2, extendpsisi2): New insns.
4655         (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
4656         insn-and-splits.
4657         (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
4658         (cbranchpsi4): New expander.
4659         * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
4660         * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
4661         avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
4662         avr_out_reload_inpsi): New prototypes.
4663
4664         * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
4665         (avr_scalar_mode_supported_p): ...this new static function.
4666         (avr_asm_len): Always return "".
4667         (avr_out_load_psi, avr_out_store_psi): New static functions.
4668         (avr_out_movpsi, avr_out_reload_inpsi): New functions.
4669         (avr_out_tstpsi): New function.
4670         (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
4671         (avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
4672         (avr_simplify_comparison_p): Ditto.
4673         (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
4674         ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
4675         ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
4676         (avr_rtx_costs_1): Report PSI costs.
4677         (avr_libcall_value): Handle odd-sized parameters.
4678         (avr_init_builtin_int24): New static function to define built-in
4679         24-bit types __int24 and __uint24.
4680         (avr_init_builtins): Use it.
4681
4682 2011-11-04  Thomas Doerfler <thomas.doerfler@embedded-brains.de>
4683
4684         PR target/50989
4685         * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional
4686         support for VFP floating point model.
4687
4688 2011-11-04  Tristan Gingold  <gingold@adacore.com>
4689
4690         * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.
4691
4692 2011-11-04  Ira Rosen  <ira.rosen@linaro.org>
4693
4694         Unrevert:
4695         2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
4696
4697         PR tree-optimization/50730
4698         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
4699         analysis if encountered unsupported data-ref.
4700
4701 2011-11-04  Jakub Jelinek  <jakub@redhat.com>
4702
4703         * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
4704         function.
4705         * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
4706         New prototype.
4707         * config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
4708         For floatunsv8siv8sf2 require TARGET_AVX2.
4709
4710         * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
4711         XORP argument.  Subtract 0x1p31 instead of 0x1p32.  Use normal
4712         signalling comparison instead of non-signalling.  Store into
4713         *XORP pseudo holding 0x80000000 integers if 0x1p31 has been
4714         subtracted and 0 otherwise.
4715         * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
4716         Adjust prototype.
4717         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
4718         already for TARGET_SSE2.  Xor in vector initialized by
4719         ix86_expand_adjust_ufix_to_sfix_si at the end.
4720         (vec_pack_ufix_trunc_<mode>): Likewise.
4721
4722         * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
4723         not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
4724         WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what
4725         vectorizable_type_demotion and vectorizable_type_promotion did.
4726         Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer
4727         is {,un}signed {char,short}.
4728         (vect_create_vectorized_demotion_stmts): Fix comment typo.  For
4729         recursive calls unconditionally use VEC_PACK_TRUNC_EXPR.
4730         Push vec_dest back to the vec_dsts vector at the end.
4731         (vect_create_vectorized_promotion_stmts): Don't recurse, do just
4732         one step.  Removed multi_step_cvt, vec_dsts, slp_node and
4733         prev_stmt_info arguments, add vec_dest argument.  Push always
4734         into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0
4735         with vec_tmp at the end after freeing old *vec_oprnd0 vector.
4736         (vectorizable_type_demotion, vectorizable_type_promotion): Removed.
4737         (vect_analyze_stmt): Don't call vectorizable_type_demotion and
4738         vectorizable_type_promotion.  Call vectorizable_conversion even
4739         for SLP bb vectorization.
4740         (vect_transform_stmt): Call vectorizable_conversion instead of
4741         vectorizable_type_demotion and vectorizable_type_promotion.
4742         (supportable_widening_operation): Clear *multi_step_cvt first,
4743         simplify c1/c2 computation, free *interm_types vector on failure.
4744         (supportable_narrowing_operation): Clear *multi_step_cvt first,
4745         free *interm_types vector on failure, handle multi-step
4746         FIX_TRUNC_EXPR.
4747
4748 2011-11-04  Tristan Gingold  <gingold@adacore.com>
4749
4750         * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl
4751         argument.  Conditionally generate crash debug info.  Adjust
4752         for alpha_funcs_tree removal.
4753         (machine_function): Add links field.
4754         (alpha_start_function): Conditionally generate crash debug info.
4755         (alpha_end_function): Adjust call to alpha_write_linkage.
4756         (alpha_funcs): Remove.
4757         (links_kind): Remove.
4758         (alpha_links): Remove num, target and lkind field.  Add func field.
4759         (alpha_links_tree): Remove.
4760         (alpha_funcs_tree): Remove.
4761         (alpha_need_linkage): Remove.
4762         (alpha_use_linkage): Change prototype.  Adjust.
4763         (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL.
4764         Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro.
4765         * config/alpha/alpha-protos.h (alpha_use_linkage): Update.
4766         (alpha_need_linkage): Remove.
4767         * config/alpha/alpha.md: Update calls to alpha_use_linkage.
4768         Adjust calls to alpha_need_linkage.
4769
4770 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
4771
4772         * sched-vis.c (print_value): Handle STRICT_LOW_PART.
4773
4774 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
4775
4776         * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
4777         rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
4778         btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
4779
4780 2011-11-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4781
4782         PR target/50978
4783         * config/arm/t-bpabi: New file.
4784         * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for
4785         arm*-*-linux-*eabi.
4786         (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for
4787         arm*-*-uclinux*eabi.
4788         (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file
4789         for arm*-*-eabi*.
4790
4791 2011-11-03  Michael Matz  <matz@suse.de>
4792
4793         PR bootstrap/50857
4794         * configure.ac: Check for -fno-exceptions -fno-rtti.
4795         * configure: Regenerate.
4796         * Makefile.in (NOEXCEPTION_FLAGS): New flag.
4797         (ALL_CXXFLAGS): Use it.
4798
4799 2011-11-03  Uros Bizjak  <ubizjak@gmail.com>
4800
4801         * config/i386/i386.md: Use {} for multi-line preparation statements.
4802
4803 2011-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4804
4805         * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into...
4806         (movtf_insn_sp32): ...this.
4807         (movtf_insn_sp64_no_fpu): Consolidate into...
4808         (movtf_insn_sp64): ...this.
4809         (movtf_insn_sp64_hq): Do not test TARGET_FPU.
4810         * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise.
4811
4812 2011-11-03  Tristan Gingold  <gingold@adacore.com>
4813
4814         * config/vms/vms.c (vms_patch_builtins): Fix typo.
4815
4816 2011-11-03  Richard Guenther  <rguenther@suse.de>
4817
4818         PR lto/44965
4819         * lto-opts.c: Re-implement.
4820         * lto-streamer.h (lto_register_user_option): Remove.
4821         (lto_read_file_options): Likewise.
4822         (lto_reissue_options): Likewise.
4823         (lto_clear_user_options): Likewise.
4824         (lto_clear_file_options): Likewise.
4825         * opts-global.c (post_handling_callback): Remove.
4826         (set_default_handlers): Do not set post_handling_callback.
4827         (decode_options): Remove LTO specific code.
4828         * lto-wrapper.c (merge_and_complain): New function.
4829         (run_gcc): Read all input file options and
4830         prepend a merged set before the linker driver options.
4831         * gcc.c (driver_post_handling_callback): Remove.
4832         (set_option_handlers): Do not set post_handling_callback.
4833         * opts-common.c (handle_option): Do not call post_handling_callback.
4834         * opts.h (struct cl_option_handlers): Remove post_handling_callback.
4835
4836 2011-11-03  Richard Guenther  <rguenther@suse.de>
4837
4838         * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION.
4839
4840 2011-11-03  Martin Jambor  <mjambor@suse.cz>
4841
4842         * ipa-prop.c (type_change_info): New fields offset, object,
4843         known_current_type and multiple_types_encountered.
4844         (extr_type_from_vtbl_ptr_store): New function.
4845         (check_stmt_for_type_change): Use it, set multiple_types_encountered if
4846         the result is different from the previous one.
4847         (detect_type_change): Renamed to detect_type_change_1. New parameter
4848         comp_type.  Set up new fields in tci, build known type jump
4849         functions if the new type can be identified.
4850         (detect_type_change): New function.
4851         * tree.h (DECL_CONTEXT): Comment new use.
4852
4853 2011-11-03  Richard Guenther  <rguenther@suse.de>
4854
4855         PR lto/48217
4856         * lto-wrapper.c (get_options_from_collect_gcc_options): Properly
4857         decode an encoded literal '.
4858
4859 2011-11-03  Tristan Gingold  <gingold@adacore.com>
4860
4861         * collect2.c (main): Add support of -f (response file) on AIX.
4862
4863 2011-11-03  Ira Rosen  <ira.rosen@linaro.org>
4864
4865         PR tree-optimization/50912
4866         * tree-vectorizer.h (slp_void_p): New.
4867         (struct _slp_tree): Replace left and right with children.  Update
4868         documentation.
4869         (struct _slp_oprnd_info): New.
4870         (vect_get_vec_defs): Declare.
4871         (vect_get_slp_defs): Update arguments.
4872         * tree-vect-loop.c (vect_create_epilog_for_reduction): Call
4873         vect_get_vec_defs instead of vect_get_slp_defs.
4874         (vectorizable_reduction): Likewise.
4875         * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
4876         Update call to vect_get_slp_defs.
4877         (vectorizable_conversion): Update call to vect_get_vec_defs.
4878         (vectorizable_assignment, vectorizable_shift,
4879         vectorizable_operation): Likewise.
4880         (vectorizable_type_demotion): Call vect_get_vec_defs instead of
4881         vect_get_slp_defs.
4882         (vectorizable_type_promotion, vectorizable_store): Likewise.
4883         (vect_analyze_stmt): Fix typo.
4884         * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
4885         (vect_print_slp_tree, vect_mark_slp_stmts,
4886         vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
4887         vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
4888         vect_schedule_slp_instance): Likewise.
4889         (vect_create_new_slp_node): New.
4890         (vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
4891         (vect_get_and_check_slp_defs): Pass information about defs using
4892         oprnds_info, allow any number of operands.
4893         (vect_build_slp_tree): Likewise.  Update calls to
4894         vect_get_and_check_slp_defs.  Fix comments.
4895         (vect_analyze_slp_instance): Move node creation to
4896         vect_create_new_slp_node.
4897         (vect_get_slp_defs): Allow any number of operands.
4898
4899 2011-11-02  Peter Bergner  <bergner@vnet.ibm.com>
4900             Iain Sandoe  <iains@gcc.gnu.org>
4901
4902         * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define.
4903         (get_ppc476_thunk_name): Use it.
4904         (rs6000_code_end): Likewise.
4905         (macho_branch_islands): Fix typo.
4906
4907 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
4908             Jason Merrill  <jason@redhat.com>
4909
4910         PR c++/50810
4911         * configure.ac: Add -Wno-narrowing to warning options.
4912         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
4913
4914 2011-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4915
4916         PR target/50945
4917         * config/sparc/sparc.md (movsf_insn): Reindent constraints.
4918         (movdf_insn_sp32): Likewise.  Remove redundant G constraint.
4919         (movdf_insn_sp64): Likewise.
4920         (DFmode splitter): Do not test TARGET_FPU.
4921         (movtf_insn_sp32): Reindent constraints.
4922         (movtf_insn_sp32_no_fpu): Likewise.
4923         (movtf_insn_sp64): Likewise.
4924         (movtf_insn_sp64_hq): Likewise.
4925         (movtf_insn_sp64_no_fpu): Likewise.
4926
4927 2011-11-02  Paolo Carlini  <paolo.carlini@oracle.com>
4928
4929         PR c++/50956
4930         * builtins.c (fold_builtin_memchr): Fix cast.
4931
4932 2011-11-02  Teresa Johnson  <tejohnson@google.com>
4933
4934         * config/i386/predicates.md (promotable_binary_operator): Add minus
4935         to the list of promotable operators.
4936
4937 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4938
4939         * gthr-single.h, gthr.h: Move to ../libgcc.
4940         * gthr-aix.h: Move to ../libgcc/config/rs6000.
4941         * gthr-dce.h: Move to ../libgcc/config/pa.
4942         * gthr-lynx.h: Move to ../libgcc/config.
4943         * gthr-mipssde.h: Move to ../libgcc/config/mips.
4944         * gthr-posix.h: Move to ../libgcc/config.
4945         * gthr-rtems.h: Likewise.
4946         * gthr-tpf.h: Move to ../libgcc/config/s390.
4947         * gthr-vxworks.h: Move to ../libgcc/config.
4948         * gthr-win32.h: Move to ../libgcc/config/i386.
4949         * configure.ac (gthread_flags): Remove
4950         (gthr-default.h): Don't create.
4951         (thread_file): Don't substitute.
4952         * configure: Regenerate.
4953         * Makefile.in (GCC_THREAD_FILE): Remove.
4954         (GTHREAD_FLAGS): Remove.
4955         (libgcc.mvars): Remove GTHREAD_FLAGS.
4956         * config/t-vxworks (EXTRA_HEADERS): Remove.
4957
4958 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4959             Paolo Bonzini  <bonzini@gnu.org>
4960
4961         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
4962         * configure: Regenerate.
4963         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
4964         (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
4965         (libgcc_tm.h, cs-libgcc_tm.h): Remove.
4966         (clean): Remove libgcc_tm.h
4967         * mkconfig.sh: Don't include libgcc_tm.h in tm.h.
4968         * config.gcc (libgcc_tm_file): Remove.
4969         (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
4970         (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
4971         (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
4972         (avr-*-rtems*): Likewise.
4973         (avr-*-*): Likewise.
4974         (frv-*-elf): Likewise.
4975         (frv-*-*linux*): Likewise.
4976         (h8300-*-rtems*): Likewise.
4977         (h8300-*-elf*): Likewise.
4978         (i[34567]86-*-darwin*): Likewise.
4979         (x86_64-*-darwin*): Likewise.
4980         (rx-*-elf*): Likewise.
4981         (tic6x-*-elf): Likewise.
4982         (tic6x-*-uclinux): Likewise.
4983         (i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
4984
4985 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4986
4987         * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS)
4988         (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA)
4989         (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET)
4990         (INCLUDES_FOR_TARGET): Remove.
4991         (LIBGCC2_CFLAGS): Don't export.
4992         (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify):
4993         Remove.
4994         (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies.
4995         (libgcc.mvars): Likewise.
4996         Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST,
4997         LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS,
4998         TARGET_LIBGCC2_CFLAGS.
4999         Emit GTHREAD_FLAGS.
5000         * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc.
5001         * config/darwin-64.c: Move to ../libgcc/config.
5002         * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
5003         config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
5004         config/udivmodsi4.c: Move to ../libgcc/config.
5005         * config/gthr-posix.c: Move to ../libgcc/config/alpha.
5006         * config/memcmp.c, config/memcpy.c, config/memmove.c,
5007         config/memset.c: Move to ../libgcc/config.
5008         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove.
5009         * config/t-freebsd: Remove.
5010         * config/t-freebsd-thread: Move to ../libgcc/config.
5011         * config/t-libgcc-pic: Move to ../libgcc/config.
5012         * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove.
5013         * config/t-linux: Remove.
5014         * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
5015         Remove.
5016         * config/t-openbsd-thread: Move to ../libgcc/config.
5017         * config/t-rtems (LIBGCC2_INCLUDES): Remove.
5018         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove.
5019         * config/t-svr4: Remove.
5020         * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS)
5021         (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove.
5022         * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config.
5023         * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S.
5024         * config/alpha/t-alpha, config/alpha/t-ieee: Remove.
5025         * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove.
5026         * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha.
5027         * config/arm/bpabi.c, config/arm/unaligned-funcs.c,
5028         config/arm/fp16.c, config/arm/linux-atomic.c,
5029         config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm.
5030         * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC)
5031         (TARGET_LIBGCC2_CFLAGS): Remove.
5032         * config/arm/t-bpabi, config/arm/t-linux: Remove.
5033         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS)
5034         (LIB2FUNCS_STATIC_EXTRA): Remove.
5035         * config/arm/t-netbsd: Remove.
5036         * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC)
5037         (TARGET_LIBGCC2_CFLAGS): Remove.
5038         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove.
5039         * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC)
5040         (TARGET_LIBGCC2_CFLAGS): Remove.
5041         * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS)
5042         (LIBGCC, INSTALL_LIBGCC): Remove.
5043         * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove.
5044         * config/bfin/t-bfin-linux: Likewise.
5045         * config/bfin/t-bfin-uclinux: Likewise.
5046         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
5047         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
5048         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
5049         config/c6x/ltf.c: Move to ../libgcc/config/c6x.
5050         * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove.
5051         * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove.
5052         * config/cris/arit.c: Move to ../libgcc/config/cris.
5053         * config/cris/cris_abi_symbol.c: Remove.
5054         * config/cris/cris.h: Remove obsolete comment.
5055         * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
5056         * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
5057         ($(LIB2FUNCS_EXTRA)): Remove.
5058         * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
5059         (LIBGCC): Remove.
5060         * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
5061         * config/fr30/t-fr30: Remove.
5062         * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
5063         config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
5064         config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move
5065         to ../libgcc/config/frv.
5066         * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
5067         (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c)
5068         (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove.
5069         * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
5070         * config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
5071         config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
5072         config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300.
5073         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
5074         (LIBGCC, INSTALL_LIBGCC): Remove.
5075         * config/i386/gthr-win32.c: Move to ../libgcc/config/i386.
5076         * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove.
5077         * config/i386/t-cygwin: Remove.
5078         * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
5079         (LIB2FUNCS_EXCLUDE): Remove.
5080         * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
5081         (LIBGCC, INSTALL_LIBGCC): Remove.
5082         * config/i386/t-gthr-win32: Move to ../libgcc/config/i386.
5083         * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove.
5084         * config/i386/t-mingw-w32: Likewise.
5085         * config/i386/t-mingw-w64: Likewise.
5086         * config/i386/t-openbsd: Likewise.
5087         * config/i386/t-nto: Remove.
5088         * config/ia64/quadlib.c: Move to ../libgcc/config/ia64.
5089         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
5090         (quadlib.c): Remove.
5091         * config/ia64/t-ia64: Remove comment.
5092         * config/iq2000/lib2extra-funcs.c: Move to
5093         ../libgcc/config/iq2000/lib2funcs.c.
5094         * config/iq2000/t-iq2000: Remove.
5095         * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c.
5096         * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c.
5097         * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
5098         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove.
5099         * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5100         (INSTALL_LIBGCC): Remove.
5101         * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k.
5102         * config/m68k/t-floatlib: Remove.
5103         * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove.
5104         * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove.
5105         Fix typo.
5106         (LIBGCC, INSTALL_LIBGCC): Remove.
5107         * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c.
5108         * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c.
5109         * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove.
5110         * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5111         (INSTALL_LIBGCC): Remove.
5112         * config/mips/t-isa3264: Likewise.
5113         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove.
5114         * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5115         (INSTALL_LIBGCC): Remove.
5116         * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove.
5117         * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC)
5118         (INSTALL_LIBGCC): Remove.
5119         * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS)
5120         (LIB2FUNCS_STATIC_EXTRA): Remove.
5121         * config/mips/vr4120-div.S: Move to ../libgcc/config/mips.
5122         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove.
5123         * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove.
5124         * config/pa/fptr.c, config/pa/linux-atomic.c: Move to
5125         ../libgcc/config/pa.
5126         * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S.
5127         * config/pa/quadlib.c: Move to ../libgcc/config/pa.
5128         * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove.
5129         * config/pa/t-linux, config/pa/t-linux64: Remove.
5130         * config/pa/t-pa-hpux, config/pa/t-pa-hpux10,
5131         config/pa/t-pa-hpux11, config/pa/t-pa64: Remove.
5132         * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA):
5133         Remove.
5134         * config/picochip/libgccExtras: Move to ../libgcc/config/picochip.
5135         * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET)
5136         (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove.
5137         * config/rs6000/crtresfpr.asm: Move to
5138         ../libgcc/config/rs6000/crtresfpr.S.
5139         * config/rs6000/crtresgpr.asm: Move to
5140         ../libgcc/config/rs6000/crtresgpr.S.
5141         * config/rs6000/crtresxfpr.asm: Move to
5142         ../libgcc/config/rs6000/crtresxfpr.S.
5143         * config/rs6000/crtresxgpr.asm: Move to
5144         ../libgcc/config/rs6000/crtresxgpr.S.
5145         * config/rs6000/crtsavfpr.asm: Move to
5146         ../libgcc/config/rs6000/crtsavfpr.S.
5147         * config/rs6000/crtsavgpr.asm: Move to
5148         ../libgcc/config/rs6000/crtsavgpr.S.
5149         * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000.
5150         * config/rs6000/darwin-fpsave.asm: Move to
5151         ../libgcc/config/rs6000/darwin-fpsave.S.
5152         * config/rs6000/darwin-gpsave.asm: Move to
5153         ../libgcc/config/rs6000/darwin-gpsave.S.
5154         * config/rs6000/darwin-tramp.asm: Move to
5155         ../libgcc/config/rs6000/darwin-tramp.S.
5156         * config/rs6000/darwin-vecsave.asm: Move to
5157         ../libgcc/config/rs6000/darwin-vecsave.S.
5158         * config/rs6000/darwin-world.asm: Move to
5159         ../libgcc/config/rs6000/darwin-world.S.
5160         * config/rs6000/e500crtres32gpr.asm: Move to
5161         ../libgcc/config/rs6000/e500crtres32gpr.S.
5162         * config/rs6000/e500crtres64gpr.asm: Move to
5163         ../libgcc/config/rs6000/e500crtres64gpr.S.
5164         * config/rs6000/e500crtres64gprctr.asm: Move to
5165         ../libgcc/config/rs6000/e500crtres64gprctr.S.
5166         * config/rs6000/e500crtrest32gpr.asm: Move to
5167         ../libgcc/config/rs6000/e500crtrest32gpr.S.
5168         * config/rs6000/e500crtrest64gpr.asm: Move to
5169         ../libgcc/config/rs6000/e500crtrest64gpr.S.
5170         * config/rs6000/e500crtresx32gpr.asm: Move to
5171         ../libgcc/config/rs6000/e500crtresx32gpr.S.
5172         * config/rs6000/e500crtresx64gpr.asm: Move to
5173         ../libgcc/config/rs6000/e500crtresx64gpr.S.
5174         * config/rs6000/e500crtsav32gpr.asm: Move to
5175         ../libgcc/config/rs6000/e500crtsav32gpr.S.
5176         * config/rs6000/e500crtsav64gpr.asm: Move to
5177         ../libgcc/config/rs6000/e500crtsav64gpr.S.
5178         * config/rs6000/e500crtsav64gprctr.asm: Move to
5179         ../libgcc/config/rs6000/e500crtsav64gprctr.S.
5180         * config/rs6000/e500crtsavg32gpr.asm: Move to
5181         ../libgcc/config/rs6000/e500crtsavg32gpr.S.
5182         * config/rs6000/e500crtsavg64gpr.asm: Move to
5183         ../libgcc/config/rs6000/e500crtsavg64gpr.S.
5184         * config/rs6000/e500crtsavg64gprctr.asm: Move to
5185         ../libgcc/config/rs6000/e500crtsavg64gprctr.S.
5186         * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S.
5187         * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
5188         (TARGET_LIBGCC2_CFLAGS): Remove.
5189         * config/rs6000/t-aix52: Likewise.
5190         * config/rs6000/t-darwin: Remove.
5191         * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS)
5192         (LIB2FUNCS_EXTRA): Remove.
5193         * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove.
5194         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove.
5195         * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC)
5196         (INSTALL_LIBGCC): Remove.
5197         * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA)
5198         (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S)
5199         (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC)
5200         (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext))
5201         ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext))
5202         ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove.
5203         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA)
5204         (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove.
5205         * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove.
5206         * config/rs6000/t-vxworks: Remove comment.
5207         * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S.
5208         * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove.
5209         * config/sh/linux-atomic.asm: Move to
5210         ../libgcc/config/sh/linux-atomic.S.
5211         * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove.
5212         * config/sh/t-netbsd: Remove.
5213         * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
5214         Remove.
5215         * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove.
5216         * config/sparc/t-leon: Likewise.
5217         * config/sparc/t-leon3: Likewise.
5218         * config/sparc/t-linux64: Likewise.
5219         * config/sparc/t-netbsd64: Fix typo.
5220         Remove comment.
5221         * config/spu/divmodti4.c, config/spu/divv2df3.c,
5222         config/spu/float_disf.c, config/spu/float_unsdidf.c,
5223         config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
5224         config/spu/mfc_multi_tag_release.c,
5225         config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
5226         config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
5227         config/spu/multi3.c: Move to ../libgcc/config/spu.
5228         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE)
5229         (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC)
5230         (INSTALL_LIBGCC): Remove.
5231         * config/stormy16/stormy16-lib2.c: Move to
5232         ../libgcc/config/stormy16/lib2.c.
5233         * config/stormy16/stormy16-lib2-ashlsi3.c: Move to
5234         ../libgcc/config/stormy16/ashlsi3.c.
5235         * config/stormy16/stormy16-lib2-ashrsi3.c: Move to
5236         ../libgcc/config/stormy16/ashrsi3.c.
5237         * config/stormy16/stormy16-lib2-clzhi2.c: Move to
5238         ../libgcc/config/stormy16/clzhi2.c.
5239         * config/stormy16/stormy16-lib2-cmpsi2.c: Move to
5240         ../libgcc/config/stormy16/cmpsi2.c.
5241         * config/stormy16/stormy16-lib2-ctzhi2.c: Move to
5242         ../libgcc/config/stormy16/ctzhi2.c.
5243         * config/stormy16/stormy16-lib2-divsi3.c: Move to
5244         ../libgcc/config/stormy16/divsi3.c.
5245         * config/stormy16/stormy16-lib2-ffshi2.c: Move to
5246         ../libgcc/config/stormy16/ffshi2.c.
5247         * config/stormy16/stormy16-lib2-lshrsi3.c: Move to
5248         ../libgcc/config/stormy16/lshrsi3.c.
5249         * config/stormy16/stormy16-lib2-modsi3.c: Move to
5250         ../libgcc/config/stormy16/modsi3.c.
5251         * config/stormy16/stormy16-lib2-parityhi2.c: Move to
5252         ../libgcc/config/stormy16/parityhi2.c.
5253         * config/stormy16/stormy16-lib2-popcounthi2.c: Move to
5254         ../libgcc/config/stormy16/popcounthi2.c.
5255         * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to
5256         ../libgcc/config/stormy16/ucmpsi2.c.
5257         * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to
5258         ../libgcc/config/stormy16/udivmodsi4.c.
5259         * config/stormy16/stormy16-lib2-udivsi3.c: Move to
5260         ../libgcc/config/stormy16/udivsi3.c.
5261         * config/stormy16/stormy16-lib2-umodsi3.c: Move to
5262         ../libgcc/config/stormy16/umodsi3.c.
5263         * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16.
5264         * config/v850/t-v850 (INSTALL_LIBGCC): Remove.
5265         * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa.
5266         * config/xtensa/t-elf: Remove.
5267         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove.
5268         * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread
5269         from tmake_file.
5270         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
5271         *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file.
5272         (*-*-netbsd*): Remove t-libgcc-pic from tmake_file.
5273         (*-*-openbsd*): Likewise.
5274         Remove t-openbsd-thread for posix threads.
5275         (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file.
5276         (alpha*-*-freebsd*): Likewise.
5277         (alpha*-*-netbsd*): Likewise.
5278         (alpha*-*-openbsd*): Likewise.
5279         (alpha64-dec-*vms*): Likewise.
5280         (alpha*-dec-*vms*): Likewise.
5281         (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file.
5282         (arm*-*-linux*): Remove t-linux from tmake_file.
5283         Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi.
5284         (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for
5285         arm*-*-uclinux*eabi.
5286         (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from
5287         tmake_file for arm*-*-eabi*.
5288         (fr30-*-elf): Remove tmake_file.
5289         (hppa*64*-*-linux*): Remove tmake_file.
5290         (hppa*-*-linux*): Likewise.
5291         (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from
5292         tmake_file.
5293         (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file.
5294         (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from
5295         tmake_file.
5296         (i[34567]86-*-elf*): Remove tmake_file.
5297         (x86_64-*-elf*): Likewise.
5298         (i[34567]86-*-nto-qnx*): Likewise.
5299         (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file.
5300         (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32
5301         from tmake_file if using win32 threads.
5302         (iq2000*-*-elf*): Remove tmake-file.
5303         (microblaze*-linux*): Likewise.
5304         (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
5305         (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
5306         (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
5307         (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for
5308         sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd.
5309         (xtensa*-*-elf*): Remove tmake_file.
5310
5311 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5312
5313         * Makefile.in (LIB1ASMSRC): Don't export.
5314         (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC.
5315         * config/arm/arm.c: Update lib1funcs.asm filename.
5316         * config/arm/linux-eabi.h: Likewise.
5317         * config/arm/bpabi-v6m.S, config/arm/bpabi.S,
5318         config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to
5319         ../libgcc/config/arm.
5320         * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S.
5321         * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5322         * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove.
5323         * config/arm/t-bpabi: Likewise.
5324         * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5325         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove.
5326         * config/arm/t-strongarm-elf: Likewise.
5327         * config/arm/t-symbian: Likewise.
5328         * config/arm/t-vxworks: Likewise.
5329         * config/arm/t-wince-pe: Likewise.
5330         * config/avr/libgcc.S: Move to ../libgcc/config/avr.
5331         * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5332         * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S.
5333         * config/bfin/t-bfin: Remove.
5334         * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5335         * config/bfin/t-bfin-linux: Likewise.
5336         * config/bfin/t-bfin-uclinux: Likewise.
5337         * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S.
5338         * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5339         * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S.
5340         * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5341         * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S.
5342         * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5343         * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename.
5344         * config/h8300/lib1funcs.asm: Move to
5345         ../libgcc/config/h8300/lib1funcs.S.
5346         * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5347         * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S.
5348         * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5349         * config/i386/t-interix: Likewise.
5350         * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S.
5351         * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove.
5352         * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5353         * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove.
5354         * config/m32c/m32c.c: Update m32c-lib1.S filename.
5355         * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S.
5356         * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5357         * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove.
5358         * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S.
5359         * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file.
5360         * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S.
5361         * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5362         * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S.
5363         * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5364         * config/mips/mips16.S: Move to ../libgcc/config/mips.
5365         * config/mips/t-libgcc-mips16: Remove.
5366         * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove.
5367         * config/pa/milli64.S: Move to ../libgcc/config/pa.
5368         * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
5369         * config/pa/t-linux64: Likewise.
5370         * config/picochip/libgccExtras/fake_libgcc.asm: Move to
5371         ../libgcc/config/picochip/lib1funcs.S.
5372         * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
5373         * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S.
5374         * config/sh/lib1funcs.h: Move to ../libgcc/config/sh.
5375         * config/sh/sh.h: Update lib1funcs.asm filename.
5376         * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove.
5377         * config/sh/t-netbsd: Likewise.
5378         * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE):
5379         Remove.
5380         * config/sh/t-sh64 (LIB1ASMFUNCS): Remove.
5381         * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S.
5382         * config/sparc/lb1spl.asm: Remove.
5383         * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5384         * config/sparc/t-leon: Likewise.
5385         * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove.
5386         * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S.
5387         * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove
5388         * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S.
5389         * config/vax/t-linux: Remove.
5390         * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to
5391         ../libgcc/config/xtensa.
5392         * config/xtensa/lib1funcs.asm: Move to
5393         ../libgcc/config/xtensa/lib1funcs.S.
5394         * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
5395         * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file.
5396         (bfin*-*): Likewise.
5397         (mips64*-*-linux*, mipsisa64*-*-linux*): Remove
5398         mips/t-libgcc-mips16 from tmake_file.
5399         (mips*-*-linux*): Likewise.
5400         (mips*-sde-elf*): Likewise.
5401         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
5402         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
5403         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise.
5404         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
5405         (mips-*-elf*, mipsel-*-elf*): Likewise.
5406         (mips64-*-elf*, mips64el-*-elf*): Likewise.
5407         (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
5408         (mips*-*-rtems*): Likewise.
5409         (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
5410         (vax-*-linux*): Remove vax/t-linux from tmake_file.
5411
5412 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5413
5414         * config.gcc (extra_parts): Remove.
5415         (*-*-freebsd*): Remove extra_parts.
5416         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
5417         *-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
5418         (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
5419         Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
5420         *-*-netbsdelf[2-9]*.
5421         (*-*-openbsd*): Remove t-libc-ok from tmake_file.
5422         (alpha*-*-linux*): Remove extra_parts.
5423         (alpha*-*-freebsd*): Likewise.
5424         (bfin*-linux-uclibc*): Likewise.
5425         (fr30-*-elf): Likewise.
5426         (moxie-*-elf): Likewise.
5427         (moxie-*-uclinux*): Likewise.
5428         (h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
5429         (h8300-*-elf*): Likewise.
5430         (hppa*64*-*-hpux11*): Remove extra_parts.
5431         (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
5432         tmake_file.
5433         (x86_64-*-elf*): Likewise.
5434         (i[34567]86-*-freebsd*): Remove tmake_file.
5435         (x86_64-*-freebsd*): Likewise.
5436         (x86_64-*-netbsd*): Likewise.
5437         (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
5438         t-libc-ok from tmake_file.
5439         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5440         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
5441         i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from
5442         tmake_file.
5443         Remove extra_parts.
5444         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
5445         Remove i386/t-crtstuff from tmake_file.
5446         (i[34567]86-*-lynxos*): Likewise.
5447         Remove extra_parts.
5448         (ia64*-*-elf*): Remove extra_parts.
5449         (ia64*-*-freebsd*): Likewise.
5450         (ia64*-*-linux*): Likewise.
5451         (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
5452         (m32r-*-elf*): Remove extra_parts.
5453         (m32rle-*-elf*): Likewise.
5454         (m32r-*-rtems*): Likewise.
5455         (m68k-*-elf*, fido-*-elf*): Likewise.
5456         (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
5457         (m68k-*-rtems*): Remove extra_parts.
5458         (mep-*-*): Likewise.
5459         (microblaze*-linux*): Likewise.
5460         (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
5461         (mips*-*-linux*): Likewise.
5462         (powerpc-*-lynxos*): Likewise.
5463         (s390x-ibm-tpf*): Likewise.
5464         (score-*-elf): Likewise.
5465         Remove tmake_file.
5466         (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
5467         sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
5468         sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
5469         Remove sh/t-superh from tmake_file for sh*-superh-elf.
5470         Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
5471         (sh-*-rtems*): Remove sh/t-elf from tmake_file.
5472         (sh-wrs-vxworks): Likewise.
5473         (sparc-*-linux*): Remove extra_parts.
5474         (sparc64-*-linux*): Likewise.
5475         (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
5476         (xstormy16-*-elf): Likewise.
5477         (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
5478         (am33_2.0-*-linux*): Remove extra_parts.
5479         * configure.ac (extra_parts): Don't substitute.
5480         * configure: Regenerate.
5481         * crtstuff.c: Move to ../libgcc.
5482         * Makefile.in (CRTSTUFF_CFLAGS): Remove.
5483         (EXTRA_PARTS): Remove.
5484         (CRTSTUFF_T_CFLAGS): Remove.
5485         (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
5486         (GCC_EXTRA_PARTS): Remove.
5487         (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
5488         CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
5489         Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
5490         ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)
5491         ($(T)crtbeginT.o): Remove.
5492         * config/alpha/t-vms (EXTRA_PARTS): Remove.
5493         ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove.
5494         * config/alpha/vms-dwarf2.asm: Move to
5495         ../libgcc/config/alpha/vms-dwarf2.S.
5496         * config/alpha/vms-dwarf2eh.asm: Move to
5497         ../libgcc/config/alpha/vms-dwarf2eh.S.
5498         * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S.
5499         * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S.
5500         * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove.
5501         ($(T)crti.o, $(T)crtn.o): Remove.
5502         * config/arm/t-linux: Remove comment.
5503         * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove.
5504         * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove.
5505         ($(T)crti.o, $(T)crtn.o): Remove.
5506         * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove.
5507         * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S.
5508         * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S.
5509         * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S.
5510         * config/bfin/t-bfin (EXTRA_PARTS): Remove.
5511         ($(T)crti.o, $(T)crtn.o): Remove.
5512         * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove.
5513         ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove
5514         (EXTRA_MULTILIB_PARTS): Remove.
5515         * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS,
5516         EXTRA_MULTILIB_PARTS): Remove.
5517         * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove.
5518         ($(T)crtlibid.o): Remove.
5519         (EXTRA_MULTILIB_PARTS): Remove.
5520         * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S.
5521         * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S.
5522         * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove.
5523         (EXTRA_MULTILIB_PARTS): Remove.
5524         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
5525         * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS,
5526         CRTSTUFF_T_CFLAGS_S): Remove.
5527         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove.
5528         * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
5529         * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S.
5530         * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S.
5531         * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove.
5532         * config/frv/frvbegin.c, config/frv/frvend.c: Move to
5533         ../libgcc/config/frv.
5534         * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove.
5535         (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove.
5536         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove.
5537         (CRTSTUFF_T_CFLAGS): Remove.
5538         * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S.
5539         * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S.
5540         * config/h8300/t-elf: Remove.
5541         * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
5542         Move to ../libgcc/config/i386.
5543         * config/i386/t-crtstuff: Remove.
5544         * config/i386/t-i386elf: Remove.
5545         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
5546         * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove.
5547         * config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S.
5548         * config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S.
5549         * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S.
5550         * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S.
5551         * config/ia64/t-vms: Remove.
5552         * config/ia64/vms-crtinit.asm: Move to
5553         ../libgcc/config/ia64/vms-crtinit.S.
5554         * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove.
5555         * config/m32r/initfini.c: Move to ../libgcc/config/m32r.
5556         * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
5557         * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove.
5558         ($(T)crtinit.o, $(T)crtfini.o): Remove.
5559         (m32rx, m32r2): Remove.
5560         (EXTRA_MULTILIB_PARTS): Remove.
5561         * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S.
5562         * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S.
5563         * config/m68k/t-crtstuff: Remove.
5564         * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove.
5565         * config/m68k/t-m68kelf: Remove.
5566         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove.
5567         * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S.
5568         * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S.
5569         * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove.
5570         (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
5571         * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove.
5572         (EXTRA_MULTILIB_PARTS): Remove.
5573         * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S.
5574         * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S.
5575         * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS,
5576         EXTRA_PARTS): Remove.
5577         ($(T)crti$(objext), $(T)crtn$(objext)): Remove.
5578         * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S.
5579         * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S.
5580         * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove.
5581         ($(T)crti.o, $(T)crtn.o): Remove.
5582         (EXTRA_MULTILIB_PARTS): Remove.
5583         * config/mips/t-isa3264: Likewise.
5584         * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
5585         * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove.
5586         (CRTSTUFF_T_CFLAGS): Remove.
5587         * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove.
5588         ($(T)crti.o, $(T)crtn.o): Remove.
5589         (EXTRA_MULTILIB_PARTS): Remove.
5590         * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS):
5591         Remove.
5592         ($(T)crti.o, $(T)crtn.o): Remove.
5593         * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove.
5594         * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove.
5595         (EXTRA_MULTILIB_PARTS): Remove.
5596         ($(T)crti.o, $(T)crtn.o): Remove.
5597         * config/mmix/crti.asm: Move to ../libgcc/config/crti.S.
5598         * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S.
5599         * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove.
5600         * config/moxie/crti.asm, config/moxie/crtn.asm: Remove.
5601         * config/pa/stublib.c: Move to libgcc/config/pa.
5602         * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
5603         * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove.
5604         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove.
5605         (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
5606         (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
5607         ($(T)libgcc_stub.a): Remove.
5608         * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove.
5609         (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o)
5610         (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
5611         (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
5612         ($(T)libgcc_stub.a): Remove.
5613         * config/rs6000/eabi-cn.asm: Move to
5614         ../../../libgcc/config/rs6000/eabi-cn.S.
5615         * config/rs6000/eabi-ci.asm: Move to
5616         ../../../libgcc/config/rs6000/eabi-ci.S.
5617         * config/rs6000/sol-ci.asm: Move to
5618         ../../../libgcc/config/rs6000/sol-ci.S.
5619         * config/rs6000/sol-cn.asm: Move to
5620         ../../../libgcc/config/rs6000/sol-cn.S.
5621         * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove.
5622         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
5623         * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
5624         Remove.
5625         (EXTRA_MULTILIB_PARTS): Remove.
5626         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove.
5627         (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
5628         ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext),
5629         ($(T)ncrtn$(objext)): Remove.
5630         (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
5631         * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
5632         * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove.
5633         * config/score/crti.asm: Move to ../libgcc/config/score/crti.S.
5634         * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S.
5635         * config/score/t-score-elf: Remove.
5636         * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S.
5637         * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S.
5638         * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S.
5639         * config/sh/lib1funcs-4-300.asm: Move to
5640         ../../../libgcc/config/sh/lib1funcs-4-300.S.
5641         * config/sh/lib1funcs-Os-4-200.asm: Move to
5642         ../libgcc/config/sh/lib1funcs-Os-4-200.S.
5643         * config/sh/t-elf: Remove.
5644         * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove.
5645         * config/sh/t-linux64: Remove.
5646         * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove.
5647         * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove.
5648         (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
5649         ($(T)ic_invalidate_array_4-100.o)
5650         ($(T)libic_invalidate_array_4-100.a)
5651         ($(T)ic_invalidate_array_4-200.o)
5652         ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o)
5653         ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o)
5654         ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o)
5655         ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o)
5656         ($(T)libgcc-4-300.a): Remove.
5657         * config/sh/t-superh: Remove.
5658         * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
5659         * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
5660         * config/spu/cache.S: Move to ../libgcc/config/spu.
5661         * config/spu/cachemgr.c: Move to ../libgcc/config/spu.
5662         * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove.
5663         (EXTRA_MULTILIB_PARTS): Remove.
5664         ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove.
5665         ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o)
5666         ($(T)cache64k.o, $(T)cache128k.o): Remove.
5667         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove.
5668         * config/t-libc-ok: Remove.
5669         * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
5670         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove.
5671         * config/t-netbsd: Remove.
5672         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove.
5673         * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
5674         * config/vms/t-vms (VMS_EXTRA_PARTS): Remove.
5675         ($(T)vcrt0.o, $(T)pcrt0.o): Remove.
5676         * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms.
5677         * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S.
5678         * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S.
5679         * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
5680         (EXTRA_MULTILIB_PARTS): Remove.
5681         * config/xtensa/t-linux: Remove.
5682         * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove.
5683
5684 2011-11-02  Uros Bizjak  <ubizjak@gmail.com>
5685
5686         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use
5687         CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2.
5688
5689 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5690
5691         PR translation/45116
5692         * Makefile.in (slibdir): Remove, don't export.
5693         (SHLIB_NM_FLAGS): Remove.
5694         (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
5695         SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
5696         SHLIB_MAPFILES, SHLIB_NM_FLAGS.
5697         (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
5698         (gcc.o): Pass SHLIB instead of SHLIB_LINK.
5699         (gccspec.o): Likewise.
5700         (installdirs): Don't create $(DESTDIR)$(slibdir).
5701         * configure.ac (slibdir): Remove.
5702         * configure: Regenerate.
5703         * libgcc-libsystem.ver: Move to ../libgcc/config.
5704         * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
5705         * config/libgcc-glibc.ver: Move to ../libgcc/config.
5706         * config/t-libunwind (SHLIB_LC): Remove.
5707         * config/t-linux (SHLIB_MAPFILES): Remove.
5708         * config/t-slibgcc-dummy: Rename to config/t-slibgcc.
5709         * config/t-slibgcc-elf-ver: Remove.
5710         * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
5711         ../libgcc/config.
5712         * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
5713         to ../libgcc/config/alpha.
5714         * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
5715         SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
5716         SHLIB_SYMVECX2, SHLIB_LINK): Remove.
5717         * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
5718         * config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
5719         * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
5720         SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
5721         * config/arm/t-symbian (SHLIB_LC): Remove.
5722         * config/bfin/libgcc-bfin.ver: Move to
5723         ../libgcc/config/bfin/libgcc-glibc.ver.
5724         * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
5725         * config/c6x/libgcc-c6xeabi.ver: Move to
5726         ../libgcc/config/c6x/libgcc-eabi.ver.
5727         * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
5728         * config/cris/libgcc.ver: Move to
5729         ../libgcc/config/cris/libgcc-glibc.ver.
5730         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
5731         * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
5732         * config/frv/t-linux (SHLIB_MAPFILES): Remove.
5733         * config/i386/darwin-libgcc.10.4.ver: Move to
5734         ../libgcc/config/i386/libgcc-darwin.10.4.ver.
5735         * config/i386/darwin-libgcc.10.5.ver: Move to
5736         ../libgcc/config/i386/libgcc-darwin.10.5.ver.
5737         * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
5738         * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
5739         SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
5740         SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
5741         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove.
5742         * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
5743         SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
5744         * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
5745         ../libgcc/config/i386.
5746         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
5747         ../libgcc/config/i386.
5748         * config/i386/t-linux: Move to ../libgcc/config/i386.
5749         * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
5750         * config/i386/t-mingw-w32 (SHLIB_LC): Remove.
5751         * config/i386/t-mingw-w64: Likewise.
5752         * config/i386/t-mingw32: Remove.
5753         * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
5754         to ../libgcc/config/ia64.
5755         * config/ia64/t-glibc: Remove.
5756         * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
5757         * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
5758         * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
5759         SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
5760         * config/ia64/vms_symvec_libgcc_s.opt: Remove.
5761         * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
5762         * config/m32r/t-linux (SHLIB_MAPFILES): Remove.
5763         * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
5764         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
5765         * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
5766         * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
5767         Move to ../libgcc/config/pa.
5768         * config/rs6000/darwin-libgcc.10.4.ver: Move to
5769         ../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
5770         * config/rs6000/darwin-libgcc.10.5.ver: Move to
5771         ../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
5772         * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
5773         SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
5774         * config/rs6000/t-aix52: Likewise.
5775         * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
5776         ../libgcc/config/sh.
5777         * config/sparc/libgcc-sparc-glibc.ver: Move to
5778         ../libgcc/config/sparc/libgcc-glibc.ver.
5779         * config/sparc/t-linux: Move to ../libgcc/config/sparc.
5780         * config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
5781         * config/xtensa/libgcc-xtensa.ver: Move to
5782         ../libgcc/config/xtensa/libgcc-glibc.ver.
5783         * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
5784         t-slibgcc in tmake_file.
5785         Remove t-slibgcc-nolc-override for *-*-freebsd[34],
5786         *-*-freebsd[34].* with pthreads.
5787         (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
5788         *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
5789         t-slibgcc-elf-ver with t-slibgcc in tmake_file.
5790         (*-*-netbsd*): Likewise.
5791         (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
5792         (*-*-*vms*): Add t-slibgcc to tmake_file.
5793         (alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
5794         (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
5795         tmake_file.
5796         (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
5797         arm*-*-linux-*eabi.
5798         (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
5799         tmake_file.
5800         (crisv32-*-linux*, cris-*-linux*): Likewise.
5801         (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
5802         pa/t-slibgcc-dwarf-ver from tmake_file.
5803         (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
5804         tmake_file.
5805         Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
5806         (hppa*64*-*-hpux11*): Likewise.
5807         (hppa[12]*-*-hpux11*): Likewise.
5808         (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
5809         tmake_file.
5810         (x86_64-*-darwin*): Likewise.
5811         (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
5812         Add t-slibgcc to tmake_file.
5813         (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
5814         Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
5815         i[34567]86-w64-*.
5816         Remove i386/t-mingw-pthread from tmake_file.
5817         (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
5818         (ia64*-*-hpux*): Add t-slibgcc to tmake_file.
5819         (ia64-hp-*vms*): Likewise.
5820         (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
5821         tmake_file.
5822         (m32rle-*-linux*): Likewise.
5823         (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
5824         (microblaze*-linux*): Remove t-slibgcc-elf-ver,
5825         t-slibgcc-nolc-override from tmake_file.
5826         (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
5827         tmake_file.
5828         (powerpc-*-darwin*): Likewise.
5829         (powerpc64-*-darwin*): Likewise.
5830         (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
5831         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
5832         (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
5833         t-slibgcc to tmake_file.
5834         (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
5835         (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
5836         (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
5837         (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
5838         (sparc-*-linux*): Remove sparc/t-linux from tmake_file.
5839         (sparc64-*-linux*): Likewise.
5840         (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
5841         tmake_file.
5842         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5843         x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
5844         from tmake_file.
5845
5846 2011-11-02  Richard Guenther  <rguenther@suse.de>
5847
5848         PR tree-optimization/50902
5849         * tree-vect-stmts.c (vectorizable_load): Properly convert
5850         an invariant initializer element.
5851
5852 2010-11-02  Richard Guenther  <rguenther@suse.de>
5853
5854         PR tree-optimization/50890
5855         * gimple.h (gimple_fold_call): Remove.
5856         * gimple-fold.c (fold_stmt_1): Move all call related code to ...
5857         (gimple_fold_call): ... here.  Make static.  Update the
5858         cannot-inline flag on direct calls.
5859         * ipa-inline.c (early_inliner): Copy the cannot-inline flag
5860         from the statements to the edges.
5861
5862 2011-11-01  Ian Lance Taylor  <iant@google.com>
5863
5864         * godump.c (struct macro_hash_value): Define.
5865         (macro_hash_hashval): New static function.
5866         (macro_hash_eq, macro_hash_del): New static functions.
5867         (go_define): Use macro_hash_value to store values in macro_hash.
5868         Replace an old value on a redefinition.  Don't print anything to
5869         go_dump_file.
5870         (go_undef): Delete the entry from the hash table.
5871         (go_output_typedef): For an enum, use macro_hash_value, and don't
5872         print anything to go_dump_file.
5873         (go_print_macro): New static function.
5874         (go_finish): Traverse macro_hash with go_print_macro.
5875         (dump_go_spec_init): Update macro_hash creation for macro_hash_value.
5876
5877 2011-11-02  Alan Modra  <amodra@gmail.com>
5878
5879         * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.
5880
5881 2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
5882
5883         PR c++/44277
5884         * doc/invoke.texi: Document -Wzero-as-null-pointer-constant.
5885
5886 2011-11-01  Andrew Stubbs  <ams@codesourcery.com>
5887
5888         * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
5889
5890 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
5891
5892         * config/i386/i386.md (splitters for int-float conversion): Use
5893         SUBREG_REG on SUBREGs in splitter constraints.
5894
5895 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
5896
5897         * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New
5898         prototype.
5899         * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New
5900         function.
5901         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it.
5902         (ssepackfltmode): New mode attr.
5903         (vec_pack_ufix_trunc_<mode>): New expander.
5904
5905 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
5906
5907         PR target/50940
5908         * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
5909         Compare <ssevecmode>mode to V4SFmode, not V4SImode.
5910
5911 2011-11-01  Peter Bergner  <bergner@vnet.ibm.com>
5912
5913         * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.
5914         * config/rs6000/476.h: New file.
5915         * config/rs6000/476.opt: Likewise.
5916         * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define.
5917         (SET_TARGET_LINK_STACK): Likewise.
5918         (TARGET_ASM_CODE_END): Define.
5919         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
5920         TARGET_LINK_STACK for -mtune=476 and -mtune=476fp.
5921         (rs6000_legitimize_tls_address): Emit the link stack preserving GOT
5922         code if TARGET_LINK_STACK.
5923         (rs6000_emit_load_toc_table): Likewise.
5924         (output_function_profiler): Likewise
5925         (macho_branch_islands): Likewise
5926         (machopic_output_stub): Likewise
5927         (get_ppc476_thunk_name): New function.
5928         (rs6000_code_end): Likewise.
5929         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
5930         Convert to a define_expand.
5931         (load_toc_v4_PIC_1_normal): New define_insn.
5932         (load_toc_v4_PIC_1_476): Likewise.
5933         (load_toc_v4_PIC_1b_normal): Likewise.
5934         (load_toc_v4_PIC_1b_476): Likewise.
5935
5936 2011-11-01  Georg-Johann Lay  <avr@gjlay.de>
5937
5938         PR target/50910
5939         * config/avr/avr.opt (-mbranch-cost=): New option.
5940         * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost.
5941         * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs.
5942         * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns.
5943         (*addhi3_zero_extend1): Remove % in constraint of operand 1.
5944         (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns.
5945
5946 2011-11-01  Tom de Vries  <tom@codesourcery.com>
5947
5948         PR tree-optimization/50908
5949         * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed
5950         before update_vuses, test for 1 predecessor rather than two.
5951         (delete_block_update_dominator_info): New function, part of it factored
5952         out of ...
5953         (replace_block_by): Use delete_block_update_dominator_info.  Call
5954         update_vuses after deleting bb1 and updating dominator info, instead of
5955         before.
5956
5957 2011-11-01  David S. Miller  <davem@davemloft.net>
5958
5959         * config/sparc/sparc.c (vector_init_faligndata): New function.
5960         (sparc_expand_vector_init): Use it for V4HImode on VIS1.
5961
5962         * config/sparc/sparc.c (sparc_expand_vcond): New function.
5963         * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it.
5964         * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander.
5965         (vconduv8qiv8qi): Likewise.
5966
5967 2011-11-01  Alexandre Oliva  <aoliva@redhat.com>
5968
5969         PR debug/50869
5970         * cselib.c (cfa_base_preserved_regno): Initialize.
5971         (cselib_expand_value_rtx_1): Don't expand it.
5972         * var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
5973         Check it's only zero if result is NULL.
5974
5975 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
5976
5977         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
5978         expander.
5979
5980         * config/i386/sse.md (sseintvecmode): Remove duplicate modes.
5981         (sseintvecmodelower): New mode iterator.
5982         (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
5983         (float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
5984         (floatunsv4siv4sf2): Macroize into...
5985         (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
5986
5987 2011-10-31  David S. Miller  <davem@davemloft.net>
5988
5989         * config/sparc/sparc.md (cmask patterns): Allow zero operand.
5990
5991         * dwarf2out.c (cached_next_real_insn): New.
5992         (dwarf2out_end_epilogue): Set it to NULL_RTX.
5993         (dwarf2out_var_location): Remove cached_next_real_insn local static.
5994
5995 2011-10-31  Richard Henderson  <rth@redhat.com>
5996
5997         * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
5998         (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
5999         (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
6000         (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
6001         (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
6002         (floatv4siv4df2): Rename from avx_cvtdq2pd256.
6003         (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
6004         (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
6005         * config/i386/i386.md (splitters for int-float conversion): Likewise.
6006         * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
6007         (bdesc_args): Likewise.
6008         (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
6009         (ix86_vectorize_builtin_conversion): Remove.
6010         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
6011
6012 2011-10-31  Martin Jambor  <mjambor@suse.cz>
6013
6014         * ipa-prop.c (mark_modified): Moved up in the file.
6015         (is_parm_modified_before_call): Renamed to
6016         is_parm_modified_before_stmt, moved up in the file.
6017         (load_from_unmodified_param): New function.
6018         (compute_complex_assign_jump_func): Also attempt to create pass
6019         through jump functions for values loaded from (addressable)
6020         parameters.
6021
6022 2011-10-31  Jakub Jelinek  <jakub@redhat.com>
6023
6024         * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
6025         in a loop and has different type from op0, cast it to op0's type
6026         before the loop first.  For slp give up.  Don't crash if op1_vectype
6027         is NULL.
6028
6029 2011-10-31  Paul Brook  <paul@codesourcery.com>
6030
6031         * cgraphunit.c: Don't mark clones as static constructors.
6032
6033 2011-10-31  David Edelsohn  <dje.gcc@gmail.com>
6034
6035         * gcc-ar: Do not include stdio.h.
6036
6037 2011-10-31  Diego Novillo  <dnovillo@google.com>
6038
6039         * tree-streamer-out.c (pack_ts_base_value_fields): Emit
6040         TYPE_ADDR_SPACE.
6041         * tree-streamer-in.c (unpack_ts_base_value_fields): Read
6042         TYPE_ADDR_SPACE.
6043
6044 2011-10-30  David S. Miller  <davem@davemloft.net>
6045
6046         * config/sparc/sparc.c (vector_init_bshuffle): New function.
6047         (vector_init_fpmerge): New function.
6048         (sparc_expand_vector_init): Use them to improve non-const cases.
6049
6050         * dwarf2out.c (dwarf2out_var_location): When processing several
6051         consecutive location notes, cache the result of next_real_insn().
6052
6053 2011-10-30  Uros Bizjak  <ubizjak@gmail.com>
6054
6055         * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
6056         avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
6057         (vec_dupv4sf): Remove expander.
6058         (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
6059         (vec_dupv2df): Remove expander.
6060         (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
6061         (*vec_concatv2df): Merge *vec_concatv2df_sse3.
6062         (*vec_dupv4si): Merge *vec_dupv4si_avx.
6063         (*vec_dupv2di): Merge *vec_dupv2di_sse3.
6064
6065 2011-10-30  Dmitry Plotnikov  <dplotnikov@ispras.ru>
6066
6067         * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
6068         * optabs.c (supportable_convert_operation): New function.
6069         * optabs.h (supportable_convert_operation): New prototype.
6070         * tree-vect-stmts.c (vectorizable_conversion): Change condition and
6071         behavior for NONE modifier case.
6072         * tree.h (VECTOR_INTEGER_TYPE_P): New macro.
6073
6074 2011-10-30  Jakub Jelinek  <jakub@redhat.com>
6075
6076         * tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
6077         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
6078         function.
6079         (vect_vect_recog_func_ptrs): Add it.
6080
6081 2011-10-30  David S. Miller  <davem@davemloft.net>
6082
6083         * reorg.c (label_before_next_insn): New function.
6084         (relax_delay_slots): Use it instead of prev_label.
6085         * rtl.h (prev_label): Delete declaration.
6086         * emit-rtl.c (prev_label): Remove.
6087
6088 2011-10-30  Revital Eres  <revital.eres@linaro.org>
6089
6090         * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog
6091         as BB_DISABLE_SCHEDULE.
6092         (mark_loop_unsched): New function.
6093         (sms_schedule): Call it.
6094
6095 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6096
6097         PR target/50617
6098         * config/pa/protos.h (attr_length_save_restore_dltp): Delete.
6099         (cmpib_comparison_operator): Likewise.
6100         (following_cal, output_and, output_ior, output_move_double,
6101         output_fp_move_double, output_block_move, output_block_clear,
6102         output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
6103         output_movb, output_parallel_movb, output_parallel_addb, output_call,
6104         output_indirect_call, output_millicode_call, output_mul_insn,
6105         output_div_insn, output_mod_insn, singlemove_string,
6106         output_arg_descriptor, output_global_address, print_operand,
6107         legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
6108         fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
6109         emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
6110         hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
6111         attr_length_indirect_call, return_addr_rtx, function_arg_padding,
6112         insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
6113         output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
6114         hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
6115         compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
6116         reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
6117         exported functions and variables with "pa_".
6118         * config/pa/predicates.md: Likewise.
6119         * config/pa/pa64-hpux.h: likewise.
6120         * config/pa/som.h: Likewise.
6121         * config/pa/elf.h: Likewise.
6122         * config/pa/pa64-linux.h: Likewise.
6123         * config/pa/pa.md: Likewise.
6124         * config/pa/pa.c: Likewise.
6125         * config/pa/pa-linux.h: Likewise.
6126         * config/pa/pa.h: Likewise.
6127         * config/pa/constraints.md: Likewise.
6128
6129 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
6130
6131         * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
6132         Update all uses.
6133         (xop_shl<mode>3): Rename from xop_lshl<mode>3.  Update all uses.
6134         * config/i386/i386.c: Update all uses.
6135
6136 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
6137
6138         * config/i386/i386.md (lshlv16qi3): Remove expander.
6139         (lshrv16qi3): New expander.
6140         (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
6141         using any_shiftrt code iterator. Cleanup.
6142         (ashlv16qi3): Cleanup.
6143         (ashrv2di3): Ditto.
6144
6145 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6146
6147         PR target/50691
6148         * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
6149         references.
6150         (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
6151         and TLS_MODEL_LOCAL_DYNAMIC symbol references.
6152
6153 2011-10-29  Georg-Johann Lay  <avr@gjlay.de>
6154
6155         PR target/50887
6156         * config/avr/avr.opt (-maccumulate-args): New option.
6157         * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
6158         avr_starting_frame_offset.
6159         (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
6160         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
6161         (UNSPECV_WRITE_SP_IRQ_OFF): Remove.
6162         (UNSPECV_WRITE_SP): New constant.
6163         (*addhi3_sp_R): Rewrite to...
6164         (*addhi3_sp): ...this new insn.
6165         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
6166         (movhi_sp_r): ...this new insn.
6167         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
6168         (avr_starting_frame_offset): New.
6169         * config/avr/avr.c (avr_accumulate_outgoing_args): New function.
6170         (avr_starting_frame_offset): New function.
6171         (avr_outgoing_args_size): New static function.
6172         (avr_initial_elimination_offset): Use it.
6173         (avr_simple_epilogue): Use it.
6174         (avr_asm_function_end_prologue): Use it.
6175         (expand_epilogue): Use it.
6176         (expand_prologue): Use it.  Break out code to...
6177         (avr_prologue_setup_frame): ...this new static function.
6178         (avr_can_eliminate): Allow eliminating to frame pointer if there
6179         is one.
6180         (avr_frame_pointer_required_p): Use frame pointer if target has a
6181         nonlocal label.
6182         * config/avr/constraints.md (R): Remove.
6183         (Csp): New constraint.
6184         * config/avr/predicates.md (avr_sp_immediate_operand): Use it.
6185
6186 2011-10-29  Andi Kleen  <ak@linux.intel.com>
6187
6188         * gcc-ar.c (target_machine): Add.
6189
6190 2011-10-29  Anatoly Sokolov  <aesok@post.ru>
6191
6192         * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
6193         cris_constant_index_p, cris_base_p, cris_index_p,
6194         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
6195         cris_legitimate_address_p): New functions.
6196         (TARGET_LEGITIMATE_ADDRESS_P): Define.
6197         (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
6198         from rtx to const_rtx.
6199         (cris_print_operand_address, cris_address_cost,
6200         cris_side_effect_mode_ok):  Use
6201         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
6202         cris_biap_index_p and cris_bdap_index_p.
6203         * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
6204         BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
6205         REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
6206         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
6207         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
6208         cris_biap_index_p and cris_bdap_index_p.
6209         * config/cris/cris.md (moversideqi movemsideqi peephole2): Use
6210         cris_base_p.
6211         * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
6212         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
6213         prototype.
6214         (cris_pic_symbol_type, cris_valid_pic_const): Update prototype.
6215
6216 2011-10-21  Andi Kleen  <ak@linux.intel.com>
6217
6218         * ggc-page (PAGE_ALIGN): Add.
6219         (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
6220         Replace ROUND_UP with PAGE_ALIGN.
6221
6222 2011-10-20  Andi Kleen  <ak@linux.intel.com>
6223
6224         * ggc-page (alloc_anon): Add check argument.
6225         (alloc_page): Add fallback to 1 page allocation.
6226         Adjust alloc_anon calls to new argument.
6227
6228 2011-10-18  Andi Kleen  <ak@linux.intel.com>
6229
6230         * ggc-page (release_pages): First free large continuous
6231         chunks in the madvise path.
6232
6233 2011-10-18  Andi Kleen  <ak@linux.intel.com>
6234
6235         * ggc-page.c (alloc_pages): Always round up entry_size.
6236
6237 2011-10-19  Andi Kleen  <ak@linux.intel.com>
6238
6239         * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
6240         (native): Add gcc-ar, gcc-nm, gcc-ranlib.
6241         (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
6242         gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
6243         (install): Depend on install-gcc-ar.
6244         (install-gcc-ar): Add.
6245         (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
6246         * gcc-ar.c: Add new file.
6247
6248 2011-10-28  Pat Haugen <pthaugen@us.ibm.com>
6249
6250         * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.
6251         * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble
6252         type for V2DF.
6253         (VStype_div): Use vector types for V2DF/V4SF.
6254         (VStype_sqrt): Use *sqrt types.
6255         (VS_spdp_type): Change type to vecdouble.
6256         (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws,
6257         vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds,
6258         vsx_xvcvspuxds): Likewise.
6259         (*vsx_fms<mode>4): Set type via <VStype_mul>.
6260         (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
6261         <VStype_simple>.
6262         * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe.
6263         (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt,
6264         power7-dsqrt): Correct insn latency.
6265         (power7-vecsimple): Add veccmp type and correct dispatch/VSU values.
6266         (power7-veccmp): Delete.
6267         (power7-vecfloat): Correct latency/dispatch/VSU values.
6268         (define_bypass "power7-vecfloat"): Correct latency and types.
6269         (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values.
6270         (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New.
6271
6272 2011-10-28  Uros Bizjak  <ubizjak@gmail.com>
6273
6274         * config/i386/i386.md (shift_insn): Rename code attribute from
6275         shiftrt_insn.  Also handle ashift RTX.
6276         (shift): Rename code attribute from shiftrt.  Also handle ashift RTX.
6277         (vshift): New code attribute.
6278         (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates.
6279         (any_lshift): Move and rename code iterator from ...
6280         * config/i386/sse.md (lshift): ... here.
6281         (lshift_insn): Remove code attribute.
6282         (lshift): Remove code attribute.
6283         (vlshr<mode>3): Use lshiftrt RTX.
6284         (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
6285         (vashl<mode>3, ashlv16qi3): Use ashift RTX.
6286         (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>.  Use
6287         any_lshift code iterator.  Update asm template.
6288         (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
6289         usign any_lshift code iterator.
6290         * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
6291         mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
6292         * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
6293
6294 2011-10-28  Georg-Johann Lay  <avr@gjlay.de>
6295
6296         PR target/49313
6297         * config/avr/avr.md (parityhi2): Expand allowing pseudos.
6298         (*parityhi2): New pre-reload insn-and-split to map 16-bit parity
6299         to the libgcc insn.
6300         (*parityqihi2): Same for 8-bit parity.
6301
6302 2011-10-28  Julian Brown  <julian@codesourcery.com>
6303
6304         PR rtl-optimization/47918
6305         * reload1.c (set_initial_label_offsets): Use initial offsets
6306         for labels on the nonlocal_goto_handler_labels chain.
6307
6308 2011-10-28  Iain Sandoe  <iains@gcc.gnu.org>
6309
6310         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6311         Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA.
6312         (LIB2FUNCS_EXTRA):  Add darwin-gpsave.asm.
6313         (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from
6314         config/t-darwin.
6315         * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable.
6316         (GP_SAVE_INLINE): Likewise.
6317         (SAVE_FP_PREFIX,  SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
6318         RESTORE_FP_SUFFIX): Set to empty strings.
6319         * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin.
6320         (debug_stack_info): Print savres_strategy.
6321         (rs6000_savres_routine_name): Implement for Darwin.
6322         (rs6000_make_savres_rtx): Adjust used register for Darwin.
6323         (rs6000_emit_prologue): Implement out-of-line saves for Darwin.
6324         (rs6000_output_function_prologue): Don't emit .extern for Mach-O.
6325         (rs6000_emit_epilogue): Implement out-of-line saves for Darwin.
6326         * config/rs6000/darwin-gpsave.asm: New file.
6327
6328 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
6329
6330         * config/i386/sse.md (VI4SD_AVX2): Removed.
6331         (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
6332         (vashl<mode>3): Use VI12_128 iterator instead of VI124_128.
6333         Add another expander using VI48_128 iterator for
6334         TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator
6335         for TARGET_AVX2.
6336         (vlshr<mode>3): Likewise.  Change register_operand predicate to
6337         nonimmediate_operand on last operand in the VI12_128 expander.
6338         (vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
6339         (vashrv4si3, vashrv8si3): New expanders.
6340         (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
6341         avx2_<lshift>vv2di): Removed.
6342         (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
6343         (avx2_<lshift>v<mode>): Macroize using VI48_AVX2
6344         iterator.  Simplify pattern.
6345
6346 2010-10-28  Richard Guenther  <rguenther@suse.de>
6347
6348         PR driver/50876
6349         * lto-wrapper.c (get_options_from_collect_gcc_options):
6350         Properly count arguments.
6351         (run_gcc): Use an obstack to collect argv, properly separate
6352         switches and their arguments.
6353
6354 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
6355
6356         * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
6357         vector mode from vectype's mode.
6358
6359 2011-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
6360
6361         PR rtl-optimization/49720
6362         * simplify-rtx.c (simplify_relational_operation_1): Detect
6363         infinite recursion condition in "(eq/ne (plus x cst1) cst2)
6364         simplifies to (eq/ne x (cst2 - cst1))" case.
6365
6366 2011-10-27  David S. Miller  <davem@davemloft.net>
6367
6368         * config/sparc/sparc.md (snedi_special): Only match when not VIS3.
6369         (*snedi_zero): Likewise.
6370         (*snedi_zero_trunc): Likewise.
6371         (snedi_special_vis3): New expander.
6372         (*snedi_zero_vis3): New insn.
6373         (*snedi_zero_trunc_vis3): Likewise.
6374         (*sltu_insn_vis3): Likewise.
6375         (*sltu_insn_vis3_trunc): Likewise.
6376         (addxc): Likewise.
6377         (*addxc_trunc_sp64_vis3): Likewise.
6378         * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the
6379         gen_snedi_special_vis3 expander, and try GTU/LTU addx based
6380         sequences on DImode values.
6381
6382         * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f'
6383         constraint.
6384
6385         * regcprop.c (copyprop_hardreg_forward_1): Reject the
6386         transformation when we narrow the mode on big endian.
6387
6388 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
6389
6390         * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
6391         vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
6392         (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
6393
6394         * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
6395         overrides for -masm=intel memory.
6396         * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
6397         sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
6398         sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
6399         sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
6400         (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
6401         sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
6402         (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
6403
6404 2011-10-27  Martin Jambor  <mjambor@suse.cz>
6405
6406         * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
6407         to parm_ainfo.
6408         (ipa_compute_jump_functions_for_edge): Likewise.
6409         (ipa_compute_jump_functions): Likewise.
6410         (ipa_analyze_indirect_call_uses): Likewise.
6411         (ipa_analyze_call_uses): Likewise.
6412         (ipa_analyze_params_uses): Likewise.
6413         (ipa_analyze_node): Likewise.
6414
6415 2011-10-27  Uros Bizjak  <ubizjak@gmail.com>
6416
6417         PR target/50875
6418         * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
6419         constraints.  Change alternative 1 to "x,m,1".
6420
6421 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
6422
6423         * Makefile.in (build/gencheck.o): Depend on tree.def and
6424         c-family/c-common.def.
6425
6426         * tree-ssa-strlen.c: Include expr.h.
6427         (get_stridx): Don't use c_strlen, instead use string_constant
6428         and compute string length from it.
6429         * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
6430
6431 2011-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6432
6433         PR rtl-optimization/46603
6434         PR bootstrap/50879
6435         * reload.c (push_reload): In the out case, restore previous behavior
6436         for subregs that don't have word mode.
6437
6438 2011-10-27  Ian Lance Taylor  <iant@google.com>
6439
6440         * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
6441         CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
6442         (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
6443         defined.
6444
6445 2011-10-27  Richard Henderson  <rth@redhat.com>
6446
6447         * optabs.c (expand_vec_perm): Use the correct mode for scaling the
6448         selector.  Save the qimode constant selector for later use by the
6449         qimode vec_perm pattern.
6450
6451 2011-10-27  Bernd Schmidt  <bernds@codesourcery.com>
6452
6453         * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
6454         to unit_req_factor to the right enum type.
6455         (get_unit_operand_masks, reshuffle_units, try_rename_operands,
6456         hwloop_optimize): Remove unused variables.
6457
6458 2010-10-27  Richard Guenther  <rguenther@suse.de>
6459
6460         PR middle-end/50731
6461         * tree-vect-generic.c (do_binop): Handle scalar operands.
6462
6463 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
6464
6465         PR target/37191
6466         * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
6467         from different units in a single alternative.
6468
6469 2011-10-26  David S. Miller  <davem@davemloft.net>
6470
6471         * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
6472         if we're comparing DImode and comparison is other than EQ or NE.
6473
6474         * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
6475         LEU/LTU/GEU/GTU is attempted.
6476         * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
6477         and split.
6478         (*neg_seqsi_sign_extend): Likewise.
6479         (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
6480         *neg_sgeu_extend_sp64): New insns.
6481
6482         * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
6483         * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
6484         (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
6485         (*mov<I:mode>_cc_reg_sp64): Likewise.
6486         (*movsf_cc_v9): Likewise.
6487         (*movsf_cc_reg_sp64): Likewise.
6488         (*movdf_cc_v9): Likewise.
6489         (*movdf_cc_reg_sp64): Likewise.
6490         (*movtf_cc_hq_v9): Likewise.
6491         (*movtf_cc_reg_hq_sp64): Likewise.
6492         (*movtf_cc_v9): Likewise.
6493         (*movtf_cc_reg_sp64): Likewise.
6494         * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
6495         (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
6496
6497 2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>
6498
6499         * reload.c (reload_inner_reg_of_subreg): Change type of return value
6500         and type of OUTPUT parameter to bool and adjust.  Document MODE and
6501         OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
6502         and improve associated comment.
6503         (push_reload): Clarify and update comments about reloading of subregs.
6504         Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
6505         for the reloading of subregs in the out case as well.
6506
6507 2011-10-26  Alexandre Oliva  <aoliva@redhat.com>
6508
6509         PR debug/50826
6510         * var-tracking.c (rtx_debug_expr_p): New.
6511         (use_type): Don't use debug exprs to track non-VTA variables.
6512
6513 2011-10-26  Jeff Law  <law@redhat.com>
6514
6515         * doc/invoke.texi (sink-frequency-threshold): Document.
6516         * tree-ssa-sink.c: Include params.h.
6517         (select_best_block): New function.
6518         (statement_sink_location): Use it.
6519         * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
6520
6521 2011-10-26  Iain Sandoe  <iains@gcc.gnu.org>
6522
6523         PR target/48108
6524         * config/darwin.c (top level): Amend comments concerning LTO output.
6525         (lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
6526         (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
6527         (LTO_NAMES_SECTION): Rename.
6528         (darwin_asm_named_section): Record LTO section counts and switches
6529         in a vec of darwin_lto_section_e.
6530         (darwin_file_start): Remove unused code.
6531         (darwin_file_end): Put an LTO section termination label.  Handle
6532         output of the wrapped LTO sections, index and names table.
6533
6534 2011-10-26  Alan Modra  <amodra@gmail.com>
6535
6536         * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
6537         declaration.
6538         (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
6539         (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
6540         simple_return in pattern, emit instruction, and set jump_label.
6541         (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
6542         simple_return rather than return.
6543         (emit_cfa_restores): New function.
6544         (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
6545         Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
6546         when using out-of-line gpr restore.  Add missing LR and FP regs
6547         cfa_restores for out-of-line fpr restore.  Consolidate code setting
6548         up cfa_restores.  Formatting.  Use LR_REGNO define.
6549         (rs6000_output_mi_thunk): Use simple_return rather than return.
6550         * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
6551         (return_internal*): Likewise.
6552         (any_return, return_pred, return_str): New iterators.
6553         (return, conditional return insns): Provide both return and
6554         simple_return variants.
6555         * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
6556         (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
6557         Move r11 and r0 later to suit shrink-wrapping.
6558
6559 2011-10-26  Richard Guenther  <rguenther@suse.de>
6560
6561         * lto-wrapper.c (run_gcc): Properly init/free obstack.
6562
6563 2011-10-26  Jakub Jelinek  <jakub@redhat.com>
6564
6565         * config/i386/i386.md (UNSPEC_VSIBADDR): New.
6566         * config/i386/predicates.md (vsib_address_operand,
6567         vsib_mem_operator): New predicates.
6568         * config/i386/i386.c (ix86_print_operand_address): Handle
6569         UNSPEC_VSIBADDR addresses.
6570         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
6571         avx2_gatherdi<mode>256): Adjust expanders to use MEM with
6572         UNSPEC_VSIBADDR address.
6573         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
6574         Adjust insns to use MEM with UNSPEC_VSIBADDR address.
6575
6576 2011-10-26  Tom de Vries  <tom@codesourcery.com>
6577
6578         PR tree-optimization/50763
6579         * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
6580         phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
6581
6582 2011-10-26  Richard Guenther  <rguenther@suse.de>
6583
6584         PR lto/41844
6585         * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
6586         (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
6587         * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
6588         (run_gcc): Use it.  Filter out language specific options.
6589
6590 2011-10-26  Andreas Tobler  <andreast@fgznet.ch>
6591
6592         * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
6593         32-bit target does.
6594
6595 2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
6596
6597         PR driver/46617
6598         * gcc.c (main): Fix fatal_error string for translation.
6599
6600 2011-10-25  Ian Lance Taylor  <iant@google.com>
6601
6602         * tree-eh.c (do_return_redirection): Remove return_value_p
6603         parameter.  Change all callers.
6604         (lower_try_finally_nofallthru): Remove local return_val.
6605         (lower_try_finally_onedest): Likewise.
6606         (lower_try_finally_copy): Likewise.
6607         (lower_try_finally_switch): Likewise.
6608
6609 2011-10-25  H.J. Lu  <hongjiu.lu@intel.com>
6610
6611         * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
6612         remove "&& !TARGET_64BIT"
6613         (*mmx_maskmovq_rex): Removed.
6614
6615 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6616
6617         PR rtl-optimization/46603
6618         * reload.c (push_reload): In the out case, reload the subreg as well
6619         as the reg if it has word mode.
6620
6621 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6622
6623         * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
6624         suppress debug info for the parent type.
6625
6626 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6627
6628         * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
6629
6630 2011-10-25  Richard Henderson  <rth@redhat.com>
6631
6632         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
6633         (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
6634
6635         * config/rs6000/altivec.md (vec_extract_evenv8hi,
6636         vec_extract_evenv16qi, vec_extract_oddv4si,
6637         vec_extract_oddv4sf): Remove.
6638
6639         * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
6640         vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
6641         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
6642         vec_interleave_highv4sf, vec_interleave_lowv4sf,
6643         vec_interleave_highv4si, vec_interleave_lowv4si,
6644         vec_interleave_highv8hi, vec_interleave_lowv8hi,
6645         vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
6646
6647         * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
6648         [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
6649         [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
6650         * optabs.c (expand_binop): Implement vec_interleave_high_optab,
6651         vec_interleave_low_optab, vec_extract_even_optab,
6652         vec_extract_odd_optab with expand_vec_perm.
6653         (can_vec_perm_for_code_p): New.
6654         * optabs.h: Update.
6655         * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
6656         fallback via can_vec_perm_for_code_p.
6657         (vect_strided_load_supported): Likewise.
6658         * tree-vect-generic.c (expand_vector_operations_1): Never lower
6659         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
6660         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
6661
6662         * target.def (vec_perm_const_ok): Change parameters to mode and
6663         array of indicies.
6664         * doc/tm.texi: Rebuild.
6665         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
6666         parameters to mode and array of indicies.
6667         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
6668         * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
6669         Change parameters to mode and array of indicies.
6670         (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
6671         (expand_vec_perm): Rename from expand_vec_perm_expr.  Change
6672         parameters to mode and rtx inputs.  Try lowering to QImode
6673         vec_perm_const before trying fully variable permutation.
6674         * optabs.h: Update decls.
6675         * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
6676         VECTOR_CST to pass to can_vec_perm_p.
6677         * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
6678         from int pointer to unsigned char pointer.
6679         (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
6680         * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
6681
6682         * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
6683         (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
6684         VEC_INTERLEAVE_LOW_EXPR): Likewise.
6685
6686 2011-10-25  Mike Stump  <mikestump@comcast.net>
6687
6688         * reload.c (regno_clobbered_p): Fix typo.
6689
6690 2011-10-25  Dodji Seketeli  <dodji@redhat.com>
6691
6692         * input.c (expand_location): Rewrite using linemap_resolve_location
6693         and linemap_expand_location.  Add a comment.
6694
6695 2011-10-25  Jakub Jelinek  <jakub@redhat.com>
6696
6697         PR tree-optimization/50596
6698         * tree-vect-stmts.c (vect_mark_relevant): Only use
6699         FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
6700         (vectorizable_store): If is_pattern_stmt_p look through
6701         VIEW_CONVERT_EXPR on lhs.
6702         * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
6703         Use unsigned type instead of signed.
6704         (vect_recog_bool_pattern): Optimize also stores into bool memory in
6705         addition to casts from bool to integral types.
6706         (vect_mark_pattern_stmts): If pattern_stmt already has vinfo
6707         created, don't create it again.
6708
6709 2011-10-25  Kai Tietz  <ktietz@redhat.com>
6710
6711         * config/i386/i386.c (ix86_frame_pointer_required): Require
6712         frame-pointer, if setjmp is used for 32-bit ms-abi.
6713
6714 2011-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
6715
6716         * builtins.c (set_builtin_user_assembler_name): Remove extra
6717         newline added in October 11th, 2011 change.
6718
6719 2011-10-24  David S. Miller  <davem@davemloft.net>
6720
6721         * config/sparc/little-endian.opt: Delete.
6722         * config.gcc: Remove references to config/sparc/little-endian.opt
6723         * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
6724         * config/sparc/linux64.h: Delete references to -mlittle-endian.
6725         * config/sparc/netbsd-elf.h: Likewise.
6726         * config/sparc/openbsd64.h: Likewise.
6727         * config/sparc/sparc.h: Likewise.
6728         * config/sparc/sp64-elf.h: Likewise and delete overrides for
6729         BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
6730         * config/sparc/sparc.c (dump_target_flag_bits): Remove reference
6731         to MASK_LITTLE_ENDIAN.
6732         * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
6733
6734         * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
6735         Only use D, Y, and Z constraints in vector insns.
6736
6737         * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
6738         (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
6739         called *movsi_insn.
6740         (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
6741         into *movdi_insn_sp32.
6742         (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
6743         one pattern called *movdi_insn_sp64.
6744         (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
6745         Consolidate into one pattern called *movsf_insn.
6746         (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
6747         *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
6748         into *movdf_insn_sp32.
6749         (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
6750         *movdf_insn_sp64_no_fpu): Consolidate into one pattern called
6751         *movdf_insn_sp64.
6752         (*zero_extendsidi2_insn_sp64_novis3,
6753         *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
6754         called *zero_extendsidi2_insn_sp64.
6755         (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
6756         Consolidate into one pattern named *sign_extendsidi2_insn.
6757         (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
6758         Consolidate into one pattern named *mov<VM32:mode>_insn.
6759         (*mov<VM64:mode>_insn_sp64_novis3,
6760         *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
6761         named *mov<VM64:mode>_insn_sp64.
6762         (*mov<VM64:mode>_insn_sp32_novis3,
6763         *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
6764         named *mov<VM64:mode>_insn_sp32.
6765
6766 2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6767
6768         * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
6769         (zero_length_string): Change assertion to accept strinfo without
6770         length but with stmt instead.
6771         Set the endptr pointer also if starting a new chain.
6772         (adjust_related_strinfos): Ignore strinfos marked for delayed
6773         length computation.
6774         (handle_builtin_strcpy): Mark earlier strinfo elements also for
6775         delayed length computation.
6776
6777 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
6778
6779         PR target/50820
6780         Port from 4.6 branch r180379
6781         * doc/invoke.texi (AVR Options): New subsubsection to explain EIND
6782         handling and indirect jump/calls on devices > 128k.
6783
6784 2011-10-24  Anatoly Sokolov  <aesok@post.ru>
6785             Georg-Johann Lay  <avr@gjlay.de>
6786
6787         PR target/49824
6788         * doc/extend.texi (Declaring Attributes of Functions):
6789         Document OS_main and OS_task attributes.
6790         (Specifying Attributes of Variables): Move up
6791         subsection "AVR Variable Attributes" as of alphabetical order.
6792
6793 2011-10-24  Richard Guenther  <rguenther@suse.de>
6794
6795         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
6796         to vector element type.
6797         (vectorizable_assignment): Bail out for non-mode-precision operations.
6798         (vectorizable_shift): Likewise.
6799         (vectorizable_operation): Likewise.
6800         (vectorizable_type_demotion): Likewise.
6801         (vectorizable_type_promotion): Likewise.
6802         (vectorizable_store): Handle non-mode-precision stores.
6803         (vectorizable_load): Handle non-mode-precision loads.
6804         (get_vectype_for_scalar_type_and_size): Return a vector type
6805         for non-mode-precision integers.
6806         * tree-vect-loop.c (vectorizable_reduction): Bail out for
6807         non-mode-precision reductions.
6808
6809 2011-10-24  Julian Brown  <julian@codesourcery.com>
6810
6811         * config/m68k/m68k.c (notice_update_cc): Tighten condition for
6812         setting CC_REVERSED for FP comparisons.
6813
6814 2011-10-24  Richard Guenther  <rguenther@suse.de>
6815
6816         PR tree-optimization/50838
6817         * tree-data-ref.c (dr_analyze_indices): Properly canonicalize
6818         a MEM_REF base if we change it.
6819
6820 2011-10-24  Bernd Schmidt  <bernds@codesourcery.com>
6821
6822         PR bootstrap/50836
6823         * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
6824
6825         PR rtl-optimization/50833
6826         * function.c (thread_prologue_and_epilogue_insns): Expect the
6827         return insn optimization only if optimize.
6828
6829 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
6830
6831         * config/avr/avr.c: Break long lines.
6832         Define target hooks on the fly if applicable.
6833         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
6834         overridden later.
6835         (targetm): Move definition to end of file.
6836         (avr_can_eliminate): Make static on the fly.
6837         (avr_frame_pointer_required_p): Ditto.
6838         (avr_hard_regno_scratch_ok): Ditto.
6839         (avr_builtin_setjmp_frame_value): Make static on the fly.
6840         Indent according to coding rules.
6841         (avr_case_values_threshold): Ditto.
6842         (avr_attribute_table): Move down.
6843
6844 2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
6845
6846         PR tree-optimization/50730
6847         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
6848         analysis if encountered unsupported data-ref.
6849
6850 2011-10-23  David S. Miller  <davem@davemloft.net>
6851
6852         * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
6853         cpu adjustment.
6854         * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
6855         append -mcpu=v9 when -mv8plus is given.
6856
6857         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
6858         between float and non-float regs when VIS3.
6859         * config/sparc/sparc.c (eligible_for_restore_insn): We can't
6860         use a restore when the source is a float register.
6861         (sparc_split_regreg_legitimate): When VIS3 allow moves between
6862         float and integer regs.
6863         (sparc_register_move_cost): Adjust to account for VIS3 moves.
6864         (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
6865         integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
6866         (sparc_secondary_reload): On 32-bit with VIS3 when moving between
6867         float and integer regs we sometimes need a FP_REGS class
6868         intermediate move to satisfy the reload.  When this happens
6869         specify an extra cost of 2.
6870         (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
6871         (*movdi_insn_sp32_v9): Likewise.
6872         (*movdi_insn_sp64): Likewise.
6873         (*movsf_insn): Likewise.
6874         (*movdf_insn_sp32_v9): Likewise.
6875         (*movdf_insn_sp64): Likewise.
6876         (*zero_extendsidi2_insn_sp64): Likewise.
6877         (*sign_extendsidi2_insn): Likewise.
6878         (*movsi_insn_vis3): New insn.
6879         (*movdi_insn_sp32_v9_vis3): New insn.
6880         (*movdi_insn_sp64_vis3): New insn.
6881         (*movsf_insn_vis3): New insn.
6882         (*movdf_insn_sp32_v9_vis3): New insn.
6883         (*movdf_insn_sp64_vis3): New insn.
6884         (*zero_extendsidi2_insn_sp64_vis3): New insn.
6885         (*sign_extendsidi2_insn_vis3): New insn.
6886         (TFmode reg/reg split): Make sure both REG operands are float.
6887         (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
6888         easy constant to integer reg alternatives.
6889         (*mov<VM64:mode>_insn_sp64): Likewise.
6890         (*mov<VM64:mode>_insn_sp32_novis3): Likewise.
6891         (*mov<VM32:mode>_insn_vis3): New insn.
6892         (*mov<VM64:mode>_insn_sp64_vis3): New insn.
6893         (*mov<VM64:mode>_insn_sp32_vis3): New insn.
6894         (VM64 reg<-->reg split): New splitter for 32-bit.
6895
6896         * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
6897         * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
6898         Declare it.
6899         * config/sparc/sparc.md (DImode reg/reg split): Use it.
6900         (DFmode reg/reg split): Likewise.
6901
6902         * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
6903         generating fzero and fone instructions.
6904         (DImode const_int --> reg splitter): Only trigger for integer regs.
6905
6906         * config/sparc/predicates.md (input_operand): Disallow vector
6907         constants other than 0 and -1.
6908         * config/sparc/sparc.c (sparc_preferred_reload_class): Return
6909         NO_REGS for vector constants other than 0 and -1.
6910
6911         * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
6912         SPARC_INT_REG_P): Define.
6913         (HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
6914         (REGNO_OK_FOR_INDEX_P): Likewise.
6915         * config/sparc/sparc.c (gen_df_reg): Likewise.
6916         (eligible_for_return_delay): Likewise.
6917         (eligible_for_sibcall_delay): Likewise.
6918         (sparc_legitimate_address_p): Likewise.
6919         (emit_save_or_restore_regs): Likewise.
6920         (registers_ok_for_ldd_peep): Likewise.
6921         * config/spac/sparc.md (DI mode splitters): Likewise.
6922         (SF mode const splitters): Likewise.
6923         (DF mode splitters): Likewise.
6924         (32-bit DI mode logical op splitters): Likewise.
6925
6926 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6927
6928         PR c++/50841
6929         Revert:
6930         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6931
6932         PR c++/50810
6933         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
6934
6935 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
6936
6937         * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
6938         (VI248_256): Remove mode iterator.
6939         * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
6940         instead of gen_avx2_lshlv4di3.
6941         (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
6942         CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
6943
6944 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
6945
6946         * config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
6947         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
6948         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
6949         pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
6950         *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
6951         iterator.  Use sseintprefix mode attribute.
6952         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
6953         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
6954         pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
6955         *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
6956         iterator.  Use sseintprefix mode attribute.
6957         (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
6958         attributes.
6959         (*avx2_gatherdi<mode>): Ditto.
6960         (*avx2_gatherdi<mode>256): Ditto.
6961         (VI48_AVX2): Remove mode iterator.
6962         (gthrlastfp): Remove mode attribute.
6963
6964 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
6965
6966         PR c++/50810
6967         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
6968
6969 2011-10-23  Tom de Vries  <tom@codesourcery.com>
6970
6971         PR tree-optimization/50763
6972         * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
6973         out of ...
6974         (same_succ_flush_bbs): Use same_succ_flush_bb.
6975         (purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
6976         release_last_vdef and delete_basic_block.
6977         (unlink_virtual_phi): New function.
6978         (update_vuses): Add and use vuse1_phi_args argument.  Set var to
6979         SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that
6980         def_stmt2 is NULL.  Use phi result as phi arg in case vuse1 or vuse2
6981         is NULL_TREE.  Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code
6982         to limit replacement of uses.  Propagate phi argument for phis with a
6983         single argument.
6984         (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
6985         Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add
6986         vuse1_phi_args as argument to call to update_vuses.  Call
6987         release_last_vdef, same_succ_flush_bb, delete_basic_block.  Update
6988         CDI_DOMINATORS info.
6989         (tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
6990         call to free_dominance_info.  Only call calculate_dominance_info once.
6991
6992 2011-10-23  Eric Botcazou  <ebotcazou@adacore.com>
6993
6994         * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
6995
6996         PR tree-optimization/44683
6997         * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
6998         we can be sure that there are no signed zeros involved.
6999
7000 2011-10-23  Jan Hubicka  <jh@suse.cz>
7001
7002         * ipa-inline.c (estimate_badness): Scale up and handle overflows.
7003
7004 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
7005
7006         PR target/50788
7007         * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
7008         Remove (match_dup 0).
7009         (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
7010         (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
7011         (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
7012         (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
7013         (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
7014         (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
7015
7016 2011-10-23  Ira Rosen  <ira.rosen@linaro.org>
7017
7018         PR tree-optimization/50819
7019         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
7020         the last argument.
7021         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
7022         vect_analyze_data_ref_dependences.
7023         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
7024         the last argument.  Check load-after-store dependence for unknown
7025         dependencies in basic blocks.
7026         (vect_analyze_data_ref_dependences): Update call to
7027         vect_analyze_data_ref_dependences.
7028         * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
7029         * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
7030         (vect_slp_analyze_bb_1): Update call to
7031         vect_analyze_data_ref_dependences.  Don't call
7032         vect_bb_vectorizable_with_dependencies.
7033
7034 2011-10-22  David S. Miller  <davem@davemloft.net>
7035
7036         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
7037         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
7038         * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
7039         (sparc_secondary_reload): New function.
7040
7041         * config/sparc/sparc.h (sparc_costs): Remove extern decl.
7042         (struct processor_costs): Move from here..
7043         * config/sparc/sparc.c (struct processor_costs): To here.
7044         (sparc_costs): Mark static.
7045
7046         * config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
7047         * config/sparc/sparc-protos.h (short_branch, reg_unused_after):
7048         Get rid of declarations.
7049
7050 2011-10-21  Paul Brook  <paul@codesourcery.com>
7051
7052         * config/c6x/c6x.c (c6x_asm_emit_except_personality,
7053         c6x_asm_init_sections): New functions.
7054         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
7055
7056 2011-10-21  Jakub Jelinek  <jakub@redhat.com>
7057
7058         PR target/50813
7059         * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
7060         V4DImode and V8SImode for !TARGET_AVX2.
7061
7062 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
7063
7064         PR bootstrap/50825
7065         * sched-deps.c (add_dependence): If not doing predication, promote
7066         REG_DEP_CONTROL to REG_DEP_ANTI.
7067
7068 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
7069
7070         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
7071         instead of X to avr_legitimize_reload_address.
7072         * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
7073         first argument's type from rtx to rtx*.
7074         * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
7075         Pass PX to push_reload instead of &X.  Change log messages for
7076         better distinction.
7077
7078 2011-10-21  Roland Stigge  <stigge@antcom.de>
7079
7080         PR translation/47064
7081         * params.def: Fix typo "compilatoin" -> "compilation".
7082
7083 2011-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7084             Kirill Yukhin  <kirill.yukhin@intel.com>
7085
7086         PR target/50740
7087         * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
7088         if max_level allows that.
7089
7090 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
7091
7092         * reg-notes.def (DEP_CONTROL): New.
7093         * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
7094         not doing speculation.
7095         * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
7096         record_hard_reg_uses_1, record_hard_reg_uses): New functions.
7097         * function.c (record_hard_reg_sets, record_hard_reg_uses,
7098         record_hard_reg_uses_1): Remove; move to rtlanal.c.
7099         * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
7100         * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
7101         (MUST_RECOMPUTE_SPEC_P): New macro.
7102         (real_insn_for_shadow): New function.
7103         (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
7104         toggle_cancelled_flags): New static functions.
7105         (schedule_insn): Relax an assert to only check for empty hard back
7106         dependencies.  Skip cancelled dependencies.  Call
7107         check_clobbered_conditions.
7108         (copy_insn_list): Remove function, renamed moved to lists.c.
7109         (save_backtrack_point): Use new spelling copy_INSN_LIST.
7110         (unschedule_insns_until): Ensure TODO_SPEC is reset properly.
7111         (restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
7112         (estimate_insn_tick): Ignore cancelled dependencies.
7113         (haifa_speculate_insn): Move declaration.
7114         (try_ready): Move code into recompute_todo_spec and call it.  Tweak
7115         some asserts.  Ensure predicated patterns are restored if necessary.
7116         Dump DEP_CONTROL flag.
7117         (haifa_change_pattern): Merge with sched_change_pattern.
7118         (sched_change_pattern): Remove function.
7119         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
7120         uses changed to simply not test NON_FLUSH_JUMP_P.
7121         (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
7122         REG_DEP_CONTROL.
7123         (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
7124         (reg_pending_control_uses, control_dependency_cache): New static
7125         variables.
7126         (sched_get_reverse_condition_uncached): New function.
7127         (sd_find_dep_between): Remove pointless assert.  Look in
7128         control_dependency_cache.
7129         (ask_dependency_caches, set_dependency_caches, sd_delete_dep,
7130         extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
7131         and control_dependency_cache.
7132         (sd_unresolve_dep): Use dep_spec_p.
7133         (add_dependence): Now a wrapper around add_dependence_1, handling
7134         REG_DEP_CONTROL specially.
7135         (flush_pending_lists): Clear pending_jump_insns.
7136         (sched_analyze_1): Handle pending_jump_insns like a memory flush.
7137         (sched_analyze_2): Unconditionally add to pending memory flushes,
7138         keep previous behaviour but apply it to pending_jump_insns instead.
7139         (sched_analyze_insn): Defer adding jump reg dependencies using
7140         reg_pending_control_uses; add them to the control_uses list.  Handle
7141         pending_jump_insns and control_uses when adding dependence lists.
7142         (deps_analyze_insn): Update INSN_COND_DEPS.
7143         (deps_analyze_insn): Add jumps to pending_jump_insns rather than
7144         last_pending_memory_flush.
7145         (init_deps): Initialize pending_jump_insns.
7146         (free_deps): Free control_uses.
7147         (remove_from_deps): Remove from pending_jump_insns.
7148         (init_deps_global): Allocate reg_pending_control_uses).
7149         (finish_deps_global): Free it.
7150         (add_dependence_1): Renamed from add_dependence.  Handle
7151         REG_DEP_CONTROL.
7152         * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
7153         (copy_INSN_LIST, concat_INSN_LIST): Declare.
7154         * sched-int.h (struct deps_reg): Add control_uses.
7155         (struct deps_desc): Add pending_jump_insns.
7156         (struct _haifa_deps_insn_data): Add cond_deps.
7157         (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
7158         (INSN_COND_DEPS, PREDICATED_PAT): New macros.
7159         (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
7160         (DEP_CONTROL): New macro.
7161         (DEP_TYPES): Include it.
7162         (HARD_DEP): Adjust definition.
7163         (DEP_CANCELLED): New macro.
7164         (enum SCHED_FLAGS): Add DO_PREDICATION.
7165         (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
7166         * sched-rgn.c (concat_INSN_LIST): Remove function.
7167         (deps_join): Handle pending_jump_insns.
7168         (free_pending_lists): Likewise.
7169         * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
7170         schedule.
7171
7172 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
7173
7174         PR target/50820
7175         * config/avr/libgcc.S (__EIND__): New define to 0x3C.
7176         (__tablejump__): Consistently use EIND for indirect jump/call.
7177         (__tablejump_elpm__): Ditto.
7178
7179 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
7180
7181         * config/c6x/c6x.md (attr "op_pattern"): New.
7182         (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
7183         * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
7184         Likewise.
7185         * config/c6x/c6x-mult.md: Regenerate.
7186         * config/c6x/c6x.c: Include "regrename.h".
7187         (unit_req_table): New typedef.
7188         (unit_reqs): Use it for the declaration.
7189         (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
7190         get_unit_operand_masks, try_rename_operands, reshuffle_units): New
7191         static functions.
7192         (count_unit_reqs): New arg reqs.  All callers changed.  Use
7193         get_unit_reqs, and don't merge here.
7194         (res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
7195         using unit_req_factor.
7196         (hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
7197         count_unit_reqs.
7198         (c6x_reorg): Add reg notes problem, and call df_analyze.
7199         * Makefile.in ($(out_object_file)): Depend on regrename.h.
7200
7201 2011-10-21  Kai Tietz  <ktietz@redhat.com>
7202
7203         * fold-const.c (simple_operand_p_2): Handle integral
7204         casts from boolean-operands.
7205
7206 2011-10-21  Jan Hubicka  <jh@suse.cz>
7207
7208         * cgraph.c (dump_cgraph_node): Dump alias flag.
7209         * cgraphunit.c (handle_alias_pairs): Handle weakrefs with
7210         no destination.
7211         (get_alias_symbol): New function.
7212         (output_weakrefs): Output also weakrefs with no destinatoin.
7213         (lto_output_node): Output weakref alias flag when at function boundary.
7214
7215 2011-10-21  Andrew Stubbs  <ams@codesourcery.com>
7216
7217         PR target/50809
7218         * config/arm/driver-arm.c (vendors): Make static.
7219
7220 2011-10-21  Uros Bizjak  <ubizjak@gmail.com>
7221
7222         * config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
7223         (ix86_emit_swsqrtsf): Force a into register.
7224
7225 2011-10-20  Mike Stump  <mikestump@comcast.net>
7226
7227         * regcprop.c (copyprop_hardreg_forward_1): Update recog_data
7228         after validate_change wipes it out.
7229
7230 2011-10-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7231
7232         * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
7233         before using the shufb instruction.
7234
7235 2011-10-20  Kirill Yukhin  <kirill.yukhin@intel.com>
7236
7237         PR target/50766
7238         * config/i386/i386.md (bmi_bextr_<mode>): Update register/
7239         memory operand order.
7240         (bmi2_bzhi_<mode>3): Ditto.
7241         (bmi2_pdep_<mode>3): Ditto.
7242         (bmi2_pext_<mode>3): Ditto.
7243
7244 2011-10-20  Richard Henderson  <rth@redhat.com>
7245
7246         * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
7247         * optabs.c (can_vec_perm_expr_p): Update to match.
7248         (expand_vec_perm_expr): Likewise.
7249         * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
7250         from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
7251         * doc/tm.texi.in: Likewise.
7252
7253 2011-10-20  Sergey Ostanevich  <sergos.gnu@gmail.com>
7254
7255         PR target/50572
7256         * config/i386/i386.c (processor_target_table): Change Atom
7257         align_loops_max_skip to 15.
7258
7259 2011-10-20  Richard Henderson  <rth@redhat.com>
7260
7261         * target.def (builtin_vec_perm): Remove.
7262         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
7263
7264         * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
7265         (IX86_BUILTIN_VEC_PERM_*): Remove.
7266         (bdesc_args): Remove vec_perm builtins
7267         (ix86_expand_builtin): Likewise.
7268         (ix86_expand_vec_perm_const_1): Rename from
7269         ix86_expand_vec_perm_builtin_1.
7270         (extract_vec_perm_cst): Merge into...
7271         (ix86_vectorize_vec_perm_const_ok): ... here.  Rename from
7272         ix86_vectorize_builtin_vec_perm_ok.
7273         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
7274
7275         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
7276         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
7277
7278         * config/spu/spu.c (spu_builtin_vec_perm): Remove.
7279         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
7280
7281 2011-10-20  Uros Bizjak  <ubizjak@gmail.com>
7282
7283         PR target/47989
7284         * config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
7285         * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
7286         * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
7287         implements vectorized single float division and vectorized sqrtf(x)
7288         with reciprocal sequence with additional Newton-Raphson step with
7289         -ffast-math.
7290
7291 2011-10-20  Dodji Seketeli  <dodji@redhat.com>
7292
7293         * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
7294         ggc_alloced_size_order_for_request into ggc_round_alloc_size like
7295         it was done in ggc-page.c.
7296
7297         PR other/50659
7298         * doc/cppopts.texi: Use @smallexample/@end smallexample in
7299         documentation for -fdebug-cpp instead of @quotation/@end quotation
7300         that is not supported by contrib/texi2pod.pl.
7301
7302 2011-10-19  Jan Hubicka  <jh@suse.cz>
7303
7304         * ipa-inline.c (inline_small_functions): Always update all calles after
7305         inlining.
7306
7307 2011-10-19  Jan Hubicka  <jh@suse.cz>
7308
7309         PR bootstrap/50709
7310         * ipa-inline.c (inline_small_functions): Fix checking code to not make
7311         effect on fibheap stability.
7312
7313 2011-10-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
7314
7315         * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
7316
7317 2011-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7318
7319         PR target/50106
7320         * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
7321         reg size from 1-3.
7322
7323 2011-10-20  Richard Guenther  <rguenther@suse.de>
7324
7325         * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
7326         and rotates to the set of expensive operations.
7327
7328 2011-10-19  David S. Miller  <davem@davemloft.net>
7329
7330         * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
7331         (sparc_emit_set_const32): Likewise.
7332         (sparc_emit_set_const64_longway): Likewise.
7333         (sparc_emit_set_const64): Likewise.
7334         (sparc_legitimize_pic_address): Likewise.
7335         (memory_ok_for_ldd): Likewise.
7336
7337 2011-10-20  Dehao Chen  <dehao@google.com>
7338
7339         * profile.c (compute_branch_probabilities): Compute and dump the
7340         overlap between the static estimation and the instrumentation profile.
7341         (OVERLAP_BASE): New macro.
7342         (compute_frequency_overlap): New function
7343
7344 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
7345
7346         * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
7347         d->op1 instead of d->op0 for the second vpshufb.
7348         (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
7349         (ix86_expand_vec_perm_const): If mask indicates two operands are
7350         needed, but both are the same and expanding them as d.op0 == d.op1
7351         failed, retry with d.op0 != d.op1.
7352         (ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
7353         also for d.nelt == 32.
7354
7355         PR middle-end/50754
7356         * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
7357         VEC_PERM_EXPR.
7358
7359 2011-10-19  Bernd Schmidt  <bernds@codesourcery.com>
7360
7361         * regrename.h: New file.
7362         * regrename.c: Include it.  Also include "emit-rtl.h".
7363         (struct du_head, struct du_chain, du_head_p DEF_VEC and
7364         DEF_VEC_ALLOC_P): Move to regrename.h.
7365         (do_replace): Remove declaration.
7366         (insn_rr): New variable.
7367         (cur_operand): New static variable.
7368         (regrename_chain_from_id): Renamed from chain_from_id and no longer
7369         static.  All callers changed.
7370         (record_operand_use): New static function.
7371         (scan_rtx_reg): Use it.
7372         (find_best_rename_reg): New function, broken out of rename_chains.
7373         (rename_chains): Use it.  Don't update chain regno and nregs here, ...
7374         (regrename_do_replace): ... do it here instead.  Renamed from
7375         do_replace, and no longer static.  All callers changed.
7376         (regrename_analyze): No longer static.  New arg bb_mask.
7377         All callers changed.  If bb_mask is nonzero, use it to limit the
7378         number of basic blocks we analyze.  If we failed to analyze a block,
7379         clear insn operand data.
7380         (record_out_operands): New arg insn_info.  Update cur_operand if it is
7381         nonnull.
7382         (build_def_use): If insn_rr is nonnull, pass an insn_info to
7383         record_out_operands, and update cur_operand here as well.
7384         (regrename_init, regrename_finish): New functions.
7385         (regrename_optimize): Use them.
7386         * Makefile.in (regrename.o): Adjust dependencies.
7387
7388 2011-10-19  Tom de Vries  <tom@codesourcery.com>
7389
7390         PR tree-optimization/50769
7391         * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
7392         unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
7393         dummy argument .MEM to phi when increasing number of arguments of phi by
7394         redirecting edges to the block with phi.
7395
7396 2011-10-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7397
7398         PR bootstrap/50777
7399         * configure.ac: Save and restore CXXFLAGS around
7400         gcc_AC_CHECK_DECLS uses.
7401         Check for madvise() declaration with g++ if --enable-build-with-cxx.
7402         * configure: Regenerate.
7403         * config.in: Regenerate.
7404         * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
7405
7406 2011-10-19  Alexandre Oliva  <aoliva@redhat.com>
7407
7408         PR debug/49310
7409         * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
7410         (variable_part): Replace offset with union.
7411         (enum onepart_enum, onepart_enum_t): New.
7412         (variable_def): Drop cur_loc_changed, add onepart.
7413         (value_chain_def, const_value_chain): Remove.
7414         (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
7415         (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
7416         (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
7417         (value_chain_pool, value_chains): Remove.
7418         (dropped_values): New.
7419         (struct parm_reg): Only if HAVE_window_save.
7420         (vt_stack_adjustments): Don't record register arguments.
7421         (dv_as_rtx): New.
7422         (dv_onepart_p): Return a onepart_enum_t.
7423         (onepart_pool): New.
7424         (dv_pool): Remove.
7425         (dv_from_rtx): New.
7426         (variable_htab_free): Release onepart aux data.  Reset flags.
7427         (value_chain_htab_hash, value_chain_htab_eq): Remove.
7428         (unshare_variable): Use onepart field.  Propagate onepart aux
7429         data or offset.  Drop cur_loc_changed.
7430         (val_store): Cope with NULL insn.  Rephrase dump output.  Check
7431         for unsuitable locs.  Add FIXME on using cselib locs.
7432         (val_reset): Remove FIXME of unfounded concerns.
7433         (val_resolve): Check for unsuitable locs.  Add FIXME on using
7434         cselib locs.
7435         (variable_union): Use onepart field, adjust access to offset.
7436         (NO_LOC_P): New.
7437         (VALUE_CHANGED, DECL_CHANGED): Update doc.
7438         (set_dv_changed): Clear NO_LOC_P when changed.
7439         (find_loc_in_1pdv): Use onepart field.
7440         (intersect_loc_chains): Likewise.
7441         (unsuitable_loc): New.
7442         (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
7443         (add_value_chain, add_value_chains): Remove.
7444         (add_cselib_value_chains, remove_value_chain): Likewise.
7445         (remove_value_chains, remove_cselib_value_chains): Likewise.
7446         (canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
7447         (canonicalize_values_star, canonicalize_vars_star): Use onepart.
7448         (variable_merge_over_cur): Likewise.  Adjust access to offset.
7449         Drop cur_loc_changed.
7450         (variable_merge_over_src): Use onepart field.
7451         (remove_duplicate_values): Likewise.
7452         (variable_post_merge_new_vals): Likewise.
7453         (find_mem_expr_in_1pdv): Likewise.
7454         (dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
7455         and value chains.
7456         (dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
7457         (variable_different_p): Use onepart field.  Move onepart test out
7458         of the loop.
7459         (argument_reg_set): Drop.
7460         (add_uses, add_stores): Preserve but do not record in dynamic
7461         tables equivalences for ENTRY_VALUEs and CFA_based addresses.
7462         Avoid unsuitable address expressions.
7463         (EXPR_DEPTH): Unlimit.
7464         (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
7465         (prepare_call_arguments): Use DECL_RTL_IF_SET.
7466         (dump_var): Adjust access to offset.
7467         (variable_from_dropped, recover_dropped_1paux): New.
7468         (variable_was_changed): Drop cur_loc_changed.  Use onepart.
7469         Preserve onepart aux in empty_var.  Recover empty_var and onepart
7470         aux from dropped_values.
7471         (find_variable_location_part): Special-case onepart.  Adjust
7472         access to offset.
7473         (set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
7474         access to offset.  Initialize onepaux.  Drop value chains.
7475         (delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
7476         (VEC (variable, heap), VEC (rtx, stack)): Define.
7477         (expand_loc_callback_data): Drop dummy, cur_loc_changed,
7478         ignore_cur_loc.  Add expanding, pending, depth.
7479         (loc_exp_dep_alloc, loc_exp_dep_clear): New.
7480         (loc_exp_dep_insert, loc_exp_dep_set): New.
7481         (notify_dependents_of_resolved_value): New.
7482         (update_depth, vt_expand_var_loc_chain): New.
7483         (vt_expand_loc_callback): Revamped.
7484         (resolve_expansions_pending_recursion): New.
7485         (INIT_ELCD, FINI_ELCD): New.
7486         (vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
7487         parameter, adjust all callers.
7488         (vt_expand_loc_dummy): Drop.
7489         (vt_expand_1pvar): New.
7490         (emit_note_insn_var_location): Operate on non-debug decls only.
7491         Revamp multi-part cur_loc recomputation and one-part expansion.
7492         Drop cur_loc_changed.  Adjust access to offset.
7493         (VEC (variable, heap)): Drop.
7494         (changed_variables_stack, changed_values_stack): Drop.
7495         (check_changed_vars_0, check_changed_vars_1): Remove.
7496         (check_changed_vars_2, check_changed_vars_3): Remove.
7497         (values_to_stack, remove_value_from_changed_variables): New.
7498         (notify_dependents_of_changed_value, process_changed_values): New.
7499         (emit_notes_for_changes): Revamp onepart updates.
7500         (emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
7501         and value chains.  Propagate onepaux.  Recover empty_var and onepaux
7502         from dropped_values.
7503         (emit_notes_for_differences_2): Drop value chains.
7504         (emit_notes_in_bb): Adjust.
7505         (vt_emit_notes): Drop value chains, changed_variables_stack.
7506         Initialize and release dropped_values.
7507         (create_entry_value): Revamp.
7508         (vt_add_function_parameter): Use new interface.
7509         (note_register_arguments): Remove.
7510         (vt_initialize): Drop value chains and register arguments.
7511         (vt_finalize): Drop value chains.  Release windowed_parm_regs only
7512         if HAVE_window_save.
7513         * rtl.h: Document various pass-local uses of RTL flags.
7514         * tree.h (DECL_RTL_KNOWN_SET): New.
7515         * doc/invoke.texi (param max-vartrack-expr-depth): Update
7516         description and default.
7517
7518 2011-10-19  Georg-Johann Lay  <avr@gjlay.de>
7519
7520         PR target/50447
7521         * config/avr/avr.md (cc): New alternative out_plus_noclobber.
7522         (adjust_len): Ditto.
7523         (addhi3): Don't pipe through short; use gen_int_mode instead.
7524         Prior to reload, expand to gen_addhi3_clobber.
7525         (*addhi3): Use avr_out_plus_noclobber if applicable, use
7526         out_plus_noclobber in cc and adjust_len attribute.
7527         (addhi3_clobber): 2 new RTL peepholes.
7528         (addhi3_clobber): New insn.
7529         * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
7530         * config/avr/avr.c (avr_out_plus_noclobber): New function.
7531         (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
7532         (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
7533         Set cc0 to set_zn for adiw on 16-bit values.
7534         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
7535         (expand_epilogue): No need to add 0 to frame_pointer_rtx.
7536
7537 2011-10-19  Richard Guenther  <rguenther@suse.de>
7538
7539         PR middle-end/50780
7540         * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
7541         the condition is properly gimple before using it.
7542         * tree-eh (stmt_could_throw_1_p): Properly extract the
7543         operation type from comparisons.
7544
7545 2011-10-19  Roland Stigge  <stigge@antcom.de>
7546
7547         PR translation/48638
7548         * plugin.c (add_new_plugin): Fix typo in fatal_error message.
7549
7550 2011-10-19  Roland Stigge  <stigge@antcom.de>
7551
7552         PR translation/49517
7553         * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
7554
7555 2011-10-19  Richard Guenther  <rguenther@suse.de>
7556
7557         PR middle-end/50768
7558         * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
7559
7560 2011-10-19  Andrey Belevantsev  <abel@ispras.ru>
7561
7562         PR rtl-optimization/50340
7563         * sel-sched-ir.c (update_target_availability): LHS register
7564         availability is not known if the unavailable LHS of the other
7565         expression is a different register.
7566
7567 2011-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7568
7569         PR target/50310
7570         * config/spu/spu.c (spu_emit_vector_compare): Support unordered
7571         floating-point comparisons.
7572
7573 2011-10-19  Jan Hubicka  <jh@suse.cz>
7574
7575         * cgraphunit.c (handle_alias_pairs): Also handle wekref with
7576         destination declared.
7577         (output_weakrefs): New function.
7578         * varpool.c (varpool_create_variable_alias): Handle external aliases.
7579
7580 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
7581
7582         * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
7583         second argument instead of mode.
7584
7585 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
7586
7587         * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
7588         mode SUBREG of operands[0] as target.
7589         (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
7590         (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
7591         (expand_vec_perm_1): Handle identity and some broadcast
7592         permutations.
7593         (expand_vec_perm_interleave2): Handle also 32-byte modes, using
7594         vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
7595         For d->testing_p return true earlier to avoid creating more GC
7596         garbage.
7597         (expand_vec_perm_vpermq_perm_1): New function.
7598         (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
7599         earlier to avoid creating more GC garbage.  Fix handling of
7600         V16HImode.  Avoid some SUBREGs in SET_DEST.
7601         (expand_vec_perm_broadcast_1): Return false for 32-byte integer
7602         vector modes.
7603         (expand_vec_perm_vpshufb4_vpermq2): New function.
7604         (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
7605         and expand_vec_perm_vpshufb4_vpermq2.
7606
7607 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
7608
7609         * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
7610         before exiting.
7611
7612 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
7613
7614         PR tree-optimization/50717
7615         * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
7616         parameter.  Calculate 'type' from stmt.
7617         (convert_mult_to_widen): Update call the is_widening_mult_p.
7618         (convert_plusminus_to_widen): Likewise.
7619
7620 2011-10-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7621
7622         * config/spu/spu.c (struct machine_function): New data structure.
7623         (spu_init_machine_status): New function.
7624         (spu_option_override): Install it.
7625         (get_pic_reg): Set and use cfun->machine->pic_reg.
7626         (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
7627         (need_to_save_reg): Use cfun->machine->pic_reg instead of
7628         checking crtl->uses_pic_offset_table.
7629         (spu_expand_prologue): Likewise.
7630
7631 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
7632
7633         PR tree-optimization/50735
7634         * function.c (gimplify_parameters): Use create_tmp_var instead of
7635         create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
7636         or vector type, set DECL_GIMPLE_REG_P.
7637
7638 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
7639
7640         * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
7641         * config/arm/arm.opt: Add 'native' processor_type and
7642         arm_arch enum values.
7643         * config/arm/arm.h (host_detect_local_cpu): New prototype.
7644         (EXTRA_SPEC_FUNCTIONS): New define.
7645         (MCPU_MTUNE_NATIVE_SPECS): New define.
7646         (DRIVER_SELF_SPECS): New define.
7647         * config/arm/driver-arm.c: New file.
7648         * config/arm/x-arm: New file.
7649         * doc/invoke.texi (ARM Options): Document -mcpu=native,
7650         -mtune=native and -march=native.
7651
7652 2011-10-18  Alexander Monakov  <amonakov@ispras.ru>
7653
7654         PR rtl-optimization/50205
7655         * sel-sched.c (count_occurrences_1): Simplify on the assumption that
7656         p->x is a register.  Forbid substitution when the same register is
7657         found in a different mode.
7658         (count_occurrences_equiv): Assert that 'what' is a register.
7659
7660 2011-10-18  Richard Guenther  <rguenther@suse.de>
7661
7662         PR tree-optimization/50767
7663         * tree-ssa-pre.c (create_expression_by_pieces): Update the
7664         folded statement.
7665
7666 2011-10-18  Julian Brown  <julian@codesourcery.com>
7667
7668         * config/arm/arm.c (arm_block_move_unaligned_straight)
7669         (arm_adjust_block_mem, arm_block_move_unaligned_loop)
7670         (arm_movmemqi_unaligned): New.
7671         (arm_gen_movmemqi): Support unaligned block copies.
7672
7673 2011-10-18  Ira Rosen  <ira.rosen@linaro.org>
7674
7675         * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
7676         vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
7677         * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
7678         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
7679         (op_code_prio): Likewise.
7680         (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
7681         * optabs.c (optab_for_tree_code): Handle
7682         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
7683         (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
7684         * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
7685         * genopinit.c (optabs): Initialize the new optabs.
7686         * expr.c (expand_expr_real_2): Handle
7687         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
7688         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
7689         * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
7690         * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
7691         VEC_WIDEN_LSHIFT_LO_EXPR): New.
7692         * cfgexpand.c (expand_debug_expr): Handle new tree codes.
7693         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
7694         vect_recog_widen_shift_pattern.
7695         (vect_handle_widen_mult_by_const): Rename...
7696         (vect_handle_widen_op_by_const): ...to this.  Handle shifts.
7697         Add a new argument, update documentation.
7698         (vect_recog_widen_mult_pattern): Assume that only second
7699         operand can be constant.  Update call to
7700         vect_handle_widen_op_by_const.
7701         (vect_recog_over_widening_pattern): Fix typo.
7702         (vect_recog_widen_shift_pattern): New.
7703         * tree-vect-stmts.c (vectorizable_type_promotion): Handle
7704         widening shifts.
7705         (supportable_widening_operation): Likewise.
7706         * tree-inline.c (estimate_operator_cost): Handle new tree codes.
7707         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
7708         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7709         * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
7710         (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
7711         vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
7712         Likewise.
7713         * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
7714         New.
7715         * config/arm/iterators.md (V_innermode): New.
7716         * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
7717         for widening shift.
7718
7719 2011-10-18  Richard Guenther  <rguenther@suse.de>
7720
7721         * tree-ssa-alias.h (struct pt_solution): Remove
7722         vars_contains_restrict member.
7723         (pt_solutions_same_restrict_base): Remove.
7724         (pt_solution_set): Adjust.
7725         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
7726         vars_contains_restrict handling.
7727         (dump_points_to_solution): Likewise.
7728         (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
7729         * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
7730         field.
7731         (new_var_info): Do not initialize it.
7732         (ipa_escaped_pt): Adjust.
7733         (make_constraint_from_restrict): Make the tag global.
7734         (make_constraint_from_global_restrict): New function.
7735         (make_constraint_from_heapvar): Remove.
7736         (create_variable_info_for): Do not make restrict vars point
7737         to NONLOCAL.
7738         (intra_create_variable_infos): Likewise.
7739         (find_what_var_points_to): Remove vars_contains_restrict handling.
7740         (pt_solution_set): Adjust.
7741         (pt_solution_ior_into): Likewise.
7742         (pt_solutions_same_restrict_base): Remove.
7743         (compute_points_to_sets): Do not test is_restrict_var.
7744         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
7745         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
7746
7747 2011-10-18  Tom de Vries  <tom@codesourcery.com>
7748
7749         PR tree-optimization/50672
7750         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
7751         factored out of ...
7752         (mark_virtual_phi_result_for_renaming): Use
7753         mark_virtual_operand_for_renaming.
7754         * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
7755         * tree-ssa-tail-merge.c (release_last_vdef): New function.
7756         (purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
7757         deleted basic block.
7758         (tail_merge_optimize): Add argument to call to purge_bbs.
7759
7760 2011-10-18  Richard Guenther  <rguenther@suse.de>
7761
7762         PR middle-end/50716
7763         * expr.c (get_object_or_type_alignment): New function.
7764         (expand_assignment): Use it.
7765         (expand_expr_real_1): Likewise.
7766
7767 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
7768
7769         PR bootstrap/50760
7770         * input.c (dump_line_table_statistics): Use long, not size_t.
7771
7772 2011-10-17  Eric Botcazou  <ebotcazou@adacore.com>
7773
7774         * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
7775
7776 2011-10-17  Simon Baldwin  <simonb@google.com>
7777             Ian Lance Taylor  <iant@google.com>
7778
7779         * configure.ac: Add --with-native-system-header-dir.  Set and
7780         substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
7781         when setting target_header_dir.
7782         * config.gcc: Always set native_system_header_dir.
7783         (*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
7784         (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
7785         use i386/t-djgpp.
7786         (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
7787         native_system_header_dir.
7788         (spu-*-elf*): Set native_system_header_dir.
7789         * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
7790         @NATIVE_SYSTEM_HEADER_DIR@.
7791         (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
7792         * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
7793         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
7794         STANDARD_INCLUDE_COMPONENT.
7795         (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
7796         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
7797         * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
7798         STANDARD_INCLUDE_COMPONENT.
7799         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
7800         * config/i386/t-mingw-w32: Likewise.
7801         * config/i386/t-mingw-w64: Likewise.
7802         * config/spu/t-spu-elf: Likewise.
7803         * config/i386/t-djgpp: Remove.
7804         * config/t-gnu: Remove.
7805         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
7806         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
7807         STANDARD_INCLUDE_COMPONENT.
7808         * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
7809         * config/spu/spu-elf.h: Likewise.
7810         * config/vms/xm-vms.h: Likewise.
7811         * config/gnu.h: Likewise.
7812         * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
7813         and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
7814         NATIVE_SYSTME_HEADER_COMPONENT.
7815         * doc/install.texi (Configuration): Document
7816         --with-native-system-header-dir.  Mention it in the documentation
7817         for --with-sysroot and --with-build-sysroot.
7818         * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
7819         STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
7820         NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
7821         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
7822         * doc/fragments.texi (Target Fragment): Don't document
7823         NATIVE_SYSTEM_HEADER_DIR.
7824         * configure, doc/tm.texi: Rebuild.
7825
7826 2011-10-17  Richard Henderson  <rth@redhat.com>
7827
7828         * config/sparc/sparc.md: Use register_or_zero_operand where rJ
7829         is the constraint.
7830
7831         * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
7832         patterns.
7833         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
7834         * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
7835
7836 2011-10-17  David S. Miller  <davem@davemloft.net>
7837
7838         * config/sparc/sparc-modes.def: Add single entry vector modes for
7839         DImode and SImode.
7840         * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
7841         mode iterators.
7842         (mov<V32:mode>): Revert back to plain SFmode pattern.
7843         (*movsf_insn): Likewise.
7844         (mov<V64:mode>): Revert back to plain DFmode pattern.
7845         (*movdf_insn_sp32): Likewise.
7846         (*movdf_insn_sp32_v9): Likewise.
7847         (*movdf_insn_sp64): Likewise.
7848         (V64 mode splitters) Likewise.
7849         (addsi3): Remove VIS alternatives.
7850         (subsi3): Likewise.
7851         (and<V64I:mode>3): Revert to DImode only pattern.
7852         (and<V64I:mode>3_sp32): Likewise.
7853         (*and<V64I:mode>3_sp64): Likewise.
7854         (and<V32I:mode>3): Likewise.
7855         (*and_not_<V64I:mode>_sp32): Likewise.
7856         (*and_not_<V64I:mode>_sp64): Likewise.
7857         (*and_not_<V32I:mode>): Likewise.
7858         (ior<V64I:mode>3): Likewise.
7859         (*ior<V64I:mode>3_sp32): Likewise.
7860         (*ior<V64I:mode>3_sp64): Likewise.
7861         (ior<V32I:mode>3): Likewise.
7862         (*or_not_<V64I:mode>_sp32): Likewise.
7863         (*or_not_<V64I:mode>_sp64): Likewise.
7864         (*or_not_<V32I:mode>): Likewise.
7865         (xor<V64I:mode>3): Likewise.
7866         (*xor<V64I:mode>3_sp32): Likewise.
7867         (*xor<V64I:mode>3_sp64): Likewise.
7868         (xor<V32I:mode>3): Likewise.
7869         (V64I mode splitters): Likewise.
7870         (*xor_not_<V64I:mode>_sp32): Likewise.
7871         (*xor_not_<V64I:mode>_sp64): Likewise.
7872         (*xor_not_<V32I:mode>): Likewise.
7873         (one_cmpl<V64I:mode>2): Likewise.
7874         (*one_cmpl<V64I:mode>2_sp32): Likewise.
7875         (*one_cmpl<V64I:mode>2_sp64): Likewise.
7876         (one_cmpl<V32I:mode>2): Likewise.
7877         (VM32, VM64, VMALL): New mode iterators.
7878         (vbits, vconstr, vfptype): New mode attributes.
7879         (mov<VMALL:mode>): New expander.
7880         (*mov<VM32:mode>_insn): New insn.
7881         (*mov<VM64:mode>_insn_sp64): New insn.
7882         (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
7883         specifically for the register to memory case.
7884         (vec_init<mode>): New expander.
7885         (VADDSUB): New mode iterator.
7886         (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
7887         with...
7888         (<plusminus_insn><mode>3): New consolidated pattern.
7889         (VL): New mode iterator for logical operations.
7890         (vlsuf): New more attribute.
7891         (vlop): New code iterator.
7892         (vlinsn, vlninsn): New code attributes.
7893         (<code><mode>3): New insn to non-negated vector logical ops.
7894         (*not_<code><mode>3): Likewise for negated variants.
7895         (*nand<mode>_vis): New insn.
7896         (vlnotop): New code iterator.
7897         (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
7898         (one_cmpl<mode>2): New insn.
7899         (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
7900         (bshuffle<VM64:mode>_vis): Likewise.
7901         (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
7902         (fp<plusminus_insn>64_vis): Use V1DI mode.
7903         (VASS mode iterator): Use V1SI not SI mode.
7904         * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
7905         single-entry vector mode changes.
7906         (sparc_expand_builtin): Likewise.
7907         (sparc_expand_vector_init): New function.
7908         * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
7909
7910 2011-10-17  Kai Tietz  <ktietz@redhat.com>
7911
7912         * fold-const.c (simple_operand_p_2): New function.
7913         (fold_truthop): Rename to
7914         (fold_truth_andor_1): function name.
7915         Additionally remove branching creation for logical and/or.
7916         (fold_truth_andor): Handle branching creation for logical and/or here.
7917
7918 2011-10-17  Andi Kleen  <ak@linux.intel.com>
7919
7920         * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
7921
7922 2011-10-17  Georg-Johann Lay  <avr@gjlay.de>
7923
7924         * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
7925         * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
7926         (adjust_len): Add alternative "call".
7927         (isa, enabled): New insn attributes.
7928         (length): Use match_test with AVR_HAVE_JMP_CALL instead of
7929         mcu_mega attribute.
7930         (*sbrx_branch<mode>): Ditto.
7931         (*sbrx_and_branch<mode>): Ditto.
7932         (*sbix_branch): Ditto.
7933         (*sbix_branch_bit7): Ditto.
7934         (*sbix_branch_tmp): Ditto.
7935         (*sbix_branch_tmp_bit7): Ditto.
7936         (jump): Ditto.
7937         (negsi2): Use attribute "isa" instead of assembler dialect.
7938         (extendhisi2): Ditto.
7939         (call_insn, call_value_insn): Set adjust_len attribute.
7940         (indirect_jump): Indent to coding rules.
7941         (call_prologue_saves): Use isa attribute instead of mcu_mega.
7942         (epilogue_restores): Ditto.  Fix setting of SP as described in the
7943         RTX pattern.
7944         (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
7945         and *indirect_jump_avr6.
7946         (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
7947         (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
7948         (*tablejump_rjmp, *tablejump_lib): Remove.
7949         * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
7950
7951 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
7952
7953         PR c++/50757
7954         * doc/invoke.texi ([Wnonnull]): Update.
7955
7956 2011-10-17  Richard Henderson  <rth@redhat.com>
7957
7958         PR 50746
7959         * optabs.c (expand_vec_perm_expr): Fix indexing error.
7960
7961 2011-10-17  Sergio Durigan Junior  <sergiodj@redhat.com>
7962
7963         * configure.ac: Display `yes' if the SystemTap header has been found.
7964         * configure: Regenerate.
7965
7966 2011-10-08  Andi Kleen  <ak@linux.intel.com>
7967
7968         PR other/50636
7969         * config.in, configure: Regenerate.
7970         * configure.ac (madvise): Add to AC_CHECK_FUNCS.
7971         * ggc-page.c (USING_MADVISE): Add.
7972         (page_entry): Add discarded field.
7973         (alloc_page): Check for discarded pages.
7974         (release_pages): Add USING_MADVISE branch.
7975
7976 2011-10-17  Richard Guenther  <rguenther@suse.de>
7977
7978         PR tree-optimization/50729
7979         * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
7980         (simplify_conversion_using_ranges): Properly test the
7981         intermediate result.
7982
7983 2011-10-15  Tom Tromey  <tromey@redhat.com>
7984             Dodji Seketeli  <dodji@redhat.com>
7985
7986         * ggc.h (ggc_round_alloc_size): Declare new public entry point.
7987         * ggc-none.c (ggc_round_alloc_size): New public stub function.
7988         * ggc-page.c (ggc_alloced_size_order_for_request): New static
7989         function.  Factorized from ggc_internal_alloc_stat.
7990         (ggc_round_alloc_size): New public function.  Uses
7991         ggc_alloced_size_order_for_request.
7992         (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
7993         * ggc-zone.c (ggc_round_alloc_size): New public function extracted
7994         from ggc_internal_alloc_zone_stat.
7995         (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
7996         * toplev.c (general_init): Initialize
7997         line_table->alloced_size_for_request.
7998
7999 2011-10-15  Tom Tromey  <tromey@redhat.com>
8000             Dodji Seketeli  <dodji@redhat.com>
8001
8002         * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
8003         (num_expanded_macros_counter, num_macro_tokens_counter): Declare
8004         new counters.
8005         (dump_line_table_statistics): Define new function.
8006         * input.h (dump_line_table_statistics): Declare new function.
8007         * toplev.c (dump_memory_report): Call dump_line_table_statistics.
8008
8009 2011-10-15  Tom Tromey  <tromey@redhat.com>
8010             Dodji Seketeli  <dodji@redhat.com>
8011
8012         * doc/cppopts.texi: Document -fdebug-cpp.
8013         * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
8014
8015 2011-10-15  Tom Tromey  <tromey@redhat.com>
8016             Dodji Seketeli  <dodji@redhat.com>
8017
8018         * gcc/diagnostic.h (diagnostic_report_current_module): Add a
8019         location parameter.
8020         * diagnostic.c (diagnostic_report_current_module): Add a location
8021         parameter to the function definition.  Use it instead of
8022         input_location.  Resolve the virtual location rather than just
8023         looking up its map and risking to touch a resulting macro map.
8024         (default_diagnostic_starter): Pass the relevant diagnostic
8025         location to diagnostic_report_current_module.
8026         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
8027         (virt_loc_aware_diagnostic_finalizer): Likewise.
8028         (diagnostic_report_current_function): Pass the
8029         relevant location to diagnostic_report_current_module.
8030         * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
8031         new function.
8032         * toplev.c (general_init): By default, use the new
8033         virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
8034         * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
8035
8036 2011-10-15  Tom Tromey  <tromey@redhat.com>
8037             Dodji Seketeli  <dodji@redhat.com>
8038
8039         * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
8040         * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
8041         preprocessor related options.
8042
8043 2011-10-15  Tom Tromey  <tromey@redhat>
8044             Dodji Seketeli  <dodji@redhat.com>
8045
8046         * input.h (struct expanded_location): Move to libcpp/line-map.h.
8047         (LOCATION_COLUMN): New accessor
8048         (in_system_header_at): Use linemap_location_in_system_header_p.
8049         * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
8050         touching the internals of struct line_map.  Use the public API instead.
8051         (diagnostic_report_diagnostic): Don't use relational operator '<'
8052         on virtual locations.  Use linemap_location_before_p instead.
8053         * input.c (expand_location): Adjust to expand to the tokens'
8054         spelling location when macro location tracking is on.
8055
8056
8057 2011-10-08  Andi Kleen  <ak@linux.intel.com>
8058
8059         * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
8060
8061 2011-10-13  Andi Kleen  <ak@linux.intel.com>
8062
8063         * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
8064
8065 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
8066
8067         PR tree-optimization/50727
8068         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
8069         DEF_STMT to the list of statements to be replaced by the
8070         pattern statements.
8071
8072 2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8073
8074         PR rtl-optimization/50615
8075         * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
8076
8077 2011-10-16  Jakub Jelinek  <jakub@redhat.com>
8078
8079         PR tree-optimization/50596
8080         * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
8081         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
8082         vect_recog_bool_pattern.
8083         (check_bool_pattern, adjust_bool_pattern_cast,
8084         adjust_bool_pattern, vect_recog_bool_pattern): New functions.
8085
8086 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
8087
8088         * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
8089         treat the first load of the node as the first element in its
8090         interleaving chain.
8091         * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
8092         necessary and possible.
8093         (vect_build_slp_tree): Add new argument.  Allow load groups of any size
8094         in basic blocks.  Keep all the loads for further permutation check.
8095         Use the new argument to determine if there is a permutation.  Update
8096         the recursive calls.
8097         (vect_supported_load_permutation_p): Allow subchains of interleaving
8098         chains in basic block vectorization.
8099         (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
8100         Check load permutation based on the new parameter.
8101         (vect_schedule_slp_instance): Don't start from the first element in
8102         interleaving chain unless the loads are permuted.
8103
8104 2011-10-15  Jan Hubicka  <jh@suse.cz>
8105
8106         PR target/48668
8107         PR target/50689
8108         * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
8109         after function body.
8110
8111 2011-10-15  Richard Henderson  <rth@redhat.com>
8112
8113         * tree-vect-slp.c: Include langhooks.h.
8114         (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
8115         (vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify
8116         mask creation for VEC_PERM_EXPR.
8117         * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
8118         not the builtin.
8119         (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
8120         * Makefile.in (tree-vect-slp.o): Update dependency.
8121         * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
8122
8123 2011-10-15  Alan Modra  <amodra@gmail.com>
8124
8125         PR bootstrap/50738
8126         * ifcvt.c (dead_or_predicable): Revert accidental commit with
8127         HAVE_simple_return test.
8128
8129 2011-10-15  Alan Modra  <amodra@gmail.com>
8130
8131         * ifcvt.c (dead_or_predicable): Disable if-conversion when
8132         doing so is likely to kill a shrink-wrapping opportunity.
8133
8134         PR rtl-optimization/49941
8135         * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
8136
8137         * rtl.h (set_return_jump_label): Declare.
8138         * function.c (set_return_jump_label): New function, extracted..
8139         (thread_prologue_and_epilogue_insns): ..from here.  Use it in
8140         another instance to set return jump_label.
8141         * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
8142         * reorg.c (find_end_label): Likewise.
8143
8144 2011-10-14  David S. Miller  <davem@davemloft.net>
8145
8146         * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
8147         with a more complete cpp test.
8148         * config/sparc/linux64.h: Likewise.
8149         * config/sparc/linux.h: Likewise.
8150         * config/sparc/sparc.opt (sparc_debug): New target variable.
8151         (mdebug): New target option.
8152         * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
8153         TARGET_DEBUG_OPTIONS): New defines.
8154         * config/sparc/sparc.c (debug_target_flag_bits,
8155         debug_target_flags): New functions.
8156         (sparc_option_override): Add name strings back to cpu_table[].
8157         Parse -mdebug string.  When TARGET_DEBUG_OPTIONS is true, print
8158         out the target flags before and after override processing as well
8159         as the selected cpu.  If MASK_V8PLUS, make sure that the selected
8160         cpu is at least v9.
8161
8162 2011-10-15  Oleg Endo  <oleg.endo@t-online.de>
8163
8164         PR target/49263
8165         * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
8166         * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
8167         * config/sh/sh.md (tstsi_t): Name existing insn.  Make inner
8168         and instruction commutative.
8169         (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
8170         tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
8171         tstsi_t_zero_extract_subreg_xor_little,
8172         tstsi_t_zero_extract_subreg_xor_big): New insns.
8173         (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
8174         asm output.
8175         (*andsi_compact): Reorder alternatives so that K08 is considered first.
8176
8177 2011-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8178
8179         PR target/50354
8180         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
8181         processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
8182
8183 2011-10-14  Gerald Pfeifer  <gerald@pfeifer.com>
8184
8185         * invoke.texi (AVR Options): Avoid \leq{}.
8186
8187 2011-10-14  Kai Tietz  <ktietz@redhat.com>
8188
8189         * gimplify.c (gimplify_expr): Take care that for bitwise-binary
8190         transformation the operands have compatible types.
8191
8192 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
8193
8194         * config/i386/sse.md (vec_widen_smult_hi_v8hi,
8195         vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
8196         vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
8197         mode iterator and any_extend code iterator.
8198         (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
8199         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
8200         also for TARGET_SSE4_1 using pmuldq insn.
8201         (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
8202         (sse2_sse4_1): New code attr.
8203         (udot_prodv4si): Macroize using any_extend code iterator.
8204         (<s>dot_prodv8si): New expander.
8205
8206 2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
8207
8208         * config/i386/i386.c (atom_cost): Changed cost for loading
8209         QImode using movzbl.
8210
8211 2011-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8212
8213         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
8214         change on October 11th, 2011.
8215
8216 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
8217
8218         * config/i386/sse.md (vec_interleave_high<mode>,
8219         vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
8220         * config/i386/i386.c (expand_vec_perm_interleave3): New function.
8221         (ix86_expand_vec_perm_builtin_1): Call it.
8222
8223 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
8224
8225         Fix thinko from r179765
8226         * config/avr/avr.c (avr_option_override): Don't override
8227         flag_omit_frame_pointer if not actually needed.
8228
8229 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
8230
8231         PR target/46278
8232         * doc/invoke.texi (AVR Options): Document -mstrict-X.
8233
8234         * config/avr/avr.opt (-mstrict-X): New option.
8235         (avr_strict_X): New variable reflecting -mstrict-X.
8236         * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
8237         outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
8238         (avr_legitimate_address_p): Pass outer_code to
8239         avr_reg_ok_for_addr_p and use that function in case PLUS.
8240         (avr_mode_code_base_reg_class): Depend on avr_strict_X.
8241         (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
8242         (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
8243
8244 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
8245
8246         * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
8247         of VI_128.
8248
8249         * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
8250         (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
8251         Use <sseinsnmode> instead of TI in mode attr.
8252
8253 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
8254
8255         * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
8256         * config/arm/linux-atomic.c: Change comment to point to 64bit version.
8257         (SYNC_LOCK_RELEASE): Instantiate 64bit version.
8258         * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
8259
8260 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
8261
8262         * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
8263         (arm_output_strex): Support strexd.
8264         (arm_output_it): New helper to output it in Thumb2 mode only.
8265         (arm_output_sync_loop): Support DI mode.  Change comment to
8266         not support const_int.
8267         (arm_expand_sync): Support DI mode.
8268         * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
8269         and LDREXD.
8270         * config/arm/iterators.md (NARROW): move from sync.md.
8271         (QHSD): New iterator for all current ARM integer modes.
8272         (SIDI): New iterator for SI and DI modes only.
8273         * config/arm/sync.md (sync_predtab): New mode_attr.
8274         (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
8275         (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
8276         (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
8277         (sync_nandsi): Fold into sync_nand<mode>.
8278         (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
8279         (sync_new_nandsi): Fold into sync_new_nand<mode>.
8280         (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
8281         (sync_old_nandsi): Fold into sync_old_nand<mode>.
8282         (sync_compare_and_swap<mode>): Support SI & DI.
8283         (sync_lock_test_and_set<mode>): Likewise.
8284         (sync_<sync_optab><mode>): Likewise.
8285         (sync_nand<mode>): Likewise.
8286         (sync_new_<sync_optab><mode>): Likewise.
8287         (sync_new_nand<mode>): Likewise.
8288         (sync_old_<sync_optab><mode>): Likewise.
8289         (sync_old_nand<mode>): Likewise.
8290         (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
8291         (arm_sync_lock_test_and_setsi): Likewise.
8292         (arm_sync_new_<sync_optab>si): Likewise.
8293         (arm_sync_new_nandsi): Likewise.
8294         (arm_sync_old_<sync_optab>si): Likewise.
8295         (arm_sync_old_nandsi): Likewise.
8296         (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
8297         (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
8298         (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
8299         (arm_sync_new_nand<mode> NARROW): Likewise.
8300         (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
8301         (arm_sync_old_nand<mode> NARROW): Likewise.
8302
8303 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
8304
8305         PR target/48126
8306         * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
8307
8308 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
8309
8310         * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
8311
8312 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
8313
8314         * doc/invoke.texi ([Wformat-zero-length]): Tidy.
8315
8316 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
8317
8318         * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
8319         on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
8320
8321 2011-10-14  Richard Guenther  <rguenther@suse.de>
8322
8323         PR tree-optimization/50723
8324         * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
8325
8326 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
8327
8328         * gengtype.c (files_rules): Added rules for objc/objc-map.h and
8329         objc/objc-map.c.
8330
8331 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
8332
8333         PR c++/17212
8334         * doc/invoke.texi ([Wformat-zero-length]): Update.
8335
8336 2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8337
8338         PR bootstrap/50699
8339         * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
8340         build for powerpc targets.  (darwin_patch_builtins): Only build for
8341         powerpc targets.
8342
8343 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
8344
8345         * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
8346         (avx_cvtdq2pd256_2): ... this.
8347         (sseunpackfltmode): New mode attr.
8348         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
8349         vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
8350         using VI2_AVX2 iterator.
8351         (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
8352
8353 2011-10-13  David S. Miller  <davem@davemloft.net>
8354
8355         * config/sparc/sparc.md (plusminus): New code iterator.
8356         (plusminus_insn): New code attr.
8357         (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
8358         using plusminus and plusminus_insn.
8359         (fpadd64_vis, fpsub64_vis): Likewise.
8360
8361 2011-10-13  Richard Henderson  <rth@redhat.com>
8362
8363         * doc/md.texi (vec_perm): Document fallback to byte permutation.
8364         * genopinit.c (optabs): Add vec_perm_const.
8365         * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
8366         Reject non-vector modes.  Allow fallback to byte permutation.
8367         (expand_vec_perm_expr_1): Split out from ...
8368         (expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
8369         * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
8370         * tree-vect-generic.c (lower_vec_perm): Update for name change.
8371
8372 2011-10-13  Richard Henderson  <rth@redhat.com>
8373
8374         * config/rs6000/altivec.md (vec_permv16qi): New pattern.
8375
8376         * config/rs6000/spu.md (vec_permv16qi): New pattern.
8377
8378         * config/i386/i386.c (ix86_expand_vec_perm_const): New.
8379         * config/i386/i386-protos.h: Update.
8380         * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
8381         (vec_perm_const<VEC_PERM_CONST>): New expander.
8382
8383         * optabs.c (expand_vector_broadcast): New.
8384         (expand_binop): Expand scalar shifts of vectors to vector shifts
8385         of vectors, if the former isn't supported.
8386         * tree-vect-generic.c (expand_vector_operations_1): Don't do that
8387         here; always simplify to scalar shift of vector if possible.
8388
8389         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
8390         test for vector splat.
8391
8392 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
8393
8394         * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
8395
8396 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
8397             Richard Guenther  <rguenther@suse.de>
8398
8399         * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
8400         or complex vars even if their DECL_UID is in not_reg_needs bitmap.
8401
8402 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
8403
8404         * config/i386/sse.md (reduc_umin_v8hi): New pattern.
8405         * config/i386/i386.c (ix86_build_const_vector): Handle
8406         also V32QI, V16QI, V16HI and V8HI modes.
8407         (emit_reduc_half): New function.
8408         (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
8409         Use emit_reduc_half helper function.
8410
8411 2011-10-13  Lawrence Crowl  <crowl@google.com>
8412             Diego Novillo  <dnovillo@google.com>
8413
8414         * lto-streamer-in.c (input_struct_function_base): Factor out of ...
8415         (input_function): ... here.
8416         * lto-streamer-out.c (output_struct_function_base): Factor out of ...
8417         (output_function): ... here.
8418
8419 2011-10-13  Gabriel Charette  <gchare@google.com>
8420             Diego Novillo  <dnovillo@google.com>
8421
8422         * streamer-hooks.h (struct streamer_hooks): Add hooks
8423         input_location and output_location.
8424         * lto-streamer-in.c (lto_input_location): Use
8425         streamer_hooks.input_location, if set.
8426         * lto-streamer-out.c (lto_output_location): Use
8427         streamer_hooks.output_location, if set.
8428
8429 2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8430
8431         * doc/invoke.texi (SPARC options): Document -mfix-at697f.
8432         * config/sparc/sparc.opt (mfix-at697f): New option.
8433         * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
8434         (sparc_reorg): New function.
8435
8436 2011-10-13  Richard Guenther  <rguenther@suse.de>
8437
8438         PR tree-optimization/50712
8439         * ipa-split.c (split_function): Always re-gimplify parameters
8440         when they are not gimple vals before passing them.  Properly
8441         check for type compatibility.
8442
8443 2011-10-13  Tom de Vries  <tom@codesourcery.com>
8444
8445         * function.c (gimplify_parameters): Set number of arguments of call to
8446         BUILT_IN_ALLOCA_WITH_ALIGN to 2.
8447
8448 2011-10-13  Tom de Vries  <tom@codesourcery.com>
8449
8450         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
8451         for static const strings.
8452         * varasm.c (build_constant_desc): Generate the memory location of the
8453         constant using gen_const_mem.
8454
8455 2011-10-13  Richard Guenther  <rguenther@suse.de>
8456
8457         PR tree-optimization/50698
8458         * tree-data-ref.c (split_constant_offset_1): Also process
8459         offsets of &MEM.
8460
8461 2011-10-12  David S. Miller  <davem@davemloft.net>
8462
8463         * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
8464         (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
8465         unspecs.
8466         (fpmerge_vis): Remove inaccurate comment, represent using vec_select
8467         of a vec_concat.
8468         (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
8469         (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
8470         Reimplement as unspecs and remove inaccurate comments.
8471         (vis3_shift_patname): New code attr.
8472         (<vis3_shift_insn><vbits>_vis): Rename to
8473         "v<vis3_shift_patname><mode>3".
8474         (vis3_addsub_ss_patname): New code attr.
8475         (<vis3_addsub_ss_insn><vbits>_vis): Rename to
8476         "<vis3_addsub_ss_patname><mode>3".
8477         * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
8478         accommodate pattern name changes.
8479
8480         * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
8481         to zero when assembler lacks support for such instructions.
8482         * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
8483         and MASK_FMAF in defaults when assembler lacks necessary support.
8484
8485 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
8486
8487         * config/i386/sse.md (vec_unpacks_lo_<mode>,
8488         vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
8489         vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
8490         * config/i386/i386.c (ix86_expand_sse_unpack): Handle
8491         V32QImode, V16HImode and V8SImode for TARGET_AVX2.
8492
8493         * config/i386/sse.md (vec_avx2): New mode_attr.
8494         (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
8495         (mul<mode>3): ... this.
8496
8497         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
8498         * config/i386/i386.c (ix86_expand_vec_perm): Handle
8499         V16QImode and V32QImode for TARGET_AVX2.
8500         (MAX_VECT_LEN): Increase to 32.
8501         (expand_vec_perm_blend): Add support for 32-byte integer
8502         vectors with TARGET_AVX2.
8503         (valid_perm_using_mode_p): New function.
8504         (expand_vec_perm_pshufb): Add support for 32-byte integer
8505         vectors with TARGET_AVX2.
8506         (expand_vec_perm_vpshufb2_vpermq): New function.
8507         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
8508         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
8509         with TARGET_AVX2.
8510         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
8511         and expand_vec_perm_vpshufb2_vpermq_even_odd.
8512         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
8513         32-byte integer vector modes.
8514         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
8515         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
8516         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
8517         4 new operands.
8518         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
8519         match_dup, instead add 4 new operands and require they have
8520         right cross-lane values.
8521         (avx2_permv4di): Change into define_expand.
8522         (avx2_permv4di_1): New instruction.
8523         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
8524         for "xm" constrained operand.
8525         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
8526
8527         * config/i386/sse.md (avx2_gathersi<mode>,
8528         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
8529         match_scratch, change memory_operand to register_operand,
8530         add (mem:BLK (scratch)) use.
8531         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
8532         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
8533         add earlyclobber to the output operand and match_scratch,
8534         add (mem:BLK (scratch)) use, change the other mem to match_operand.
8535         Use %p6 instead of %c6 in the pattern.
8536         * config/i386/i386.c (ix86_expand_builtin): Adjust for
8537         operand 2 being a Pmode register_operand instead of memory_operand.
8538
8539 2011-10-12  Kai Tietz  <ktietz@redhat.com>
8540
8541         * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
8542
8543 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
8544
8545         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
8546
8547 2011-10-12  Richard Guenther  <rguenther@suse.de>
8548
8549         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
8550         of the first store we visit in a basic-block.
8551         (get_continuation_for_phi): Search for a candidate VUSE that
8552         might dominates all others.  Do pairwise disambiguation against
8553         that candidate.
8554
8555 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
8556
8557         PR tree-optimization/50189
8558         * tree-vrp.c (extract_range_from_assert): Use the type of
8559         the variable, not the limit.
8560
8561 2011-10-12  Richard Guenther  <rguenther@suse.de>
8562
8563         PR tree-optimization/50700
8564         * tree-object-size.c (addr_object_size): Simplify and treat
8565         MEM_REF bases consistently.
8566
8567 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
8568
8569         * function.c (prepare_shrink_wrap, bb_active_p): New function.
8570         (thread_prologue_and_epilogue_insns): Use bb_active_p.  Call
8571         prepare_shrink_wrap, then recompute bb_active_p for the last block.
8572
8573 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
8574
8575         PR c/50565
8576         * convert.c (convert_to_integer): Do not narrow operands of
8577         pointer subtraction.
8578
8579 2011-10-12  Nick Clifton  <nickc@redhat.com>
8580
8581         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
8582         emit a .eabi_attribute assembler directive, possibly with a
8583         comment attached.
8584         * config/arm/arm.c (arm_file_start): Use the new macro.
8585         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
8586
8587 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
8588
8589         PR target/49939
8590         * config/avr/avr.md (*movqi): Rename to movqi_insn.
8591         (*call_insn): Rename to call_insn.
8592         (*call_value_insn): Rename to call_value_insn.
8593         * config/avr/avr.c (avr_2word_insn_p): New static function.
8594         (jump_over_one_insn_p): Use it.
8595
8596 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
8597
8598         PR middle-end/48660
8599         * expr.h (copy_blkmode_to_reg): Declare.
8600         * expr.c (copy_blkmode_to_reg): New function.
8601         (expand_assignment): Don't expand register RESULT_DECLs before
8602         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
8603         RESULT_DECL register.
8604         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
8605         * stmt.c (expand_return): Move BLKmode-to-register code into
8606         copy_blkmode_to_reg.
8607
8608 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8609
8610         PR target/49965
8611         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
8612         (mov<F:mode>cc): Likewise.
8613
8614 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8615
8616         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
8617
8618 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8619
8620         * tree.h (built_in_decls): Delete old interface with two parallel
8621         arrays to hold standard builtin declarations, and replace it with
8622         a function based interface that can support creating builtins on
8623         the fly in the future.  Change all uses, and poison the old
8624         names.  Make sure 0 is not a legitimate builtin index.
8625         (implicit_built_in_decls): Ditto.
8626         (built_in_info): Ditto.
8627         (BUILTIN_VALID_P): Ditto.
8628         (builtin_decl_explicit): Ditto.
8629         (builtin_decl_implicit): Ditto.
8630         (set_builtin_decl): Ditto.
8631         (set_builtin_decl_implicit_p): Ditto.
8632         (builtin_decl_explicit_p): Ditto.
8633         (builtin_decl_implicit_p): Ditto.
8634         * tree-complex.c (expand_complex_libcall): Ditto.
8635         * tree-loop-distribution.c (generate_memset_zero): Ditto.
8636         * tree-ssa-strlen.c (get_string_length): Ditto.
8637         (handle_builtin_strcpy): Ditto.
8638         (handle_builtin_strcat): Ditto.
8639         * tree.c (iterative_hash_expr): Ditto.
8640         (local_define_builtin): Ditto.
8641         (build_common_builtin_nodes): Ditto.
8642         * builtins.c (built_in_decls): Ditto.
8643         (implicit_built_in_decls): Ditto.
8644         (built_in_info): Ditto
8645         (expand_builtin_classify_type): Ditto.
8646         (mathfn_built_in_1): Ditto.
8647         (expand_builtin_cexpi): Ditto.
8648         (expand_builtin_mempcpy_args): Ditto.
8649         (expand_builtin_stpcpy): Ditto.
8650         (gimplify_va_arg_expr): Ditto.
8651         (expand_builtin_sync_operation): Ditto.
8652         (build_builtin_expect_predicate): Ditto.
8653         (fold_builtin_memory_op): Ditto.
8654         (fold_builtin_strcpy): Ditto.
8655         (fold_builtin_stpcpy): Ditto.
8656         (fold_builtin_strncpy): Ditto.
8657         (fold_builtin_interclass_mathfn): Ditto.
8658         (fold_builtin_classify): Ditto.
8659         (fold_builtin_2): Ditto.
8660         (fold_builtin_strstr): Ditto.
8661         (fold_builtin_strrchr): Ditto.
8662         (fold_builtin_strpbrk): Ditto.
8663         (fold_builtin_strcat): Ditto.
8664         (fold_builtin_strncat): Ditto.
8665         (fold_builtin_strcspn): Ditto.
8666         (fold_builtin_fputs): Ditto.
8667         (fold_builtin_sprintf): Ditto.
8668         (fold_builtin_snprintf): Ditto.
8669         (expand_builtin_memory_chk): Ditto.
8670         (fold_builtin_memory_chk): Ditto.
8671         (fold_builtin_stxcpy_chk): Ditto.
8672         (fold_builtin_strncpy_chk): Ditto.
8673         (fold_builtin_strcat_chk): Ditto.
8674         (fold_builtin_strncat_chk): Ditto.
8675         (fold_builtin_sprintf_chk_1): Ditto.
8676         (fold_builtin_snprintf_chk_1): Ditto.
8677         (fold_builtin_printf): Ditto.
8678         (fold_builtin_fprintf): Ditto.
8679         (fold_call_stmt): Ditto.
8680         (set_builtin_user_assembler_name): Ditto.
8681         * tree-emutls.c (emutls_common_1): Ditto.
8682         * omp-low.c (scan_omp): Ditto.
8683         (lower_rec_input_clauses): Ditto.
8684         (lower_reduction_clauses): Ditto.
8685         (expand_parallel_call): Ditto.
8686         (expand_task_call): Ditto.
8687         (maybe_catch_exception): Ditto.
8688         (optimize_omp_library_calls): Ditto.
8689         (expand_omp_for_generic): Ditto.
8690         (expand_omp_for_static_nochunk): Ditto.
8691         (expand_omp_for_static_chunk): Ditto.
8692         (expand_omp_sections): Ditto.
8693         (expand_omp_atomic_fetch_op): Ditto.
8694         (expand_omp_atomic_pipeline): Ditto.
8695         (expand_omp_atomic_mutex): Ditto.
8696         (lower_omp_single_simple): Ditto.
8697         (lower_omp_single_copy): Ditto.
8698         (lower_omp_master): Ditto.
8699         (lower_omp_ordered): Ditto.
8700         (lower_omp_critical): Ditto.
8701         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
8702         * builtins.c (DEF_BUILTIN_STUB): Ditto.
8703         (BUILT_IN_NONE): Ditto.
8704         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
8705         * gimple-low.c (lower_function_body): Ditto.
8706         (lower_builtin_setjmp): Ditto.
8707         * c-decl.c (merge_decls): Ditto.
8708         * tree-eh.c (lower_resx): Ditto.
8709         (lower_resx): Ditto.
8710         (lower_eh_dispatch): Ditto.
8711         * function (gimplify_parameters): Ditto.
8712         * c-typeck.c (build_function_call_vec): Ditto.
8713         * gimplify.c (build_stack_save_restore): Ditto.
8714         (gimplify_vla_decl): Ditto.
8715         (gimplify_modify_expr_to_memcpy): Ditto.
8716         (gimplify_modify_expr_to_memset): Ditto.
8717         (gimplify_variable_sized_compare): Ditto.
8718         (gimplify_function_tree): Ditto.
8719         * calls.c (emit_call_1): Ditto.
8720         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
8721         * tree-nested.c (convert_nl_goto_reference): Ditto.
8722         (convert_tramp_reference_op): Ditto.
8723         (finalize_nesting_tree_1): Ditto.
8724         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
8725         (tree_ssa_prefetch_arrays): Ditto.
8726         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
8727         * system.h (built_in_decls): Ditto.
8728         (implicit_built_in_decls): Ditto.
8729         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
8730         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
8731         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
8732         (ix86_veclibabi_svml): Ditto.
8733         (ix86_veclibabi_acml): Ditto.
8734         * config/vms/vms.c (vms_patch_builtins): Ditto.
8735         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
8736         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
8737         (rs6000_builtin_vectorized_libmass): Ditto.
8738         (rs6000_init_builtins): Ditto.
8739         * config/darwin.c (darwin_override_options): Ditto.
8740         (darwin_patch_builtin): Ditto.
8741         (darwin_rename_builtins): Ditto.
8742         * config/pa/pa.c (pa_init_builtins): Ditto.
8743
8744 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8745
8746         * tree.h (copy_ref_info): Expose existing function.
8747         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
8748         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
8749
8750 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
8751
8752         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
8753         prototype.
8754         (avr_regno_mode_code_ok_for_base_p): New prototype.
8755         * config/avr/avr.h (BASE_REG_CLASS): Remove.
8756         (REGNO_OK_FOR_BASE_P): Remove.
8757         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
8758         (REG_OK_FOR_BASE_STRICT_P): Remove.
8759         (MODE_CODE_BASE_REG_CLASS): New define.
8760         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
8761         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
8762         (avr_regno_mode_code_ok_for_base_p): New function.
8763         (avr_reg_ok_for_addr_p): New static function.
8764         (avr_legitimate_address_p): Use it.  Beautify.
8765
8766 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
8767
8768         PR target/50447
8769         * config/avr/avr.md (cc): Add out_plus attribute alternative.
8770         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
8771         avr_out_plus for all CONST_INT addends.
8772         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
8773         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
8774         CC_OUT_PLUS.
8775         (avr_out_plus_1): Change prototype and report effect on cc0.
8776         (avr_out_plus): Ditto.
8777         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
8778
8779 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
8780
8781         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
8782         the extra break.
8783
8784 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
8785
8786         * doc/invoke.texi: Document new warning.
8787         * common.opt (Wvector-operation-performance): Define new warning.
8788         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
8789         vector operation.
8790         (exapnd_vector_parallel): Warn about expanded vector operation.
8791         (lower_vec_shuffle): Warn about expanded vector operation.
8792         * c-typeck.c (c_build_vec_perm_expr): Store correct location
8793         when creating VEC_PERM_EXPR.
8794
8795 2011-10-11  Richard Guenther  <rguenther@suse.de>
8796
8797         PR tree-optimization/50204
8798         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
8799         two argument handling from ...
8800         (get_continuation_for_phi): ... here.  Handle arbitrary number
8801         of PHI args.
8802
8803 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
8804
8805         * modulo-sched.c: Fix comment typo.  Mention the possibility
8806         of using scheduling windows of II+1 cycles.
8807
8808 2011-10-11  Tristan Gingold  <gingold@adacore.com>
8809
8810         * doc/invoke.texi (C Dialect Options): Document
8811         -fallow-parameterless-variadic-functions.
8812         * c-parser.c (c_parser_parms_list_declarator): Handle it.
8813
8814 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8815
8816         * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer
8817         to 0 if frame pointer is needed for unwinding.
8818
8819 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
8820
8821         PR bootstrap/50665
8822         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
8823         optab_index to enum direct_optab_index.
8824         (vec_perm_optab): Update.
8825
8826 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
8827
8828         * config/cris/cris.c (cris_preferred_reload_class): New function.
8829         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8830         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
8831
8832 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8833
8834         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
8835         !AVR_HAVE_JMP_CALL.
8836         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
8837         (*tablejump_enh, *tablejump): Remove insns.
8838         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
8839         EIJMP for indirect jump.  Use LPM Z+ where available.
8840
8841 2011-10-10  Richard Henderson  <rth@redhat.com>
8842
8843         * doc/md.texi (vec_perm_const): Fix typo in cindex.
8844
8845 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
8846             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
8847
8848         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
8849
8850 2011-10-10  Richard Guenther  <rguenther@suse.de>
8851
8852         PR middle-end/50389
8853         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
8854         mark symbols for renaming.  Append the VUSE to all statements
8855         that possibly can have one.
8856
8857 2011-10-10  Richard Guenther  <rguenther@suse.de>
8858
8859         * ipa-split.c (pass_split_functions): Add verification TODOs.
8860         (pass_feedback_split_functions): Likewise.
8861
8862 2011-10-10  Richard Guenther  <rguenther@suse.de>
8863
8864         PR middle-end/50195
8865         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
8866         only when optimizing.
8867
8868 2011-10-10  Nick Clifton  <nickc@redhat.com>
8869
8870         PR middle-end/49801
8871         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
8872         df_get_live_out instead of accessing the bitmaps directly.
8873         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
8874         df_live_add_problem and df_analyze.
8875
8876 2011-10-10  Michael Matz  <matz@suse.de>
8877
8878         PR middle-end/50638
8879         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
8880
8881 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8882
8883         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
8884         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
8885         (node_sched_params): Remove first_reg_move and nreg_moves.
8886         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
8887         (update_node_sched_params): Move up file.
8888         (print_node_sched_params): Print the stage.  Don't dump info related
8889         to first_reg_move and nreg_moves.
8890         (set_columns_for_row): New function.
8891         (set_columns_for_ps): Move up file and use set_columns_for_row.
8892         (schedule_reg_move): New function.
8893         (schedule_reg_moves): Call extend_node_sched_params and
8894         schedule_reg_move.  Extend size of uses bitmap.  Initialize
8895         num_consecutive_stages.  Return false if a move could not be
8896         scheduled.
8897         (apply_reg_moves): Don't emit moves here.
8898         (permute_partial_schedule): Handle register moves.
8899         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
8900         to the same stage-count test as ddg nodes.
8901         (generate_prolog_epilog): Update calls accordingly.
8902         (sms_schedule): Allow move-scheduling to add a new first stage.
8903
8904 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8905
8906         * modulo-sched.c (ps_insn): Adjust comment.
8907         (ps_reg_move_info): New structure.
8908         (partial_schedule): Add reg_moves field.
8909         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
8910         (node_sched_params): Turn first_reg_move into an identifier.
8911         (ps_reg_move): New function.
8912         (ps_rtl_insn): Cope with register moves.
8913         (ps_first_note): Adjust comment and assert that the instruction
8914         isn't a register move.
8915         (node_sched_params): Replace with...
8916         (node_sched_param_vec): ...this vector.
8917         (set_node_sched_params): Adjust accordingly.
8918         (print_node_sched_params): Take a partial schedule instead of a ddg.
8919         Use ps_rtl_insn and ps_reg_move.
8920         (generate_reg_moves): Rename to...
8921         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
8922         move in the partial schedule, but don't emit it here.  Don't perform
8923         register substitutions here either.
8924         (apply_reg_moves): New function.
8925         (duplicate_insns_of_cycles): Use register indices directly,
8926         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
8927         (sms_schedule): Call schedule_reg_moves before committing to
8928         a partial schedule.  Try the next ii if the schedule fails.
8929         Use apply_reg_moves instead of generate_reg_moves.  Adjust
8930         call to print_node_sched_params.  Free node_sched_param_vec
8931         instead of node_sched_params.
8932         (create_partial_schedule): Initialize reg_moves.
8933         (free_partial_schedule): Free reg_moves.
8934
8935 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8936
8937         * modulo-sched.c (ps_insn): Replace node field with an identifier.
8938         (SCHED_ASAP): Replace with..
8939         (NODE_ASAP): ...this macro.
8940         (SCHED_PARAMS): New macro.
8941         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
8942         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
8943         (node_sched_params): Remove asap.
8944         (ps_rtl_insn, ps_first_note): New functions.
8945         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
8946         asap values.
8947         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
8948         (generate_reg_moves): Pass ids to the SCHED_* macros.
8949         (update_node_sched_params): Take a ps insn identifier rather than
8950         a node as parameter.  Use ps_rtl_insn.
8951         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
8952         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
8953         (optimize_sc): Update for above field and SCHED_* macro changes.
8954         Update calls to try_scheduling_node_in_cycle and
8955         update_node_sched_params.
8956         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
8957         macro changes.  Use ps_rtl_insn and ps_first_note.
8958         (sms_schedule): Pass ids to the SCHED_* macros.
8959         (get_sched_window): Adjust for above field and SCHED_* macro changes.
8960         Use NODE_ASAP instead of SCHED_ASAP.
8961         (try_scheduling_node_in_cycle): Remove node parameter.  Update
8962         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_* macros.
8963         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
8964         (ps_insert_empty_row): Adjust for above field changes.
8965         (compute_split_row): Use ids rather than nodes.
8966         (verify_partial_schedule): Adjust for above field changes.
8967         (print_partial_schedule): Use ps_rtl_insn.
8968         (create_ps_insn): Take an id rather than a node.
8969         (ps_insn_find_column): Adjust for above field changes.
8970         Use ps_rtl_insn.
8971         (ps_insn_advance_column): Adjust for above field changes.
8972         (add_node_to_ps): Remove node parameter.  Update call to
8973         create_ps_insn.
8974         (ps_has_conflicts): Use ps_rtl_insn.
8975         (ps_add_node_check_conflicts): Replace node parameter than an id.
8976
8977 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
8978
8979         * modulo-sched.c (undo_replace_buff_elem): Delete.
8980         (generate_reg_moves): Don't build and return an undo list.
8981         (free_undo_replace_buff): Delete.
8982         (sms_schedule): Adjust call to generate_reg_moves.
8983         Don't call free_undo_replace_buff.
8984
8985 2011-10-10  Matthias Klose <doko@ubuntu.com>
8986
8987         * common/config/m32c: Remove empty directory.
8988
8989 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8990
8991         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
8992
8993 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
8994
8995         PR target/50652
8996         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
8997         atmega164a to 0x100.
8998
8999 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
9000
9001         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
9002         the replacement if the conversion to the LHS type is not useless.
9003
9004 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
9005
9006         PR tree-optimization/50635
9007         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
9008         DEF_STMT to the list of statements to be replaced by the
9009         pattern statements.
9010         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
9011
9012 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
9013
9014         * system.h: Commit forgotten hunk in previous patch.
9015         (OUTPUT_ADDR_CONST_EXTRA): Poison.
9016
9017 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
9018
9019         PR libobjc/50428
9020         * doc/objc.texi (Garbage Collection): Updated example to protect
9021         +initialize against execution in subclasses.
9022
9023 2011-10-07  Richard Henderson  <rth@redhat.com>
9024
9025         * doc/extend.texi (__builtin_shuffle): Improve the description to
9026         include the modulus of the selector.  Mention OpenCL.
9027         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
9028
9029         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
9030         * genopinit.c (optabs): Rename vshuffle to vec_perm.
9031         * c-typeck.c (c_build_vec_perm_expr): Rename from
9032         c_build_vec_shuffle_expr.  Update for name changes.
9033         * optabs.c (expand_vec_perm_expr_p): Rename from
9034         expand_vec_shuffle_expr_p.
9035         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
9036         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
9037         (vec_perm_optab): Rename from vshuffle_optab.
9038         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
9039         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
9040         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
9041
9042         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
9043         ix86_expand_vshuffle.
9044         * config/i386/i386-protos.h: Update.
9045         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
9046         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
9047
9048 2011-10-07  Richard Henderson  <rth@redhat.com>
9049
9050         * config/i386/predicates.md (avx2_pblendw_operand): New.
9051         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
9052         (avx2_pblendw, *avx2_pblendw): New expander and insn.
9053
9054 2011-10-07  Richard Henderson  <rth@redhat.com>
9055
9056         * config/i386/i386.c (bdesc_args): Update code for
9057         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
9058         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
9059         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
9060         * config/i386/sse.md (mode iterator V16): Add V2TI.
9061         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
9062         (mode attr ssse3_avx2): Add V2TI.
9063         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
9064
9065 2011-10-07  David S. Miller  <davem@davemloft.net>
9066
9067         PR 50655
9068         * configure.ac: Add .register directives to VIS3 test.
9069         * configure: Regenerate.
9070
9071 2011-10-07  Richard Henderson  <rth@redhat.com>
9072
9073         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
9074
9075 2011-10-07  Richard Henderson  <rth@redhat.com>
9076
9077         PR 49752
9078         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
9079
9080 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
9081
9082         * config/arm/predicates.md (shift_amount_operand): Remove constant
9083         range check.
9084         (shift_operator): Check range of constants for all shift operators.
9085
9086 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9087
9088         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
9089         Load GOT pointer for non-pic builds.
9090         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
9091         (s390_emit_call): Likewise.
9092
9093 2011-10-07  Tom de Vries  <tom@codesourcery.com>
9094
9095         PR middle-end/50527
9096         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
9097         BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
9098         throw.
9099         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
9100         arglist.  Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
9101         (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
9102         (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
9103         * tree-ssa-ccp.c (evaluate_stmt): Set align for
9104         BUILT_IN_ALLOCA_WITH_ALIGN.
9105         (fold_builtin_alloca_for_var): Rename to ...
9106         (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
9107         BUILT_IN_ALLOCA_WITH_ALIGN argument.
9108         (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
9109         fold_builtin_alloca_with_align.
9110         (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
9111         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
9112         DEF_BUILTIN_STUB.
9113         * ipa-pure-const.c (special_builtin_state): Handle
9114         BUILT_IN_ALLOCA_WITH_ALIGN.
9115         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
9116         (call_may_clobber_ref_p_1): Same.
9117         * function.c (gimplify_parameters): Lower vla to
9118         BUILT_IN_ALLOCA_WITH_ALIGN.
9119         * gimplify.c (gimplify_vla_decl): Same.
9120         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
9121         * tree-mudflap.c (mf_xform_statements): Same.
9122         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
9123         (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
9124         * varasm.c (incorporeal_function_p): Same.
9125         * tree-object-size.c (alloc_object_size): Same.
9126         * gimple.c (gimple_build_call_from_tree): Same.
9127
9128 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
9129
9130         * function.c (frame_required_for_rtx): Remove function.
9131         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
9132         changed.  Compute a set of mentioned registers and compare against
9133         the new arg rather than calling frame_required_for_rtx.
9134         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
9135         reg set.  Convert the unconverted_simple_returns mechanism to store
9136         jump insns rather than their basic blocks.  Also check the
9137         orig_entry_edge destination for new blocks.
9138
9139 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
9140
9141         PR tree-optimization/50650
9142         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
9143         call vect_is_simple_cond here, instead fail if cond_expr isn't
9144         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
9145         for cond_expr's first operand.
9146         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
9147         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
9148
9149 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9150
9151         * config/s390/s390.md (DWH, dwh): New mode macros.
9152         ("umulsidi3"): Extend to support "umulditi3" as well.
9153
9154 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
9155             H.J. Lu  <hongjiu.lu@intel.com>
9156
9157         PR target/50603
9158         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
9159         integer PLUS RTX to a register to improve address combine.
9160
9161 2011-10-06  Richard Henderson  <rth@redhat.com>
9162
9163         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
9164         parameter; use it to decide whether to merge two notes.
9165         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
9166         for the deallocation case as well.
9167
9168 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
9169
9170         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
9171         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
9172         * doc/tm.texi: Regenerate.
9173         * target.def (output_addr_const_extra): Use
9174         hook_bool_FILEptr_rtx_false.
9175         * targhooks.c (default_asm_output_addr_const_extra): Remove.
9176         * targhooks.h (default_asm_output_addr_const_extra): Remove.
9177         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
9178         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
9179
9180 2011-10-06  David S. Miller  <davem@davemloft.net>
9181
9182         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
9183         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
9184         SI mode 64-bit code gen case explicitly zero-extend and truncate.
9185         (*popcount<mode>_sp64): Split up into...
9186         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
9187         SImode case use truncate.
9188         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
9189         subtract so the compiler can optimize it.
9190         (SIDI): Remove unused mode iterator.
9191
9192 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
9193
9194         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
9195         on the orig_entry_edge. Don't account for it in prologue_clobbered.
9196
9197 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
9198
9199         PR tree-optimization/50596
9200         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
9201         (NUM_PATTERNS): Change to 6.
9202         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
9203         function.
9204         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
9205         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
9206         if it already has one, and don't set STMT_VINFO_VECTYPE in it
9207         if it is already set.
9208         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
9209         COND_EXPR in pattern stmts.
9210         (vect_is_simple_cond): No longer static.
9211
9212 2001-10-06  Richard Henderson  <rth@redhat.com>
9213
9214         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
9215         * config/i386/sse.md (sseshuffint): Remove.
9216         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
9217         (VSHUFFLE_AVX2): New mode iterator.
9218         (vshuffle<mode>): Use it.
9219         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
9220
9221         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
9222         for vector_all_ones_operand.
9223         (ix86_expand_int_vcond): Distinguish between comparison mode
9224         and data mode.  Allow them to differ.
9225         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
9226
9227 2001-10-06  Richard Henderson  <rth@redhat.com>
9228
9229         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
9230         mask operand.  Tidy the code.
9231
9232 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
9233
9234         * tree-vect-patterns.c (vect_pattern_recog_1): Use
9235         vect_recog_func_ptr typedef for the first argument.
9236         (vect_pattern_recog): Rename vect_recog_func_ptr variable
9237         to vect_recog_func, use vect_recog_func_ptr typedef for it.
9238
9239         PR tree-optimization/49279
9240         * tree-ssa-structalias.c (find_func_aliases): Don't handle
9241         CAST_RESTRICT.
9242         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
9243         restrict propagation.
9244         * tree-ssa.c (useless_type_conversion_p): Don't return false
9245         if TYPE_RESTRICT differs.
9246
9247 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
9248
9249         * function.c (thread_prologue_and_epilogue_insns): Build a vector
9250         of unconverted simple return blocks rather than trying to
9251         recompute them later based on bb_flags bitmap tests.
9252
9253 2011-10-06  Michael Matz  <matz@suse.de>
9254
9255         * tree-flow.h (get_var_ann): Don't declare.
9256         * tree-flow-inline.h (get_var_ann): Remove.
9257         (set_is_used): Use var_ann, not get_var_ann.
9258         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
9259         * tree-profile.c (gimple_gen_edge_profiler): Call
9260         find_referenced_var_in.
9261         (gimple_gen_interval_profiler): Ditto.
9262         (gimple_gen_pow2_profiler): Ditto.
9263         (gimple_gen_one_value_profiler): Ditto.
9264         (gimple_gen_average_profiler): Ditto.
9265         (gimple_gen_ior_profiler): Ditto.
9266         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
9267         (gimple_gen_ic_func_profiler): Call add_referenced_var.
9268         * tree-mudflap.c (execute_mudflap_function_ops): Call
9269         add_referenced_var.
9270
9271 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
9272
9273         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
9274         don't set SSA_NAME_DEF_STMT that has been already set by
9275         gimple_build_assign_with_ops.
9276         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
9277         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
9278         Likewise.
9279
9280         * tree.h (avoid_folding_inline_builtin): New prototype.
9281         * builtins.c (avoid_folding_inline_builtin): No longer static.
9282         * gimple-fold.c (gimple_fold_builtin): Give up if
9283         avoid_folding_inline_builtin returns true.
9284
9285 2011-10-06  Richard Guenther  <rguenther@suse.de>
9286
9287         * tree-vect-generic.c (vector_element): Look at previous
9288         generated results.
9289
9290 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
9291
9292         PR target/39950
9293         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
9294         __powerpc__, __PPC__, __unix__.
9295
9296 2011-10-06  Michael Matz  <matz@suse.de>
9297
9298         * i386/i386.opt (recip_mask, recip_mask_explicit,
9299         x_recip_mask_explicit): New variables and cl_target member.
9300         (mrecip=): New option.
9301         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
9302         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
9303         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
9304         TARGET_RECIP_VEC_SQRT): New tests.
9305         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
9306         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
9307         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
9308         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
9309         * i386/i386.c (ix86_option_override_internal): Set recip_mask
9310         for -mrecip and -mrecip=options.
9311         (ix86_function_specific_save): Save recip_mask_explicit.
9312         (ix86_function_specific_restore): Restore recip_mask_explicit.
9313
9314         * doc/invoke.texi (ix86 Options): Document the new option.
9315
9316 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
9317
9318         PR target/49049
9319         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
9320
9321 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
9322
9323         PR target/50305
9324         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
9325         output of a previous pass through legitimize_reload_address.
9326         Do not attempt to optimize addresses if the base register is
9327         equivalent to a constant.
9328
9329 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9330
9331         * function.c (thread_prologue_and_epilogue_insns): Mark
9332         last_bb_active as possibly unused.  It is unused for targets which
9333         do neither have "return" nor "simple_return" expanders.
9334
9335 2011-10-06  Richard Guenther  <rguenther@suse.de>
9336
9337         * fold-const.c (fold_ternary_loc): Also fold non-constant
9338         vector CONSTRUCTORs.  Make more efficient.
9339         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
9340         (cprop_into_stmt): Don't propagate into virtual operands.
9341         (optimize_stmt): Really dump original statement.
9342
9343 2011-10-06  Nick Clifton  <nickc@redhat.com>
9344
9345         * config/rx/rx.md (smin3): Revert previous delta.
9346
9347 2011-10-06  Richard Guenther  <rguenther@suse.de>
9348
9349         PR tree-optimization/38884
9350         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
9351         reads from aggregate SSA names.
9352
9353 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
9354
9355         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
9356         argument, truncate it at the beginning instead of allocating there
9357         and freeing at the end.
9358         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
9359         pass its address to vect_pattern_recog_1.
9360
9361 2011-10-05  David S. Miller  <davem@davemloft.net>
9362
9363         * config/sparc/sparc.opt (POPC): New option.
9364         * doc/invoke.texi: Document it.
9365         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
9366         default on Niagara-2 and later.
9367         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
9368         * config/sparc/sparc.md (SIDI): New mode iterator.
9369         (ffsdi2): Delete commented out pattern and comments.
9370         (popcount<mode>2, clz<mode>2): New expanders.
9371         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
9372         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
9373
9374 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
9375
9376         PR middle-end/50607
9377         * c-tree.h (c_expr_t): New typedef for struct c_expr.
9378         (C_EXPR_APPEND): New macro.
9379         * c-parser.c (c_parser_get_builtin_args): Preserve
9380         original_tree_code of c_expr structure.
9381         (c_parser_postfix_expression): Adjust to the new function.
9382
9383 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
9384
9385         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
9386         if profiling after the prologue.
9387
9388 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
9389
9390         PR tree-optimization/50613
9391         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
9392         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
9393         and if it is neither that not SSA_NAME, give up.
9394
9395 2011-10-05  Richard Henderson  <rth@redhat.com>
9396
9397         * tree-vect-generic.c (vector_element): Never fail.  Use
9398         build_zero_cst.  Tidy up type references.
9399         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
9400         code duplication.  Do update_stmt here ...
9401         (expand_vector_operations_1): ... not here.
9402
9403         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
9404         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
9405         duplication.  Handle V2DI without SSE4.1.
9406         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
9407         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
9408
9409 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
9410
9411         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
9412         of "found".  Simplify return value calculation.
9413         (distance_agu_use): Ditto.
9414
9415 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
9416
9417         PR bootstrap/50621
9418         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
9419         if the function was not shrink-wrapped.
9420         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
9421         to an insn.
9422         * function.c (thread_prologue_and_epilogue_insns): Make sure the
9423         shrink_wrapped flag is set even if there is no dump file.
9424
9425 2011-10-05  DJ Delorie  <dj@redhat.com>
9426             Nick Clifton  <nickc@redhat.com>
9427
9428         * config/rx/rx.opt (mpid): Define.
9429         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
9430         (MULTILIB_DIRNAMES): Add pid.
9431         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
9432         (rx_num_interrupt_regs): New variable.
9433         (rx_gp_base_regnum): New function.  Returns the number of the
9434         small data area register.
9435         (rx_pid_base_regnum): New function.  Returns the number of the pid
9436         base register.
9437         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
9438         (rx_pid_data_operand): New function.  Returns whether an object is
9439         in the position independent data area.
9440         (rx_legitimize_address): New function.  Puts undecided PID
9441         objects in the PID data area.
9442         (rx_is_legitimate_address): Add support for PID operands.
9443         (rx_print_operand_address): Likewise.
9444         (rx_print_operand): Likewise.
9445         (rx_maybe_pidify_operand): New function.  Determine if an operand
9446         is suitable for PID addressing.
9447         (rx_gen_move_template): Add PID support.
9448         (rx_conditional_register_usage): Likewise.
9449         (rx_option_override): Initialise rx_num_interrupt_regs.
9450         (rx_is_legitimate_constant): Add support for PID constants.
9451         (TARGET_LEGITIMIZE_ADDRESS): Define.
9452         * config/rx/constraints.md (Rpid): Define.
9453         (Rpda): Define.
9454         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
9455         (tablejump): Add PID support.
9456         (mov<>): Likewise.
9457         (mov<>_internal): Likewise.
9458         (addsi3): Convert to an expander.  Add PID support.
9459         (pid_addr): New pattern.
9460         * config/rx/rx.h (CPP_SPEC): Define.
9461         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
9462         (CASE_VECTOR_PC_RELATIVE): Define.
9463         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
9464         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
9465         * doc/invoke.texi (RX Options): Document -mpid command line option.
9466
9467 2011-10-05  Richard Guenther  <rguenther@suse.de>
9468
9469         PR tree-optimization/38885
9470         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
9471         from constants.
9472
9473 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
9474
9475         * doc/invoke.texi (-fshrink-wrap): Document.
9476         * opts.c (default_options_table): Add it.
9477         * common.opt (fshrink-wrap): Add.
9478         * function.c (emit_return_into_block): Remove useless declaration.
9479         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
9480         requires_stack_frame_p, gen_return_pattern): New static functions.
9481         (emit_return_into_block): New arg simple_p.  All callers changed.
9482         Use gen_return_pattern.
9483         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
9484         * config/i386/i386.md (return): Expand into a simple_return.
9485         (simple_return): New expander):
9486         (simple_return_internal, simple_return_internal_long,
9487         simple_return_pop_internal_long, simple_return_indirect_internal):
9488         Renamed from return_internal, return_internal_long,
9489         return_pop_internal_long and return_indirect_internal; changed to use
9490         simple_return.
9491         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
9492         simple returns.
9493         (ix86_pad_returns): Likewise.
9494         * function.h (struct rtl_data): Add member shrink_wrapped.
9495         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
9496         are not jumps or sibcalls can't be compared.
9497
9498 2011-10-05  Richard Guenther  <rguenther@suse.de>
9499
9500         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
9501         vector type.
9502         (simplify_unary_expression): Handle BIT_FIELD_REFs.
9503         (try_to_simplify): Handle BIT_FIELD_REFs.
9504
9505 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
9506
9507         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
9508         * config/avr/avr.c (avr_out_addto_sp): New function.
9509         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
9510         * config/avr/avr.md (adjust_len): Add "addto_sp".
9511         (*movhi_sp): Remove insn.
9512         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
9513
9514 2011-10-05  Richard Guenther  <rguenther@suse.de>
9515
9516         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
9517         with an embedded expression valueize and fold that as well.
9518         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
9519         results from gimple_fold_stmt_to_constant_1.
9520
9521 2011-10-05  Nick Clifton  <nickc@redhat.com>
9522
9523         * config/rx/rx.md (tablejump): Add missing label.
9524         (adddi3_internal): Mark operand 0 as early-clobbered.
9525         (smaxsi3): Revert previous delta.
9526         (adc_internal): Fix whitespace in generated asm.
9527         (adc_flags): Likewise.
9528
9529 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9530
9531         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
9532         with the new widening_optab_handler.
9533
9534 2011-10-05  Richard Guenther  <rguenther@suse.de>
9535
9536         PR tree-optimization/50609
9537         * gimple-fold.c (fold_array_ctor_reference): Also handle
9538         vector typed constructors.
9539         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
9540         for vector typed constructors.
9541
9542 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
9543
9544         * config/i386/i386.c (ix86_emit_binop): New static function.
9545         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
9546         instructions.
9547         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
9548
9549 2011-10-04  David S. Miller  <davem@davemloft.net>
9550
9551         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
9552         UNSPEC_XMUL): New unspecs.
9553         (muldi3_v8plus): Use output_v8plus_mult.
9554         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
9555         New VIS 3.0 combiner patterns.
9556         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
9557         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
9558         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
9559         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
9560         builtins patterns.
9561         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
9562         (output_v8plus_mult): New function.
9563         * config/sparc/sparc-protos.h: Declare it.
9564         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
9565         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
9566         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
9567         * doc/extend.texi: Document new builtins.
9568
9569 2011-10-04  Richard Henderson  <rth@redhat.com>
9570
9571         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
9572         Avoid save_expr unless two_arguments.
9573
9574 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
9575
9576         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
9577         * config/i386/mingw32.h (CPP_SPEC): Likewise.
9578
9579 2011-10-04  David S. Miller  <davem@davemloft.net>
9580
9581         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
9582         under Linux.
9583
9584 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
9585
9586         PR tree-optimization/50604
9587         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
9588         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
9589         last argument to memcpy has size_type_node type instead of ssizetype.
9590         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
9591         instead of TREE_TYPE (len) as type for newlen.
9592
9593         PR tree-optimization/50522
9594         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
9595         TYPE_RESTRICT.
9596         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
9597         unconditionally.
9598
9599         * fold-const.c (fold_unary_loc): Don't optimize
9600         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
9601         casting the inner pointer if it isn't TYPE_RESTRICT.
9602         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
9603         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
9604
9605 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
9606
9607         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
9608
9609 2011-10-04  Jan Hubicka  <jh@suse.cz>
9610
9611         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
9612         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
9613         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
9614         * lto-cgraph.c (order_base): New static var.
9615         (lto_output_node): Stream in order.
9616         (lto_output_varpool_node): Stream out order.
9617         (input_node): Stream in order.
9618         (input_varpool_node): Stream out order.
9619         (input_cgraph_1): Initialize order base; update call of
9620         lto_input_toplevel_asms.
9621
9622 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
9623
9624         PR target/50566
9625         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
9626         prototype.
9627         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
9628         from here...
9629         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
9630         function.  Log if avr_log.legitimize_reload_address.
9631
9632 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
9633
9634         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
9635
9636 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9637
9638         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
9639         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
9640
9641 2011-10-03  David S. Miller  <davem@davemloft.net>
9642
9643         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
9644         GSR_REG an input operand to UNSPEC instead of a parallel USE.
9645         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
9646         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
9647         Reference GSR_REG in DI mode, simplify convoluted expressions by using
9648         zero_extract.
9649         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
9650
9651 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
9652
9653         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
9654
9655 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
9656             Ian Lance Taylor  <iant@google.com>
9657
9658         * godump.c (go_output_typedef): Support printing enum values that
9659         don't fit in a signed HOST_WIDE_INT.
9660
9661 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
9662
9663         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
9664         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9665         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9666         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
9667
9668 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
9669
9670         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
9671         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9672         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9673         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
9674
9675 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
9676
9677         PR target/49967
9678         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
9679         (gcc_cv_ld_static_option): Ditto.
9680         (gcc_cv_ld_dynamic_option): Ditto.
9681         * configure: Regenerate.
9682
9683 2011-10-03  David S. Miller  <davem@davemloft.net>
9684
9685         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
9686         and 'si' patterns which describe the GSR changes explicitly in the
9687         RTL using zero_extract.
9688         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
9689
9690         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
9691         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
9692
9693 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
9694
9695         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
9696         if given expression can be expanded by the target.
9697         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
9698         using target vector instructions.
9699         * optabs.h: New optab vshuffle.
9700         (expand_vec_shuffle_expr_p): New prototype.
9701         (expand_vec_shuffle_expr): New prototype.
9702         (vshuffle_optab): New optab.
9703         * genopinit.c: Adjust to support vecshuffle.
9704         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
9705         * expr.c (expand_expr_real_2): Adjust.
9706         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
9707         recognizing the cases of two and three arguments.
9708         (convert_arguments) (build_binary_op)
9709         (scalar_to_vector) (build_array_ref): Spurious whitespace.
9710         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
9711         * tree.def: New tree code VEC_SHUFFLE_EXPR.
9712         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
9713         * tree-vect-generic.c (vector_element): New function. Returns an
9714         element of the vector at the given position.
9715         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
9716         by the backend or expand an expression piecewise.
9717         (expand_vector_operations_1): Adjusted.
9718         (gate_expand_vector_operations_noop): New gate function.
9719         * Makefile.in (tree-vect-generic.o): New include.
9720         * gimple.c (get_gimple_rhs_num_ops): Adjust.
9721         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
9722         * passes.c: Move veclower down.
9723         * tree-pretty-print.c (dump_generic_node): Recognize
9724         VEC_SHUFFLE_EXPR as valid expression.
9725         * c-parser.c (c_parser_get_builtin_args): Helper function for the
9726         builtins with variable number of arguments.
9727         (c_parser_postfix_expression): Use a new helper function for
9728         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
9729         * tree-ssa-operands: Adjust.
9730         * c-family/c-common.c: New __builtin_shuffle keyword.
9731         * c-family/c-common.h: New __builtin_shuffle keyword.
9732         * gcc/doc/extend.texi: Adjust.
9733
9734         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
9735         between the vector and the type of the mask when shuffling.
9736         (vecshuffle<mode>): New expansion.
9737         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
9738         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
9739         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
9740
9741 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
9742
9743         PR tree-optimization/50587
9744         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
9745         arg0 is not a SSA_NAME.
9746
9747 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
9748
9749         * ipa-inline-analysis.c (MAX_TIME): Update comment.
9750
9751 2011-10-02  Richard Henderson  <rth@redhat.com>
9752             David S. Miller  <davem@davemloft.net>
9753
9754         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
9755         conditional insn type setting, we always emit a shift.
9756         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
9757         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
9758         * config/sparc/predicates.md (const_one_operand): Delete.
9759
9760 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
9761
9762         * invoke.texi (SPARC Options): Refer to GNU/Linux.
9763
9764 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
9765
9766         * config/mips/mips.c (mips_frame_barrier): New function.
9767         (mips_expand_prologue): Call it after allocating stack space.
9768         (mips_deallocate_stack): New function.
9769         (mips_expand_epilogue): Call mips_frame_barrier and
9770         mips_deallocate_stack.
9771
9772 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
9773
9774         PR target/49696
9775         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
9776         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
9777         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
9778
9779 2011-10-02  Jan Hubicka  <jh@suse.cz>
9780
9781         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
9782
9783         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
9784         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
9785         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
9786         functions are reachable when address is taken.
9787         * tree-sra.c (modify_function): Free dominance info.
9788
9789 2011-10-02  Jan Hubicka  <jh@suse.cz>
9790
9791         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
9792
9793         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
9794         (reset_inline_summary): New function.
9795         (compute_inline_parameters, inline_node_removal_hook,
9796         inline_edge_removal_hook): Use it.
9797         (inline_free_summary): Reset holders correctly.
9798         (inline_generate_summary): Free summary before computing it.
9799
9800 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
9801
9802         PR preprocessor/36819
9803         * incpath.c (merge_include_chains): Call free_path on
9804         heads[QUOTE] and tails[QUOTE].
9805
9806 2011-10-02  Jan Hubicka  <jh@suse.cz>
9807
9808         PR lto/47247
9809         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
9810         when resolution is already availbale from plugin.
9811         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
9812         * cgraph.c (ld_plugin_symbol_resolution): Add
9813         prevailing_def_ironly_exp.
9814         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
9815         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
9816         externally visible.
9817         * varasm.c (resolution_to_local_definition_p): Add
9818         LDPR_PREVAILING_DEF_IRONLY_EXP.
9819         (resolution_local_p): Likewise.
9820
9821 2011-10-01  David S. Miller  <davem@davemloft.net>
9822
9823         * config/sparc/sparc.opt (VIS3): New option.
9824         * doc/invoke.texi: Document it.
9825         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
9826         not capable of such instructions.
9827         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
9828         to 0x300 when TARGET_VIS3.
9829         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
9830         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
9831         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
9832         (V64N8, VASS): New mode iterators.
9833         (vis3_shift, vis3_addsub_ss): New code iterators.
9834         (vbits, vconstr): New mode attributes.
9835         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
9836         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
9837         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
9838         fmean16_vis, fpadd64_vis, fpsub64_vis,
9839         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
9840         VIS 3.0 instruction patterns.
9841         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
9842         default when targetting capable cpus.  TARGET_VIS3 implies
9843         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
9844         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
9845         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
9846         is ignored.
9847         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
9848         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
9849         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
9850         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
9851         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
9852         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
9853         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
9854         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
9855         * doc/extend.texi: Document new VIS 3.0 builtins.
9856
9857 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
9858
9859         * ira-color.c (assign_hard_reg): Fix typo.
9860
9861 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
9862
9863         * doc/extend.texi: Add missing ','.
9864
9865 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
9866
9867         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
9868         Enable -fmodulo-sched at -O2 and above.
9869         * config/c6x/c6x.md (doloop_end): New expander.
9870         (mvilc, sploop, spkernel, loop_end): New patterns.
9871         (loop_end with memory destination splitter): New.
9872         * config/c6x/c6x.c: Include "hw-doloop.h".
9873         (enum unitreqs): New.
9874         (unit_req_table): New typedef.
9875         (unit_reqs): New static variable.
9876         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
9877         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
9878         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
9879         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
9880         (struct c6x_sched_context): New member last_scheduled_iter0.
9881         (init_sched_state): Initialize it.
9882         (c6x_variable_issue): Update it.
9883         (sploop_max_uid_iter0): New static variable.
9884         (c6x_sched_reorder_1): Be careful about issuing sploop.
9885         (c6x_reorg): Call c6x_hwlooops before the final schedule.
9886
9887 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
9888
9889         PR target/50566
9890         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
9891         * config/avr/avr.c (avr_address_cost): Use it.
9892         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
9893         (avr_log_vadump): Unknown %-codes finish printing.
9894
9895 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
9896
9897         PR inline-asm/50571
9898         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
9899         input constraints allow mem and not reg, pass true instead of
9900         false as second argument to maybe_fold_reference.
9901
9902         PR tree-optimization/46309
9903         * fold-const.c (make_range, merge_ranges): Remove prototypes.
9904         (make_range_step): New function.
9905         (make_range): Use it.
9906         * tree.h (make_range_step): New prototypes.
9907         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
9908         * tree-ssa-reassoc.c: Include diagnostic-core.h.
9909         (struct range_entry): New type.
9910         (init_range_entry, range_entry_cmp, update_range_test,
9911         optimize_range_tests): New functions.
9912         (reassociate_bb): Call optimize_range_tests.
9913
9914 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
9915             Richard Guenther  <rguenther@suse.de>
9916
9917         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
9918         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
9919         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
9920         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
9921         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
9922         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
9923
9924 2011-09-30  Jan Beulich  <jbeulich@suse.com>
9925
9926         * lto-cgraph.c (output_cgraph): Remove processing of
9927         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
9928         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
9929         lto_input_toplevel_asms() instead.
9930         * lto-section-in.c (lto_section_name): Add "asm" entry.
9931         * lto-streamer-in.c (lto_input_toplevel_asms): New.
9932         * lto-streamer-out.c (lto_output_toplevel_asms): New.
9933         * lto-streamer.h (LTO_minor_version): Bump.
9934         (enum lto_section_type): Add LTO_section_asm.
9935         (struct lto_asm_header): New.
9936         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
9937         * tree-streamer.h (streamer_write_string_cst): Declare.
9938         * tree-streamer-out.c (write_string_cst): Rename to
9939         streamer_write_string_cst and make global. Handle incoming string
9940         being NULL.
9941         (streamer_write_tree_header): Adjust call to renamed function.
9942
9943 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
9944
9945         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
9946         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
9947         modulo_last_stage): New static variables.
9948         (set_modulo_params, discard_delay_pairs_above): New functions.
9949         (struct delay_pair): New member stages.
9950         (htab_i2_traverse, htab_i1_traverse): New static functions.
9951         (record_delay_slot_pair): New arg stages.  All callers changed.
9952         Record it.
9953         (pair_delay): Take stages into account.
9954         (add_delay_dependencies): Don't do so for stage pairs.
9955         (struct sched_block_state): New member modulo_epilogue.
9956         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
9957         (unschedule_insns_until): Decrease modulo_insns_scheduled.
9958         Set HARD_DEP without using or.
9959         (resolve_dependencies): New static function.
9960         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
9961         If it is true, allow only insns with INSN_EXACT_TICK set.
9962         (schedule_block): Return bool, always true for normal scheduling,
9963         true or false depending on modulo scheduling success otherwise.
9964         Add bookkeeping for modulo scheduling, and call resolve_dependencies
9965         on everything left over after a modulo schedule.
9966         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
9967         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
9968         declarations.
9969         (set_modulo_params, discard_delay_pairs_above): Declare.
9970         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
9971         * doc/invoke.texi (--param): Document it.
9972
9973         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
9974         New arg modulo_scheduling.  All callers changed.  Move note handling
9975         code here from schedule_ebbs.
9976         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
9977         out of schedule_ebbs.
9978         (schedule_ebbs): Call them.  Remove note handling code moved to
9979         schedule_ebb.
9980         * sched-int.h (schedule_ebb, schedule_ebbs_init,
9981         schedule_ebbs_finish): Declare.
9982
9983 2011-09-30  Richard Guenther  <rguenther@suse.de>
9984
9985         PR middle-end/50574
9986         * tree-cfg.c (verify_gimple_comparison): Compare component
9987         mode sizes for vector comparisons.
9988
9989 2011-09-30  Revital Eres  <revital.eres@linaro.org>
9990
9991         * ddg.c (autoinc_var_is_used_p): New function.
9992         (create_ddg_dep_from_intra_loop_link,
9993         add_cross_iteration_register_deps): Call it.
9994         * ddg.h (autoinc_var_is_used_p): Declare.
9995         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
9996         (sms_schedule): Handle instructions with REG_INC.
9997
9998 2011-09-30  Revital Eres  <revital.eres@linaro.org>
9999
10000         * modulo-sched.c (generate_reg_moves): Skip instructions that
10001         do not set a register and verify no regmoves are created for
10002         !single_set instructions.
10003
10004 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
10005
10006         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
10007         insns.
10008
10009 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10010
10011         PR target/50099
10012         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
10013         (qhs_zextenddi_op): New.
10014         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
10015         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
10016         Distinguish between ARM and Thumb2 states.
10017
10018 2011-09-30  David S. Miller  <davem@davemloft.net>
10019
10020         * config/sparc/sparc.opt (VIS2): New option.
10021         * doc/invoke.texi: Document it.
10022         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
10023         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
10024         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
10025         (define_attr type): New insn type 'edgen'.
10026         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
10027         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
10028         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
10029         patterns.
10030         * niagara.md: Handle edgen.
10031         * niagara2.md: Likewise.
10032         * ultra1_2.md: Likewise.
10033         * ultra3.md: Likewise.
10034         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
10035         to 0x200 when TARGET_VIS2.
10036         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
10037         default when targetting capable cpus.  TARGET_VIS2 implies
10038         TARGET_VIS, clear and it when TARGET_FPU is disabled.
10039         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
10040         (sparc_expand_builtin): Fix predicate indexing when builtin returns
10041         void.
10042         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
10043         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
10044         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
10045         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
10046         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
10047         * doc/extend.texi: Document new VIS 2.0 builtins.
10048
10049 2011-09-29  Nick Clifton  <nickc@redhat.com>
10050             Bernd Schmidt  <bernds@codesourcery.com>
10051
10052         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
10053         * config/frv/frvend.c: Likewise.
10054         * config/frv/frv.c (frv_function_prologue): Move misplaced
10055         CALL_ARG_LOCATION notes back to their proper locations.
10056
10057 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
10058
10059         PR target/50566
10060         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
10061         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
10062         from avr_rtx_costs.
10063         (avr_legitimate_address_p): Use avr_edump to print log information
10064         filtered by avr_log.
10065         (extra_constraint_Q): Ditto.
10066         (avr_legitimize_address): Ditto.
10067         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
10068         (final_prescan_insn): Use avr_log.rtx_costs as filter.
10069
10070 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
10071
10072         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
10073         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
10074         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
10075         NEON vector and structure modes to be tied.
10076
10077 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10078
10079         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
10080         forward declaration.
10081         (remove_duplicate_close_phi): Detect and repair creation of
10082         duplicate close-phis for a containing loop.
10083
10084 2011-09-27  Andi Kleen  <ak@linux.intel.com>
10085
10086         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
10087         /dev/urandom.  Add getpid call.
10088         (compare_debug_dump_opt_spec_function): Drop getpid call.
10089
10090 2011-09-26  Andi Kleen  <ak@linux.intel.com>
10091
10092         * toplev.c (init_local_tick): Try reading random seed
10093         from /dev/urandom.
10094
10095 2011-09-26  Andi Kleen  <ak@linux.intel.com>
10096
10097         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
10098         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
10099         Handle numerical random seed.
10100         * lto-streamer.h (lto_file_decl_data): Change id to
10101         unsigned HOST_WIDE_INT.
10102         * toplev.c (random_seed): Add.
10103         (init_random_seed): Change for numerical random seed.
10104         (get_random_seed): Return as HOST_WIDE_INT.
10105         (set_random_seed): Crc32 existing string.
10106         * toplev.h (get_random_seed): Change to numercal return.
10107         * tree.c (get_file_function_name): Remove CRC. Handle
10108         numerical random seed.
10109
10110 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
10111
10112         PR target/50566
10113         * config.gcc (extra_objs): Add avr-log.o for $target in:
10114         avr-*-rtems*, avr-*-*.
10115         * config/avr/t-avr (avr-log.o): New rule to compile...
10116         * config/avr/avr-log.c: ...this new file.
10117         * config/avr/avr.opt (mlog=): New option.
10118         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
10119         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
10120         (avr_log_set_avr_log): New prototype.
10121         (avr_log_t): New typedef.
10122         (avr_log): New declaration.
10123         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
10124
10125 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
10126
10127         * expr.c (do_store_flag): Expand vector comparison by
10128         building an appropriate VEC_COND_EXPR.
10129         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
10130         (c_objc_common_truthvalue_conversion): Adjust.
10131         * tree-vect-generic.c (do_compare): Helper function.
10132         (expand_vector_comparison): Check if hardware supports
10133         vector comparison of the given type or expand vector piecewise.
10134         (expand_vector_operation): Treat comparison as binary
10135         operation of vector type.
10136         (expand_vector_operations_1): Adjust.
10137
10138 2011-09-29  Richard Guenther  <rguenther@suse.de>
10139
10140         * tree.c (build_opaque_vector_type): Make opaque vectors
10141         variant types of the corresponding non-opaque type.  Make
10142         sure to share opaque vector types properly.
10143
10144 2011-09-29  David S. Miller  <davem@davemloft.net>
10145
10146         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
10147         UNSPEC_ARRAY32): New unspec.
10148         (define_attr type): New type 'array'.
10149         (array{8,16,32}<P:mode>_vis): New patterns.
10150         * config/sparc/ultra1_2.md: Add reservations for 'array'.
10151         * config/sparc/ultra3.md: Likewise.
10152         * config/sparc/niagara.md: Likewise.
10153         * config/sparc/niagara2.md: Likewise.
10154         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
10155         array builtins.
10156         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
10157         __vis_array32): New.
10158         * doc/extend.texi: Document new VIS builtins.
10159
10160         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
10161         (VIS pixel-compare insn): Just use <gcond:name>.
10162
10163         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
10164         code iterator used, so just use <code>.  There are two mode iterators
10165         so explicitly use <GCM:gcm_name>.
10166
10167 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
10168
10169         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
10170         Darwin >= 9.
10171
10172 2011-09-28  David S. Miller  <davem@davemloft.net>
10173
10174         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
10175         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
10176         (UNSPEC_FCMP): New unspec.
10177         (gcond): New code iterator.
10178         (gcond_name): New code attr.
10179         (GCM): New mode iterator.
10180         (gcm_name): New mode attr.
10181         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
10182
10183 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
10184
10185         PR target/49486
10186         * config/sh/sh.md (negdi2): Move expansion into split to
10187         allow more combination options.  Add T_REG clobber.
10188         (abssi2): New expander.
10189         (*negdi2, *abssi2, *negabssi2): New insns.
10190         (cneg): Change from insn to insn_and_split.  Rename to
10191         negsi_cond.  Add alternative for non-SH4.
10192
10193 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
10194
10195         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
10196         (neon_move_hi_quad_<mode>): Likewise.
10197         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
10198
10199 2011-09-28  Nick Clifton  <nickc@redhat.com>
10200
10201         * config/rx/predicates.md (rx_minmax_operand): New predicate.
10202         Accepts immediates and a restricted subset of MEMs.
10203         * config/rx/rx.md (int_modes): New iterator.
10204         (smaxsi3, sminsi3): Delete and replace with...
10205         (smax<int_mode>3, smin<int_mode>3): New patterns.
10206         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
10207
10208 2011-09-28  Richard Guenther  <rguenther@suse.de>
10209
10210         PR middle-end/50460
10211         * fold-const.c (try_move_mult_to_index): Handle &a.array the
10212         same as &a.array[0].
10213
10214 2011-09-28  Kai Tietz  <ktietz@redhat.com>
10215
10216         * configure.ac: Add test for new section attribute
10217         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
10218         * config.in: Regenerated.
10219         * configure: Regenerated.
10220         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
10221         new section flag "e" for excluded sections, if supported.
10222         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
10223
10224 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
10225
10226         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
10227         throughout file.
10228
10229 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
10230
10231         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
10232         throughout file.
10233
10234 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
10235
10236         * output.h (SECTION_EXCLUDE): New macro.
10237         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
10238
10239 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
10240
10241         * fwprop.c (forward_propagate_and_simplify): After checking
10242         reg/subreg combinations, check whether the modes are the same.
10243
10244 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
10245             Richard Sandiford  <rdsandiford@googlemail.com>
10246
10247         * config/mips/mips.c (mips_add_cfa_restore): New function.
10248         (mips16e_save_restore_reg): Use it.
10249         (mips_restore_reg): Likewise.  Split double FPRs for
10250         REG_CFA_RESTORE notes.
10251
10252 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
10253
10254         PR middle-end/50386
10255         PR middle-end/50326
10256         * tree-sra.c (build_ref_for_model): Use the type of the field as
10257         the type of the COMPONENT_REF.
10258
10259 2011-09-27  Jeff Law  <law@redhat.com>
10260
10261         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
10262         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
10263         (find_if_case_1): Use the probability of the THEN clause when
10264         determining if speculation is profitable.
10265         (find_if_case_2): Similarly for the ELSE clause.
10266
10267 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
10268
10269         * common.opt: Add -foptimize-strlen option.
10270         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
10271         (tree-sssa-strlen.o): Add dependencies.
10272         * opts.c (default_options_table): Enable -foptimize-strlen
10273         by default at -O2 if not -Os.
10274         * passes.c (init_optimization_passes): Add pass_strlen
10275         after pass_object_sizes.
10276         * timevar.def (TV_TREE_STRLEN): New timevar.
10277         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
10278         * tree-pass.h (pass_strlen): Declare.
10279         * tree-ssa-strlen.c: New file.
10280         * c-decl.c (merge_decls): If compatible stpcpy prototype
10281         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
10282
10283 2011-09-27  Tom de Vries  <tom@codesourcery.com>
10284
10285         PR middle-end/43864
10286         * tree-ssa-tail-merge.c: New file.
10287         (struct same_succ_def): Define.
10288         (same_succ, const_same_succ): New typedef.
10289         (struct bb_cluster_def): Define.
10290         (bb_cluster, const_bb_cluster): New typedef.
10291         (struct aux_bb_info): Define.
10292         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
10293         (gvn_uses_equal): New function.
10294         (same_succ_print, same_succ_print_traverse, update_dep_bb)
10295         (stmt_update_dep_bb, local_def, same_succ_hash)
10296         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
10297         (same_succ_reset): New function.
10298         (same_succ_htab, same_succ_edge_flags)
10299         (deleted_bbs, deleted_bb_preds): New var.
10300         (debug_same_succ): New function.
10301         (worklist): New var.
10302         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
10303         (init_worklist, delete_worklist, delete_basic_block_same_succ)
10304         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
10305         (print_cluster, debug_cluster, update_rep_bb)
10306         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
10307         (all_clusters): New var.
10308         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
10309         (merge_clusters, set_cluster): New function.
10310         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
10311         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
10312         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
10313         (find_clusters_1, find_clusters): New function.
10314         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
10315         (update_bbs): New var.
10316         (apply_clusters): New function.
10317         (update_debug_stmt, update_debug_stmts): New function.
10318         (tail_merge_optimize): New function.
10319         tree-pass.h (tail_merge_optimize): Declare.
10320         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
10321         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
10322         (tree-ssa-tail-merge.o): New rule.
10323         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
10324         default at OPT_LEVELS_2_PLUS.
10325         * tree-ssa-sccvn.c (vn_valueize): Move to ...
10326         * tree-ssa-sccvn.h (vn_valueize): Here.
10327         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
10328         * common.opt (ftree-tail-merge): New switch.
10329         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
10330         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
10331         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
10332         (-ftree-tail-merge, max-tail-merge-comparisons)
10333         (max-tail-merge-iterations): New item.
10334
10335 2011-09-27  Jan Hubicka  <jh@suse.cz>
10336
10337         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
10338
10339 2011-09-27  Jan Hubicka  <jh@suse.cz>
10340
10341         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
10342         parameters passed by reference; handle loads from non-SSA scalars
10343         and update comments.
10344
10345 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
10346
10347         PR rtl-optimization/50249
10348         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
10349         instead of opnum and type.  All callers changed.  Remove useless
10350         declaration.
10351         Search forward for other reloads of the same type for the same operand
10352         using the same register; if any are found, return false.
10353         (reload_regs_reach_end_p): Same argument changes; all callers changed.
10354
10355 2011-09-27  Andi Kleen  <ak@linux.intel.com>
10356             Jan Hubicka  <jh@suse.cz>
10357
10358         * doc/invoke.texi (ffat-lto-objects): Document.
10359         * toplev.c (compile_file): Do not output assembly when doing slim lto;
10360         Output __gnu_slim_lto when doing slim lto.
10361         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
10362         (cgraph_optimize): Return early when doing slim lto.
10363         * opts.c (finish_options): Complain about lack of linker plugin
10364         when doing slim lto.
10365         * common.opt (ffat-lto-objects): New.
10366
10367 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
10368
10369         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
10370         between signed and unsigned.
10371
10372 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
10373
10374         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
10375         vectorization.
10376         (vectorizable_type_promotion): Likewise.
10377         (vect_analyze_stmt): Call vectorizable_type_demotion and
10378         vectorizable_type_promotion for basic blocks.
10379         (supportable_widening_operation): Don't assume loop vectorization.
10380         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
10381         basic blocks.  Update vectorization factor for basic block
10382         vectorization.
10383         (vect_analyze_slp_instance): Allow multiple types for basic block
10384         vectorization.  Recheck unrolling factor after construction of SLP
10385         instance.
10386
10387 2011-09-27  Richard Guenther  <rguenther@suse.de>
10388
10389         * tree-object-size.c (compute_object_sizes): Fix dumping of
10390         folded statement.
10391
10392 2011-09-27  Richard Guenther  <rguenther@suse.de>
10393
10394         PR tree-optimization/50363
10395         * tree-ssa-pre.c (create_expression_by_pieces): Handle
10396         pointer conversions in POINTER_PLUS_EXPRs properly.
10397
10398 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
10399
10400         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
10401         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
10402         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
10403         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
10404         that produce subreg moves.  Define using VQX iterators.
10405
10406 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
10407
10408         * config/avr/avr.md (ashrqi3): Split alternative "n"
10409         into its remaining parts C03, C04, C05, C06, C07 and describe
10410         impact in CC by attribute "cc" appropriately.
10411         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
10412         by digging RTX.
10413
10414 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
10415
10416         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
10417         from 3 x MAX_MACHINE_MODE.
10418         (CONSTM1_RTX): Define.
10419         * emit-rtl.c (const_tiny_rtx): Change into array of
10420         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
10421         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
10422         CONSTM1_RTX.
10423         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
10424         MODE_VECTOR_INT modes.
10425         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
10426         Optimize if one operand is CONSTM1_RTX.
10427         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
10428         into mask | x.
10429
10430 2011-09-26  David S. Miller  <davem@davemloft.net>
10431
10432         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
10433         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
10434         * config/sparc/visintrin.h: Update edge and pixel-compare
10435         intrinsics to return 'long' instead of 'int'.
10436         * doc/extend.texi: Update documentation to match.
10437         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
10438         flat, allow any instruction.  Otherwise, when V9 allow parallels
10439         which consist only of sets to registers outside of %o0 to %o5.
10440         (sparc_vis_init_builtins): Update VIS builtin types for edge
10441         and pixel-compare.
10442
10443         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
10444         is enabled, mark %gsr as global.
10445         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
10446         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
10447
10448         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
10449         which will now define __VIS and __VIS__ when -mvis is enabled.
10450         * config/sparc/t-sparc: Likewise.
10451         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
10452         and add t-sparc to tmake_file for all sparc targets.
10453         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
10454         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
10455
10456         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
10457         builtins for VIS vector addition and subtraction.
10458         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
10459         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
10460         __vis_fpsub32, __vis_fpsub32s): New.
10461         * doc/extend.texi: Document new VIS intrinsics.
10462
10463 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
10464
10465         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
10466         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
10467         EQ/NE comparisons against +/-1 in the case of unused-after,
10468         non-ld-regs target.
10469
10470 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
10471
10472         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
10473         gctx.into_ssa after push_gimplify_context.
10474
10475         * gimple.c (gimple_build_call_valist): New function.
10476         * gimple.h (gimple_build_call_valist): New prototype.
10477         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
10478         (update_gimple_call): Likewise.
10479         (update_call_from_tree): Use finish_update_gimple_call.
10480         * tree-ssa-propagate.h (update_gimple_call): New prototype.
10481
10482 2011-09-26  Richard Guenther  <rguenther@suse.de>
10483
10484         PR tree-optimization/50472
10485         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
10486         volatile references.
10487
10488 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
10489
10490         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
10491         * target.def: (addr_space_subset_p): Likewise.
10492
10493 2011-09-26  Tom de Vries  <tom@codesourcery.com>
10494
10495         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
10496         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
10497         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
10498         of new var.
10499
10500 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
10501
10502         PR target/50465
10503         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
10504         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
10505         output_reload_insisf.
10506         (adjust_len): Set default to "no".
10507         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
10508         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
10509         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
10510         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
10511         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
10512         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
10513         *lshrsi3_const): Set attribute "adjust_len".
10514         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
10515         (output_movsisf): Don't pass insn to output_reload_insisf.
10516         (adjust_insn_length): Handle new alternatives to adjust_len.
10517         Remove handling of ADJUST_LEN_YES.  Clean-up code.
10518
10519 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
10520
10521         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
10522         may_trap_p to detect loads that may trap of fault.
10523
10524 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
10525
10526         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
10527         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
10528         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
10529         prototype.
10530         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
10531         * config/avr/avr.c: Rename output_reload_insisf_1 to
10532         output_reload_in_const.
10533         (avr_popcount_each_byte): Handle SFmode, too.
10534         (output_reload_in_const): Change so it can handle HI loads, too.
10535         Use avr_popcount_each_byte to work out if scratch register must be
10536         created on the fly.
10537         (output_reload_inhi): Rewrite using output_reload_in_const and...
10538         (output_movhi): ...use it to print constants' loads.
10539         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
10540
10541 2011-09-25  David S. Miller  <davem@davemloft.net>
10542
10543         * config/sparc/constraints.md (C, P, Z): New constraints for
10544         const_doube, const_int, and const_vector "all ones" values.
10545         Make unused constraint letters comment match reality.
10546         * config/sparc/predicates.md (const_all_ones_operand,
10547         register_or_zero_or_all_ones_operand): New predicates.
10548         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
10549         as well as zero constants when VIS.
10550         (sparc_legitimate_constant_p): Likewise.
10551         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
10552         (movsf_insn): Likewise
10553         (movdi_insn_sp64): Add fone alternative.
10554         (movdf_insn_sp32_v9): Likewise.
10555         (movdf_insn_sp64): Likewise.
10556
10557         * configure.ac: Add feature check to make sure the assembler
10558         supports the FMAF, HPC, and VIS 3.0 instructions found on
10559         Niagara-3 and later cpus.
10560         * configure: Rebuild.
10561         * config.in: Likewise.
10562         * config/sparc/sparc.opt: New option '-mfmaf'.
10563         * config/sparc/sparc.md: Add float fused multiply-add patterns.
10564         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
10565         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
10566         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
10567         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
10568         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
10569         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
10570         disabled.
10571         (sparc_rtx_costs): Handle 'FMA'.
10572         * doc/invoke.texi: Document -mfmaf.
10573
10574 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
10575
10576         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
10577         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
10578         DECL_BY_REFERENCE parameters.
10579
10580 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10581
10582         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
10583         if there is no outgoing edge.
10584
10585         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
10586         integral types.
10587
10588 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
10589
10590         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
10591         of vect_analyze_bb here.
10592         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
10593
10594 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
10595
10596         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
10597         Allow not simple iv if analyzing basic block.
10598         (create_data_ref): Update call to dr_analyze_innermost.
10599         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
10600         * tree-loop-distribution.c (generate_memset_zero): Likewise.
10601         * tree-predcom.c (find_looparound_phi): Likewise.
10602         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
10603
10604 2011-09-24  David S. Miller  <davem@davemloft.net>
10605
10606         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
10607         (SPARC_GSR_REG): Define.
10608         (FIXED_REGISTERS): Mark GSR as fixed.
10609         (CALL_USED_REGISTERS): Mark GSR as call used.
10610         (HARD_REGNO_NREGS): GSR is always 1 register.
10611         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
10612         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
10613         (REGISTER_NAMES): Add "%gsr".
10614         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
10615         (UNSPEC_WRGSR): New unspec.
10616         (GSR_REG): New constant.
10617         (type): Add new insn type 'gsr'.
10618         (fpack16_vis, fpackfix_vis, fpack32_vis,
10619         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
10620         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
10621         rdgsr_v8plus): New expanders and insns.
10622         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
10623         using patterns which show that this is a plus in addition to a
10624         modification of GSR_REG, instead of an unspec.
10625         * config/sparc/ultra1_2.md: Handle 'gsr'.
10626         * config/sparc/ultra3.md: Likewise.
10627         * config/sparc/niagara.md: Likewise.
10628         * config/sparc/niagara2.md: Likewise.
10629         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
10630         end of table.
10631         (sparc_option_override): Make -mvis imply -mv8plus.
10632         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
10633         for %gsr.
10634         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
10635         __builtin_vis_read_gsr.
10636         (sparc_expand_buildin): Handle builtins that take one argument and
10637         return void.
10638         (sparc_fold_builtin): Never fold writes to %gsr.
10639         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
10640         * doc/extend.texi: Document new VIS intrinsics.
10641
10642 2011-09-23  Jan Hubicka  <jh@suse.cz>
10643
10644         * ipa-inline-transform.c (inline_call): Add comment.
10645         * ipa-inline.h (inline_param_summary): New structure and vector.
10646         (struct inline_edge_summary): Add param field.
10647         * ipa-inline-analysis.c (CHANGED): New constant.
10648         (add_clause): Handle CHANGED and NOT_CONSTANT.
10649         (predicate_probability): New function.
10650         (dump_condition): Dump CHANGED predicate.
10651         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
10652         of unknown function wide invariant.
10653         (evaluate_conditions_for_edge): Handle change probabilities.
10654         (inline_edge_duplication_hook): Copy param summaries.
10655         (inline_edge_removal_hook): Free param summaries.
10656         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
10657         sizes; dump param summaries.
10658         (will_be_nonconstant_predicate): Use CHANGED predicate.
10659         (record_modified_bb_info): New structure.
10660         (record_modified): New function.
10661         (param_change_prob): New function.
10662         (estimate_function_body_sizes): Compute param summaries.
10663         (estimate_edge_size_and_time): Add probability argument.
10664         (estimate_node_size_and_time): Add inline_param_summary argument;
10665         handle predicate probabilities.
10666         (remap_predicate): Fix formating.
10667         (remap_edge_change_prob): New function.
10668         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
10669         (remap_edge_predicates): ... this one.
10670         (inline_merge_summary): Remap edge summaries; handle predicate
10671         probabilities; remove param summaries after we are done.
10672         (do_estimate_edge_time): Update.
10673         (do_estimate_edge_growth): Update.
10674         (read_inline_edge_summary): Read param info.
10675         (inline_read_summary): Fix formating.
10676         (write_inline_edge_summary): Write param summaries.
10677
10678 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
10679
10680         * config/i386/i386.c (ix86_print_operand): Handle %~.
10681         (ix86_print_operand_punct_valid_p): Return true also for '~'.
10682         * config/i386/sse.md (i128): New mode_attr.
10683         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
10684         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
10685         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
10686         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
10687         patterns, use "<sseinsnmode>" for "mode" attribute.
10688         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
10689         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
10690         %~128 in the patterns, use "OI" for "mode" attribute.
10691
10692 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
10693
10694         PR target/50447
10695         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
10696         "tstsi", "compare".
10697         (*cmpqi_sign_extend): Use s8_operand.
10698         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
10699         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
10700         prototypes.
10701         (out_tsthi, out_tstsi): Remove prototypes.
10702         (avr_out_tsthi, avr_out_tstsi): New prototypes.
10703         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
10704         (avr_asm_len): Negative length now sets *plen to -length.
10705         (compare_sign_p): Return bool instead of int.
10706         (compare_diff_p, compare_eq_p): Ditto and make static.
10707         (avr_out_tsthi): New function.
10708         (avr_out_tstsi): New function.
10709         (avr_out_compare): New function.
10710         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
10711         ADJUST_LEN_COMPARE.
10712
10713 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
10714
10715         PR target/50447
10716         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
10717         (addsi3): Rewrite using QI scratch register.  Adjust text
10718         peepholes using plus:SI.
10719         (*addsi3_zero_extend.hi): New insn.
10720         (*subsi3_zero_extend.hi): New insn.
10721         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
10722         (*subsi3_zero_extend): Ditto.
10723         (subsi3): Change predicate #2 to register_operand.
10724         * config/avr/avr-protos.h (avr_out_plus): New prototype.
10725         (avr_out_plus_1): New static function.
10726         (avr_out_plus): New function.
10727         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
10728
10729 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
10730
10731         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
10732         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
10733
10734 2011-09-23  Ian Lance Taylor  <iant@google.com>
10735
10736         * godump.c (go_define): Treat a single character in single quotes,
10737         or a string, as an operand.
10738
10739 2011-09-23  Martin Jambor  <mjambor@suse.cz>
10740
10741         * ipa-prop.h (jump_func_type): Updated comments.
10742         (ipa_known_type_data): New type.
10743         (ipa_jump_func): Use it to describe known type jump functions.
10744         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
10745         reflect the new known type jump function contents.
10746         (compute_known_type_jump_func): Likewise.
10747         (combine_known_type_and_ancestor_jfs): Likewise.
10748         (try_make_edge_direct_virtual_call): Likewise.
10749         (ipa_write_jump_function): Likewise.
10750         (ipa_read_jump_function): Likewise.
10751         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
10752         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
10753         (propagate_accross_jump_function): Likewise.
10754
10755 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
10756
10757         PR target/50446
10758         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
10759         (rotlqi3_4): Turn insn into expander.
10760         (*rotlqi3): New insn.
10761         (rotlhi3, rotlsi3): Support rotate left/right by 1.
10762         (*rotlhi2.1, *rotlhi2.15): New insns.
10763         (*rotlsi2.1, *rotlsi2.31): New insns.
10764         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
10765
10766 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
10767
10768         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
10769
10770 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
10771
10772         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
10773
10774 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10775
10776         * reload.c (find_reloads): Set operand_mode to Pmode for address
10777         operands consisting of just a CONST_INT.
10778
10779 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
10780
10781         PR target/50482
10782         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
10783         blendv, force op_true to register if it doesn't satisfy
10784         nonimmediate_operand predicate.
10785
10786 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
10787
10788         PR middle-end/50113
10789         PR middle-end/50061
10790         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
10791         get the locate.where_pad value for register-only arguments.
10792         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
10793         (arm_pad_reg_upward): Handle null types.
10794
10795 2011-09-22  Jan Hubicka  <jh@suse.cz>
10796
10797         * ipa-inline-analysis.c: Fix overly long lines.
10798
10799 2011-09-22  Jan Hubicka  <jh@suse.cz>
10800
10801         * ipa-inline-transform.c (inline_call): Always update jump functions
10802         after inlining.
10803         * ipa-inline.c (ipa_inline): Likewise; do not call
10804         ipa_create_all_structures_for_iinln.
10805         (ipa_inline): Always free jump functions.
10806         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
10807         (remap_edge_predicates): Fix pasto.
10808         (inline_merge_summary): Remove nlined edge predicate; remove hack.
10809         (inline_analyze_function): Always initialize jump functions.
10810         (inline_generate_summary): Likewise.
10811         (inline_write_summary): Always write jump functions when ipa-cp
10812         is not doing that.
10813         (inline_read_summary): Always read jump functions when ipa-cp
10814         is not doing that.
10815         * ipa-prop.c (iinlining_processed_edges): Remove.
10816         (update_indirect_edges_after_inlining): Do not use
10817         iinlining_processed_edges; instead set param_index to -1.
10818         (propagate_info_to_inlined_callees): Only try to indirect inlining
10819         when asked to do so; update jump functions of indirect calls, too;
10820         remove jump functions of the inlined edge.
10821         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
10822         (ipa_create_all_structures_for_iinln): Remove.
10823         (ipa_free_all_structures_after_iinln): Do not free
10824         iinlining_processed_edges.
10825         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
10826
10827 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
10828
10829         * config/arm/predicates.md (expandable_comparison_operator): New
10830         predicate, extracted from...
10831         (arm_comparison_operator): ...here.
10832         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
10833         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
10834         (movdfcc): Use expandable_comparison_operator.
10835
10836 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
10837
10838         PR target/50447
10839         PR target/50465
10840         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
10841         (avr_popcount_each_byte): New prototype.
10842         * config/avr/avr.c (avr_popcount): New static function.
10843         (avr_popcount_each_byte): New function.
10844         (avr_out_bitop): New function.
10845         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
10846         avr_out_bitop.  Cleanup code.
10847         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
10848         (Ca4, Co4, Cx4): New constraints.
10849         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
10850         alternative.
10851         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
10852         (andsi3, iorsi3, xorsi3): Ditto.
10853         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
10854
10855 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
10856
10857         PR tree-optimization/50451
10858         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
10859         constant operands in reduction.
10860         (vect_get_slp_defs): Don't create vector operand for NULL scalar
10861         operand.
10862
10863 2011-09-22  David S. Miller  <davem@davemloft.net>
10864
10865         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
10866         fpack16, fpack32, fpackfix as const.
10867
10868         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
10869         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
10870         constants.  Use them everywhere.
10871
10872 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
10873
10874         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
10875         Added AND special case.  Adapted comments.
10876         (sh_rtx_costs): Added XOR and IOR case.
10877
10878 2011-09-21  Jan Hubicka  <jh@suse.cz>
10879
10880         * ipa-inline-analsis.c (compute_inline_parameters): Set
10881         cfun and current_function_decl.
10882
10883 2011-09-21  Jan Hubicka  <jh@suse.cz>
10884
10885         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
10886         handled components in parameter of builtin_constant_p.
10887         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
10888
10889 2011-09-21  Jan Hubicka  <jh@suse.cz>
10890
10891         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
10892         * ipa-inline.h (estimate_edge_time): Fix pasto.
10893         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
10894
10895 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
10896
10897         * config/i386/i386.c (ix86_expand_sse_movcc): Use
10898         blendvps, blendvpd and pblendvb if possible.
10899
10900 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
10901
10902         PR target/50464
10903         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
10904         operand 1 predicate to register_operand and operand 2 predicate
10905         to nonimmediate_operand.
10906         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
10907         xop_pcmov, force op_true to register.  Also, force op_false to
10908         register if it doesn't satisfy nonimmediate_operand predicate.
10909
10910 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10911
10912         * config/i386/bmi2intrin.h (_mulx_u64): New.
10913         (_mulx_u32): Ditto.
10914
10915 2011-09-21  Jan Hubicka  <jh@suse.cz>
10916
10917         PR tree-optimization/50433
10918         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
10919         Use get_base_address.
10920
10921 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
10922
10923         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
10924         nonimmediate_operand instead of register_operand predicate for operands
10925         1 and 2, force them into registers if expanding them as comparison.
10926         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
10927         V8HImode force into register just operand 1.
10928
10929 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
10930
10931         PR target/45099
10932         * config/avr/avr.c (avr_function_arg_advance): Change error to
10933         warning if a fixed register is needed as function argument.
10934
10935 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
10936
10937         PR target/50449
10938         PR target/50465
10939         * config/avr/avr.md (adjust_len): New insn attribute.
10940         (*reload_insi, *reload_insf): Use it.
10941         (*movsi, *movsf): Use new interface of output_movsisf.
10942         * config/avr/avr-protos.h (output_movsisf): Change prototype.
10943         * config/avr/avr.c (output_movsisf): Ditto.
10944         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
10945         lengths of insns *reload_insi, *reload_insf.
10946         (output_reload_insisf_1): New static function.
10947         (output_reload_insisf): Use it.
10948
10949 2011-09-21  David S. Miller  <davem@davemloft.net>
10950
10951         * config/sparc/sparc.c (def_builtin): Change from macro into function.
10952         (def_builtin_const): New.
10953         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
10954         other than alignaddr and falignaddr.
10955
10956         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
10957         UNSPEC_FCMPEQ): New unspec codes.
10958         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
10959         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
10960         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
10961         new pixel compare VIS patterns.
10962         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
10963         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
10964         __vis_fcmpeq16, __vis_fcmpeq32): New.
10965         * doc/extend.texi: Document new pixel compare VIS intrinsics.
10966
10967 2011-09-21  Tom de Vries  <tom@codesourcery.com>
10968
10969         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
10970
10971 2011-09-20  David S. Miller  <davem@davemloft.net>
10972
10973         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
10974         (aligneddrl<P:mode>_vis): New pattern.
10975         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
10976         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
10977         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
10978         alignaddrl insn, and adjust edge operations for updated types.
10979         * config/sparc/visintrin.h: Likewise.
10980         * doc/extend.texi: Make typing in VIS documentation match reality.
10981
10982 2011-09-20  Terry Guo  <terry.guo@arm.com>
10983
10984         * config/arm/arm-arches.def: Add armv6s-m.
10985         * config/arm/arm-tables.opt: Regenerate.
10986
10987 2011-09-20  Wei Guozhi  <carrot@google.com>
10988
10989         PR rtl-optimization/49452
10990         * postreload.c (reload_combine): Invalidate use information when across
10991         volatile insn.
10992
10993 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
10994
10995         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
10996         Remove maintenance overhead.
10997         (haifa_sched_init, sched_finish): Update.
10998
10999 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
11000
11001         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
11002         to calculate unit, prefix_rep and prefix_data16 attributes.
11003         (*mov<mode>_internal): Ditto for unit attribute.
11004         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
11005         (*movv2sf_internal): Ditto.
11006         * config/i386/sse.md (VI1248_256): Remove mode iterator.
11007         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
11008         (*avx2_eq<mode>3): Ditto.
11009         (avx2_gt<mode>3): Ditto.
11010
11011 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
11012
11013         * config/i386/i386.md (maxmin): New code iterator.
11014         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
11015         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
11016         code iterator.
11017         (*avx2_<maxmin:code><mode>3): Macroize isn from
11018         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
11019         maxmin code iterator.
11020         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
11021         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
11022         <umaxmin:code>v16qi3.
11023
11024 2011-09-19  Alan Modra  <amodra@gmail.com>
11025             Michael Meissner  <meissner@linux.vnet.ibm.com>
11026
11027         PR target/50341
11028         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
11029         split the load of the indirect function's TOC from the call to
11030         prevent the compiler from moving the load of the new TOC above
11031         code that references the current function's TOC.
11032         (call_indirect_aix<ptrsize>_internal): Ditto.
11033         (call_indirect_aix<ptrsize>_nor11): Ditto.
11034         (call_indirect_aix<ptrsize>_internal2): Ditto.
11035         (call_value_indirect_aix<ptrsize>): Ditto.
11036         (call_value_indirect_aix<ptrsize>_internal): Ditto.
11037         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
11038         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
11039
11040 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
11041
11042         * config/i386/sse.md (*sse4_1_extractps): Change into
11043         define_insn_and_split, add =x 0 n and =x x n alternatives
11044         and split them after reload.
11045
11046 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
11047
11048         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
11049
11050 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
11051
11052         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
11053
11054 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
11055
11056         PR tree-optimization/50413
11057         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
11058         a basic block if one of its data-refs can't be analyzed.
11059
11060 2011-09-19  Paul Brook  <paul@codesourcery.com>
11061
11062         * config/arm/predicates.md (shift_amount_operand): Check constant
11063         shift count is in range.
11064         (const_shift_operand): Remove.
11065
11066 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
11067             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
11068
11069         PR target/50091
11070         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
11071         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
11072
11073 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
11074
11075         * config/i386/bmiintrin.h: Remove tmp.
11076         * config/i386/tbmintrin.h: Likewise.
11077
11078 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
11079
11080         PR tree-optimization/50414
11081         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
11082         MIN_EXPR.
11083
11084 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
11085
11086         PR tree-optimization/50412
11087         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
11088         acceses that require epilogue loop if vectorizing outer loop.
11089
11090 2011-09-17  David S. Miller  <davem@davemloft.net>
11091
11092         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
11093         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
11094         New unspecs.
11095         (define_attr type): New type 'edge'.
11096         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
11097         edge32l_vis): New patterns.
11098         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
11099         * config/sparc/ultra3.md: Likewise.
11100         * config/sparc/niagara.md: Likewise.
11101         * config/sparc/niagara2.md: Likewise.
11102         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
11103         builtins for VIS edge instructions.
11104         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
11105         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
11106         intrinsics.
11107         (__v8qi, __v4qi): Make unsigned.
11108         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
11109         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
11110         __vis_fpack32): Fix types.
11111         * doc/extend.texi: Document new 'edge' VIS intrinsics.
11112
11113         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
11114         divide costs.
11115         (niagara3_costs): New.
11116         (sparc_option_override): Use it.
11117         * gcc/config/sparc/niagara2.md: Adjust with more accurate
11118         Niagara-3 reservations.
11119
11120 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
11121
11122         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
11123         (sse2_avx, sseinsnmode): Add V2TI.
11124         (REDUC_SMINMAX_MODE): New mode iterator.
11125         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
11126         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
11127         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
11128         (sse2_lshrv1ti3): Rename to...
11129         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
11130         iterator.  Move before umaxmin expanders.
11131         * config/i386/i386.h (VALID_AVX256_REG_MODE,
11132         SSE_REG_MODE_P): Accept V2TImode.
11133         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
11134         V16HImode, V8SImode and V4DImode.
11135
11136         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
11137         and V4DImode.
11138         (ix86_build_signbit_mask): Likewise.
11139         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
11140         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
11141         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
11142         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
11143         (<code><mode>3) ... this.
11144         (avx2_<code><mode>3 smaxmin expand): Rename to...
11145         (<code><mode>3) ... this.
11146         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
11147         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
11148         VI8_AVX2 mode iterator.
11149         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
11150         VI8_AVX2 mode iterator.
11151         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
11152         New expanders.
11153
11154 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
11155
11156         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
11157         throughout file.
11158
11159 2011-09-16  David S. Miller  <davem@davemloft.net>
11160
11161         * config/sparc/visintrin.h: New file.
11162         * config.gcc: Add it to extra_headers on sparc.
11163
11164 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
11165
11166         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
11167         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
11168         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
11169         reduc_smin_v4sf): Adjust callers.
11170         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
11171         New expanders.
11172
11173         * config/i386/sse.md (vec_extract_hi_<mode>,
11174         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
11175         vextracti128 instead of vextractf128 for -mavx2 and
11176         integer vectors.  For V4DFmode fix up mode attribute.
11177         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
11178         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
11179         instead of V8SF mode attribute.
11180         (avx2_extracti128): Change into define_expand.
11181         * config/i386/i386.c (ix86_expand_vector_extract): Handle
11182         32-byte vector modes if TARGET_AVX.
11183
11184 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
11185
11186         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
11187         (umulqi3_highpart, smulqi3_highpart): Ditto.
11188         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
11189         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
11190         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
11191
11192 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
11193
11194         PR target/50358
11195         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
11196         (*maddqi4, *maddqi4.const): New insns.
11197         (*msubqi4, *msubqi4.const): New insns.
11198         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
11199         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
11200         HImode by 1 in the case of multiplying with a CONST_INT.
11201         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
11202
11203 2011-09-15  Jan Hubicka  <jh@suse.cz>
11204
11205         PR lto/50430
11206         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
11207         error_mark_node in the DECL_INITIAL of vtable.
11208
11209 2011-09-15  Diego Novillo  <dnovillo@google.com>
11210
11211         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
11212         @SYSROOT_CFLAGS_FOR_TARGET@.
11213         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
11214         * configure: Regenerate.
11215         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
11216         Remove setting of GCC_UNDER_TEST.
11217
11218 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
11219
11220         * config/i386/i386.c (output_fp_compare): Return %v prefixed
11221         instruction mnemonics for TARGET_AVX.
11222
11223         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
11224         "type" attribute calculation.
11225         (*movdf_internal): Ditto.
11226         (*movsf_internal): Ditto.
11227
11228 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
11229
11230         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
11231
11232 2011-09-15  Jason Merrill  <jason@redhat.com>
11233
11234         PR c++/50361
11235         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
11236
11237 2011-09-15  Jan Hubicka  <jh@suse.cz>
11238
11239         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
11240         simplify obviously true clauses.
11241         (and_predicates, or_predicates): Add conditions parameter.
11242         (inline_duplication_hoook): Update.
11243         (mark_modified): New function.
11244         (unmodified_parm): New function.
11245         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
11246         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
11247         Use unmodified_parm.
11248         (estimate_function_body_sizes): Update.
11249         (remap_predicate): Update.
11250
11251 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
11252
11253         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
11254         read-after-read dependencies in basic block SLP.
11255
11256 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
11257
11258         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
11259         throughout file.
11260
11261 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
11262
11263         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
11264         throughout file.
11265
11266 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
11267
11268         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
11269         throughout file.
11270
11271 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
11272
11273         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
11274         throughout file.
11275         * config/rs6000/constraints.md: Likewise.
11276
11277 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
11278
11279         * config/microblaze/microblaze.md: Use match_test rather than
11280         eq/ne symbol_ref throughout file.
11281
11282 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
11283
11284         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
11285         throughout file.
11286
11287 2011-09-14  Tom de Vries  <tom@codesourcery.com>
11288
11289         PR middle-end/50251
11290         * explow.c (emit_stack_restore): Set crtl->need_drap if
11291         stack_restore is emitted.
11292
11293 2011-09-14  Julian Brown  <julian@codesourcery.com>
11294
11295         * config/arm/arm.c (arm_override_options): Add unaligned_access
11296         support.
11297         (arm_file_start): Emit attribute for unaligned access as appropriate.
11298         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
11299         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
11300         (insv, extzv): Add unaligned-access support.
11301         (extv): Change to expander. Likewise.
11302         (extzv_t1, extv_regsi): Add helpers.
11303         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
11304         (unaligned_storesi, unaligned_storehi): New.
11305         (*extv_reg): New (previous extv implementation).
11306         * config/arm/arm.opt (munaligned_access): Add option.
11307         * config/arm/constraints.md (Uw): New constraint.
11308         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
11309         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
11310         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
11311         volatile accesses when -fstrict-volatile-bitfields is in effect.
11312         (extract_bit_field_1): Likewise.
11313
11314 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
11315
11316         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
11317         a scalar integer before applying integer-only optimisations to
11318         inner arithmetic.
11319
11320 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
11321
11322         * config/mips/mips.c (mips_expand_epilogue): Generate a
11323         simple_return only if the return address is in r31.
11324
11325 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
11326
11327         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
11328         NULL for a jump that is a cc0 insn, pick the previous insn for
11329         move_before.
11330
11331 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
11332
11333         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
11334         throughout file.
11335
11336 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
11337
11338         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
11339         throughout file.
11340
11341 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
11342
11343         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
11344         symbol_ref throughout file.
11345
11346 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
11347
11348         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
11349         throughout file.
11350
11351 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
11352
11353         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
11354         throughout file.
11355
11356 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
11357
11358         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
11359         throughout file.
11360         * config/arm/neon.md: Likewise.
11361         * config/arm/vfp.md: Likewise.
11362         * config/arm/thumb2.md: Likewise.
11363         * config/arm/cortex-m4.md: Likewise.
11364
11365 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
11366
11367         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
11368         define_insn patterns for combine.
11369
11370 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
11371
11372         * reorg.c: Always define make_return_insns.
11373
11374 2011-09-13  Jan Hubicka  <jh@suse.cz>
11375
11376         PR other/49533
11377         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
11378
11379 2011-09-13  Jan Hubicka  <jh@suse.cz>
11380
11381         PR other/49533
11382         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
11383
11384 2011-09-13  Paul Brook  <paul@codesourcery.com>
11385
11386         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11387         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
11388         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
11389         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
11390         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
11391         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
11392         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
11393         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
11394         enabling unwind tables.
11395         (c6x_debug_unwind_info): New function.
11396         (TARGET_ARM_EABI_UNWINDER): Define.
11397         (TARGET_DEBUG_UNWIND_INFO): Define.
11398         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
11399         (TARGET_EXTRA_CFI_SECTION): Remove.
11400         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
11401         * ginclude/unwind-arm-common.h: New file.
11402
11403 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
11404
11405         PR target/50358
11406         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
11407         * config/avr/avr.md: (extend_s): New code attribute.
11408         (mul_r_d): New code attribute.
11409         (*maddqihi4, *umaddqihi4): New insns.
11410         (*msubqihi4, *umsubqihi4): New insns.
11411         (*usmaddqihi4, *sumaddqihi4): New insns.
11412         (*usmsubqihi4, *susubdqihi4): New insns.
11413         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
11414         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
11415         (*umsubqihi4.uconst.ashift): New insn-and-split.
11416         (*msubqihi4.sconst.ashift): New insn-and-split.
11417         (*sumaddqihi4.uconst): New insn-and-split.
11418         (*sumsubqihi4.uconst): New insn-and-split.
11419         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
11420         PLUS:HI and MINUS:HI.
11421
11422 2011-09-13  Revital Eres  <revital.eres@linaro.org>
11423
11424         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
11425         (optimize_sc): Adjust call to remove_node_from_ps.
11426         (sms_schedule): Add print info.
11427
11428 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
11429
11430         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
11431         flags specially.
11432
11433 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
11434
11435         PR bootstrap/50010
11436         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
11437         NOTE_INSN_CFI notes, with the exception of
11438         NOTE_INSN_SWITCH_TEXT_SECTIONS.
11439
11440 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
11441             Richard Sandiford  <rdsandiford@googlemail.com>
11442
11443         * config/mips/mips.c (mips_epilogue): New structure.
11444         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
11445         restoring registers.
11446         (mips_epilogue_emit_cfa_restores): New function.
11447         (mips_epilogue_set_cfa): Likewise.
11448         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
11449         the current CFA register from the stack, redefine the CFA in terms
11450         of the stack pointer.
11451         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
11452         to the epilogue instructions.
11453
11454 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
11455
11456         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
11457         argument.
11458         (mips16e_build_save_restore): Update accordingly.
11459
11460 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
11461
11462         PR rtl-optimization/50212
11463         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11464         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
11465
11466         PR debug/50299
11467         * calls.c (load_register_parameters): Use use_reg_mode instead
11468         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
11469         entry.
11470         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
11471         for stack CALL_INSN_FUNCTION_USAGE uses.
11472         * expr.h (use_reg_mode): New prototype.
11473         (use_reg): Changed into inline around use_reg_mode.
11474         * expr.c (use_reg): Renamed to...
11475         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
11476         mode to that mode instead of VOIDmode.
11477         * var-tracking.c (prepare_call_arguments): Don't track parameters
11478         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
11479         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
11480         EXPR_LIST mode.
11481
11482 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
11483
11484         PR target/43746
11485         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
11486         (progmem_section): New Variable.
11487         (avr_asm_init_sections): Initialize it.
11488         (TARGET_ASM_SELECT_SECTION): Define to...
11489         (avr_asm_select_section): ... this new Function.
11490         (avr_replace_prefix): New Function.
11491         (avr_asm_function_rodata_section): Use it.
11492         (avr_insert_attributes): Don't add section attribute for PROGMEM.
11493         (avr_section_type_flags): Use avr_progmem_p instead of section
11494         name to detect if object is in PROGMEM.
11495         (avr_asm_named_section): Set section name prefix for objects in
11496         PROGMEM.
11497
11498 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
11499
11500         PR bootstrap/50352
11501         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
11502         sprintf format string.
11503
11504 2011-09-12  Richard Guenther  <rguenther@suse.de>
11505
11506         PR tree-optimization/50343
11507         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
11508         that the reduction is over an SSA name before checking its definition.
11509
11510 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
11511
11512         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
11513         throughout file.
11514
11515 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
11516
11517         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
11518         throughout file.
11519         * config/mips/sb1.md: Likewise.
11520         * config/mips/predicates.md: Replace (match_test "!...")
11521         with (not (match_test "..."))
11522         * config/mips/constraints.md: Likewise.
11523
11524 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
11525
11526         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
11527         * config/arm/arm-tables.opt: Regenerate.
11528         * config/arm/arm-tune.md: Regenerate.
11529         * config/arm/arm.c (arm_file_start): Output .arch directive when
11530         user passes -mcpu=generic-*.
11531         (arm_issue_rate): Add genericv7a support.
11532         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
11533         (ASM_CPU_SPEC): New define.
11534         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
11535         * config/arm/semi.h (ASM_SPEC): Likewise.
11536         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
11537         and -mtune=generic-*.
11538
11539 2011-09-09  Richard Guenther  <rguenther@suse.de>
11540
11541         PR tree-optimization/50328
11542         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
11543         constant or default-def operand.
11544
11545 2011-09-09  Richard Guenther  <rguenther@suse.de>
11546
11547         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
11548         last statement.
11549
11550 2011-09-09  Richard Guenther  <rguenther@suse.de>
11551
11552         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
11553         instead of a statement.
11554         * gimple-fold.c (fold_stmt_inplace): Likewise.
11555         * sese.c (graphite_copy_stmts_from_block): Adjust.
11556         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
11557         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
11558         fold_stmt.
11559         (forward_propagate_addr_into_variable_array_index): Likewise.
11560         (forward_propagate_addr_expr_1): adjust.
11561         (associate_plusminus): Likewise.
11562         (ssa_forward_propagate_and_combine): Likewise.
11563         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
11564         (execute_cse_reciprocals): Likewise.
11565         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
11566
11567 2011-09-09  Nick Clifton  <nickc@redhat.com>
11568
11569         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
11570         Return a positive value to indicate that the bits at the
11571         bottom of the register should be cleared.
11572
11573 2011-09-09  Richard Guenther  <rguenther@suse.de>
11574
11575         * tree-ssa-operands.c (swap_tree_operands): Always adjust
11576         existing operand positions.
11577
11578 2011-09-09  Richard Guenther  <rguenther@suse.de>
11579
11580         PR middle-end/50333
11581         * tree-data-ref.c (split_constant_offset): Do not try to handle
11582         ternary ops.
11583
11584 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
11585
11586         PR tree-optimization/50318
11587         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
11588         typo in use of mult_rhs1 and mult_rhs2.
11589
11590 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
11591
11592         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
11593         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
11594
11595 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
11596
11597         * config/arm/arm.md (push_multi): Emit predicates.
11598         (push_fp_multi): Likewise.
11599         * config/arm/arm.c (vfp_output_fstmd): Likewise.
11600
11601 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
11602
11603         PR c++/33255 - Support -Wunused-local-typedefs warning
11604         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
11605         (pushdecl): Use the new record_locally_defined_typedef.
11606         (store_parm_decls): Allocate cfun->language.
11607         (finish_function): Use the new maybe_warn_unused_local_typedefs,
11608         and free cfun->language.
11609         (c_push_function_context): Allocate cfun->language here only if needed.
11610         (c_pop_function_context): Likewise, mark cfun->language
11611         for collection only when it should be done.
11612         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
11613         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
11614         maybe_record_local_typedef_use.
11615         * doc/invoke.texi: Update documentation for
11616         -Wunused-local-typedefs.
11617
11618 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
11619
11620         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
11621         (ix86_avoid_lea_for_add): Likewise.
11622         (ix86_avoid_lea_for_addr): Likewise.
11623         (ix86_split_lea_for_addr): Likewise.
11624
11625         * config/i386/i386.c (LEA_MAX_STALL): New.
11626         (increase_distance): Likewise.
11627         (insn_defines_reg): Likewise.
11628         (insn_uses_reg_mem): Likewise.
11629         (distance_non_agu_define_in_bb): Likewise.
11630         (distance_agu_use_in_bb): Likewise.
11631         (ix86_lea_outperforms): Likewise.
11632         (ix86_ok_to_clobber_flags): Likewise.
11633         (ix86_avoid_lea_for_add): Likewise.
11634         (ix86_avoid_lea_for_addr): Likewise.
11635         (ix86_split_lea_for_addr): Likewise.
11636         (distance_non_agu_define): Search in pred BBs added.
11637         (distance_agu_use): Search in succ BBs added.
11638         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
11639         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
11640         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
11641
11642         * config/i386/i386.md: Split added to transform non destructive
11643         add into move and add.
11644         (lea_1): transformed into insn_and_split to avoid AGU stalls.
11645         (lea<mode>_2): Likewise.
11646
11647 2011-09-08  Martin Jambor  <mjambor@suse.cz>
11648
11649         PR tree-optimization/50287
11650         * ipa-split.c (split_function): Do not create SSA names for
11651         non-gimple-registers.
11652
11653 2011-09-08  Richard Guenther  <rguenther@suse.de>
11654
11655         PR tree-optimization/19831
11656         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
11657         skip builtins with vdefs that do not really store something.
11658         (propagate_necessity): For calls to free that we can associate
11659         with an allocation function do not mark the freed pointer
11660         definition necessary.
11661         (eliminate_unnecessary_stmts): Remove a call to free if
11662         the associated call to an allocation function is not necessary.
11663
11664 2011-09-08  Richard Guenther  <rguenther@suse.de>
11665
11666         PR tree-optimization/19831
11667         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
11668         allocation functions as necessary.
11669
11670 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
11671
11672         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
11673         cut from ...
11674         (darwin_default_min_version): Amended to provide defaults
11675         for the cross directory case.
11676         (darwin_driver_init): call darwin_default_min_version unconditionally.
11677         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
11678         * config/darwin9.h: Likewise.
11679         * config/darwin10.h: Likewise.
11680         * config/rs6000/darwin7.h: Likewise.
11681
11682 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
11683
11684         PR target/50310
11685         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
11686         code early if TARGET_AVX.
11687         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
11688
11689 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
11690
11691         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
11692         duplicates.
11693
11694         PR target/50310
11695         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
11696         "mode" attribute computation.
11697
11698 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
11699
11700         * regrename.c (struct du_head): Make nregs signed.
11701         (closed_chains): Remove.
11702         (create_new_chain): Return the new chain.
11703         (chain_from_id): New static function.
11704         (dump_def_use_chain): Change argument to be an int, indicating
11705         the first ID to print.  All callers changed.
11706         (merge_overlapping_regs): Use chain_from_id.  Assert that
11707         chains don't conflict with themselves.
11708         (rename_chains): Take no argument.  Iterate over id_to_chain
11709         rather to find chains to rename.  Clear tick before the main loop.
11710         (struct incoming_reg_info): New struct.
11711         (struct bb_rename_info): New struct.
11712         (init_rename_info, set_incoming_from_chain, merge_chains): New
11713         static functions.
11714         (regrename_analyze): New static function, broken out of
11715         regrename_optimize.  Record and make use of open chain information
11716         at basic block boundaries, and merge chains where possible.
11717         (scan_rtx_reg): Make this_nregs signed.  Don't update
11718         closed_chains.
11719         (build_def_use): Return a bool to indicate success.  All callers
11720         changed.  Don't initialize global data here.
11721         (regrename_optimize): Move most code out of here into
11722         regrename_analyze.
11723         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
11724         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
11725         static inline functions.
11726         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
11727
11728         * bb-reorder.c (insert_section_boundary_note): Don't check
11729         optimize_function_for_speed_p.
11730         (gate_handle_partition_blocks): Do it here instead.
11731         (gate_handle_reorder_blocks): Move preliminary checks here ...
11732         (rest_of_handle_reorder_blocks): ... from here.
11733
11734 2011-09-07  Martin Jambor  <mjambor@suse.cz>
11735
11736         PR middle-end/50301
11737         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
11738         function index bounds.
11739         (perhaps_add_new_callers): Likewise.
11740
11741 2011-09-07  Martin Jambor  <mjambor@suse.cz>
11742
11743         PR tree-optimization/49911
11744         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
11745         enumerations to the corresponding plain integer type.
11746
11747 2011-09-07  Richard Guenther  <rguenther@suse.de>
11748
11749         PR tree-optimization/50319
11750         * tree-if-conv.c (set_bb_predicate): Assert we only set
11751         canonical predicates.
11752         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
11753         around canonical predicates.
11754         (predicate_bbs): Do not re-gimplify already canonical
11755         predicates.  Properly unshare them though.
11756         (find_phi_replacement_condition): Simplify.
11757
11758 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
11759
11760         PR target/49030
11761         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
11762         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
11763         reusing the old code from get_arm_condition_code.  Return ARM_NV
11764         for invalid comparison codes.
11765         (get_arm_condition_code): Redefine in terms of
11766         maybe_get_arm_condition_code.
11767         * config/arm/predicates.md (arm_comparison_operator): Use
11768         maybe_get_arm_condition_code.
11769
11770 2011-09-07  Richard Guenther  <rguenther@suse.de>
11771
11772         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
11773         Canonicalize negated predicates by swapping edges.
11774         (forward_propagate_into_cond): Likewise.
11775
11776 2011-09-07  Richard Guenther  <rguenther@suse.de>
11777
11778         PR tree-optimization/50213
11779         * tree-flow.h (simple_iv_increment_p): Declare.
11780         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
11781         POINTER_PLUS_EXPR.
11782         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
11783         not propagate simple IV counter increments.
11784
11785 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
11786             Iain Sandoe  <iains@gcc.gnu.org>
11787
11788         * config/rs6000/rs6000.c (compute_save_world_info): Test
11789         cfun->has_nonlocal_label to determine if the out-of-line save
11790         world call may be used.
11791
11792 2011-09-07  Nick Clifton  <nickc@redhat.com>
11793
11794         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
11795         label on the parallel part of the insn.
11796
11797 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
11798
11799         PR debug/50191
11800         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
11801         avoid_constant_pool_reference first instead of last.
11802
11803 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
11804
11805         * doc/configfiles.texi (Configuration Files): Update documentation
11806         about tm_p.h and remove FIXME comment.
11807
11808 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
11809
11810         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
11811         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
11812
11813 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
11814
11815         * config/darwin10.h Remove duplicate LIB_SPEC.
11816
11817 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
11818
11819         PR middle-end/44382
11820         * target.def (reassociation_width): New hook.
11821
11822         * doc/tm.texi.in (reassociation_width): Likewise.
11823
11824         * doc/tm.texi (reassociation_width): Likewise.
11825
11826         * doc/invoke.texi (tree-reassoc-width): New param documented.
11827
11828         * hooks.h (hook_int_uint_mode_1): New default hook.
11829
11830         * hooks.c (hook_int_uint_mode_1): Likewise.
11831
11832         * config/i386/i386.h (ix86_tune_indices): Add
11833         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
11834
11835         (TARGET_REASSOC_INT_TO_PARALLEL): New.
11836         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
11837
11838         * config/i386/i386.c (initial_ix86_tune_features): Add
11839         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
11840
11841         (ix86_reassociation_width): New function.
11842
11843         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
11844
11845         * tree-ssa-reassoc.c (get_required_cycles): New function.
11846         (get_reassociation_width): Likewise.
11847         (swap_ops_for_binary_stmt): Likewise.
11848         (rewrite_expr_tree_parallel): Likewise.
11849
11850         (rewrite_expr_tree): Refactored.  Part of code moved into
11851         swap_ops_for_binary_stmt.
11852
11853         (reassociate_bb): Now checks reassociation width to be used and
11854         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
11855
11856 2011-09-06  Richard Guenther  <rguenther@suse.de>
11857
11858         PR tree-optimization/47025
11859         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
11860         uses nothing.
11861         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
11862         BUILT_IN_FREE.
11863         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
11864         definitely points to.
11865         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11866         BUILT_IN_VA_START doesn't let its va_list argument escape.
11867         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
11868         not make any previous stores necessary.
11869
11870 2011-09-06  Martin Jambor  <mjambor@suse.cz>
11871
11872         * ipa-inline.h (struct inline_summary): Move versionable flag...
11873         * cgraph.h (struct cgraph_local_info): ...here
11874         * ipa-cp.c (determine_versionability): Use the new versionable flag.
11875         (determine_versionability): Likewise.
11876         (ipcp_versionable_function_p): Likewise.
11877         (ipcp_generate_summary): Likewise.
11878         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
11879         versionable flag.
11880         (compute_inline_parameters): Do not clear the versionable flag.
11881         (inline_read_section): Do not stream the versionable flag.
11882         (inline_write_summary): Likewise.
11883         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
11884         (input_overwrite_node): Likewise.
11885
11886 2011-09-06  Richard Guenther  <rguenther@suse.de>
11887
11888         PR tree-optimization/48149
11889         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
11890         (vn_valueize): Move earlier.
11891         (valueize_expr): Use vn_valueize.
11892         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
11893         operands.
11894         (simplify_unary_expression): Simplify.
11895
11896 2011-09-06  Richard Guenther  <rguenther@suse.de>
11897
11898         PR tree-optimization/48317
11899         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
11900         trailing array.
11901         (sizeof_vn_nary_op): New inline function.
11902         (vn_nary_op_lookup_pieces): Adjust.
11903         (vn_nary_op_insert_pieces): Likewise.
11904         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
11905         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
11906         any number of operands.
11907         (vn_nary_length_from_stmt): New function.
11908         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
11909         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
11910         sized temporary.
11911         (vn_nary_op_lookup): Likewise.
11912         (vn_nary_op_lookup_stmt): Likewise.
11913         (vn_nary_op_insert_into): Likewise.
11914         (vn_nary_op_insert_stmt): Likewise.
11915         (visit_use): Handle CONSTRUCTOR as nary.
11916         * tree-ssa-pre.c (phi_translate_1): Adjust.
11917         (create_expression_by_pieces): Likewise.
11918         (compute_avail): Likewise.
11919
11920 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
11921
11922          * config/arm/arm.c (arm_preferred_simd_mode): Check
11923         TARGET_NEON_VECTORIZE_DOUBLE instead of
11924         TARGET_NEON_VECTORIZE_QUAD.
11925         (arm_autovectorize_vector_sizes): Likewise.
11926         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
11927         mask of mvectorize-with-neon-double.  Add RejectNegative.
11928         (mvectorize-with-neon-double): New.
11929
11930 2011-09-06  Richard Guenther  <rguenther@suse.de>
11931
11932         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
11933
11934 2011-09-06  Tom de Vries  <tom@codesourcery.com>
11935
11936         * recog.c (asm_labels_ok): New function.
11937         (check_asm_operands): Use asm_labels_ok.
11938
11939 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
11940
11941         PR target/49606
11942         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
11943         (PMODE_INSN): New macro.
11944         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
11945         (mips_got_load, mips_expand_synci_loop): Likewise.
11946         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
11947         cprestore patterns.
11948         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
11949         copygp_mips16 patterns.
11950         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
11951         and use_cprestore patterns.
11952         (mips_override_options): Check for incompatible -mabi and -mlong
11953         combinations.
11954         * config/mips/mips.md (unspec_got<mode>): Rename to...
11955         (unspec_got_<mode>): ...this.
11956         (copygp_mips16): Use the Pmode iterator.
11957         (potential_cprestore, cprestore, use_cprestore): Likewise.
11958         (clear_cache, indirect_jump): Use PMODE_INSN.
11959         (indirect_jump<mode>): Rename to...
11960         (indirect_jump_<mode>): ...this.
11961         (tablejump): Use PMODE_INSN.
11962         (tablejump<mode>): Rename to...
11963         (tablejump_<mode>): ...this.
11964         (exception_receiver): Handle restore_gp_si and restore_gp_di.
11965         (restore_gp): Use the Pmode iterator.
11966         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
11967         PMODE_INSN.
11968
11969 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
11970
11971         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
11972         Fix the type of the BIT_AND_EXPR.
11973
11974 2011-09-05  David S. Miller  <davem@davemloft.net>
11975
11976         * config.host: Add driver-sparc.o and sparc/x-sparc on
11977         native sparc*-*-linux* builds.
11978         * config/sparc/driver-sparc.c: Correct Linux strings.
11979         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
11980         * config/sparc/linux64.h: Likewise.
11981         * doc/invoke.texi: Document that Linux also supports
11982         -mcpu=native and -mtune=native on sparc.
11983
11984         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
11985         PROCESSOR_NIAGARA4): New.
11986         * config/sparc/sparc.opt: Handle new processor types.
11987         * config/sparc/sparc.md: Add to "cpu" attribute.
11988         * config/sparc/sparc.h (TARGET_CPU_niagara3,
11989         TARGET_CPU_niagara4): New, treat as niagara2.
11990         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
11991         * config/sparc/sol2.h: Likewise.
11992         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
11993         * config/sparc/sparc.c (sparc_option_override): Add
11994         niagara3 and niagara4 handling.
11995         (sparc32_initialize_trampoline): Likewise.
11996         (sparc64_initialize_trampoline): Likewise.
11997         (sparc_use_sched_lookahead): Likewise.
11998         (sparc_issue_rate): Likewise.
11999         (sparc_register_move_cost): Likewise.
12000         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
12001         and niagara4 as appropriate.
12002         * doc/invoke.texi: Document new processor types.
12003         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
12004         and --with-tune options.
12005
12006         * config/sparc/sol2-64.h: Move ...
12007         * config/sparc/default-64.h: ... to here.  Update comment.
12008         * config.gcc: Update Solaris sparc to use default-64.h, also
12009         prefix this header into the list on sparc64-*-linux.
12010         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
12011         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
12012         to MASK_HARD_QUAD.
12013
12014 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
12015
12016         PR target/50289
12017         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
12018         that contain global register variable.
12019
12020 2011-09-05  Richard Guenther  <rguenther@suse.de>
12021
12022         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
12023
12024 2011-09-05  Richard Guenther  <rguenther@suse.de>
12025
12026         * stor-layout.c (layout_type): Use size_binop for array size
12027         calculations.
12028
12029 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
12030
12031         * config/avr/avr.h (progmem_section): Remove Declaration.
12032         * config/avr/avr.c (progmem_section): Make static and rename to
12033         progmem_swtable_section.
12034         (avr_output_addr_vec_elt): No need to switch sections.
12035         (avr_asm_init_sections): Use output_section_asm_op as section
12036         callback for progmem_swtable_section.
12037         (avr_output_progmem_section_asm_op): Remove Function.
12038         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
12039         (avr_asm_function_rodata_section): New static Function.
12040         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
12041         alignment 2**1 for jump tables.
12042
12043 2011-09-04  Jan Hubicka  <jh@suse.cz>
12044
12045         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
12046         parameter is SSA name.
12047
12048 2011-09-04  Richard Guenther  <rguenther@suse.de>
12049
12050         Revert
12051         2011-08-31  Richard Guenther  <rguenther@suse.de>
12052
12053         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
12054         special-casing.
12055
12056 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
12057
12058         PR debug/49901
12059         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
12060
12061 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
12062             Ira Rosen  <ira.rosen@linaro.org>
12063
12064         PR tree-optimization/50208
12065         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
12066         argument.  Check that def_stmt is inside the loop.
12067         (vect_recog_widen_mult_pattern): Update calls to
12068         vect_handle_widen_mult_by_cons.
12069         (vect_operation_fits_smaller_type): Check that def_stmt is
12070         inside the loop.
12071
12072 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
12073
12074         * tree-vectorizer.c (vect_print_dump_info): Print line
12075         number when dumping to a file.
12076         (vectorize_loops): Add new messages to dump file.
12077
12078 2011-09-03  Martin Jambor  <mjambor@suse.cz>
12079
12080         * ipa-prop.h (ipa_jump_func_t): New typedef.
12081         (struct ipa_edge_args): Removed field argument_count, field
12082         jump_functions turned into a vector.
12083         (ipa_set_cs_argument_count): Removed.
12084         (ipa_get_cs_argument_count): Updated to work on vectors.
12085         (ipa_get_ith_jump_func): Likewise.
12086         * ipa-prop.c (ipa_count_arguments): Removed.
12087         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
12088         jump functions.  Update caller.
12089         (compute_pass_through_member_ptrs): Likewise.
12090         (compute_cst_member_ptr_arguments): Likewise.
12091         (ipa_compute_jump_functions_for_edge): Get number of arguments from
12092         the statement, allocate vector.
12093         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
12094         (duplicate_ipa_jump_func_array): Removed.
12095         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
12096         (ipa_read_node_info): Allocate vector.
12097
12098 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12099
12100         PR middle-end/50232
12101         * config/pa/pa.md (return): Define "return" insn pattern.
12102         (epilogue): Use it when no epilogue is needed.
12103         * config/pa/pa.c (pa_can_use_return_insn): New function.
12104         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
12105
12106 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
12107
12108         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
12109         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
12110         Force at least BITS_PER_UNIT alignment on the new variable.
12111
12112 2011-09-02  Gary Funck <gary@intrepid.com>
12113
12114         * opts.c (print_specific_help): Fix off-by-one compare in
12115         assertion check.
12116         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
12117         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
12118         Increase by +5 to allow for more languages.
12119         * optc-gen.awk: Generate #if that ensures that the number of
12120         languages is within the implementation-defined limit.
12121
12122 2011-09-02  Michael Matz  <matz@suse.de>
12123
12124         PR middle-end/50260
12125         * ipa-split.c (split_function): Call add_referenced_var.
12126
12127         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
12128         (cond_if_else_store_replacement_1): Ditto.
12129         * tree-ssa-pre.c (get_representative_for): Ditto.
12130         (create_expression_by_pieces): Ditto.
12131         (insert_into_preds_of_block): Ditto.
12132         * tree-sra.c (create_access_replacement): Ditto.
12133         (get_replaced_param_substitute): Ditto.
12134
12135 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
12136
12137         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
12138         automata_options.
12139         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
12140         (l1w, s1w, l2w, s2w): Define in the main automaton.
12141         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
12142         units.
12143         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
12144         (c6x_unit_names): Add the new units.
12145         (c6x_unit_codes): New static array.
12146         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
12147         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
12148         UNIT_QID_SIDE_OFFSET): New macros.
12149         (RESERVATION_S2): Adjust value.
12150         (c6x_option_override): Compute c6x_unit_codes.
12151         (assign_reservations): Take the unit_mask of the last instruction
12152         into account.  Detect floating point reservations by looking for
12153         the new units.  Don't assign reservations if the field is already
12154         nonzero.
12155         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
12156         (init_sched_state): Initialize it.
12157         (c6x_clear_sched_context): Free it.
12158         (insn_set_clock): Clear reservation.
12159         (prev_cycle_state): New static variable.
12160         (c6x_init_sched_context): Save it.
12161         (c6x_sched_init): Allocate space for it and clear it.
12162         (c6x_sched_dfa_pre_cycle_insn): New static function.
12163         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
12164         (c6x_variable_issue): Only record units in the unit_mask that
12165         were not set at the start of the cycle.
12166         (c6x_variable_issue): Compute and store the unit_mask from the
12167         current state.
12168         (reorg_split_calls): Ensure the new information remains correct.
12169         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
12170         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
12171         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
12172         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
12173         Add special reservations.
12174         * config/c6x/c6x-sched.md: Regenerate.
12175
12176 2011-09-02  Martin Jambor  <mjambor@suse.cz>
12177
12178         * ipa-prop.h (ipa_node_params): Removed fields
12179         called_with_var_arguments and node_versionable.
12180         (ipa_set_called_with_variable_arg): Removed.
12181         (ipa_is_called_with_var_arguments): Likewise.
12182         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
12183         (determine_versionability): Do not check for type attributes and va
12184         builtins.  Record versionability into inline summary.
12185         (initialize_node_lattices): Do not check
12186         ipa_is_called_with_var_arguments.
12187         (propagate_constants_accross_call): Likewise, ignore arguments we do
12188         not have PARM_DECLs for, set variable flag for parameters that were
12189         not passed a value.
12190         (create_specialized_node): Dump info that we cannot change signature.
12191         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
12192         number of arguments.
12193         (ipa_make_edge_direct_to_target): Likewise.
12194         (ipa_update_after_lto_read): Likewise.
12195         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
12196         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
12197         they were remapped.
12198
12199 2011-09-02  Richard Guenther  <rguenther@suse.de>
12200
12201         PR tree-optimization/27460
12202         PR middle-end/29269
12203         * doc/md.texi (vcond): Document.
12204         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
12205         optab with two modes.
12206         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
12207         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
12208         (vcond_optab): Adjust.
12209         (vcondu_optab): Likewise.
12210         (expand_vec_cond_expr_p): Adjust prototype.
12211         * optabs.c (get_vcond_icode): Adjust.
12212         (expand_vec_cond_expr_p): Likewise.
12213         (expand_vec_cond_expr): Likewise.
12214         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
12215         vector type.
12216         (vectorizable_condition): Allow differing types for comparison
12217         and result.
12218         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
12219         for the comparison.
12220         * config/i386/sse.md (vcond<mode>): Split to
12221         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
12222         vcond<V_128:mode><VI124_128:mode> and
12223         vcondu<V_128:mode><VI124_128:mode>.
12224         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
12225         (vconduv2di): Likewise.
12226         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
12227         (vcondu<mode>): Likewise.
12228         * config/ia64/vect.md (vcond<mode>): Likewise.
12229         (vcondu<mode>): Likewise.
12230         (vcondv2sf): Likewise.
12231         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
12232         * config/rs6000/paired.md (vcondv2sf): Likewise.
12233         * config/rs6000/vector.md (vcond<mode>): Likewise.
12234         (vcondu<mode>): Likewise.
12235         * config/spu/spu.md (vcond<mode>): Likewise.
12236         (vcondu<mode>): Likewise.
12237
12238 2011-09-02  Richard Guenther  <rguenther@suse.de>
12239
12240         * pretty-print.h (pp_unsigned_wide_integer): New.
12241         * tree-pretty-print.c (dump_generic_node): Print unsigned
12242         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
12243
12244 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
12245
12246         PR target/49987
12247         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
12248         valid CONST_VECTOR operands.
12249         (rs6000_expand_vector_init): Likewise.
12250
12251 2011-09-02  Martin Jambor  <mjambor@suse.cz>
12252
12253         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
12254         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
12255         BINFO_VTABLE.  Parameter delta removed, all callers updated.
12256         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
12257         BINFO_VTABLE.
12258         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
12259         all calls.
12260         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
12261         handling of thunk_delta.
12262         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
12263         (devirtualization_time_bonus): Do not handle thunk deltas.
12264         (ipcp_discover_new_direct_edges): Likewise.
12265         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
12266         (try_make_edge_direct_simple_call): Likewise.
12267         (try_make_edge_direct_virtual_call): Likewise.
12268         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
12269         parameter set as unused.
12270         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
12271         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
12272         parameter set as unused.
12273         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
12274         (input_edge_opt_summary): Likewise.
12275         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
12276         BINFO_VIRTUALS at all.
12277         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
12278
12279 2011-09-02  Richard Guenther  <rguenther@suse.de>
12280
12281         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
12282         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
12283
12284 2011-08-31  Richard Guenther  <rguenther@suse.de>
12285
12286         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
12287         handling here, from ...
12288         (expand_expr_real_1): ... here.
12289         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
12290         and VEC_COND_EXPR.
12291         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
12292         a GIMPLE_TERNARY_RHS.
12293         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
12294         and VEC_COND_EXPR here ...
12295         (verify_gimple_assign_single): ... not here.
12296         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
12297         * tree-object-size.c (cond_expr_object_size): Adjust.
12298         (collect_object_sizes_for): Likewise.
12299         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
12300         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
12301         (ssa_forward_propagate_and_combine): Adjust.
12302         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
12303         as ternary.
12304         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
12305         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
12306         * tree-vect-stmt.c (vectorizable_condition): Likewise.
12307         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
12308         (extract_range_from_assignment): Likewise.
12309
12310 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
12311
12312         * config/i386/i386.md: Use (match_test ...) for attribute tests.
12313         * config/i386/mmx.md: Likewise.
12314         * config/i386/sse.md: Likewise.
12315         * config/i386/predicates.md (call_insn_operand): Use
12316         (not (match_test "...")) instead of (match_test "!...")
12317         * config/i386/constraints.md (w): Likewise.
12318
12319 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
12320
12321         * doc/md.texi: Describe the use of match_tests in attribute tests.
12322         * rtl.def (MATCH_TEST): Update commentary.
12323         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
12324         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
12325
12326 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
12327
12328         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
12329         (attr_string): Use copy_md_ptr_loc.
12330
12331 2011-08-31  Martin Jambor  <mjambor@suse.cz>
12332
12333         PR middle-end/49886
12334         * ipa-inline-analysis.c (compute_inline_parameters): Set
12335         can_change_signature of noes with typde attributes.
12336         * ipa-split.c (split_function): Do not skip any arguments if
12337         can_change_signature is set.
12338
12339 2011-08-31  Martin Jambor  <mjambor@suse.cz>
12340
12341         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
12342         check removed.
12343
12344 2011-08-31  Richard Guenther  <rguenther@suse.de>
12345
12346         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
12347         special-casing.
12348
12349 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
12350
12351         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
12352
12353 2011-08-31  Tom de Vries  <tom@codesourcery.com>
12354
12355         PR middle-end/43513
12356         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
12357         * tree-ssa-ccp.c (params.h): Include.
12358         (fold_builtin_alloca_for_var): New function.
12359         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
12360
12361 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
12362
12363         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
12364         Handle FMA option.
12365
12366 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
12367
12368         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
12369         b3 and b4 unsigned.
12370
12371 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
12372
12373         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
12374         when code is SET.
12375
12376 2011-08-30  Richard Guenther  <rguenther@suse.de>
12377
12378         PR middle-end/48571
12379         * gimple.h (maybe_fold_offset_to_address): Remove.
12380         (maybe_fold_offset_to_reference): Likewise.
12381         (maybe_fold_stmt_addition): Likewise.
12382         (may_propagate_address_into_dereference): Likewise.
12383         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
12384         array references.
12385         * gimple-fold.c (canonicalize_constructor_val): Likewise.
12386         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
12387         addresses instead.
12388         (may_propagate_address_into_dereference): Remove.
12389         (maybe_fold_offset_to_array_ref): Likewise.
12390         (maybe_fold_offset_to_reference): Likewise.
12391         (maybe_fold_offset_to_address): Likewise.
12392         (maybe_fold_stmt_addition): Likewise.
12393         (fold_gimple_assign): Do not reconstruct array references but
12394         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
12395         MEM_REF addresses.
12396         (gimple_fold_stmt_to_constant_1): Likewise.
12397         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12398         * gimplify.c (gimplify_conversion): Likewise.
12399         (gimplify_expr): Likewise.
12400
12401 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
12402
12403         * config/i386/fmaintrin.h: New.
12404         * config.gcc: Add fmaintrin.h.
12405         * config/i386/i386.c
12406         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
12407         <IX86_BUILTIN_VFMADDSD3>: Likewise.
12408         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
12409         (*fmai_fmadd_<mode>): Likewise.
12410         (*fmai_fmsub_<mode>): Likewise.
12411         (*fmai_fnmadd_<mode>): Likewise.
12412         (*fmai_fnmsub_<mode>): Likewise.
12413         * config/i386/immintrin.h: Add fmaintrin.h.
12414
12415 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
12416
12417         * genautomata.c (NO_COMB_OPTION): New macro.
12418         (no_comb_flag): New static variable.
12419         (gen_automata_option): Handle NO_COMB_OPTION.
12420         (comb_vect_p): False if no_comb_flag.
12421         (add_vect): Move computation of min/max values.  Return early if
12422         no_comb_flag.
12423         * doc/md.texi (automata_option): Document no-comb-vect.
12424
12425         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
12426         "__x86.get_pc_thunk".
12427
12428         * bb-reorder.c (insert_section_boundary_note): Only do it if
12429         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
12430
12431 2011-08-30  Christian Bruel  <christian.bruel@st.com>
12432
12433         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
12434         flag_profile_use.
12435
12436 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
12437
12438         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
12439         to off.  Document switch.
12440         * doc/invoke.texi (-msave-toc-indirect): Ditto.
12441
12442 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
12443
12444         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
12445         conditionals and comments inside macro arguments.
12446
12447 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
12448             Richard Guenther  <rguenther@suse.de>
12449
12450         * tree.h (constant_boolean_node): Adjust prototype.
12451         * fold-const.c (fold_convert_loc): Move aggregate conversion
12452         leeway down.
12453         (constant_boolean_node): Make value parameter boolean, add
12454         vector type handling.
12455         (fold_unary_loc): Use constant_boolean_node.
12456         (fold_binary_loc): Preserve types properly when folding
12457         COMPLEX_EXPR <__real x, __imag x>.
12458         * gimplify.c (gimplify_expr): Handle vector comparison.
12459         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
12460         comparison.
12461         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
12462         comparisons.
12463
12464 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
12465
12466         PR middle-end/48722
12467         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
12468         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
12469         (verify_rtl_sharing): Likewise and verify_rtx_sharing
12470         in there too.
12471         (unshare_all_rtl_in_chain): For CALL_INSNs
12472         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
12473
12474 2011-08-29  Richard Guenther  <rguenther@suse.de>
12475
12476         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
12477         on the built ADDR_EXPR.
12478
12479 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
12480
12481         PR debug/50215
12482         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
12483         before adding ENTRY_VALUE to val->locs.
12484
12485 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
12486
12487         PR bootstrap/50218
12488         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
12489         comp.
12490
12491 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
12492
12493         * doc/rtl.texi (simple_return): Document.
12494         (parallel, PATTERN): Here too.
12495         * doc/md.texi (return): Mention it's allowed to expand to simple_return
12496         in some cases.
12497         (simple_return): Document standard pattern.
12498         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
12499         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
12500         * reorg.c (function_return_label, function_simple_return_label):
12501         New static variables, replacing...
12502         (end_of_function_label): ... this.
12503         (simplejump_or_return_p): New static function.
12504         (optimize_skip, steal_delay_list_from_fallthrough,
12505         fill_slots_from_thread): Use it.
12506         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
12507         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
12508         (find_end_label): Take a new arg which is one of the two return
12509         rtxs.  Depending on which, set either function_return_label or
12510         function_simple_return_label.  All callers changed.
12511         (make_return_insns): Make both kinds.
12512         (dbr_schedule): Adjust for two kinds of end labels.
12513         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
12514         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
12515         (gen_expand, gen_split): Use ANY_RETURN_P.
12516         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
12517         * rtl.def (SIMPLE_RETURN): New code.
12518         * ifcvt.c (find_if_case_1): Be more careful about
12519         redirecting jumps to the EXIT_BLOCK.
12520         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
12521         returnjump_p_1): Handle SIMPLE_RETURNs.
12522         * print-rtl.c (print_rtx): Likewise.
12523         * rtl.c (copy_rtx): Likewise.
12524         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
12525         * combine.c (simplify_set): Likewise.
12526         * resource.c (find_dead_or_set_registers, mark_set_resources):
12527         Likewise.
12528         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
12529         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
12530         (init_emit_regs): Initialize simple_return_rtx.
12531         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
12532         force_nonfallthru_and_redirect.
12533         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
12534         (GR_SIMPLE_RETURN): New enum value.
12535         (simple_return_rtx): New macro.
12536         * basic-block.h (force_nonfallthru_and_redirect): Adjust
12537         declaration.
12538         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
12539         argument.  All callers changed.  Be careful about what kinds of
12540         returnjumps to generate.
12541         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
12542         ix86_pad_short_function): Likewise.
12543         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
12544         of return.
12545         * config/mips/mips.md (any_return): New code_iterator.
12546         (optab): Add cases for return and simple_return.
12547         (return): Expand to a simple_return.
12548         (simple_return): New pattern.
12549         (*<optab>, *<optab>_internal for any_return): New patterns.
12550         (return_internal): Remove.
12551         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
12552         a simple_return_internal.
12553
12554 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
12555
12556         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
12557         (vec_extract_lo_<mode>): Prevent both operands in memory.
12558         (vec_extract_lo_v16hi): Ditto.
12559         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
12560
12561 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
12562
12563         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
12564         (*sse2_mulv4si3): Ditto.
12565         (mulv2di3): Ditto.
12566         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
12567         notes to REG_EQUAL.
12568
12569 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
12570
12571         PR target/50202
12572         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
12573         when all outputs are unused.
12574         (sse4_2_pcmpistr): Ditto.
12575
12576 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
12577
12578         * config/i386/i386.md (round<mode>2): New expander.
12579         * config/i386/i386.c (enum ix86_builtins): Add
12580         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
12581         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
12582         descriptions.
12583         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
12584         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
12585
12586 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
12587
12588         PR middle-end/50083
12589         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
12590         only when TARGET_C99_FUNCTIONS.
12591         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
12592         <BUILT_IN_RINT{,F,L}>: Ditto.
12593
12594 2011-08-26  Michael Matz  <matz@suse.de>
12595             Jakub Jelinek  <jakub@redhat.com>
12596
12597         PR lto/50165
12598         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
12599         don't call strlen twice, use memcpy.
12600
12601 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
12602
12603         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
12604         * config/i386/bmiintrin.h: Likewise.
12605         * config/i386/lzcntintrin.h: Likewise.
12606
12607         * config/i386/immintrin.h: Include <lzcntintrin.h>,
12608         <bmiintrin.h> and <bmi2intrin.h>.
12609
12610 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12611
12612         PR target/50166
12613         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
12614         * configure: Regenerate.
12615
12616 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
12617
12618         PR c/50179
12619         * c-typeck.c (c_process_expr_stmt): Skip over nops and
12620         call mark_exp_read even if exprv is ADDR_EXPR.
12621
12622 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
12623
12624         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
12625         to df_set_dead_notes_for_mw.
12626
12627 2011-08-26  Richard Guenther  <rguenther@suse.de>
12628
12629         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
12630
12631 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
12632             Tom de Vries  <tom@codesourcery.com>
12633
12634         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
12635         (struct ivopts_data): Add loop_single_exit_p field.
12636         (niter_for_exit): Change parameter desc_p into return value.  Return
12637         desc if desc->may_be_zero.  Free desc if unused.
12638         (niter_for_single_dom_exit): Change return type.
12639         (find_induction_variables): Handle changed return type of
12640         niter_for_single_dom_exit.  Dump may_be_zero.
12641         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
12642         (set_use_iv_cost): Add and handle comp parameter.
12643         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
12644         comp argument to set_use_iv_cost.
12645         (strip_wrap_conserving_type_conversions, expr_equal_p)
12646         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
12647         (may_eliminate_iv): Add comp parameter.  Handle new return type of
12648         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
12649         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
12650         and may_eliminate_iv.
12651         (rewrite_use_compare): Move call to iv_elimination_compare to ...
12652         (may_eliminate_iv): Here.
12653         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
12654
12655 2011-08-26  Tom de Vries  <tom@codesourcery.com>
12656
12657         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
12658         accessing TREE_TYPE.
12659
12660 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
12661
12662         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
12663         (*ior_scc_scc_cmp): Likewise
12664         (*and_scc_scc): Likewise.
12665         (*and_scc_scc_cmp): Likewise.
12666         (*and_scc_scc_nodom): Likewise.
12667         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
12668
12669 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
12670
12671         * rtlanal.c (nonzero_bits1): Handle CLRSB.
12672
12673 2011-08-26  Richard Guenther  <rguenther@suse.de>
12674
12675         * expr.c (string_constant): Handle &MEM_REF.
12676
12677 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
12678
12679         * config/arm/arm.c (struct four_ints): New type.
12680         (count_insns_for_constant): Delete function.
12681         (find_best_start): Delete function.
12682         (optimal_immediate_sequence): New function.
12683         (optimal_immediate_sequence_1): New function.
12684         (arm_gen_constant): Move constant splitting code to
12685         optimal_immediate_sequence.
12686         Rewrite constant negation/invertion code.
12687
12688 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
12689
12690         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
12691         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
12692         Remove prototype. Remove static function type.
12693         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
12694         Add arch attribute.
12695         * config/arm/constraints.md (Pj, PJ): New constraints.
12696
12697 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12698
12699         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
12700         ("cortex_a9_multiply_long"): New and use above.  Handle all
12701         long multiply cases.
12702         ("cortex_a9_multiply"): Handle smmul and smmulr.
12703         ("cortex_a9_mac"): Handle smmla.
12704
12705 2011-08-25  Richard Henderson  <rth@redhat.com>
12706
12707         PR 50132
12708         PR 49864
12709         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
12710         non-constant stack adjutment.
12711         * expr.c (find_args_size_adjust): Break out from ...
12712         (fixup_args_size_notes): ... here.
12713         * rtl.h (find_args_size_adjust): Declare.
12714
12715 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
12716
12717         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
12718         sse4 and sse4_noavx.
12719         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
12720         (*pushdf_rex64): Change Y2 register constraint to x.
12721         (*movdf_internal_rex64): Ditto.
12722         (*zero_extendsidi2_rex64): Ditto.
12723         (*movdi_internal): Change Y2 register constraint to x
12724         and update "isa" attribute.
12725         (*pushdf): Ditto.
12726         (*movdf internal): Ditto.
12727         (zero_extendsidi2_1): Ditto.
12728         (*truncdfdf_mixed): Ditto.
12729         (*truncxfdf2_mixed): Ditto.
12730         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
12731         register constraint to x.
12732         (*movv2sf_internal_rex64): Ditto.
12733         (*mov<mode>_internal): Change Y2 register constraint to x
12734         and add "isa" attribute.
12735         (*movv2sf_internal): Ditto.
12736         (*vec_extractv2si_1): Ditto.
12737         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
12738         constraints to x and update "isa" attribute.
12739         (*vec_interleave_highv2df): Change Y3 registerconstraint
12740         to x and update "isa" attribute.
12741         (*vec_interleave_lowv2df): Ditto.
12742         (*vec_concatv2df): Change Y2 register constraint to x and
12743         update "isa" attribute.
12744         (sse2_loadld): Ditto.
12745         (*vec_extractv2di_1): Ditto.
12746         (*vec_dupv4si): Ditto.
12747         (*vec_dupv2di): Ditto.
12748         (*vec_concatv4si): Ditto.
12749         (vec_concatv2di): Ditto.
12750         * config/i386/constraints.md (Y2): Remove.
12751         (Y3): Ditto.
12752         (Y4): Ditto.
12753
12754 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12755
12756         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
12757         dump_def_use_chain): Don't declare.
12758         (mark_conflict, create_new_chain): Move before users.
12759         (regrename_optimize): Move to near end of file.
12760
12761 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12762
12763         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
12764         (secondary_input_reload_class): Remove Prototype.
12765         * config/avr/avr.c (byte_immediate_operand): Remove Function.
12766         * config/avr/avr.md (setmemhi): Use u8_operand.
12767         (strlenhi): Use const0_rtx for comparison.
12768         * config/avr/avr.h (avr_reg_order): Remove Declaration.
12769
12770 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12771
12772         * config/avr/avr.c (reg_class_tab): Make local to
12773         avr_regno_reg_class.  Return smallest register class available.
12774
12775 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12776
12777         * config/avr/avr.c (STR_PREFIX_P): New Define.
12778         (avr_asm_declare_function_name): Use it.
12779         (avr_asm_named_section): Use it.
12780         (avr_section_type_flags): Use it.
12781
12782 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12783
12784         * doc/md.texi (automata_option): Document collapse-ndfa.
12785         * genautomata.c (COLLAPSE_OPTION): New macro.
12786         (collapse_flag): New static variable.
12787         (struct description): New member normal_decls_num.
12788         (struct automaton): New members advance_ainsn and collapse_ainsn.
12789         (gen_automata_option): Check for COLLAPSE_OPTION.
12790         (collapse_ndfa_insn_decl): New static variable.
12791         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
12792         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
12793         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
12794         necessary.  Use normal_decls_num rather than decls_num, remove
12795         test for special decls.
12796         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
12797         (make_automaton); Likewise.  Use the new advance_cycle_insn member
12798         of struct automaton.
12799         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
12800         is set.
12801         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
12802         transition.  Create the necessary transitions for it.
12803         (create_ainsns): Return void.  Take an automaton_t argument, and
12804         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
12805         callers changed.
12806         (COLLAPSE_NDFA_VALUE_NAME): New macro.
12807         (output_tables): Output code to define it.
12808         (output_internal_insn_code_evaluation): Output code to accept
12809         const0_rtx as collapse-ndfa transition.
12810         (output_default_latencies, output_print_reservation_func,
12811         output_print_description): Reorganize loops to use normal_decls_num
12812         as loop bound; remove special case for advance_cycle_insn_decl.
12813         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
12814         (check_automata_insn_issues): Check for collapse_ainsn.
12815         (expand_automate): Allocate sufficient space.  Initialize
12816         normal_decls_num.
12817
12818 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
12819
12820         * config/avr/avr.md: Fix indentation from r177991.
12821
12822 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12823
12824         * regrename.c (struct du_head): Remove member terminated.
12825         (create_new_chain): Don't initialize it.
12826         (scan_rtx_reg): Don't set or test it, test the open_chains_set
12827         bitmap instead.
12828         (tick, this_tick): New global variables, moved out of
12829         regrename_optimize.
12830         (current_id, open_chains, closed_chains, open_chains_set,
12831         live_in_chains, live_hard_regs): Reorder declarations.
12832         (dump_def_use_chain): Move function earlier in the file.
12833         (rename_chains): New static function, broken out of
12834         regrename_optimize.
12835         (regrename_optimize): Use it.  Remove #if 0'ed code.
12836
12837 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12838
12839         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
12840
12841 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
12842
12843         PR target/50172
12844         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
12845
12846 2011-08-24  Richard Guenther  <rguenther@suse.de>
12847
12848         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
12849         ref in the basic-block case.  Move stripping array-refs
12850         to the place we create an access-function for it.  Remove
12851         bogus stripping down a MEM_REF to its base.
12852
12853 2011-08-24  Richard Guenther  <rguenther@suse.de>
12854
12855         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
12856         with -fno-strict-overflow.
12857
12858 2011-08-24  Richard Guenther  <rguenther@suse.de>
12859
12860         * tree-vectorizer.c (vect_print_dump_info): Avoid the
12861         file and location clutter when dumping to dump files.
12862
12863 2011-08-24  Simon Baldwin  <simonb@google.com>
12864
12865         * gengtype-state.c (write_state): Remove timestamped header line.
12866
12867 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
12868
12869         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
12870         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
12871         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
12872         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
12873         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
12874         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
12875         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
12876         rules.
12877         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
12878
12879 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
12880
12881         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
12882
12883 2011-08-24  Richard Guenther  <rguenther@suse.de>
12884
12885         PR tree-optimization/50067
12886         * tree-data-ref.c (dr_analyze_indices): Do not add an access
12887         function for a MEM_REF base that has no evolution in the loop
12888         nest or that is not analyzable.
12889
12890 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
12891
12892         * ira.c (ira_init_register_move_cost): Check small subclasses
12893         through ira_reg_class_max_nregs and ira_available_class_regs.
12894
12895 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
12896
12897         * config/i386/constraints.md (Yp): New register constraint.
12898         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
12899         Yp register constraint.
12900         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
12901         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
12902         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
12903
12904 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12905
12906         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
12907
12908 2011-08-23  Mark Heffernan  <meheff@google.com>
12909
12910         PR middle-end/38509
12911         * common.opt (Wfree-nonheap-object): New option.
12912         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
12913         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
12914         to warning.
12915         (expand_builtin): Make warning conditional.
12916
12917 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
12918
12919         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
12920         (length_immediate): Handle imulx, ishiftx and rotatex.
12921         (imm_disp): Ditto.
12922         (isa): Add bmi2.
12923         (enabled): Handle bmi2.
12924         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
12925         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
12926         (*bmi2_umulditi3_1): New insn pattern.
12927         (*bmi2_umulsidi3_1): Ditto.
12928         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
12929         (*bmi2_ashl<mode>3_1): New insn pattern.
12930         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
12931         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
12932         (*bmi2_ashlsi3_1_zext): New insn pattern.
12933         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
12934         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
12935         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
12936         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
12937         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
12938         flags dependency.
12939         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
12940         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
12941         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
12942         flags dependency.
12943         (*bmi2_rorx<mode>3_1): New insn pattern.
12944         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
12945         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
12946         (*rotatert<mode>3_1 splitter): Ditto.
12947         (*bmi2_rorxsi3_1_zext): New insn pattern.
12948         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
12949         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
12950         (*rotatertsi3_1_zext splitter): Ditto.
12951
12952 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12953
12954         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
12955         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
12956         (ix86_handle_option): Handle OPT_mbmi2 case.
12957         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
12958         (x86_64-*-*): Likewise.
12959         * config/i386/bmi2intrin.h: New file.
12960         * config/i386/cpuid.h (bit_BMI2): New.
12961         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12962         BMI2 feature.
12963         * config/i386/i386-c.c (ix86_target_macros_internal):
12964         Conditionally define __BMI2__.
12965         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
12966         Handle BMI2 option.
12967         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
12968         (print_reg): New code.
12969         (ix86_print_operand): Likewise.
12970         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
12971         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
12972         IX86_BUILTIN_PEXT64.
12973         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
12974         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
12975         IX86_BUILTIN_PEXT64.
12976         * config/i386/i386.h (TARGET_BMI2): New.
12977         * config/i386/i386.md (UNSPEC_PDEP): New.
12978         (UNSPEC_PEXT): Likewise.
12979         (*bmi2_bzhi_<mode>3): Likewise.
12980         (*bmi2_pdep_<mode>3): Likewise.
12981         (*bmi2_pext_<mode>3): Likewise.
12982         * config/i386/i386.opt (mbmi2): New.
12983         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
12984         is defined.
12985         * doc/extend.texi: Document BMI2 built-in functions.
12986         * doc/invoke.texi: Document -mbmi2.
12987
12988 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
12989
12990         PR middle-end/50161
12991         * simplify-rtx.c (simplify_const_unary_operation): If
12992         op is CONST_INT, don't look at op_mode, but use instead mode.
12993         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
12994         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
12995         operation and TRUNCATE/ZERO_EXTEND if needed.
12996         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
12997         Document that operand mode must be same as operation mode,
12998         or VOIDmode.
12999         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
13000         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
13001         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
13002         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
13003         use the mode of operand for the operation and add truncate
13004         or zero_extend around if needed.
13005         * config/c6x/c6x.md (ctzdi2): Likewise.
13006         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
13007
13008 2011-08-12  Michael Matz  <matz@suse.de>
13009
13010         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
13011         (gimple_expand_cfg): Merge alignment info for coalesced pointer
13012         SSA names.
13013
13014 2011-08-23  Richard Guenther  <rguenther@suse.de>
13015
13016         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
13017         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
13018         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
13019         from ...
13020         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
13021         (mem_refs_may_alias_p): Adjust.
13022         * tree-data-ref.h (dr_may_alias_p): Adjust.
13023         * tree-data-ref.c: Include tree-affine.h.
13024         (dr_analyze_indices): Do nothing for the non-loop case.
13025         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
13026         more cases in the non-loop case.
13027         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
13028         calls to dr_may_alias_p.
13029         (write_alias_graph_to_ascii_ecc): Likewise.
13030         (write_alias_graph_to_ascii_dot): Likewise.
13031         (build_alias_set_optimal_p): Likewise.
13032
13033 2011-08-23  Richard Guenther  <rguenther@suse.de>
13034
13035         PR tree-optimization/50162
13036         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
13037
13038 2011-08-23  Richard Guenther  <rguenther@suse.de>
13039
13040         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
13041         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
13042         (create_data_ref): Also dump access functions for the created data-ref.
13043
13044 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
13045             Kirill Yukhin  <kirill.yukhin@intel.com>
13046
13047         PR target/50155
13048         * config/i386/sse.md (VI_AVX2): New.
13049         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
13050         (*<plusminus_insn><mode>3): Ditto.
13051         (<sse2_avx2>_andnot<mode>3): Ditto.
13052         (*andnot<mode>3): Fix order of cond operands.
13053         Add asserts for correct TARGET_xxx.
13054         (*<any_logic:code><mode>3): Ditto.
13055
13056 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
13057
13058         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
13059         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
13060         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
13061         regclass argument type to reg_class_t. Change 'max' and 'v' vars
13062         and return types to unsigned char. Use reg_class_contents instead
13063         of class_contents.
13064         (TARGET_CLASS_MAX_NREGS): Define.
13065
13066 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
13067
13068         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
13069         to make computed_jump_p return true.
13070
13071 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13072
13073         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
13074         (PICFLAG_FOR_TARGET): Substitute.
13075         * aclocal.m4: Regenerate.
13076         * configure: Regenerate.
13077
13078 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
13079
13080         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
13081         after reading in the pch.
13082
13083 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
13084
13085         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
13086         * configure: Regenerated.
13087
13088 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
13089
13090         PR tree-optimization/50133
13091         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
13092         from stmt instead of some statement around gsi.
13093
13094         PR middle-end/50141
13095         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
13096         innerdecl is a VAR_DECL.
13097
13098 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
13099
13100         * config/i386/avx2intrin.h: New file.
13101         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
13102         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
13103         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
13104         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
13105         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
13106         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
13107         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
13108         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
13109         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
13110         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
13111         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
13112         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
13113         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
13114         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
13115         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
13116         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
13117         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
13118         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
13119         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
13120         VOID_FTYPE_PV8SI_V8SI_V8SI,
13121         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
13122         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
13123         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
13124         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
13125         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
13126         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
13127         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
13128         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
13129         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
13130         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
13131         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
13132         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
13133         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
13134         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
13135         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
13136         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
13137         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
13138         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
13139         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
13140         V4DI_FTYPE_V4DI_INT_CONVERT,
13141         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
13142         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
13143         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
13144         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
13145         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
13146         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
13147         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
13148         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
13149         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
13150         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
13151         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
13152         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
13153         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
13154         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
13155         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
13156         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
13157         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
13158         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
13159         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
13160         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
13161         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
13162         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
13163         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
13164         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
13165         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
13166         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
13167         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
13168         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
13169         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
13170         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
13171         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
13172         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
13173         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
13174         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
13175         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
13176         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
13177         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
13178         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
13179         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
13180         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
13181         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
13182         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
13183         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
13184         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
13185         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
13186         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
13187         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
13188         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
13189         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
13190         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
13191         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
13192         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
13193         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
13194         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
13195         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
13196         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
13197         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
13198         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
13199         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
13200         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
13201         IX86_BUILTIN_VBROADCASTSS_PS256,
13202         IX86_BUILTIN_VBROADCASTSD_PD256,
13203         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
13204         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
13205         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
13206         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
13207         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
13208         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
13209         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
13210         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
13211         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
13212         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
13213         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
13214         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
13215         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
13216         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
13217         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
13218         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
13219         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
13220         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
13221         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
13222         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
13223         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
13224         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
13225         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
13226         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
13227         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
13228         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
13229         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
13230         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
13231         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
13232         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
13233         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
13234         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
13235         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
13236         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
13237         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
13238         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
13239         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
13240         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
13241         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
13242         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
13243         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
13244         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
13245         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
13246         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
13247         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
13248         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
13249         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
13250         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
13251         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
13252         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
13253         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
13254         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
13255         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
13256         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
13257         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
13258         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
13259         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
13260         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
13261         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
13262         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
13263         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
13264         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
13265         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
13266         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
13267         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
13268         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
13269         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
13270         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
13271         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
13272         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
13273         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
13274         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
13275         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
13276         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
13277         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
13278         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
13279         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
13280         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
13281         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
13282         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
13283         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
13284         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
13285         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
13286         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
13287         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
13288         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
13289         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
13290         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
13291         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
13292         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
13293         IX86_BUILTIN_VBROADCASTSD_PD256,
13294         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
13295         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
13296         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
13297         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
13298         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
13299         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
13300         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
13301         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
13302         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
13303         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
13304         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
13305         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
13306         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
13307         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
13308         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
13309         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
13310         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
13311         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
13312         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
13313         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
13314         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
13315         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
13316         IX86_BUILTIN_GATHERDIV8SI.
13317         (ix86_preferred_simd_mode): Support AVX2 modes.
13318         (ix86_expand_args_builtin): Support AVX2 builtins.
13319         (ix86_expand_special_args_builtin): Likewise.
13320         (ix86_expand_builtin): Likewise.
13321         * config/i386/i386.md (UNSPEC_VPERMSI): New.
13322         (UNSPEC_VPERMDF): Likewise.
13323         (UNSPEC_VPERMSF): Likewise.
13324         (UNSPEC_VPERMDI): Likewise.
13325         (UNSPEC_VPERMTI): Likewise.
13326         (UNSPEC_GATHER): Likewise.
13327         (ssemodesuffix): Extend.
13328         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
13329         is defined.
13330         * config/i386/predicates.md (const1248_operand): New.
13331         * config/i386/sse.md (VI1_AVX2): New mode iterator.
13332         (VI2_AVX2): Likewise.
13333         (VI4_AVX2): Likewise.
13334         (VI8_AVX2): Likewise.
13335         (VIMAX_AVX2): Likewise.
13336         (SSESCALARMODE): Likewise.
13337         (VI12_AVX2): Likewise.
13338         (VI24_AVX2): Likewise.
13339         (VI124_AVX2): Likewise.
13340         (VI248_AVX2): Likewise.
13341         (VI48_AVX2): Likewise.
13342         (VI4SD_AVX2): Likewise.
13343         (V48_AVX2): Likewise.
13344         (AVX256MODE2P): Likewise.
13345         (AVXMODE48P_DI): Likewise.
13346         (sse2_avx2): New mode attribute.
13347         (ssse3_avx2): Likewise.
13348         (sse4_1_avx2): Likewise.
13349         (avx_avx2): Likewise.
13350         (ssebytemode): Likewise.
13351         (AVXTOSSEMODE): Likewise.
13352         (AVXMODE48P_DI): Likewise.
13353         (gthrfirstp): Likewise.
13354         (gthrlastp): Likewise.
13355         (lshift): New code_iterator
13356         (lshift): New code attribute.
13357         (lshift): Likewise.
13358         (ssescalarmodesuffix): Update.
13359         (sseunpackmode): Likewise.
13360         (ssepackmode): Likewise.
13361         (avx2_vec_dupv4sf): New insn pattern.
13362         (avx2_vec_dupv8sf): Likewise.
13363         (avx2_interleave_highv4di): Likewise.
13364         (avx2_interleave_lowv4di): Likewise.
13365         (avx2_umulv4siv4di3): Likewise
13366         (*avx2_umulv4siv4di3): Likewise
13367         (avx2_pmaddwd): Likewise.
13368         (*avx2_pmaddwd): Likewise.
13369         (avx2_lshrqv4di3): Likewise.
13370         (avx2_lshlqv4di3): Likewise.
13371         (avx2_lshl<mode>3): Likewise.
13372         (avx2_<umaxmin:code><mode>3): Likewise.
13373         (*avx2_<umaxmin:code><mode>3): Likewise.
13374         (avx2_<smaxmin:code><mode>3): Likewise.
13375         (*avx2_<smaxmin:code><mode>3): Likewise.
13376         (avx2_eq<mode>3): Likewise.
13377         (*avx2_eq<mode>3): Likewise.
13378         (avx2_gt<mode>3): Likewise.
13379         (avx2_interleave_highv32qi): New.
13380         (avx2_interleave_lowv32qi): Likewise.
13381         (avx2_interleave_highv16hi): Likewise.
13382         (avx2_interleave_lowv16hi): Likewise.
13383         (avx2_interleave_highv8si): Likewise.
13384         (avx2_interleave_lowv8si): Likewise.
13385         (avx2_pshufd): Likewise.
13386         (avx2_pshufd_1): Likewise.
13387         (avx2_pshuflwv3): Likewise.
13388         (avx2_pshuflw_1): Likewise.
13389         (avx2_pshufhwv3): Likewise.
13390         (avx2_pshufhw_1): Likewise.
13391         (avx2_uavgv32qi3): Likewise.
13392         (*avx2_uavgv32qi3): Likewise.
13393         (avx2_uavgv16hi3): Likewise.
13394         (*avx2_uavgv16hi3): Likewise.
13395         (avx2_pmovmskb): Likewise.
13396         (avx2_phaddwv16hi3): Likewise.
13397         (avx2_phadddv8si3): Likewise.
13398         (avx2_phaddswv16hi3): Likewise.
13399         (avx2_phsubwv16hi3): Likewise.
13400         (avx2_phsubdv8si3): Likewise.
13401         (avx2_phsubswv16hi3): Likewise.
13402         (avx2_pmaddubsw256): Likewise.
13403         (avx2_umulhrswv16hi3): Likewise.
13404         (*avx2_umulhrswv16hi3): Likewise.
13405         (avx2_packusdw): Likewise.
13406         (avx2_pblendd<mode>): Likewise.
13407         (avx2_<code>v16qiv16hi2): Likewise.
13408         (avx2_<code>v8qiv8si2): Likewise.
13409         (avx2_<code>v8hiv8si2): Likewise.
13410         (avx2_<code>v4qiv4di2): Likewise.
13411         (avx2_<code>v4hiv4di2): Likewise.
13412         (avx2_<code>v4siv4di2): Likewise.
13413         (avx2_pbroadcast<mode>): Likewise.
13414         (avx2_permvarv8si): Likewise.
13415         (avx2_permv4df): Likewise.
13416         (avx2_permvarv8sf): Likewise.
13417         (avx2_permv4di): Likewise.
13418         (avx2_permv2ti): Likewise.
13419         (avx2_vec_dupv4df): Likewise.
13420         (avx2_vbroadcasti128_<mode>): Likewise.
13421         (avx2_vec_set_lo_v4di): Likewise.
13422         (avx2_vec_set_hi_v4di): Likewise.
13423         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
13424         (avx2_extracti128): Likewise.
13425         (avx2_inserti128): Likewise.
13426         (avx2_ashrvv8si): Likewise.
13427         (avx2_ashrvv4si): Likewise.
13428         (avx2_<lshift>vv8si): Likewise.
13429         (avx2_<lshift>v<mode>): Likewise.
13430         (avx2_<lshift>vv2di): Likewise.
13431         (avx2_gathersi<mode>): Likewise.
13432         (*avx2_gathersi<mode>): Likewise.
13433         (avx2_gatherdi<mode>): Likewise.
13434         (*avx2_gatherdi<mode>): Likewise.
13435         (avx2_gatherdi<mode>256): Likewise.
13436         (*avx2_gatherdi<mode>256): Likewise.
13437         (<plusminus_insn><mode>3): Use VI mode iterator.
13438         (*<plusminus_insn><mode>3): Use VI mode iterator.
13439         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
13440         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
13441         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
13442         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
13443         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
13444         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
13445         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
13446         Use VI2_AVX2 mode iterator.
13447         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
13448         Use VI2_AVX2 mode iterator.
13449         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
13450         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
13451         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
13452         Use VI4_AVX2 mode iterator.
13453         (ashr<mode>3): Use VI24_AVX2 mode iterator.
13454         (lshr<mode>3): Use VI248_AVX2 mode iterator.
13455         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
13456         Use VIMAX_AVX2 mode iterator.
13457         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
13458         Use VI mode iterator.
13459         (*andnot<mode>3): Update for AVX2.
13460         (*<any_logic:code><mode>3): Likewise.
13461         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
13462         Use VI1_AVX mode iterator.
13463         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
13464         Use VI2_AVX mode iterator.
13465         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
13466         Use VI1_AVX mode iterator.
13467         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
13468         Use VI8_AVX2 mode iterator.
13469         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
13470         Use VI1_AVX2 mode iterator.
13471         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
13472         Use VI124_AVX2 mode iterator.
13473         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
13474         Use SSESCALARMODE mode iterator.
13475         (abs<mode>2): Use VI124_AVX2 mode iterator.
13476         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
13477         Use VI8_AVX2 mode iterator.
13478         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
13479         Use VI1_AVX2 mode iterator.
13480         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
13481         Use VI1_AVX2 mode iterator.
13482         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
13483         Use VI2_AVX2 mode iterator.
13484         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
13485         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
13486         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
13487         avx_maskstore<ssemodesuffix><avxsizesuffix>.
13488         Use V48_AVX2 mode iterator.
13489         * doc/extend.texi: Document AVX2 built-in functions.
13490         * doc/invoke.texi: Document -mavx2.
13491
13492 2011-08-22  Matthias Klose <doko@debian.org>
13493
13494         Revert:
13495         2011-07-11  Arthur Loiret  <aloiret@debian.org>
13496                     Matthias Klose <doko@debian.org>
13497         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
13498         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
13499         convention.
13500         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
13501
13502 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
13503
13504         PR bootstrap/50146
13505         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
13506         to #ifndef HONOR_REG_ALLOC_ORDER block.
13507
13508 2011-08-21  Richard Henderson  <rth@redhat.com>
13509
13510         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
13511         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
13512         * resource.c (next_insn_no_annul): Likewise.
13513         (mark_set_resources): Likewise.
13514         * reorg.c (delete_from_delay_slot): Likewise.
13515         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
13516         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
13517
13518 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
13519
13520         * config/i386/i386.md (any_div): Remove.
13521         (sgnprefix): Update for removal.
13522         (u): Ditto.
13523
13524 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
13525
13526         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
13527         for ira_reg_class_max_nregs.  Increase pressure by 1.
13528         (mark_pseudo_regno_subword_dead): Use allocno class
13529         for ira_reg_class_max_nregs.
13530
13531 2011-08-20  Richard Henderson  <rth@redhat.com>
13532
13533         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
13534         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
13535         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
13536         config/c6x/ltf.c: Adjust include path for soft-fp.
13537
13538 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
13539
13540         PR other/46770
13541         * config.gcc (tm_file): Add initfini-array.h if
13542         .init_arrary/.fini_array are supported.
13543
13544         * crtstuff.c: Don't generate .ctors nor .dtors sections if
13545         USE_INITFINI_ARRAY is defined.
13546
13547         * output.h (default_elf_init_array_asm_out_constructor): New.
13548         (default_elf_fini_array_asm_out_destructor): Likewise.
13549         * varasm.c (elf_init_array_section): Likewise.
13550         (elf_fini_array_section): Likewise.
13551         (get_elf_initfini_array_priority_section): Likewise.
13552         (default_elf_init_array_asm_out_constructor): Likewise.
13553         (default_elf_fini_array_asm_out_destructor): Likewise.
13554
13555         * config/initfini-array.h: New.
13556
13557 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
13558
13559         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
13560         OK for ST_REGS and FP_REGS before taking those classes into account.
13561
13562 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
13563
13564         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
13565         before checking for annulled branches.
13566
13567 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
13568
13569         * config/i386/i386.c (ix86_binary_operator_ok): Use
13570         satisfies_constraint_L.
13571
13572 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
13573             Michael Matz  <matz@suse.de>
13574
13575         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
13576         trunc (a + copysign (nextafter (0.5, 0.0), a)).
13577
13578 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
13579
13580         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13581         * doc/tm.texi: Regenerate.
13582         * targhooks.c (default_preferred_output_reload_class): Don't use
13583         PREFERRED_OUTPUT_RELOAD_CLASS macro.
13584         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
13585
13586 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
13587
13588         PR tree-optimization/48739
13589         * tree-ssa.c: Include cfgloop.h.
13590         (execute_update_addresses_taken): When updating ssa, if in loop closed
13591         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
13592         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
13593
13594 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
13595
13596         PR rtl-optimization/49936
13597         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
13598         for calculation of max register move costs.
13599
13600 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13601
13602         * c-parser.c (c_parser_postfix_expression): Convert operands of
13603         __builtin_complex to their semantic types.
13604
13605 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
13606
13607         PR middle-end/49721
13608         * explow.c (convert_memory_address_addr_space): Also permute the
13609         conversion and addition of constant for zero-extend.
13610
13611 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13612
13613         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
13614         * doc/extend.texi (__builtin_complex): Document.
13615
13616 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13617
13618         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
13619         beyond conversions.
13620         (convert_mult_to_widen): Convert constant inputs to the right type.
13621         (convert_plusminus_to_widen): Don't automatically reject inputs that
13622         are not an SSA_NAME.
13623         Convert constant inputs to the right type.
13624
13625 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13626
13627         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
13628         to the correct type.
13629
13630 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13631
13632         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
13633         unsigned inputs of different modes.
13634         (convert_plusminus_to_widen): Likewise.
13635
13636 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13637
13638         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
13639         'type'.
13640         Use 'type' from caller, not inferred from 'rhs'.
13641         Don't reject non-conversion statements. Do return lhs in this case.
13642         (is_widening_mult_p): Add new argument 'type'.
13643         Use 'type' from caller, not inferred from 'stmt'.
13644         Pass type to is_widening_mult_rhs_p.
13645         (convert_mult_to_widen): Pass type to is_widening_mult_p.
13646         (convert_plusminus_to_widen): Likewise.
13647
13648 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13649
13650         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
13651         Ensure the the larger type is the first operand.
13652
13653 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13654
13655         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
13656         unsupported unsigned multiplies to signed.
13657         (convert_plusminus_to_widen): Likewise.
13658
13659 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13660
13661         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
13662         conversion statement separating multiply-and-accumulate.
13663
13664 2011-08-19  Richard Guenther  <rguenther@suse.de>
13665
13666         PR tree-optimization/50067
13667         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
13668         offset only if we accounted for it.
13669
13670 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13671
13672         * config/arm/arm.md (maddhidi4): Remove '*' from name.
13673         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
13674         * optabs.c (find_widening_optab_handler_and_mode): New function.
13675         (expand_widen_pattern_expr): Use find_widening_optab_handler.
13676         (expand_binop_directly): Likewise.
13677         (expand_binop): Likewise.
13678         * optabs.h (find_widening_optab_handler): New macro define.
13679         (find_widening_optab_handler_and_mode): New prototype.
13680         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
13681         type precision rules.
13682         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
13683         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
13684         (is_widening_mult_rhs_p): Allow widening by more than one mode.
13685         Explicitly disallow mis-matched input types.
13686         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
13687         input types to fit the new handler.
13688         (convert_plusminus_to_widen): Likewise.
13689
13690 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
13691
13692         * expr.c (expand_expr_real_2): Use widening_optab_handler.
13693         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
13694         (gen_insn): $N now means $a must be wider than $b, not consecutive.
13695         * optabs.c (widened_mode): New function.
13696         (expand_widen_pattern_expr): Use widening_optab_handler.
13697         (expand_binop_directly): Likewise.
13698         (expand_binop): Likewise.
13699         * optabs.h (widening_optab_handlers): New struct.
13700         (optab_d): New member, 'widening'.
13701         (widening_optab_handler): New function.
13702         (set_widening_optab_handler): New function.
13703         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
13704         widening_optab_handler.
13705         (convert_plusminus_to_widen): Likewise.
13706
13707 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13708
13709         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
13710         pedantic.
13711         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
13712         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
13713
13714 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
13715
13716         * opth-gen.awk: Do not declare target save/restore structures and
13717         functions if IN_RTS defined.
13718
13719 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
13720
13721         PR target/49437
13722         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
13723         when stack was realigned in interrupt handler prologue.
13724
13725 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
13726
13727         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
13728         (quals_from_declspecs): Assert _Noreturn not present.
13729         (grokdeclarator): Handle _Noreturn.
13730         (build_null_declspecs): Initialize noreturn_p.
13731         (declspecs_add_scspec): Handle RID_NORETURN.
13732         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
13733         (c_parser_attributes): Handle RID_NORETURN.
13734         * c-tree.h (struct c_declspecs): Add noreturn_p.
13735         * ginclude/stdnoreturn.h: New.
13736         * Makefile.in (USER_H): Add stdnoreturn.h.
13737
13738 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
13739
13740         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
13741         (OPTION_MASK_ISA_AVX_UNSET): Update.
13742         (OPTION_MASK_ISA_AVX2_UNSET): New.
13743         (ix86_handle_option): Handle OPT_mavx2 case.
13744         * config/i386/cpuid.h (bit_AVX2): New.
13745         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
13746         AVX2 feature.
13747         * config/i386/i386-c.c (ix86_target_macros_internal):
13748         Conditionally define __AVX2__.
13749         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
13750         Define "core-avx2" processor alias.  Handle avx2 option.
13751         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
13752         * config/i386/i386.h (TARGET_AVX2): New.
13753         * config/i386/i386.opt (mavx2): New.
13754         * doc/invoke.texi: Document -mavx2.
13755
13756 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
13757
13758         PR rtl-optimization/49890
13759         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
13760         subclasses of class which is superset of a pressure class.
13761
13762 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
13763             Igor Zamyatin <igor.zamyatin@intel.com>
13764
13765         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
13766         with HOST_WIDE_INT for isa_flag.
13767         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
13768         isa variables.
13769
13770         * config/i386/i386.c (ix86_target_string): Replace int with
13771         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
13772         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
13773         (pta_flags): Removed.
13774         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
13775         (pta): Use HOST_WIDE_INT on flags.
13776         (builtin_isa): Use HOST_WIDE_INT on isa.
13777         (ix86_add_new_builtins): Likewise.
13778         (def_builtin): Use HOST_WIDE_INT on mask.
13779         (def_builtin_const): Likewise.
13780         (builtin_description): Likewise.
13781
13782         * config/i386/i386.opt (ix86_isa_flags): Replace int with
13783         HOST_WIDE_INT.
13784         (ix86_isa_flags_explicit): Likewise.
13785         (x_ix86_isa_flags_explicit): Likewise.
13786
13787 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
13788
13789         PR rtl-optimization/50107
13790         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
13791         (ira_hard_reg_in_set_p): New.
13792
13793         * ira-color.c (calculate_saved_nregs): New.
13794         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
13795         hard regs.
13796         (allocno_reload_assign, fast_allocation): Use
13797         ira_hard_reg_set_intersection_p instead of
13798         ira_hard_reg_not_in_set_p.
13799
13800         * ira.c (setup_reg_renumber): Use
13801         ira_hard_reg_set_intersection_p instead of
13802         ira_hard_reg_not_in_set_p.
13803         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
13804         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
13805
13806         * ira-costs.c (ira_tune_allocno_costs): Use
13807         ira_hard_reg_set_intersection_p instead of
13808         ira_hard_reg_not_in_set_p.
13809
13810 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
13811             Igor Zamyatin <igor.zamyatin@intel.com>
13812
13813         * hwint.h (HOST_WIDE_INT_1): New.
13814
13815         * opt-functions.awk (switch_bit_fields): Initialize the
13816         host_wide_int field.
13817         (host_wide_int_var_name): New.
13818         (var_type_struct): Check and return HOST_WIDE_INT.
13819
13820         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
13821
13822         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
13823
13824         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
13825         check masks for HOST_WIDE_INT.
13826
13827         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
13828         (option_enabled): Likewise.
13829         (get_option_state): Likewise.
13830
13831         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
13832         to HOST_WIDE_INT.
13833
13834 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13835             Marc Glisse  <marc.glisse@normalesup.org>
13836
13837         PR libstdc++-v3/1773
13838         * target.def (decl_mangling_context): New C++ hook.
13839         * doc/tm.texi: Regenerate.
13840         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
13841         * config/sol2-protos.h: Group by source file.
13842         (solaris_cxx_decl_mangling_context): Declare.
13843         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
13844         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
13845         Use $<.
13846         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
13847         Add sol2-stubs.o to extra_objs.
13848
13849 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
13850
13851         PR target/50009
13852         * stor-layout.c (update_alignment_for_field): Don't ICE on
13853         packed flexible array members if ms_bitfield_layout_p.
13854
13855         PR target/50092
13856         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
13857         on the result before returning it.
13858
13859         PR debug/50017
13860         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
13861         is a debug stmt, use location of the first non-debug stmt after it.
13862
13863 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13864
13865         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
13866         (arm_size_rtx_costs): Likewise.
13867
13868 2011-08-18  Richard Guenther  <rguenther@suse.de>
13869
13870         * tree.h (tree_int_cst_msb): Remove.
13871         * tree.c (tree_int_cst_msb): Likewise.
13872         (tree_int_cst_sign_bit): Move from ...
13873         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
13874
13875 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13876
13877         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
13878         * doc/tm.texi: Regenerate.
13879         * target.def (rtx_costs): Add an opno parameter.
13880         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
13881         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
13882         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
13883         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
13884         * cse.c (COST_IN): Add an opno parameter.
13885         (notreg_cost): Likewise.  Update call to rtx_cost.
13886         (COST, fold_rtx): Update accordingly.
13887         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
13888         * expmed.c (emit_store_flag): Likewise.
13889         * optabs.c (avoid_expensive_constant): Add an opno parameter.
13890         Update call to rtx_cost.
13891         (expand_binop_directly, expand_binop): Likewise.
13892         (expand_twoval_binop, prepare_cmp_insn): Likewise.
13893         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
13894         (set_src_cost, get_full_set_src_cost): Update accordingly.
13895         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
13896         to target hook.
13897         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
13898         (default_adress_cost): Update calls to rtx_cost.
13899
13900         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
13901         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
13902         (arm_rtx_costs): Add an opno parameter.
13903         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
13904         adjust any recursive rtx-cost calls.
13905         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
13906         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13907         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13908         * config/cris/cris.c (cris_rtx_costs): Likewise.
13909         * config/frv/frv.c (frv_rtx_costs): Likewise.
13910         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13911         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13912         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13913         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13914         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13915         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13916         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13917         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13918         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13919         * config/mep/mep.c (mep_rtx_cost): Likewise.
13920         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13921         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
13922         (mips_zero_extend_cost): Add an opno parameter.
13923         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13924         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
13925         to rtx_cost.
13926         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
13927         rtx-cost calls.
13928         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13929         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13930         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
13931         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13932         (rs6000_debug_rtx_costs): Likewise.
13933         * config/s390/s390.c (s390_rtx_costs): Likewise.
13934         * config/score/score-protos.h (score_rtx_costs): Likewise.
13935         * config/score/score.c (score_rtx_costs): Likewise.
13936         * config/sh/sh.c (andcosts): Update call to rtx_cost.
13937         (sh_rtx_costs): Add an opno parameter.
13938         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13939         * config/spu/spu.c (spu_rtx_costs): Likewise.
13940         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13941         * config/v850/v850.c (v850_rtx_costs): Likewise.
13942         * config/vax/vax.c (vax_rtx_costs): Likewise.
13943         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13944
13945 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13946
13947         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
13948         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
13949         rtx_cost.
13950         * calls.c (precompute_register_parameters): Likewise.
13951         * combine.c (expand_compound_operation, make_extraction): Likewise.
13952         (force_to_mode, distribute_and_simplify_rtx): Likewise.
13953         * dse.c (find_shift_sequence): Likewise.
13954         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
13955         * expr.c (compress_float_constant): Likewise.
13956         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13957         * gcse.c (want_to_gcse_p): Likewise.
13958         * ifcvt.c (noce_try_sign_mask): Likewise.
13959         * loop-doloop.c (doloop_optimize): Likewise.
13960         * loop-invariant.c (create_new_invariant): Likewise.
13961         * optabs.c (avoid_expensive_constant): Likewise.
13962         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
13963         (try_replace_in_use, reload_cse_move2add): Likewise.
13964         * reload1.c (calculate_elim_costs_all_insns): Likewise.
13965         (note_reg_elim_costly): Likewise.
13966         * rtlanal.c (insn_rtx_cost): Likewise.
13967         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13968         * stmt.c (lshift_cheap_p): Likewise.
13969         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
13970         * config/avr/avr.c (final_prescan_insn): Likewise.
13971         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13972         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
13973
13974 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
13975
13976         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
13977         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
13978         * cfgloopanal.c (seq_cost): Likewise.
13979         * loop-invariant.c (create_new_invariant): Likewise.
13980         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
13981         (reload_cse_move2add): Use get_full_set_rtx_cost.
13982
13983 2011-08-18  Richard Guenther  <rguenther@suse.de>
13984
13985         * expr.c (get_inner_reference): Fix typo in last change.
13986
13987 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
13988             Joseph Myers  <joseph@codesourcery.com>
13989
13990         PR tree-optimization/49963
13991         * hwint.c (absu_hwi): Define.
13992         * hwint.h (absu_hwi): Declare.
13993         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
13994         of abs_hwi.
13995         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
13996         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
13997
13998 2011-08-18  Richard Guenther  <rguenther@suse.de>
13999
14000         * expr.c (get_inner_reference): Sign-extend the constant
14001         twos-complement offset before doing arbitrary precision
14002         arithmetic on it.
14003         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
14004         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
14005         to get_constraint_for_ptr_offset.
14006
14007 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
14008
14009         PR target/50068
14010         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
14011
14012 2011-08-17  Richard Guenther  <rguenther@suse.de>
14013
14014         * tree.h (convert_to_ptrofftype_loc): New function.
14015         (convert_to_ptrofftype): Define.
14016         * builtins.c (expand_builtin_bzero): Use size_type_node.
14017         (fold_builtin_bzero): Likewise.
14018         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
14019         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
14020         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
14021         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
14022         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
14023         * fold-const.c (build_range_check): Negate using the original type.
14024         (fold_unary_loc): Use fold_build_pointer_plus_loc.
14025         * gimple-fold.c (gimple_adjust_this_by_delta): Use
14026         convert_to_ptrofftype.
14027         * gimplify.c (gimplify_self_mod_expr): Likewise.
14028         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
14029         (graphite_create_new_loop_guard): Likewise.
14030         * graphite-sese-to-poly.c (my_long_long): Remove.
14031         (scop_ivs_can_be_represented): Adjust.
14032         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
14033         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
14034         * tree-loop-distribution.c (build_size_arg_loc): Use
14035         size_type_node.
14036         (generate_memset_zero): Simplify.
14037         * tree-mudflap.c: Use fold_convert, not convert.
14038         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
14039         its own type.
14040         (determine_offset): Likewise for DR_STEP.
14041         (valid_initializer_p): Likewise.
14042         * tree-profile.c (prepare_instrumented_value): Convert the pointer
14043         to an integer type of same size.
14044         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
14045         to sizetype without need.
14046         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
14047         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
14048         * tree-ssa-loop-manip.c (create_iv): Likewise.
14049         (determine_exit_conditions): Adjust comment.
14050         * tree-ssa-pre.c (create_expression_by_pieces): Use
14051         convert_to_ptrofftype.
14052         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
14053         * varasm.c (array_size_for_constructor): Compute using double_ints.
14054
14055 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14056
14057         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
14058         when generating an integer result where possible.  Short-cut
14059         comparison against 0 also for QImode.
14060
14061 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14062
14063         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
14064         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
14065         prototype.
14066         * config/spu/spu.c (spu_legitimize_reload_address): New function.
14067         (spu_legitimate_address_p): Do not check displacement if the base
14068         is an eliminable stack register.
14069
14070 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
14071
14072         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
14073         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
14074         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
14075         m32c_preferred_output_reload_class): Remove.
14076         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
14077         Change rclass argument and return types to reg_class_t. Use
14078         reg_class_subset_p instead of class_sizes.
14079         (m32c_preferred_output_reload_class): Make static. Change rclass
14080         argument and return types to reg_class_t.
14081         (TARGET_PREFERRED_RELOAD_CLASS,
14082         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14083
14084 2011-08-16  Kai Tietz  <ktietz@redhat.com>
14085
14086         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
14087
14088 2011-08-16  Richard GUenther  <rguenther@suse.de>
14089
14090         PR tree-optimization/50082
14091         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
14092         warnings here, instead of ...
14093         (ssa_forward_propagate_and_combine): ... here.
14094         (forward_propagate_into_comparison_1): Adjust.
14095         (forward_propagate_into_comparison): Likewise.
14096         (forward_propagate_into_gimple_cond): Likewise.
14097         (forward_propagate_into_cond): Likewise.
14098
14099 2011-08-16  Andreas Schwab  <schwab@redhat.com>
14100
14101         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
14102         instead of ggc_alloc_zone_vec_rtvec_def.
14103
14104 2011-08-16  Richard Guenther  <rguenther@suse.de>
14105
14106         * tree.h (ptrofftype_p): New helper function.
14107         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
14108         offset verification.
14109         (verify_gimple_assign_binary): Likewise.
14110         * tree.c (build2_stat): Likewise.
14111         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
14112         (reset_evolution_in_loop): Likewise.
14113         * tree-chrec.h (build_polynomial_chrec): Likewise.
14114
14115 2011-08-16  Liang Wang  <lwang1@marvell.com>
14116
14117         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
14118         ggc_alloc_zone_vec_rtvec_def.
14119
14120 2011-08-16  Richard Guenther  <rguenther@suse.de>
14121
14122         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
14123         helper factored out from ...
14124         (extract_range_from_binary_expr_1): ... here.  Re-structure
14125         to not glob handling too different tree codes.
14126
14127 2011-08-15  Richard Henderson  <rth@redhat.com>
14128
14129         PR middle-end/50006
14130         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
14131         setting out to include allocate_stack named pattern as well.
14132         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
14133         * stmt.c (expand_stack_restore): Likewise.
14134
14135 2011-08-15  Richard Guenther  <rguenther@suse.de>
14136
14137         PR middle-end/50082
14138         * fold-const.c (maybe_canonicalize_comparison_1): Properly
14139         convert the modified operand to the other operand type.
14140         (fold_comparison): Call maybe_canonicalize_comparison_1 with
14141         useless conversions stripped from comparison operands.
14142
14143 2011-08-15  Richard Guenther  <rguenther@suse.de>
14144
14145         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
14146         (extract_range_from_unary_expr_1): Restructure.
14147
14148 2011-08-15  Richard Guenther  <rguenther@suse.de>
14149
14150         PR tree-optimization/50058
14151         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
14152         copy matching.
14153
14154 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14155
14156         PR target/50022
14157         * config/arm/arm.c (output_move_double): Add 2 parameters
14158         to count the number of insns emitted and whether to emit or not.
14159         Use the flag to decide when to emit and count number of instructions
14160         that will be emitted.
14161         Handle case where output_move_double might be called for calculating
14162         lengths with an invalid constant.
14163         (arm_count_output_move_double_insns): Define.
14164         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
14165         (output_move_double): Adjust prototype.
14166         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
14167         output_move_double.
14168         ("*movdi_vfp_cortexa8"): Likewise and add attribute
14169         for ce_count.
14170         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
14171         ("*movdf_soft_insn"): Likewise.
14172         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
14173         ("*cirrus_thumb2_movdi"): Likewise.
14174         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
14175         ("*cirrus_movdf_hard_insn"): Likewise.
14176         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
14177         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
14178         ("mov<mode>_internal VMMX"): Likewise.
14179         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
14180
14181 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
14182
14183         * config/i386/i386.c (ix86_expand_round_sse4): New function.
14184         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
14185         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
14186         for TARGET_ROUND.
14187
14188         (rint<mode>2): Simplify TARGET_ROUND check.
14189         (floor<mode>2): Ditto.
14190         (ceil<mode>2): Ditto.
14191         (btrunc<mode>2): Ditto.
14192
14193 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
14194
14195         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
14196         as mmix_preferred_output_reload_class.
14197
14198 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
14199
14200         * PR target/49903
14201         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
14202         (branch_unspec): New insn.
14203         (branch): Beauty farm.
14204         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
14205         to be IF_THEN_ELSE.
14206         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
14207         New static functions.
14208         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
14209         Use CONST_INT_P.  Beauty.
14210
14211 2011-08-12  Richard Henderson  <rth@redhat.com>
14212
14213         PR rtl-opt/49994
14214         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
14215         * sched-deps.c (init_deps): Clear it.
14216         (deps_analyze_insn): Consume it.
14217         (sched_analyze_insn): Fill it.
14218
14219 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14220
14221         PR target/48328
14222         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
14223         for tbh instructions.
14224
14225 2011-08-12  Diego Novillo  <dnovillo@google.com>
14226
14227         * data-streamer.h (streamer_write_zero): Rename from output_zero.
14228         (streamer_write_uhwi): Rename from lto_output_uleb128.
14229         (streamer_write_hwi): Rename from output_sleb128.
14230         (streamer_write_string): Rename from lto_output_string.
14231         (streamer_string_index): Rename from lto_string_index.
14232         (streamer_write_string_with_length): Rename from
14233         lto_output_string_with_length.
14234         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
14235         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
14236         (streamer_read_string): Rename from lto_input_string.
14237         (streamer_read_indexed_string): Rename from input_string_internal.
14238         (streamer_read_uhwi): Rename from lto_input_uleb128.
14239         (streamer_read_hwi): Rename from lto_input_sleb128.
14240         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
14241         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
14242         (streamer_write_enum): Rename from lto_output_enum.
14243         (streamer_read_enum): Rename from lto_input_enum.
14244         (streamer_write_record_start): Rename from output_record_start.
14245         (streamer_read_record_start): Rename from input_record_start.
14246         (streamer_write_bitpack): Rename from lto_output_bitpack.
14247         (streamer_read_bitpack): Rename from lto_input_bitpack.
14248         (streamer_write_char_stream): Rename from lto_output_1_stream.
14249         (streamer_read_uchar): Rename from lto_input_1_unsigned.
14250         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
14251         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
14252         (streamer_read_string_cst): Rename from input_string_cst.
14253         (streamer_read_chain): Rename from lto_input_chain.
14254         (streamer_alloc_tree): Rename from lto_materialize_tree.
14255         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
14256         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
14257         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
14258         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
14259         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
14260         (streamer_write_chain): Rename from lto_output_chain.
14261         (streamer_write_tree_header): Rename from lto_output_tree_header.
14262         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
14263         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
14264         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
14265         (streamer_write_builtin): Rename from lto_output_builtin_tree.
14266         (streamer_check_handled_ts_structures): Rename from
14267         check_handled_ts_structures.
14268         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
14269         (streamer_tree_cache_insert_at): Rename from
14270         lto_streamer_cache_insert_at.
14271         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
14272         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
14273         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
14274         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
14275         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
14276         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
14277         (write_identifier): Rename from output_identifier.
14278         (write_ts_common_tree_pointers): Rename from
14279         lto_output_ts_common_tree_pointers.
14280         (write_ts_vector_tree_pointers): Rename from
14281         lto_output_ts_vector_tree_pointers.
14282         (write_ts_complex_tree_pointers): Rename from
14283         lto_output_ts_complex_tree_pointers.
14284         (write_ts_decl_minimal_tree_pointers): Rename from
14285         lto_output_ts_decl_minimal_tree_pointers.
14286         (write_ts_decl_common_tree_pointers): Rename from
14287         lto_output_ts_decl_common_tree_pointers.
14288         (write_ts_decl_non_common_tree_pointers): Rename from
14289         lto_output_ts_decl_non_common_tree_pointers.
14290         (write_ts_decl_with_vis_tree_pointers): Rename from
14291         lto_output_ts_decl_with_vis_tree_pointers.
14292         (write_ts_field_decl_tree_pointers): Rename from
14293         lto_output_ts_field_decl_tree_pointers.
14294         (write_ts_function_decl_tree_pointers): Rename from
14295         lto_output_ts_function_decl_tree_pointers.
14296         (write_ts_type_common_tree_pointers): Rename from
14297         lto_output_ts_type_common_tree_pointers.
14298         (write_ts_type_non_common_tree_pointers): Rename from
14299         lto_output_ts_type_non_common_tree_pointers.
14300         (write_ts_list_tree_pointers): Rename from
14301         lto_output_ts_list_tree_pointers.
14302         (write_ts_vec_tree_pointers): Rename from
14303         lto_output_ts_vec_tree_pointers.
14304         (write_ts_exp_tree_pointers): Rename from
14305         lto_output_ts_exp_tree_pointers.
14306         (write_ts_block_tree_pointers): Rename from
14307         lto_output_ts_block_tree_pointers.
14308         (write_ts_binfo_tree_pointers): Rename from
14309         lto_output_ts_binfo_tree_pointers.
14310         (write_ts_constructor_tree_pointers): Rename from
14311         lto_output_ts_constructor_tree_pointers.
14312         (write_ts_target_option): Rename from lto_output_ts_target_option.
14313         (write_ts_translation_unit_decl_tree_pointers): Rename from
14314         lto_output_ts_translation_unit_decl_tree_pointers.
14315         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
14316         Rename from lto_streamer_cache_add_to_node_array.
14317         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
14318         (record_common_node): Rename from lto_record_common_node.
14319
14320         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
14321         declarations.
14322         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
14323         function.
14324         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
14325         unused function.
14326         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
14327         (ipa-reference.o): Likewise.
14328         * lto-section-out.c: Include data-streamer.h.
14329         * ipa-reference.c: Include data-streamer.h.
14330
14331 2011-08-12  Nick Clifton  <nickc@redhat.com>
14332
14333         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
14334         * doc/md.texi (cmpstrn): Note that the comparison stops if both
14335         fetched bytes are zero.
14336         (cmpstr): Likewise.
14337         (cmpmem): Note that the comparison does not stop if both of the
14338         fetched bytes are zero.
14339
14340 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
14341
14342         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
14343         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
14344         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
14345         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
14346         to integer_type_node.
14347         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
14348         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
14349         * builtins.c (expand_builtin_in): Ditto.
14350         (mathfn_built_in_1): Ditto.
14351         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
14352         BUILT_IN_IFLOOR.
14353         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
14354         BUILT_IN_IROUND.
14355         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
14356         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
14357         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
14358
14359 2011-08-12  Richard Guenther  <rguenther@suse.de>
14360
14361         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
14362
14363 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
14364
14365         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
14366
14367 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
14368
14369         * config/arm/arm.c (get_label_padding): New function.
14370         (create_fix_barrier, arm_reorg): Use it.
14371
14372 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
14373
14374         PR target/49781
14375         * config/i386/i386.md (*lea_5_zext): New.
14376         (*lea_6_zext): Ditto.
14377         * config/i386/predicates.md (const_32bit_mask): New predicate.
14378         (lea_address_operand): Reject AND.
14379         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
14380         const_32bit_mask immediate.
14381         (ix86_print_operand_address): Handle AND.
14382         (memory_address_length): Ditto.
14383
14384 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
14385             Brian Hackett  <bhackett1024@gmail.com>
14386
14387         * plugin.def: Add event for finish_decl.
14388         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
14389         * c-decl.c (finish_decl): Invoke callbacks on above event.
14390         * doc/plugins.texi: Document above event.
14391
14392 2011-08-11  Richard Guenther  <rguenther@suse.de>
14393
14394         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
14395         lookups, make looking through aggregate copies stronger.
14396
14397 2011-08-11  Richard Henderson  <rth@redhat.com>
14398
14399         PR bootstrap/50018
14400         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
14401
14402 2011-08-11  Richard Guenther  <rguenther@suse.de>
14403
14404         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
14405         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
14406         (vrp_visit_stmt): Likewise.
14407
14408 2011-08-11  Richard Guenther  <rguenther@suse.de>
14409
14410         PR middle-end/50040
14411         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
14412         load of the other piece with TREE_NO_WARNING.
14413         * tree-flow.h (warn_uninit): Adjust prototype.
14414         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
14415         the base variable and the expression that is used separately.
14416         Properly query all TREE_NO_WARNING flags.
14417         (struct walk_data): Remove.
14418         (warn_uninitialized_var): Likewise.
14419         (warn_uninitialized_vars): Do not walk gimple pieces but simply
14420         look at all SSA uses of the statement.  Handle unused memory
14421         separately.
14422         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
14423
14424 2011-08-11  Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
14425
14426         * config/rx/rx.md (movsicc): Allow register to register transfers.
14427         (*movsicc): Likewise.
14428         (*stcc): Restrict this pattern to EQ and NE compares.
14429         (*stcc_reg): New pattern.  Works for any comparison but only for
14430         register transfers.
14431
14432 2011-08-11  Diego Novillo  <dnovillo@google.com>
14433
14434         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
14435         Call stream_write_tree instead of output_record_start.
14436         (lto_output_ts_binfo_tree_pointers): Likewise.
14437
14438         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
14439         Convert it to a macro.
14440         (stream_read_tree): Likewise.
14441
14442         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
14443         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
14444
14445         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
14446         and tree_read_bitfields.
14447         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
14448         (lto_write_tree): Call it.
14449         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
14450         * streamer-hooks.h (struct streamer_hooks): Remove fields
14451         name, is_streamable and alloc_tree. Update all users.
14452         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
14453         (lto_materialize_tree): ... here.
14454         Handle CALL_EXPR codes.
14455         Remove call to lto_streamer_cache_append.
14456         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
14457         * tree-streamer.h (tree_read_bitfields): Declare.
14458
14459         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
14460         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
14461         * tree-streamer.h (stream_read_tree): New.  Replace all calls
14462         to lto_input_tree with it.
14463         (stream_write_tree): New.  Replace all calls to lto_output_tree,
14464         lto_output_tree_ref and lto_output_tree_or_ref with it.
14465         * lto-streamer-in.c (lto_read_tree): Inline code from
14466         lto_streamer_read_tree.
14467         (lto_input_tree): Move from tree-streamer-in.c.
14468         * lto-streamer-out.c (lto_output_tree_ref): Make static.
14469         Remove handling of NULL values for EXPR.
14470         Do not handle EXPRs that are not indexable.
14471         (lto_write_tree): Move from tree-streamer-out.c.
14472         Inline lto_streamer_write_tree.
14473         (lto_output_tree): Move from tree-streamer-out.c.
14474         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
14475         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
14476         (lto_preload_common_nodes): Likewise.
14477         Remove assertions and adjustments for nodes
14478         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
14479         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
14480         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
14481         * lto-streamer.h (lto_input_tree): Declare.
14482         (lto_output_tree_ref): Remove.
14483         * streamer-hooks.h (struct streamer_hooks): Remove fields
14484         preload_common_nodes, indexable_with_decls_p,
14485         pack_value_fields, unpack_value_fields and output_tree_header.
14486         Update all users.
14487         * tree-streamer-in.c (lto_materialize_tree): Make extern.
14488         (lto_input_tree_pointers): Likewise.
14489         (lto_read_tree): Move to lto-streamer-in.c.
14490         (lto_input_integer_cst): Make extern.
14491         (lto_get_pickled_tree): Likewise.
14492         (lto_get_builtin_tree): Likewise.
14493         (lto_input_tree): Move to lto-streamer-in.c.
14494         * tree-streamer-out.c (pack_value_fields): Make extern.
14495         (lto_output_tree_or_ref): Remove.  Replace all callers with
14496         calls to stream_write_tree.
14497         (lto_output_builtin_tree): Make extern.
14498         (lto_streamer_write_tree): Inline into lto_write_tree.
14499         (lto_output_tree_pointers): Make extern.
14500         (lto_output_tree_header): Likewise.
14501         (lto_output_integer_cst): Likewise.
14502         (lto_write_tree): Move to lto-streamer-out.c.
14503         (lto_output_tree): Likewise.
14504         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
14505         (preload_common_nodes): Likewise.
14506         (lto_streamer_cache_create): Call it.
14507         * tree-streamer.h: Include streamer-hooks.h.
14508         (stream_write_tree): New.
14509         (stream_read_tree): New.
14510         (lto_input_tree): Remove.
14511         (lto_materialize_tree): Declare.
14512         (lto_input_tree_pointers): Declare.
14513         (lto_get_pickled_tree): Declare.
14514         (lto_get_builtin_tree): Declare.
14515         (lto_input_integer_cst): Declare.
14516         (lto_output_tree_header): Declare.
14517         (pack_value_fields): Declare.
14518         (lto_output_tree_pointers): Declare.
14519         (lto_output_integer_cst): Declare.
14520         (lto_output_builtin_tree): Declare.
14521
14522 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
14523
14524         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
14525         only if producer writes to the register given by regno.
14526
14527 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
14528             Alexander Monakov  <amonakov@ispras.ru>
14529
14530         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
14531         (sched_get_condition_with_rev_uncached): ... this.  Factor out
14532         condition caching logic into ...
14533         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
14534         attempt to use cache for instructions with zero luid.
14535         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
14536         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
14537
14538 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
14539
14540         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
14541         get_seqno_for_a_jump.  Update the caller.
14542         (get_seqno_by_succs): New.  Use it ...
14543         (get_seqno_for_a_jump): ... here to find a seqno if looking at
14544         predecessors was not sufficient.
14545         (get_seqno_by_preds): Include head in iteration range, exclude insn.
14546
14547 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
14548
14549         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
14550
14551 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
14552
14553         * sel-sched-ir.h (register_unavailable_p): Declare.
14554         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
14555         (set_unavailable_target_for_expr): ... here to properly test
14556         availability of a register.
14557         (speculate_expr): Ditto.
14558         * sel-sched.c (substitute_reg_in_expr): Ditto.
14559         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
14560
14561 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
14562
14563         * sel-sched.c (verify_target_availability): Fix usage of
14564         hard_regno_nregs.
14565
14566 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
14567
14568         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
14569         recognized by cannot_copy_insn_p hook and volatile instructions.
14570
14571 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
14572
14573         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
14574
14575 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
14576
14577         * doc/md.texi (define_bypass): Say that the instruction names can
14578         be filename-style globs.
14579         * Makefile.in (FNMATCH_H): Define.
14580         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
14581         * genattrtab.c: Include fnmatch.h.
14582         (bypass_list): Change field name from "insn" to "pattern".
14583         (gen_bypass_1): Update accordingly.
14584         (process_bypasses): Use fnmatch to check for matches between
14585         insn reservations and define_bypasses.
14586         * genautomata.c: Include fnmatch.h.
14587         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
14588         and out_pattern respectively.
14589         (gen_bypass, insert_bypass): Update accordingly.
14590         (for_each_matching_insn, process_bypass_2, process_bypass_1)
14591         (process_bypass): New functions.
14592         (process_decls): Use process_bypass.  Update after field name changes.
14593
14594 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
14595
14596         PR target/49687
14597         * config/avr/avr.md (smulqi3_highpart): New insn.
14598         (umulqi3_highpart): New insn.
14599         (*subqi3.ashiftrt7): New insn.
14600         (smulhi3_highpart): New expander.
14601         (umulhi3_highpart): Nex expander.
14602         (*smulhi3_highpart_call): New insn.
14603         (*umulhi3_highpart_call): New insn.
14604         (extend_u): New code attribute.
14605         (extend_prefix): Rename code attribute to extend_su.
14606         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
14607         widening QI/HI multiply.
14608
14609 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
14610
14611         PR tree-optimization/50039
14612         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
14613         that DEF_STMT has a stmt_vec_info.
14614
14615 2011-08-10  Richard Guenther  <rguenther@suse.de>
14616
14617         * tree.h (can_trust_pointer_alignment): Remove.
14618         * builtins.c (can_trust_pointer_alignment): Remove.
14619
14620 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
14621
14622         * c-typeck.c (scalar_to_vector): New function. Try scalar to
14623         vector conversion.
14624         (stv_conv): New enum for scalar_to_vector return type.
14625         (build_binary_op): Adjust.
14626         * doc/extend.texi: Description of scalar to vector expansion.
14627
14628 2011-08-10  Richard Guenther  <rguenther@suse.de>
14629
14630         * tree.h (get_pointer_alignment): Remove max-align argument.
14631         (get_object_alignment): Likewise.
14632         * builtins.c (get_object_alignment_1): Adjust.
14633         (get_object_alignment): Remove max-align argument.
14634         (get_pointer_alignment): Likewise.
14635         (expand_builtin_strlen): Adjust.
14636         (expand_builtin_memcpy): Likewise.
14637         (expand_builtin_mempcpy_args): Likewise.
14638         (expand_builtin_strncpy): Likewise.
14639         (expand_builtin_memset_args): Likewise.
14640         (expand_builtin_memcmp): Likewise.
14641         (expand_builtin_strcmp): Likewise.
14642         (expand_builtin_strncmp): Likewise.
14643         (get_builtin_sync_mem): Likewise.
14644         (fold_builtin_memset): Likewise.
14645         (fold_builtin_memory_op): Likewise.
14646         (expand_builtin_memory_chk): Likewise.
14647         * emit-rtl.c (get_mem_align_offset): Likewise.
14648         (set_mem_attributes_minus_bitpos): Likewise.
14649         * expr.c (expand_assignment): Likewise.
14650         (expand_expr_real_1): Likewise.
14651         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
14652         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
14653         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
14654         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
14655         * value-prof.c (gimple_stringops_transform): Likewise.
14656
14657 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
14658
14659         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
14660         * doc/tm.texi: Regenerate.
14661
14662 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
14663
14664         PR target/29560
14665         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
14666         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
14667         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
14668         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
14669         shift target is unused.
14670
14671 2011-08-10  Richard Guenther  <rguenther@suse.de>
14672
14673         PR tree-optimization/49937
14674         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
14675         using get_object_alignment_1.
14676
14677 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
14678
14679         * config/i386/i386.c (ix86_emit_i387_round): New function.
14680         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
14681         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
14682         Use ix86_emit_i387_round to expand round function for i387 math.
14683         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
14684         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
14685
14686 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14687
14688         * config/sync.c: Move to ../libgcc.
14689         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
14690         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
14691         Remove.
14692
14693 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
14694
14695         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
14696         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
14697         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
14698         Change 'from' and 'to' arguments type to reg_class_t.
14699         (TARGET_REGISTER_MOVE_COST): Define.
14700
14701 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
14702
14703         PR target/50026
14704         Revert:
14705         PR rtl-optimization/49990
14706         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
14707         ignore classes which can not change mode.
14708         (find_costs_and_classes): Ditto.
14709
14710 2011-08-09  Richard Guenther  <rguenther@suse.de>
14711
14712         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
14713         information for ranges with only negative values.
14714         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
14715         BIT_AND_EXPR handling to handle ranges with negative values.
14716
14717 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
14718
14719         * config/i386/i386.c: Remove traling spaces.
14720         * config/i386/sse.md: Likewise.
14721         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
14722         (*fma_fmsub_<mode>): Likewise.
14723         (*fma_fnmadd_<mode>): Likewise.
14724         (*fma_fnmsub_<mode>): Likewise.
14725
14726 2011-08-09  Nick Clifton  <nickc@redhat.com>
14727
14728         * config/rx/rx.md: Disable extender peepholes at -O3.
14729
14730 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
14731
14732         PR target/49781
14733         * config/i386/i386.md (reload_noff_load): New.
14734         (reload_noff_store): Ditto.
14735         * config/i386/i386.c (ix86_secondary_reload): Use
14736         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
14737         double-word moves from/to non-offsetable addresses instead of
14738         generating XMM temporary.
14739
14740 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
14741
14742         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
14743
14744 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
14745
14746         PR tree-optimization/50014
14747         * tree-vect-loop.c (vectorizable_reduction): Get def type before
14748         calling vect_get_vec_def_for_stmt_copy ().
14749
14750 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
14751
14752         PR rtl-optimization/49990
14753         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
14754         ignore classes which can not change mode.
14755         (find_costs_and_classes): Ditto.
14756
14757 2011-08-08  Richard Henderson  <rth@redhat.com>
14758
14759         PR middle-end/49990
14760         * config/i386/i386.c (ix86_expand_prologue): Call
14761         for SEH target gen_prologue_use instead of gen_blockage
14762         at prologue's end.
14763
14764 2011-08-08  Martin Jambor  <mjambor@suse.cz>
14765
14766         PR middle-end/49923
14767         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
14768         memory alignment.
14769
14770 2011-08-08  Diego Novillo  <dnovillo@google.com>
14771
14772         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
14773         (DATA_STREAMER_H): New.
14774         (GIMPLE_STREAMER_H): New.
14775         (TREE_STREAMER_H): New.
14776         (STREAMER_HOOKS_H): New.
14777         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
14778         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
14779         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
14780         (data-streamer.o): New.
14781         (data-streamer-in.o): New.
14782         (data-streamer-out.o): New.
14783         (gimple-streamer-in.o): New.
14784         (gimple-streamer-out.o): New.
14785         (streamer-hooks.o): New.
14786         (tree-streamer.o): New.
14787         (tree-streamer-in.o): New.
14788         (tree-streamer-out.o): New.
14789         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
14790         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
14791         GIMPLE_STREAMER_H and TREE_STREAMER_H.
14792         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
14793         GIMPLE_STREAMER_H and TREE_STREAMER_H.
14794         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
14795         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
14796         (ipa-inline-analysis.o): Likewise.
14797         (ipa-pure-const.o): Likewise.
14798         * data-streamer-in.c: New.
14799         * data-streamer-out.c: New.
14800         * data-streamer.c: New.
14801         * data-streamer.h: New.
14802         * gimple-streamer-in.c: New.
14803         * gimple-streamer-out.c: New.
14804         * gimple-streamer.h: New.
14805         * ipa-inline-analysis.c: Include data-streamer.h.
14806         * ipa-prop.c: Include data-streamer.h.
14807         * ipa-pure-const.c: Include data-streamer.h.
14808         * lto-cgraph.c: Include data-streamer.h.
14809         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
14810         (lto_input_widest_uint_uleb128): Likewise.
14811         (lto_input_sleb128): Likewise.
14812         (bp_unpack_var_len_unsigned): Likewise.
14813         (bp_unpack_var_len_int): Likewise.
14814         * lto-section-out.c (lto_output_uleb128_stream): Move to
14815         data-streamer-out.c.
14816         (lto_output_widest_uint_uleb128_stream): Likewise.
14817         (lto_output_sleb128_stream): Likewise.
14818         (bp_pack_var_len_unsigned): Likewise.
14819         (bp_pack_var_len_int): Likewise.
14820         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
14821         (struct string_slot): Remove.  Update all users.
14822         (lto_tag_check_set): Make extern.
14823         (lto_tag_check_range): Move to lto-streamer.h.
14824         (lto_tag_check): Likewise.
14825         (hash_string_slot_node): Remove.  Update all users.
14826         (eq_string_slot_node): Remove.  Update all users.
14827         (string_for_index): Move to data-streamer-in.c
14828         (input_string_internal): Likewise.
14829         (input_string_cst): Move to tree-streamer-in.c.
14830         (input_identifier): Likewise.
14831         (lto_input_string): Move to data-streamer-in.c
14832         (input_record_start): Move to data-streamer.h
14833         (canon_file_name): Use new definition of struct string_slot
14834         from data-streamer.h.  Set S_SLOT.LEN.
14835         (lto_input_location): Make extern.
14836         (lto_input_chain): Move to tree-streamer-in.c.
14837         (lto_init_eh): Make extern.
14838         (input_phi): Move to gimple-streamer-in.c.
14839         (input_gimple_stmt): Likewise.
14840         (input_bb): Likewise.
14841         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
14842         (unpack_ts_real_cst_value_fields): Likewise.
14843         (unpack_ts_fixed_cst_value_fields): Likewise.
14844         (unpack_ts_decl_common_value_fields): Likewise.
14845         (unpack_ts_decl_wrtl_value_fields): Likewise.
14846         (unpack_ts_decl_with_vis_value_fields): Likewise.
14847         (unpack_ts_function_decl_value_fields): Likewise.
14848         (unpack_ts_type_common_value_fields): Likewise.
14849         (unpack_ts_block_value_fields): Likewise.
14850         (unpack_ts_translation_unit_decl_value_fields): Likewise.
14851         (unpack_value_fields): Likewise.
14852         (lto_materialize_tree): Likewise.
14853         (lto_input_ts_common_tree_pointers): Likewise.
14854         (lto_input_ts_vector_tree_pointers): Likewise.
14855         (lto_input_ts_complex_tree_pointers): Likewise.
14856         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
14857         (lto_input_ts_decl_common_tree_pointers): Likewise.
14858         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
14859         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
14860         (lto_input_ts_field_decl_tree_pointers): Likewise.
14861         (lto_input_ts_function_decl_tree_pointers): Likewise.
14862         (lto_input_ts_type_common_tree_pointers): Likewise.
14863         (lto_input_ts_type_non_common_tree_pointers): Likewise.
14864         (lto_input_ts_list_tree_pointers): Likewise.
14865         (lto_input_ts_vec_tree_pointers): Likewise.
14866         (lto_input_ts_exp_tree_pointers): Likewise.
14867         (lto_input_ts_block_tree_pointers): Likewise.
14868         (lto_input_ts_binfo_tree_pointers): Likewise.
14869         (lto_input_ts_constructor_tree_pointers): Likewise.
14870         (lto_input_ts_target_option): Likewise.
14871         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
14872         (lto_input_tree_pointers): Likewise.
14873         (lto_get_pickled_tree): Likewise.
14874         (lto_get_builtin_tree): Likewise.
14875         (lto_read_tree): Likewise.
14876         (lto_input_integer_cst): Likewise.
14877         (lto_input_tree): Likewise.
14878         * lto-streamer-out.c: Include data-streamer.h,
14879         gimple-streamer.h and streamer-hooks.h.
14880         (struct string_slot): Move to data-streamer.h.
14881         (hash_string_slot_node): Likewise.
14882         (eq_string_slot_node): Likewise.
14883         (lto_string_index): Move to data-streamer-out.c.
14884         (lto_output_string_with_length): Likewise.
14885         (lto_output_string): Likewise.
14886         (output_string_cst): Move to tree-streamer-out.c.
14887         (output_identifier): Likewise.
14888         (output_zero): Move to data-streamer-out.c
14889         (output_uleb128): Likewise.
14890         (output_sleb128): Likewise.
14891         (output_record_start): Move to data-streamer.h
14892         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
14893         (pack_ts_real_cst_value_fields): Likewise.
14894         (pack_ts_fixed_cst_value_fields): Likewise.
14895         (pack_ts_decl_common_value_fields): Likewise.
14896         (pack_ts_decl_wrtl_value_fields): Likewise.
14897         (pack_ts_decl_with_vis_value_fields): Likewise.
14898         (pack_ts_function_decl_value_fields): Likewise.
14899         (pack_ts_type_common_value_fields): Likewise.
14900         (pack_ts_block_value_fields): Likewise.
14901         (pack_ts_translation_unit_decl_value_fields): Likewise.
14902         (pack_value_fields): Likewise.
14903         (lto_output_chain): Likewise.
14904         (lto_output_ts_common_tree_pointers): Likewise.
14905         (lto_output_ts_vector_tree_pointers): Likewise.
14906         (lto_output_ts_complex_tree_pointers): Likewise.
14907         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
14908         (lto_output_ts_decl_common_tree_pointers): Likewise.
14909         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
14910         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
14911         (lto_output_ts_field_decl_tree_pointers): Likewise.
14912         (lto_output_ts_function_decl_tree_pointers): Likewise.
14913         (lto_output_ts_type_common_tree_pointers): Likewise.
14914         (lto_output_ts_type_non_common_tree_pointers): Likewise.
14915         (lto_output_ts_list_tree_pointers): Likewise.
14916         (lto_output_ts_vec_tree_pointers): Likewise.
14917         (lto_output_ts_exp_tree_pointers): Likewise.
14918         (lto_output_ts_block_tree_pointers): Likewise.
14919         (lto_output_ts_binfo_tree_pointers): Likewise.
14920         (lto_output_ts_constructor_tree_pointers): Likewise.
14921         (lto_output_ts_target_option): Likewise.
14922         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
14923         (lto_output_tree_pointers): Likewise.
14924         (lto_output_tree_header): Likewise.
14925         (lto_output_builtin_tree): Likewise.
14926         (lto_write_tree): Likewise.
14927         (lto_output_integer_cst): Likewise.
14928         (lto_output_tree): Likewise.
14929         (output_phi): Move to gimple-streamer-out.c.
14930         (output_gimple_stmt): Likewise.
14931         (output_bb): Likewise.
14932         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
14933         (streamer_hooks): Move to streamer-hooks.c.
14934         (check_handled_ts_structures): Move to tree-streamer.c
14935         (lto_streamer_cache_add_to_node_array): Likewise.
14936         (lto_streamer_cache_insert_1): Likewise.
14937         (lto_streamer_cache_insert): Likewise.
14938         (lto_streamer_cache_insert_at): Likewise.
14939         (lto_streamer_cache_append): Likewise.
14940         (lto_streamer_cache_lookup): Likewise.
14941         (lto_streamer_cache_get): Likewise.
14942         (lto_record_common_node): Likewise.
14943         (lto_preload_common_nodes): Likewise.
14944         (lto_streamer_cache_create): Likewise.
14945         (lto_streamer_cache_delete): Likewise.
14946         (streamer_hooks_init): Move to streamer-hooks.c.
14947         * lto-streamer.h: Include diagnostic.h
14948         (struct output_block, struct lto_input_block,
14949         struct data_in, struct bitpack_d): Remove forward declarations.
14950         (struct bitpack_d): Move to data-streamer.h.
14951         (struct lto_streamer_cache_d): Move to tree-streamer.h.
14952         (struct streamer_hooks): Move to streamer-hooks.h.
14953         (bp_pack_var_len_unsigned): Move to data-streamer.h.
14954         (bp_pack_var_len_int): Likewise.
14955         (bp_unpack_var_len_unsigned): Likewise.
14956         (bp_unpack_var_len_int): Likewise.
14957         (lto_input_location): Declare.
14958         (lto_tag_check_set): Declare.
14959         (lto_init_eh): Declare.
14960         (lto_output_tree_ref): Declare.
14961         (lto_output_location): Declare.
14962         (bitpack_create): Move to data-streamer.h.
14963         (bp_pack_value): Likewise.
14964         (lto_output_bitpack): Likewise.
14965         (lto_input_bitpack): Likewise.
14966         (bp_unpack_value): Likewise.
14967         (lto_output_1_stream): Likewise.
14968         (lto_input_1_unsigned): Likewise.
14969         (lto_output_int_in_range): Likewise.
14970         (lto_input_int_in_range): Likewise.
14971         (bp_pack_int_in_range): Likewise.
14972         (bp_unpack_int_in_range): Likewise.
14973         (lto_output_enum): Likewise.
14974         (lto_input_enum): Likewise.
14975         (bp_pack_enum): Likewise.
14976         (bp_unpack_enum): Likewise.
14977         * streamer-hooks.c: New.
14978         * streamer-hooks.h: New.
14979         * tree-streamer-in.c: New.
14980         * tree-streamer-out.c: New.
14981         * tree-streamer.c: New.
14982         * tree-streamer.h: New.
14983
14984 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14985
14986         * gthr-posix95.h: Remove.
14987         * gthr.h [_PTHREADS95]: Remove.
14988         * configure.ac (enable_threads): Remove posix95.
14989         * configure: Regenerate.
14990         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
14991
14992 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
14993
14994         PR target/49781
14995         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
14996         SImode addresses.
14997         (ix86_print_operand_address): Handle zero-extended addresses.
14998         (memory_address_length): Add length of addr32 prefix for
14999         zero-extended addresses.
15000         (ix86_secondary_reload): Handle moves to/from double-word general
15001         registers from/to zero-extended addresses.
15002         * config/i386/predicates.md (lea_address_operand): Reject
15003         zero-extended operands.
15004
15005 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
15006
15007         PR other/48007
15008         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
15009
15010         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
15011         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
15012
15013         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
15014         (_Unwind_Context_Reg_Val): Likewise.
15015         (_Unwind_Get_Unwind_Word): Likewise.
15016         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
15017         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
15018         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
15019         for EXTENDED_CONTEXT_BIT.
15020         (__frame_state_for): Likewise.
15021         (uw_init_context_1): Likewise.
15022         (_Unwind_GetGR): Updated.
15023         (_Unwind_SetGR): Likewise.
15024         (_Unwind_GetGRPtr): Likewise.
15025         (_Unwind_SetGRPtr): Likewise.
15026         (_Unwind_SetGRValue): Likewise.
15027         (_Unwind_GRByValue): Likewise.
15028         (uw_install_context_1): Likewise.
15029
15030         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
15031         ASSUME_EXTENDED_UNWIND_CONTEXT.
15032         * doc/tm.texi: Regenerated.
15033
15034 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15035
15036         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
15037
15038 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15039
15040         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
15041         Linux/GNU-specific.
15042         (DEC Alpha Options, -mtune): Likewise.
15043         (MIPS Options, -march): native is supported on IRIX.
15044
15045 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15046
15047         * config/sparc/driver-sparc.c: New file.
15048         * config/sparc/x-sparc: New file.
15049         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
15050         * config/sparc/sparc.opt (native): New value for enum processor_type.
15051         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
15052         * config/sparc/sparc.c (sparc_option_override): Abort if
15053         PROCESSOR_NATIVE gets here.
15054         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
15055         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
15056         DRIVER_SELF_SPECS): Define.
15057         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
15058         (SPARC Options, -mtune): Likewise.
15059         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
15060         Substitute result.
15061         * configure: Regenerate.
15062         * Makefile.in (EXTRA_GCC_LIBS): Set.
15063         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
15064         (cpp$(exeext)): Likewise.
15065
15066 2011-08-08  Richard Guenther  <rguenther@suse.de>
15067
15068         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
15069         split out from ...
15070         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
15071         by composition.
15072
15073 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
15074
15075         PR tree-optimization/50005
15076         * ipa-inline-analysis (remap_predicate): Add cast to
15077         silence signed/unsigned comparison warning.
15078
15079 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
15080
15081         * modulo-sched.c (get_sched_window): Use a table for the debug output.
15082         Print the current ii.
15083         (sms_schedule_by_order): Reduce whitespace in dump line.
15084
15085 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
15086
15087         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
15088         and one loop for successors.  Fix upper bound of memory range.
15089
15090 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
15091
15092         PR target/50001
15093         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
15094         (TARGET_INSTANTIATE_DECLS): New define.
15095
15096 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
15097             Mikael Morin  <mikael.morin@sfr.fr>
15098
15099         * Makefile.in (INCLUDES_FOR_TARGET): New.
15100         (LIBGCC2_CFLAGS): Use it.
15101         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
15102
15103 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
15104
15105         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
15106         frame->save_regs_using_mov calculation.
15107
15108 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
15109
15110         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
15111         * config/i386/sse.md (castmode): New mode attribute.
15112         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
15113         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
15114
15115 2011-08-05  Jan Hubicka  <jh@suse.cz>
15116
15117         PR middle-end/49494
15118         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
15119
15120 2011-08-05  Jan Hubicka  <jh@suse.cz>
15121
15122         PR middle-end/49500
15123         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
15124         handle aliases.
15125         (create_emultls_var):New function.
15126         (ipa_lower_emutls): Handle aliases correctly.
15127
15128 2011-08-05  Jan Hubicka  <jh@suse.cz>
15129
15130         PR middle-end/49735
15131         * ipa-inline.c (recursive_inlining): Look through aliases.
15132
15133 2011-08-05  Jason Merrill  <jason@redhat.com>
15134
15135         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
15136         declarations to beginning of function.
15137
15138 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
15139
15140         PR rtl-optimization/49900
15141         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
15142         ensure basic blocks stay in the same order.
15143
15144 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
15145
15146         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
15147         store_bit_field.
15148         (s390_expand_atomic): Same.
15149
15150 2011-08-05  Richard Henderson  <rth@redhat.com>
15151
15152         PR rtl-opt/49977
15153         * dwarf2cfi.c (scan_insn_after): Split out of ...
15154         (scan_trace): ... here.  Correctly place notes wrt sequences.
15155
15156 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
15157             Richard Henderson  <rth@redhat.com>
15158
15159         PR rtl-opt/49982
15160         * expr.c (fixup_args_size_notes): Look through no-op moves.
15161
15162 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
15163
15164         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
15165         of "m" for operand 0.  Add type and mode attribute.
15166         (*pushxf_nointeger"): Use "<" constraint for operand 0.
15167         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
15168         constraint instead of "o" for opreand 1.
15169         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
15170         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
15171         operand 0, alternative 4.
15172         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
15173
15174 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
15175
15176         * config/i386/predicates.md (lea_address_operand): Rename from
15177         no_seg_address_operand.
15178         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
15179         (*lea_1_zext): Ditto.
15180         (*lea_2): Ditto.
15181         (*lea_2_zext): Ditto.
15182
15183 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
15184
15185         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
15186         parts.base and parts.index.
15187         * config/i386/predicates.md (aligned_operand): Ditto.
15188         (cmpxchg8b_pic_memory_operand): Ditto.
15189
15190 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15191
15192         * config/soft-fp: Move to ../libgcc.
15193         * Makefile.in (SFP_MACHINE): Remove.
15194         (libgcc-support): Remove $(SFP_MACHINE) dependency.
15195         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
15196         * config/arm/t-arm-softfp: Move to
15197         ../libgcc/config/arm/t-softfp.
15198         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
15199         * config/c6x/t-c6x-softfp: Remove.
15200         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
15201         * config/i386/t-fprules-softfp: Move to
15202         ../libgcc/config/t-softfp-tf.
15203         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
15204         * config/ia64/t-fprules-softfp: Remove.
15205         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
15206         * config/lm32/t-fprules-softfp: Remove.
15207         * config/moxie/sfp-machine.h: Remove.
15208         * config/moxie/t-moxie-softfp: Remove.
15209         * config/rs6000/darwin-ldouble-format: Move to
15210         ../libgcc/config/rs6000/ibm-ldouble-format.
15211         * config/rs6000/darwin-ldouble.c: Move to
15212         ../libgcc/config/rs6000/ibm-ldouble.c
15213         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
15214         * config/rs6000/libgcc-ppc64.ver: Likewise.
15215         * config/rs6000/sfp-machine.h: Likewise.
15216         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
15217         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
15218         (LIB2FUNCS_EXTRA): Remove.
15219         (TARGET_LIBGCC2_CFLAGS): Remove.
15220         * config/rs6000/t-aix52: Likewise
15221         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
15222         $(srcdir)/config/rs6000/darwin-ldouble.c.
15223         (SHLIB_MAPFILES): Remove.
15224         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
15225         $(srcdir)/config/rs6000/darwin-ldouble.c.
15226         * config/rs6000/t-fprules-softfp: Move to
15227         ../libgcc/config/t-softfp-sfdf.
15228         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
15229         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
15230         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
15231         $(srcdir)/config/rs6000/darwin-ldouble.c.
15232         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
15233         * config/score/t-score-softfp: Remove.
15234         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
15235         soft-fp/t-softfp from tmake_file.
15236         (arm*-*-uclinux*): Likewise.
15237         (arm*-*-ecos-elf): Likewise.
15238         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
15239         (arm*-*-rtems*): Likewise.
15240         (arm*-*-elf): Likewise.
15241         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
15242         tmake_file.
15243         (moxie-*-uclinux*): Likewise.
15244         (moxie-*-rtems*): Likewise.
15245         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
15246         tmake_file.
15247         (lm32-*-rtems*): Likewise.
15248         (lm32-*-uclinux*): Likewise.
15249         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
15250         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
15251         (powerpc-*-linux*, powerpc64-*-linux*): Remove
15252         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
15253         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
15254         tmake_file.
15255         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
15256         tmake_file.
15257         (tic6x-*-uclinux): Likewise.
15258         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
15259         soft-fp/t-softfp from tmake_file.
15260         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
15261         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
15262         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
15263         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
15264         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
15265
15266 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15267
15268         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
15269         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
15270         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
15271         TPBIT, TPBIT_FUNCS.
15272         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
15273         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
15274         Remove.
15275         * config/arm/t-vxworks: Likewise.
15276         * config/arm/t-wince-pe: Likewise.
15277         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
15278         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15279         * config/bfin/t-bfin-elf: Likewise.
15280         * config/bfin/t-bfin-linux: Likewise.
15281         * config/bfin/t-bfin-uclinux: Likewise.
15282         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
15283         Remove.
15284         * config/fr30/t-fr30: Likewise.
15285         * config/frv/t-frv: Likewise.
15286         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
15287         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15288         * config/m32c/t-m32c: Likewise.
15289         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
15290         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15291         * config/mcore/t-mcore: Likewise.
15292         * config/mep/t-mep: Likewise.
15293         * config/microblaze/t-microblaze: Likewise.
15294         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
15295         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15296         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
15297         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15298         * config/mn10300/t-linux: Remove.
15299         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15300         * config/pdp11/t-pdp11: Likewise.
15301         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
15302         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
15303         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15304         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
15305         * config/rs6000/t-aix52: Likewise.
15306         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
15307         $(srcdir)/config/rs6000/ppc64-fp.c.
15308         * config/rs6000/t-fprules-fpbit: Remove.
15309         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
15310         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15311         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
15312         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15313         * config/sparc/t-elf: Likewise.
15314         * config/sparc/t-leon: Likewise.
15315         * config/sparc/t-leon3: Likewise.
15316         * config/spu/t-spu-elf: Likewise.
15317         (DPBIT_FUNCS): Remove.
15318         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
15319         * config/v850/t-v850: Likewise.
15320         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
15321         (avr-*-*): Likewise.
15322         (h8300-*-rtems*): Set libgcc_tm_file.
15323         (h8300-*-elf*): Likewise.
15324         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
15325         tmake_file.
15326         (powerpc-*-eabisim*): Likewise.
15327         (powerpc-*-elf*): Likewise.
15328         (powerpc-*-eabialtivec*): Likewise.
15329         (powerpc-xilinx-eabi*): Likewise.
15330         (powerpc-*-eabi*): Likewise.
15331         (powerpc-*-rtems*): Likewise.
15332         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
15333         (powerpcle-*-elf*): Likewise.
15334         (powerpcle-*-eabisim*): Likewise.
15335         (powerpcle-*-eabi*): Likewise.
15336         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
15337         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
15338         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
15339         Remove.
15340
15341 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15342
15343         * Makefile.in (UNWIND_H): Remove.
15344         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
15345         ../libgcc/Makefile.in.
15346         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
15347         (LIBUNWINDDEP): Remove.
15348         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
15349         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
15350         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
15351         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
15352         Don't copy $(UNWIND_H).
15353         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
15354         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
15355         * aclocal.m4: Regenerate.
15356         * configure: Regenerate.
15357         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
15358         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
15359         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
15360         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
15361         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
15362         * config/arm/libunwind.S, config/arm/pr-support.c,
15363         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
15364         ../libgcc/config/arm.
15365         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
15366         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
15367         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
15368         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
15369         ($(T)frvend$(objext)): Likewise.
15370         * config/ia64/t-glibc (LIB2ADDEH): Remove.
15371         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
15372         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
15373         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
15374         ../libgcc/config/ia64.
15375         * config/ia64/t-hpux (LIB2ADDEH): Remove.
15376         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
15377         * config/ia64/t-vms (LIB2ADDEH): Remove.
15378         * config/ia64/vms.h (UNW_IVMS_MODE,
15379         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
15380         * config/picochip/t-picochip (LIB2ADDEH): Remove.
15381         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
15382         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
15383         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
15384         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
15385         $(srcdir)/../libgcc to refer to unwinder sources.
15386         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
15387         * config/t-darwin (LIB2ADDEH): Remove.
15388         * config/t-freebsd (LIB2ADDEH): Remove.
15389         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
15390         * config/t-libunwind-elf: Move to ../libgcc/config.
15391         * config/t-linux (LIB2ADDEH): Remove.
15392         * config/t-sol2 (LIB2ADDEH): Remove.
15393         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
15394         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
15395
15396 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
15397
15398         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
15399
15400         * doc/invoke.texi: Document core-avx-i.
15401
15402 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15403
15404         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
15405
15406 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
15407
15408         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
15409         result of multiple results reduction when extracting the final
15410         value using scalar code.
15411
15412 2011-08-05  Richard Guenther  <rguenther@suse.de>
15413
15414         PR tree-optimization/49984
15415         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
15416
15417 2011-08-05  Richard Guenther  <rguenther@suse.de>
15418
15419         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
15420         return true for constant integer ranges.
15421         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
15422         BIT_IOR_EXPR handling.
15423
15424 2011-08-04  Kai Tietz  <ktietz@redhat.com>
15425
15426         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
15427         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
15428
15429 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
15430
15431         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
15432         pattern def statement, and its access macro.
15433         (NUM_PATTERNS): Set to 5.
15434         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
15435         pattern def statement.
15436         (vect_transform_loop): Likewise.
15437         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
15438         function vect_recog_over_widening_pattern ().
15439         (vect_operation_fits_smaller_type): New function.
15440         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
15441         Likewise.
15442         (vect_pattern_recog_1): Move the code that marks pattern
15443         statements to vect_mark_pattern_stmts (), and call it.  Update
15444         documentation.
15445         * tree-vect-stmts.c (vect_supportable_shift): New function.
15446         (vect_analyze_stmt): Handle pattern def statement.
15447         (new_stmt_vec_info): Initialize pattern def statement.
15448
15449 2011-08-04  Richard Henderson  <rth@redhat.com>
15450
15451         PR target/49964
15452         * config/i386/i386.c (ix86_expand_call): Don't create nested
15453         PARALLELs for TARGET_VZEROUPPER.
15454         (ix86_split_call_vzeroupper): Fix extraction of the original call.
15455         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
15456         recognize nested PARALLELs.
15457         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
15458         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
15459         *sibcall_value_pop_vzeroupper): Likewise.
15460
15461 2011-08-04  Richard Henderson  <rth@redhat.com>
15462
15463         PR middle-end/49968
15464         * calls.c (expand_call): Use fixup_args_size_notes for
15465         emit_stack_restore.
15466         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
15467         in non-standard modes.
15468
15469 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
15470
15471         * gcc.c (self_spec): New variable.
15472         (static_specs): Add self_spec.
15473         (main): Call do_self_spec on "self_spec" specs after reading
15474         user specs files.  Move compare_debug handling right after that.
15475
15476 2011-08-04  Richard Guenther  <rguenther@suse.de>
15477
15478         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
15479         (value_range_nonnegative_p): New function.
15480         (ssa_name_nonnegative_p): Use it.
15481         (value_range_constant_singleton): New function.
15482         (op_with_constant_singleton_value_range): Use it.
15483         (extract_range_from_binary_expr_1): New function, split out from ...
15484         (extract_range_from_binary_expr): ... this.  Remove fallback
15485         constant folding done here.
15486
15487 2011-08-04  Richard Guenther  <rguenther@suse.de>
15488
15489         PR tree-optimization/49806
15490         * tree-vrp.c (op_with_boolean_value_range_p): New function.
15491         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
15492         a new statement for a final conversion to bool.
15493
15494 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
15495
15496         * gengtype-state.c: Include "bconfig.h" if
15497         GENERATOR_FILE is defined, "config.h" otherwise.
15498         * gengtype.c: Likewise.
15499         * gengtype-lex.l: Likewise.
15500         * gengtype-parse.c: Likewise.
15501         * Makefile.in (gengtype-lex.o-warn): New variable.
15502         (plugin_resourcesdir): Likewise.
15503         (plugin_bindir): Likewise.
15504         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
15505         (MOSTLYCLEANFILES): Add gengtype$(exeext).
15506         (native): Depend on gengtype$(exeext) is $enable_plugin
15507         is set to "yes".
15508         (gtype.state): Depend on s-gtype. Use temporary file.
15509         (gengtype-lex.o): New rule.
15510         (gengtype-parse.o): Likewise.
15511         (gengtype-state.o): Likewise.
15512         (gengtype$(exeext)): Likewise.
15513         (install-gengtype): Likewise.
15514         (gengtype.o): Likewise.
15515         (build/gengtype.o): Depend on version.h.
15516         (build/gengtype-state): Depend on double-int.h, version.h,
15517         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
15518         (install-plugin): Depend on install-gengtype.
15519
15520 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
15521
15522         PR middle-end/49905
15523         * tree.h (init_attributes): New prototype.
15524         * attribs.c (init_attributes): No longer static.
15525
15526 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15527
15528         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
15529         maybe_suffix.
15530
15531 2011-08-03  David Li  <davidxl@google.com>
15532
15533         * tree-optimize.c (execute_fixup_cfg): Fix up entry
15534         outgoing edge counts after inlining.
15535
15536 2011-08-03  David Li  <davidxl@google.com>
15537
15538         * profile.c (compute_branch_probabilities): Compute
15539         function frequency after profile annotation.
15540
15541 2011-08-04  Alan Modra  <amodra@gmail.com>
15542
15543         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
15544         use_backchain_to_restore_sp initialisation.
15545         (rs6000_legitimate_offset_address_p): Simplify offset test.
15546
15547 2011-08-03  Richard Henderson  <rth@redhat.com>
15548
15549         * config/spu/spu.md: Use define_c_enum instead of define_constants.
15550         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
15551         (UNSPECV_NOP): New.
15552
15553 2011-08-03  Richard Henderson  <rth@redhat.com>
15554
15555         PR target/34888
15556         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
15557
15558 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
15559
15560         PR tree-optimization/49948
15561         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
15562
15563 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
15564
15565         * config/m32c/m32c.c (class_sizes): Remove.
15566         (reduce_class): Change arguments and return type to reg_class_t.
15567         Change type cc var to HARD_REG_SET. Change type best var to
15568         reg_class_t. Change type best_size var to unsigned int. Remove
15569         initialization class_sizes var. Use reg_class_size array instead
15570         of class_sizes. Use reg_class_contents array instead
15571         of class_contents.
15572
15573 2011-08-03  Richard Guenther  <rguenther@suse.de>
15574
15575         PR middle-end/49958
15576         * fold-const.c (fold_binary_loc): Only associate
15577         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
15578         overflow wraps.
15579
15580 2011-08-03  Alan Modra  <amodra@gmail.com>
15581
15582         PR rtl-optimization/49941
15583         * jump.c (mark_jump_label): Comment.
15584         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
15585         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
15586         (mark_used_flags): Don't mark RETURN.
15587
15588 2011-08-03  Richard Guenther  <rguenther@suse.de>
15589
15590         PR tree-optimization/49938
15591         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
15592         deal with a POLYNOMIAL_CHREC.
15593
15594 2011-08-03  Revital Eres  <revital.eres@linaro.org>
15595
15596         * modulo-sched.c (calculate_stage_count,
15597         calculate_must_precede_follow, get_sched_window,
15598         try_scheduling_node_in_cycle, remove_node_from_ps): Add
15599         declaration.
15600         (update_node_sched_params, set_must_precede_follow, optimize_sc):
15601         New functions.
15602         (reset_sched_times): Call update_node_sched_params.
15603         (sms_schedule): Call optimize_sc.
15604         (get_sched_window): Change function arguments.
15605         (sms_schedule_by_order): Update call to get_sched_window.
15606         Call set_must_precede_follow.
15607         (calculate_stage_count): Add function argument.
15608
15609 2011-08-02  Richard Henderson  <rth@redhat.com>
15610
15611         PR target/49864
15612         PR target/49879
15613         * reg-notes.def (REG_ARGS_SIZE): New.
15614         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
15615         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
15616         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
15617         different stack levels.
15618         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
15619         (maybe_move_args_size_note): New.
15620         (combine_stack_adjustments_for_block): Use it.
15621         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
15622         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
15623         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
15624         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
15625         (cur_cfa): New.
15626         (queued_args_size): Remove.
15627         (add_cfi_args_size): Assert size is non-negative.
15628         (stack_adjust_offset, dwarf2out_args_size): Remove.
15629         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
15630         (notice_args_size, notice_eh_throw): New.
15631         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
15632         (dwarf2out_frame_debug_adjust_cfa): Likewise.
15633         (dwarf2out_frame_debug_cfa_offset): Likewise.
15634         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
15635         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
15636         (change_cfi_row): Don't emit args_size.
15637         (maybe_record_trace_start_abnormal): Split out from ...
15638         (maybe_record_trace_start): Here.  Set args_size_undefined.
15639         (create_trace_edges): Update to match.
15640         (scan_trace): Handle REG_ARGS_SIZE.
15641         (connect_traces): Connect args_size between EH insns.
15642         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
15643         * explow.c (suppress_reg_args_size): New.
15644         (adjust_stack_1): Split out from ...
15645         (adjust_stack): ... here.
15646         (anti_adjust_stack): Use it.
15647         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
15648         * expr.c (mem_autoinc_base): New.
15649         (fixup_args_size_notes): New.
15650         (emit_single_push_insn_1): Rename from emit_single_push_insn.
15651         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
15652         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
15653         * reload1.c (reload_as_needed): Likewise.
15654         * rtl.h (fixup_args_size_notes): Declare.
15655
15656 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
15657
15658         PR bootstrap/49914
15659         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
15660         of abs.
15661         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
15662         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
15663
15664 2011-08-02  Richard Henderson  <rth@redhat.com>
15665
15666         * config/h8300/h8300.c (push, pop): Return the insn.
15667         (h8300_swap_into_er6): Generate correct unwind info.
15668         (h8300_swap_out_of_er6): Likewise.
15669         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
15670         complex cfa expression.
15671         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
15672
15673 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
15674
15675         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
15676
15677 2011-08-02  Richard Henderson  <rth@redhat.com>
15678
15679         PR target/49878
15680         * config/h8300/h8300.c (h8300_move_ok): New.
15681         * config/h8300/h8300-protos.h: Declare it.
15682         * config/h8300/h8300.md (P): New mode iterator.
15683         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
15684         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
15685         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
15686         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
15687         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
15688         and pushqi1_h8300hs_normal; use PRE_MODIFY and
15689         register_no_sp_elim_operand.
15690         (*pushhi1_h8300hs_<P>): Similarly.
15691         (pushqi1, pushhi1, pushhi1_h8300): Remove.
15692         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
15693
15694 2011-08-02  Richard Henderson  <rth@redhat.com>
15695
15696         PR target/49881
15697         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
15698
15699 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
15700
15701         * c-parser.c (enum c_parser_prec): New enum, moved from within
15702         c_parser_binary_expression.
15703         (c_parser_binary_expression): Add PREC argument.  Stop parsing
15704         if operator has lower or equal precedence than PREC.
15705         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
15706         callers.
15707         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
15708         Adjust c_finish_omp_atomic caller.
15709         (c_parser_omp_taskyield): New function.
15710         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
15711         (c_parser_omp_clause_name): Handle final and mergeable clauses.
15712         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
15713         functions.
15714         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
15715         and PRAGMA_OMP_CLAUSE_MERGEABLE.
15716         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
15717         (c_parser_omp_clause_reduction): Handle min and max.
15718         * c-typeck.c (c_finish_omp_clauses): Don't complain about
15719         const qualified predetermined vars in firstprivate clause.
15720         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15721         Handle MIN_EXPR and MAX_EXPR.
15722         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
15723         and OMP_CLAUSE_MERGEABLE.
15724         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
15725         and OMP_ATOMIC_CAPTURE_NEW.
15726         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
15727         OMP_CLAUSE_MERGEABLE.
15728         (omp_clause_code_name): Likewise.
15729         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15730         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
15731         and OMP_CLAUSE_MERGEABLE.
15732         (OMP_CLAUSE_FINAL_EXPR): Define.
15733         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
15734         OMP_CLAUSE_MERGEABLE.
15735         (expand_task_call): Likewise.
15736         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
15737         (expand_omp_atomic_fetch_op): Handle cases where old or new
15738         value is needed afterwards.
15739         (expand_omp_atomic): Call expand_omp_atomic_load resp.
15740         expand_omp_atomic_store.
15741         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
15742         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
15743         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
15744         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15745         * tree-nested.c (convert_nonlocal_omp_clauses,
15746         convert_local_omp_clauses): Likewise.
15747         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
15748         OMP_ATOMIC_CAPTURE_NEW): New.
15749         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
15750         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
15751         New inlines.
15752         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
15753         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
15754         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
15755
15756 2011-08-02  Kai Tietz  <ktietz@redhat.com>
15757
15758         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
15759         boolean-type.
15760         (ssa_forward_propagate_and_combine): Interprete result of
15761         forward_propagate_comparison.
15762         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
15763         boolean-typed operands for comparisons.
15764
15765 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
15766
15767         * config/avr/libgcc.S: Gather related function in the
15768         same input section.
15769         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
15770         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
15771         references.
15772         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
15773         __udivmodsi4, __divmodsi4, __prologue_saves__,
15774         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
15775         __do_copy_data, __do_clear_bss, __do_global_ctors,
15776         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
15777
15778 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
15779
15780         PR target/47766
15781         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
15782         (stack_protect_test): The pattern compares ptr_mode value.
15783
15784 2011-08-02  Alan Modra  <amodra@gmail.com>
15785
15786         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
15787         note for save_LR_around_toc_setup sequence.
15788
15789 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
15790
15791         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
15792
15793 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
15794             Joseph Myers  <joseph@codesourcery.com>
15795
15796         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
15797         * hwint.c: Include diagnostic-core.h.
15798         (abs_hwi): New.
15799         (gcd): Moved here...
15800         (pos_mul_hwi): New.
15801         (mul_hwi): New.
15802         (least_common_multiple): Moved here...
15803         * hwint.h (gcd): ... from here.
15804         (least_common_multiple): ... from here.
15805         (HOST_WIDE_INT_MIN): New.
15806         (HOST_WIDE_INT_MAX): New.
15807         (abs_hwi): Declared.
15808         (gcd): Declared.
15809         (pos_mul_hwi): Declared.
15810         (mul_hwi): Declared.
15811         (least_common_multiple): Declared.
15812         * omega.c (check_pos_mul): Removed.
15813         (check_mul): Removed.
15814         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
15815         mul_hwi instead of check_mul.
15816
15817 2011-08-01  Richard Henderson  <rth@redhat.com>
15818
15819         PR target/49881
15820         * config/avr/avr.h (PUSH_ROUNDING): New.
15821         * config/avr/avr.md (pushqi1): Rename from *pushqi.
15822         (*pushhi, *pushsi, *pushsf): Remove.
15823         (MPUSH): New mode iterator.
15824         (push<MPUSH>1): New expander.
15825
15826 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
15827
15828         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
15829         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
15830         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
15831         mmix_preferred_output_reload_class): Remove.
15832         * config/mmix/mmix.c (mmix_preferred_reload_class,
15833         mmix_preferred_output_reload_class): Make static. Change rclass
15834         argument and return type to reg_class_t.
15835         (TARGET_PREFERRED_RELOAD_CLASS,
15836         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15837
15838 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
15839
15840         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
15841         handling.
15842
15843 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
15844
15845         PR target/47766
15846         * config/i386/i386.md (PTR): New.
15847         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
15848         (stack_protect_test): Likewise.
15849         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
15850         (stack_tls_protect_set_<mode>): Likewise.
15851         (stack_tls_protect_test_<mode>): Likewise.
15852
15853 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
15854
15855         PR target/49927
15856         * config/i386/i386.c (ix86_address_subreg_operand): New.
15857         (ix86_decompose_address): Use ix86_address_subreg_operand.
15858         (ix86_legitimate_address_p): Do not assert that subregs satisfy
15859         register_no_elim_operand in DImode.
15860
15861 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
15862
15863         PR tree-optimization/49926
15864         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
15865         in a chain doesn't have uses both inside and outside the loop.
15866
15867 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
15868
15869         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
15870         * config/avr/avr-devices.c (avr_mcu_types): Use it.
15871         * config/avr/avr-mcus.def (AVR_MCU): Use it.
15872         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
15873         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
15874         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
15875         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
15876         to detect if XJMP must not be skipped.
15877
15878 2011-08-02  Alan Modra  <amodra@gmail.com>
15879
15880         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
15881         Delete.
15882         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
15883         (rs6000_emit_prologue): Don't prematurely return when
15884         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
15885         save_toc_in_prologue case.
15886         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
15887         calls_alloca.
15888
15889 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
15890
15891         * config/avr/avr-devices.c: Delete SVN property svn:executable.
15892         * config/avr/predicates.md: Ditto.
15893         * config/avr/driver-avr.c: Ditto.
15894         * config/avr/genopt.sh: Set SVN property svn:executable to *.
15895
15896 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
15897
15898         * calls.c (emit_library_call_value_1): Declare size only if
15899         BLOCK_REG_PADDING is defined.
15900
15901 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
15902
15903         PR target/49547
15904         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
15905         (x86_64-*-*): Likewise.
15906         * config/i386/i386.opt (mlzcnt): New.
15907         * config/i386/abmintrin.h: File removed.
15908         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
15909         * config/i386/lzcntintrin.h: ... here.  New file.
15910         (__lzcnt): Rename to ...
15911         (__lzcnt32): ... this.
15912         * config/i386/bmiintrin.h (head): Update copyright year.
15913         (__lzcnt_u16): Removed.
15914         (__lzcnt_u32): Likewise.
15915         (__lzcnt_u64): Likewise.
15916         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
15917         is defined, remove abmintrin.h.
15918         * config/i386/cpuid.h (bit_LZCNT): New.
15919         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
15920         LZCNT feature.
15921         * config/i386/i386-c.c (ix86_target_macros_internal): Define
15922         __LZCNT__ if needed.
15923         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
15924         (ix86_option_override_internal): Handle LZCNT option.
15925         (ix86_valid_target_attribute_inner_p): Likewise.
15926         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
15927         * config/i386/i386.h (TARGET_LZCNT): New.
15928         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
15929         * config/i386/i386.md (clz<mode>2): Update insn constraint.
15930         (clz<mode>2_lzcnt): Likewise.
15931         * doc/invoke.texi: Mention -mlzcnt option.
15932         * doc/extend.texi: Likewise.
15933
15934 2011-08-01  Julian Brown  <julian@codesourcery.com>
15935
15936         * configure.ac (fixed-point): Add ARM support.
15937         * configure: Regenerate.
15938         * config/arm/arm.c (arm_fixed_mode_set): New struct.
15939         (arm_set_fixed_optab_libfunc): New.
15940         (arm_set_fixed_conv_libfunc): New.
15941         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
15942         ARM-specific names.
15943         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
15944         return values in SImode.
15945         (arm_return_in_msb): Return fixed-point types in the msb.
15946         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
15947         upwards.
15948         (arm_scalar_mode_supported_p): Support fixed-point modes.
15949         (arm_vector_mode_supported_p): Support vector fixed-point modes.
15950         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
15951         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
15952         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
15953         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
15954         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
15955         New mode iterators.
15956         (qaddsub_suf): New mode attribute.
15957         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
15958         vector modes.
15959         * config/arm/predicates.md (sat_shift_operator): New predicate.
15960         * config/arm/arm-fixed.md: New.
15961         * config/arm/arm.md: Include arm-fixed.md.
15962         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
15963
15964 2011-08-01  Julian Brown  <julian@codesourcery.com>
15965
15966         * calls.c (emit_library_call_value_1): Support padding for libcall
15967         arguments and return values.
15968         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
15969         downwards in big-endian mode.
15970
15971 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15972
15973         PR debug/49887
15974         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
15975         * config/sol2-protos.h: Likewise.
15976         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
15977         solaris_code_end.
15978         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
15979         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
15980         solaris_file_end.
15981         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
15982
15983 2011-08-01  Julian Brown  <julian@codesourcery.com>
15984
15985         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
15986
15987 2011-08-01  Julian Brown  <julian@codesourcery.com>
15988
15989         * final.c (output_addr_const): Print fixed-point constants as
15990         decimal not hex.
15991
15992 2011-08-01  Richard Guenther  <rguenther@suse.de>
15993
15994         * stor-layout.c (initialize_sizetypes): Properly sign-extend
15995         bitsiztype TYPE_MAX_VALUE.
15996
15997 2011-08-01  Julian Brown  <julian@codesourcery.com>
15998
15999         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
16000         comparison helpers.
16001
16002 2011-07-31  Richard Henderson  <rth@redhat.com>
16003
16004         * config/h8300/crti.asm: Add flags to .section directive.
16005         * config/h8300/crtn.asm: Likewise.
16006
16007 2011-07-31  Richard Henderson  <rth@redhat.com>
16008
16009         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
16010         * tree.c (build_common_tree_nodes): Likewise.
16011
16012 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
16013
16014         PR target/49880
16015         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
16016         (divsi3_i1): Likewise.
16017
16018 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16019
16020         PR tree-optimization/49749
16021         * tree-ssa-reassoc.c (get_rank): New forward declaration.
16022         (PHI_LOOP_BIAS): New macro.
16023         (phi_rank): New function.
16024         (loop_carried_phi): Likewise.
16025         (propagate_rank): Likewise.
16026         (get_rank): Add calls to phi_rank and propagate_rank.
16027
16028 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
16029
16030         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
16031         of TARGET_64BIT.
16032         (PTRDIFF_TYPE): Likewise.
16033
16034 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
16035
16036         PR target/49920
16037         * config/i386/i386.md (strset): Do not expand strset_singleop
16038         when %eax or $edi are fixed.
16039         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
16040         (*strsetsi_1): Ditto.
16041         (*strsethi_1): Ditto.
16042         (*strsetqi_1): Ditto.
16043         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
16044         (*rep_stossi): Ditto.
16045         (*rep_stosqi): Ditto.
16046         (*strlenqi_1): Ditto.
16047         (cmpstrnsi): Also fail when %ecx is fixed.
16048         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
16049         (*cmpstrnqi_1): Ditto.
16050         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
16051         (*strmovsi_1): Ditto.
16052         (*strmovhi_1): Ditto.
16053         (*strmovqi_1): Ditto.
16054         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
16055         (*rep_movsi): Ditto.
16056         (*rep_movqi): Ditto.
16057
16058 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
16059
16060         PR target/47908
16061         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
16062         Disable instruction scheduling for non-ColdFire targets.
16063         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
16064
16065 2011-07-31  Revital Eres  <revital.eres@linaro.org>
16066
16067         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
16068         of anti-dep edge from a branch.
16069         (add_cross_iteration_register_deps): Create anti-dep edge from
16070         a branch.
16071
16072 2011-07-31  Revital Eres  <revital.eres@linaro.org>
16073
16074         * modulo-sched.c: Change comment.
16075         (reset_sched_times): Fix print message.
16076         (print_partial_schedule): Add print info.
16077
16078 2011-07-31  Tom de Vries  <tom@codesourcery.com>
16079
16080         PR middle-end/43513
16081         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
16082         get_object_alignment and TYPE_ALIGN.
16083
16084 2011-07-30  Tom de Vries  <tom@codesourcery.com>
16085
16086         PR middle-end/43513
16087         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
16088         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
16089
16090 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16091
16092         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
16093         <sys/sbd.h>.
16094         (cpu_types): New array.
16095         (cputype): New function.
16096         (host_detect_local_cpu): Only define buf, f if !__sgi__.
16097         Use scaninvent instead of /proc/cpuinfo if __sgi__.
16098         * config.host: Also use driver-native.o, mips/x-native on
16099         mips-sgi-irix*.
16100         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
16101         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
16102         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
16103
16104 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
16105
16106         PR middle-end/49897
16107         PR middle-end/49898
16108         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
16109         in nested parallel and outer is a gimple_reg, mark it as addressable
16110         and set its bit in task_shared_vars bitmap too.
16111
16112 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
16113
16114         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
16115
16116 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16117
16118         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
16119         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
16120         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
16121         AMASK_LOCKPFTCHOK): Define.
16122         (host_detect_local_cpu): Remove buf, f, cpu_names.
16123         Define cpu_types, implver, amask.
16124         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
16125         native CPU.
16126         * config.host: Also use driver-alpha.o, alpha/x-alpha on
16127         alpha*-dec-osf*.
16128         * config/alpha/osf5.h [__alpha__ || __alpha]
16129         (host_detect_local_cpu): Declare.
16130         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
16131         (DRIVER_SELF_SPECS): Define.
16132
16133 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
16134
16135         PR target/47715
16136         * config/i386/i386.md (*load_tp_x32): New.
16137         (*load_tp_x32_zext): Ditto.
16138         (*add_tp_x32): Ditto.
16139         (*add_tp_x32_zext): Ditto.
16140         (*load_tp_<mode>): Disable for TARGET_X32 targets.
16141         (*add_tp_<mode>): Ditto.
16142         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
16143         ptr_mode and convert to Pmode if needed.
16144
16145 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
16146
16147         PR target/49687
16148         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
16149         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
16150         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
16151         Add X to register footprint: Clobber r26/r27.
16152
16153 2011-07-29  Richard Guenther  <rguenther@suse.de>
16154
16155         * builtins.c (fold_builtin_signbit): Build the comparison
16156         with a proper type.
16157
16158 2011-07-29  Richard Guenther  <rguenther@suse.de>
16159
16160         PR tree-optimization/49893
16161         * tree-predcom.c (suitable_reference_p): Volatile references
16162         are not suitable.
16163
16164 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
16165
16166         PR target/49313
16167         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
16168         (__ctzsi2): Result for 0 may be undefined.
16169         (__ctzhi2): Result for 0 may be undefined.
16170         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
16171         (__popcountsi2): Ditto. And don't clobber r26.
16172         (__popcountdi2): Ditto. And don't clobber r27.
16173         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
16174         (parityhi2): New expand.
16175         (paritysi2): New expand.
16176         (popcounthi2): New expand.
16177         (popcountsi2): New expand.
16178         (clzhi2): New expand.
16179         (clzsi2): New expand.
16180         (ctzhi2): New expand.
16181         (ctzsi2): New expand.
16182         (ffshi2): New expand.
16183         (ffssi2): New expand.
16184         (copysignsf3): New insn.
16185         (bswapsi2): New expand.
16186         (*parityhi2.libgcc): New insn.
16187         (*parityqihi2.libgcc): New insn.
16188         (*paritysihi2.libgcc): New insn.
16189         (*popcounthi2.libgcc): New insn.
16190         (*popcountsi2.libgcc): New insn.
16191         (*popcountqi2.libgcc): New insn.
16192         (*popcountqihi2.libgcc): New insn-and-split.
16193         (*clzhi2.libgcc): New insn.
16194         (*clzsihi2.libgcc): New insn.
16195         (*ctzhi2.libgcc): New insn.
16196         (*ctzsihi2.libgcc): New insn.
16197         (*ffshi2.libgcc): New insn.
16198         (*ffssihi2.libgcc): New insn.
16199         (*bswapsi2.libgcc): New insn.
16200
16201 2011-07-29  Richard Guenther  <rguenther@suse.de>
16202
16203         * tree-vrp.c (get_value_range): Only set parameter default
16204         definitions to varying, leave others at undefined.
16205         (extract_range_from_binary_expr): Fix undefined handling.
16206         (vrp_visit_phi_node): Handle merged undefined state.
16207
16208 2011-07-29  Wei Guozhi  <carrot@google.com>
16209
16210         PR rtl-optimization/49799
16211         * combine.c (make_compound_operation): Check if the bit field is valid
16212         before change it to bit field extraction.
16213
16214 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16215
16216         PR rtl-optimization/49891
16217         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
16218         newly created returnjumps.
16219
16220 2011-07-28  DJ Delorie  <dj@redhat.com>
16221
16222         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
16223         local frame in a naked function, and produce a suitable error for
16224         that specific case.
16225
16226         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
16227         registers to be reloaded in HI classes when the target is HI.
16228
16229 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
16230
16231         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
16232         bound_one, bound_two.
16233
16234 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
16235
16236         PR middle-end/48648
16237         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
16238         CLAST assignments.
16239         (translate_clast): Same.
16240         (translate_clast_assignment): New.
16241
16242 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
16243
16244         PR tree-optimization/49876
16245         * sese.c (rename_uses): Do not return false on gloog_error: set
16246         the new_expr to integer_zero_node and continue code generation.
16247         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
16248
16249 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
16250
16251         PR debug/49846
16252         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
16253         arguments also check if they aren't initialized with a MODE_INT
16254         mode of the same size.
16255
16256 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
16257
16258         * expr.c (get_bit_range): Handle *MEM_REF's.
16259
16260 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
16261
16262         * rtlanal.c (tablejump_p): False for returns.
16263         * reorg.c (first_active_target_insn): New static function.
16264         (find_end_label): Set JUMP_LABEL for a new returnjump.
16265         (optimize_skip, get_jump_flags, rare_destination,
16266         mostly_true_jump, get_branch_condition,
16267         steal_delay_list_from_target, own_thread_p,
16268         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
16269         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
16270         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
16271         * jump.c (delete_related_insns): Likewise.
16272         (jump_to_label_p): New function.
16273         (redirect_target): New static function.
16274         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
16275         (redirect_jump_1): Assert that the new label is nonnull.
16276         (redirect_jump): Likewise.
16277         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
16278         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
16279         exit block.
16280         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
16281         changed.  Ensure that the right label is passed to redirect_jump.
16282         * function.c (emit_return_into_block,
16283         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
16284         ret_rtx in their JUMP_LABEL.
16285         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
16286         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
16287         pass ret_rtx as label.
16288         * cfglayout.c (fixup_reorder_chain): Use
16289         force_nonfallthru_and_redirect rather than force_nonfallthru.
16290         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
16291         * rtl.h (ANY_RETURN_P): New macro.
16292         (jump_to_label_p): Declare.
16293         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
16294         JUMP_LABELs.
16295         (mark_target_live_regs): Likewise.
16296         * basic-block.h (force_nonfallthru_and_redirect): Declare.
16297         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
16298         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
16299         alpha_tablejump_best_label): Remove functions.
16300         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
16301         alpha_tablejump_best_label): Remove declarations.
16302         * config/sh/sh.c (barrier_align, split_branches): Adjust for
16303         ret_rtx in JUMP_LABELs.
16304         * config/arm/arm.c (is_jump_table): Likewise.
16305
16306 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
16307
16308         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
16309         special predicate.  Remove explicit mode checks.
16310
16311 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
16312
16313         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
16314         DW_AT_data_member_location containing just DW_OP_plus_uconst.
16315
16316         PR debug/49871
16317         * dwarf2out.c (size_of_die, value_format, output_die): Use
16318         DW_FORM_udata instead of DW_FORM_data[48] for
16319         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
16320
16321 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
16322
16323         * config/i386/i386.md (*tls_global_dynamic_64): Update
16324         length attribute.
16325
16326 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
16327
16328         PR target/47715
16329         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
16330         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
16331         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
16332         (tls_dynamic_gnu2_64): Ditto.
16333         (*tls_dynamic_gnu2_lea_64): Ditto.
16334         (*tls_dynamic_gnu2_call_64): Ditto.
16335         (*tls_dynamic_gnu2_combine_64): Ditto.
16336
16337 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
16338
16339         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
16340
16341 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
16342
16343         PR target/47364
16344         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
16345
16346 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16347
16348         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
16349         before the core constraints. Adjust attributes.
16350         ("*thumb2_movdf_vfp"): Likewise.
16351
16352 2011-07-28  Kai Tietz  <ktietz@redhat.com>
16353
16354         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
16355         (simplify_truth_ops_using_ranges): Likewise.
16356         (build_assert_expr_for): Likewise.
16357         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
16358         and handle BIT_NOT_EXPR for truth-operation.
16359
16360 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
16361
16362         PR target/49313
16363         Undo r176835 from trunk
16364         2011-07-27  Georg-Johann Lay
16365
16366 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
16367
16368         PR target/49687
16369         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
16370         Add _muluhisi3, _mulshisi3, _usmulhisi3.
16371         * config/avr/libgcc.S (__mulsi3): Rewrite.
16372         (__mulhisi3): Rewrite.
16373         (__umulhisi3): Rewrite.
16374         (__usmulhisi3): New.
16375         (__muluhisi3): New.
16376         (__mulshisi3): New.
16377         (__mulohisi3): New.
16378         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
16379         declare.
16380         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
16381         (pseudo_register_or_const_int_operand): New.
16382         (combine_pseudo_register_operand): New.
16383         (u16_operand): New.
16384         (s16_operand): New.
16385         (o16_operand): New.
16386         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
16387         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
16388         (any_extend, any_extend2): New code iterators.
16389         (extend_prefix): New code attribute.
16390         (mulsi3): Rewrite. Turn insn to expander.
16391         (mulhisi3): Ditto.
16392         (umulhisi3): Ditto.
16393         (usmulhisi3): New expander.
16394         (*mulsi3): New insn-and-split.
16395         (mulu<mode>si3): New insn-and-split.
16396         (muls<mode>si3): New insn-and-split.
16397         (mulohisi3): New insn-and-split.
16398         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
16399         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
16400         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
16401         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
16402         insn-and-split.
16403         (*mulsi3_call): Rewrite.
16404         (*mulhisi3_call): Rewrite.
16405         (*umulhisi3_call): Rewrite.
16406         (*usmulhisi3_call): New insn.
16407         (*muluhisi3_call): New insn.
16408         (*mulshisi3_call): New insn.
16409         (*mulohisi3_call): New insn.
16410         (extendqihi2): Use combine_pseudo_register_operand as predicate
16411         for operand 1.
16412         (extendqisi2): Ditto.
16413         (zero_extendqihi2): Ditto.
16414         (zero_extendqisi2): Ditto.
16415         (zero_extendhisi2): Ditto.
16416         (extendhisi2): Ditto. Don't early-clobber operand 0.
16417
16418 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
16419
16420         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
16421
16422 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
16423
16424         PR tree-optimization/49471
16425         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
16426         iv only when the largest type is unsigned.  Do not call
16427         lang_hooks.types.type_for_size.
16428
16429 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
16430
16431         PR middle-end/45450
16432         * graphite-poly.c (apply_poly_transforms): Disable legality check
16433         after an openscop read.
16434
16435 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
16436
16437         PR middle-end/47691
16438         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
16439         copy_bb_and_scalar_dependences.
16440         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
16441         (graphite_copy_stmts_from_block): Update call to rename_uses.
16442         (copy_bb_and_scalar_dependences): Update call to
16443         graphite_copy_stmts_from_block.
16444         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
16445
16446 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
16447
16448         PR target/49313
16449         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
16450         (__ctzsi2): Result for 0 may be undefined.
16451         (__ctzhi2): Result for 0 may be undefined.
16452         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
16453         (__popcountsi2): Ditto. And don't clobber r26.
16454         (__popcountdi2): Ditto. And don't clobber r27.
16455         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
16456         (parityhi2): New expand.
16457         (paritysi2): New expand.
16458         (popcounthi2): New expand.
16459         (popcountsi2): New expand.
16460         (clzhi2): New expand.
16461         (clzsi2): New expand.
16462         (ctzhi2): New expand.
16463         (ctzsi2): New expand.
16464         (ffshi2): New expand.
16465         (ffssi2): New expand.
16466         (copysignsf3): New insn.
16467         (bswapsi2): New expand.
16468         (*parityhi2.libgcc): New insn.
16469         (*parityqihi2.libgcc): New insn.
16470         (*paritysihi2.libgcc): New insn.
16471         (*popcounthi2.libgcc): New insn.
16472         (*popcountsi2.libgcc): New insn.
16473         (*popcountqi2.libgcc): New insn.
16474         (*popcountqihi2.libgcc): New insn-and-split.
16475         (*clzhi2.libgcc): New insn.
16476         (*clzsihi2.libgcc): New insn.
16477         (*ctzhi2.libgcc): New insn.
16478         (*ctzsihi2.libgcc): New insn.
16479         (*ffshi2.libgcc): New insn.
16480         (*ffssihi2.libgcc): New insn.
16481         (*bswapsi2.libgcc): New insn.
16482
16483 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
16484
16485         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
16486         the mode of symbolic_opreand RTXes.
16487
16488 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
16489
16490         * config/i386/predicates.md (x86_64_movabs_operand): Return false
16491         for pic_32bit_operand RTXes.
16492         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
16493         in DImode.
16494
16495 2011-07-27  Kai Tietz  <ktietz@redhat.com>
16496
16497         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
16498         for 32-bit, too.
16499         (ix86_handle_abi_attribute): Allow function attributes
16500         ms_abi/sysv_abi in 32-bit mode, too.
16501         * doc/extend.texi: Adjust attribute documentation.
16502
16503         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
16504         expression handling.
16505         (and_var_with_comparison_1): Likewise.
16506
16507 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
16508
16509         * params.h (ALLOW_STORE_DATA_RACES): New.
16510         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
16511         * Makefile.in (expr.o): Depend on PARAMS_H.
16512         * machmode.h (get_best_mode): Add argument.
16513         * fold-const.c (optimize_bit_field_compare): Add argument to
16514         get_best_mode.
16515         (fold_truthop): Same.
16516         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
16517         * expr.c (emit_group_store): Same.
16518         (copy_blkmode_from_reg): Same.
16519         (write_complex_part): Same.
16520         (optimize_bitfield_assignment_op): Add argument.
16521         Add argument to get_best_mode.
16522         (get_bit_range): New.
16523         (expand_assignment): Calculate maxbits and pass it down accordingly.
16524         (store_field): New argument.
16525         (expand_expr_real_2): New argument to store_field.  Include params.h.
16526         * expr.h (store_bit_field): New argument.
16527         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
16528         into account maxbits.
16529         * calls.c (store_unaligned_arguments_into_pseudos): New argument
16530         to store_bit_field.
16531         * expmed.c (store_bit_field_1): New argument.  Use it.
16532         (store_bit_field): Same.
16533         (store_fixed_bit_field): Same.
16534         (store_split_bit_field): Same.
16535         (extract_bit_field_1): Pass new argument to get_best_mode.
16536         (extract_bit_field): Same.
16537         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
16538         * doc/invoke.texi: Document parameter allow-store-data-races.
16539
16540 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
16541
16542         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
16543
16544 2011-07-27  Kai Tietz  <ktietz@redhat.com>
16545
16546         * tree-vrp.c (extract_range_from_binary_expr): Remove
16547         TRUTH-binary cases and add new bitwise-cases.
16548         (extract_range_from_assignment): Likewise.
16549         (register_edge_assert_for_1): Likeiwise.
16550         (register_edge_assert_for): Likewise.
16551         (simplify_truth_ops_using_ranges): Likewise.
16552         (simplify_stmt_using_ranges): Likewise.
16553
16554 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
16555
16556         PR target/47372
16557         * config/i386/i386.c (ix86_delegitimize_address): Call
16558         simplify_gen_subreg for PIC with mode of x only if modes of
16559         x and orig_x are different.
16560
16561 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
16562
16563         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
16564         to GC allocated copy of the string.
16565         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
16566         before .debug_line, not after it.
16567
16568 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
16569
16570         PR middle-end/47046
16571         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
16572         evolution_function_is_affine_p on CHREC_RIGHT.
16573
16574 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
16575
16576         * tree-data-ref.c (max_stmt_executions_tree): Do not call
16577         lang_hooks.types.type_for_size.
16578
16579 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
16580
16581         PR middle-end/47653
16582         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
16583         loops using wrapping semantics.
16584
16585 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
16586
16587         PR middle-end/48805
16588         * tree-scalar-evolution.c (instantiate_scev_r): Return
16589         chrec_dont_know for ADDR_EXPR.
16590
16591 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
16592             H.J. Lu  <hongjiu.lu@intel.com>
16593
16594         PR target/47369
16595         PR target/49853
16596         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
16597         if legitimize_tls_address returned operand in wrong mode. Allow
16598         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
16599         if legitimize_pic_address returned operand in wrong mode.
16600
16601 2011-07-26  Martin Jambor  <mjambor@suse.cz>
16602
16603         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
16604         return false for invariants.
16605
16606 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
16607
16608         * config/i386/i386.md (add->lea splitter): Implement using SWI
16609         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
16610         (add->lea zext splitter): Change operand 2 predicate to
16611         x86_64_nonmemory_operand.
16612
16613 2011-07-26  Richard Guenther  <rguenther@suse.de>
16614
16615         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
16616         frequency makes everything hot.
16617
16618 2011-07-26  Richard Guenther  <rguenther@suse.de>
16619
16620         PR tree-optimization/49840
16621         * tree-vrp.c (range_fits_type_p): Properly handle full
16622         double-int precision.
16623
16624 2011-07-26  Martin Jambor  <mjambor@suse.cz>
16625
16626         PR bootstrap/49786
16627         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
16628         counts.
16629         (update_specialized_profile): Likewise.
16630
16631 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
16632             H.J. Lu  <hongjiu.lu@intel.com>
16633
16634         PR target/47381
16635         PR target/49832
16636         PR target/49833
16637         * config/i386/i386.md (i): Change SImode attribute to "e".
16638         (g): Change SImode attribute to "rme".
16639         (di): Change SImode attribute to "nF".
16640         (general_operand): Change SImode attribute to x86_64_general_operand.
16641         (general_szext_operand): Change SImode attribute to
16642         x86_64_szext_general_operand.
16643         (immediate_operand): Change SImode attribute to
16644         x86_64_immediate_operand.
16645         (nonmemory_operand): Change SImode attribute to
16646         x86_64_nonmemory_operand.
16647         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
16648         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
16649         (*lea_1): Use SWI48 mode iterator.
16650         (*lea_1_zext): New insn pattern.
16651         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
16652         (*bt<mode>): Ditto.
16653         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
16654         Update operand constraints.
16655         (addsi_1_zext): Ditto.
16656         (*add<mode>2): Ditto.
16657         (*addsi_3_zext): Ditto.
16658         (*subsi_1_zext): Ditto.
16659         (*subsi_2_zext): Ditto.
16660         (*subsi_3_zext): Ditto.
16661         (*addsi3_carry_zext): Ditto.
16662         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
16663         (*mulsi3_1_zext): Ditto.
16664         (*andsi_1): Ditto.
16665         (*andsi_1_zext): Ditto.
16666         (*andsi_2_zext): Ditto.
16667         (*<any_or:code>si_1_zext): Ditto.
16668         (*<any_or:code>si_2_zext): Ditto.
16669         (*test<mode>_1): Use <general_operand> predicate for operand 1.
16670         (*and<mode>_2): Ditto.
16671         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
16672         (add->lea splitter): Check operand modes in insn constraint.  Extend
16673         operands less than SImode wide to SImode.
16674         (add->lea zext splitter): Do not extend input operands to DImode.
16675         (*lea_general_1): Handle only QImode and HImode operands.
16676         (*lea_general_2): Ditto.
16677         (*lea_general_3): Ditto.
16678         (*lea_general_1_zext): Remove.
16679         (*lea_general_2_zext): Ditto.
16680         (*lea_general_3_zext): Ditto.
16681         (*lea_general_4): Check operand modes in insn constraint.  Extend
16682         operands less than SImode wide to SImode.
16683         (ashift->lea splitter): Ditto.
16684         * config/i386/i386.c (ix86_print_operand_address): Print address
16685         registers with 'q' modifier on 64bit targets.
16686         * config/i386/predicates.md (pic_32bit_opreand): Define as special
16687         predicate.  Reject non-SI and non-DI modes.
16688
16689 2011-07-25  Andrew Pinski  <apinski@cavium.com>
16690
16691         PR tree-opt/49671
16692         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
16693         TREE_THIS_NOTRAP into the inner most MEM_REF.
16694         Always copy TREE_THIS_VOLATILE.
16695         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
16696         arguments are not volatile references.
16697
16698 2011-07-25  Richard Henderson  <rth@redhat.com>
16699
16700         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
16701         * final.c (final_scan_insn): Don't test for it.
16702         (rest_of_clean_state): Likewise.
16703
16704 2011-07-25  Richard Henderson  <rth@redhat.com>
16705
16706         PR debug/49841
16707         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
16708         (emit_frame_save): Likewise.
16709         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
16710         insn onto a dummy blockage insn after the join label.
16711
16712 2011-07-25  Richard Henderson  <rth@redhat.com>
16713
16714         * dwarf2cfi.c (dw_trace_info): Add ID member.
16715         (get_trace_index): Remove.  Change users to use ID member.
16716         (before_next_cfi_note): New.
16717         (connect_traces): Remove unreachable traces before the main loop.
16718         Look across one trace and generate remember/restore_state if needed.
16719
16720 2011-07-25  Richard Henderson  <rth@redhat.com>
16721
16722         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
16723
16724 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
16725
16726         * genattr.c (write_upcase, gen_attr <enum definition writing>):
16727         Move to ...
16728         * genattr-common.c ... here.
16729         (main): Call gen_attr.
16730         * optc-gen.awk: Make generated program include insn-attr-common.h .
16731         * Makefile.in (oprions.o): Depend on insn-attr-common.h
16732
16733 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
16734
16735         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
16736         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
16737         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
16738         m32c_print_operand, m32c_print_operand_address): Remove.
16739         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
16740         Change return type to bool. Change argument type to bool.
16741         (m32c_print_operand, m32c_print_operand_address): Make static.
16742         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
16743         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16744
16745 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16746
16747         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
16748         attributes): Document mmap.
16749
16750 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
16751
16752         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
16753         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
16754         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
16755         mmix_print_operand, mmix_print_operand_address): Remove.
16756         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
16757         Change return type to bool. Change argument type to bool.
16758         (mmix_print_operand, mmix_print_operand_address): Make static.
16759         (mmix_intval, mmix_output_condition): Change 'x' argument type
16760         to const_rtx.
16761         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
16762         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16763
16764 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
16765
16766         PR target/39386
16767         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
16768         shift counter for x << x and x >> x shifts.
16769
16770 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16771
16772         PR target/47124
16773         * config.gcc: Reject *-*-solaris2 configuration.
16774
16775 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
16776
16777         PR tree-optimization/49809
16778         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
16779         gimple_get_lhs instead of gimple_assign_lhs.
16780
16781 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16782
16783         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
16784
16785 2011-07-25  Richard Guenther  <rguenther@suse.de>
16786
16787         PR tree-optimization/49822
16788         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
16789         more.  Make sure to preserve stmts with side-effects.  Properly
16790         handle virtual defs, follow a longer def chain.
16791
16792 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
16793
16794         PR plugins/45348
16795         PR plugins/48425
16796         PR plugins/46577
16797         * Makefile.in: Do not flatten c-family directory when installing
16798         plugin headers.
16799
16800 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16801
16802         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
16803         original nodes if we are dealing with virtual clones.
16804
16805 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
16806
16807         * common/config/c6x/c6x-common.c: New file.
16808
16809 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
16810
16811         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
16812
16813 2011-07-25  Richard Guenther  <rguenther@suse.de>
16814
16815         PR tree-optimization/49715
16816         * tree-vrp.c: Include expr.h and optabs.h.
16817         (range_fits_type_): New function.
16818         (simplify_float_conversion_using_ranges): Likewise.
16819         (simplify_stmt_using_ranges): Call it.
16820         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
16821         * optabs.c (can_float_p): Export.
16822         * optabs.h (can_float_p): Declare.
16823
16824 2011-07-25  Richard Guenther  <rguenther@suse.de>
16825
16826         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
16827         (get_value_range): For out-of-range SSA names or names created
16828         after propagation return a read-only varying range.
16829         (dump_all_value_ranges): Adjust.
16830         (vrp_initialize): Likewise.
16831         (vrp_finalize): Likewise.
16832
16833 2011-07-24  Richard Henderson  <rth@redhat.com>
16834
16835         PR debug/49831
16836         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
16837         them entirely.
16838
16839 2011-07-24  Richard Henderson  <rth@redhat.com>
16840
16841         PR debug/49825
16842         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
16843         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
16844
16845 2011-07-24  Richard Henderson  <rth@redhat.com>
16846
16847         PR debug/49827
16848         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
16849
16850 2011-07-24  Richard Henderson  <rth@redhat.com>
16851
16852         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
16853         Zero args_size for abnormal edges.  Adjust all callers.
16854
16855 2011-07-24  Richard Henderson  <rth@redhat.com>
16856
16857         PR debug/49825
16858         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
16859
16860 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
16861
16862         PR bootstrap/49835
16863         * collect2.c (demangle_flag): Removed.
16864
16865 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
16866
16867         * configure.ac (demangler_in_ld): Default to yes.
16868         * configure: Regenerated.
16869         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
16870         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
16871         --no-demangle options straight through to ld.  When
16872         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
16873         way that has the intended effect on Windows.
16874
16875 2011-07-23  Richard Henderson  <rth@redhat.com>
16876
16877         * dwarf2cfi.c: Include basic-block.h.
16878         (dw_label_info): Remove.
16879         (trace_work_list, trace_index): New.
16880         (remember_row, emit_cfa_remember): Remove.
16881         (dw_trace_info_hash, dw_trace_info_eq): New.
16882         (get_trace_index, get_trace_info): New.
16883         (save_point_p): New.
16884         (free_cfi_row): Remove.
16885         (add_cfi): Do not emit DW_CFA_remember_state.
16886         (cfa_row_equal_p): New.
16887         (barrier_args_size): Remove.
16888         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
16889         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
16890         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
16891         (dwarf2out_cfi_begin_epilogue): Remove.
16892         (dwarf2out_frame_debug_restore_state): Remove.
16893         (connect_traces, create_pseudo_cfg): New.
16894         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
16895         * Makefile.in (dwarf2cfi.o): Update.
16896
16897 2011-07-23  Richard Henderson  <rth@redhat.com>
16898
16899         * dwarf2cfi.c (dw_trace_info): New.
16900         (dw_label_info): New.
16901         (cie_return_save): New.
16902         (cur_trace): New.
16903         (queued_args_size): Rename from args_size.  Update all users.
16904         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
16905         (def_cfa_1): Use cur_trace instead of cfa_*.
16906         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
16907         (clobbers_queued_reg_save, reg_saved_in): Likewise.
16908         (dwarf2out_frame_debug_expr): Likewise.
16909         (create_cie_data): Split out from ...
16910         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
16911
16912 2011-07-23  Richard Henderson  <rth@redhat.com>
16913
16914         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
16915         Update all users to match.
16916         (execute_dwarf2_frame): Free reg_saved_in_data.
16917
16918 2011-07-23  Richard Henderson  <rth@redhat.com>
16919
16920         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
16921         (queued_reg_saves): Don't GTY.  Change to a VEC.
16922         (queue_reg_save): Update to match.
16923         (dwarf2out_flush_queued_reg_saves): Likewise.
16924         (clobbers_queued_reg_save): Likewise.
16925         (reg_saved_in): Likewise.
16926         (execute_dwarf2_frame): Free queued_reg_saves.
16927
16928 2011-07-23  Richard Henderson  <rth@redhat.com>
16929
16930         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
16931
16932 2011-07-23  Richard Henderson  <rth@redhat.com>
16933
16934         * dwarf2cfi.c (add_cfi_args_size): Split out from...
16935         (dwarf2out_args_size): ... here.
16936         (add_cfi_restore): Split out from ...
16937         (dwarf2out_frame_debug_cfa_restore): ... here.
16938         (def_cfa_0): Split out from ...
16939         (def_cfa_1): ... here.
16940         (cfi_oprnd_equal_p, cfi_equal_p): New.
16941         (change_cfi_row): New.
16942         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
16943         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
16944         (output_cfis): Remove.
16945         * dwarf2out.c (output_fde): Simplify output_cfi loop.
16946         (dwarf2out_switch_text_section): Don't call output_cfis.
16947         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
16948         * dwarf2out.h: Update decls.
16949         (enum dw_val_class): Add dw_val_class_none.
16950
16951 2011-07-23  Richard Henderson  <rth@redhat.com>
16952
16953         * dwarf2cfi.c (update_row_reg_save): New.
16954         (dwarf2out_frame_debug_cfa_expression): Use it.
16955         (dwarf2out_frame_debug_cfa_restore): Likewise.
16956         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
16957
16958 2011-07-23  Richard Henderson  <rth@redhat.com>
16959
16960         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
16961
16962 2011-07-23  Richard Henderson  <rth@redhat.com>
16963
16964         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
16965         (cie_cfi_row): New.
16966         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
16967         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
16968         (cur_row, remember_row): New.
16969         (def_cfa_1): Use cur_row instead of the old_* variables.
16970         (dwarf2out_frame_debug_restore_state): Similarly.
16971         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
16972         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
16973         (dwarf2out_frame_debug_adjust_cfa): Likewise.
16974         (dwarf2out_frame_debug_cfa_offset): Likewise.
16975         (dwarf2out_frame_debug_expr): Likewise.
16976         (execute_dwarf2_frame): Set up cur_row.
16977         * dwarf2out.h (struct cfa_loc): Mark for GTY.
16978
16979 2011-07-23  Richard Henderson  <rth@redhat.com>
16980
16981         * basic-block.h (EDGE_PRESERVE): New.
16982         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
16983         * bb-reorder.c: Include except.h.
16984         (fix_up_crossing_landing_pad): New.
16985         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
16986         landing pads in the right partition.  Duplicate as necessary.
16987         (partition_hot_cold_basic_blocks): Fix up DF info after
16988         duplicating landing pads.
16989         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
16990         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
16991         is set properly.  Validate that EH edges are not CROSSING.
16992         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
16993         (dw2_build_landing_pads): ... here.
16994         (convert_to_eh_region_ranges): Remove code to fixup crossing
16995         landing pads.
16996         * except.h (expand_dw2_landing_pad_for_region): Declare.
16997         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
16998
16999 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
17000
17001         PR target/49816
17002         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
17003
17004 2011-07-22  Jason Merrill  <jason@redhat.com>
17005
17006         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
17007
17008 2011-07-22  Richard Henderson  <rth@redhat.com>
17009
17010         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
17011
17012 2011-07-22  Richard Henderson  <rth@redhat.com>
17013
17014         * jump.c (maybe_propagate_label_ref): Split out of...
17015         (mark_all_labels): ... here.  Do not attempt label_ref
17016         propagation while in cfglayout mode.
17017
17018 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
17019
17020         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
17021         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
17022         (dwarf_attr_name): Handle DW_AT_GNU_macros.
17023         (dwarf2out_define): If the vector is empty and
17024         lineno is 0, emit a dummy entry first.
17025         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
17026         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
17027         optimize_macinfo_range): New functions.
17028         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
17029         mergeable, optimize longer strings using
17030         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
17031         optimize longer sequences of define/undef ops from headers
17032         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
17033         emit a section headers.
17034         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
17035         and macinfo_section_label to DEBUG_MACRO_SECTION
17036         resp. DEBUG_MACRO_SECTION_LABEL.
17037         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
17038         instead of DW_AT_macro_info.
17039
17040         PR other/32998
17041         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
17042         options.
17043         * dwarf2out.c: Include opts.h.
17044         (dchar_p): New typedef.  Define heap VEC for it.
17045         (producer_string): New variable.
17046         (gen_producer_string): New function.
17047         (gen_compile_unit_die): Use it.
17048         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
17049         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
17050         * doc/invoke.texi: Document -grecord-gcc-switches and
17051         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
17052         to -frecord-gcc-switches description.
17053
17054 2011-07-22  Jason Merrill  <jason@redhat.com>
17055
17056         PR c++/30112
17057         * c-decl.c (c_linkage_bindings): Define.
17058
17059 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17060
17061         PR debug/49815
17062         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
17063
17064 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
17065
17066         * config/i386/i386.c (ix86_option_override_internal): Disallow
17067         MS ABI in x32 mode.
17068         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
17069         only for TARGET_LP64.
17070         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
17071
17072 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
17073
17074         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
17075         avoid warnings when GCC is built with a C++ compiler.
17076
17077 2011-07-22  Martin Jambor  <mjambor@suse.cz>
17078
17079         PR lto/49796
17080         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
17081         if decl node is in another partition, call cgraph_get_node only once.
17082
17083 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
17084
17085         * config.gcc (x86_64-*-linux*): Set
17086         default_gnu_indirect_function to yes.
17087
17088 2011-07-22  Richard Guenther  <rguenther@suse.de>
17089
17090         PR tree-optimization/45819
17091         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
17092         preserve volatile and notrap flags.
17093
17094 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17095             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17096
17097         PR bootstrap/49794
17098         * configure.ac: Test AM_ICONV with CXX.
17099         * configure: Regenerate.
17100         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
17101
17102 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17103
17104         PR bootstrap/49797
17105         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
17106         (set_cloog_options): Use it.
17107
17108 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
17109
17110         PR c++/49756
17111         * gcc.c (main): Call stack_limit_increase (64MB).
17112         * toplev.c (toplev_main): Likewise.
17113
17114 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
17115
17116         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
17117         instead of force_reg.
17118
17119 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
17120
17121         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
17122         needed and use force_reg after convert.
17123         (ix86_expand_call): Likewise.
17124         (ix86_expand_special_args_builtin): Likewise.
17125         (ix86_expand_builtin): Likewise.
17126
17127 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17128
17129         PR middle-end/47654
17130         PR middle-end/49649
17131         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
17132         in parameter.  Initialize v1 and v2 based on the values returned
17133         by clast_name_to_lb_ub.
17134         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
17135         values.
17136         (type_for_clast_bin): Same.
17137         (type_for_clast_expr): Same.
17138         (type_for_clast_eq): Update calls to type_for_clast_expr.
17139         (type_for_clast_for): Same.
17140         (build_iv_mapping): Same.
17141         * graphite-ppl.h (value_min): New.
17142
17143 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17144
17145         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
17146         types whenever possible.
17147
17148 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17149
17150         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
17151         and ub fields.
17152         (new_clast_name_index): Add lb and ub parameters.
17153         (free_clast_name_index): New.
17154         (clast_name_to_lb_ub): New.
17155         (save_clast_name_index): Add lb and ub parameters.
17156         (compute_bounds_for_param): New.
17157         (type_for_level): Removed.
17158         (type_for_clast_for): Removed level parameter.  Do not call
17159         type_for_level.
17160         (graphite_create_new_loop): Store the lb and ub for the clast_name
17161         of the iterator of the loop that has been generated.
17162         (graphite_create_new_loop_guard): Remove parameter level.
17163         (create_params_index): Store the lb and ub of each parameter.
17164         (gloog): Use free_clast_name_index.  Pass to create_params_index
17165         the current scop.
17166
17167 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17168
17169         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
17170         (max_precision_type): Inline max_signed_precision_type.
17171         (type_for_clast_red): Use max_precision_type.
17172         (type_for_clast_bin): Same.
17173         (type_for_clast_for): Same.
17174
17175 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17176
17177         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
17178         type_for_interval.
17179         (gcc_type_for_value): Renamed type_for_value.
17180         (gcc_type_for_clast_term): Renamed type_for_clast_term.
17181         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
17182         (gcc_type_for_clast_red): Renamed type_for_clast_red.
17183         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
17184         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
17185         (graphite_translate_clast_equation): Update calls.
17186         (compute_type_for_level): Renamed type_for_level.
17187         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
17188         (build_iv_mapping): Update calls.
17189         (graphite_create_new_loop_guard): Same.
17190
17191 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17192
17193         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
17194         comment.
17195
17196 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17197
17198         * graphite-clast-to-gimple.c (struct ivs_params): New.
17199         (clast_name_to_gcc): Use ivs_params to pass around parameters.
17200         (clast_to_gcc_expression): Same.
17201         (clast_to_gcc_expression_red): Same.
17202         (gcc_type_for_clast_term): Same.
17203         (gcc_type_for_clast_expr): Same.
17204         (gcc_type_for_clast_red): Same.
17205         (gcc_type_for_clast_bin): Same.
17206         (gcc_type_for_clast_eq): Same.
17207         (graphite_translate_clast_equation): Same.
17208         (graphite_create_guard_cond_expr): Same.
17209         (graphite_create_new_guard): Same.
17210         (graphite_create_new_loop): Same.
17211         (build_iv_mapping): Same.
17212         (translate_clast_user): Same.
17213         (graphite_create_new_loop_guard): Same.
17214         (translate_clast): Same.
17215         (translate_clast_for_loop): Same.
17216         (translate_clast_for): Same.
17217         (translate_clast_guard): Same.
17218         (initialize_cloog_names): Fix typo.
17219         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
17220
17221 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17222
17223         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
17224         (new_clast_name_index): Add level parameter.
17225         (clast_name_to_level): New.
17226         (save_clast_name_index): Add level parameter.
17227         (newivs_to_depth_to_newiv): Removed.
17228         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
17229         (graphite_create_new_loop): Add level parameter.  Pass level to
17230         save_clast_name_index.
17231         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
17232         (create_params_index): Pass level to save_clast_name_index.
17233
17234 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17235
17236         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
17237         recompute type, lb, and ub.  Get them from...
17238         (graphite_create_new_loop_guard): ...here.  Pass in parameter
17239         pointers to type, lb, and ub.
17240         (translate_clast_for_loop): Update function calls.
17241         (translate_clast_for): Same.
17242
17243 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
17244
17245         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
17246         psct_dynamic_dim.
17247         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
17248         (gcc_type_for_iv_of_clast_loop): Update use of level.
17249         (gloog): Start counting nesting level from 0.
17250         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
17251         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
17252         psct_dynamic_dim on level.
17253
17254 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
17255
17256         * config/i386/i386.c (ix86_legitimize_address): Convert to
17257         Pmode if needed.
17258
17259 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
17260
17261         * config/i386/i386.c (function_value_64): Always return pointers
17262         in Pmode.
17263         (ix86_promote_function_mode): New.
17264         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
17265
17266 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17267
17268         PR tree-optimization/49749
17269         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
17270         remove no-longer-used maxrank variable.
17271
17272 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
17273
17274         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
17275
17276 2011-07-21  Jason Merrill  <jason@redhat.com>
17277
17278         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
17279         * recog.h (struct insn_data_d): Check it instead of
17280         HAVE_DESIGNATED_INITIALIZERS.
17281         * genoutput.c (output_insn_data): Likewise.
17282
17283 2011-07-21  Richard Guenther  <rguenther@suse.de>
17284
17285         PR tree-optimization/49770
17286         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
17287         valueized any operand.  Renamed from ...
17288         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
17289         (valueize_shared_reference_ops_from_ref): Return whether we
17290         valueized any operand.
17291         (vn_reference_lookup): Only when we valueized any operand
17292         use the valueized reference for alias analysis.  Do not preserve
17293         the original reference tree in this case.
17294
17295 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
17296
17297         * config/i386/i386.c (ix86_decompose_address): Reject all but
17298         register operands and subregs of DImode hard registers in index.
17299
17300 2011-07-21  Kai Tietz  <ktietz@redhat.com>
17301
17302         * fold-const.c (fold_unary_loc): Preserve indirect
17303         comparison cast to none-boolean type.
17304         * tree-ssa.c (useless_type_conversion_p): Preserve cast
17305         from/to boolean-type.
17306         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
17307         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
17308         * tree-cfg.c (verify_gimple_comparison): Check result
17309         type of comparison expression.
17310         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
17311         of condition result and disallow type-cast sinking into comparison.
17312
17313 2011-07-21  Richard Guenther  <rguenther@suse.de>
17314
17315         * tree-ssa-forwprop.c (combine_conversions): Return whether
17316         we have to run cfg-cleanup.  Properly remove dead stmts.
17317         (ssa_forward_propagate_and_combine): Adjust.
17318
17319 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
17320
17321         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
17322
17323 2011-07-21  Kai Tietz  <ktietz@redhat.com>
17324
17325         * tree-ssa-propagate.c (substitute_and_fold): Use
17326         do_dce flag to deside, if BB's statements are scanned
17327         in last to first, or first to last order.
17328
17329 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
17330
17331         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
17332
17333 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
17334             Uros Bizjak  <ubizjak@gmail.com>
17335             Richard Henderson  <rth@redhat.com>
17336
17337         * config/i386/constraints.md (w): New.
17338
17339         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
17340         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
17341
17342         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
17343         instead of TARGET_64BIT.
17344
17345         * config/i386/i386.md (indirect_jump): Replace
17346         nonimmediate_operand with indirect_branch_operand.
17347         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
17348         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
17349         Convert operand 0 to Pmode for x32 if not PIC.
17350         (*tablejump_1): Replace nonimmediate_operand with
17351         indirect_branch_operand.  Replace constraint "m" with "w".
17352         (*call_vzeroupper): Replace constraint "m" with "w".
17353         (*call): Likewise.
17354         (*call_rex64_ms_sysv_vzeroupper): Likewise.
17355         (*call_rex64_ms_sysv): Likewise.
17356         (*call_value_vzeroupper): Likewise.
17357         (*call_value): Likewise.
17358         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
17359         (*call_value_rex64_ms_sysv): Likewise.
17360         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
17361
17362         * config/i386/predicates.md (indirect_branch_operand): New.
17363         (call_insn_operand): Support x32.
17364
17365 2011-07-20  Michael Eager  <eager@eagercon.com>
17366
17367         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
17368
17369 2011-07-20  Richard Henderson  <rth@redhat.com>
17370
17371         * cfg.c (dump_bb_info): Dump basic_block->flags.
17372         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
17373
17374 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
17375
17376         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
17377         of DImode hard registers in index.
17378         (ix86_legitimate_address_p): Allow subregs of base and index to span
17379         more than a word.  Assert that subregs of base and index satisfy
17380         register_no_elim_operand predicates.  Reject addresses where
17381         base and index have different modes.
17382
17383 2011-07-20  Robert Millan  <rmh@gnu.org>
17384
17385         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
17386
17387 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17388
17389         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
17390         removing now-unnecessary assignment.
17391
17392 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17393
17394         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
17395         memory address space to the type's address space.
17396
17397 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
17398
17399         PR target/36467
17400         PR target/49687
17401         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
17402         and expand appropriately if there is a CONST_INT in operand2.
17403         (usmulqihi3): New insn.
17404         (*sumulqihi3): New insn.
17405         (*osmulqihi3): New insn.
17406         (*oumulqihi3): New insn.
17407         (*muluqihi3.uconst): New insn_and_split.
17408         (*muluqihi3.sconst): New insn_and_split.
17409         (*mulsqihi3.sconst): New insn_and_split.
17410         (*mulsqihi3.uconst): New insn_and_split.
17411         (*mulsqihi3.oconst): New insn_and_split.
17412         (*ashifthi3.signx.const): New insn_and_split.
17413         (*ashifthi3.signx.const7): New insn_and_split.
17414         (*ashifthi3.zerox.const): New insn_and_split.
17415         (mulsqihi3): New insn.
17416         (muluqihi3): New insn.
17417         (muloqihi3): New insn.
17418         * config/avr/predicates.md (const_2_to_7_operand): New.
17419         (const_2_to_6_operand): New.
17420         (u8_operand): New.
17421         (s8_operand): New.
17422         (o8_operand): New.
17423         (s9_operand): New.
17424         (register_or_s9_operand): New.
17425
17426 2011-07-20  Kai Tietz  <ktietz@redhat.com>
17427
17428         * builtins.c (fold_builtin_expect): See through the cast
17429         from truthvalue_type_node to long.
17430
17431 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
17432
17433         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
17434         where we can use them from the standard and altivec instruction
17435         sets, instead of always using the 3 operand VSX forms that require
17436         the destination to overlap one of the inputs.
17437         (vsx_fms*): Ditto.
17438         (vsx_fnma*): Ditto.
17439         (vsx_fnms*): Ditto.
17440
17441         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
17442         for DF types.
17443         (fmsdf4_fpr): Ditto.
17444         (nfmadf4_fpr): Ditto.
17445         (nfmsdf4_fpr): Ditto.
17446
17447 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
17448
17449         * genrecog.c (make_insn_sequence): Correct position numbering
17450         when filtering out match_scratch and match_dup.
17451
17452 2011-07-20  Richard Guenther  <rguenther@suse.de>
17453
17454         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
17455         against already removed statements.
17456         (forward_propagate_into_comparison): Remove dead defining stmts.
17457         (forward_propagate_into_gimple_cond): Likewise.
17458         (forward_propagate_into_cond): Simplify.
17459         (ssa_forward_propagate_and_combine): Handle changed cfg from
17460         forward_propagate_into_comparison.
17461         * tree-ssa-phiopt.c (conditional_replacement): Use proper
17462         locations for newly built statements.
17463
17464 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
17465
17466         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
17467
17468 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17469
17470         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
17471         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
17472
17473 2011-07-20  Richard Guenther  <rguenther@suse.de>
17474
17475         PR middle-end/18908
17476         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
17477         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
17478         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
17479
17480 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
17481
17482         * config/frv/frv.c (frv_register_move_cost): Define explicitly
17483         costs for subclasses of GR_REGS.
17484
17485 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
17486
17487         PR target/49780
17488         * config/i386/predicates.md (no_seg_addres_operand): No more special.
17489         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
17490         of DImode hard registers in base.
17491         (ix86_legitimate_address_p): Allow SImode and DImode base and index
17492         registers.
17493
17494 2011-07-20  Richard Guenther  <rguenther@suse.de>
17495
17496         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
17497         (unify_nodes): Deal with that.
17498         (solve_graph): Likewise.
17499
17500 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
17501
17502         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
17503         canonicalize left operand from ZERO_EXTEND to AND.
17504
17505 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
17506
17507         * target.def (class_max_nregs): New hook.
17508         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
17509         * doc/tm.texi: Regenerate.
17510         * targhooks.c (default_class_max_nregs): New function.
17511         * targhooks.h (default_class_max_nregs): Declare.
17512         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
17513         x_ira_reg_class_min_nregs arrays to unsigned char.
17514         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
17515         hook instead of CLASS_MAX_NREGS macro.
17516         * reginfo.c (restore_register_info): Ditto.
17517         * ira-conflicts.c (process_regs_for_copy): Use
17518         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
17519         Change type rclass and aclass vars to reg_class_t.
17520         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
17521         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
17522         reg_class_t.
17523         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
17524         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
17525
17526         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
17527         * config/i386/i386.c (ix86_class_max_nregs): New function.
17528         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
17529         instead of CLASS_MAX_NREGS macro.
17530         (TARGET_CLASS_MAX_NREGS): Define.
17531         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
17532         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
17533         * config/avr/avr.c (class_max_nregs): Remove function.
17534         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
17535         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
17536         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
17537         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
17538         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
17539         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
17540         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
17541         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
17542         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
17543         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
17544         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
17545         * config/score/score.h (CLASS_MAX_NREGS): Remove.
17546         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
17547         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
17548         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
17549
17550 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
17551
17552         * cif-code.def (OVERWRITABLE): Fix typo and move around.
17553         (TARGET_OPTIMIZATION_MISMATCH): Delete.
17554         (EH_PERSONALITY): Fix typo.
17555         (NON_CALL_EXCEPTIONS): Fix message.
17556         (OPTIMIZATION_MISMATCH): Adjust message.
17557         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
17558
17559 2011-07-19  Ian Lance Taylor  <iant@google.com>
17560
17561         * doc/install.texi (Configuration): Document
17562         --enable-build-poststage1-with-cxx.
17563
17564 2011-07-19  Robert Millan  <rmh@gnu.org>
17565
17566         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
17567         (GLIBC_DYNAMIC_LINKER): Remove.
17568
17569         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
17570         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
17571         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
17572         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
17573         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
17574         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
17575
17576         * config/mips/linux.h: Remove everything except for ...
17577         (GLIBC_DYNAMIC_LINKER): ... this macro.
17578
17579         * config/mips/linux64.h: Remove everything except for ...
17580         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
17581         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
17582         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
17583         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
17584         (GNU_USER_LINK_EMULATIONN32): New macros.
17585
17586         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
17587         Use the new headers.
17588
17589 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17590
17591         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
17592         Add offset_known_p and size_known_p fields.
17593         (MEM_OFFSET_KNOWN_P): Update accordingly.
17594         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
17595         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
17596         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
17597         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
17598         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
17599         (init_emit_regs): Likewise.
17600
17601 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17602
17603         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
17604         (MEM_OFFSET): Change from returning an rtx to returning a
17605         HOST_WIDE_INT.
17606         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
17607         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
17608         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
17609         (clear_mem_offset): Declare.
17610         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
17611         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
17612         MEM_OFFSET to get a HOST_WIDE_INT offset.
17613         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
17614         (adjust_offset_for_component_ref): Take a bool "known_p"
17615         parameter and a HOST_WIDE_INT "offset" parameter.
17616         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
17617         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
17618         than an rtx.  Use clear_mem_offset to clear the offset.
17619         * cfgcleanup.c (merge_memattrs): Likewise.
17620         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
17621         * function.c (assign_parm_find_stack_rtl): Likewise.
17622         (assign_parm_setup_stack): Likewise.
17623         * print-rtl.c (print_rtx): Likewise.
17624         * reload.c (find_reloads_subreg_address): Likewise.
17625         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
17626         * var-tracking.c (INT_MEM_OFFSET): Likewise.
17627         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
17628         (get_mem_align_offset): Likewise.
17629         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
17630         (clear_mem_offset): New function.
17631         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
17632         offset rather than an rtx.  Assume both the expressio and offset
17633         are available.
17634         (r10k_needs_protection_p_1): Update accordingly, checking the
17635         expression and offset availability here instead.
17636
17637 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17638
17639         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
17640         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
17641         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
17642         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
17643         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
17644         (clear_mem_size): Declare.
17645         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
17646         (clear_mem_size): New function.
17647         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
17648         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
17649         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
17650         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
17651         to clear the size.
17652         (nonoverlapping_memrefs_p): Likewise.
17653         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
17654         (expand_builtin_init_trampoline): Likewise.
17655         * calls.c (compute_argument_addresses): Likewise.
17656         * cfgcleanup.c (merge_memattrs): Likewise.
17657         * dce.c (find_call_stack_args): Likewise.
17658         * dse.c (record_store, scan_insn): Likewise.
17659         * dwarf2out.c (dw_sra_loc_expr): Likewise.
17660         * expr.c (emit_block_move_hints): Likewise.
17661         * function.c (assign_parm_find_stack_rtl): Likewise.
17662         * print-rtl.c (print_rtx): Likewise.
17663         * reload.c (find_reloads_subreg_address): Likewise.
17664         * rtlanal.c (may_trap_p_1): Likewise.
17665         * var-tracking.c (track_expr_p): Likewise.
17666         * varasm.c (assemble_trampoline_template): Likewise.
17667         * config/arm/arm.c (arm_print_operand): Likewise.
17668         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
17669         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
17670         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
17671         (expand_constant_setmem_prologue): Likewise.
17672         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
17673         * config/rs6000/rs6000.c (expand_block_move): Likewise.
17674         (adjacent_mem_locations): Likewise.
17675         * config/s390/s390.c (s390_expand_setmem): Likewise.
17676         (s390_expand_insv): Likewise.
17677         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
17678         (*extendqi<mode>2_short_displ): Likewise.
17679         * config/sh/sh.c (expand_block_move): Likewise.
17680         * config/sh/sh.md (extv, extzv): Likewise.
17681
17682 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17683
17684         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
17685         (mem_attrs_htab_eq): ...here.
17686         (find_mem_attrs): Replace with...
17687         (set_mem_attrs): ...this function.  Take a mem_attrs structure
17688         rather than individual fields.
17689         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
17690         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
17691         (set_mem_size, change_address, adjust_address_1, offset_address)
17692         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
17693         Update accordingly.
17694
17695 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17696
17697         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
17698         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
17699         Provide a dummy definition of MEM_ADDR_SPACE for generators.
17700         (target_rtl): Add x_mode_mem_attrs.
17701         (mode_mem_attrs): New macro.
17702         (get_mem_attrs): New function.
17703         * emit-rtl.c (get_mem_attrs): Rename to...
17704         (find_mem_attrs): ...this.
17705         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
17706         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
17707         (set_mem_size, change_address, adjust_address_1, offset_address)
17708         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
17709         Update accordingly.
17710         (init_emit_regs): Initialize mode_mem_attrs.
17711
17712 2011-07-19  Richard Guenther  <rguenther@suse.de>
17713
17714         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
17715         TRUTH_*_EXPR handling.
17716         * tree-ssa-operands.c (get_expr_operands): Likewise.
17717         * tree-ssa-pre.c (fully_constant_expression): Likewise.
17718         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
17719         Likewise.
17720         (is_and_or_or): Likewise.
17721         (is_norm_cond_subset_of): Likewise.
17722
17723 2011-07-19  Richard Guenther  <rguenther@suse.de>
17724
17725         * tree.h (fold_build_pointer_plus_loc): New helper function.
17726         (fold_build_pointer_plus_hwi_loc): Likewise.
17727         (fold_build_pointer_plus): Define.
17728         (fold_build_pointer_plus_hwi): Likewise.
17729         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
17730         (fold_builtin_memory_op): Likewise.
17731         (fold_builtin_stpcpy): Likewise.
17732         (fold_builtin_memchr): Likewise.
17733         (fold_builtin_strstr): Likewise.
17734         (fold_builtin_strchr): Likewise.
17735         (fold_builtin_strrchr): Likewise.
17736         (fold_builtin_strpbrk): Likewise.
17737         (fold_builtin_strcat): Likewise.
17738         (expand_builtin_memory_chk): Likewise.
17739         (fold_builtin_memory_chk): Likewise.
17740         * c-typeck.c (build_unary_op): Likewise.
17741         * cgraphunit.c (thunk_adjust): Likewise.
17742         * fold-const.c (build_range_check): Likewise.
17743         (fold_binary_loc): Likewise.
17744         * omp-low.c (extract_omp_for_data): Likewise.
17745         (expand_omp_for_generic): Likewise.
17746         (expand_omp_for_static_nochunk): Likewise.
17747         (expand_omp_for_static_chunk): Likewise.
17748         * tree-affine.c (add_elt_to_tree): Likewise.
17749         * tree-data-ref.c (split_constant_offset_1): Likewise.
17750         * tree-loop-distribution.c (generate_memset_zero): Likewise.
17751         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
17752         * tree-predcom.c (ref_at_iteration): Likewise.
17753         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
17754         (add_to_parts): Likewise.
17755         (create_mem_ref): Likewise.
17756         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
17757         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
17758         (number_of_iterations_le): Likewise.
17759         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
17760         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
17761         (vect_create_addr_base_for_vector_ref): Likewise.
17762         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
17763         (vect_create_cond_for_alias_checks): Likewise.
17764         * tree-vrp.c (extract_range_from_assert): Likewise.
17765         * config/alpha/alpha.c (alpha_va_start): Likewise.
17766         (alpha_gimplify_va_arg_1): Likewise.
17767         * config/i386/i386.c (ix86_va_start): Likewise.
17768         (ix86_gimplify_va_arg): Likewise.
17769         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
17770         * config/mep/mep.c (mep_expand_va_start): Likewise.
17771         (mep_gimplify_va_arg_expr): Likewise.
17772         * config/mips/mips.c (mips_va_start): Likewise.
17773         (mips_gimplify_va_arg_expr): Likewise.
17774         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
17775         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
17776         (rs6000_gimplify_va_arg): Likewise.
17777         * config/s390/s390.c (s390_va_start): Likewise.
17778         (s390_gimplify_va_arg): Likewise.
17779         * config/sh/sh.c (sh_va_start): Likewise.
17780         (sh_gimplify_va_arg_expr): Likewise.
17781         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
17782         * config/spu/spu.c (spu_va_start): Likewise.
17783         (spu_gimplify_va_arg_expr): Likewise.
17784         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
17785         Likewise.
17786         (xstormy16_gimplify_va_arg_expr): Likewise.
17787         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
17788         (xtensa_gimplify_va_arg_expr): Likewise.
17789
17790 2011-07-19  Richard Guenther  <rguenther@suse.de>
17791
17792         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
17793         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
17794         handling.
17795
17796         PR middle-end/18908
17797         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
17798         result of BIT_*_EXPR to bitfield precision.
17799
17800 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
17801
17802         PR tree-optimization/49742
17803         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
17804         as a potential write.
17805
17806 2011-07-19  Richard Guenther  <rguenther@suse.de>
17807
17808         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
17809         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
17810         (forward_propagate_comparison): Simplify, remove obsolete code.
17811
17812 2011-07-19  Richard Guenther  <rguenther@suse.de>
17813
17814         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
17815         BIT_XOR_EXPR, same as the RTL expander does.
17816         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
17817         (verify_gimple_assign_unary): Likewise.
17818         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
17819         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
17820         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
17821
17822 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
17823
17824         PR tree-optimization/49768
17825         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
17826         if offset is smaller than bitoffset, but offset+size is bigger
17827         than bitoffset.
17828
17829 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
17830
17831         PR tree-optimization/49771
17832         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
17833         zero step, set segment length to the size of the data-ref's type.
17834
17835 2011-07-18  Martin Jambor  <mjambor@suse.cz>
17836
17837         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
17838         comments.
17839         (ipcp_values_pool): Declare.
17840         (ipcp_sources_pool): Likewise.
17841         (ipcp_lattice): Changed to forward declaration.
17842         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
17843         cannot_devirtualize.
17844         (ipa_node_params): New fields descriptors, lattices, known_vals,
17845         clone_for_all_contexts and node dead, removed fields params and
17846         count_scale.
17847         (ipa_set_param_count): Removed.
17848         (ipa_get_param_count): Made to work with descriptors vector.
17849         (ipa_get_param): Updated.
17850         (ipa_param_cannot_devirtualize_p): Removed.
17851         (ipa_param_types_vec_empty): Likewise.
17852         (ipa_set_param_used): New function.
17853         (ipa_get_param_used): Updated to use descriptors vector.
17854         (ipa_func_list): Removed.
17855         (ipa_init_func_list): Removed declaration.
17856         (ipa_push_func_to_list_1): Likewise.
17857         (ipa_pop_func_from_list): Likewise.
17858         (ipa_push_func_to_list): Removed.
17859         (ipa_lattice_from_jfunc): Remove declaration.
17860         (ipa_get_jf_pass_through_result): Declare.
17861         (ipa_get_jf_ancestor_result): Likewise.
17862         (ipa_value_from_jfunc): Likewise.
17863         (ipa_get_lattice): Update.
17864         (ipa_lat_is_single_const): New function.
17865         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
17866         (ipa_init_func_list): Likewise.
17867         (ipa_pop_func_from_list): Likewise.
17868         (ipa_get_param_decl_index): Fix coding style.
17869         (count_formal_params): Removed.
17870         (count_formal_params_1): Renamed to count_formal_params.
17871         (ipa_populate_param_decls): Update to use descriptors vector.
17872         (ipa_initialize_node_params): Likewise.
17873         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
17874         (ipa_analyze_params_uses): Likewise.
17875         (ipa_free_node_params_substructures): Likewise and free also lattices
17876         and known values.
17877         (duplicate_array): Removed.
17878         (ipa_edge_duplication_hook): Add the new edge to the list of edge
17879         clones.
17880         (ipa_node_duplication_hook): Update to use new lattices.
17881         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
17882         (ipa_free_all_structures_after_iinln): Likewise.
17883         (ipa_write_node_info): Update to use new lattices.
17884         (ipa_read_node_info): Likewise.
17885         (ipa_get_jf_pass_through_result): New function.
17886         (ipa_get_jf_ancestor_result): Likewise.
17887         (ipa_value_from_jfunc): Likewise.
17888         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
17889         * ipa-cp.c: Reimplemented.
17890         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
17891         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
17892         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
17893         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
17894         * doc/invoke.texi (devirt-type-list-size): Removed description.
17895         (ipa-cp-value-list-size): Added description.
17896
17897 2011-07-18  Richard Henderson  <rth@redhat.com>
17898
17899         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
17900         before calling create_basic_block.
17901
17902 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
17903
17904         PR middle-end/49675
17905         * tree.c (build_common_builtin_nodes): Register
17906         __builtin_return_address, __cyg_profile_func_enter
17907         and __cyg_profile_func_exit.
17908
17909 2011-07-18  Richard Henderson  <rth@redhat.com>
17910
17911         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
17912         (add_labels_and_missing_jumps): ... here.
17913         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
17914
17915 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
17916
17917         PR target/47744
17918         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
17919         of DImode hard registers in PLUS address chains.
17920
17921 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17922
17923         PR bootstrap/49769
17924         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
17925         (alpha*-*-freebsd*): Likewise.
17926         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
17927         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
17928         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
17929         crtprec80.o, crtfastmath.o to extra_parts for all targets.
17930         (ia64*-*-elf*): Remove extra_parts.
17931         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
17932         (sparc64-*-linux*): Likewise.
17933         (sparc64-*-freebsd*): Likewise.
17934
17935         Revert:
17936         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
17937         (ia64*-*-linux*): Likewise.
17938         (mips64*-*-linux*): Likewise.
17939         (mips*-*-linux*): Likewise.
17940
17941 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
17942
17943         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
17944
17945 2011-07-18  Richard Guenther  <rguenther@suse.de>
17946
17947         * gimplify.c (gimplify_expr): Use input_location, not saved_location
17948         when building new trees.
17949
17950 2011-07-18  Richard Guenther  <rguenther@suse.de>
17951
17952         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
17953         expansion result to bitfield precision if required.
17954
17955 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17956
17957         * config.gcc (i[3456x]86-*-netware*): Remove.
17958
17959         * gthr-nks.h: Remove.
17960         * configure.ac (enable_threads): Remove nks.
17961         * configure: Regenerate.
17962
17963         * config/i386/i386.c (ix86_encode_section_info): Remove netware
17964         reference.
17965         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
17966         <netware.h> reference.
17967
17968         * config/i386/netware-libgcc.c,
17969         gcc/config/i386/netware-libgcc.def,
17970         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
17971         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
17972         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
17973         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
17974
17975         * doc/extend.texi (Function Attributes,
17976         callee_pop_aggregate_return): Remove i?86-netware reference.
17977         * doc/install.texi (Configuration, --enable-threads): Remove nks.
17978
17979 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17980
17981         PR target/49746
17982         Revert:
17983         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17984
17985         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
17986         patterns.
17987
17988 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
17989
17990         PR middle-end/49732
17991         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
17992
17993 2011-07-16  Matthias Klose  <doko@ubuntu.com>
17994
17995         * doc/install.texi: Document --enable-static-libjava.
17996
17997 2011-07-15  Richard Henderson  <rth@redhat.com>
17998
17999         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
18000         Replace all three arguments by returning a VEC of edges.
18001         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
18002         pointers and counts.
18003         (fix_edges_for_rarely_executed_code): Merge ...
18004         (rest_of_handle_partition_blocks): ... into...
18005         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
18006         any work was performed.
18007         (pass_partition_blocks): Clear todo_flags_finish.
18008
18009 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
18010             Jakub Jelinek  <jakub@redhat.com>
18011             Jonathan Wakely  <jwakely.gcc@gmail.com>
18012
18013         PR libstdc++/49745
18014         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
18015         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
18016
18017 2011-07-15  Jason Merrill  <jason@redhat.com>
18018
18019         PR testsuite/49741
18020         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
18021         rather than --tool_opts.
18022
18023 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
18024
18025         * doc/plugins.texi (Building GCC plugins): gengtype needs its
18026         corresponding gtype.state.
18027
18028 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18029
18030         PR target/49723
18031         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
18032
18033 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
18034
18035         PR target/48220
18036         * doc/md.texi (Standard Names): Document window_save.
18037         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
18038         expand_debug_expr and expand_debug_source_expr.  If the target has
18039         a window_save instruction, adjust the ENTRY_VALUE_EXP.
18040         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
18041         SSA_NAME_VAR is a parameter.
18042         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
18043         * var-tracking.c (parm_reg_t): New type and associated vector type.
18044         (windowed_parm_regs): New variable.
18045         (adjust_insn): If the target has a window_save instruction and this
18046         is the instruction, make its effect on parameter registers explicit.
18047         (next_non_note_insn_var_location): New function.
18048         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
18049         (vt_add_function_parameter): If the target has a window_save insn,
18050         adjust the incoming RTL and record that in windowed_parm_regs.
18051         (vt_finalize): Free windowed_parm_regs.
18052
18053 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18054
18055         * doc/invoke.texi (C6X Options): New section.
18056         * doc/md.texi (TI C6X family): New section.
18057         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
18058         tic6x-*-uclinux.
18059         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
18060         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
18061         Provide C6X definitions.
18062         * config/c6x/c6x.md: New file.
18063         * config/c6x/constraints.md: New file.
18064         * config/c6x/predicates.md: New file.
18065         * config/c6x/c6x-sched.md.in: New file.
18066         * config/c6x/c6x-sched.md: New file.
18067         * config/c6x/gensched.sh: New file.
18068         * config/c6x/c6x-mult.md.in: New file.
18069         * config/c6x/genmult.sh: New file.
18070         * config/c6x/c6x-mult.md: New file.
18071         * config/c6x/sync.md: New file.
18072         * config/c6x/c6x-protos.h: New file.
18073         * config/c6x/sfp-machine.h: New file.
18074         * config/c6x/c6x.c: New file.
18075         * config/c6x/c6x.h: New file.
18076         * config/c6x/crti.s: New file.
18077         * config/c6x/crtn.s: New file.
18078         * config/c6x/lib1funcs.asm: New file.
18079         * config/c6x/c6x-modes.def: New file.
18080         * config/c6x/genopt.sh: New file.
18081         * config/c6x/c6x.opt: New file.
18082         * config/c6x/c6x-tables.opt: New file.
18083         * config/c6x/c6x-opts.h: New file.
18084         * config/c6x/c6x-isas.def: New file.
18085         * config/c6x/elf.h: New file.
18086         * config/c6x/elf-common.h: New file.
18087         * config/c6x/uclinux-elf.h: New file.
18088         * config/c6x/t-c6x: New file.
18089         * config/c6x/t-c6x-elf: New file.
18090         * config/c6x/t-c6x-uclinux: New file.
18091         * config/c6x/t-c6x-softfp: New file.
18092         * config/c6x/gtd.c: New file.
18093         * config/c6x/gtf.c: New file.
18094         * config/c6x/ltd.c: New file.
18095         * config/c6x/ltf.c: New file.
18096         * config/c6x/ged.c: New file.
18097         * config/c6x/gef.c: New file.
18098         * config/c6x/led.c: New file.
18099         * config/c6x/lef.c: New file.
18100         * config/c6x/eqd.c: New file.
18101         * config/c6x/eqf.c: New file.
18102         * config/c6x/libgcc-c6xeabi.ver: New file.
18103
18104         Revert
18105         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
18106         PR rtl-optimization/11320
18107         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
18108         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
18109         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
18110         current_sched_info->compute_jump_reg_dependencies. Record which
18111         registers are used and which registers are set by the jump.
18112         Clear deps->reg_conditional_sets after a barrier.
18113         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
18114         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
18115         (init_deps): Initialize reg_conditional_sets.
18116         (free_deps): Clear reg_conditional_sets.
18117         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
18118         Mark registers live on entry of the fallthrough block and conditionally
18119         set as set by the jump. Mark registers live on entry of non-fallthrough
18120         blocks as used by the jump.
18121         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
18122         Mark new parameters as unused.
18123
18124 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
18125
18126         PR tree-opt/49309
18127         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
18128         Use fold_build2_loc instead of build2.
18129         Use the correct type for the new tree.
18130
18131 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18132
18133         PR rtl-optimization/11320
18134         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
18135         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
18136
18137 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
18138
18139         PR target/49487
18140         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
18141         of REG.
18142         (*rotw<mode>): Use const_int_operand for operand2.
18143         Use match_scatch for operand3.
18144         (*rotb<mode>): Ditto
18145         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
18146
18147 2011-07-14  Richard Guenther  <rguenther@suse.de>
18148
18149         PR tree-optimization/49651
18150         * tree-ssa-structalias.c (get_constraint_for_1): Properly
18151         handle dereferences with subvariables.
18152
18153 2011-07-14  Richard Guenther  <rguenther@suse.de>
18154
18155         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
18156         (fold_stmt_1): Do it here directly on gimple and as a first thing.
18157
18158 2011-07-14  Richard Guenther  <rguenther@suse.de>
18159
18160         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
18161         not bool_var when folding bool_var != 1 or bool_var == 0.
18162
18163 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18164
18165         * haifa-sched.c (schedule_insns): Remove outdated comment.
18166         (schedule_block): When computing a known value for TODO_SPEC,
18167         just set it rather than using logical operations.
18168         (try_ready): Likewise.  Use a local variable rather than a
18169         pointer to TODO_SPEC.  Reorder an if statement to move the
18170         easy case to the then block.
18171         * sched-deps.c (dep_spec_p): New static function.
18172         (update_dep): Use it to decide whether to call
18173         change_spec_dep_to_hard.
18174         (get_back_and_forw_lists): Use it.
18175         (sd_resolve_dep): Likewise.
18176         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
18177         (haifa_note_mem_dep): Likewise.
18178         (check_dep): Likewise.
18179         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
18180         (sched_free_deps): Free in two passes.
18181
18182 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
18183
18184         PR middle-end/49736
18185         * expr.c (all_zeros_p): Undo bogus part of last change.
18186
18187 2011-07-14  Matthias Klose <doko@ubuntu.com>
18188
18189         * doc/extend.texi (optimize attribute): Fix typo.
18190
18191 2011-07-14  Richard Guenther  <rguenther@suse.de>
18192
18193         * gimplify.c (gimplify_expr): Only do required conversions.
18194
18195 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
18196
18197         PR target/43746
18198         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
18199         i.e. use default_elf_select_section.
18200         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
18201         (READONLY_DATA_SECTION_ASM_OP): Remove.
18202         (TARGET_ASM_NAMED_SECTION): Move from here...
18203         * config/avr/avr.c: ...to here.
18204         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
18205         (avr_asm_named_section): Make static.
18206
18207 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18208
18209         PR bootstrap/49739
18210         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
18211         and crtfastmath.o for Linux/x86.
18212
18213 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18214
18215         * haifa-sched.c: Include "hashtab.h"
18216         (sched_no_dce): New global variable.
18217         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
18218         SHADOW_P): New macros.
18219         (last_clock_var, cycle_issued_insns): Move declarations.
18220         (must_backtrack): New static variable.
18221         (struct delay_pair): New structure.
18222         (delay_htab, delay_htab_i2): New static variables.
18223         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
18224         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
18225         functions.
18226         (dep_cost_1): If delay pairs exist, try to look up the insns and
18227         use the correct pair delay if we find them.
18228         (rank-for_schedule): Tweak priority for insns that must be scheduled
18229         soon to avoid backtracking.
18230         (queue_insn): Detect conditions which force backtracking.
18231         (ready_add): Likewise.
18232         (struct sched_block_state): Add member shadows_only_p.
18233         (struct haifa_save_data): New structure.
18234         (backtrack_queue): New static variable.
18235         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
18236         unschedule_insns_until, restore_last_backtrack_point,
18237         free_topmost_backtrack_point, free_backtrack_queue,
18238         estimate_insn_tick, estimate_shadow_tick): New functions.
18239         (prune_ready_list): New arg shadows_only_p.  All callers changed.
18240         If true, remove everything that isn't SHADOW_P.  Look up delay
18241         pairs and estimate ticks to avoid scheduling the first insn too early.
18242         (verify_shadows): New function.
18243         (schedule_block): Add machinery to enable backtracking.
18244         (sched_init): Take sched_no_dce into account when setting
18245         DF_LR_RUN_DCE.
18246         (free_delay_pairs): New function.
18247         (init_h_i_d): Initialize INSN_EXACT_TICK.
18248         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
18249         * sched-deps.c (sd_unresolve_dep): New function.
18250         * sched-int. (struct haifa_sched_info): New fields save_state
18251         and restore_state.
18252         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
18253         feeds_backtrack_insn and shadow_p.
18254         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
18255         (sched_no_dce): Declare variable.
18256         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
18257         sd_unresolve_dep): Declare functions.
18258         * modulo-sched.c (sms_sched_info): Clear the two new fields.
18259         * sched-rgn.c (rgn_const_sched_info): Likewise.
18260         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
18261         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
18262         (ebb_sched_info): Add them for the two new fields.
18263         (add_deps_for_risky_insns): Call add_delay_dependencies.
18264
18265 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
18266
18267         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
18268         Rename -mr11.
18269         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
18270         (rs6000_call_indirect_aix): Ditto.
18271         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
18272         (call_indirect_aix<ptrsize>_internal): Ditto.
18273         (call_indirect_aix<ptrsize>_nor11): Ditto.
18274         (call_indirect_aix<ptrsize>_internal2): Ditto.
18275         (call_value_indirect_aix<ptrsize>): Ditto.
18276         (call_value_indirect_aix<ptrsize>_internal): Ditto.
18277         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
18278         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
18279         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
18280
18281 2011-07-13  Jason Merrill  <jason@redhat.com>
18282
18283         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
18284
18285 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18286
18287         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
18288         * config/spu/spu.md ("clrsb<mode>2"): New expander.
18289
18290 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
18291
18292         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
18293         * configure: Regenerate.
18294
18295 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18296
18297         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
18298         (asm_file_start): Remove.
18299         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
18300         free_bb_for_insn around code that modifies insns before
18301         restarting df analysis.
18302
18303 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18304
18305         PR target/49541
18306         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
18307         (LINK_SPEC): ... here.
18308
18309 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
18310
18311         * haifa-sched.c (struct sched_block_state): New.
18312         (schedule_block): Move some local variables into such a structure.
18313
18314 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18315
18316         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
18317         * config/i386/t-crtpc: Remove.
18318         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
18319         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
18320         tmake_file.
18321         (x86_64-*-darwin*): Likewise.
18322         (i[34567]86-*-linux*): Likewise.
18323         (x86_64-*-linux*): Likewise.
18324
18325         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
18326         Handle -mpc32, -mpc64, -mpc80.
18327
18328 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18329
18330         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
18331         * config/alpha/t-crtfm: Remove.
18332         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
18333         * config/i386/t-crtfm: Remove.
18334         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
18335         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
18336         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
18337         * config/sparc/t-crtfm: Remove.
18338
18339         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
18340         (alpha*-*-freebsd*): Likewise.
18341         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
18342         (x86_64-*-darwin*): Likewise.
18343         (i[34567]86-*-linux*): Likewise.
18344         (x86_64-*-linux*): Likewise.
18345         (x86_64-*-mingw*): Likewise.
18346         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
18347         (ia64*-*-freebsd*): Likewise.
18348         (ia64*-*-linux*): Likewise.
18349         (mips64*-*-linux*): Likewise.
18350         (mips*-*-linux*): Likewise.
18351         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
18352         (sparc64-*-linux*): Likewise.
18353         (sparc64-*-freebsd*): Likewise.
18354
18355 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18356
18357         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
18358         * config/darwin-crt3.c: Move to ../libgcc/config.
18359         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
18360         ($(T)crt3$(objext)): Remove.
18361         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
18362         ($(T)crt2$(objext)): Remove.
18363         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
18364         (powerpc64-*-darwin*): Likewise.
18365
18366 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
18367
18368         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
18369
18370         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
18371         (addsi_1_zext): This.
18372
18373 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
18374
18375         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
18376         * doc/tm.texi: Regenerate.
18377         * target.def (mergeable_rodata_prefix): New defhookpod.
18378         * varasm.c (mergeable_string_section, mergeable_constant_section):
18379         Use it. Allocate name with alloca.
18380
18381 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
18382
18383         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
18384
18385 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
18386
18387         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
18388         overlap check.
18389
18390 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
18391
18392         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
18393         (count_type_elements): Delete.
18394         (complete_ctor_at_level_p): Declare.
18395         * expr.c (flexible_array_member_p): New function, split out from...
18396         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
18397         parameter with for_ctor_p.  When for_ctor_p is true, return the
18398         number of elements that should appear in the top-level constructor,
18399         otherwise return an estimate of the number of scalars.
18400         (categorize_ctor_elements): Replace p_must_clear with p_complete.
18401         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
18402         (complete_ctor_at_level_p): New function, borrowing union logic
18403         from old categorize_ctor_elements_1.
18404         (mostly_zeros_p): Return true if the constructor is not complete.
18405         (all_zeros_p): Update call to categorize_ctor_elements.
18406         * gimplify.c (gimplify_init_constructor): Update call to
18407         categorize_ctor_elements.  Don't call count_type_elements.
18408         Unconditionally prevent clearing for variable-sized types,
18409         otherwise rely on categorize_ctor_elements to detect
18410         incomplete initializers.
18411
18412 2011-07-13  Richard Guenther  <rguenther@suse.de>
18413
18414         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
18415         the final type is integral.
18416
18417 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
18418
18419         * sched-int.h (struct _dep): Add member cost.
18420         (DEP_COST, UNKNOWN_DEP_COST): New macros.
18421         * sched-deps.c (init_dep_1): Initialize DEP_COST.
18422         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
18423         (sched_change_pattern): Reset it for dependent insns.
18424
18425 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18426
18427         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
18428         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
18429         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
18430         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
18431         (CRT0_S, MCRT0_S): Remove.
18432         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
18433         Remove.
18434         (s-crt0): Remove.
18435         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
18436
18437 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
18438
18439         * cse.c (insert_with_costs): Put semi-colon after empty loop body
18440         on the next line.
18441         * emit-rtl.c (push_to_sequence): Likewise.
18442         * haifa-sched.c (max_issue): Likewise.
18443         * matrix-reorg.c (add_allocation_site): Likewise.
18444         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
18445         * reload.c (alternative_allows_const_pool_ref): Likewise.
18446         * sched-rgn.c (rgn_add_block): Likewise.
18447         (rgn_fix_recovery_cfg): Likewise.
18448         * tree.c (attribute_list_contained): Likewise.
18449
18450 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
18451
18452         * config/i386/i386.c: Tidy processor feature bitmasks.
18453         (m_P4_NOCONA): New.
18454
18455 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
18456
18457         PR rtl-opt/49474
18458         * cprop.c (find_implicit_sets): Correct the condition.
18459
18460 2011-07-12  Richard Henderson  <rth@redhat.com>
18461
18462         PR target/49713
18463         * dwarf2out.h (dwarf_frame_regnum): Remove.
18464         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
18465         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
18466         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
18467         (execute_dwarf2_frame): Initialize them.
18468         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
18469         users of the macros with the variables.
18470         (expand_builtin_dwarf_sp_column): Revert last change.
18471         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
18472         result of DWARF_FRAME_REGNUM into a local variable.
18473
18474 2011-07-12  Richard Henderson  <rth@redhat.com>
18475
18476         PR target/49714
18477         * config/i386/i386.c (x86_output_mi_thunk): Use
18478         machopic_indirect_call_target instead of machopic_indirection_name
18479         directly.
18480
18481 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
18482             Eric Botcazou  <ebotcazou@adacore.com>
18483
18484         * prefix.h: Wrap up in extern "C" block.
18485
18486 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
18487
18488         AMD bdver2 Enablement
18489         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
18490         (case ${target}): Add bdver2.
18491         * config/i386/driver-i386.c (host_detect_local_cpu): Let
18492         -march=native recognize bdver2 processors.
18493         * config/i386/i386-c.c (ix86_target_macros_internal): Add
18494         bdver2 def_and_undef
18495         * config/i386/i386.c (struct processor_costs bdver2_cost): New
18496         bdver2 cost table.
18497         (m_BDVER2): New definition.
18498         (m_AMD_MULTIPLE): Includes m_BDVER2.
18499         (initial_ix86_tune_features): Add bdver2 tuning.
18500         (processor_target_table): Add bdver2 entry.
18501         (static const char *const cpu_names): Add bdver2 entry.
18502         (ix86_option_override_internal): Add bdver2 instruction sets.
18503         (ix86_issue_rate): Add bdver2.
18504         (ix86_adjust_cost): Add bdver2.
18505         (has_dispatch): Add bdver2.
18506         * config/i386/i386.h (TARGET_BDVER2): New definition.
18507         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
18508         (enum processor_type): Add PROCESSOR_BDVER2.
18509         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
18510         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
18511         description.
18512
18513 2011-07-12  Richard Henderson  <rth@redhat.com>
18514
18515         PR target/49714
18516         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
18517         destination address in memory on some paths.
18518
18519 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
18520
18521         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
18522         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
18523         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
18524         * function.c (locate_and_pad_parm): Take it into account.
18525         * target.def (function_arg_round_boundary): New hook.
18526         * targhooks.c (default_function_arg_round_boundary): New function.
18527         * targhooks.h (default_function_arg_round_boundary): Declare.
18528         * doc/tm.texi: Regenerate.
18529
18530 2011-07-12  Richard Guenther  <rguenther@suse.de>
18531
18532         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
18533         Do not perform no-op changes.
18534
18535 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
18536
18537         * config/arm/predicates.md (neon_struct_operand): Make a normal
18538         predicate.
18539         (neon_struct_or_register_operand): New predicate.
18540         * config/arm/neon.md (movmisalign<mode>): Replace predicates
18541         with neon_struct_or_register_operand.
18542         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
18543         neon_struct_operand instead of memory_operand.
18544
18545 2011-07-12  Martin Jambor  <mjambor@suse.cz>
18546
18547         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
18548         * cgraph.c (cgraph_get_node_or_alias): Removed.
18549         (change_decl_assembler_name): Changed all calls to
18550         cgraph_get_node_or_alias to a call to cgraph_get_node.
18551         (cgraph_make_decl_local): Likewise.
18552         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
18553         * varasm.c (default_binds_local_p_1): Likewise.
18554         (decl_binds_to_current_def_p): Likewise.
18555
18556 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
18557
18558         PR tree-optimization/49712
18559         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
18560
18561 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
18562
18563         * genautomata.c (add_arc): Return void.  All callers changed.
18564         (make_automaton): Remove dead code.
18565
18566 2011-07-11  Richard Henderson  <rth@redhat.com>
18567
18568         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
18569         (DW_FRAME_POINTER_REGNUM): New.
18570         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
18571         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
18572         (dwf_regno): New.
18573         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
18574         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
18575         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
18576         Use it.
18577         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
18578         * dwarf2out.h (dwarf_frame_regnum): New.
18579         (struct cfa_loc): Document the domain of the reg member.
18580
18581 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
18582
18583         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
18584         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
18585
18586 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
18587
18588         PR debug/49676
18589         * dwarf2out.c (int_shift_loc_descriptor): New function.
18590         (int_loc_descriptor): If shorter, emit i as
18591         (i >> shift), shift, DW_OP_shl for suitable shift value.
18592         Similarly, try to optimize large negative values using
18593         DW_OP_neg of a positive value if shorter.
18594         (size_of_int_shift_loc_descriptor): New function.
18595         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
18596         changes.
18597         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
18598         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
18599         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
18600         is shorter.
18601         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
18602         addend as added DW_OP_plus if it is shorter.
18603
18604 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18605
18606         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
18607         (DTORS_SECTION_ASM_OP): Define.
18608
18609 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18610
18611         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
18612         * config/t-dfprules: Move to ../libgcc/config.
18613         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
18614         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
18615         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
18616         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
18617         Likewise.
18618         (i[34567]86-*-cygwin*): Likewise.
18619         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
18620         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
18621         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
18622         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
18623         D64PBIT_FUNCS, D128PBIT_FUNCS.
18624
18625 2011-07-11  Richard Guenther  <rguenther@suse.de>
18626
18627         * tree-vrp.c (simplify_conversion_using_ranges): Manually
18628         translate the source value-range through the conversion chain.
18629
18630 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
18631
18632         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
18633
18634 2011-07-11  Arthur Loiret  <aloiret@debian.org>
18635
18636         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
18637         a bi-arch compiler defaulting to 31-bit. In this case:
18638         (tmake_file): Add s390/t-linux64.
18639         * doc/install.texi: Add s390-linux to the list of targets supporting
18640         --enable-targets=all.
18641
18642 2011-07-11  Arthur Loiret  <aloiret@debian.org>
18643             Matthias Klose <doko@debian.org>
18644
18645         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
18646         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
18647         (tm_file): Add mips/linux64.h.
18648         (tmake_file): Add mips/t-linux64.
18649         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
18650         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
18651         instead of hardcoded mabi=n32.
18652         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
18653         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
18654         convention.
18655
18656 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18657
18658         * passes.c (init_optimization_passes): Add invariant motion pass
18659         after induction variable optimization.
18660
18661 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
18662
18663         PR target/39633
18664         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
18665         offsets 1..5 set cc0 in a usable way.
18666
18667 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
18668
18669         * tree.h (call_expr_arg): Remove.
18670         (call_expr_argp): Likewise.
18671
18672 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
18673
18674         * config/sparc/sparc.md (save_register_window_1): Rename to...
18675         (window_save): ...this.
18676         * config/sparc/sparc.c (emit_save_register_window): Rename to...
18677         (emit_window_save): ...this.
18678         (sparc_expand_prologue): Adjust to above renaming.
18679
18680 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
18681
18682         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
18683         of movabs for x32.
18684
18685 2011-07-10  Richard Henderson  <rth@redhat.com>
18686
18687         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
18688         run final, instead of emitting text directly.
18689
18690 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
18691
18692         * config/i386/i386.c (ix86_option_override_internal): Turn on
18693         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
18694         small PIC models for TARGET_X32.
18695
18696 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
18697
18698         PR target/49684
18699         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
18700         $(LIBGCC2_CFLAGS).
18701
18702         PR bootstrap/49680
18703         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
18704         stray notes and debug insns by using prev_nonnote_nondebug_insn
18705         instead of PREV_INSN.
18706
18707 2011-07-09  Richard Henderson  <rth@redhat.com>
18708
18709         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
18710         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
18711         * dwarf2out.c: ... here.
18712         (output_all_cfis): Remove.
18713         (dwarf2out_switch_text_section): Use output_cfis directly.
18714         (size_of_locs): Export.
18715         (output_loc_sequence, output_loc_sequence_raw): Export.
18716         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
18717         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
18718         output_cfa_loc_raw): Move to ...
18719         * dwarfcfi.c: ... here.
18720         * dwarf2out.h: Update decls.
18721
18722 2011-07-09  Richard Henderson  <rth@redhat.com>
18723
18724         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
18725         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
18726         * dwarf2cfi.c: ... here.
18727         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
18728         (DWARF_ROUND, DWARF_CIE_ID): Remove.
18729         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
18730         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
18731         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
18732
18733 2011-07-09  Richard Henderson  <rth@redhat.com>
18734
18735         * dwarf2cfi.c (cie_return_save): New.
18736         (queue_reg_save): Use compare_reg_or_pc.
18737         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
18738         (dwarf2out_frame_debug_expr): Likewise.
18739         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
18740         (initial_return_save): Likewise.
18741         (execute_dwarf2_frame): Save and restore initial return save from
18742         the cie to the fde.
18743         * config/mips/mips.c (mips_frame_set): Remove special case for
18744         DWARF_FRAME_RETURN_COLUMN.
18745
18746 2011-07-09  Richard Henderson  <rth@redhat.com>
18747
18748         * dwarf2cfi.c (lookup_cfa): Remove.
18749         (execute_dwarf2_frame): Assert queues are empty on entry.
18750         Setup initial cfa directly, not via lookup_cfa.
18751         Don't clear args_size state here.
18752
18753 2011-07-09  Richard Henderson  <rth@redhat.com>
18754
18755         * dwarf2cfi.c (add_cfi_vec): New.
18756         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
18757         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
18758         (execute_dwarf2_frame): Set add_cfi_vec.
18759
18760 2011-07-09  Richard Henderson  <rth@redhat.com>
18761
18762         * defaults.h (ASM_COMMENT_START): Move here...
18763         * dwarf2asm.c: ... from here.
18764         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
18765         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
18766         * varasm.c: Likewise.
18767
18768 2011-07-09  Richard Henderson  <rth@redhat.com>
18769
18770         PR debug/49686
18771         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
18772         (create_cfi_notes): ... do it here instead.
18773
18774 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
18775
18776         PR debug/49676
18777         * dwarf2out.c (size_of_int_loc_descriptor): New function.
18778         (address_of_int_loc_descriptor): Use it.
18779         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
18780
18781 2011-07-09  Richard Henderson  <rth@redhat.com>
18782
18783         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
18784         (prologue, epilogue): New.
18785         (return, *rts): New.
18786         (blockage, setd, seti): New.
18787         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
18788         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
18789         (pdp11_saved_regno): New.
18790         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
18791         generate rtl instead of text.
18792         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
18793         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
18794         * config/pdp11/pdp11-protos.h: Update.
18795
18796 2011-07-09  Richard Henderson  <rth@redhat.com>
18797
18798         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
18799         try to insert an rtl prologue here.
18800         (rs6000_output_function_epilogue): Similarly.
18801         * config/rs6000/rs6000.md (prologue): Emit a barrier to
18802         satisfy !TARGET_SCHED_PROLOG.
18803         (epilogue, sibcall_epilogue): Likewise.
18804
18805 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
18806
18807         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
18808         (FP_REG_P): Delete.
18809         (IN_OR_GLOBAL_P): Likewise.
18810
18811 2011-07-08  Jason Merrill  <jason@redhat.com>
18812
18813         PR c++/45437
18814         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
18815         compound assignment.
18816
18817         * cgraph.c (cgraph_add_to_same_comdat_group): New.
18818         * cgraph.h: Declare it.
18819         * ipa.c (function_and_variable_visibility): Make sure thunks
18820         have the right visibility.
18821
18822 2011-07-08  Richard Henderson  <rth@redhat.com>
18823
18824         PR bootstrap/49680
18825         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
18826         any tablejump vector.
18827
18828         PR bootstrap/49680
18829         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
18830         end of the prologue.
18831
18832 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
18833
18834         PR target/49621
18835         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
18836         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
18837         * config/rs6000/vector.md (vector_select_<mode>,
18838         vector_select_<mode>_uns): Change second operand of NE to
18839         CONST0_RTX (<MODE>mode) instead of const0_rtx.
18840         * config/rs6000/altivec.md (*altivec_vsel<mode>,
18841         *altivec_vsel<mode>_uns): Expect second operand of NE to be
18842         zero_constant of the corresponding vector mode.
18843         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
18844         Likewise.
18845
18846 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
18847
18848         * graphite-dependences.c (build_alias_set_powerset): Remove
18849         continue from loop, add one more assert.
18850
18851 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
18852
18853         PR target/46779
18854         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
18855         In particular, allow 8-bit values in r28 and r29.
18856         (avr_hard_regno_scratch_ok): Disallow any register that might be
18857         part of the frame pointer.
18858         (avr_hard_regno_rename_ok): Same.
18859         (avr_legitimate_address_p): Don't allow SUBREGs.
18860
18861 2011-07-08  Julian Brown  <julian@codesourcery.com>
18862
18863         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
18864         big-endian mode.
18865         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
18866         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
18867         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
18868         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
18869         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
18870         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
18871         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
18872         registers in big-endian mode.
18873
18874 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
18875
18876         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
18877         in terms of another.
18878         (write_attr_value): Write a cast if necessary.
18879
18880         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
18881         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
18882         (REG_WORDS_BIG_ENDIAN): Document.
18883         * doc/tm.texi: Regenerate.
18884         * reload.c (operands_match_p): Take it into account.
18885         (reload_adjust_reg_for_mode): Likewise.
18886         * rtlanal.c (subreg_get_info): Likewise.
18887
18888 2011-07-08  Richard Guenther  <rguenther@suse.de>
18889
18890         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
18891         folding.
18892
18893 2011-07-08  Kai Tietz  <ktietz@redhat.com>
18894
18895         * fold-const.c (fold_truth_andor): Factored out truth_andor
18896         label from fold_binary as function.
18897         (fold_binary_loc): Replace truth_andor lable
18898         by function fold_truth_andor.
18899
18900 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
18901
18902         PR middle-end/49519
18903         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
18904         check if address is stored in register. If so - give up.
18905         (check_sibcall_argument_overlap_1): Do not perform check of
18906         overlapping when it is call to address.
18907
18908 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
18909
18910         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
18911         of magic '31'.
18912
18913 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
18914
18915         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
18916         GET_MODE_BITSIZE where appropriate.
18917         (widen_leading, expand_parity, expand_ctz, expand_ffs,
18918         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
18919         expand_float, expand_fix): Likewise.
18920         * expr.c (convert_move, convert_modes, expand_expr_real_2,
18921         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
18922         * stor-layout.c (get_mode_bounds): Likewise.
18923         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
18924         Likewise.
18925         * convert.c (convert_to_integer): Likewise.
18926         * expmed.c (expand_shift_1): Likewise.
18927
18928         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
18929         a bitsize.
18930
18931         * optabs.c (expand_binop): Tighten conditions for doubleword
18932         expansions.
18933         (widen_bswap): Assert that mode bitsize and precision are the same.
18934         * stor-layout.c (get_best_mode): Skip modes that have lower
18935         precision than bitsize.
18936         * recog.c (simplify_while_replacing): Assert that bitsize and
18937         precision are the same.
18938
18939 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18940
18941         * Makefile.in (LIBGCOV): Remove.
18942         (libgcc.mvars): Remove LIBGCOV.
18943         * libgov.c: Move to ../libgcc.
18944
18945 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18946
18947         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
18948
18949 2011-07-08  Martin Jambor  <mjambor@suse.cz>
18950
18951         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
18952         is too big for total scalarization.
18953
18954 2011-07-07  Richard Henderson  <rth@redhat.com>
18955
18956         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
18957         (DBX_DEBUGGING_INFO): Undef.
18958
18959 2011-07-07  Richard Henderson  <rth@redhat.com>
18960
18961         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
18962         Handle some opcodes specially for debugging.
18963         * print-rtl.c: Include dwarf2out.h
18964         (print_rtx): Handle NOTE_INSN_CFI.
18965         * Makefile.in (print-rtl.o): Update.
18966
18967 2011-07-07  Richard Henderson  <rth@redhat.com>
18968
18969         * tree-pass.h (pass_dwarf2_frame): Declare.
18970         * passes.c (init_optimization_passes): Add it.
18971         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
18972         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
18973         make static, do not call add_cfis_to_fde.
18974         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
18975         dwarf2out_frame_init): Merge into...
18976         (execute_dwarf2_frame): ... here.  New function.
18977         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
18978         saved_do_cfi_asm to a tri-state variable.
18979         (gate_dwarf2_frame, pass_dwarf2_frame): New.
18980         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
18981         if it has yet to be done.  Don't call dwarf2cfi_function_init.
18982         * dwarf2out.h, debug.h: Update decls.
18983         * final.c (final_start_function): Don't call
18984         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
18985         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
18986         * toplev.c (lang_dependent_init): Likewise.
18987
18988 2011-07-07  Richard Henderson  <rth@redhat.com>
18989
18990         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
18991         FDE_TABLE_INCREMENT): Replace with...
18992         (fde_vec): ... this, a new vector.
18993         (current_fde): Remove.  Replace all users with cfun->fde.
18994         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
18995         (size_of_aranges, dwarf2out_finish): Likewise.
18996         (dwarf2out_alloc_current_fde): Break out from ...
18997         (dwarf2out_begin_prologue): ... here.
18998         (dwarf2out_frame_init): Remove.
18999         * dwarf2cfi.c: Update all users of current_fde.
19000         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
19001         * dwarf2out.h: Update decls.
19002         (dw_fde_node): Add fde_index member.
19003         * function.h (struct function): Add fde member.
19004
19005 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19006             Richard Henderson  <rth@redhat.com>
19007
19008         * dwarf2cfi.c (add_cfi): Remove.
19009         (dwarf2out_cfi_label): Remove force argument.  Only generate the
19010         label name.
19011         (add_fde_cfi): Simplify the different code paths.
19012         (add_cie_cfi): New.
19013         (old_cfa, old_cfa_remember): New.
19014         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
19015         (last_reg_save_label): Remove.
19016         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
19017         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
19018         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
19019         dwarf2out_frame_debug_cfa_expression,
19020         dwarf2out_frame_debug_cfa_restore,
19021         dwarf2out_frame_debug_cfa_window_save,
19022         dwarf2out_frame_debug_expr): Remove label parameter.
19023         (cfi_label_required_p, add_cfis_to_fde): New.
19024         (dwarf2out_frame_debug_after_prologue): New.
19025         (dwarf2cfi_frame_init): Initialize old_cfa.
19026         (dwarf2out_frame_debug_restore_state): Likewise.
19027         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
19028         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
19029         * final.c (final_start_function): Call
19030         dwarf2out_frame_debug_after_prologue.
19031
19032 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19033             Richard Henderson  <rth@redhat.com>
19034
19035         * dwarf2cfi.c (cfi_insn): New.
19036         (dwarf2out_cfi_label): Don't emit cfi label here.
19037         (add_fde_cfi): Create a NOTE_INSN_CFI.
19038         (dwarf2out_frame_debug): Setup cfi_insn.
19039         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
19040         (dwarf2out_cfi_begin_epilogue): Make static.
19041         (dwarf2out_frame_debug_restore_state): Make static.
19042         * dwarf2out.c (output_cfi_directive): Make static.
19043         (dwarf2out_emit_cfi): New.
19044         * dwarf2out.h: Update.
19045         * final.c (final): Remove CFI notes.
19046         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
19047         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
19048         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
19049         * insn-notes.def (NOTE_INSN_CFI): New.
19050         (NOTE_INSN_CFI_LABEL): New.
19051         * rtl.h (union rtunion_def): Add rt_cfi member.
19052         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
19053
19054 2011-07-07  Richard Henderson  <rth@redhat.com>
19055
19056         * dwarf2cfi.c: New file.
19057         * Makefile.in (OBJS): Add it.
19058         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
19059         * gengtype.c (open_base_files): Include dwarf2out.h.
19060         * coretypes.h (enum var_init_status): Move from ...
19061         * rtl.h: ... here.
19062         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
19063         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
19064         expand_builtin_dwarf_sp_column, init_return_column_size,
19065         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
19066         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
19067         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
19068         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
19069         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
19070         compute_barrier_args_size, dwarf2out_args_size,
19071         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
19072         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
19073         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
19074         queue_reg_save, dwarf2out_flush_queued_reg_saves,
19075         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
19076         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
19077         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
19078         dwarf2out_frame_debug_cfa_expression,
19079         dwarf2out_frame_debug_cfa_restore,
19080         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
19081         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
19082         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
19083         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
19084         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
19085         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
19086         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
19087         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
19088         dw_loc_descr_node): Move to dwarf2out.h.
19089         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
19090         mem_loc_descriptor): Export.
19091         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
19092         (dwarf2out_frame_init): Extract CIE generation code to
19093         dwarf2cfi_frame_init.
19094
19095 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
19096
19097         PR target/49660
19098         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
19099         MASK_V8PLUS, remove commented out flag and reorder.
19100
19101 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
19102
19103         PR c/49644
19104         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
19105         one non-complex and one complex argument, call c_save_expr on both
19106         operands.
19107
19108 2011-07-07  Martin Jambor  <mjambor@suse.cz>
19109
19110         PR middle-end/49495
19111         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
19112         (verify_cgraph_node): Some functinality moved to
19113         verify_edge_corresponds_to_fndecl, call it.
19114
19115 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
19116
19117         * config.gcc (*local*): Remove.
19118         * doc/install-old.texi: Don't mention local configurations.
19119
19120 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
19121
19122         PR debug/49522
19123         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
19124         referencing debug insns that have been reset.
19125         (dead_debug_insert_before): Don't assert reg is non-NULL,
19126         instead return immediately if it is NULL.
19127
19128 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
19129
19130         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
19131
19132 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19133
19134         * hw-doloop.c: New file.
19135         * hw-doloop.h: New file.
19136         * Makefile.in (OBJS): Add hw-doloop.o.
19137         (hw-doloop.o): New rule.
19138         ($(obj_out_file)): Add hw-doloop.h dependency.
19139         * config/bfin/bfin.c: Include "hw-doloop.h".
19140         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
19141         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
19142         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
19143         type changed to hwloop_info.  Return bool, true if the loop was
19144         successfully optimized.  Remove code that was moved to
19145         hw-doloop.c, and adjust other parts.
19146         (hwloop_fail): New static function, containing parts that used
19147         to be in bfin_optimize_loop.
19148         (bfin_discover_loop, bfin_discover_loops, free_loops,
19149         bfin_reorder_loops): Remove.
19150         (hwloop_pattern_reg): New static function.
19151         (bfin_doloop_hooks): New variable.
19152         (bfin_reorg_loops): Remove most code, call reorg_loops.
19153         * config/bfin/bfin.md (doloop_end splitter): Also enable if
19154         loop counter is a memory_operand.
19155
19156 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19157
19158         * config.gcc: Support --with-multilib-list for x86 Linux targets.
19159
19160         * configure.ac: Mention x86-64 for --with-multilib-list.
19161         * configure: Regenerated.
19162
19163         * config/i386/gnu-user64.h (SPEC_64): Support x32.
19164         (SPEC_32): Likewise.
19165         (ASM_SPEC): Likewise.
19166         (LINK_SPEC): Likewise.
19167         (TARGET_THREAD_SSP_OFFSET): Likewise.
19168         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
19169         (SPEC_X32): New.
19170
19171         * config/i386/i386.h (TARGET_X32): New.
19172         (TARGET_LP64): New.
19173         (LONG_TYPE_SIZE): Likewise.
19174         (POINTER_SIZE): Likewise.
19175         (POINTERS_EXTEND_UNSIGNED): Likewise.
19176         (OPT_ARCH64): Support x32.
19177         (OPT_ARCH32): Likewise.
19178
19179         * config/i386/i386.opt (mx32): New.
19180
19181         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
19182         (GLIBC_DYNAMIC_LINKERX32): Likewise.
19183         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
19184         (GLIBC_DYNAMIC_LINKERX32): Likewise.
19185
19186         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
19187         (BIONIC_DYNAMIC_LINKERX32): Likewise.
19188         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
19189
19190         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
19191
19192         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
19193
19194         * doc/invoke.texi: Document -mx32.
19195
19196 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
19197
19198         * doc/invoke.texi (mwords-little-endian): Deprecate.
19199         * config/arm/arm.opt (mwords-little-endian): Likewise.
19200         * config/arm/arm.c (arm_option_override): Warn about the deprecation
19201         of -mwords-little-endian.
19202
19203 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
19204
19205         * reload1.c (choose_reload_regs): Use mode sizes to check whether
19206         an old reload register completely defines the required value.
19207
19208 2011-07-07  Richard Guenther  <rguenther@suse.de>
19209
19210         * fold-const.c (fold_unary_loc): Do not strip sign-changes
19211         for NEGATE_EXPR.
19212
19213 2011-07-07  Richard Guenther  <rguenther@suse.de>
19214
19215         * tree-vrp.c (simplify_conversion_using_ranges): New function.
19216         (simplify_stmt_using_ranges): Call it.
19217
19218 2011-07-07  Kai Tietz  <ktietz@redhat.com>
19219
19220         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
19221         (lookup_logical_inverted_value): Likewise.
19222         (simplify_bitwise_binary_1): Likewise.
19223         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
19224
19225 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
19226
19227         * gcc.c (%[Spec]): Don't document.
19228         (struct spec_list): Update comment.
19229         (do_spec_1): Don't handle %[Spec].
19230         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
19231
19232 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
19233
19234         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
19235         default based on TARGET_ASM_NAMED_SECTION.
19236         * common/common-target.def (have_named_sections): Default to true.
19237         * common/config/default-common.c: Don't include tm.h.
19238         * common/config/picochip/picochip-common.c
19239         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
19240         * common/config/m32c/m32c-common.c: Remove.
19241         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
19242         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
19243         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
19244         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
19245         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
19246         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
19247         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
19248
19249 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
19250
19251         PR middle-end/49640
19252         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
19253         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19254
19255 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19256
19257         PR libmudflap/49550
19258         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
19259
19260 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19261
19262         PR target/39150
19263         * configure.ac (gcc_cv_as_hidden): Also accept
19264         x86_64-*-solaris2.1[0-9]*.
19265         (gcc_cv_as_cfi_directive): Likewise.
19266         (gcc_cv_as_comdat_group_group): Likewise.
19267         (set_have_as_tls): Likewise.
19268         * configure: Regenerate.
19269         * config.gcc (i[34567]86-*-solaris2*): Also handle
19270         x86_64-*-solaris2.1[0-9]*.
19271         * config.host (i[34567]86-*-solaris2*): Likewise.
19272         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
19273         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
19274         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
19275         (TARGET_LD_EMULATION): Use it.
19276         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
19277         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
19278         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
19279         (ASM_CPU64_DEFAULT_SPEC): Define.
19280         (ASM_CPU_SPEC): Use %(asm_cpu_default).
19281         (ASM_SPEC): Redefine.
19282         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
19283         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
19284         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
19285         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
19286         configuration.
19287         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
19288
19289 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19290
19291         * config/sol2.h (ASM_SPEC): Split into ...
19292         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
19293         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
19294         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
19295         (ASM_SPEC): Use ASM_SPEC_BASE.
19296         * config/sparc/sol2.h (ASM_SPEC): Redefine.
19297
19298 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
19299
19300         * config/avr/avr.md (*reload_insi): Change predicate #1 to
19301         const_int_operand.  Ditto for peep2 producing this insn.
19302         Add argument to output_reload_insisf call.
19303         (*movsi,*movsf): Add argument to output_movsisf call.
19304         (*reload_insf): New insn and new peep2 to produce it.
19305         * config/avr/avr-protos.h (output_movsisf): Change prototype.
19306         (output_reload_insisf): Change prototype.
19307         * config/avr/avr.c (avr_asm_len): New function.
19308         (output_reload_insisf): Rewrite.
19309         (output_movsisf): Change prototype.  output_reload_insisf for
19310         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
19311         (adjust_insn_length): Add argument to output_movsisf and
19312         output_reload_insisf call.
19313
19314 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19315
19316         * emit-rtl.c (paradoxical_subreg_p): New function.
19317         * rtl.h (paradoxical_subreg_p): Declare.
19318         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
19319         apply_distributive_law, simplify_comparison, simplify_set): Use it.
19320         * cse.c (record_jump_cond, cse_insn): Likewise.
19321         * expr.c (force_operand): Likewise.
19322         * rtlanal.c (num_sign_bit_copies1): Likewise.
19323         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
19324         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
19325         (push_reload): Use precision to check for paradoxical subregs.
19326         * expmed.c (extract_bit_field_1): Likewise.
19327
19328         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
19329         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
19330         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
19331         simplify_set, simplify_logical, expand_compound_operation,
19332         make_extraction, force_to_mode, if_then_else_cond, extended_count,
19333         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
19334         record_value_for_reg): Likewise.
19335         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
19336         * simplify-rtx. c (simplify_unary_operation_1,
19337         simplify_binary_operation_1, simplify_const_relational_operation):
19338         Likewise.
19339
19340         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
19341         instead of GET_MODE_BITSIZE where appropriate.
19342         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
19343         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
19344         init_num_sign_bit_copies_in_rep): Likewise.
19345         * cse.c (fold_rtx, cse_insn): Likewise.
19346         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
19347         * simplify-rtx.c (simplify_unary_operation_1,
19348         simplify_const_unary_operation, simplify_binary_operation_1,
19349         simplify_const_binary_operation, simplify_ternary_operation,
19350         simplify_const_relational_operation, simplify_subreg): Likewise.
19351         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
19352         simplify_if_then_else, simplify_set, expand_compound_operation,
19353         expand_field_assignment, make_extraction, if_then_else_cond,
19354         make_compound_operation, force_to_mode, make_field_assignment,
19355         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
19356         extended_count, try_widen_shift_mode, simplify_shift_const_1,
19357         simplify_comparison, record_promoted_value, simplify_compare_const,
19358         record_dead_and_set_regs_1): Likewise.
19359
19360         Revert:
19361         * simplify-rtx.c (simplify_const_binary_operation): Use the
19362         shift_truncation_mask hook instead of performing modulo by width.
19363         Compare against mode precision, not bitsize.
19364         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
19365         Use shift_truncation_mask instead of constructing the value manually.
19366
19367 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
19368
19369         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
19370         declaration.
19371         (rs6000_save_toc_in_prologue_p): Ditto.
19372
19373         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
19374         up the static chain (r11) during indirect function calls.
19375         (-msave-toc-indirect): New undocumented debug switch.
19376
19377         * config/rs6000/rs6000.c (struct machine_function): Add
19378         save_toc_in_prologue field to note whether the prologue needs to
19379         save the TOC value in the reserved stack location.
19380         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
19381         to save the TOC in the prologue, do so.
19382         (rs6000_trampoline_init): Don't allow creating AIX style
19383         trampolines if -mno-r11 is in effect.
19384         (rs6000_call_indirect_aix): New function to create AIX style
19385         indirect calls, adding support for -mno-r11 to suppress loading
19386         the static chain, and saving the TOC in the prologue instead of
19387         the call body.
19388         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
19389         TOC in the prologue.
19390
19391         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
19392         register numbers.
19393         (TOC_REGNUM): Ditto.
19394         (STATIC_CHAIN_REGNUM): Ditto.
19395         (ARG_POINTER_REGNUM): Ditto.
19396         (SFP_REGNO): Delete, unused.
19397         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
19398         function descriptor offsets.
19399         (TOC_SAVE_OFFSET_64BIT): Ditto.
19400         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
19401         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
19402         (AIX_FUNC_DESC_SC_32BIT): Ditto.
19403         (AIX_FUNC_DESC_SC_64BIT): Ditto.
19404         (ptrload): New mode attribute for the appropriate load of a pointer.
19405         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
19406         (call_indirect_aix64): Ditto.
19407         (call_value_indirect_aix32): Ditto.
19408         (call_value_indirect_aix64): Ditto.
19409         (call_indirect_nonlocal_aix32_internal): Ditto.
19410         (call_indirect_nonlocal_aix32): Ditto.
19411         (call_indirect_nonlocal_aix64_internal): Ditto.
19412         (call_indirect_nonlocal_aix64): Ditto.
19413         (call): Rewrite AIX indirect function calls.  Add support for
19414         eliminating the static chain, and for moving the save of the TOC
19415         to the function prologue.
19416         (call_value): Ditto.
19417         (call_indirect_aix<ptrsize>): Ditto.
19418         (call_indirect_aix<ptrsize>_internal): Ditto.
19419         (call_indirect_aix<ptrsize>_internal2): Ditto.
19420         (call_indirect_aix<ptrsize>_nor11): Ditto.
19421         (call_value_indirect_aix<ptrsize>): Ditto.
19422         (call_value_indirect_aix<ptrsize>_internal): Ditto.
19423         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
19424         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
19425         (call_nonlocal_aix32): Relocate in the rs6000.md file.
19426         (call_nonlocal_aix64): Ditto.
19427
19428         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
19429         -mno-r11 documentation.
19430
19431 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
19432
19433         PR other/49658
19434         * doc/extend.texi (Compound Literals): Fix typo.
19435
19436 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
19437
19438         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
19439
19440 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
19441
19442         * configure.ac (plugin-version.h): Generate
19443         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
19444         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
19445         macros.
19446
19447         * configure: Regenerate.
19448
19449         * doc/plugins.texi (Building GCC plugins): Mention
19450         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
19451
19452 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
19453
19454         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
19455         * combine.c (make_extraction, gen_lowpart_or_truncate,
19456         apply_distributive_law, simplify_comparison,
19457         reg_truncated_to_mode, record_truncated_value): Use it.
19458         * cse.c (notreg_cost): Likewise.
19459         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
19460         * expr.c (convert_move, convert_modes): Likewise.
19461         * optabs.c (expand_binop, expand_unop): Likewise.
19462         * postreload.c (move2add_last_label): Likewise.
19463         * regmove.c (optimize_reg_copy_3): Likewise.
19464         * rtlhooks.c (gen_lowpart_general): Likewise.
19465         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
19466
19467 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
19468
19469         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
19470
19471 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
19472
19473         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
19474         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
19475         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
19476         (simplify_const_unary_operation, simplify_binary_operation_1,
19477         simplify_const_binary_operation, simplify_const_relational_operation):
19478         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
19479         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
19480         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
19481         simplify_shift_const_1, simplify_comparison): Likewise.
19482         * expr.c (convert_modes): Likewise.
19483         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
19484         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
19485         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
19486
19487         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
19488
19489 2011-07-06  Richard Guenther  <rguenther@suse.de>
19490
19491         PR tree-optimization/49645
19492         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
19493         register variables.
19494         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
19495         in type qualification here ...
19496         (copy_reference_ops_from_ref): ... not here.
19497         (vn_reference_lookup_3): ... or here.
19498         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
19499         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
19500
19501 2011-07-06  Ian Lance Taylor  <iant@google.com>
19502
19503         * doc/install.texi (Configuration): It's
19504         --enable-gnu-indirect-function, not --enable-indirect-function.
19505
19506 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
19507
19508         * simplify-rtx.c (simplify_const_binary_operation): Use the
19509         shift_truncation_mask hook instead of performing modulo by width.
19510         Compare against mode precision, not bitsize.
19511         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
19512         Use shift_truncation_mask instead of constructing the value manually.
19513
19514 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
19515
19516         PR middle-end/47383
19517         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
19518         address computation and convert to address_mode if needed.
19519
19520 2011-07-06  Richard Guenther  <rguenther@suse.de>
19521
19522         * tree.c (build_common_tree_nodes_2): Merge with
19523         build_common_tree_nodes.
19524         * tree.h (build_common_tree_nodes): Adjust prototype.
19525         (build_common_tree_nodes_2): Remove.
19526         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
19527         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
19528
19529 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
19530
19531         PR tree-optimization/49618
19532         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
19533         t recurse on the decl.
19534         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
19535         return true if expr isn't known to be defined in current
19536         TU or some other LTO partition.
19537
19538 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
19539
19540         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
19541         override CASE_VALUES_THRESHOLD.
19542
19543         * stmt.c (toplevel): Include params.h.
19544         (case_values_threshold): Use the --param case-values-threshold
19545         value if non-zero, otherwise use machine dependent value.
19546         (expand_case): Use case_values_threshold.
19547
19548         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
19549
19550         * doc/invoke.texi (--param case-values-threshold): Document.
19551
19552 2011-07-05  Richard Henderson  <rth@redhat.com>
19553
19554         * dwarf2out.c (dwarf2out_cfi_label): Make static.
19555         (dwarf2out_flush_queued_reg_saves): Make static.
19556         (dwarf2out_reg_save): Remove.
19557         (dwarf2out_return_save): Remove.
19558         (dwarf2out_return_reg): Remove.
19559         (dwarf2out_reg_save_reg): Remove.
19560         (dwarf2out_def_cfa): Merge into ...
19561         (dwarf2out_frame_init): ... here.
19562         * dwarf2out.h, tree.h: Remove declarations as necessary.
19563
19564 2011-07-05  Richard Henderson  <rth@redhat.com>
19565
19566         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
19567         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
19568         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
19569         the alloc insn.
19570
19571         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
19572         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
19573         (process_epilogue): Don't call dwarf2out_def_cfa.
19574
19575         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
19576         indicate the return address save.
19577         (process_cfa_register): Likewise.
19578
19579         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
19580         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
19581
19582         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
19583         for ar.pfs save at alloc insn.
19584
19585 2011-07-05  Richard Henderson  <rth@redhat.com>
19586
19587         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
19588         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
19589         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
19590         stack pointer save.
19591         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
19592         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
19593         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
19594         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
19595
19596 2011-07-05  Richard Henderson  <rth@redhat.com>
19597
19598         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
19599         VUNSPEC_* constants here instead of via define_constants.
19600         (VUNSPEC_PEM): New constant.
19601         (procedure_entry_mask): New insn.
19602         (prologue): New expander.
19603         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
19604         (vax_expand_prologue): Rename from vax_output_function_prologue;
19605         emit rtl instead of text.
19606         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
19607         (print_operand): Add 'x' prefix.
19608
19609 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
19610
19611         PR middle-end/47715
19612         * calls.c (precompute_register_parameters): Promote the function
19613         argument before checking non-legitimate constant.
19614
19615 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
19616
19617         PR tree-optimization/47654
19618         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
19619         (lst_do_strip_mine_loop): Return an int.
19620         (lst_do_strip_mine): Same.
19621         (scop_do_strip_mine): Same.
19622         (scop_do_block): Loop blocking should strip-mine at least two loops.
19623         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
19624         (scop_do_interchange): Same.
19625         * graphite-poly.h (scop_do_interchange): Update declaration.
19626         (scop_do_strip_mine): Same.
19627
19628 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
19629
19630         * graphite-clast-to-gimple.c (precision_for_value): Removed.
19631         (precision_for_interval): Removed.
19632         (gcc_type_for_interval): Use mpz_sizeinbase.
19633
19634 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
19635
19636         * graphite-ppl.h (value_max): Correct computation of max.
19637
19638 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
19639
19640         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
19641
19642 2011-07-05  Richard Guenther  <rguenther@suse.de>
19643
19644         * c-decl.c (c_init_decl_processing): Defer building common
19645         tree nodes to c_common_nodes_and_builtins.
19646
19647 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
19648
19649         PR tree-optimization/49580
19650         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
19651         the loop's number of iterations.
19652         * tree-parloops.c (transform_to_exit_first_loop): Add the
19653         handling of the loop's number of iterations before the call
19654         to gimple_duplicate_sese_tail.
19655         Insert the stmt caclculating the new rhs of the loop's
19656         condition stmt to the preheader instead of iters_bb.
19657
19658 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
19659
19660         PR rtl-optimization/47449
19661         * fwprop.c (forward_propagate_subreg): Don't propagate hard
19662         register nor zero/sign extended hard register.
19663
19664 2011-07-05  Richard Guenther  <rguenther@suse.de>
19665
19666         PR tree-optimization/49518
19667         PR tree-optimization/49628
19668         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
19669         irrelevant and invariant data-references.
19670         (vect_analyze_data_ref_access): For invariant loads clear the
19671         group association.
19672
19673 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
19674
19675         PR rtl-optimization/49619
19676         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
19677         pass VOIDmode as op0_mode to recursive call, and return temp even
19678         when different from tor, just if it is not IOR of the original
19679         PLUS arguments.
19680
19681         PR rtl-optimization/49472
19682         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
19683         negating MULT, negate the second operand instead of first.
19684         (simplify_binary_operation_1) <case MULT>: If one operand is
19685         a NEG and the other is MULT, don't attempt to optimize by negation
19686         of the MULT operand if it only moves the NEG operation around.
19687
19688         PR debug/49602
19689         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
19690         get_current_def return value if it can't be trusted to be
19691         the current value of the variable in the current bb.
19692
19693 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
19694
19695         PR target/49600
19696         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
19697         general register to memory for !TARGET_INTER_UNIT_MOVES.
19698
19699 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
19700
19701         PR target/44643
19702         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
19703         instead of TREE_READONLY.
19704
19705 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
19706
19707         * doc/extend.texi (AVR Built-in Functions): Update documentation
19708         of __builtin_avr_fmul*.
19709         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
19710         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
19711         * config/avr/avr.md (fmul): Rename to fmul_insn.
19712         (fmuls): Rename to fmuls_insn.
19713         (fmulsu): Rename to fmulsu_insn.
19714         (fmul,fmuls,fmulsu): New expander.
19715         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
19716         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
19717         * config/avr/libgcc.S (__fmul): New function.
19718         (__fmuls): New function.
19719         (__fmulsu,__fmulsu_exit): New function.
19720
19721 2011-07-04  Richard Guenther  <rguenther@suse.de>
19722
19723         PR tree-optimization/49615
19724         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
19725         basic-block index check.
19726
19727 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
19728
19729         * longlong.h (count_leading_zeros, count_trailing_zeros,
19730         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
19731         resp. 64.
19732
19733 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
19734
19735         PR tree-optimization/49610
19736         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
19737         a basic block.
19738
19739 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19740             Olivier Hainque  <hainque@adacore.com>
19741             Nicolas Setton  <setton@adacore.com>
19742
19743         * tree.h (TYPE_ARTIFICIAL): New flag.
19744         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
19745         the DIE of the type if it is artificial.
19746         (gen_array_type_die): Likewise.
19747         (gen_enumeration_type_die): Likewise.
19748         (gen_struct_or_union_type_die): Likewise.
19749         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
19750         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
19751
19752 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
19753
19754         * tree-object-size.c (pass_through_call): Handle
19755         BUILT_IN_ASSUME_ALIGNED.
19756
19757 2011-07-01  Martin Jambor  <mjambor@suse.cz>
19758
19759         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
19760
19761 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
19762
19763         PR middle-end/48016
19764         * explow.c (update_nonlocal_goto_save_area): Use proper mode
19765         for stack save area.
19766         * function.c (expand_function_start): Likewise.
19767
19768 2011-07-01  Richard Guenther  <rguenther@suse.de>
19769
19770         PR middle-end/49596
19771         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
19772         may have unknown refs.
19773
19774 2011-07-01  Kai Tietz  <ktietz@redhat.com>
19775
19776         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
19777
19778 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19779
19780         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
19781         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
19782         (Specific, mips-sgi-irix6): Likewise.
19783
19784 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19785
19786         PR libmudflap/49549
19787         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
19788
19789 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
19790
19791         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
19792         [idx]= and [idx1 ... idx2]= before initializers if needed for
19793         array initializers.
19794
19795 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
19796
19797         * config.gcc (score-*-elf): Remove score7.o.
19798         * config/score/t-score-elf: Likewise.
19799         * config/score/score.c: Merge score7 to score.c and
19800         remove forwarding functions.
19801         * config/score/score7.c: Deleted.
19802         * config/score/score7.h: Deleted.
19803
19804 2011-07-01  Richard Guenther  <rguenther@suse.de>
19805
19806         PR tree-optimization/49603
19807         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
19808
19809 2011-06-30  Martin Jambor  <mjambor@suse.cz>
19810
19811         * tree-sra.c (struct access): Rename total_scalarization to
19812         grp_total_scalarization
19813         (completely_scalarize_var): New function.
19814         (sort_and_splice_var_accesses): Set total_scalarization in the
19815         representative access.
19816         (analyze_access_subtree): Propagate total scalarization accross the
19817         tree, no holes in totally scalarized trees, simplify coverage
19818         computation.
19819         (analyze_all_variable_accesses): Call completely_scalarize_var instead
19820         of completely_scalarize_record.
19821
19822 2011-06-30  Richard Henderson  <rth@redhat.com>
19823
19824         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
19825         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
19826         * config/i386/i386.c: Don't include dwarf2out.h.
19827         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
19828         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
19829         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
19830         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
19831         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
19832
19833 2011-06-30  Richard Henderson  <rth@redhat.com>
19834
19835         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
19836         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
19837         * final.c (final_scan_insn): Look for it, and invoke
19838         dwarf2out_frame_debug before the insn if found.
19839
19840 2011-06-30  Richard Henderson  <rth@redhat.com>
19841
19842         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
19843         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
19844
19845 2011-06-30  Richard Henderson  <rth@redhat.com>
19846
19847         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
19848         Define a vector of this type.
19849         (regs_saved_in_regs): Use a VEC.
19850         (num_regs_saved_in_regs): Remove.
19851         (compare_reg_or_pc): New.
19852         (record_reg_saved_in_reg): Split out from...
19853         (dwarf2out_flush_queued_reg_saves): ... here.
19854         (clobbers_queued_reg_save): Update for VEC.
19855         (reg_saved_in): Likewise.
19856         (dwarf2out_frame_debug_init): Likewise.
19857         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
19858         (dwarf2out_frame_debug_cfa_register): Likewise.
19859
19860 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
19861
19862         PR tree-optimization/49572
19863         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
19864         type of the RHS instead of that of the LHS for the expression type.
19865
19866 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
19867
19868         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
19869         unconditionally.
19870
19871 2011-06-30  Richard Guenther  <rguenther@suse.de>
19872
19873         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
19874         * tree-ssa-structalias.c (create_variable_info_for): Do not
19875         add initial constraints for non-var-decls.  Properly handle
19876         globals in other ltrans partitions.
19877         (intra_create_variable_infos): Manually create constraints for
19878         the fake no-alias parameter.
19879         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
19880         and assert there are no clones.
19881
19882 2011-06-30  Richard Guenther  <rguenther@suse.de>
19883
19884         PR tree-optimization/46787
19885         * tree-data-ref.c (dr_address_invariant_p): Remove.
19886         (find_data_references_in_stmt): Invariant accesses are ok now.
19887         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
19888         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19889         invariant loads.
19890
19891 2011-06-30  Martin Jambor  <mjambor@suse.cz>
19892
19893         PR tree-optimization/49094
19894         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
19895         (build_accesses_from_assign): Use it.
19896
19897 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
19898
19899         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
19900         handling of BUILT_IN_ASSUME_ALIGNED.
19901
19902         PR debug/49364
19903         * dwarf2out.c (output_abbrev_section): Don't return early
19904         if abbrev_die_table_in_use is 1.
19905         (dwarf2out_finish): Instead don't call output_abbrev_section
19906         nor emit abbrev_section_label in that case.
19907
19908 2011-06-30  Nick Clifton  <nickc@redhat.com>
19909
19910         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
19911         for the V850E.
19912
19913 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
19914
19915         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
19916         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
19917
19918 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
19919
19920         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
19921         both pattern and original statements if necessary.
19922         (vect_transform_loop): Likewise.
19923         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
19924         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
19925         Mark the pattern statement only if the original statement doesn't
19926         have its own uses.
19927         (process_use): Call vect_mark_relevant with additional parameter.
19928         (vect_mark_stmts_to_be_vectorized): Likewise.
19929         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
19930         (vect_analyze_stmt): Handle both pattern and original statements
19931         if necessary.
19932         (vect_transform_stmt): Don't store vectorized pattern statement
19933         in the original statement.
19934         (vect_is_simple_use_1): Use related pattern statement only if the
19935         original statement is irrelevant.
19936         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
19937
19938 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
19939
19940         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
19941         option.
19942         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
19943         entry.
19944         (TARGET_AVX128_OPTIMAL): New definition.
19945         * config/i386/i386.c (initial_ix86_tune_features): Initialize
19946         X86_TUNE_AVX128_OPTIMAL entry.
19947         (ix86_option_override_internal): Enable the generation
19948         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
19949         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
19950         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
19951
19952 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
19953
19954         PR tree-optimization/49539
19955         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
19956         names by means of stmt_references_abnormal_ssa_name.
19957         (associate_plusminus): Call can_propagate_from before propagating
19958         from definition statements.
19959         (ssa_forward_propagate_and_combine): Remove superfluous newline.
19960
19961 2011-06-29  Richard Guenther  <rguenther@suse.de>
19962
19963         * doc/invoke.texi: Document -scev dump modifier.
19964         * tree-pass.h (TDF_SCEV): New dump flag.
19965         * tree-dump.c (dump_option_value_in): Add scev.
19966         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
19967         * tree-scalar-evolution.c: Likewise.
19968
19969 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
19970
19971         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
19972         (cxa_type_match): Correct declaration.
19973         (__gnu_unwind_pr_common): Reconstruct additional indirection
19974         when __cxa_type_match returns succeeded_with_ptr_to_base.
19975
19976 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19977
19978         PR rtl-optimization/49114
19979         * reload.c (struct replacement): Remove SUBREG_LOC member.
19980         (push_reload): Do not set it.
19981         (push_replacement): Likewise.
19982         (subst_reload): Remove dead code.
19983         (copy_replacements): Remove assertion.
19984         (copy_replacements_1): Do not handle SUBREG_LOC.
19985         (move_replacements): Likewise.
19986         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
19987         Detect subregs via recursive descent instead of via SUBREG_LOC.
19988
19989 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
19990
19991         * config/avr/avr.c (avr_encode_section_info): Dispatch to
19992         default_encode_section_info.
19993
19994 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
19995
19996         PR tree-optimization/49545
19997         * builtins.c (get_object_alignment_1): Update function comment.
19998         Do not use DECL_ALIGN for functions, but test
19999         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
20000         * fold-const.c (get_pointer_modulus_and_residue): Don't check
20001         for functions here.
20002         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
20003
20004 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
20005
20006         PR debug/49567
20007         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
20008         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
20009
20010 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
20011
20012         PR target/34734
20013         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
20014         about uninitialized data attributed 'progmem' from here...
20015         (avr_encode_section_info): ...to this new function.
20016         (TARGET_ENCODE_SECTION_INFO): New define.
20017         (avr_section_type_flags): For data in ".progmem.data", remove
20018         section flag SECTION_WRITE.
20019
20020 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
20021
20022         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
20023         _xmulhisi3_exit.
20024         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
20025         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
20026         (__umulhisi3): Ditto.
20027         * config/avr/avr.md (mulhisi3): New insn expender.
20028         (umulhisi3): New insn expender.
20029         (*mulhisi3_call): New insn.
20030         (*umulhisi3_call): New insn.
20031
20032 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
20033
20034         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
20035
20036 2011-06-28  Richard Henderson  <rth@redhat.com>
20037
20038         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
20039         all code and arguments that handled pushes.  Update all callers.
20040
20041 2011-06-28  Richard Henderson  <rth@redhat.com>
20042
20043         * config/arm/arm.c (arm_output_function_prologue): Don't call
20044         thumb1_output_function_prologue.
20045         (arm_expand_prologue): Avoid dead store.
20046         (number_of_first_bit_set): Use ctz_hwi.
20047         (thumb1_emit_multi_reg_push): New.
20048         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
20049         to emit the entire prologue as rtl.
20050         (thumb1_output_interwork): Split out from
20051         thumb1_output_function_prologue.
20052         (thumb1_output_function_prologue): Remove.
20053         (arm_attr_length_push_multi): Handle thumb1.
20054         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
20055         (prologue_thumb1_interwork): New.
20056         (*push_multi): Allow thumb1; use push_mult_memory_operand.
20057         * config/arm/predicates.md (push_mult_memory_operand): New.
20058
20059 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
20060
20061         * config/sparc/sync.md (*stbar): Delete.
20062         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
20063
20064 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
20065
20066         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
20067
20068 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20069
20070         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
20071         (TARGET_64BIT_DEFAULT): Define.
20072         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
20073         of tm_file.
20074         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
20075
20076 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
20077
20078         * common.opt (in_lto_p): New Variable entry.
20079         * flags.h (in_lto_p): Move to common.opt.
20080         * gcc.c: Include params.h.
20081         (set_option_handlers): Also use common_handle_option and
20082         target_handle_option.
20083         (main): Call global_init_params, finish_params and init_options_struct.
20084         * opts.c (debug_type_names): Move from toplev.c.
20085         (print_filtered_help): Access quiet_flag through opts pointer.
20086         (common_handle_option): Return early in the driver for some options.
20087         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
20088         opts pointer.
20089         * toplev.c (in_lto_p): Move to common.opt.
20090         (debug_type_names): Move to opts.c.
20091         * Makefile.in (OBJS): Remove opts.o.
20092         (OBJS-libcommon-target): Add opts.o.
20093         (gcc.o): Update dependencies.
20094
20095 2011-06-28  Kai Tietz  <ktietz@redhat.com>
20096
20097         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
20098
20099 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20100
20101         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
20102         with '=' constraint modifier.
20103         (*divdf3_vfp): Likewise.
20104         ("*mulsf3_vfp"): Likewise.
20105         ("*muldf3_vfp"): Likewise.
20106         ("*mulsf3negsf_vfp"): Likewise.
20107         ("*muldf3negdf_vfp"): Likewise.
20108
20109 2011-06-28  Nick Clifton  <nickc@redhat.com>
20110
20111         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
20112         relaxation when performing an incremental link.
20113
20114 2011-06-28  Kai Tietz  <ktietz@redhat.com>
20115
20116         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
20117         within BB from last to first.
20118
20119 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
20120
20121         * genattr-common.c: New.  Based on genattr.c.
20122         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
20123         (MOSTLYCLEANFILES): Add insn-attr-common.h.
20124         (opts.o): Update dependencies.
20125         (.PRECIOUS): Add insn-attr-common.h.
20126         (simple_rtl_generated_h): Add insn-attr-common.h.
20127         (build/genattr-common.o): New.
20128         (genprogrtl): Add attr-common.
20129         * genattr.c (main): Include insn-attr-common.h.  Don't generate
20130         definitions of DELAY_SLOTS or INSN_SCHEDULING.
20131         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
20132
20133 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
20134
20135         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
20136         avr-*-* and avr-*-rtems* targets.
20137
20138         * config/avr/elf.h: New file.
20139         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
20140         (TARGET_ASM_SELECT_SECTION): Define.
20141         (INIT_SECTION_ASM_OP): Undefine.
20142         (FINI_SECTION_ASM_OP): Undefine.
20143         (READONLY_DATA_SECTION_ASM_OP): Undefine.
20144         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
20145         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
20146         * config/avr/avr.h:
20147         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
20148         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
20149         (MAX_OFILE_ALIGNMENT): Move to elf.h.
20150         (STRING_LIMIT): Move to elf.h.
20151         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
20152         (ASM_DECLARE_OBJECT_NAME): Remove.
20153         (ESCAPES): Remove.
20154         (ASM_OUTPUT_SKIP): Remove.
20155         (DWARF2_DEBUGGING_INFO): Remove.
20156         (OBJECT_FORMAT_ELF): Remove.
20157         (USER_LABEL_PREFIX): Remove.
20158         (ASM_OUTPUT_EXTERNAL): Remove.
20159         (ASM_OUTPUT_ASCII): Remove.
20160         (TYPE_ASM_OP): Remove.
20161         (SIZE_ASM_OP): Remove.
20162         (WEAK_ASM_OP): Remove.
20163         (STRING_ASM_OP): Remove.
20164         (SET_ASM_OP): Remove.
20165         (ASM_WEAKEN_LABEL): Remove.
20166         (TYPE_OPERAND_FMT): Remove.
20167         (ASM_DECLARE_FUNCTION_SIZE): Remove.
20168         (ASM_FINISH_DECLARE_OBJECT): Remove.
20169         (NO_DOLLAR_IN_LABEL): Remove.
20170         (ASM_GENERATE_INTERNAL_LABEL): Remove.
20171         (ASM_OUTPUT_CASE_LABEL): Remove.
20172         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
20173         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
20174         (gas_output_ascii): Remove.
20175         (gas_output_limited_string): Remove.
20176         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
20177         * config/avr/avr-protos.h
20178         (gas_output_ascii): Remove prototye.
20179         (gas_output_limited_string): Remove prototype.
20180
20181 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
20182
20183         PR target/48637
20184         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
20185         asm operands.
20186
20187 2011-06-27  Jan Hubicka  <jh@suse.cz>
20188
20189         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
20190         node instead of references in node.
20191
20192 2011-06-27  Richard Henderson  <rth@redhat.com>
20193
20194         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
20195         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
20196         inside ifdef.
20197
20198 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
20199
20200         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
20201
20202         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
20203         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
20204         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
20205         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
20206         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
20207         (evaluate_stmt, execute_fold_all_builtins): Handle
20208         BUILT_IN_ASSUME_ALIGNED.
20209         * tree-ssa-dce.c (propagate_necessity): Likewise.
20210         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
20211         call_may_clobber_ref_p_1): Likewise.
20212         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
20213         (expand_builtin_assume_aligned): New function.
20214         * doc/extend.texi (__builtin_assume_aligned): Document.
20215
20216         PR debug/49544
20217         * cselib.c (promote_debug_loc): If cselib_preserve_constants
20218         and l has two DEBUG_INSN owned locs instead of just one, adjust
20219         the second location's setting_insn too.
20220
20221 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20222
20223         PR libmudflap/38738
20224         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
20225
20226 2011-06-27  Nick Clifton  <nickc@redhat.com>
20227
20228         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
20229         bit position of highest bit set into a count of the high zero bits.
20230
20231 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
20232
20233         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
20234
20235 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
20236
20237         PR lto/48492
20238         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
20239         to a NULL parent.
20240
20241 2011-06-27  Richard Guenther  <rguenther@suse.de>
20242
20243         PR tree-optimization/49394
20244         * passes.c (execute_one_pass): Restore current_pass after
20245         applying IPA transforms.
20246
20247 2011-06-27  Kai Tietz  <ktietz@redhat.com>
20248
20249         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
20250         out of type precision after operation.
20251         (find_bswap): Take for limit value the integer auto-promotion
20252         into account.
20253
20254 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
20255
20256         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
20257         forward scan as well.
20258
20259 2011-06-27  Tristan Gingold  <gingold@adacore.com>
20260
20261         PR target/44241
20262         * config/vms/vms-protos.h: New file.
20263         * config/vms/vms-crtlmap.map: New file.
20264         * config/vms/vms.c: New file.
20265         * config/vms/make-crtlmap.awk: New file.
20266         * config/vms/vms-crtl.h: File removed.
20267         * config/vms/vms-crtl-64.h: File removed.
20268         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
20269         * config/alpha/vms64.h: Do not include vms-crtl-64.h
20270         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
20271         clear some builtins on VMS.  Calls vms_patch_builtins.
20272         (avms_asm_output_external): Remove.
20273         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
20274         (struct crtl_name_spec): Remove
20275         (DO_CTRL_NAMES): Remove.
20276         * config/ia64/vms.h (struct crtl_name_spec): Remove
20277         (DO_CTRL_NAMES): Remove.
20278         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
20279         clear some builtins on VMS.  Calls vms_patch_builtins.
20280         (ia64_asm_output_external): Remove DO_CRTL_NAME.
20281         * config/ia64/vms64.h: Do not include vms-crtl-64.h
20282         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
20283
20284 2011-06-27  Tristan Gingold  <gingold@adacore.com>
20285
20286         * config/alpha/alpha.c (alpha_end_function): Always generate .end
20287         directive on VMS.
20288
20289 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
20290
20291         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
20292         the function receives nonlocal gotos.
20293
20294 2011-06-27  Richard Guenther  <rguenther@suse.de>
20295
20296         PR tree-optimization/49536
20297         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
20298         For non-scalar inner types use a scalar type according to
20299         the scalar inner mode.
20300
20301 2011-06-27  Richard Guenther  <rguenther@suse.de>
20302
20303         PR tree-optimization/49365
20304         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
20305
20306 2011-06-27  Richard Guenther  <rguenther@suse.de>
20307
20308         PR tree-optimization/49169
20309         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
20310         the alignment of function decls.
20311
20312 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
20313
20314         PR target/47997
20315         * config/darwin.c (darwin_mergeable_string_section): Place string
20316         constants in '.cstring' rather than '.const' when CF/NSStrings are
20317         active.
20318
20319 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
20320
20321         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
20322         (emit_save_register_window): Likewise.
20323         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
20324         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
20325         Swap back %o7/%i7 in register naming.
20326
20327 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
20328
20329         PR driver/49371
20330         * config/darwin.c (darwin_override_options): Improve warning when
20331         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
20332         is given with fpie/fPIE.
20333         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
20334         * config/darwin9.h (PIE_SPEC): New.
20335
20336 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
20337
20338         * timevar.c (timevar_print): Increase width for display of timevar
20339         name.
20340
20341 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
20342
20343         PR c++/46400
20344         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
20345         instead of TYPE_CHAIN for chain_next for types.
20346
20347 2011-06-24  Richard Henderson  <rth@redhat.com>
20348
20349         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
20350         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
20351         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
20352         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
20353         (sparc_flat_expand_prologue): Emit individual instructions
20354         instead of one of the above.
20355
20356 2011-06-24  Easwaran Raman  <eraman@google.com>
20357
20358         PR rtl-optimization/49429
20359         PR target/49454
20360         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
20361         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
20362         used to copy y into x.
20363         * calls.c (initialize_argument_information): Mark
20364         an argument addressable if it is passed by invisible reference.
20365         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
20366         if it is passed by reference.
20367
20368 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
20369
20370         PR rtl-optimization/49504
20371         * rtlanal.c (nonzero_bits1): Properly handle addition or
20372         subtraction of a pointer in Pmode if pointers extend unsigned.
20373         (num_sign_bit_copies1): Likewise.
20374
20375 2011-06-24  Martin Jambor  <mjambor@suse.cz>
20376
20377         PR tree-optimizations/49516
20378         * tree-sra.c (sra_modify_assign): Choose the safe path for
20379         aggregate copies if we also did scalar replacements.
20380
20381 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20382
20383         PR target/49335
20384         * config/arm/predicates.md (add_operator): New.
20385         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
20386
20387 2011-06-24  Andi Kleen  <ak@linux.intel.com>
20388
20389         * tree-sra.c (type_internals_preclude_sra_p): Add msg
20390         parameter. Split up ifs and report reason in *msg.
20391         (reject): Add.
20392         (find_var_candiate): Add msg variable.
20393         Split up ifs and report reason to reject.
20394         (find_param_candidates): Add msg variable.
20395         Pass msg to type_internals_preclude_sra_p.
20396
20397 2011-06-23  Jeff Law  <law@redhat.com>
20398
20399         PR middle-end/48770
20400         * reload.h (reload): Change to return a bool.
20401         * ira.c (ira): If requested by reload, run a fast DCE pass after
20402         reload has completed.  Fix comment typo.
20403         * reload1.c (need_dce): New file scoped static.
20404         (reload): Set reload_completed here.  Return whether or not a DCE
20405         pass after reload is needed.
20406         (delete_dead_insn): Set need_dce as needed.
20407
20408         PR middle-end/49465
20409         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
20410         to detect threading through joiner block.  If there was already
20411         an edge to the new target, then do not change the PHI nodes.
20412
20413 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
20414
20415         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
20416         get_pointer_alignment to see if base isn't sufficiently aligned.
20417
20418 2011-06-23  Jan Hubicka  <jh@suse.cz>
20419
20420         PR tree-optimize/49373
20421         * tree-pass.h (all_late_ipa_passes): Declare.
20422         * cgraphunit.c (init_lowered_empty_function): Fix properties.
20423         (cgraph_optimize): Execute late passes; remove unreachable funcions
20424         after materialization.
20425         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
20426         LTOing.
20427         * passes.c (all_late_ipa_passes): Declare.
20428         (dump_passes, register_pass): Handle late ipa passes.
20429         (init_optimization_passes): Move ipa_pta to late passes; schedule
20430         fixup_cfg at beggining of all_passes.
20431         (apply_ipa_transforms): New function.
20432         (execute_one_pass): When doing simple ipa pass, apply all transforms.
20433
20434 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
20435
20436         * params.c: Include common/common-target.h.  Don't include tm.h.
20437         (lang_independent_params): Move from toplev.c.
20438         (global_init_params): New.
20439         * params.h (global_init_params): Declare.
20440         * target.def (default_params): Move to common-target.def.
20441         * toplev.c (lang_independent_options): Remove.
20442         (lang_independent_params): Move to params.c.
20443         (general_init): Use global_init_params.
20444         * common/common-target.def (option_default_params): Move from
20445         target.def.
20446         * common/config/ia64/ia64-common.c: Include params.h.
20447         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
20448         from ia64.c.
20449         * common/config/rs6000/rs6000-common.c: Include params.h.
20450         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
20451         from rs6000.c.
20452         * common/config/sh/sh-common.c: Include params.h.
20453         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
20454         from sh.c.
20455         * common/config/spu/spu-common.c: Include params.h.
20456         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
20457         from spu.c.
20458         * config/ia64/ia64.c (ia64_option_default_params,
20459         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
20460         * config/rs6000/rs6000.c (rs6000_option_default_params,
20461         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
20462         * config/sh/sh.c (sh_option_default_params,
20463         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
20464         * config/spu/spu.c (spu_option_default_params,
20465         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
20466         * Makefile.in (OBJS): Remove params.o.
20467         (OBJS-libcommon-target): Add params.o.
20468         (params.o, $(common_out_object_file)): Update dependencies.
20469         * doc/tm.texi: Regenerate.
20470
20471 2011-06-23  Alan Modra  <amodra@gmail.com>
20472
20473         PR bootstrap/49383
20474         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
20475         invocation for 2011-06-09 changes.
20476
20477 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
20478
20479         PR libgomp/49490
20480         * omp-low.c (expand_omp_for_static_nochunk): Only
20481         use n ceil/ nthreads size for the first n % nthreads threads in the
20482         team instead of all threads except for the last few ones which
20483         get less work or none at all.
20484
20485         PR debug/49496
20486         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
20487         uses.
20488
20489 2011-06-22  Richard Guenther  <rguenther@suse.de>
20490
20491         PR tree-optimization/49493
20492         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
20493         Refer to the alias target of variables.
20494         (associate_varinfo_to_alias_1): Remove.
20495         (ipa_pta_execute): Do not associate aliases with anything.
20496         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
20497         (cgraph_function_node): Likewise.
20498         (cgraph_function_or_thunk_node): Likewise.
20499         (varpool_variable_node): Likewise.
20500
20501 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
20502
20503         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
20504         * config.gcc (arm*-*-linux*): Default to gnu tls.
20505         (arm*-*-*): Add --with-tls option.
20506         (all_defaults): Add 'tls'.
20507
20508 2011-06-22  Richard Henderson  <rth@redhat.com>
20509
20510         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
20511         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
20512         (dwarf2out_frame_debug_cfa_window_save): Rename from
20513         dwarf2out_window_save; make static.
20514         * tree.h (dwarf2out_window_save): Don't declare.
20515
20516         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
20517         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
20518         (emit_save_register_window): Rename from gen_save_register_window;
20519         emit the insn and add REG_CFA_* notes.
20520         (sparc_expand_prologue): Update to match.
20521         * config/sparc/sparc.md (save_register_window_1): Simplify from
20522         save_register_window<P:mode>.
20523
20524 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
20525
20526         PR target/49497
20527         * config/i386/i386.md (*lea_general_2): Always allow SImode.
20528         (*lea_general_2_zext): Likewise.
20529         (imul to lea peepholes): Use const359_operand and check
20530         TARGET_PARTIAL_REG_STALL.
20531
20532         * config/i386/predicates.md (const359_operand): New.
20533
20534 2011-06-22  Michael Matz  <matz@suse.de>
20535
20536         * cgraphunit.c (assemble_thunk): Use correct return type.
20537
20538 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
20539             Dmitry Melnik  <dm@ispras.ru>
20540
20541         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
20542         (neon_output_shift_immediate): Ditto.
20543         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
20544         prototype.
20545         (neon_output_shift_immediate): Ditto.
20546         * config/arm/neon.md (vashl<mode>3): Modified constraint.
20547         (vashr<mode>3_imm): New insn pattern.
20548         (vlshr<mode>3_imm): Ditto.
20549         (vashr<mode>3): Modified constraint.
20550         (vlshr<mode>3): Ditto.
20551         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
20552         predicate.
20553         (imm_for_neon_rshift_operand): Ditto.
20554         (imm_lshift_or_reg_neon): Ditto.
20555         (imm_rshift_or_reg_neon): Ditto.
20556
20557         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
20558
20559 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
20560
20561         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
20562         builtin calls even if likelyvalue is not CONSTANT.
20563         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
20564         Return get_value_for_expr of first operand
20565         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
20566         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
20567         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
20568         their non-checking counterparts.
20569         (call_may_clobber_ref_p_1): Likewise.
20570         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
20571         like their non-checking counterparts.
20572         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
20573         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
20574         like their non-checking counterparts.
20575         (find_func_clobbers): Likewise.
20576         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
20577         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
20578
20579         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
20580         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
20581         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
20582         of base type reference as argument.
20583         (resolve_addr_in_expr): Likewise.  Fix keep computation.
20584         (convert_descriptor_to_signed): Renamed to...
20585         (convert_descriptor_to_mode): ... this.  For wider types convert to
20586         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
20587         (typed_binop): New function.
20588         (scompare_loc_descriptor, ucompare_loc_descriptor,
20589         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
20590         default to unsigned type instead of signed.
20591
20592         PR debug/47858
20593         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
20594         (gimple_build_debug_source_bind_stat): New prototype.
20595         (gimple_build_debug_source_bind): Define.
20596         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
20597         gimple_debug_source_bind_get_value,
20598         gimple_debug_source_bind_get_value_ptr,
20599         gimple_debug_source_bind_set_var,
20600         gimple_debug_source_bind_set_value): New inlines.
20601         * gimple.c (gimple_build_debug_source_bind_stat): New function.
20602         * gimple-pretty-print.c (dump_gimple_debug): Handle
20603         GIMPLE_DEBUG_SOURCE_BIND.
20604         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
20605         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
20606         * tree-parloops.c (eliminate_local_variables,
20607         separate_decls_in_region): Likewise.
20608         (separate_decls_in_region_debug): Renamed from
20609         separate_decls_in_region_debug_bind.  Handle
20610         gimple_debug_source_bind_p.
20611         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
20612         prototypes.
20613         (DECL_HAS_DEBUG_ARGS_P): Define.
20614         (struct tree_function_decl): Add has_debug_args_flag field.
20615         * tree.c (debug_args_for_decl): New variable.
20616         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
20617         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
20618         (rewrite_debug_stmt_uses): New function.
20619         (rewrite_stmt): Use it to rewrite debug stmt uses.
20620         * rtl.def (DEBUG_PARAMETER_REF): New.
20621         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
20622         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
20623         DEBUG_PARAMETER_REF.
20624         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
20625         * print-rtl.c (print_rtx): Likewise.
20626         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
20627         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
20628         debug stmts in the first bb.
20629         * tree-inline.c (remap_ssa_name): If remapping default def
20630         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
20631         a source bind debug stmt.
20632         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
20633         (maybe_move_debug_stmts_to_successors): Likewise.
20634         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
20635         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
20636         debug args vector from old_decl to new_decl.
20637         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
20638         or modified parameters, add debug bind stmts before call
20639         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
20640         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
20641         on DECL_DEBUG_EXPRs from debug args vector.
20642         (expand_debug_source_expr): New function.
20643         (expand_debug_locations): Use it for source bind insns.
20644         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
20645         * var-tracking.c (prepare_call_arguments): Add debug args
20646         to call_arguments if any.
20647         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
20648         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
20649         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
20650         (get_ref_die_offset, parameter_ref_descriptor): New functions.
20651         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
20652         (gen_subprogram_die): Handle parameters identified by
20653         DEBUG_PARAMETER_REF.
20654
20655 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
20656
20657         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
20658         * doc/install.texi (Configuration): Document --with-tls.
20659         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
20660         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
20661         (arm_tls_descseq_addr): New.
20662         (legitimize_tls_address): Add tlsdesc support.
20663         (arm_cannot_copy_insn_p): Check for tlscall.
20664         (arm_emit_tls_decoration): Likewise.
20665         * config/arm/arm.h (TARGET_GNU2_TLS): New.
20666         (OPTION_DEFAULT_SPECS): Add with-tls support.
20667         * config/arm/arm.md (R1_REGNUM): Define.
20668         (tlscall): New.
20669         * config/arm/arm.opt (tls_type): New enumeration type and values.
20670         (mtls-dialect): New switch.
20671         * config/arm/arm-opts.h (enum tls_type): New.
20672
20673 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
20674
20675         * attribs.c (register_attribute): Added assert to check that all
20676         attribute specs are registered with a name that is not empty and
20677         does not start with '_'.
20678         (decl_attributes): Avoid the lookup of the "naked" attribute spec
20679         if the function has no attributes.
20680         * tree.c (is_attribute_with_length_p): Removed.
20681         (is_attribute_p): Removed.
20682         (private_is_attribute_p): New.
20683         (private_lookup_attribute): New.
20684         (lookup_attribute): Removed.
20685         (lookup_ident_attribute): New.
20686         (remove_attribute): Require the first argument to be in the form
20687         'text', not '__text__'.  Updated asserts.
20688         (merge_attributes): Use lookup_ident_attributes instead of
20689         lookup_attribute.
20690         (merge_dllimport_decl_attributes): Use remove_attribute.
20691         (attribute_list_contained): Likewise.
20692         (attribute_list_equal): Immediately return 1 if the arguments are
20693         identical pointers.
20694         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
20695         'int'.  Require the first argument to be in the form 'text', not
20696         '__text__'.  Require the second argument to be an identifier.
20697         (lookup_attribute): Made inline.  Require the first argument to be
20698         in the form 'text', not '__text__'.
20699         (private_is_attribute_p, private_lookup_attribute): New.
20700         Updated comments.
20701
20702 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
20703
20704         * builtins.c: Add sync_ or SYNC__ to builtin names.
20705         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
20706         * omp-low.c: Add sync_ or SYNC__ to builtin names.
20707
20708 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
20709
20710         PR target/33049
20711         * config/avr/avr.md (extzv): New expander.
20712         (*extzv): New insn.
20713         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
20714         * config/avr/constraints.md (C04): New constraint.
20715         * doc/md.texi (Machine Constraints): Document it.
20716
20717 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
20718
20719         PR middle-end/49489
20720         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
20721         unsignedp argument instead of 1 for clrsb_optab.
20722         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
20723         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
20724         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
20725         * optabs.c (widen_leading): Call widen_operand and expand_unop
20726         with 0 as unsignedp argument instead of 1 for clrsb_optab.
20727         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
20728
20729 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
20730
20731         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
20732
20733 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
20734
20735         * gensupport.c (add_define_attr): New static function.
20736         (is_predicable): Allow multi-alternative lists for the "predicable"
20737         attribute.
20738         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
20739         (process_one_cond_exec): Call alter_attrs_for_insn.
20740         * doc/md.texi (Defining Attributes): Mention some standard names.
20741         (Conditional Execution): Update documentation for "predicable".
20742
20743         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
20744         __builtin_clrsbll): Document.
20745         * doc/rtl.texi (clrsb): New entry.
20746         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
20747         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
20748         (expand_unop): Handle clrsb_optab.
20749         (init_optabs): Initialize it.
20750         * optabs.h (enum optab_index): New entry OTI_clrsb.
20751         (clrsb_optab): Define.
20752         * genopinit.c (optabs): Add an entry for it.
20753         * builtins.c (expand_builtin): Handle clrsb builtin functions.
20754         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
20755         BUILT_IN_CLRSBLL): New.
20756         * rtl.def (CLRSB): New code.
20757         * dwarf2out.c (mem_loc_descriptor): Handle it.
20758         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
20759         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
20760         and popcount.
20761         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
20762         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
20763         (__ctzDI2): Move declaration.
20764         * config/bfin/bfin.md (clrsbsi2): New expander.
20765         (signbitssi2): Use the CLRSB rtx.
20766         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
20767         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
20768
20769 2011-06-21  Richard Guenther  <rguenther@suse.de>
20770
20771         * ipa-inline-transform.c (inline_transform): Fix previous change.
20772
20773 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
20774
20775         PR tree-optimization/49478
20776         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
20777         with constant operand.
20778
20779 2011-06-21  Richard Guenther  <rguenther@suse.de>
20780
20781         * ipa-inline-transform.c (inline_transform): Fix typo.
20782
20783 2011-06-21  Richard Guenther  <rguenther@suse.de>
20784
20785         PR tree-optimization/49483
20786         * tree-vect-stmts.c (vectorizable_assignment): Also handle
20787         VIEW_CONVERT_EXPR conversions.
20788
20789 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
20790
20791         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
20792         * config/avr/avr-tables.opt: New file (generated).
20793         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
20794         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
20795         avr-mcus.def.
20796         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
20797         (avr_option_override): Don't process -mmcu= argument here.  Set
20798         avr_current_device using avr_mcu_index.
20799         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
20800         * config/avr/avr.opt (mmcu=): Use Enum.
20801         * config/avr/t-avr (avr-devices.o): Update dependencies.
20802         ($(srcdir)/config/avr/avr-tables.opt): New.
20803         * target.def (help): Remove.
20804         * doc/tm.texi.in (TARGET_HELP): Remove.
20805         * doc/tm.texi: Regenerate.
20806         * opts.c: Don't include target.h.
20807         (common_handle_option): Don't call targetm.help.
20808         * system.h (TARGET_HELP): Poison.
20809         * Makefile.in (opts.o): Update dependencies.
20810
20811 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20812
20813         * config/usegld.h: New file.
20814         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
20815         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
20816         (LIB_SPEC): Likewise.  Search /lib.
20817         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
20818         (RDYNAMIC_SPEC): Handle GNU ld.
20819         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
20820         Define.
20821         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
20822         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
20823         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
20824         (STACK_CHECK_STATIC_BUILTIN): Define.
20825         * config/sol2.opt (compat-bsd): Remove.
20826         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
20827         * config/sol2-bi.h: New file.
20828         * config/sol2-gld.h: Remove.
20829         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
20830         (NO_DBX_BNSYM_ENSYM): Remove.
20831         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
20832         (STACK_CHECK_STATIC_BUILTIN): Remove.
20833         Test USE_GLD instead of TARGET_GNU_LD.
20834         * config/i386/sol2-10.h: Rename to ...
20835         * config/i386/sol2-bi.h .. this.
20836         (SUBTARGET_EXTRA_SPECS): Redefine.
20837         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
20838         (MULTILIB_DEFAULTS): Remove.
20839         (DEFAULT_ARCH32_P): Define.
20840         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
20841         (ARCH64_SUBDIR): Define.
20842         Test USE_GLD instead of TARGET_GNU_LD.
20843         (I386_EMULATION): Rename to ...
20844         (ARCH32_EMULATION): ... this.
20845         (X86_64_EMULATION): Rename to ...
20846         (ARCH64_EMULATION): ... this.
20847         (TARGET_LD_EMULATION): Remove.
20848         (LINK_ARCH_SPEC): Remove.
20849         * config/i386/sol2-gas.h: Remove.
20850         * config/i386/t-sol2-10: Rename to ...
20851         * config/i386/t-sol2-64: ... this.
20852         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
20853         (AS_SPARC64_FLAG): Define.
20854         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
20855         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
20856         depending on TARGET_CPU_DEFAULT.
20857         (CPP_CPU_SPEC): Redefine.
20858         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
20859         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
20860         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
20861         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
20862         ASM_ARCH_DEFAULT_SPEC): Redefine.
20863         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
20864         LINK_ARCH_DEFAULT_SPEC.
20865         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
20866         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
20867         (ARCH64_SUBDIR): Define.
20868         (LINK_ARCH64_SPEC): Redefine.
20869         (CC1_SPEC): Redefine.
20870         (OPTION_DEFAULT_SPECS): Redefine.
20871         (MULTILIB_DEFAULTS): Define.
20872         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
20873         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
20874         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
20875         (NO_DBX_BNSYM_ENSYM): Remove.
20876         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
20877         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
20878         (TARGET_ASM_NAMED_SECTION): Likewise.
20879         (STACK_CHECK_STATIC_BUILTIN): Remove.
20880         * config/sparc/sol2-bi.h: Remove.
20881         * config/sparc/sol2-gas-bi.h: Remove.
20882         * config/sparc/sol2-gas.h: Remove.
20883         * config/sparc/sol2-gld-bi.h: Remove.
20884         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
20885         common parts ...
20886         (*-*-solaris2*): ... here.
20887
20888 2011-06-21  Christian Bruel  <christian.bruel@st.com>
20889
20890         PR other/43564
20891         * ipa-inline.c (can_inline_edge_p): Check
20892         !DECL_DISREGARD_INLINE_LIMITS.
20893
20894 2011-06-21  Christian Bruel  <christian.bruel@st.com>
20895
20896         PR middle-end/49139
20897         * cgraphunit.c (process_function_and_variable_attributes): warn when
20898         always_inline functions that are not inline.
20899         * ipa-inline-transform.c (inline_transform): Always call
20900         optimize_inline.
20901         * tree-inline.c (tree_inlinable_function_p): Use error instead
20902         of sorry.
20903         (expand_call_inline): Likewise.
20904
20905 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
20906
20907         * Makefile.in (dg_target_exps): Set.
20908         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
20909         instead of 7, try to divide it more evenly.
20910
20911 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
20912
20913         PR target/49089
20914         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
20915         (avx256_split_unaligned_store): New definition.
20916         (ix86_option_override_internal): Enable avx256 unaligned load/store
20917         splitting only when avx256_split_unaligned_load/store is set.
20918
20919 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
20920
20921         * regrename.c (scan_rtx_reg): Handle the case where we write to an
20922         open chain in a smaller mode without failing the entire block.
20923
20924 2011-06-21  Alan Modra  <amodra@gmail.com>
20925
20926         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
20927         CONST high part large-toc address.
20928         (rs6000_tls_referenced_p): Make static.
20929         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
20930
20931 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20932
20933         PR target/49385
20934         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
20935         one of the operands is a register.
20936
20937 2011-06-20  Kai Tietz  <ktietz@redhat.com>
20938
20939         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
20940         operations in combination with binary and.
20941
20942 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
20943
20944         * regrename.c (do_replace): Don't update notes.
20945
20946 2011-06-20  Alan Modra  <amodra@gmail.com>
20947
20948         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
20949         of toc-relative address in CONST.
20950         (rs6000_delegitimize_address): Recognize changed address.
20951         (rs6000_legitimize_reload_address): Likewise.
20952         (rs6000_emit_move): Don't force these constants to memory.
20953         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
20954         toc-relative address in CONST.
20955         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
20956         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
20957
20958 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
20959
20960         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
20961         (count_trailing_zeros): Likewise.
20962
20963 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
20964
20965         PR other/49325
20966         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
20967         .init_array can be used with .ctors on targets.
20968         * configure: Regenerated.
20969
20970 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
20971
20972         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
20973         if the element type is volatile.
20974
20975 2011-06-18  Jan Hubicka  <jh@suse.cz>
20976
20977         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
20978         extra name aliases.
20979         (lto_symtab_resolve_can_prevail_p): Likewise.
20980         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
20981         * cgraphbuild.c (record_reference): Remove extra body alias code.
20982         (mark_load): Likewise.
20983         (mark_store): Likewise.
20984         * cgraph.h (varpool_node): Remove extra_name filed;
20985         add alias_of and extraname_alias.
20986         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
20987         (varpool_alias_aliased_node): New inline function.
20988         (varpool_variable_node): New function.
20989         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
20990         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
20991         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
20992         (input_varpool_node): Likewise.
20993         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
20994         (varpool_externally_visible_p): Remove extra body alias code.
20995         (function_and_variable_visibility): Likewise.
20996         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
20997         (ipa_pta_execute): Use it.
20998         * varpool.c (varpool_remove_node): Remove extra name alias code.
20999         (varpool_mark_needed_node): Likewise.
21000         (varpool_analyze_pending_decls): Analyze aliases.
21001         (assemble_aliases): New functoin.
21002         (varpool_assemble_decl): Use it.
21003         (varpool_create_variable_alias): New function.
21004         (varpool_extra_name_alias): Rewrite.
21005         (varpool_for_node_and_aliases): New function.
21006
21007 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
21008
21009         PR target/49411
21010         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
21011         last_arg_constant and last argument doesn't match its predicate,
21012         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
21013         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
21014         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
21015         spelling of error message.
21016         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
21017         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
21018         const_0_to_255_operand instead of const_int_operand.
21019
21020         Revert:
21021         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
21022
21023         * config/i386/sse.md (blendbits): Remove mode attribute.
21024         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
21025         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
21026         Check integer value of operand 3 in insn constraint.
21027
21028 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
21029
21030         PR rtl-optimization/48542
21031         * reload.c (find_equiv_reg): Stop looking when finding a
21032         setjmp-type call.
21033         * reload1.c (reload_as_needed): Invalidate all reload
21034         registers when crossing a setjmp-type call.
21035
21036 2011-06-16  Jeff Law  <law@redhat.com>
21037
21038         * tree-ssa-threadupdate.c (struct redirection_data): New field
21039         intermediate_edge.
21040         (THREAD_TARGET2): Define.
21041         (redirection_data_eq): Also check that the intermediate edge is equal.
21042         (lookup_redirection_data): Drop useless argument.  Extract the
21043         outgoing_edge and intermediate edge from E.  Callers updated.
21044         (copy_phi_args, update_destination_phis): New functions.
21045         (fix_duplicate_block_edges): Likewise.
21046         (create_edge_and_update_destination_phis): Duplicate all the edges
21047         hung off e->aux.  Use copy_phi_args.
21048         (create_duplicates): Use fix_duplicate_block_edges.
21049         (fixup_template_block): Likewise.
21050         (redirect_edges): If necessary, redirect the joiner block's incoming
21051         edge to the duplicate of the joiner block.
21052         (thread_block): Don't muck up loops when threading through a joiner
21053         block.
21054         (thread_through_loop_header): Handle threading through a joiner block.
21055         (mark_threaded_blocks, register_jump_thread): Likewise.
21056         * tree-flow.h (register_jump_thread): Add new argument.  Callers
21057         updated.
21058         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
21059         (thread_across_edge): Handle threading through a joiner block.
21060
21061 2011-06-16  Martin Jambor  <mjambor@suse.cz>
21062
21063         PR tree-optimization/49343
21064         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
21065         calculate offset, provide 2nd operand for the new COMPONENT_REF.
21066
21067 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
21068
21069         * config/darwin-protos.h (machopic_select_rtx_section): Move to
21070         inside RTX_CODE ifdef.
21071
21072 2011-06-16  Tom de Vries  <tom@codesourcery.com>
21073
21074         PR target/45098
21075         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
21076         Disallow NULL pointer for pointer arithmetic.
21077
21078 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21079
21080         PR target/49398
21081         Revert.
21082         2011-06-10  Wei Guozhi  <carrot@google.com>
21083
21084         PR target/45335
21085         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
21086         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
21087         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
21088         related peephole2.
21089         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
21090         related peephole2.
21091         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
21092         (arm_legitimate_ldrd_p): New prototype.
21093         (arm_output_ldrd): New prototype.
21094         * config/arm/arm.c (arm_check_ldrd_operands): New function.
21095         (arm_legitimate_ldrd_p): New function.
21096         (arm_output_ldrd): New function.
21097
21098 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
21099
21100         PR middle-end/46500
21101         * doc/tm.texi.in: Update Copyright date.
21102         * doc/tm.texi: Regenerate.
21103         * targhooks.c (default_setup_incoming_varargs): Replace
21104         CUMULATIVE_ARGS* argument type with cumulative_args_t.
21105         (default_pretend_outgoing_varargs_named): Likewise.
21106         (hook_pass_by_reference_must_pass_in_stack): Likewise.
21107         (hook_callee_copies_named): Likewise.
21108         (default_function_arg_advance): Likewise.
21109         (default_function_arg): Likewise.
21110         (default_function_incoming_arg): Likewise.
21111         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
21112         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
21113         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
21114         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
21115         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
21116         * targhooks.h (default_setup_incoming_varargs): Likewise.
21117         (default_pretend_outgoing_varargs_named): Likewise.
21118         (hook_pass_by_reference_must_pass_in_stack): Likewise.
21119         (hook_callee_copies_named): Likewise.
21120         (default_function_arg_advance): Likewise.
21121         (default_function_arg): Likewise.
21122         (default_function_incoming_arg): Likewise.
21123         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
21124         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
21125         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
21126         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
21127         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
21128         * target.def (pass_by_reference): Likewise.
21129         (setup_incoming_varargs, strict_argument_naming): Likewise.
21130         (pretend_outgoing_varargs_named, callee_copies): Likewise.
21131         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
21132         (function_incoming_arg): Likewise.
21133         * target.h: Don't include "tm.h" .
21134         (cumulative_args_t): New typedef.
21135         [GCC_TM_H] (get_cumulative_args): New static inline function.
21136         [GCC_TM_H] (pack_cumulative_args): Likewise.
21137         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
21138         argument type with cumulative_args_t.
21139         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
21140         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
21141         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
21142         (frv_arg_partial_bytes, frv_function_arg): Likewise.
21143         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
21144         (frv_function_arg_1): Likewise.
21145         * config/s390/s390.c (s390_pass_by_reference): Likewise.
21146         (s390_function_arg_advance, s390_function_arg): Likewise.
21147         * config/m32c/m32c.c (m32c_function_arg): Likewise.
21148         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
21149         (m32c_strict_argument_naming): Likewise.
21150         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
21151         (spu_function_arg_advance): Likewise.
21152         (spu_setup_incoming_varargs): Likewise.  Make static.
21153         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
21154         Remove prototype.
21155         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
21156         CUMULATIVE_ARGS* argument type with cumulative_args_t.
21157         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
21158         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
21159         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
21160         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
21161         (mep_pass_by_reference, mep_function_arg): Likewise.
21162         (mep_function_arg_advance): Likewise.
21163         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
21164         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
21165         (m32r_function_arg, m32r_function_arg_advance): Likewise.
21166         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
21167         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
21168         (ix86_function_arg, ix86_pass_by_reference): Likewise.
21169         (ix86_setup_incoming_varargs): Likewise.
21170         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
21171         (sh_strict_argument_naming): Likewise.
21172         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
21173         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
21174         (sh_function_arg_advance, sh_function_arg): Likewise.
21175         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
21176         (pdp11_function_arg_advance): Likewise.
21177         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
21178         Likewise.
21179         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
21180         * config/avr/avr.c (avr_function_arg): Likewise.
21181         (avr_function_arg_advance): Likewise.
21182         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
21183         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
21184         (xtensa_function_arg_1): Likewise.
21185         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
21186         Likewise.
21187         (xstormy16_function_arg): Likewise.
21188         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
21189         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
21190         (fr30_function_arg_advance): Likewise.
21191         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
21192         (lm32_function_arg, lm32_function_arg_advance): Likewise.
21193         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
21194         (moxie_function_arg, moxie_function_arg_advance): Likewise.
21195         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
21196         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
21197         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
21198         (cris_function_arg, cris_function_incoming_arg): Likewise.
21199         (cris_function_arg_advance, cris_function_arg_1): Likewise.
21200         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
21201         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
21202         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
21203         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
21204         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
21205         (mn10300_arg_partial_bytes): Likewise.
21206         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
21207         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
21208         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
21209         (ia64_function_arg_1): Likewise.
21210         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
21211         (m68k_function_arg): Likewise.
21212         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
21213         (rs6000_function_arg, setup_incoming_varargs): Likewise.
21214         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
21215         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
21216         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
21217         (picochip_arg_advance): Likewise.
21218         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
21219         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
21220         (mcore_function_arg_advance): Likewise.
21221         * config/score/score.c (score_pass_by_reference): Likewise.
21222         (score_function_arg_advance): Likewise.
21223         (score_arg_partial_bytes): Likewise.  Make static.
21224         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
21225         * config/arm/arm.c (arm_arg_partial_bytes): Replace
21226         CUMULATIVE_ARGS* argument type with cumulative_args_t.
21227         (arm_function_arg, arm_function_arg_advance): Likewise.
21228         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
21229         * config/pa/pa.c (pa_pass_by_reference): Likewise.
21230         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
21231         (pa_function_arg): Likewise.
21232         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
21233         (mips_function_arg, mips_function_arg_advance): Likewise.
21234         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
21235         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
21236         * config/vax/vax.c (vax_function_arg): Likewise.
21237         (vax_function_arg_advance): Likewise.
21238         * config/h8300/h8300.c (h8300_function_arg): Likewise.
21239         (h8300_function_arg_advance): Likewise.
21240         * config/v850/v850.c (v850_pass_by_reference): Likewise.
21241         (v850_strict_argument_naming, v850_function_arg): Likewise.
21242         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
21243         (v850_setup_incoming_varargs): Likewise.
21244         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
21245         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
21246         (mmix_function_arg, mmix_pass_by_reference): Likewise.
21247         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
21248         with const void *.
21249         * config/bfin/bfin.c (setup_incoming_varargs): Replace
21250         CUMULATIVE_ARGS* argument type with cumulative_args_t.
21251         (bfin_function_arg_advance, bfin_function_arg): Likewise.
21252         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
21253         * calls.c (emit_call_1): Change type of args_so_far to
21254         cumulative_args_t.  Changed all callers.
21255         (initialize_argument_information): Likewise.
21256         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
21257         * dse.c (get_call_args): Likewise.
21258         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
21259         * function.c (pass_by_reference, reference_callee_copied): Likewise.
21260         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
21261         New member args_so_far_v.  Changed all users.
21262         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
21263         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
21264         * config/mips/mips.c (mips_output_args_xfer): Likewise.
21265         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
21266         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
21267         * config/microblaze/microblaze.c (microblaze_expand_prologue):
21268         Likewise.
21269         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
21270         m32r_pass_by_reference.
21271
21272 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
21273
21274         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
21275         argument to be a VEC of statements.
21276         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
21277         assert that pattern statements have to have their vector type set.
21278         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
21279         Change the first argument to be a VEC of statements.  Update
21280         documentation.
21281         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
21282         (vect_handle_widen_mult_by_const): New function.
21283         (vect_recog_widen_mult_pattern):  Change the first argument to be a
21284         VEC of statements.  Update documentation.  Check that the constant is
21285         INTEGER_CST.  Support multiplication by a constant that fits an
21286         intermediate type - call vect_handle_widen_mult_by_const.
21287         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
21288         call.  Handle additional pattern statements if necessary.
21289
21290 2011-06-16  Nick Clifton  <nickc@redhat.com>
21291
21292         PR target/49427
21293         * config.gcc: Set cpu_type to v850 for any V850 architecture.
21294         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
21295         md_file, extra_modes, out_file and extra_options are these are all
21296         deduced from cpu_type.
21297
21298 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
21299
21300         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
21301         truncation mask to 63.
21302
21303 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
21304
21305         PR target/49313
21306         PR target/29524
21307         * longlong.h: Add AVR support:
21308         (count_leading_zeros): New macro.
21309         (count_trailing_zeros): New macro.
21310         (COUNT_LEADING_ZEROS_0): New macro.
21311         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
21312         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
21313         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
21314         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
21315         (LIB2FUNCS_EXCLUDE): Add _clz.
21316         * config/avr/libgcc.S (XCALL): Move up in file.
21317         (XJMP): New C Macro.
21318         (DEFUN): New asm macro.
21319         (ENDF): New asm macro.
21320         (__ffssi2): New function.
21321         (__ffshi2): New function.
21322         (__loop_ffsqi2): New function.
21323         (__ctzsi2): New function.
21324         (__ctzhi2): New function.
21325         (__clzdi2): New function.
21326         (__clzsi2): New function.
21327         (__clzhi2): New function.
21328         (__paritydi2): New function.
21329         (__paritysi2): New function.
21330         (__parityhi2): New function.
21331         (__parityqi2): New function.
21332         (__popcounthi2): New function.
21333         (__popcountsi2): New function.
21334         (__popcountdi2): New function.
21335         (__popcountqi2): New function.
21336         (__bswapsi2): New function.
21337         (__bswapdi2): New function.
21338         (__ashldi3): New function.
21339         (__ashrdi3): New function.
21340         (__lshrdi3): New function.
21341         Fix suspicous lines.
21342
21343 2011-06-16  Richard Guenther  <rguenther@suse.de>
21344
21345         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
21346         the same as x != 0.
21347         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
21348         to (bool) X & 1.
21349         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
21350         equality compares against zero for the lower bit.
21351
21352 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
21353
21354         PR tree-optimization/49419
21355         * tree-vrp.c (execute_vrp): Call init_range_assertions
21356         before estimate_numbers_of_iterations, call
21357         free_number_of_iterations_estimates before calling
21358         remove_range_assertions.
21359
21360 2011-06-16  Revital Eres  <revital.eres@linaro.org>
21361
21362         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
21363         (struct partial_schedule): Add rows_length field.
21364         (verify_partial_schedule): Check rows_length.
21365         (ps_insert_empty_row): Handle rows_length.
21366         (create_partial_schedule): Likewise.
21367         (free_partial_schedule): Likewise.
21368         (reset_partial_schedule): Likewise.
21369         (create_ps_insn): Remove rest_count argument.
21370         (remove_node_from_ps): Update rows_length.
21371         (add_node_to_ps): Update rows_length and call create_ps_insn
21372         without passing row_rest_count.
21373         (rotate_partial_schedule): Update rows_length.
21374
21375 2011-06-16  Revital Eres  <revital.eres@linaro.org>
21376
21377         * ddg.c (add_intra_loop_mem_dep): New function.
21378         (build_intra_loop_deps): Call it.
21379
21380 2011-06-13  Jeff Law  <law@redhat.com>
21381
21382         * df-problems.c (df_lr_local_compute): Manually CSE
21383         PIC_OFFSET_TABLE_REGNUM.
21384         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
21385         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
21386
21387 2011-06-13  Jan Hubicka  <jh@suse.cz>
21388
21389         * cgraphunit.c (handle_alias_pairs): New function.
21390         (cgraph_finalize_compilation_unit): Use it.
21391         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
21392         as externally visible.
21393
21394 2011-06-15  Richard Guenther  <rguenther@suse.de>
21395
21396         * expr.c (expand_expr_real_2): Reduce all integral types to
21397         bitfield precision.
21398         (expand_expr_real_1): Likewise.
21399
21400 2011-06-15  Martin Jambor  <mjambor@suse.cz>
21401
21402         PR tree-optimization/48613
21403         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
21404         ipa_node_params_vector is NULL.
21405
21406 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
21407
21408         PR debug/49382
21409         * dwarf2out.c (dw_loc_list_node): Add force field.
21410         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
21411         location in the list, even if it is modified before first real insn.
21412         (output_loc_list): Emit empty ranges with force flag set.
21413         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
21414
21415 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
21416
21417         PR target/49349
21418         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
21419         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
21420         above a fence.  Update comments.
21421         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
21422         placed just above it.  Do not allow NULL place_to_insert.
21423
21424 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
21425
21426         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
21427         (slpeel_tree_peel_loop_to_edge): Don't call
21428         remove_dead_stmts_from_loop.
21429         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
21430         remove irrelevant pattern statements.  For irrelevant statements
21431         check if it is the last statement of a detected pattern, use
21432         corresponding pattern statement instead.
21433         (destroy_loop_vec_info): No need to remove pattern statements,
21434         only free stmt_vec_info.
21435         (vect_transform_loop): For irrelevant statements check if it is
21436         the last statement of a detected pattern, use corresponding
21437         pattern statement instead.
21438         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
21439         pattern statements.  Set basic block for the new statement.
21440         (vect_pattern_recog): Update documentation.
21441         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
21442         operands of pattern statements.
21443         (vectorizable_call): Fix printing.  In case of a pattern statement
21444         use the lhs of the original statement when creating a dummy
21445         statement to replace the original call.
21446         (vect_analyze_stmt): For irrelevant statements check if it is
21447         the last statement of a detected pattern, use corresponding
21448         pattern statement instead.
21449         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
21450         statements use gsi of the original statement.
21451
21452 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
21453
21454         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
21455         common/common-target-def.h.
21456         * target.def (default_target_flags, handle_option,
21457         supports_split_stack, optimization_table, init_struct,
21458         except_unwind_info, unwind_tables_default, have_named_sections):
21459         Move to common/common-target.def.
21460         * target.h (enum opt_levels, struct default_options): Move to
21461         common/common-target.h.
21462         * targhooks.c (default_except_unwind_info,
21463         dwarf2_except_unwind_info, sjlj_except_unwind_info,
21464         default_target_handle_option, empty_optimization_table): Move to
21465         common/common-targhooks.c.
21466         * targhooks.h (default_except_unwind_info,
21467         dwarf2_except_unwind_info, sjlj_except_unwind_info,
21468         default_target_handle_option, empty_optimization_table): Move to
21469         common/common-targhooks.h.
21470         * common/common-target-def.h: Include common/common-targhooks.h.
21471         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
21472         defined.
21473         * common/common-target.def (handle_option, option_init_struct,
21474         option_optimization_table, default_target_flags,
21475         except_unwind_info, supports_split_stack, unwind_tables_default,
21476         have_named_sections): Move from target.def.
21477         (HOOK_PREFIX): Undefine at end of file.
21478         * common/common-target.h: Include input.h.
21479         (enum opt_levels, struct default_options): Move from target.h.
21480         * common/common-targhooks.c, common/common-targhooks.h: New.
21481         * config.gcc (target_has_targetm_common): Default to yes.
21482         (moxie*): Set target_has_targetm_common=no.
21483         (hppa*-*-*): Don't set target_has_targetm_common=yes.
21484         * doc/tm.texi: Regenerate.
21485         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
21486         (C_TARGET_DEF_H): Add common/common-targhooks.h.
21487         (GCC_OBJS): Remove vec.o.
21488         (OBJS): Remove hooks.o and vec.o.
21489         (OBJS-libcommon-target): Add vec.o, hooks.o and
21490         common/common-targhooks.o.
21491         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
21492         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
21493         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
21494         cfglayout.o, $(out_object_file), $(common_out_object_file)):
21495         Update dependencies.
21496         (common/common-targhooks.o): New.
21497         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
21498         * common/config/pa/pa-common.c: Include more headers.  Take
21499         copyright dates from pa.c.
21500         (pa_option_optimization_table, pa_handle_option,
21501         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
21502         TARGET_HANDLE_OPTION): Move from pa.c.
21503         * common/config/alpha/alpha-common.c,
21504         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
21505         common/config/bfin/bfin-common.c,
21506         common/config/cris/cris-common.c,
21507         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
21508         common/config/h8300/h8300-common.c,
21509         common/config/i386/i386-common.c,
21510         common/config/ia64/ia64-common.c,
21511         common/config/iq2000/iq2000-common.c,
21512         common/config/lm32/lm32-common.c,
21513         common/config/m32c/m32c-common.c,
21514         common/config/m32r/m32r-common.c,
21515         common/config/m68k/m68k-common.c,
21516         common/config/mcore/mcore-common.c,
21517         common/config/mep/mep-common.c,
21518         common/config/microblaze/microblaze-common.c,
21519         common/config/mips/mips-common.c,
21520         common/config/mmix/mmix-common.c,
21521         common/config/mn10300/mn10300-common.c,
21522         common/config/pdp11/pdp11-common.c,
21523         common/config/picochip/picochip-common.c,
21524         common/config/rs6000/rs6000-common.c,
21525         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
21526         common/config/score/score-common.c, common/config/sh/sh-common.c,
21527         common/config/sparc/sparc-common.c,
21528         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
21529         common/config/vax/vax-common.c,
21530         common/config/xstormy16/xstormy16-common.c,
21531         common/config/xtensa/xtensa-common.c: New.
21532         * config/alpha/alpha.c: Include common/common-target.h.
21533         (alpha_option_optimization_table, alpha_handle_option,
21534         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21535         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
21536         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
21537         * config/arm/arm.c (arm_option_optimization_table,
21538         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
21539         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
21540         arm-common.c.
21541         * config/avr/avr.c (avr_option_optimization_table,
21542         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
21543         to avr-common.c.
21544         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
21545         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
21546         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
21547         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
21548         * config/cris/cris.c (cris_option_optimization_table,
21549         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21550         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
21551         cris-common.c.
21552         * config/fr30/fr30.c (fr30_option_optimization_table,
21553         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
21554         to fr30-common.c.
21555         * config/frv/frv.c (frv_option_optimization_table,
21556         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
21557         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
21558         * config/h8300/h8300.c (h8300_option_optimization_table,
21559         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
21560         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
21561         * config/i386/i386-protos.h (ix86_handle_option): Declare.
21562         * config/i386/i386.c: Include common/common-target.h.
21563         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
21564         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
21565         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
21566         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
21567         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
21568         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
21569         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
21570         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
21571         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
21572         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
21573         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
21574         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
21575         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
21576         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
21577         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
21578         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
21579         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
21580         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
21581         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
21582         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
21583         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
21584         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
21585         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
21586         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
21587         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
21588         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
21589         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
21590         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
21591         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
21592         ix86_option_optimization_table, ix86_option_init_struct,
21593         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
21594         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
21595         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
21596         i386-common.c.
21597         * config/i386/t-i386 (i386.o): Update dependencies.
21598         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
21599         * config/ia64/ia64.c (ia64_option_optimization_table,
21600         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
21601         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21602         ia64_handle_option): Move to ia64-common.c.
21603         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
21604         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
21605         * config/lm32/lm32.c (lm32_option_optimization_table,
21606         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
21607         to lm32-common.c.
21608         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
21609         m32c-common.c.
21610         * config/m32r/m32r.c (m32r_option_optimization_table,
21611         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21612         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
21613         m32r_handle_option): Move to m32r-common.c.
21614         (m32r_memory_move_cost): Remove comment referring to
21615         TARGET_HANDLE_OPTION.
21616         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
21617         Move to m68k-common.c.
21618         * config/mcore/mcore.c (mcore_option_optimization_table,
21619         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
21620         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
21621         * config/mep/mep.c (mep_option_optimization_table,
21622         mep_handle_option, TARGET_HANDLE_OPTION,
21623         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
21624         Move to mep-common.c.
21625         * config/microblaze/microblaze.c
21626         (microblaze_option_optimization_table,
21627         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
21628         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
21629         * config/mips/mips.c (mips_handle_option,
21630         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
21631         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
21632         mips-common.c.
21633         * config/mmix/mmix.c (mmix_option_optimization_table,
21634         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
21635         Move to mmix-common.c.
21636         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
21637         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
21638         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21639         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
21640         * config/pa/pa.c: Include common/common-target.h.
21641         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
21642         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21643         pa_handle_option): Move to pa-common.c.
21644         (pa_option_override): Use targetm_common.except_unwind_info.
21645         (pa_asm_output_mi_thunk, pa_function_section): Use
21646         targetm_common.have_named_sections.
21647         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
21648         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21649         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
21650         pdp11_handle_option, pdp11_option_init_struct): Move to
21651         pdp11-common.c.
21652         * config/picochip/picochip.c (picochip_option_optimization_table,
21653         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
21654         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
21655         * config/rs6000/rs6000.c: Include common/common-target.h.
21656         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
21657         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
21658         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
21659         rs6000_handle_option): Move to rs6000-common.c.
21660         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
21661         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
21662         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
21663         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
21664         * config/s390/s390.c (processor_flags_table,
21665         s390_option_optimization_table, s390_option_init_struct,
21666         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
21667         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
21668         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
21669         * config/s390/s390.h (processor_flags_table): Declare.
21670         * config/score/score.c (score_option_optimization_table,
21671         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21672         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
21673         score_handle_option): Move to score-common.c.
21674         * config/sh/sh.c (sh_option_optimization_table,
21675         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
21676         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
21677         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
21678         * config/sparc/sparc.c: Include common/common-target.h.
21679         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
21680         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
21681         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
21682         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
21683         spu_option_init_struct): Move to spu-common.c.
21684         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
21685         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
21686         * config/v850/v850.c (small_memory_physical_max,
21687         v850_handle_memory_optionn v850_handle_option,
21688         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
21689         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
21690         v850-common.c.
21691         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
21692         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
21693         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
21694         Move to xtensa-common.c.
21695         * cfglayout.c: Include common/common-target.h.
21696         (fixup_reorder_chain): Use targetm_common.have_named_sections.
21697         * cfgrtl.c: Include common/common-target.h.
21698         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
21699         targetm_common.have_named_sections.
21700         * dbxout.c: Include common/common-target.h.
21701         (dbxout_function_end): Use targetm_common.have_named_sections.
21702         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
21703         targetm_common.except_unwind_info.
21704         * dwarf2out.c: Include common/common-target.h.
21705         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
21706         dwarf2out_begin_prologue, dwarf2out_frame_init,
21707         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
21708         targetm_common.except_unwind_info.
21709         * except.c: Include common/common-target.h.
21710         (init_eh, finish_eh_generation,
21711         output_one_function_exception_table): Use
21712         targetm_common.except_unwind_info.
21713         (switch_to_exception_section): Use targetm_common.have_named_sections.
21714         * explow.c: Include common/common-target.h.
21715         * expr.c: Include common/common-target.h.
21716         (build_personality_function): Use targetm_common.except_unwind_info.
21717         * function.c: Include common/common-target.h.
21718         (expand_function_end): Use targetm_common.except_unwind_info.
21719         * haifa-sched.c: Include common/common-target.h.
21720         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
21721         * lto-opts.c: Include common/common-target.h instead of target.h.
21722         (lto_reissue_options): Use targetm_common.handle_option.
21723         * opts.c: Include common/common-target.h.
21724         (target_handle_option): Use targetm_common.handle_option.
21725         (init_options_struct): Update comment referring to
21726         targetm.target_option.optimization.  Use
21727         targetm_common.default_target_flags,
21728         targetm_common.unwind_tables_default and
21729         targetm_common.option_init_struct.
21730         (default_options_optimization): Use
21731         targetm_common.option_optimization_table.
21732         (finish_options): Use targetm_common.except_unwind_info,
21733         targetm_common.unwind_tables_default,
21734         targetm_common.have_named_sections and
21735         targetm_common.supports_split_stack.
21736         * toplev.c: Include common/common-target.h.
21737         (process_options): Use targetm_common.have_named_sections.
21738         * tree-tailcall.c: Include common/common-target.h.
21739         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
21740         * tree.c: Include common/common-target.h.
21741         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
21742         * varasm.c: Include common/common-target.h.
21743         (resolve_unique_section, hot_function_section,
21744         default_function_section): Use targetm_common.have_named_sections.
21745
21746 2011-06-14  Easwaran Raman  <eraman@google.com>
21747
21748         PR rtl-optimization/44194
21749         * dse.c: Include tree-flow.h
21750         (insn_info): Add new field non_frame_wild_read.
21751         (group_info): Add new fields escaped_n and escaped_p.
21752         (kill_on_calls): New variable.
21753         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
21754         (dse_step0): Initialize kill_on_calls.
21755         (can_escape): New function.
21756         (set_usage_bits): Add additional parameter; record information
21757         about escaped locations.
21758         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
21759         (dse_step2_nospill): Set kill_on_calls based on
21760         group->escaped_n and group->escaped_n.
21761         (add_wild_read): Refactor into...
21762         (reset_active_stores): ... New function, and
21763         (free_read_records): ... New function.
21764         (add_non_frame_wild_read): New function.
21765         (scan_insn): Call add_non_frame_wild_read on non-const calls.
21766         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
21767         (dse_step5_nospill): Call scan_reads_nospill for instructions
21768         marked as non_frame_wild_read.
21769         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
21770
21771 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
21772
21773         * common/common-target-def.h, common/common-target.def,
21774         common/common-target.h, common/config/default-common.c,
21775         common/config/pa/pa-common.c: New files.
21776         * Makefile.in (common_out_file, common_out_object_file,
21777         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
21778         (OBJS-libcommon-target): Include $(common_out_object_file).
21779         (prefix.o): Update dependencies.
21780         ($(common_out_object_file), common/common-target-hooks-def.h,
21781         s-common-target-hooks-def-h): New.
21782         (s-tm-texi): Also check timestamp on common-target.def.
21783         (build/genhooks.o): Update dependencies.
21784         * config.gcc (common_out_file, target_has_targetm_common): Define.
21785         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
21786         TARGET_ALWAYS_STRIP_DOTDOT.
21787         * configure.ac (common_out_object_file): Define.
21788         (common_out_file, common_out_object_file): Substitute.
21789         (common): Create directory.
21790         * configure: Regenerate.
21791         * doc/tm.texi.in (targetm_common): Document.
21792         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
21793         * doc/tm.texi: Regenerate.
21794         * genhooks.c (hook_array): Also include common/common-target.def.
21795         * prefix.c (tm.h): Don't include.
21796         (common/common-target.h): Include.
21797         (ALWAYS_STRIP_DOTDOT): Don't define.
21798         (update_path): Use targetm_common.always_strip_dotdot instead of
21799         ALWAYS_STRIP_DOTDOT.
21800         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
21801
21802 2011-06-14  David Li  <davidxl@google.com>
21803
21804         * passes.c (execute_function_todo): Remove TODO_dump_func.
21805         (execute_one_pass): Remove TODO_dump_func.
21806         (execute_function_dump): New function.
21807         * tree-vrp.c: Remove TODO_dump_func.
21808         * regrename.c: Remove TODO_dump_func.
21809         * fwprop.c: Remove TODO_dump_func.
21810         * tree-into-ssa.c: Remove TODO_dump_func.
21811         * tree-complex.c: Remove TODO_dump_func.
21812         * tracer.c: Remove TODO_dump_func.
21813         * tree-loop-distribution.c: Remove TODO_dump_func.
21814         * postreload-gcse.c: Remove TODO_dump_func.
21815         * postreload.c: Remove TODO_dump_func.
21816         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
21817         * tree-tailcall.c: Remove TODO_dump_func.
21818         * ipa-cp.c: Remove TODO_dump_func.
21819         * final.c: Remove TODO_dump_func.
21820         * tree-emutls.c: Remove TODO_dump_func.
21821         * omp-low.c: Remove TODO_dump_func.
21822         * tree-ssa-dse.c: Remove TODO_dump_func.
21823         * tree-ssa-uncprop.c: Remove TODO_dump_func.
21824         * auto-inc-dec.c: Remove TODO_dump_func.
21825         * reorg.c: Remove TODO_dump_func.
21826         * tree-ssa-copyrename.c: Remove TODO_dump_func.
21827         * tree-ssa-ccp.c: Remove TODO_dump_func.
21828         * compare-elim.c: Remove TODO_dump_func.
21829         * mode-switching.c: Remove TODO_dump_func.
21830         * modulo-sched.c: Remove TODO_dump_func.
21831         * tree-call-cdce.c: Remove TODO_dump_func.
21832         * cse.c: Remove TODO_dump_func.
21833         * web.c: Remove TODO_dump_func.
21834         * tree-stdarg.c: Remove TODO_dump_func.
21835         * lto-streamer-out.c: Remove TODO_dump_func.
21836         * tree-ssa-math-opts.c: Remove TODO_dump_func.
21837         * tree-ssa-dom.c: Remove TODO_dump_func.
21838         * tree-nrv.c: Remove TODO_dump_func.
21839         * loop-init.c: Remove TODO_dump_func.
21840         * gimple-low.c: Remove TODO_dump_func.
21841         * ipa-inline.c: Remove TODO_dump_func.
21842         * tree-ssa-sink.c: Remove TODO_dump_func.
21843         * jump.c: Remove TODO_dump_func.
21844         * ifcvt.c: Remove TODO_dump_func.
21845         * tree-ssa-loop.c: Remove TODO_dump_func.
21846         * recog.c: Remove TODO_dump_func.
21847         * dse.c: Remove TODO_dump_func.
21848         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
21849         * matrix-reorg.c: Remove TODO_dump_func.
21850         * tree-eh.c: Remove TODO_dump_func.
21851         * regmove.c: Remove TODO_dump_func.
21852         * function.c: Remove TODO_dump_func.
21853         * tree-vectorizer.c: Remove TODO_dump_func.
21854         * ipa-split.c: Remove TODO_dump_func.
21855         * gcse.c: Remove TODO_dump_func.
21856         * tree-if-conv.c: Remove TODO_dump_func.
21857         * init-regs.c: Remove TODO_dump_func.
21858         * tree-ssa-phiopt.c: Remove TODO_dump_func.
21859         * implicit-zee.c: Remove TODO_dump_func.
21860         * lower-subreg.c: Remove TODO_dump_func.
21861         * bt-load.c: Remove TODO_dump_func.
21862         * tree-dfa.c: Remove TODO_dump_func.
21863         * except.c: Remove TODO_dump_func.
21864         * emit-rtl.c: Remove TODO_dump_func.
21865         * store-motion.c: Remove TODO_dump_func.
21866         * cfgexpand.c: Remove TODO_dump_func.
21867         * tree-cfgcleanup.c: Remove TODO_dump_func.
21868         * cfgcleanup.c: Remove TODO_dump_func.
21869         * tree-ssa-pre.c: Remove TODO_dump_func.
21870         * tree-sra.c: Remove TODO_dump_func.
21871         * tree-mudflap.c: Remove TODO_dump_func.
21872         * tree-ssa-copy.c: Remove TODO_dump_func.
21873         * cfglayout.c: Remove TODO_dump_func.
21874         * tree-ssa-forwprop.c: Remove TODO_dump_func.
21875         * tree-ssa-dce.c: Remove TODO_dump_func.
21876         * ira.c: Remove TODO_dump_func.
21877         * tree-ssa.c: Remove TODO_dump_func.
21878         * integrate.c: Remove TODO_dump_func.
21879         * tree-optimize.c: Remove TODO_dump_func.
21880         * tree-ssa-phiprop.c: Remove TODO_dump_func.
21881         * tree-object-size.c: Remove TODO_dump_func.
21882         * combine.c: Remove TODO_dump_func.
21883         * bb-reorder.c: Remove TODO_dump_func.
21884         * cprop.c: Remove TODO_dump_func.
21885         * var-tracking.c: Remove TODO_dump_func.
21886         * tree-profile.c: Remove TODO_dump_func.
21887         * tree-vect-generic.c: Remove TODO_dump_func.
21888         * reg-stack.c: Remove TODO_dump_func.
21889         * sched-rgn.c: Remove TODO_dump_func.
21890         * tree-ssa-structalias.c: Remove TODO_dump_func.
21891         * tree-switch-conversion.c: Remove TODO_dump_func.
21892         * tree-cfg.c: Remove TODO_dump_func.
21893         * tree-ssa-reassoc.c: Remove TODO_dump_func.
21894         * combine-stack-adj.c: Remove TODO_dump_func.
21895         * dce.c: Remove TODO_dump_func.
21896         * tree-ssanames.c: Remove TODO_dump_func.
21897         * regcprop.c: Remove TODO_dump_func.
21898
21899 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
21900
21901         PR middle-end/47364
21902         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
21903         and properly handle result not in Pmode.
21904
21905 2011-06-14  Robert Millan  <rmh@gnu.org>
21906
21907         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
21908         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
21909         `config/linux.h'.
21910
21911         * config/i386/kfreebsd-gnu64.h: New file.
21912         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
21913         with `i386/kfreebsd-gnu64.h'.
21914
21915         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
21916         (GNU_USER_LINK_EMULATION64): New macros.
21917         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
21918         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
21919         of hardcoding `elf_i386' and `elf_x86_64'.
21920
21921 2011-06-14  Nick Clifton  <nickc@redhat.com>
21922
21923         PR target/49403
21924         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
21925
21926         PR target/49402
21927         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
21928
21929 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
21930
21931         PR fortran/49103
21932         * tree.h (DECL_NONSHAREABLE): Define.
21933         (struct tree_decl_common): Change decl_common_unused to
21934         decl_nonshareable_flag.
21935         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
21936         Ignore vars with DECL_NONSHAREABLE bit set.
21937         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
21938         on stores to automatic aggregate vars.
21939
21940         PR rtl-optimization/49390
21941         Revert:
21942         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21943
21944         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21945         MEM_ALIAS_SET.
21946
21947 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
21948             Tom de Vries  <tom@codesourcery.com>
21949
21950         PR target/45098
21951         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
21952         Document changed semantics.
21953         (max_stmt_executions, max_stmt_executions_int): Declare.
21954         * tree-data-ref.c (estimated_loop_iterations)
21955         (estimated_loop_iterations_int): Move functions...
21956         * tree-ssa-loop-niter.c (estimated_loop_iterations)
21957         (estimated_loop_iterations_int): here.
21958         (record_estimate): Change nb_iterations_upper_bound and
21959         nb_iterations_estimate semantics.
21960         (max_stmt_executions, max_stmt_executions_int): New function.
21961         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
21962         (max_stmt_executions_tree): this.
21963         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
21964         estimated_loop_iterations_tree.
21965         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
21966         max_stmt_executions_int instead of estimated_loop_iterations_int.
21967         * predict.c (predict_loops): Idem.
21968         * tree-parloops.c (parallelize_loops): Idem.
21969         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
21970         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
21971         (init_omega_for_ddr_1): Idem.
21972         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
21973         (loop_prefetch_arrays): Idem
21974         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
21975         max_stmt_executions instead of estimated_loop_iterations.
21976         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
21977         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
21978         instead of nb_iterations_upper_bound.
21979
21980 2011-06-13  Jan Hubicka  <jh@suse.cz>
21981
21982         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
21983
21984 2011-06-14  Richard Henderson  <rth@redhat.com>
21985
21986         PR debug/48459
21987         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
21988         (based_loc_descr): Assert it's true.
21989         (compute_frame_pointer_to_fb_displacement): Set it, rather than
21990         aborting immediately.
21991
21992 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
21993             Mingfeng Wu  <mingfeng@faraday-tech.com>
21994
21995         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
21996
21997 2011-06-13  Jan Hubicka  <jh@suse.cz>
21998
21999         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
22000
22001 2011-06-13  Jan Hubicka  <jh@suse.cz>
22002
22003         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
22004         similarly to DECL_COMDAT.
22005         * cgraphunit.c (cgraph_analyze_function): Likewise.
22006         * ipa.c (function_and_variable_visibility): Likewise.
22007
22008 2011-06-13  Jan Hubicka  <jh@suse.cz>
22009
22010         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
22011         BINFO_VIRTUALS when streaming for ltrans unit.
22012
22013 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
22014
22015         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
22016         (movdi_internal64): Same.
22017
22018 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
22019
22020         PR target/44618
22021         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
22022         a set of similar patterns, where the MATCH_OPERAND for the function
22023         argument is replaced with individual references to hardware registers.
22024         (save_fpregs_<mode>): Ditto
22025         (restore_gpregs_<mode>): Ditto
22026         (return_and_restore_gpregs_<mode>): Ditto
22027         (return_and_restore_fpregs_<mode>): Ditto
22028         (return_and_restore_fpregs_aix_<mode>): Ditto
22029
22030 2011-06-13  Jan Hubicka  <jh@suse.cz>
22031
22032         * ipa-utils.c (postorder_stack): New structure.
22033         (ipa_reverse_postorder): Handle aliases.
22034
22035 2011-06-13  Jan Hubicka  <jh@suse.cz>
22036
22037         * ipa-inline.c (reset_edge_caches): Walk aliases.
22038         (update_caller_keys): Do not test inlinability of aliases.
22039         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
22040         (do_estimate_growth): Fix typo.
22041
22042 2011-06-13  Jan Hubicka  <jh@suse.cz>
22043
22044         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
22045         (can_remove_node_now_p): ... here; handle same comdat groups.
22046         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
22047         (inline_call): Update use of can_remove_node_now_p.
22048
22049 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
22050
22051         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
22052         condition to disallow non-identical memory locations.
22053         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
22054         preference to bit manipulation instructions.
22055
22056 2011-06-13  Jan Hubicka  <jh@suse.cz>
22057
22058         * cgraph.c (cgraph_for_node_thunks_and_aliases,
22059         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
22060         (nonremovable_p): New function.
22061         (cgraph_can_remove_if_no_direct_calls_p): New function.
22062         (used_from_object_file_p): New functoin.
22063         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
22064         references from aliases.
22065         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
22066         * ipa-inline.c (check_caller_edge): New function.
22067         (want_inline_function_called_once_p): Use it; accept aliases called
22068         once, too.
22069         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
22070
22071 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22072
22073         PR target/48454
22074         * config/arm/neon.md (vec_pack_trunc): Set the lengths
22075         correctly for the case with Quad vectors.
22076
22077 2011-06-13  Jakub Jelinek  <jakub@redhat.com>
22078             Ira Rosen  <ira.rosen@linaro.org>
22079
22080         PR tree-optimization/49352
22081         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
22082         all, make sure loop_use_stmt after the loop is a def stmt of a used
22083         SSA_NAME that is the only one defined inside of the loop.  Don't
22084         check for COND_EXPR and GIMPLE_BINARY_RHS.
22085         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
22086         check_reduction is true.
22087
22088 2011-06-11  Jan Hubicka  <jh@suse.cz>
22089
22090         PR middle-end/49373
22091         * ipa.c (cgraph_externally_visible_p): Check resolution info.
22092
22093 2011-06-11  Jan Hubicka  <jh@suse.cz>
22094
22095         PR middle-end/48836
22096         * ipa-inline-transform.c: Include tree-pass.h
22097         (inline_transform): Set TODO_update_ssa_only_virtuals.
22098         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
22099
22100 2011-06-11  Jan Hubicka  <jh@suse.cz>
22101
22102         PR middle-end/49378
22103         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
22104         aliases and thunks.
22105
22106 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
22107
22108         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
22109         Take number of iterations to peel into account for equally frequent
22110         misalignment values.
22111
22112 2011-06-11  Jan Hubicka  <jh@suse.cz>
22113
22114         * lto-streamer-out.c (produce_symtab): Stream out the newly
22115         represented aliases.
22116
22117 2011-06-11  Jan Hubicka  <jh@suse.cz>
22118
22119         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
22120         varying args.
22121         (ipa_update_after_lto_read): Likewise.
22122         (ipa_write_node_info): Do not sream call_with_var_arguments.
22123         (ipa_read_node_info): Likewise.
22124
22125 2011-06-11  Jan Hubicka  <jh@suse.cz>
22126
22127         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
22128
22129 2011-06-11  Jan Hubicka  <jh@suse.cz>
22130
22131         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
22132         (lto_symtab_resolve_can_prevail_p): Likewise.
22133         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
22134         * cgraph.c (same_body_aliases_done): New global var.
22135         (cgraph_same_body_alias_1): Rename to ...
22136         (cgraph_create_function_alias): ... this one; reorg to new
22137         representation.
22138         (cgraph_same_body_alias): Use cgraph_create_function_alias;
22139         record references when asked to.
22140         (cgraph_add_thunk): Fix formating.
22141         (cgraph_get_node): Kill same body alias code.
22142         (cgraph_node_for_asm): Likewise.
22143         (cgraph_remove_same_body_alias): Remove.
22144         (cgraph_remove_node): Kill same body alias code.
22145         (cgraph_mark_address_taken_node): Mark also the aliased function
22146         as having address taken.
22147         (dump_cgraph_node): Dump same body aliases.
22148         (cgraph_for_node_thunks_and_aliases): Update for new alias
22149         representation.
22150         (cgraph_for_node_and_aliases): Likewise.
22151         * cgraph.h (same_body): Kll pointer.
22152         (same_body_alias): Update comment.
22153         (same_body_aliases_done): Declare.
22154         (cgraph_remove_same_body_alias): Remove declaration.
22155         (cgraph_create_function_alias): Declare.
22156         (cgraph_process_same_body_aliases): Declare.
22157         (cgraph_function_with_gimple_body_p): Check for alias.
22158         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
22159         (cgraph_alias_aliased_node): New function.
22160         (cgraph_function_node): Update for new aliases.
22161         (cgraph_function_or_thunk_node): Likewise.
22162         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
22163         (inline_call): Remove dead aliases.
22164         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
22165         name hack for same body aliases.
22166         (clone_of_p): Look through aliases.
22167         (verify_cgraph_node): Verify aliases.
22168         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
22169         (cgraph_process_same_body_aliases): New function.
22170         (process_function_and_variable_attributes): Disable weakref warning on
22171         alias.
22172         (cgraph_analyze_functions): Handle aliases.
22173         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
22174         (assemble_thunks): Rename to ...
22175         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
22176         (cgraph_expand_function): Remove alias output code.
22177         (cgraph_output_in_order): Skip aliases.
22178         (cgraph_preserve_function_body_p): Aliases don't need preserving.
22179         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
22180         (ipa_record_reference): Do not assert on alias references.
22181         (ipa_ref_has_aliases_p): New function.
22182         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
22183         (ipa_ref_has_aliases_p): Declare.
22184         * lto-cgraph.c (lto_output_node): Handle aliases.
22185         (input_node): Likewise.
22186         * lto-streamer-out.c (lto_output): Skip aliases.
22187         (produce_symtab): Kill same_body_alias code.
22188         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
22189         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
22190         * ipa-inline.c (update_caller_keys): Walk aliases.
22191         (inline_small_functions): Fix thinko in previous patch.
22192         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
22193         (function_and_variable_visibility): Do not walk same body aliases.
22194         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
22195         (ipa_pta_execute): Use it.
22196
22197 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
22198
22199         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
22200         (*vec_dupv2df): Rename from vec_dupv2df.
22201         (vec_dupv2df): New expander.
22202
22203 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
22204
22205         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
22206
22207 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
22208
22209         * config/i386/i386.md: Use default value in "isa" attribute.
22210         * config/i386/sse.md: Ditto.
22211         * config/i386/mmx.md: Ditto.
22212
22213 2011-06-10  Wei Guozhi  <carrot@google.com>
22214
22215         PR target/45335
22216         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
22217         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
22218         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
22219         related peephole2.
22220         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
22221         related peephole2.
22222         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
22223         (arm_legitimate_ldrd_p): New prototype.
22224         (arm_output_ldrd): New prototype.
22225         * config/arm/arm.c (arm_check_ldrd_operands): New function.
22226         (arm_legitimate_ldrd_p): New function.
22227         (arm_output_ldrd): New function.
22228
22229 2011-06-10  David Li  <davidxl@google.com>
22230
22231         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
22232         * passes.c (passr_eq): New function.
22233         (create_pass_tab): New function.
22234         (pass_traverse): New function.
22235         (dump_one_pass): New function.
22236         (dump_pass_list): New function.
22237         (dump_passes): New function.
22238
22239 2011-06-10  Jan Hubicka  <jh@suse.cz>
22240
22241         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
22242         setting the nothrow flag.
22243         * ipa-reference.c (propagate): Skip aliases.
22244         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
22245         (propagate_nothrow): Skip aliases; do not update cgraph.
22246         (local_pure_const): Do not update cgraph.
22247         * tree-profile.c (tree_profiling): Do fixup_cfg.
22248
22249 2011-06-10  Jan Hubicka  <jh@suse.cz>
22250
22251         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
22252         (cgraph_local_node_p): ... here; handle aliases.
22253         (has_addr_references_p): Break out from ...;
22254         (cgraph_remove_unreachable_nodes) ... here.
22255
22256 2011-06-10  Jan Hubicka  <jh@suse.cz>
22257
22258         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
22259         * common.opt (flag_inline_functions_called_once): Do not
22260         initialize to 1.
22261
22262 2011-06-10  Jan Hubicka  <jh@suse.cz>
22263
22264         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
22265         (ipcp_initialize_node_lattices): Do not deal with aliases;
22266         Do not try to propagate through thunks.
22267         (ipcp_change_tops_to_bottom): Do not deal with aliases.
22268
22269 2011-06-10  Jan Hubicka  <jh@suse.cz>
22270
22271         * ipa-prop.c (ipa_write_node_info): Stream jump functions
22272         for indirect calls.
22273         (ipa_read_node_info): Likewise.
22274
22275 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22276
22277         PR lto/49302
22278         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
22279         (build_and_insert_call): Likewise.
22280         (build_and_insert_ref): New.
22281         (gimple_expand_builtin_pow): Minor cleanup.
22282         (gimple_expand_builtin_cabs): New.
22283         (execute_cse_sincos): Add case for BUILT_IN_CABS.
22284
22285 2011-06-10  Jan Hubicka  <jh@suse.cz>
22286
22287         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
22288         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
22289         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
22290         (ipcp_propagate_stage): Skip aliases when propagating.
22291         (ipcp_need_redirect_p): Skip aliases.
22292         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
22293         collect_callers_of_node.
22294         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
22295         for aliases.
22296         (ipa_compute_jump_functions): Look through aliases.
22297
22298 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22299
22300         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
22301
22302 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
22303
22304         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
22305         Adjust comments.
22306         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
22307
22308 2011-06-10  Jan Hubicka  <jh@suse.cz>
22309
22310         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
22311         Update call of gimple_get_virt_method_for_binfo.
22312         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
22313         refuse_thunks parameter.
22314         (gimple_fold_call): Update.
22315         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
22316
22317 2011-06-10  Jan Hubicka  <jh@suse.cz>
22318
22319         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
22320         (not_all_callers_have_enough_arguments_p): ... this one; turn into
22321         worker for cgraph_for_node_and_aliases.
22322         (convert_callers_for_node): Break out from ...
22323         (convert_callers): ... here.
22324         (modify_function): Use collect_callers_of_node.
22325         (ipa_early_sra): Use cgraph_for_node_and_aliases.
22326
22327 2011-06-10  Richard Guenther  <rguenther@suse.de>
22328
22329         PR tree-optimization/49361
22330         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
22331         when not already in gimple form.
22332
22333 2011-06-10  Richard Guenther  <rguenther@suse.de>
22334
22335         PR bootstrap/49344
22336         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
22337         FOR_EACH_PHI_OR_STMT_USE.
22338
22339 2011-06-10  Jan Hubicka  <jh@suse.cz>
22340
22341         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
22342         (clone_inlined_nodes): ... here.
22343         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
22344         to real destination prior inlining.
22345         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
22346         can_early_inline_edge_p, want_early_inline_function_p,
22347         want_early_inline_function_p, want_inline_small_function_p,
22348         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
22349         edge_badness, update_all_callee_keys, lookup_recursive_calls,
22350         add_new_edges_to_heap, inline_small_functions, flatten_function,
22351         inline_always_inline_functions, early_inline_small_functions): Use
22352         cgraph_function_or_thunk_node.
22353         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
22354         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
22355         (do_estimate_edge_growth_1): Break out from ...
22356         (do_estimate_growth) ... here; walk aliases.
22357         (inline_generate_summary): Skip aliases.
22358
22359 2011-06-10  Richard Guenther  <rguenther@suse.de>
22360
22361         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
22362         forward when combining, visit inserted stmts when a stmt was changed.
22363
22364 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
22365
22366         * tree.h (error_operand_p): Add.
22367         * dbxout.c (dbxout_type_fields): Use the latter.
22368         * c-decl.c (add_stmt): Likewise.
22369         * gimplify.c (omp_add_variable, omp_notice_variable,
22370         gimplify_scan_omp_clauses): Likewise.
22371
22372 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
22373
22374         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
22375         when a value is actually passed in regs.
22376
22377 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
22378             Laurent Rougé  <laurent.rouge@menta.fr>
22379
22380         * doc/invoke.texi (SPARC options): Add -mflat.
22381         * config/sparc/sparc.opt: Likewise.
22382         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
22383         (sparc_flat_expand_prologue): Declare.
22384         (sparc_flat_expand_epilogue): Likewise.
22385         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
22386         (CPP_ENDIAN_SPEC): Replace with...
22387         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
22388         (CPP_SPEC): Adjust to above change.
22389         (EXTRA_SPECS): Likewise.
22390         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
22391         (INCOMING_REGNO): Likewise.
22392         (OUTGOING_REGNO): Likewise.
22393         (LOCAL_REGNO): Likewise.
22394         (SETUP_FRAME_ADDRESSES): Likewise.
22395         (FIXED_REGISTERS): Set 0 for %fp.
22396         (CALL_USED_REGISTERS): Likewise.
22397         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
22398         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
22399         (RETURN_ADDR_REGNUM): Define.
22400         (RETURN_ADDR_RTX): Use it.
22401         (INCOMING_RETURN_ADDR_REGNUM): Define.
22402         (INCOMING_RETURN_ADDR_RTX): Use it.
22403         (DWARF_FRAME_RETURN_COLUMN): Likewise.
22404         (EH_RETURN_REGNUM): Define.
22405         (EH_RETURN_STACKADJ_RTX): Use it.
22406         (EH_RETURN_HANDLER_RTX): Delete.
22407         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
22408         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
22409         Delete.
22410         (struct machine_function): Add frame_size, apparent_frame_size,
22411         frame_base_reg, frame_base_offset, n_global_fp_regs and
22412         save_local_in_regs_p fields.
22413         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
22414         sparc_frame_base_offset, sparc_n_global_fp_regs,
22415         sparc_save_local_in_regs_p): New macros.
22416         (sparc_option_override): Error out if -fcall-saved-REG is specified
22417         for Out registers.
22418         (eligible_for_restore_insn): Fix formatting.
22419         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
22420         (eligible_for_sibcall_delay): Likewise.
22421         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
22422         (sparc_legitimate_address_p): Adjust to above change.
22423         (save_global_or_fp_reg_p): New predicate.
22424         (return_addr_reg_needed_p): Likewise.
22425         (save_local_or_in_reg_p): Likewise.
22426         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
22427         (SORR_SAVE, SORR_RESTORE): Delete.
22428         (sorr_pred_t): New typedef.
22429         (sorr_act_t): New enum.
22430         (save_or_restore_regs): Rename to...
22431         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
22432         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
22433         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
22434         mechanism.  Add CFI information for double-word saves in 32-bit mode.
22435         (emit_adjust_base_to_offset): New function extracted from...
22436         (emit_save_or_restore_regs): ...this.  Rename the rest to...
22437         (emit_save_or_restore_regs_global_fp_regs): ...this.
22438         (emit_save_or_restore_regs_local_in_regs): New function.
22439         (gen_create_flat_frame_[123]): New functions.
22440         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
22441         (sparc_flat_expand_prologue): New function.
22442         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
22443         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
22444         (sparc_flat_expand_epilogue): New function.
22445         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
22446         (output_return): Likewise.
22447         (output_sibcall): Likewise.
22448         (sparc_output_mi_thunk): Likewise.
22449         (sparc_frame_pointer_required): Likewise.
22450         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
22451         function optimization.
22452         * config/sparc/sparc.md (flat): New attribute.
22453         (prologue): Add TARGET_FLAT handling.
22454         (save_register_window): Disable if TARGET_FLAT.
22455         (create_flat_frame_[123]): New patterns.
22456         (epilogue): Add TARGET_FLAT handling.
22457         (sibcall_epilogue): Likewise.
22458         (eh_return): New expander.
22459         (eh_return_internal): New insn and splitter.
22460         (return_internal): Add TARGET_FLAT handling.
22461         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
22462         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
22463         (nonlocal_goto): Add TARGET_FLAT handling.
22464         * config/sparc/t-elf: Add -mflat multilib.
22465         * config/sparc/t-leon: Likewise.
22466
22467 2011-06-10  Jan Hubicka  <jh@suse.cz>
22468
22469         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
22470         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
22471         (self_recursive_p): Use cgraph_function_node.
22472         (propagate_pure_const): Likewise.
22473         (propagate_nothrow): Likewise.
22474         * ipa-reference.c (ipa_reference_get_not_read_global): Use
22475         cgraph_function_node.
22476         (propagate_bits): Likewise.
22477         (propagate): Likewise.
22478
22479 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22480             Richard Earnshaw  <rearnsha@arm.com>
22481
22482         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
22483         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
22484         (*thumb2_movdi_vfp): Delete.
22485         (*arm_movdi_vfp_cortexa8): Delete.
22486         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
22487         (*movdi_vfp_cortexa8): Likewise.
22488
22489 2011-06-10  Richard Guenther  <rguenther@suse.de>
22490
22491         * stor-layout.c (initialize_sizetypes): Give names to all
22492         sizetype kinds.
22493
22494 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
22495
22496         PR tree-optimization/49318
22497         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
22498         irrelevant pattern statements.
22499
22500 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
22501
22502         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
22503
22504         PR bootstrap/49354
22505         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
22506         to last assignment.
22507
22508 2011-06-09  Jan Hubicka  <jh@suse.cz>
22509
22510         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
22511         do not recompute reachable flag.
22512         (cgraph_finalize_function, cgraph_analyze_functions): Set
22513         redefined_extern_inline here.
22514
22515 2011-06-09  Jan Hubicka  <jh@suse.cz>
22516
22517         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
22518         (cgraph_only_called_directly_p): ... this one; bring offline.
22519         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
22520         varpool_used_from_object_file_p): Drop names from the declaratoin.
22521         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
22522         collect_callers_of_node): New.
22523         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
22524         (cgraph_edge_recursive_p): Use cgraph_function_node.
22525         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
22526         (cgraph_node_cannot_be_local_p_1): Break out from ...
22527         (cgraph_node_can_be_local_p): ... here; walk aliases.
22528         (cgraph_for_node_thunks_and_aliases): New function.
22529         (cgraph_for_node_and_aliases): New function.
22530         (cgraph_make_node_local_1): Break out from ...
22531         (cgraph_make_node_local) ... here; use
22532         cgraph_for_node_thunks_and_aliases.
22533         (cgraph_set_nothrow_flag_1): Break out from ...
22534         (cgraph_set_nothrow_flag) ... here;
22535         use cgraph_for_node_thunks_and_aliases.
22536         (cgraph_set_const_flag_1): Break out from ...
22537         (cgraph_set_const_flag) ... here;
22538         use cgraph_for_node_thunks_and_aliases.
22539         (cgraph_set_pure_flag_1): Break out from ...
22540         (cgraph_set_pure_flag) ... here;
22541         use cgraph_for_node_thunks_and_aliases.
22542         (cgraph_propagate_frequency_1): Break out from ...
22543         (cgraph_propagate_frequency) ... here; use
22544         cgraph_for_node_thunks_and_aliases.
22545         (cgraph_used_from_object_file_p): Do not care about aliases.
22546         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
22547         New functions.
22548         (collect_callers_of_node_1, collect_callers_of_node): New functions.
22549
22550 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
22551
22552         PR rtl-optimization/49154
22553         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
22554         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
22555         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
22556         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
22557         * config/cris/cris.h (cris_register_move_cost): Remove
22558         !TARGET_V32 code.  Tweak comments.
22559
22560 2011-06-09  Jan Hubicka  <jh@suse.cz>
22561
22562         * cgraphbuild.c (record_eh_tables): Mark personality function as having
22563         address taken.
22564
22565 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
22566
22567         PR rtl-optimization/49154
22568         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
22569         is a matching slot in the hashtable, assign it to classes_ptr.
22570
22571         PR rtl-optimization/49154
22572         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
22573         register classes.
22574         * doc/tm.texi: Regenerate.
22575
22576 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
22577
22578         PR target/49307
22579         * config/sh/sh.md (UNSPEC_CHKADD): New.
22580         (chk_guard_add): New define_insn_and_split.
22581         (symGOT_load): Use chk_guard_add instead of blockage.
22582
22583 2011-06-09  Kai Tietz  <ktietz@redhat.com>
22584
22585         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
22586
22587 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
22588
22589         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
22590
22591 2011-06-09  Wei Guozhi  <carrot@google.com>
22592
22593         PR target/46975
22594         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
22595         (peephole2 for conditional move): Generate 16 bit instructions.
22596
22597 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
22598
22599         * config/i386/i386.md (*movdi_internal_rex64): Merge
22600         alternatives 6 and 8.
22601
22602 2011-06-09  David Li  <davidxl@google.com>
22603
22604         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
22605         * passes.c (passr_eq): New function.
22606         (create_pass_tab): New function.
22607         (pass_traverse): New function.
22608         (dump_one_pass): New function.
22609         (dump_pass_list): New function.
22610         (dump_passes): New function.
22611
22612 2011-06-09  David Li  <davidxl@google.com>
22613
22614         * tree-complex.c (tree_lower_complex): Gate cleanup.
22615         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
22616         (execute_optimize_stdarg): Ditto.
22617         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
22618         (execute_cleanup_eh_1): Ditto.
22619         (execute_cleanup_eh): Ditto.
22620         * gcse.c (gate_rtl_pre): Ditto.
22621         (execute_rtl_pre): Ditto.
22622         * except.c (finish_eh_generation): Ditto.
22623         (convert_to_eh_region_ranges): Ditto.
22624         * cprop.c (one_cprop_pass): Ditto.
22625
22626 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
22627
22628         PR target/48673
22629         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
22630         in all basic blocks.
22631
22632 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22633
22634         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
22635         (HAVE_ENABLE_EXECUTE_STACK): Define.
22636         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
22637         (HAVE_ENABLE_EXECUTE_STACK): Define.
22638         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
22639         (HAVE_ENABLE_EXECUTE_STACK): Define.
22640         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
22641         (ENABLE_EXECUTE_STACK): Remove.
22642         (HAVE_ENABLE_EXECUTE_STACK): Define.
22643         [IN_LIBGCC2]: Don't include <windows.h>.
22644         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
22645         (HAVE_ENABLE_EXECUTE_STACK): Define.
22646         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
22647         (HAVE_ENABLE_EXECUTE_STACK): Define.
22648         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
22649         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
22650         (HAVE_ENABLE_EXECUTE_STACK): Define.
22651         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
22652         (HAVE_ENABLE_EXECUTE_STACK): Define.
22653         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
22654         (HAVE_ENABLE_EXECUTE_STACK): Define.
22655         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
22656         (HAVE_ENABLE_EXECUTE_STACK): Define.
22657         * config/alpha/alpha.c (alpha_trampoline_init): Test
22658         HAVE_ENABLE_EXECUTE_STACK.
22659         * config/i386/i386.c (ix86_trampoline_init): Likewise.
22660         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
22661         (sparc64_initialize_trampoline): Likewise.
22662         * libgcc2.c [L_enable_execute_stack]: Remove.
22663         * system.h (ENABLE_EXECUTE_STACK): Poison.
22664         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
22665         * doc/tm.texi: Regenerate.
22666         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
22667
22668 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
22669
22670         PR middle-end/49308
22671         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
22672         variable.  After resetting and rescanning insn continue with previous
22673         statement.
22674
22675 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22676
22677         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
22678         (gcc_cv_ld_hidden): Likewise.
22679         * configure: Regenerate.
22680         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
22681         (ix86_stack_protect_fail): Mark unused.
22682         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
22683         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
22684         [TARGET_MACHO]: Don't define.
22685         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
22686         (TARGET_STACK_PROTECT_FAIL): Likewise.
22687         (rs6000_stack_protect_fail): Mark unused.
22688         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
22689         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
22690
22691 2011-06-08  Andi Kleen  <ak@linux.intel.com>
22692
22693         * varasm.c (get_section): Print location of other conflict
22694         for section conflicts.
22695
22696 2011-06-08  Andi Kleen  <ak@linux.intel.com>
22697
22698         * config/i386/driver-i386.c (host_detect_local_cpu):
22699         Add model 0x2d Intel CPU.
22700
22701 2011-06-08  Andi Kleen  <ak@linux.intel.com>
22702
22703         * reginfo.c (global_regs_decl): Add.
22704         (globalize_reg): Add decl parameter. Compute location.  Pass location
22705         to warnings and add inform. Store decl in global_regs_decl.
22706         * rtl.h (globalize_reg): Update prototype.
22707         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
22708
22709 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
22710
22711         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
22712
22713 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22714
22715         PR target/49305
22716         * config/sh/predicates.md (general_movsrc_operand): Check
22717         mode for memory with indexed address for QI and HImode.
22718         (general_movdst_operand): Likewise.
22719
22720 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
22721
22722         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
22723
22724 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
22725
22726         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
22727         (num_ssa_operands): Likewise.
22728         (op_iter_init_phiuse): Forward-declare.
22729         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
22730
22731 2011-06-08  Nick Clifton  <nickc@redhat.com>
22732
22733         * doc/invoke.texi (ARM Options): Update description of
22734         -mthumb-interwork.
22735
22736 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
22737
22738         * config/i386/driver-i386.c (host_detect_local_cpu): Support
22739         unknown Intel family 0x6 CPUs.
22740
22741 2011-06-08  Martin Jambor  <mjambor@suse.cz>
22742
22743         * tree-sra.c (mark_rw_status): Removed.
22744         (analyze_access_subtree): New parameter parent instead of
22745         mark_read and mark_write, propagate from that.
22746
22747 2011-06-08  Julian Brown  <julian@codesourcery.com>
22748
22749         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
22750         for double-precision helper functions in hard-float mode if only
22751         single-precision arithmetic is supported in hardware.
22752
22753 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
22754
22755         PR rtl-optimization/49303
22756         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
22757         code_motion_path_driver returned 0 or 1.
22758         (sel_region_finish): Clear h_d_i_d.
22759
22760 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22761
22762         * config/sh/sh.c (prepare_move_operands): Set pic register
22763         appropriately for global and local dynamic tls models even
22764         if flag_pic is unset.
22765
22766 2011-06-07  Jason Merrill  <jason@redhat.com>
22767
22768         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
22769
22770 2011-06-07  Xinliang David Li  <davidxl@google.com>
22771         * passes.c (enable_disable_pass): Handle assembler name.
22772         (is_pass_explicitly_enabled_or_disabled): Ditto.
22773
22774 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22775
22776         PR tree-optimization/48497
22777         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
22778
22779 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22780
22781         PR tree-optimization/46728
22782         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
22783         to use gimple_val_nonnegative_real_p.
22784         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
22785         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
22786
22787 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
22788
22789         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
22790
22791 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
22792
22793         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
22794         constant vectors.
22795
22796 2011-06-07  Richard Guenther  <rguenther@suse.de>
22797
22798         * stor-layout.c (initialize_sizetypes): Initialize all
22799         sizetypes based on target definitions.
22800         (set_sizetype): Remove.
22801         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
22802         * tree.h (set_sizetype): Remove.
22803
22804 2011-06-07  Nick Clifton  <nickc@redhat.com>
22805
22806         * config.gcc: Unify V850 architecture options and add support for
22807         newer V850 architectures.
22808         * config/v850/t-v850e: Delete.
22809
22810 2011-06-07  Richard Guenther  <rguenther@suse.de>
22811
22812         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
22813         Call set_sizetype from here.
22814
22815 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
22816
22817         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
22818         (*maddhisi4tb, *maddhisi4tt): New define_insns.
22819
22820 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
22821             Andrew Stubbs  <ams@codesourcery.com>
22822
22823         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
22824         multiplies.
22825         * doc/md.texi (Canonicalization of Instructions): Document widening
22826         multiply canonicalization.
22827
22828 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
22829
22830         PR gcov-profile/49299
22831         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
22832
22833 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
22834
22835         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
22836         a pointer.
22837         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
22838         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
22839         vect_recog_pow_pattern): Likewise.
22840         (vect_pattern_recog_1): Remove declaration.
22841         (widened_name_p): Remove declaration.  Add new argument to specify
22842         whether to check that both types are either signed or unsigned.
22843         (vect_recog_widen_mult_pattern): Update documentation.  Handle
22844         unsigned patterns and multiplication by constants.
22845         (vect_pattern_recog_1): Update vect_recog_func references.  Use
22846         statement information from the statement returned from pattern
22847         detection functions.
22848         (vect_pattern_recog): Update vect_recog_func reference.
22849         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
22850         multiplication by a constant use the type of the other operand.
22851
22852 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22853
22854         PR rtl-optimization/49145
22855         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
22856
22857 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
22858
22859         PR debug/49262
22860         * dwarf2out.c (native_encode_initializer): Decrement count in each
22861         iteration.
22862
22863         PR debug/49294
22864         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
22865         non-MODE_INT modes.
22866
22867         PR c++/49264
22868         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
22869         if stmt folded into nothing.
22870         * tree-inline.c (fold_marked_statements): If a builtin at the end of
22871         a bb folded into nothing, just update cgraph edges and move to next bb.
22872         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
22873         to be NULL.  Don't compute count and frequency if new_call is NULL.
22874
22875 2011-06-04  Diego Novillo  <dnovillo@google.com>
22876
22877         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
22878         (cgraph.o): Likewise.
22879         (cgraphunit.o): Likewise.
22880         * cgraphunit.c: Include lto-streamer.h
22881         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
22882         if LTO is enabled.
22883         * lto-streamer-in.c (unpack_value_fields): Call
22884         streamer_hooks.unpack_value_fields if set.
22885         (lto_materialize_tree): For unhandled nodes, first try to
22886         call lto_streamer_hooks.alloc_tree, if it exists.
22887         (lto_input_ts_decl_common_tree_pointers): Move reading of
22888         DECL_INITIAL to lto_streamer_read_tree.
22889         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
22890         (lto_streamer_read_tree): New.
22891         (lto_reader_init): Rename from lto_init_reader.
22892         Move initialization code to lto/lto.c.
22893         * lto-streamer-out.c (pack_value_fields): Call
22894         streamer_hooks.pack_value_fields if set.
22895         (lto_output_tree_ref): For tree nodes that are not normally indexable,
22896         call streamer_hooks.indexable_with_decls_p before giving up.
22897         (lto_output_ts_decl_common_tree_pointers): Move handling
22898         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
22899         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
22900         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
22901         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
22902         (lto_streamer_write_tree): New.
22903         (lto_output): Call lto_streamer_init directly.
22904         (lto_writer_init): Remove.
22905         * lto-streamer.c (streamer_hooks): New.
22906         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
22907         instead of lto_preload_common_nodes.
22908         (lto_is_streamable): Move from lto-streamer.h
22909         (lto_streamer_hooks_init): New.
22910         (streamer_hooks): New.
22911         (streamer_hooks_init): New.
22912         * lto-streamer.h (struct output_block): Forward declare.
22913         (struct lto_input_block): Likewise.
22914         (struct data_in): Likewise.
22915         (struct bitpack_d): Likewise.
22916         (struct streamer_hooks): Declare.
22917         (streamer_hooks): Declare.
22918         (lto_streamer_hooks_init): Declare.
22919         (lto_streamer_write_tree): Declare.
22920         (lto_streamer_read_tree): Declare.
22921         (streamer_hooks_init): Declare.
22922         (lto_is_streamable): Move to lto-streamer.c
22923
22924 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22925
22926         * longlong.h (smul_ppmm): The resulting register pair contains the
22927         higher order word first.
22928
22929 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22930
22931         PR tree-optimization/46728
22932         * builtins.c (powi_table): Remove.
22933         (powi_lookup_cost): Remove.
22934         (powi_cost): Remove.
22935         (expand_powi_1): Remove.
22936         (expand_powi): Remove.
22937         (expand_builtin_pow_root): Remove.
22938         (expand_builtin_pow): Remove.
22939         (expand_builtin_powi): Eliminate handling of constant exponent.
22940         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
22941
22942 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22943
22944         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
22945
22946 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22947
22948         * dce.c (reset_unmarked_insns_debug_uses): New.
22949         (delete_unmarked_insns): Skip debug insns.
22950         (prescan_insns_for_dce): Likewise.
22951         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
22952         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
22953         active reg can be found.
22954         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
22955         (convert_regs_1): Use it.
22956
22957 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22958
22959         * tree-pretty-print.c (dump_function_header): Add flags.
22960         Don't dump decl_uid with nouid.
22961         * tree-pretty-print.h (dump_function_header): Adjust.
22962         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
22963         * passes.c (pass_init_dump_file): Pass dump_flags on.
22964         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
22965
22966 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
22967
22968         PR bootstrap/49270
22969         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
22970
22971 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
22972
22973         PR tree-optimization/49243
22974         * calls.c (setjmp_call_p): Also check if fndecl has the
22975         returns_twice attribute.
22976
22977 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22978
22979         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
22980         -ffast-math etc.
22981
22982 2011-06-06  Richard Henderson  <rth@redhat.com>
22983             Georg-Johann Lay  <avr@gjlay.de>
22984
22985         PR target/42210
22986         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
22987         New predicates.
22988         * config/avr/avr.md ("insv"): New insn expander.
22989         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
22990         "*insv.not.io", "*insv.reg"): New insns.
22991
22992 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
22993
22994         PR target/49285
22995         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
22996         to nonimmediate_operand from memory_operand for the operand that is to
22997         be forced to memory by the expander.  Lose the constraints.
22998
22999 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
23000
23001         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
23002         EH return when delayed branches are disabled.
23003
23004 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
23005
23006         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
23007         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
23008         calculation.
23009         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
23010         Simplify MODE_V1DF and MODE_V2SF handling.
23011         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
23012         Simplify MODE_SF handling.
23013
23014 2011-06-04  Jan Hubicka  <jh@suse.cz>
23015
23016         PR tree-optimization/48893
23017         PR tree-optimization/49091
23018         PR tree-optimization/49179
23019         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
23020         Bounds check.
23021
23022 2011-06-04  Jan Hubicka  <jh@suse.cz>
23023
23024         PR lto/48954
23025         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
23026         bitmaps.
23027
23028 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
23029
23030         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
23031
23032 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
23033
23034         PR target/49281
23035         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
23036         to be strictly smaller than 1 << shiftcount.
23037
23038 2011-06-04  Jan Hubicka  <jh@suse.cz>
23039
23040         PR tree-optimize/48929
23041         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
23042         of empty predicate.
23043
23044 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
23045
23046         PR debug/48333
23047         * calls.c (emit_call_1): Prefer the __builtin declaration of
23048         builtin functions.
23049
23050 2011-06-03  Diego Novillo  <dnovillo@google.com>
23051
23052         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
23053         (lto_input_tree_pointers): Likewise.
23054         * lto-streamer-out.c (pack_value_fields): Likewise.
23055         (lto_output_tree_pointers): Likewise.
23056         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
23057         and OPTIMIZATION_NODE.
23058
23059 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23060
23061         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
23062         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
23063         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
23064         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
23065         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
23066         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
23067         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
23068         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
23069         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
23070         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
23071         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
23072         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
23073         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
23074         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
23075         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
23076         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
23077         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
23078         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
23079         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
23080         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
23081         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
23082         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
23083         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
23084         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
23085         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
23086         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
23087         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
23088         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
23089         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
23090         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
23091         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
23092         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
23093         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
23094         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
23095         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
23096         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
23097         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
23098         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
23099         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
23100         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
23101         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
23102         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
23103         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
23104         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
23105         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
23106         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
23107         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
23108         * system.h (MD_UNWIND_SUPPORT): Poison.
23109         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
23110         * doc/tm.texi: Regenerate.
23111         * unwind-dw2.c: Include md-unwind-support.h instead of
23112         MD_UNWIND_SUPPORT.
23113         * config/ia64/unwind-ia64.c: Likewise.
23114         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
23115
23116 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
23117
23118         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
23119
23120 2011-06-03  Richard Henderson  <rth@redhat.com>
23121             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23122
23123         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
23124         (sigill_hdlr): Correct insn, insn size.
23125         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
23126
23127 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23128
23129         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
23130         t-slibgcc-dummy.
23131         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
23132         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
23133         * config/mips/t-iris: Remove.
23134         * config/mips/t-irix6: New file.
23135         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
23136
23137 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23138
23139         * Makefile.in (LIB2ADDEHDEP): Remove.
23140         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
23141         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
23142         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
23143         * config/t-darwin (LIB2ADDEHDEP): Remove.
23144         * config/t-freebsd (LIB2ADDEHDEP): Remove.
23145         * config/t-linux (LIB2ADDEHDEP): Remove.
23146
23147 2011-06-03  Diego Novillo  <dnovillo@google.com>
23148
23149         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
23150         (lto_register_var_decl_in_symtab): Likewise.
23151         (lto_register_function_decl_in_symtab): Likewise.
23152         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
23153         logic to uniquify_nodes.
23154
23155 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23156
23157         * config/alpha/t-osf5: Remove.
23158         * config/alpha/t-osf-pthread: Remove.
23159         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
23160         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
23161
23162 2011-06-03  Julian Brown  <julian@codesourcery.com>
23163
23164         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
23165         (strongarm1110): Use strongarm tuning.
23166         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
23167         * config/arm/arm.c (arm_strongarm_tune): New.
23168         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
23169         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
23170         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
23171         setting, using previous defaults or 1 for Cortex-A5.
23172         (arm_option_override): Set max_insns_skipped from current tuning.
23173
23174 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
23175
23176         * doc/install.texi (Options specification): Document --with-specs.
23177
23178 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23179
23180         * config/arm/neon.md (orndi3_neon): Actually split it.
23181
23182 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
23183
23184         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
23185         * var-tracking.c (reverse_op): Limite recurse depth to 5.
23186
23187 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
23188
23189         PR debug/47590
23190         * target.def (delay_sched2, delay_vartrack): New.
23191         * doc/tm.texi.in: Update.
23192         * doc/tm.texi: Rebuild.
23193         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
23194         * var-tracking.c (gate_handle_var_tracking): Likewise.
23195         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
23196         (bfin_flag_var_tracking): Drop.
23197         (output_file_start): Don't save and override flag_var_tracking.
23198         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
23199         (bfin_reorg): Test original variables.
23200         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
23201         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
23202         (ia64_flag_var_tracking): Drop.
23203         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
23204         (ia64_file_start): Don't save and override flag_var_tracking.
23205         (ia64_override_options_after_change): Ditto
23206         flag_schedule_insns_after_reload.
23207         (ia64_reorg): Test original variables.
23208         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
23209         (picochip_flag_var_tracking): Drop.
23210         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
23211         (picochip_option_override): Don't save and override
23212         flag_schedule_insns_after_reload.
23213         (picochip_asm_file_start): Ditto flag_var_tracking.
23214         (picochip_reorg): Test original variables.
23215         * config/spu/spu.c (spu_flag_var_tracking): Drop.
23216         (TARGET_DELAY_VARTRACK): Define.
23217         (spu_var_tracking): New.
23218         (spu_machine_dependent_reorg): Call it.
23219         (asm_file_start): Don't save and override flag_var_tracking.
23220
23221 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
23222
23223         PR target/49163
23224         * config/sh/predicates.md (general_movsrc_operand): Return 0
23225         for memory and memory subreg of which address is an invalid
23226         indexed address for QI and HImode.
23227         (general_movdst_operand): Likewise.
23228
23229 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
23230
23231         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
23232         edges only, when there is a non-local label in the function.
23233         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
23234
23235 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
23236
23237         * config/i386/constraints.md (Y3): New register constraint.
23238         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
23239         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
23240         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
23241         *sse2_interleave_lowv2df.
23242
23243 2011-06-02  Julian Brown  <julian@codesourcery.com>
23244
23245         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
23246         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
23247         (arm_cortex_a5_tune): New.
23248
23249 2011-06-02  Julian Brown  <julian@codesourcery.com>
23250
23251         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
23252         * config/arm/arm.c (arm_default_branch_cost): New.
23253         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
23254         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
23255         (arm_fa726_tune): Set branch_cost field using
23256         arm_default_branch_cost.
23257         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
23258         current_tune structure.
23259         * dojump.c (tm_p.h): Include file.
23260
23261 2011-06-02  Julian Brown  <julian@codesourcery.com>
23262
23263         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
23264         tuning.
23265         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
23266         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
23267         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
23268         field.
23269         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
23270         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
23271         (arm_fa726te_tune): Add prefer_constant_pool setting.
23272         (arm_v6t2_tune, arm_cortex_tune): New.
23273         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
23274         prefer_constant_pool setting.
23275
23276 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
23277
23278         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
23279         switch statement.
23280         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
23281         (*movdf_internal) <case 6,7,8>: Ditto.
23282
23283         * config/i386/constraints.md (Y4): New register constraint.
23284         * config/i386/sse.md (vec_set<mode>_0): Merge with
23285         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
23286         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
23287         *vec_extractv2di_1_sse.
23288         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
23289         and *vec_concatv2di_rex64_sse.
23290
23291 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
23292
23293         PR target/48807
23294         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
23295         of cgraph_local_info for null before attempting to use it.
23296
23297 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
23298
23299         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
23300         (current_function_dynamic_alloc_count): Delete.
23301         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
23302         (expand_builtin_nonlocal_goto): Remove obsolete comment.
23303         (expand_builtin_update_setjmp_buf): Remove dead code.
23304         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
23305         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
23306         support.
23307         * function.c (instantiate_virtual_regs): Likewise.
23308         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
23309         for a block with a single abnormal incoming edge.
23310         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
23311         (SETJMP_VIA_SAVE_AREA): Delete.
23312         * config/sparc/sparc-protos.h (load_got_register): Declare.
23313         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
23314         (load_got_register): Make global.
23315         (sparc_frame_pointer_required): Add 'static'.
23316         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
23317         (sparc_builtin_setjmp_frame_value): New function.
23318         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
23319         (save_stack_nonlocal): New expander.
23320         (restore_stack_nonlocal): Likewise.
23321         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
23322         (nonlocal_goto_internal): New insn.
23323         (goto_handler_and_restore): Delete.
23324         (builtin_setjmp_setup): Likewise.
23325         (do_builtin_setjmp_setup): Likewise.
23326         (setjmp): Likewise.
23327         (builtin_setjmp_receiver): New expander.
23328
23329 2011-06-01  David Li  <davidxl@google.com>
23330
23331         PR middle-end/49261
23332         * tree-pretty-print.c (dump_function_header): Format cleanup.
23333
23334 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
23335
23336         PR target/49238
23337         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
23338         needed when original operands are used for msw_skip comparison.
23339
23340 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
23341
23342         PR debug/49250
23343         * var-tracking.c (add_uses, add_stores): Don't call
23344         cselib_subst_to_values on ENTRY_VALUE.
23345
23346 2011-06-01  Diego Novillo  <dnovillo@google.com>
23347
23348         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
23349         output_record_start with LTO_null instead of output_zero.
23350         (lto_output_ts_binfo_tree_pointers): Likewise.
23351         (lto_output_tree): Likewise.
23352         (output_eh_try_list): Likewise.
23353         (output_eh_region): Likewise.
23354         (output_eh_lp): Likewise.
23355         (output_eh_regions): Likewise.
23356         (output_bb): Likewise.
23357         (output_function): Likewise.
23358         (output_unreferenced_globals): Likewise.
23359         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
23360         instead of NUM_TREE_CODES.
23361         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
23362         (lto_output_int_in_range): Change << to >> when shifting VAL.
23363
23364 2011-06-01  Diego Novillo  <dnovillo@google.com>
23365
23366         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
23367         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
23368
23369 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
23370
23371         PR target/45074
23372         * optabs.h (valid_multiword_target_p): Declare.
23373         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
23374         doing multi-word operations.
23375         * optabs.c (expand_binop): Likewise.
23376         (expand_doubleword_bswap): Likewise.
23377         (expand_absneg_bit): Likewise.
23378         (expand_unop): Likewise.
23379         (expand_copysign_bit): Likewise.
23380         (multiword_target_p): New function.
23381
23382 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
23383
23384         PR rtl-optimization/48830
23385         PR rtl-optimization/48808
23386         PR rtl-optimization/48792
23387         * reload.c (push_reload): Check contains_reg_of_mode.
23388         * reload1.c (strip_paradoxical_subreg): New function.
23389         (gen_reload_chain_without_interm_reg_p): Use it to handle
23390         paradoxical subregs.
23391         (emit_output_reload_insns, gen_reload): Likewise.
23392
23393 2011-06-01  David Li  <davidxl@google.com>
23394
23395         * predict.c : Change pass name
23396         * ipa.c: Ditto.
23397         * dce.c: Ditto.
23398         * tree-profile.c: Ditto.
23399         * except.c: Ditto.
23400
23401 2011-06-01  David Li  <davidxl@google.com>
23402
23403         * tree-pretty-print.c (dump_function_header): New function.
23404         * final.c (rest_of_clean_state): Use header dumper.
23405         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
23406         * passes.c (pass_init_dump_file): Use header dumper.
23407
23408 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
23409
23410         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
23411         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
23412         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
23413         New functions.
23414         (mem_loc_descriptor): Use them.
23415
23416         * var-tracking.c (create_entry_value): New function.
23417         (vt_add_function_parameter): Use it.
23418
23419 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23420
23421         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
23422         Include <signal.h>, <ucontext.h>.
23423         (sigill_caught): Define.
23424         (sigill_hdlr): New function.
23425         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
23426         insns can be executed.
23427         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
23428         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
23429
23430 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23431
23432         * config/t-slibgcc-darwin: Move to ...
23433         * config/t-slibgcc-dummy: ... this.  Clarify comments.
23434         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
23435         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
23436         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
23437         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
23438         Remove i386/t-crtstuff from tmake_file.
23439         (i[34567]86-*-solaris2*): Remove t-svr4,
23440         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
23441         t-slibgcc-dummy.
23442         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
23443         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
23444         sparc/t-crtfm from tmake_file.
23445         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
23446         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
23447         Remove extra_parts.
23448         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
23449         * config/i386/t-nwld (SHLIB_LINK): Remove.
23450         * config/i386/t-rtems-i386: Rename to ...
23451         * config/i386/t-rtems: ... this.
23452         ($(T)crti.o, $(T)crtn.o): Remove.
23453         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
23454         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
23455         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
23456         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
23457         EXTRA_MULTILIB_PARTS): Remove.
23458         * config/sparc/t-sol2-64: Likewise.
23459         * config/sparc/t-sol2: Remove.
23460         * config/sparc/t-crtin: Remove.
23461         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
23462         * config/i386/gmon-sol2.c: Remove.
23463         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
23464         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
23465         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
23466         * config/i386/sol2-gc1.asm: Remove.
23467         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
23468         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
23469         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
23470         * config/t-slibgcc-sld: Remove.
23471
23472 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
23473
23474         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
23475         base_type_for_mode with op_mode instead of mode.
23476
23477 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
23478
23479         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
23480         Cortex-A15.
23481         * config/arm/arm-tune.md: Regenerate.
23482         * config/arm/arm-tables.opt: Regenerate.
23483         * config/arm/arm.c (FL_DIV): Rename...
23484         (FL_THUMB_DIV): ... to this.
23485         (FL_ARM_DIV): Define.
23486         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
23487         (arm_arch_hwdiv): Remove.
23488         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
23489         (arm_issue_rate): Add cortexr5.
23490         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
23491         __ARM_ARCH_EXT_IDIV__.
23492         (TARGET_IDIV): Define.
23493         (arm_arch_hwdiv): Remove.
23494         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
23495         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
23496         (divsi3, udivsi3): New patterns.
23497         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
23498         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
23499
23500 2011-06-01  Martin Jambor  <mjambor@suse.cz>
23501
23502         * ipa-utils.c (ipa_dfs_info): New field scc_no.
23503         * ipa-utils.c (searchc): Set scc_no.
23504
23505 2011-06-01  Martin Jambor  <mjambor@suse.cz>
23506
23507         * ipa-utils.c (searchc_env): New field allow_overwritable.
23508         (searchc): do not ignore edges to overwritable nodes if indicated
23509         by env->allow_overwritable.
23510         (ipa_reduced_postorder): Set env.allow_overwritable.
23511
23512 2011-06-01  Richard Guenther  <rguenther@suse.de>
23513
23514         * tree.c (free_lang_data): Do not reset boolean_type_node nor
23515         char_type_node.
23516         * lto-streamer.c (lto_record_common_node): Take node pointer,
23517         do not register types.
23518         (lto_preload_common_nodes): Explicitly skip preloading nodes
23519         that differ between frontends.
23520
23521 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
23522
23523         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
23524         NON_FLOAT_REGS.
23525
23526 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
23527
23528         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
23529         parameter value for dump. Dump cost on outermost call only.
23530         (rs6000_memory_move_cost): Dump cost on outermost call only.
23531
23532 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
23533
23534         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
23535         DW_OP_GNU_convert ops.
23536
23537         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
23538         cselib_preserve_constants.
23539         (cselib_lookup_1): If cselib_preserve_constants,
23540         a new VALUE is being created for REG and there is a VALUE for the
23541         same register in wider mode, add another loc with lowpart SUBREG of
23542         the wider VALUE.
23543         (cselib_subst_to_values): Handle ENTRY_VALUE.
23544         * var-tracking.c  (replace_expr_with_values): Return NULL for
23545         ENTRY_VALUE too.
23546         * dwarf2out.c (convert_descriptor_to_signed): New function.
23547         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
23548         instead of two shifts.
23549         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
23550         the right mode if needed.
23551         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
23552         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
23553         convert_descriptor_to_signed.
23554         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
23555         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
23556
23557         PR target/48688
23558         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
23559
23560 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
23561
23562         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
23563         of X87MODEI12 and SWI48x instead of SSEMODEI24.
23564         (SWI248x): New mode iterator, rename from X87MODEI.
23565         (X87MODEI): Remove mode iterator.
23566         (X87MODEI12): Ditto.
23567         (SSEMODEI24): Ditto.
23568
23569 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
23570
23571         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
23572         * doc/invoke.texi: Document max-vartrack-expr-depth.
23573         * var-tracking.c (EXPR_DEPTH): New.
23574         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
23575
23576 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
23577
23578         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
23579         * config/i386/sse.md: Add n to negated FMA pattern names.
23580
23581 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
23582
23583         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
23584
23585 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
23586
23587         * gengtype-state.c (read_state_params_structs): Initialize previous.
23588
23589 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
23590
23591         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
23592         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
23593
23594 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
23595
23596         * config/i386/i386.md (*movtf_internal): Avoid allocating general
23597         registers.  Penalize F*r->o alternative to prevent partial memory
23598         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
23599         CONST_DOUBLE immediates when optimizing function for size.  Do not move
23600         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
23601         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
23602         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
23603         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
23604         alternatives.
23605         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
23606
23607         (fp_register_operand splitters): Use fp_register_operand
23608         constraint.  Do not use FP_REG_P in insn condition.
23609         (any_fp_register_operand splitters): Use any_fp_register_operand
23610         constraint.  Do not use ANY_FP_REG_P in insn condition.
23611
23612 2011-05-31  Jan Hubicka  <jh@suse.cz>
23613
23614         * cgraph.h (cgraph_inline_failed_t): Give enum a name
23615         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
23616         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
23617         (lto_output_edge): Use output_enum and var_len_unsigned.
23618         (lto_output_varpool_node): Likewise.
23619         (input_overwrite_node): Do not take resolution parameter;
23620         extract it from a bitpack.
23621         (input_node): Do not read resolution; use input_enum and
23622         var_len_unsigned.
23623         (input_varpool_node): Likewise.
23624         (input_edge): Likewise.
23625         (input_cgraph_1): Likewise.
23626
23627 2011-05-31  Richard Guenther  <rguenther@suse.de>
23628
23629         * gimple.c (gimple_register_canonical_type): Do not register
23630         any types via gimple_register_type.
23631
23632 2011-05-31  Jan Hubicka  <jh@suse.cz>
23633
23634         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
23635         of thunks.
23636
23637 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
23638
23639         PR rtl-optimization/49235
23640         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
23641         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
23642
23643 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
23644
23645         PR tree-optimization/49093
23646         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
23647         data references.
23648
23649 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
23650
23651         PR debug/49047
23652         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
23653         for concrete functions containing the code of cloned functions.
23654
23655 2011-05-31  Richard Guenther  <rguenther@suse.de>
23656
23657         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
23658         to ...
23659         (forward_propagate_into_comparison_1): ... this.
23660         (forward_propagate_comparison): Rename to ...
23661         (forward_propagate_into_comparison): ... this.  Split out
23662         real forward propagation code to ...
23663         (forward_propagate_comparison): ... this.
23664         (forward_propagate_into_gimple_cond): Remove looping.
23665         (forward_propagate_into_cond): Likewise.
23666         (simplify_not_neg_expr): Return whether we have done something.
23667         (simplify_gimple_switch): Likewise.
23668         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
23669         (ssa_forward_propagate_and_combine): ... this.  Re-structure
23670         to do a forward forward-propagation walk on BBs and a backward
23671         stmt combining walk on BBs.  Consistently re-scan changed statements.
23672         (pass_forwprop): Adjust.
23673
23674 2011-05-30  Ian Lance Taylor  <iant@google.com>
23675
23676         * godump.c (go_format_type): Correct length of name added to
23677         obstack for anonymous field.
23678
23679 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
23680
23681         PR target/49186
23682         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
23683         part of the second operand is 0.
23684
23685 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
23686
23687         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
23688         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
23689         to memory for !TARGET_MEMORY_MISMATCH_STALL.
23690         (*movdf_internal_rex64): Do not penalize F->r alternative.
23691         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
23692         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
23693         when optimizing function for size.  Do not move CONST_DOUBLEs
23694         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
23695         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
23696         SUBREGs.  Do not check for MEM_P operands in the insn condition,
23697         check for ANY_FP_REGNO_P instead.
23698         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
23699         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
23700         function for speed.
23701         * config/i386/i386.c (ix86_option_override_internal): Do not
23702         set TARGET_INTEGER_DFMODE_MOVES here.
23703
23704 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
23705
23706         PR target/49168
23707         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
23708
23709 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
23710
23711         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
23712         DW_TAG_rvalue_reference_type even for
23713         -gdwarf-4 -fno-debug-types-section.
23714
23715 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23716
23717         PR tree-optimization/46728
23718         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
23719         (build_and_insert_binop): New.
23720         (gimple_expand_builtin_pow): Reorder args for
23721         build_and_insert_call; use build_and_insert_binop; add more
23722         optimizations for fractional exponents.
23723
23724 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
23725
23726         PR bootstrap/49190
23727
23728         Revert:
23729         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
23730
23731         * tree.h (struct tree_identifier): Inherit from tree_typed, not
23732         tree_common.
23733         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
23734         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
23735         TS_BASE instead of TS_COMMON.
23736         * varasm.c (assemble_name): Remove assert.
23737
23738 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
23739
23740         * config.gcc: Keep obselete list sorted.
23741
23742 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
23743             Eric Botcazou  <ebotcazou@adacore.com>
23744
23745         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
23746         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
23747         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
23748         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
23749         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
23750
23751 2011-05-30  Richard Guenther  <rguenther@suse.de>
23752
23753         * gimple.c (gimple_types_compatible_p_1): Compare record
23754         and union type members properly.
23755
23756 2011-05-30  Richard Guenther  <rguenther@suse.de>
23757
23758         PR tree-optimization/49210
23759         * ipa-split.c (split_function): Care for the case where the call
23760         result is not trivially convertible to the result holding variable.
23761
23762 2011-05-30  Richard Guenther  <rguenther@suse.de>
23763
23764         PR tree-optimization/49218
23765         * tree-vrp.c (adjust_range_with_scev): Properly check whether
23766         overflow occured.
23767
23768 2011-05-30  Richard Guenther  <rguenther@suse.de>
23769
23770         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
23771         New function split out from ...
23772         (forward_propagate_into_gimple_cond): ... here.  Adjust.
23773         (forward_propagate_into_cond): Likewise.
23774         (forward_propagate_comparison): Also propagate into
23775         comparisons on assignment RHS.  Change return value to
23776         behave similar to forward_propagate_into_cond.
23777         (tree_ssa_forward_propagate_single_use_vars): Handle
23778         strict-overflow warnings properly for forward_propagate_comparison.
23779
23780 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23781
23782         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
23783         from plugin linker.
23784         * configure: Regenerate.
23785
23786 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
23787
23788         PR tree-optimization/49199
23789         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
23790         non-reduction operands are either defined in the loop or by induction.
23791
23792 2011-05-29  Xinliang David Li  <davidxl@google.com>
23793
23794         * opts-global.c (handle_common_deferred_options): Handle new options.
23795         * passes.c (register_one_dump_file): Call register_pass_name.
23796         (execute_one_pass): Check explicit enable/disable flag.
23797         (passr_hash): New function.
23798         (passr_eq): Ditto.
23799         (register_pass_name): Ditto.
23800         (get_pass_by_name): Ditto.
23801         (pass_hash): Ditto.
23802         (pass_eq): Ditto.
23803         (enable_pass): Ditto.
23804         (disable_pass): Ditto.
23805         (is_pass_explicitly_enabled_or_disabled): Ditto.
23806
23807 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
23808
23809         * config/i386/i386.md (*movoi_internal_avx): Use
23810         standard_sse_constant_opcode for alternative 0.
23811         (*movti_internal_sse): Ditto.
23812         (*movti_internal_rex64): Use standard_sse_constant_opcode for
23813         alternative 2.
23814         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
23815         sselog1 type moves.
23816         (*movsi_internal): Ditto.
23817         (*movdi_internal): Ditto.  Add ssecvt type moves.
23818
23819 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
23820
23821         PR target/48830
23822         * rtlanal.c (simplify_subreg_regno): Adjust comment.
23823
23824 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
23825
23826         PR rtl-optimization/49095
23827         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
23828         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
23829
23830 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
23831
23832         PR target/43995
23833         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
23834         recurse_p argument.  Only follow register copies if it is set,
23835         and prevent mips_find_pic_call_symbol from recursing.
23836         (mips_find_pic_call_symbol): Add a recurse_p argument.
23837         Pass it to mips_pic_call_symbol_from_set.
23838         (mips_annotate_pic_calls): Update accordingly.
23839
23840 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
23841
23842         * emit-rtl.c (try_split): Use a loop to search for
23843         NOTE_INSN_CALL_ARG_LOCATIONs.
23844
23845 2011-05-29  Richard Guenther  <rguenther@suse.de>
23846
23847         PR tree-optimization/49217
23848         * ipa-pure-const.c (propagate_pure_const): Fix typos.
23849
23850 2011-05-28  Jan Hubicka  <jh@suse.cz>
23851
23852         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
23853         length.
23854         (string_slot_free): Remove
23855         (create_output_block): Initialize obstack.
23856         (destroy_output_block): Free obstack.
23857         (lto_string_index): Add PERSISTENT parameter; do not duplicate
23858         the string unless it needs to be added into the hash.
23859         (lto_output_string_with_length): Add persistent attribute;
23860         handle NULL strings.
23861         (lto_output_string): Add PERSISTENT parameter.
23862         (output_string_cst, output_identifier): Simplify.
23863         (lto_output_location_bitpack): Update.
23864         (lto_output_builtin_tree): Update.
23865         * lto-streamer.h (struct output_block): Add obstack.
23866         (lto_output_string, lto_output_string_with_length): Remove
23867         declarations; functions are static now.
23868
23869 2011-05-28  Jan Hubicka  <jh@suse.cz>
23870
23871         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
23872         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
23873         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
23874         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
23875         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
23876         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
23877         unpack_ts_decl_with_vis_value_fields,
23878         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
23879         lto_get_builtin_tree): Use enum and variable length i/o.
23880         * basic-block.h (profile_status_d): Add PROFILE_LAST.
23881         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
23882         New functions.
23883         (bp_pack_enum, bp_unpack_enum): New macros.
23884
23885 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23886
23887         * genrecog.c: Remove redundant forward declarations.
23888
23889 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23890
23891         * config.gcc: Deprecate mips*-*-openbsd*.
23892
23893 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23894
23895         PR bootstrap/49195
23896         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
23897         for match_op_dup.
23898
23899 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
23900
23901         PR middle-end/48981
23902         * gengtype.c (vec_prefix_type): New function.
23903         (note_def_vec): Use vec_prefix_type and change the length
23904         attribute to be based on the prefix.
23905         * vec.c: Include coretypes.h before vec.h.
23906         (struct vec_prefix): Remove.
23907         (vec_gc_p_reserve): Change the offsetof to sizeof.
23908         (vec_gc_p_reserve_exact): Likewise.
23909         (vec_heap_p_reserve): Likewise.
23910         (vec_heap_p_reserve_exact): Likewise.
23911         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
23912         (vec_stack_p_reserve): Change the offsetof to sizeof.
23913         (vec_stack_p_reserve_exact): Likewise.
23914         * vec.h (struct vec_prefix): New struct definition.
23915         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
23916         (VEC_T_GTY(T,B)): Likewise.
23917         (DEF_VEC_FUNC_P(T)): Use prefix field.
23918         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
23919         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
23920
23921 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23922
23923         PR tree-optimization/46728
23924         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
23925         (powi_as_mults): Add gimple_set_location.
23926         (build_and_insert_call): New.
23927         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
23928         0.5, 0.25, 0.75, 1./3., or 1./6.
23929
23930 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
23931
23932         * doc/contrib.texi: Update copyright years.
23933         (Contributors): Add Zdenek Sojka.
23934
23935 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
23936
23937         * c-decl.c (c_push_function_context): Copy the current statement
23938         list stack.
23939         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
23940         (finish_struct): Call building_stmt_list_p instead of checking
23941         cur_stmt_list.
23942         * c-parser.c (c_parser_postfix_expression): Likewise.
23943         * c-typeck.c (c_end_compound_stmt): Likewise.
23944         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
23945         * tree-iterator.c (stmt_list_cache): Change to a VEC.
23946         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
23947         (free_stmt_list): Likewise.
23948         * tree.h (struct tree_statement_list): Include typed_tree instead
23949         of tree_common.
23950         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
23951         as TS_TYPED instead of TS_COMMON.
23952
23953 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23954             Uros Bizjak  <ubizjak@gmail.com>
23955
23956         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
23957         (HAVE_AS_IX86_TLSGDPTL): Define.
23958         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
23959         (HAVE_AS_IX86_TLSLDMPLT): Define.
23960         * configure: Regenerate.
23961         * config.in: Regenerate.
23962         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
23963         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
23964         TARGET_SUN_TLS, use @tlsgdplt or @plt.
23965         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
23966         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
23967         @tlsldmplt or @plt.
23968         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
23969
23970 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
23971
23972         * sched-int.h (struct _haifa_deps_insn_data): New members cond
23973         and reverse_cond.
23974         (INSN_COND, INSN_REVERSE_COND): New macros.
23975         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
23976         once.
23977         (sched_get_condition_with_rev): Cache the results, and look them up
23978         if possible.
23979         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
23980         are clobbered by the current insn.
23981         * target.def (exposed_pipline): New sched data hook.
23982         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
23983         * doc/tm.texi: Regenerate.
23984
23985 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23986
23987         PR tree-optimization/49170
23988         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
23989         sincos or cexp.
23990
23991 2011-05-27  Richard Guenther  <rguenther@suse.de>
23992
23993         PR middle-end/49189
23994         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
23995         of comparisons.
23996
23997 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
23998
23999         * haifa-sched.c (sched_scan_info): Remove.
24000         (schedule_block): Call sched_extend_luids rather than sched_init_luids
24001         with NULL args.
24002         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
24003         Remove functions.
24004         (sched_scan): Remove.
24005         (sched_extend_luids): Renamed from luids_extend_insn and no longer
24006         static.  All callers changed.
24007         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
24008         static.  All callers changed.
24009         (sched_init_luids): Remove all arguments except the first.  All
24010         callers changed.  Don't use sched_scan.
24011         (haifa_init_h_i_d): Likewise.
24012         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
24013         manually rather than using sched_init_luids.  Likewise with
24014         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
24015         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
24016         rather than sched_init_luids with NULL args.
24017         * sel-sched-ir.c (new_insns): Remove variable.
24018         (sched_scan): New static function, previously in haifa-sched.c.  Remove
24019         all arguments but the first two; all callers changed.
24020         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
24021         rather than sched_init_luids.
24022         (sel_init_bbs): Remove second argument.  All callers changed.
24023         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
24024         with NULL arguments.
24025         (create_insn_rtx_from_pattern): Likewise.
24026         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
24027         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
24028         (sched_init_insn_luid, sched_extend_luids): Declare.
24029         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
24030         declarations.
24031
24032 2011-05-27  Richard Guenther  <rguenther@suse.de>
24033
24034         PR middle-end/49177
24035         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
24036         A CMP B ? (T) true : (T) false for non-integral types T again.
24037
24038 2011-05-27  Jan Hubicka  <jh@suse.cz>
24039
24040         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
24041         so 0 means NULL string.
24042         (lto_output_string_with_length): ... here.
24043         (lto_output_string, output_string_cst, output_identifier): Update
24044         handling of NULL strings.
24045         (lto_output_location_bitpack): New function.
24046         (lto_output_location): Use it.
24047         (lto_output_tree_ref): Use output_record_start.
24048         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
24049         len values.
24050         * lto-streamer-in.c (string_for_index): Break out from ...; offset
24051         values by 1.
24052         (input_string_internal): ... here;
24053         (input_string_cst, input_identifier, lto_input_string): Update handling
24054         of NULL strings.
24055         (lto_input_location_bitpack): New function
24056         (lto_input_location): Use it.
24057         (unpack_ts_type_common_value_fields): Pack align & alias in var len
24058         values.
24059         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
24060         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
24061         (bp_pack_value): Sanity check the value range.
24062         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
24063         New functions.
24064         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
24065         New functions.
24066
24067 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
24068
24069         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
24070         call_arg_location instructions down the floor.
24071
24072 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
24073
24074         PR rtl-optimization/49154
24075         * ira.c (setup_pressure_classes): Process class without sublcasses
24076         as a candidate for pressure classes.
24077
24078 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
24079
24080         PR rtl-optimization/48575
24081         * genrecog.c (position_type): New enum.
24082         (position): New structure.
24083         (decision): Use position structure instead of a string.
24084         (root_pos, peep2_insn_pos_list): New variables.
24085         (next_position, compare_positions): New functions.
24086         (new_decision): Use position structures instead of strings.
24087         (maybe_both_true): Likewise.
24088         (change_state): Likewise.
24089         (write_tree): Likewise.
24090         (make_insn_sequence): Likewise.
24091
24092 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
24093
24094         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
24095         TS_BASE instead of TS_COMMON.
24096         (find_decls_types_r): Check for TS_TYPED structure before looking at
24097         TREE_TYPE.
24098         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
24099         Add chain field.
24100         (BLOCK_CHAIN): Use new chain field.
24101
24102 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
24103
24104         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
24105         moves expensive on Power7 also.
24106
24107 2011-05-26  Richard Guenther  <rguenther@suse.de>
24108
24109         * fold-const.c (fold_unary_loc): Remove bogus code.
24110
24111 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
24112
24113         * tree.h (struct tree_identifier): Inherit from tree_typed, not
24114         tree_common.
24115         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
24116         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
24117         TS_BASE instead of TS_COMMON.
24118         * varasm.c (assemble_name): Remove assert.
24119
24120 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
24121
24122         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
24123         substituted first.
24124         * libgcc-std.ver: Delete file.
24125
24126 2011-05-26  Richard Guenther  <rguenther@suse.de>
24127
24128         PR tree-optimization/48702
24129         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
24130         only when we know the base address is within bounds.
24131         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
24132         assume the base address of TARGET_MEM_REFs is in bounds.
24133
24134 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24135
24136         PR target/49099
24137         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
24138         declaration in TARGET_SOLARIS.
24139
24140 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
24141
24142         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
24143         The instruction is then expanded explicitly.
24144         (supported_compare): Callable instruction.
24145         (compare): Likewise.
24146
24147 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
24148
24149         PR c++/49165
24150         * gimplify.c (shortcut_cond_r): Don't special case
24151         COND_EXPRs if they have void type on one of their arms.
24152
24153 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
24154
24155         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
24156         to reduce duplication, and to achieve a slightly more logical order
24157         of operations.
24158
24159 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
24160
24161         PR tree-optimization/49161
24162         * tree-vrp.c (struct case_info): New type.
24163         (compare_case_labels): Sort case_info structs instead of
24164         trees, and not primarily by CASE_LABEL uids but by
24165         label_for_block indexes.
24166         (find_switch_asserts): Put case labels into struct case_info
24167         array instead of TREE_VEC, adjust sorting, compare label_for_block
24168         values instead of CASE_LABELs.
24169
24170 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
24171
24172         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
24173         ("orndi3_neon"): Likewise.
24174         ("bic<mode>3_neon"): Likewise.
24175
24176 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
24177
24178         PR tree-optimization/49038
24179         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
24180         Ensure at least one epilogue iteration if required by data
24181         accesses with gaps.
24182         * tree-vectorizer.h (struct _loop_vec_info): Add new field
24183         to mark loops that require peeling for gaps.
24184         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
24185         (vect_get_known_peeling_cost): Take peeling for gaps into
24186         account.
24187         (vect_transform_loop): Generate epilogue if required by data
24188         access with gaps.
24189         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
24190         loop as requiring an epilogue if there are gaps in the end of
24191         the strided group.
24192
24193 2011-05-25  Ian Lance Taylor  <iant@google.com>
24194
24195         * godump.c (go_format_type): Output the first field with a usable
24196         Go type, if any.
24197
24198 2011-05-25  Ian Lance Taylor  <iant@google.com>
24199
24200         * godump.c (go_format_type): Check for invalid type names, pointer
24201         target types, and struct field types.
24202
24203 2011-05-25  Jason Merrill  <jason@redhat.com>
24204
24205         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
24206
24207 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
24208
24209         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
24210
24211 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
24212
24213         * config/i386/i386.md (*movqi_extv_1)): Put back
24214         "register_operand" check in "type" calculation.
24215         (*movqi_extzv_2): Likewise.
24216
24217 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
24218
24219         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
24220
24221 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
24222
24223         PR bootstrap/49160
24224         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
24225         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
24226         __divxc3, __divtc3): Wrap definitions in #ifndef.
24227
24228 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
24229
24230         PR target/49142
24231         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
24232         "register_operand" check and replace q_regs_operand with
24233         QIreg_operand in "type" calculation.
24234         (*movqi_extv_1): Likewise.
24235         (*movqi_extzv_2_rex64): Likewise.
24236         (*movqi_extzv_2): Likewise.
24237
24238         * config/i386/predicates.md (QIreg_operand): New.
24239
24240 2011-05-25  Richard Guenther  <rguenther@suse.de>
24241
24242         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
24243         type-based offset disambiguation, streamline MEM_REF and
24244         TARGET_MEM_REF handling.
24245
24246 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
24247
24248         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
24249         (bdesc_special_args): Add pause intrinsic.
24250
24251         * config/i386/i386.md (UNSPEC_PAUSE): New.
24252         (pause): Likewise.
24253         (*pause): Likewise.
24254         * config/i386/ia32intrin.h (__pause): Likewise.
24255
24256         * doc/extend.texi (X86 Built-in Functions): Add documentation for
24257         pause intrinsic.
24258
24259 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24260
24261         PR tree-optimization/46728
24262         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
24263         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
24264
24265 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
24266
24267         * tree.h (struct tree_exp): Inherit from struct tree_typed.
24268         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
24269         instead of TS_COMMON.
24270
24271 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
24272
24273         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
24274         LIBGCC2_GNU_PREFIX is defined.
24275         (__N): New macro.
24276         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
24277         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
24278         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
24279         __clz_tab): Define using __N.
24280         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
24281         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
24282         * target.def (libfunc_gnu_prefix): New hook.
24283         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
24284         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
24285         * doc/tm.texi: Regenerate.
24286         * system.h (LIBGCC2_GNU_PREFIX): Poison.
24287         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
24288         account.
24289         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
24290         (init_optabs): Likewise for the bswap libfuncs.
24291         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
24292         and divide.
24293         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
24294         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
24295         * libgcc-std.ver: Remove.
24296         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
24297         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
24298         libgcc-std.ver.
24299         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
24300         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
24301         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
24302         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
24303         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
24304         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
24305         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
24306         * config/fixed-bit.h (FIXED_OP): Define differently depending on
24307         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
24308         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
24309
24310 2011-05-25  Jan Hubicka  <jh@suse.cz>
24311
24312         * lto-streamer-out.c (output_record_start): Use lto_output_enum
24313         (lto_output_tree): Use output_record_start.
24314         * lto-streamer-in.c (input_record_start): Use lto_input_enum
24315         (lto_get_pickled_tree): Use input_record_start.
24316         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
24317         (lto_value_range_error): New function.
24318         * lto-streamer.h (lto_value_range_error): Declare.
24319         (lto_output_int_in_range, lto_input_int_in_range): New functions.
24320         (lto_output_enum, lto_input_enum): New macros.
24321
24322 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
24323
24324         * common.opt (flag_stack_usage_info): New variable.
24325         (-Wstack-usage): New option.
24326         * doc/invoke.texi (Warning options): Document -Wstack-usage.
24327         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
24328         <OPT_fstack_usage>: Likewise.
24329         * toplev.c (output_stack_usage): Handle -Wstack-usage.
24330         * calls.c (expand_call): Test flag_stack_usage_info variable instead
24331         of flag_stack_usage.
24332         (emit_library_call_value_1): Likewise.
24333         * explow.c (allocate_dynamic_stack_space): Likewise.
24334         * function.c (instantiate_virtual_regs ): Likewise.
24335         (prepare_function_start): Likewise.
24336         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
24337         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
24338         * config/arm/arm.c (arm_expand_prologue): Likewise.
24339         (thumb1_expand_prologue): Likewise.
24340         * config/avr/avr.c (expand_prologue): Likewise.
24341         * config/i386/i386.c (ix86_expand_prologue): Likewise.
24342         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
24343         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
24344         * config/mips/mips.c (mips_expand_prologue): Likewise.
24345         * config/pa/pa.c (hppa_expand_prologue): Likewise.
24346         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
24347         * config/s390/s390.c (s390_emit_prologue): Likewise.
24348         * config/sh/sh.c (sh_expand_prologue): Likewise.
24349         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
24350         * config/spu/spu.c (spu_expand_prologue): Likewise.
24351
24352 2011-05-25  Richard Guenther  <rguenther@suse.de>
24353
24354         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
24355         (gimple_canonical_types_compatible_p): Likewise.
24356
24357 2011-05-25  Jan Hubicka  <jh@suse.cz>
24358
24359         PR middle-end/49062
24360         * ipa.c (function_and_variable_visibility): Only add to same
24361         comdat group list if DECL_ONE_ONLY.
24362
24363 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
24364
24365         PR rtl-optimization/49014
24366         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
24367
24368 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
24369
24370         PR target/49128
24371         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
24372
24373 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
24374
24375         PR rtl-optimization/48757
24376         * ira-build.c (loop_with_eh_edge_p): Rename to
24377         loop_with_complex_edge_p, check edges on complexity, make function
24378         conditional.
24379         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
24380         conditional.
24381
24382 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
24383
24384         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
24385         force flag_ira_share_save_slots to 0.
24386
24387 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
24388
24389         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
24390         (vt_initialize): Set PROLOGUE_BB unconditionally.
24391         Add block comment about CFA_BASE_RTX machinery.
24392         Reset FP_CFA_OFFSET to -1 on all invalid paths.
24393         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
24394
24395 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
24396
24397         PR objc/48187
24398         * c-parser.c (c_parser_objc_class_instance_variables): More robust
24399         parsing of syntax error in ObjC instance variable lists.  In
24400         particular, avoid an infinite loop if there is a stray ']'.
24401         Updated error message.
24402
24403 2011-05-24  Ian Lance Taylor  <iant@google.com>
24404
24405         * godump.c (go_define): Don't accept a string immediately after
24406         another operand.
24407
24408 2011-05-24  Ian Lance Taylor  <iant@google.com>
24409
24410         * godump.c (struct godump_container): Add invalid_hash field.
24411         (go_format_type): Return false if type is found in invalid_hash.
24412         (go_output_typedef): Add invalid type to invalid_hash.
24413         (go_finish): Create and delete invalid_hash.
24414
24415 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24416
24417         PR tree-optimization/46728
24418         * tree-ssa-math-opts.c (powi_table): New.
24419         (powi_lookup_cost): New.
24420         (powi_cost): New.
24421         (powi_as_mults_1): New.
24422         (powi_as_mults): New.
24423         (gimple_expand_builtin_powi): New.
24424         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
24425         (gate_cse_sincos): Remove sincos/cexp restriction.
24426
24427 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24428
24429         PR target/3746
24430         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
24431         mips-tdump native.
24432         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
24433         * mips-tdump.c: Likewise.
24434
24435 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
24436
24437         PR target/49128
24438         * config/i386/driver-i386.c (host_detect_local_cpu): Always
24439         add -mno-XXX.  Handle FMA.
24440
24441 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
24442
24443         PR rtl-optimization/48633
24444         * ira-build.c (loop_with_eh_edge_p): New function.
24445         (mark_loops_for_removal): Use it.
24446
24447 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
24448
24449         PR rtl-optimization/48971
24450         * ira.c (setup_pressure_classes): Don't check register move cost
24451         for classes with one registers.  Don't add pressure class if there
24452         is a pressure class with the same available hard registers.
24453         Check contains_reg_of_mode.  Fix a typo in collecting
24454         temp_hard_regset.  Ignore hard registers not belonging to a class.
24455
24456 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
24457
24458         PR target/49133
24459         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
24460
24461 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
24462             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24463
24464         PR gcov-profile/48845
24465         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
24466
24467 2011-05-24  Richard Guenther  <rguenther@suse.de>
24468
24469         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
24470         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
24471         (gimple_types_compatible_p_1): Adjust.
24472         (iterative_hash_canonical_type): Do not bother about complete vs.
24473         incomplete types.
24474         (gimple_canonical_types_compatible_p): Likewise.
24475
24476 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24477
24478         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
24479
24480 2011-05-24  Richard Guenther  <rguenther@suse.de>
24481
24482         PR bootstrap/49078
24483         * gimple.c (gimple_register_canonical_type): Revert
24484         previous change.
24485         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
24486         does not for a tree for the case where it matters.  Cache
24487         pointer-type alias-sets.
24488
24489 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
24490
24491         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
24492         (OBJS): Remove options.o, opts-common.o and prefix.o.
24493         (OBJS-libcommon-target): New.
24494         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
24495         (BACKEND): Include libcommon-target.a.
24496         (MOSTLYCLEANFILES): Include libcommon-target.a.
24497         (libcommon-target.a): New.
24498         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
24499         prefix.o.
24500
24501 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
24502
24503         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
24504         parts of output shared with the driver.
24505         * optc-gen.awk: Don't generate parts of output not shared with the
24506         driver.
24507         * opth-gen.awk: Remove GCC_DRIVER conditionals.
24508         * doc/options.texi (SourcerInclude): Mention options-save.c.
24509         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
24510         (OBJS): Add options-save.o.
24511         (options-save.c, options-save.o): New.
24512         (options.o): Update dependencies.
24513         (gcc-options.o): Remove.
24514         (mostlyclean): Remove options-save.c.
24515
24516 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
24517
24518         PR debug/49032
24519         * dbxout.c: Include cgraph.h.
24520         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
24521         and without value expr, return NULL if no varpool node exists for
24522         it or if it is not needed.
24523         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
24524
24525         PR c/49120
24526         * c-decl.c (start_decl): Convert expr to void_type_node.
24527
24528 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
24529
24530         PR rtl-optimization/48826
24531         * emit-rtl.c (try_split): When splitting a call that is followed
24532         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
24533
24534 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
24535
24536         * cfgexpand.c (expand_debug_expr): For unused non-addressable
24537         parameters passed in memory prefer using DECL_INCOMING_RTL over
24538         the pseudos it will be copied into.
24539
24540 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
24541
24542         PR target/47315
24543         * config/i386/i386.c (ix86_option_override_internal): Save the
24544         initial options after checking vzeroupper.
24545
24546 2011-05-23  David Li  <davidxl@google.com>
24547
24548         PR tree-optimization/48988
24549         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
24550         Initialize has_valid_pred for each pred chain.
24551
24552 2011-05-23  Richard Guenther  <rguenther@suse.de>
24553
24554         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
24555         (iterative_hash_gimple_type): Always hash type names.
24556
24557 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
24558
24559         * c-typeck.c (build_function_call_vec): Tweak call to
24560         check_function_arguments.
24561
24562 2011-05-23  Richard Guenther  <rguenther@suse.de>
24563
24564         PR tree-optimization/49115
24565         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
24566         is not necessarily carried out, do not claim it kills the ref.
24567         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
24568
24569 2011-05-23  Richard Guenther  <rguenther@suse.de>
24570
24571         PR middle-end/15419
24572         * builtins.c (fold_builtin_memory_op): Be less restrictive about
24573         what pointer types we accept for folding.
24574
24575 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24576
24577         * gthr-gnat.c: Remove.
24578         * gthr-gnat.h: Remove.
24579         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
24580         * config/t-freebsd (LIB2ADDEH): Likewise.
24581         * config/t-linux (LIB2ADDEH): Likewise.
24582         * config/t-sol2 (LIB2ADDEH): Likewise.
24583         * config/ia64/t-vms (LIB2ADDEH): Likewise.
24584         * configure.ac (target_thread_file): Remove gnat handling.
24585         * configure: Regenerate.
24586         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
24587
24588 2011-05-23  Tristan Gingold  <gingold@adacore.com>
24589             Eric Botcazou  <ebotcazou@adacore.com>
24590
24591         * gcov.c (create_file_names): If no object directory is specified,
24592         keep the directory of the file.
24593
24594 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24595
24596         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
24597         * configure: Regenerate.
24598
24599 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
24600
24601         PR middle-end/48973
24602         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
24603         failed and the comparison has a single bit signed type, use
24604         constm1_rtx instead of const1_rtx for true value.
24605         (do_store_flag): If ops->type is single bit signed type, disable
24606         signel bit test optimization and pass -1 instead of 1 as last
24607         parameter to emit_store_flag_force.
24608
24609 2011-05-23  Tom de Vries  <tom@codesourcery.com>
24610
24611         PR target/45098
24612         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
24613         function.
24614         (infer_loop_bounds_from_undefined): Use new function.
24615
24616 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
24617
24618         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
24619         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
24620         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
24621         and -O0 otherwise.
24622         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
24623
24624 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24625
24626         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
24627         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
24628         returns true.
24629
24630 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
24631
24632         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
24633
24634 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24635
24636         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
24637         UNSPEC_MOVE_PIC pattern.
24638
24639 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24640
24641         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
24642         (sparc-*-rtems*): Likewise.
24643         (sparc64-*-elf*): Likewise.
24644         (sparc64-*-rtems*): Likewise.
24645         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
24646         * config/sparc/t-crtin: New file.
24647         * config/sparc/t-sol2 (crti.o): Delete rule.
24648         (crtn.o): Likewise.
24649         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
24650         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
24651         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
24652         (ENDFILE_SPEC): Add crtn.o.
24653
24654 2011-05-22  Tom de Vries  <tom@codesourcery.com>
24655
24656         PR middle-end/48689
24657         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
24658         CODE_CONTAINS_STRUCT (TS_COMMON).
24659
24660 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
24661
24662         PR middle-end/49029
24663         * expmed.c (extract_fixed_bit_field): Test whether target can be used
24664         only after deciding which mode to use.
24665
24666 2011-05-22  Tom de Vries  <tom@codesourcery.com>
24667
24668         PR target/45098
24669         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
24670         for call to get_shiftadd_cost.
24671
24672 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
24673
24674         PR target/49104
24675         * config/i386/cpuid.h (bit_MMXEXT): New define.
24676
24677 2011-05-22  Nick Clifton  <nickc@redhat.com>
24678
24679         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
24680         initialisation of non-existant args[2] element.  Use args[] array
24681         not arg[] array to pass arguments to build_function_type_list.
24682
24683 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
24684
24685         PR tree-optimization/49087
24686         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
24687
24688 2011-05-21  Jason Merrill  <jason@redhat.com>
24689
24690         PR c++/49092
24691         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
24692         static storage duration.
24693
24694 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
24695
24696         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
24697         frame pointer.
24698
24699 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
24700
24701         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
24702         false if there are call-saved registers here...
24703         (sparc_can_use_return_insn_p): ...but here instead.
24704         (save_or_restore_regs): Fix thinko.
24705         (sparc_expand_prologue): Use current_function_is_leaf.
24706         (sparc_frame_pointer_required): Likewise.
24707
24708 2011-05-21  Nick Clifton  <nickc@redhat.com>
24709
24710         PR target/49098
24711         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
24712
24713 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
24714
24715         * gengtype.c (walk_type): Implemented "atomic" GTY option.
24716         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
24717
24718 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
24719
24720         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
24721         * optc-gen.awk: Move common code to opt-read.awk.
24722         * opth-gen.awk: Likewise.
24723         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
24724
24725 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
24726
24727         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
24728
24729 2011-05-20  Tom de Vries  <tom@codesourcery.com>
24730
24731         PR target/45098
24732         * tree-ssa-loop-ivopts.c: Include expmed.h.
24733         (get_shiftadd_cost): New function.
24734         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
24735
24736 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
24737
24738         PR bootstrap/49086
24739         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
24740         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
24741
24742 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
24743
24744         * Makefile.in: Update comment referring to $(OBJS-common).
24745
24746 2011-05-20  Ian Lance Taylor  <iant@google.com>
24747
24748         * godump.c (go_output_typedef): Put enum constants in the macro
24749         hash table to avoid duplicate Go const definitions.
24750
24751 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
24752
24753         * Makefile.in (LIBDEPS): Add libcommon.a.
24754         (LIBS): Likewise.
24755         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
24756         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
24757         pretty-print.o and version.o.
24758         (OBJS-libcommon): New.
24759         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
24760         (BACKEND): Add libcommon.a.
24761         (MOSTLYCLEANFILES): Likewise.
24762         (libcommon.a): New.
24763         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
24764         (cpp$(exeext)): Likewise.
24765         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
24766         pretty-print.o and input.o.
24767         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
24768         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
24769         (errors.o): Remove.
24770         (mips-tfile): Don't explicitly use version.o.
24771         (mips-tdump): Likewise.
24772         (gcov.o): Depend on $(DIAGNOSTIC_H).
24773         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
24774         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
24775         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
24776         * gcov-dump.c: Include intl.h and diagnostic.h.
24777         (main): Initialize diagnostics.
24778         * gcov.c: Include diagnostic.h.
24779         (fnotice): Remove.
24780         (main): Initialize diagnostics.
24781         * lto-wrapper.c: Include diagnostic.h.
24782         (main): Initialize diagnostics.
24783
24784 2011-05-20  Michael Matz  <matz@suse.de>
24785
24786         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
24787
24788 2011-05-20  Michael Matz  <matz@suse.de>
24789             Richard Guenther  <rguenther@suse.de>
24790
24791         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
24792         use lto_streamer_cache_append directly instead of returning a VEC.
24793         (preload_common_node): Remove.
24794         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
24795         track seen nodes.
24796         (lto_streamer_cache_create): Call lto_preload_common_nodes.
24797
24798 2011-05-20  Richard Guenther  <rguenther@suse.de>
24799
24800         PR tree-optimization/49079
24801         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
24802         MEM_REFs correctly for the trailing array access detection.
24803         Special case constants the same way as decls for overall size
24804         constraining.
24805
24806 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
24807
24808         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
24809         argument expansion.
24810
24811 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
24812
24813         PR tree-optimization/49073
24814         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
24815         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
24816         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
24817
24818 2011-05-20  Richard Guenther  <rguenther@suse.de>
24819
24820         PR middle-end/48849
24821         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
24822         of pointer types the same way the middle-end does.
24823
24824 2011-05-20  Richard Guenther  <rguenther@suse.de>
24825
24826         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
24827         or pointer-to chains.  Delay all fixup to uniquify_nodes.
24828
24829 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
24830
24831         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
24832         (fma4_fmaddsub): Likewise
24833
24834 2011-05-19  Jan Hubicka  <jh@suse.cz>
24835
24836         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
24837         (GIMPLE_TYPE_PAIR_SIZE): New macro.
24838         (type_pair_cache): New static var.
24839         (lookup_type_pair): Use fixed sized custom hash; make inline.
24840         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
24841         calls of lookup_type_pair.
24842         (print_gimple_types_stats): Remove cache stats.
24843         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
24844         and gtc_ob.
24845
24846 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
24847
24848         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
24849         when TARGET_RDRND is active.
24850         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
24851         Generate dummy SImode target register when target is NULL.
24852
24853 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
24854
24855         * config/arm/arm-fpus.def: New.
24856         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
24857         arm-fpus.def.
24858         * config/arm/arm-tables.opt: Regenerate.
24859         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
24860         (arm_option_override): Don't decode FPU name to string here.
24861         * config/arm/arm.opt (mfpu=): Use Enum.
24862         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
24863         Update dependencies.
24864
24865 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
24866
24867         * collect2.c: Include diagnostic.h.
24868         (fatal_perror, fatal, error, fancy_abort): Remove.
24869         (main): Set progname.  Call xmalloc_set_program_name and
24870         diagnostic_initialize.
24871         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
24872         scan_libraries, resolve_lib_name): Call fatal_error instead of
24873         fatal and fatal_perror.
24874         * collect2.h (error, fatal, fatal_perror): Don't declare.
24875         * tlink.c: Include diagnostic-core.h.
24876         (recompile_files): Call fatal_error instead of fatal_perror.
24877         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
24878         pretty-print.o and input.o.
24879         (collect2.o, tlink.o): Update dependencies.
24880
24881 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24882
24883         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
24884
24885 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24886
24887         PR target/40483
24888         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
24889         COMDAT group syntax, both SPARC and x86 variants.
24890         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
24891         * configure: Regenerate.
24892         * config/sol2.h (TARGET_SOLARIS): Define.
24893         (PUSHSECTION_FORMAT): Remove.
24894         (SECTION_NAME_FORMAT): Define.
24895         * config/sol2.c: Include hashtab.h.
24896         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
24897         expansion, using SECTION_NAME_FORMAT.
24898         (solaris_comdat_htab): New variable.
24899         (struct comdat_entry): Define.
24900         (comdat_hash): New function.
24901         (comdat_eq): New function.
24902         (solaris_elf_asm_comdat_section): New function.
24903         (solaris_define_comdat_signature): New function.
24904         (solaris_code_end): New function.
24905         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
24906         (solaris_code_end): Declare.
24907         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
24908         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
24909         solaris_code_end.
24910         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
24911         Remove ATTRIBUTE_UNUSED.
24912         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
24913         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
24914         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
24915         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
24916         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
24917         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
24918         (PUSHSECTION_FORMAT): Remove.
24919         (SECTION_NAME_FORMAT): Redefine.
24920
24921 2011-05-19  Kai Tietz  <ktietz@redhat.com>
24922
24923         * tree-cfg.c (verify_gimple_assign_binary): Barf on
24924         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
24925         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
24926
24927 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
24928             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24929
24930         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
24931
24932 2011-05-19  Richard Guenther  <rguenther@suse.de>
24933
24934         PR middle-end/48985
24935         * tree-object-size.c (addr_object_size): If the pointed-to
24936         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
24937
24938 2011-05-19  Richard Guenther  <rguenther@suse.de>
24939
24940         * gimple.c (gimple_types_compatible_p_1): Compare names of
24941         the types themselves.
24942         (iterative_hash_gimple_type): And hash them that way.
24943         (gimple_register_type_1): If we register a main variant properly
24944         initialize the leader to ourselves.
24945
24946 2011-05-19  Tom de Vries  <tom@codesourcery.com>
24947
24948         PR target/45098
24949         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
24950         get_loop_invariant_expr_id.
24951         (get_loop_invariant_expr_id): Use get_expr_id.
24952         (parm_decl_cost): New function.
24953         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
24954         Improve bound cost estimation.  Use different inv_expr_id for elim and
24955         express cases.
24956
24957 2011-05-19  Tom de Vries  <tom@codesourcery.com>
24958
24959         PR target/45098
24960         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
24961         cost_base.cost == 0.
24962
24963 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
24964
24965         PR target/49002
24966         * config/i386/sse.md
24967         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
24968         load cast.
24969
24970 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
24971
24972         PR tree-optimization/49039
24973         * tree-vrp.c (extract_range_from_binary_expr): For
24974         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
24975         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
24976
24977 2011-05-18  Tom de Vries  <tom@codesourcery.com>
24978
24979         PR target/45098
24980         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
24981
24982 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
24983
24984         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
24985         (*tls_global_dynamic_64): Ditto.
24986         (*tls_local_dynamic_base_32_gnu): Ditto.
24987         (*tls_local_dynamic_base_64): Ditto.
24988         (tls_initial_exec_64_sun): Ditto.
24989
24990 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
24991
24992         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
24993         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
24994         bf592-none.
24995         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
24996         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
24997         * config/bfin/bfin.c (bfin_cpus): Add bf592.
24998         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
24999         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
25000         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
25001         * config/bfin/elf.h (LIB_SPEC): Add bf592.
25002
25003 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
25004
25005         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
25006         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
25007         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
25008         target_thread_pointer, arm_structure_size_boundary, struct
25009         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
25010         struct abi_name, arm_all_abis): Remove.
25011         (arm_option_override) Don't process most enumerated option values here.
25012         Don't process target_fpe_name here.  Work with integer not string for
25013         structure size boundary; use separate diagnostics for each case.
25014         * config/arm/arm.h (enum float_abi_type, enum
25015         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
25016         to arm-opts.h.
25017         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
25018         arm_structure_size_boundary): Remove.
25019         * config/arm/arm.opt (mabi=): Use Enum and Init.
25020         (arm_abi_type): New Enum and EnumValue entries.
25021         (mfloat-abi=): Use Enum and Init.
25022         (float_abi_type): New Enum and EnumValue entries.
25023         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
25024         (mfp16-format=): Use Enum and Init.
25025         (arm_fp16_format_type): New Enum and EnumValue entries.
25026         (mstructure-size-boundary=): Use UInteger and Init.
25027         (mtp=): Use Enum and Init.
25028         (arm_tp_type): New Enum and EnumValue entries.
25029
25030 2011-05-18  Richard Guenther  <rguenther@suse.de>
25031
25032         PR tree-optimization/49018
25033         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
25034         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
25035         gimple_has_side_effects.
25036
25037 2011-05-18  Richard Guenther  <rguenther@suse.de>
25038
25039         * gimple.c (gimple_register_type_1): New function, split out from ...
25040         (gimple_register_type): ... here.  Avoid infinite recursion.
25041
25042 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
25043
25044         PR tree-optimization/41881
25045         * tree-vectorizer.h (struct _loop_vec_info): Add new field
25046         reduction_chains along with a macro for its access.
25047         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
25048         (destroy_loop_vec_info): Free reduction chains.
25049         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
25050         (vect_is_slp_reduction): New function.
25051         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
25052         (vect_create_epilog_for_reduction): Support SLP reduction chains.
25053         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
25054         definition types for reduction chains.
25055         (vect_supported_load_permutation_p): Don't allow permutations for
25056         reduction chains.
25057         (vect_analyze_slp_instance): Support reduction chains.
25058         (vect_analyze_slp): Try to build SLP instance from reduction chains.
25059         (vect_get_constant_vectors):  Handle reduction chains.
25060         (vect_schedule_slp_instance): Mark the first statement of the
25061         reduction chain as reduction.
25062
25063 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
25064
25065         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
25066         names for group elements access.
25067         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
25068         reduction chains as well.  Remove data reference and interleaving
25069         related words from the fields names.
25070         * tree-vect-loop.c (vect_transform_loop): Use new names for group
25071         elements access.
25072         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
25073         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
25074         vect_update_interleaving_chain, vect_same_range_drs,
25075         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
25076         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
25077         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
25078         vect_analyze_group_access, vect_analyze_data_ref_access,
25079         vect_create_data_ref_ptr, vect_transform_strided_load,
25080         vect_record_strided_load_vectors): Likewise.
25081         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
25082         vect_model_load_cost, vectorizable_store, vectorizable_load,
25083         vect_remove_stores, new_stmt_vec_info): Likewise.
25084         * tree-vect-slp.c (vect_build_slp_tree,
25085         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
25086
25087 2011-05-18  Richard Guenther  <rguenther@suse.de>
25088
25089         PR middle-end/48989
25090         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
25091         operand verification.
25092         (verify_gimple_assign_binary): Likewise.
25093         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
25094         to non-1-precision BOOLEAN_TYPEs.
25095
25096 2011-05-18  Tom de Vries  <tom@codesourcery.com>
25097
25098         PR target/45098
25099         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
25100
25101 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
25102
25103         PR tree-optimization/49000
25104         * tree-ssa.c (execute_update_addresses_taken): Call
25105         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
25106         be rewritten and decl has been marked for renaming, reset
25107         the debug stmt.
25108
25109 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
25110
25111         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
25112         enum_opts_set when testing if attributes have set -mfpmath=.
25113
25114 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
25115
25116         * config/mips/mips.c (mips_handle_option): Remove unused variable.
25117
25118 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
25119
25120         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
25121         info->entry with 0
25122         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
25123         id.transform_lang_insert_block with NULL.
25124
25125 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
25126
25127         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
25128         (output_fp_compare): Change args 3 and 4 to bool.
25129         (ix86_expand_call): Change arg 6 to bool.
25130         (ix86_attr_length_immediate_default): Change arg 2 to bool.
25131         (ix86_attr_length_vex_default): Change arg 3 to bool.
25132         * config/i386/i386.md: Update all uses.
25133         * config/i386/i386.c: Ditto.
25134         (ix86_flags_dependent): Change return type to bool.
25135
25136 2011-05-17  Richard Guenther  <rguenther@suse.de>
25137
25138         * gimple.c (type_hash_pair_compare): Fix comparison.
25139
25140 2011-05-17  Richard Guenther  <rguenther@suse.de>
25141
25142         * gimple.c (iterative_hash_gimple_type): Simplify singleton
25143         case some more, fix final hash value of the non-singleton case.
25144
25145 2011-05-17  Richard Guenther  <rguenther@suse.de>
25146
25147         PR bootstrap/49013
25148         Revert
25149         2011-05-16  Richard Guenther  <rguenther@suse.de>
25150
25151         * gimple.c (gimple_types_compatible_p_1): Use names of the
25152         type itself, not its main variant.
25153         (iterative_hash_gimple_type): Likewise.
25154
25155 2011-05-17  Richard Guenther  <rguenther@suse.de>
25156
25157         * gimple.c (gimple_register_canonical_type): Use the main-variant
25158         leader for computing the canonical type.
25159
25160 2011-05-17  Nick Clifton  <nickc@redhat.com>
25161
25162         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
25163         moves.
25164
25165         * config/rx/rx.md: Add peephole to remove redundant extensions
25166         after loads.
25167         (bitset_in_memory): Use rx_restricted_mem_operand.
25168         (bitinvert_in_memory): Likewise.
25169         (bitclr_in_memory): Likewise.
25170
25171 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
25172             Nick Clifton  <nickc@redhat.com>
25173
25174         * config/rx/rx.md: Add peepholes to match a register move followed
25175         by a comparison of the moved register.  Replace these with an
25176         addition of zero that does both actions in one instruction.
25177
25178 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
25179
25180         PR target/48986
25181         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
25182         predicate to allow CONST_INT.
25183         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
25184
25185 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
25186
25187         * opts-common.c (opt_enum_arg_to_value): New.
25188         * opts.h (opt_enum_arg_to_value): Declare.
25189         * config/i386/i386.opt (fpmath): Remove.
25190         (mfpmath=): Use Enum, Init and Save.
25191         (fpmath_unit): New Enum and EnumValue entries.
25192         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
25193         name for function fpmath state.
25194         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
25195         * config/i386/i386.c: Include diagnostic.h.
25196         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
25197         (ix86_target_string): Take enum fpmath_unit value instead of string.
25198         (ix86_debug_options): Update call to ix86_target_string.
25199         (ix86_option_override_internal): Don't process fpmath strings here.
25200         (x86_function_specific_save, ix86_function_specific_restore):
25201         Don't handle fpmath state specially.
25202         (ix86_function_specific_print): Pass fpmath state to
25203         ix86_target_string instead of printing in this function.
25204         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
25205         Handle enum attributes.
25206         (IX86_ATTR_ENUM, ix86_opt_enum): New.
25207         (ix86_valid_target_attribute_tree): Update option_strings
25208         handling.  Handle fpmath as enum option.
25209         (ix86_can_inline_p): Update field names for function fpmath state.
25210         (ix86_expand_builtin): Update call to ix86_target_string.
25211         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
25212         (ix86_fpmath): Remove.
25213         * config/i386/t-i386 (i386.o): Update dependencies.
25214
25215 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
25216
25217         PR preprocessor/48677
25218         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
25219         from decoded_options[0], not from itself.
25220
25221 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
25222
25223         * config/i386/constraints.md (z): New constraint.
25224         * config/i386/i386.c (c): New mode attribute.
25225         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
25226         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
25227         constraint for operand 0.
25228         (*call_vzeroupper): Ditto.
25229         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
25230         (*call_rex64_ms_sysv_vzeroupper): Ditto.
25231         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
25232         Use "lzm" constraint for operand 0.
25233         (*call_pop_vzeroupper): Ditto.
25234         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
25235         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
25236         constraint for operand 0.
25237         (*sibcall_vzeroupper): Ditto.
25238         (*sibcall_rex64_ms_sysv): Ditto.
25239         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
25240         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
25241         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
25242         (*sibcall_pop_vzeroupper): Ditto.
25243         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
25244         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
25245         mode iterator.  Use "<c>zm" constraint for operand 1.
25246         (*call_value_vzeroupper): Ditto.
25247         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
25248         for operand 1.
25249         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
25250         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
25251         *call_value_pop_1.  Use "lzm" constraint for operand 1.
25252         (*call_value_pop_vzeroupper): Ditto.
25253         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
25254         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
25255         mode iterator.  Use "Uz" constraint for operand 1.
25256         (*sibcall_value_vzeroupper): Ditto.
25257         (*sibcall_value_rex64_ms_sysv): Ditto.
25258         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
25259         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
25260         constraint for operand 1.
25261         (*sibcall_value_pop_vzeroupper): Ditto.
25262         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
25263         and "z" constraint for operand 2.
25264         (*tls_global_dynamic_32_gnu): Ditto.
25265         (*tls_local_dynamic_base_32_gnu): Ditto.
25266         (*tls_local_dynamic_base_64): Ditto.
25267         (*tls_local_dynamic_32_once): Ditto.
25268         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
25269         Update all callers.
25270         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
25271
25272 2011-05-16  Richard Guenther  <rguenther@suse.de>
25273
25274         * gimple.c (gimple_types_compatible_p_1): Use names of the
25275         type itself, not its main variant.
25276         (iterative_hash_gimple_type): Likewise.
25277
25278 2011-05-16  Richard Guenther  <rguenther@suse.de>
25279
25280         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
25281         always visit pointer target and function result and argument types.
25282
25283 2011-05-16  Jason Merrill  <jason@redhat.com>
25284
25285         PR c++/48999
25286         * tree-inline.c (copy_statement_list): Put back recursion.
25287
25288 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
25289
25290         PR target/27663
25291         PR target/41076
25292         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
25293         * config/avr/avr.md ("*ior<mode>qi.byte0",
25294         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
25295
25296 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
25297
25298         PR target/45099
25299         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
25300         register is needed for a function argument.
25301
25302 2011-05-16  Richard Guenther  <rguenther@suse.de>
25303
25304         * gimple.c (struct type_hash_pair): New type.
25305         (type_hash_pair_compare): New function.
25306         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
25307
25308 2011-05-16  Revital Eres  <revital.eres@linaro.org>
25309
25310         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
25311
25312 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
25313
25314         * config/i386/i386.md (floating point move splitters): Fix
25315         usage of standard_80387_constant_p.
25316         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
25317
25318 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
25319
25320         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
25321
25322 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25323
25324         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
25325         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
25326         (tree_ssa_lim_finalize): Likewise.
25327
25328 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
25329
25330         * config/i386/constraint.md (Yd, Yx): New register constraints.
25331         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
25332         Yd conditional register constraint.
25333         (*movtf_internal): Use standard_sse_constant_opcode.
25334         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
25335         Yx conditional register constraint.
25336         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
25337         Yd conditional register constraint.  Use standard_sse_constant_p to
25338         check for valid SSE constants and call standard_sse_constant_opcode to
25339         output SSE insn.
25340         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
25341         constants and call standard_sse_constant_opcode to output SSE insn.
25342         * config/i386/i386.c (ix86_option_ovverride_internal): Set
25343         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
25344         optimize_size is set.
25345         (standard_sse_constant_opcode): Output conditional AVX insn templates.
25346
25347 2011-05-14  Tobias Burnus  <burnus@net-b.de>
25348
25349         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
25350
25351 2011-05-13  Martin Jambor  <mjambor@suse.cz>
25352
25353         * ipa-prop.c (ipa_cst_from_jfunc): New function.
25354         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
25355         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
25356         (evaluate_conditions_for_ipcp_clone): Removed.
25357         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
25358         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
25359         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
25360
25361 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
25362
25363         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
25364         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
25365         lieu of MAY_HAVE_DEBUG_STMTS.
25366         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
25367         debug statements if !MAY_HAVE_DEBUG_STMTS.
25368
25369 2011-05-13  Martin Thuresson  <martint@google.com>
25370
25371         PR gcov-profile/47793
25372         * libgcov.c (gcov_exit): Support relative profile paths.
25373         * doc/invoke.texi (-fprofile-dir): Update for above change.
25374
25375 2011-05-13  Richard Guenther  <rguenther@suse.de>
25376
25377         * gimple.c (gimple_canonical_types_compatible_p): Do not use
25378         type-pair caching, do not compare hashes.
25379
25380 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
25381
25382         PR middle-end/48965
25383         * tree-cfg.c (edge_to_cases_cleanup): Return true.
25384         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
25385
25386 2011-05-13  Kai Tietz  <ktietz@redhat.com>
25387
25388         * gimplify.c (gimplify_expr): Make sure operand is boolified.
25389         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
25390         compatible type for TRUTH_NOT_EXPR.
25391
25392 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
25393
25394         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
25395         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
25396         can_create_pseudo_p ().
25397
25398 2011-05-13  Richard Guenther  <rguenther@suse.de>
25399
25400         PR lto/48978
25401         * gimple.c (iterative_hash_gimple_type): Revert change in
25402         pointer target and function result and argument hashing.
25403
25404 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
25405
25406         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
25407         (*movxf_internal_nointeger): Ditto.
25408         (*movdf_internal_rex64): Ditto.
25409         (*movdf_internal): Ditto.
25410         (*movdf_internal_nointeger): Ditto.
25411         (*movsf_internal): Ditto.
25412         (sincos splitters): Use can_create_pseudo ().
25413
25414 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
25415
25416         * config/i386/i386-opts.h: New.
25417         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
25418         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
25419         ix86_section_threshold): Remove.
25420         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
25421         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
25422         OPT_mbranch_cost_.
25423         (ix86_option_override_internal): Don't decode strings for options
25424         other than -march=, -mtune= and -mfpmath=.  Don't allow for
25425         __attribute__ uses in remaining diagnostics for options with
25426         string arguments.  Don't check for integer arguments being negative.
25427         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
25428         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
25429         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
25430         ix86_branch_cost, ix86_section_threshold): Remove.
25431         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
25432         HeaderInclude.
25433         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
25434         but not Var.
25435         (masm=): Use Enum and Init.
25436         (asm_dialect): New Enum and EnumValue entries.
25437         (mbranch-cost=): Use UInteger.
25438         (mlarge-data-threshold=): Use UInteger and Init.
25439         (mcmodel=): Use Enum and Init.
25440         (cmodel): New Enum and EnumValue entries.
25441         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
25442         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
25443         mregparm=): Use UInteger.
25444         (mstringop-strategy=): Use Enum and Init.
25445         (stringop_alg): New Enum and EnumValue entries.
25446         (mtls-dialect=): Use Enum and Init.
25447         (tls_dialect): New Enum and EnumValue entries.
25448         (mabi=): Use Enum and Init.
25449         (calling_abi): New Enum and EnumValue entries.
25450         (mveclibabi=): Use Enum and Init.
25451         (ix86_veclibabi): New Enum and EnumValue entries.
25452
25453 2011-05-13  Nick Clifton  <nickc@redhat.com>
25454
25455         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
25456         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
25457
25458 2011-05-13  Kai Tietz  <ktietz@redhat.com>
25459
25460         PR middle-end/48984
25461         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
25462         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
25463         (gimple_boolify): Check for cast for boolean_type_node instead for
25464         BOOLEAN_TYPE.
25465
25466 2011-05-13  Richard Guenther  <rguenther@suse.de>
25467
25468         PR tree-optimization/48172
25469         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
25470         multiplying by number of iterations for equal step.
25471         (vect_create_cond_for_alias_checks): Likewise.
25472
25473 2011-05-13  Andreas Schwab  <schwab@redhat.com>
25474
25475         * configure.ac: Use AS_HELP_STRING throughout.
25476         * configure: Regenerate.
25477
25478 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
25479
25480         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
25481         (ix86_emit_restore_regs_using_mov): Likewise.
25482         (ix86_emit_restore_sse_regs_using_mov): Likewise.
25483
25484 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
25485
25486         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
25487         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
25488         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
25489         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
25490         RTX_OK_FOR_OLO10_P): ...here.
25491         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
25492         SYMBOLIC_CONST.
25493
25494 2011-05-12  Kai Tietz  <ktietz@redhat.com>
25495
25496         * gimplify.c (gimple_boolify): Re-boolify expression
25497         arguments even if expression type is of kind BOOLEAN_TYPE.
25498         (gimplify_boolean_expr): Removed.
25499         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
25500         and XOR. Additional take care that we keep expression's type.
25501         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
25502         of TRUTH_AND|OR|XOR_EXPR.
25503
25504 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
25505
25506         PR tree-optimization/48975
25507         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
25508         on all bbs here and free and clear ifc_bbs at the end.
25509
25510 2011-05-12  Richard Guenther  <rguenther@suse.de>
25511
25512         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
25513         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
25514         until after simple checks.
25515         (gimple_types_compatible_p): Likewise.
25516         (iterative_hash_gimple_type): Always hash pointer targets
25517         and function return and argument types.
25518         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
25519         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
25520         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
25521         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
25522         completely in the simple compare section.
25523         (gimple_register_canonical_type): Query the cache again after
25524         registering.
25525
25526 2011-05-12  Richard Guenther  <rguenther@suse.de>
25527
25528         PR tree-optimization/48172
25529         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
25530         the number of iterations from the segment size calculation.
25531         (vect_create_cond_for_alias_checks): Adjust.
25532
25533 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
25534
25535         PR debug/48967
25536         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
25537         if validate_subreg fails.
25538
25539 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
25540
25541         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
25542         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
25543         early.
25544
25545 2011-05-12  DJ Delorie  <dj@redhat.com>
25546
25547         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
25548         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
25549         created builtin into rx_builtins array.
25550         (rx_builtin_decl): New function.
25551         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
25552
25553 2011-05-12  DJ Delorie  <dj@redhat.com>
25554             Nick Clifton  <nickc@redhat.com>
25555
25556         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
25557         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
25558         (rx_is_legitimate_address): Add pre-decrement and post-increment
25559         addressing in HImode and QImode.  Fix test for out of range
25560         REG+INT addressing.
25561         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
25562         (rx_align_for_label): Test label before extracting its usage count.
25563         (rx_adjust_insn_lengths): Fix selection of insn codes.
25564         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
25565
25566 2011-05-11  Jason Merrill  <jason@redhat.com>
25567
25568         * tree.c (type_hash_canon): Use struct tree_type_non_common.
25569
25570 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
25571
25572         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
25573         reindent the subsequent block.
25574
25575 2011-05-11  Satoru Takabayashi  <satorux@google.com>
25576             Paul Pluzhnikov  <ppluzhnikov@google.com>
25577
25578         * doc/install.texi (Configuration): Document --with-linker-hash-style.
25579         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
25580         * config.in: Add LINKER_HASH_STYLE.
25581         * configure.ac: Add --with-linker-hash-style.
25582         * configure: Regenerate.
25583
25584 2011-05-11  Richard Guenther  <rguenther@suse.de>
25585
25586         PR middle-end/48964
25587         * gimple.c (iterative_hash_canonical_type): Fix typo.
25588
25589 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
25590
25591         * config/i386/i386.c (legitimize_tls_address)
25592         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
25593         expanders directly for TARGET_GNU2_TLS.  Determine pic and
25594         __tls_get_addr symbol reference here.  Update call to
25595         gen_tls_global_dynamic_{32,64} for added arguments.
25596         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
25597         expanders directly for TARGET_GNU2_TLS.  Determine
25598         __tls_get_addr symbol reference here.  Update call to
25599         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
25600         unique UNSPEC REG_EQUIV to libcall block.
25601         (ix86_tls_get_addr): Declare static.
25602         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
25603         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
25604         Do not determine pic and __tls_get_addr symbol reference here. Do not
25605         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
25606         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
25607         (tls_global_dynamic_64): Add operand 2.  Do not determine
25608         __tls_get_addr symbol reference here.  Do not call
25609         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
25610         (tls_local_dynamic_base64): Ditto for operand 1.
25611
25612 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
25613
25614         * function.c (expand_function_start): Initialize stack_check_probe_note
25615         only if the generic stack checking mechanism is used.
25616
25617 2011-05-11  Richard Guenther  <rguenther@suse.de>
25618
25619         PR tree-optimization/15256
25620         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
25621         (A & B) | C, combine (A op CST1) op CST2.
25622         (tree_ssa_forward_propagate_single_use_vars): Only bother to
25623         visit assigns that have uses.
25624
25625 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
25626
25627         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
25628         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
25629         (unpack_ts_type_common_value_fields): ...this.  Update comment.
25630         (unpack_value_fields): Adjust for renaming.
25631         (lto_input_ts_type_tree_pointers): Split into...
25632         (lto_input_ts_type_common_tree_pointer): ...this and...
25633         (lto_input_ts_type_non_common_tree_pointers): ...this.
25634         (lto_input_tree_pointers): Adjust for above split.
25635         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
25636         (pack_ts_type_common_value_fields): ...this.  Update comment.
25637         (lto_output_ts_type_tree_pointers): Split into...
25638         (lto_output_ts_type_common_tree_pointers): ...this and...
25639         (lto_output_ts_type_non_common_tree_pointers): ...this.
25640         (lto_output_tree_pointers): Adjust for above split.
25641         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
25642         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
25643         * stor-layout.c (vector_type_mode): Adjust location of mode field.
25644         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
25645         Define.
25646         (struct tree_type): Split into...
25647         (struct tree_type_common: ...this and...
25648         (struct tree_type_with_lang_specific): ...this and...
25649         (struct tree_type_non_common): ...this.  Adjust accessor macros
25650         accordingly.
25651         (TYPE_VALUES_RAW): Define.
25652         (union tree_node): Update for above changes.
25653         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
25654         TS_TYPE_NON_COMMON.
25655         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
25656         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
25657         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
25658         * treestructu.def (TS_TYPE): Remove.
25659         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
25660         Define.
25661
25662 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
25663
25664         PR debug/48159
25665         * tree-ssa.c (reset_debug_uses): New function.
25666         * tree-flow.h (reset_debug_uses): New prototype.
25667         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
25668         * tree-loop-distribution.c (generate_loops_for_partition): Call
25669         reset_debug_uses on the stmts that will be removed.  Keep around
25670         all debug stmts, don't count them as bits in partition bitmap.
25671         (generate_builtin): Don't count debug stmts or labels as bits in
25672         partition bitmap.
25673
25674 2011-05-11  Richard Guenther  <rguenther@suse.de>
25675
25676         * gimple.c (gimple_type_hash_1): Merge with ...
25677         (gimple_type_hash): ... this.
25678         (gtc_visit): Remove mode parameter and simplify accordingly.
25679         (gimple_types_compatible_p_1): Likewise.
25680         (gimple_types_compatible_p): Likewise.
25681         (iterative_hash_gimple_type): Likewise.
25682         (visit): Likewise.
25683         (gimple_type_eq): Adjust.
25684
25685 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25686
25687         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
25688         enters the branch create an anti edge in the opposite direction
25689         to prevent the creation of reg-moves.
25690         * modulo-sched.c: Adjust comment to reflect the fact we are
25691         scheduling closing branch.
25692         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
25693         (stage_count): New field in struct partial_schedule.
25694         (calculate_stage_count): New function.
25695         (normalize_sched_times): Rename to reset_sched_times and handle
25696         incrementing the sched time of the nodes by a constant value
25697         passed as parameter.
25698         (duplicate_insns_of_cycles): Skip closing branch.
25699         (sms_schedule_by_order): Schedule closing branch.
25700         (ps_insn_find_column): Handle closing branch.
25701         (sms_schedule): Call reset_sched_times and adjust the code to
25702         support scheduling of the closing branch.
25703         (ps_insert_empty_row): Update calls to normalize_sched_times
25704         and rotate_partial_schedule functions.
25705
25706 2011-05-11  Richard Guenther  <rguenther@suse.de>
25707
25708         PR middle-end/48953
25709         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
25710
25711 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
25712
25713         * opts.c (finish_options): Move warning settings from process_options.
25714         * toplev.c (process_options): Move warning settings to finish_options.
25715
25716 2011-05-11  Richard Guenther  <rguenther@suse.de>
25717
25718         PR tree-optimization/18041
25719         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
25720         (simplify_bitwise_binary): ... this.  Handle operand conversions
25721         by applying them to the result instead.
25722         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
25723
25724 2011-05-11  Richard Guenther  <rguenther@suse.de>
25725
25726         * gimple.c (gimple_canonical_types_compatible_p): Split out
25727         from gimple_types_compatible_p and friends.  Do not recurse
25728         to pointed-to types.
25729         (gimple_canonical_type_eq): Use it.
25730         (iterative_hash_canonical_type): Split out from
25731         iterative_hash_gimple_type and friends.  Do not recurse
25732         to pointed-to types.
25733         (gimple_canonical_type_hash): Use it, allocate the hash here.
25734
25735 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25736
25737         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
25738         recognizing doloop.
25739
25740 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25741
25742         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
25743         instead of PREV_INSN.
25744
25745 2011-05-11  Revital Eres  <revital.eres@linaro.org>
25746
25747         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
25748         * loop-doloop.c (doloop_condition_get): Likewise.
25749         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
25750         (doloop_end): New.
25751         * config/arm/arm.md (*addsi3_compare0): Remove "*".
25752
25753 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
25754
25755         * tree.def (CASE_LABEL_EXPR): Add an operand.
25756         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
25757
25758 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25759
25760         * c-decl.c (c_override_global_bindings_to_false): Remove.
25761         (global_bindings_p): Don't check
25762         c_override_global_bindings_to_false.
25763         * c-tree.h (c_override_global_bindings_to_false): Remove.
25764         * c-typeck.c (composite_type): Don't set
25765         c_override_global_bindings_to_false.
25766
25767 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
25768
25769         PR target/48857, 48495
25770         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
25771         (VSX_MODE): Ditto.
25772         (VSX_MOVE_MODE): Ditto.
25773         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
25774         VSX vector types.  Add V2DImode.
25775         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
25776         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
25777         (MODES_TIEABLE_P): Ditto.
25778
25779         * config/rs6000/rs6000.c (rs6000_emit_move): Use
25780         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
25781         VSX_VECTOR_MODE.
25782         (init_cumulative_args): Ditto.
25783         (rs6000_function_arg_boundary): Ditto.
25784         (rs6000_function_arg_advance_1): Ditto.
25785         (rs6000_function_arg): Ditto.
25786         (rs6000_function_ok_for_sibcall): Ditto.
25787         (emit_frame_save): Ditto.
25788         (rs6000_function_value): Ditto.
25789         (rs6000_libcall_value): Ditto.
25790
25791 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25792
25793         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
25794         i386/darwin-lib.h to $libgcc_tm_file.
25795         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
25796
25797 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25798
25799         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
25800
25801 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25802
25803         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
25804         * config/rs6000/rs6000-tables.opt: New file (generated).
25805         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
25806         rs6000/rs6000-tables.opt to extra_options.
25807         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
25808         * config/rs6000/rs6000.c (rs6000_select): Remove.
25809         (processor_target_table): Move contents to rs6000-cpus.def.
25810         (darwin_rs6000_override_options): Check
25811         global_options_set.x_rs6000_cpu_index instead of
25812         rs6000_select[1].string.
25813         (rs6000_option_override_internal): Likewise.
25814         (rs6000_handle_option): Don't assert that global structures are in
25815         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
25816         (rs6000_default_cpu): New variable.
25817         (rs6000_file_start): Set it instead of local default_cpu.  Check
25818         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
25819         global_options_set.x_rs6000_tune_index instead of rs6000_select.
25820         (rs6000_darwin_file_start): Check rs6000_default_cpu and
25821         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
25822         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
25823         rs6000_select): Remove.
25824         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
25825         Remove.
25826         (mcpu=, mtune=): Use Var, Init, Enum and Save.
25827         * config/rs6000/t-rs6000
25828         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
25829         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
25830         global_options_set.x_rs6000_cpu_index instead of
25831         rs6000_select[1].string.
25832         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
25833         global_options_set.x_rs6000_cpu_index instead of
25834         rs6000_select[1].string.
25835
25836 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
25837
25838         * config.gcc (libgcc_tm_file): Define instead of including files
25839         from ../../libgcc/config/ in tm_file.
25840         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
25841         * configure: Regenerate.
25842         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
25843         libgcc_tm.h, cs-libgcc_tm.h): New.
25844         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
25845         (clean): Remove libgcc_tm.h.
25846         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
25847         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
25848         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
25849
25850 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
25851
25852         PR target/48896
25853         * config/avr/avr.c (avr_ret_register): Return unsigned int
25854         instead of int.
25855         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
25856         it to avr_libcall_value.
25857         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
25858         expand_expr.
25859         (avr_expand_binop_builtin): Ditto.
25860         (avr_expand_unop_builtin): Ditto.
25861
25862 2011-05-10  DJ Delorie  <dj@redhat.com>
25863
25864         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
25865         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
25866         * config/rx/rx.c (rx_align_for_label): Add label and
25867         uses_threshold parameters.  Do not align when the label is not
25868         used enough.
25869         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
25870
25871 2011-05-10  Richard Guenther  <rguenther@suse.de>
25872
25873         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
25874         a series of conversions and apply foldings similar to what
25875         fold-const does.
25876         (tree_ssa_forward_propagate_single_use_vars): Call it.
25877
25878 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
25879
25880         PR tree-optimization/48611
25881         PR tree-optimization/48794
25882         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
25883         referenced from RESX or EH_DISPATCH arguments.
25884
25885         PR debug/48928
25886         * dfp.c (decimal_to_decnumber): Handle conversion from
25887         dconst{1,2,m1,half}.
25888
25889 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25890
25891         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
25892         for !flag_prefer_avx128.
25893         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
25894
25895 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
25896
25897         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
25898         (fold_ternary_loc): Use expr_location_or.
25899
25900 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
25901
25902         PR debug/48853
25903         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
25904         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
25905         Pmode and mem_mode is not VOIDmode.
25906
25907 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
25908
25909         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
25910         TYPE_QUAL_RESTRICT): Convert to enum.
25911
25912 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25913
25914         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
25915         (const_pow2_1_to_8_operand): Ditto.
25916         (const_pow2_1_to_128_operand): Ditto.
25917         (const_pow2_1_to_32768_operand): Ditto.
25918         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
25919         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
25920         in insn constraint to check integer value of operand 3.
25921         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
25922
25923         (PINSR_MODE): New mode iterator.
25924         (sse2p4_1): New mode attribute.
25925         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
25926         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
25927         iterator.  Use const_int_operand instead of
25928         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
25929         exact_log2 in insn constraint to check integer value of operand 3.
25930
25931 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25932
25933         * config/i386/sse.md (blendbits): Remove mode attribute.
25934         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
25935         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
25936         Check integer value of operand 3 in insn constraint.
25937
25938 2011-05-09  Richard Guenther  <rguenther@suse.de>
25939
25940         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
25941         for diagnostics.
25942         (lto_symtab_merge): Likewise.  Do not register types here.
25943         (lto_symtab_merge_decls_2): Likewise.
25944         (lto_symtab_merge_decls_1): Likewise.
25945         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
25946         * gimple.c (enum gtc_mode): Declare.
25947         (gimple_types_compatible_p): Make static.
25948
25949 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25950
25951         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
25952         temporary register to match Pmode.
25953
25954 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25955
25956         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
25957         and *vec_concatv4si_1_avx.
25958
25959 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
25960
25961         PR rtl-optimization/48927
25962         * ira-conflicts.c (commutative_constraint_p): Use
25963         recog_data.alternative_enabled_p to disable alternatives where
25964         "enabled" attribute is false.
25965         (get_dup_num): Ditto.
25966         * ira-lives.c (single_reg_class): Ditto.
25967         (ira_implicitly_set_insn_hard_regs): Ditto.
25968
25969 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
25970
25971         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
25972         (dataflow_set_preserve_mem_locs): Likewise.
25973
25974 2011-05-09  Philipp Thomas  <pth@suse.de>
25975
25976         * config/mep/mep.c (mep_validate_vliw): Syntax description
25977         should not be translated.
25978
25979 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
25980
25981         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
25982         * config/mips/mips-tables.opt: New file (generated).
25983         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
25984         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
25985         MIPS_ARCH_OPTION_NATIVE): Define.
25986         * config/mips/mips.c (mips_cpu_info_table): Move contents to
25987         mips-cpus.def.
25988         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
25989         mips_parse_cpu): Remove.
25990         (mips_cpu_info_from_opt, mips_default_arch): New.
25991         (mips_handle_option): Don't assert that global structures are in
25992         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
25993         (mips_option_override): Use new variables and functions to set
25994         state of these options.  Use strcmp to check for individual CPU names.
25995         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
25996         definition.
25997         * config/mips/mips.opt (march=): Use ToLower and Enum.
25998         (mips): Use ToLower, Enum and Var.
25999         (mtune=): Use ToLower and Enum.
26000         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
26001
26002 2011-05-08  Jan Hubicka  <jh@suse.cz>
26003
26004         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
26005         Arrange type pairs to be UID ordered.
26006         (gimple_lookup_type_leader): Make inline.
26007
26008 2011-05-09  Nick Clifton  <nickc@redhat.com>
26009
26010         PR target/48899
26011         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
26012         PROCESSOR_DEFAULT.
26013
26014         PR target/48897
26015         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
26016         variable 's'.
26017
26018 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
26019
26020         * combine.c (simplify_comparison): Abstract out parts into...
26021         (simplify_compare_const): ... new function.
26022         (try_combine): Generalize parallel arithmetic/compare combining
26023         to call simplify_compare_const() and CANONICALIZE_COMPARE().
26024
26025 2011-05-08  Jan Hubicka  <jh@suse.cz>
26026
26027         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
26028         (cgraph_create_virtual_clone): Call hooks once virtual clone
26029         is finished.
26030         * cgraph.h (cgraph_clone_node): Update prototype.
26031         * ipa-cp.c (ipcp_estimate_growth): Use
26032         estimate_ipcp_clone_size_and_time.
26033         * ipa-inline-transform.c (clone_inlined_nodes): Update.
26034         * lto-cgraph.c (input_node): Update.
26035         * ipa-inline.c (recursive_inlining): Update.
26036         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
26037         (evaluate_conditions_for_known_args): Break out from ...
26038         (evaluate_conditions_for_edge): ... here.
26039         (evaluate_conditions_for_ipcp_clone): New function.
26040         (inline_node_duplication_hook): Update clone summary based
26041         on parameter map.
26042         (estimate_callee_size_and_time): Rename to ...
26043         (estimate_node_size_and_time): take NODE instead of EDGE;
26044         take POSSIBLE_TRUTHS as argument.
26045         (estimate_callee_size_and_time): Update.
26046         (estimate_ipcp_clone_size_and_time): New function.
26047         (do_estimate_edge_time): Update.
26048
26049 2011-05-08  Richard Guenther  <rguenther@suse.de>
26050
26051         PR middle-end/48908
26052         PR middle-end/48905
26053         * expmed.c (expand_shift_1): Compute adjusted constant shift
26054         amount manually.
26055
26056 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
26057
26058         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
26059
26060 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
26061
26062         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
26063
26064 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
26065
26066         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
26067
26068 2011-05-07  Jan Hubicka  <jh@suse.cz>
26069
26070         * ipa-inline-transform.c (inline_call): Account when program size
26071         decreases.
26072         * ipa-inline.c (relative_time_benefit): New function.
26073         (edge_badness): Reorganize to be power 2 based; fix thinko when
26074         computing badness for negative growth; update comments to match
26075         reality; better dumps.
26076
26077 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
26078
26079         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
26080         type to bool and adjust comment.
26081         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
26082         (fold_mathfn_compare): Remove calls to global_bindings_p.
26083         (fold_inf_compare): Likewise.
26084         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
26085         * c-tree.h (global_bindings_p): Adjust prototype.
26086         * c-decl.c (global_bindings_p): Return bool and simplify.
26087
26088 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
26089
26090         PR tree-optimization/48837
26091         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
26092         when accumulator transformation is performed.
26093
26094 2011-05-06  Jan Hubicka  <jh@suse.cz>
26095
26096         * i386.h (ix86_tune_indices): Add
26097         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
26098         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
26099         * i386.c (initial_ix86_tune_features): Add
26100         X86_SOFTARE_PREFETCHING_BENEFICIAL.
26101         (software_prefetching_beneficial_p): Remove predicate.
26102         (ix86_option_override_internal): Use new macro.
26103
26104 2011-05-06  Jan Hubicka  <jh@suse.cz>
26105
26106         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
26107
26108 2011-05-06  Jan Hubicka  <jh@suse.cz>
26109
26110         * cgraph.c (cgraph_add_thunk): Create real function node instead
26111         of alias node; finalize it and mark needed/reachale; arrange visibility
26112         to be right and add it into the corresponding same comdat group list.
26113         (dump_cgraph_node): Dump thunks.
26114         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
26115         cgraph_function_with_gimple_body_p,
26116         cgraph_first_function_with_gimple_body,
26117         cgraph_next_function_with_gimple_body): New functions.
26118         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
26119         New macros.
26120         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
26121         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
26122         * cgraphunit.c (cgraph_finalize_function): Only look into possible
26123         devirtualization when optimizing.
26124         (verify_cgraph_node): Verify thunks.
26125         (cgraph_analyze_function): Analyze thunks.
26126         (cgraph_mark_functions_to_output): Output thunks only in combination
26127         with function they are assigned to.
26128         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
26129         alias into normal node.
26130         (assemble_thunks): New functoin.
26131         (cgraph_expand_function): Use it.
26132         * lto-cgraph.c (lto_output_node): Stream thunks.
26133         (input_overwrite_node): Stream in thunks.
26134         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
26135         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
26136         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
26137         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
26138         (inline_analyze_function): Do not care about thunk jump functions.
26139         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
26140         * ipa-prop.c (ipa_prop_write_jump_functions): Use
26141         cgraph_function_with_gimple_body_p.
26142         * passes.c (do_per_function_toporder): Use
26143         cgraph_function_with_gimple_body_p.
26144         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
26145         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
26146         (function_called_by_processed_nodes_p): Likewise.
26147
26148 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
26149
26150         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
26151         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
26152         entries.
26153         (mabi=): Replace with separate entries for mabi=altivec,
26154         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
26155         mabi=ieeelongdouble and mabi=ibmlongdouble.
26156         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
26157         check for -mabi=spe without SPE ABI support here.
26158         (rs6000_handle_option): Replace OPT_mabi_ handling with
26159         OPT_mabi_altivec and OPT_mabi_spe handling.
26160
26161 2011-05-06  Cary Coutant  <ccoutant@google.com>
26162
26163         * dwarf2out.c (contains_subprogram_definition): New function.
26164         (should_move_die_to_comdat): Call it.
26165
26166 2011-05-06  Jeff Law  <law@redhat.com>
26167
26168         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
26169         remove_ctrl_stmt_and_useless_edges.
26170         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
26171         (fixup_template_block, thread_single_edge): Likewise.
26172         (mark_threaded_blocks): Use THREAD_TARGET.
26173
26174 2011-05-06  Alan Modra  <amodra@gmail.com>
26175
26176         PR target/48900
26177         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26178         const0_rtx as the arg to the dummy __tls_get_addr libcall.
26179
26180 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
26181
26182         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
26183         constraint modifier to "r".
26184
26185 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
26186
26187         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
26188         fall through for OPT_mcmodel_.
26189
26190 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26191
26192         * config/s390/s390.c (s390_asm_trampoline_template): Comment
26193         instruction sizes.
26194         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
26195
26196 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26197
26198         PR target/47930
26199         * config/arm/arm.opt (marm): Document it.
26200         (mthumb): Reject negative variant.
26201
26202 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
26203
26204         PR target/48898
26205         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
26206         Fix typo in "ccvt" variable name.
26207
26208 2011-05-06  Tristan Gingold  <gingold@adacore.com>
26209
26210         PR target/48895
26211         * config/vms/vms-ar.c (main): Remove cwd variable.
26212
26213 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
26214
26215         PR debug/48902
26216         * var-tracking.c (prepare_call_arguments): Move else before #endif.
26217
26218 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
26219
26220         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
26221         * gimplify.c (gimplify_switch_expr): Likewise.
26222         * omp-low.c (expand_omp_sections): Likewise.
26223         * tree-eh.c (lower_try_finally_switch): Likewise.
26224         (lower_eh_dispatch): Likewise.
26225         * tree.h (build_case_label): Declare.
26226         * tree.c (build_case_label): Define.
26227
26228 2011-05-05  Jason Merrill  <jason@redhat.com>
26229
26230         PR c++/40975
26231         * tree-inline.c (copy_tree_r): Use copy_statement_list.
26232         (copy_statement_list): Don't recurse.
26233         * stor-layout.c (copy_self_referential_tree_r): Don't allow
26234         STATEMENT_LIST.
26235
26236 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
26237
26238         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
26239         through from -mfpu= handling.
26240         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
26241
26242 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
26243
26244         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
26245         POST_MODIFY.
26246
26247 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
26248
26249         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
26250         for 11.31.
26251         (hppa[12]*-*-hpux11*): Ditto.
26252         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
26253         * config/ia64/hpux-unix2003.h: New.
26254         * config/pa/pa-hpux1131.opt: New.
26255         * config/pa/pa-hpux1131.h: New.
26256         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
26257         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
26258         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
26259
26260 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
26261
26262         PR debug/48853
26263         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
26264         instead of mode as 3rd argument to recursive call.
26265         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
26266         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
26267         VOIDmode.
26268         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
26269         don't give up if mode is Pmode and mem_mode is not VOIDmode.
26270         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
26271         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
26272
26273 2011-05-05  Julian Brown  <julian@codesourcery.com>
26274
26275         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
26276         parenthesis in D-register case.
26277
26278 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
26279
26280         * opt-functions.awk (var_type_struct): Handle Enum options.
26281         * optc-gen.awk: Don't check range of variables of character type.
26282         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
26283         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
26284         rs6000_sdata_name, rs6000_explicit_options): Remove.
26285         (rs6000_option_override_internal): Check for -malign-power here.
26286         Use global_options_set instead of rs6000_explicit_options.
26287         (rs6000_parse_fpu_option): Remove.
26288         (rs6000_handle_option): Access variables via opts and opts_set
26289         pointers.  Use error_at and warning_at.  Add fall-through
26290         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
26291         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
26292         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
26293         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
26294         here.  Don't use rs6000_parse_fpu_option.
26295         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
26296         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
26297         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
26298         (mrecip=): Use Var.
26299         (mspe): Use Var and Save.
26300         (mtraceback=): Use Enum and Var.
26301         (rs6000_traceback_type): New Enum and EnumValue entries.
26302         (mfloat-gprs=): Use Enum, Var and Save.
26303         (rs6000_float_gprs): New Enum and EnumValue entries.
26304         (mlong-double-): use Var and Save.
26305         (msched-costly-dep=, minsert-sched-nops=): Use Var.
26306         (malign-): Use Enum and Var.
26307         (rs6000_alignment_flags): New Enum and EnumValue entries.
26308         (mfpu=): Use Enum.
26309         (fpu_type_t): New Enum and EnumValue entries.
26310         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
26311         global_options_set instead of rs6000_explicit_options.
26312         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
26313         global_options_set instead of rs6000_explicit_options.
26314         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
26315         global_options_set instead of rs6000_explicit_options.
26316         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
26317         global_options_set instead of rs6000_explicit_options.
26318         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
26319         global_options_set instead of rs6000_explicit_options.
26320         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
26321         global_options_set instead of rs6000_explicit_options.
26322         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
26323         definition.
26324         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
26325         global_options_set instead of rs6000_explicit_options.
26326         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
26327         (rs6000_cmodel): New Enum and EnumValue entries.
26328         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
26329         global_options_set instead of rs6000_explicit_options.
26330         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
26331         (mtls-size=): Use Enum and Var.
26332         (rs6000_tls_size): New Enum and EnumValue entries.
26333
26334 2011-05-05  Michael Matz  <matz@suse.de>
26335
26336         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
26337         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
26338         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
26339         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
26340         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
26341         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
26342         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
26343         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
26344         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
26345         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
26346         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
26347         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
26348         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
26349         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
26350         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
26351         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
26352
26353 2011-05-05  Richard Guenther  <rguenther@suse.de>
26354
26355         * expmed.c (expand_variable_shift): Rename to ...
26356         (expand_shift_1): ... this.  Take an expanded shift amount.
26357         For rotates recurse directly not building trees for the shift amount.
26358         (expand_variable_shift): Wrap around expand_shift_1.
26359         (expand_shift): Adjust.
26360
26361 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
26362
26363         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
26364
26365 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
26366
26367         * tree.h (get_pending_sizes): Remove prototype.
26368         (put_pending_size): Likewise.
26369         (put_pending_sizes): Likewise.
26370         * stor-layout.c (pending_sizes): Delete.
26371         (get_pending_sizes): Likewise.
26372         (put_pending_size): Likewise.
26373         (put_pending_sizes): Likewise.
26374         (variable_size): Do not call put_pending_size and tidy up.
26375         * function.h (struct function): Remove dont_save_pending_sizes_p.
26376         * lto-streamer-in.c (input_function): Do not stream it.
26377         * lto-streamer-out.c (output_function): Likewise.
26378         * tree-inline.c (initialize_cfun): Do not copy it.
26379         * c-decl.c (store_parm_decls): Do not set it.
26380         * omp-low.c (create_task_copyfn): Likewise.
26381         * tree-optimize.c (tree_rest_of_compilation): Likewise.
26382
26383 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
26384
26385         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
26386         conditions.
26387         (*movdf_internal): Ditto.
26388         (*movdf_internal_nointeger): Ditto.
26389         (*movsf_internal): Ditto.
26390
26391 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
26392
26393         * c-decl.c (finish_decl): Don't call get_pending_sizes.
26394         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
26395         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
26396         (c_variable_size): Remove.
26397         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
26398         call put_pending_sizes.
26399         (get_parm_info): Add parameter expr.  Use it to set
26400         arg_info->pending_sizes.
26401         (store_parm_decls): Use arg_info->pending_sizes instead or calling
26402         get_pending_sizes.
26403         * c-parser.c (c_parser_parms_declarator): Update call to
26404         c_parser_parms_list_declarator.
26405         (c_parser_parms_list_declarator): Take parameter expr.  Update
26406         call to push_parm_decl.  Update recursive call.  Don't call
26407         get_pending_sizes.  Update calls to get_parm_info.
26408         (c_parser_objc_method_definition): Update calls to
26409         c_parser_objc_method_decl and objc_start_method_definition.
26410         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
26411         (c_parser_objc_method_decl): Add parameter expr.  Update call to
26412         grokparm.
26413         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
26414         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
26415         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
26416
26417 2011-05-05  Michael Hope  <michael.hope@linaro.org>
26418
26419         PR pch/45979
26420         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
26421         __ARM_EABI__ hosts.
26422
26423 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26424
26425         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
26426         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
26427         (spu_output_mi_thunk): New function.
26428
26429 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26430
26431         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
26432         targetm.asm_out.print_operand.
26433         * config/sol2.c: Include target.h.
26434
26435 2011-05-04  Jan Hubicka  <jh@suse.cz>
26436
26437         * ipa-inline.c (reset_edge_caches): New function.
26438         (update_caller_keys): Add check_inlinablity_for; do not
26439         reset edge caches; remove now unnecesary loop.
26440         (update_callee_keys): Add comments; reset node_growth_cache of callee.
26441         (update_all_callee_keys): Likewise.
26442         (inline_small_functions): Sanity check cache; update code
26443         recomputing it.
26444
26445 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
26446
26447         PR rtl-optimization/47612
26448         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
26449         as the last insn of the sequence to be moved.
26450
26451 2011-05-04  Tobias Burnus  <burnus@net-b.de>
26452
26453         PR fortran/48864
26454         * doc/invoke.texi (Ofast): Document that it
26455         enables Fortran's -fno-protect-parens.
26456
26457 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
26458
26459         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
26460
26461 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
26462
26463         * stor-layout.c (variable_size): Do not issue errors.
26464
26465 2011-05-04  Richard Guenther  <rguenther@suse.de>
26466
26467         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
26468         for array-ref indices.
26469         (tree_coverage_counter_addr): Likewise.
26470         (build_fn_info_type): Use size_int for index types.
26471         (build_gcov_info): Likewise.
26472
26473 2011-05-04  Richard Guenther  <rguenther@suse.de>
26474
26475         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
26476         to build_int_cst.
26477         * c-typeck.c (really_start_incremental_init): Use bitsize_int
26478         for constructor indices.
26479         (push_init_level): Likewise.
26480
26481 2011-05-04  Richard Guenther  <rguenther@suse.de>
26482
26483         * explow.c (promote_mode): Move variable declarations before code.
26484
26485 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
26486
26487         * tree.h (build_function_type_array): Declare.
26488         (build_varargs_function_type_array): Declare.
26489         (build_function_type_vec, build_varargs_function_type_vec): Define.
26490         * tree.c (build_function_type_array_1): New function.
26491         (build_function_type_array): New function.
26492         (build_varargs_function_type_array): New function.
26493
26494 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
26495
26496         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
26497         before setting STMT_VINFO_TYPE.
26498
26499 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26500
26501         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
26502         instead of spu_pass_by_reference.
26503
26504 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26505
26506         * calls.c (emit_library_call_value_1): Invoke
26507         promote_function_mode hook on libcall arguments.
26508         * explow.c (promote_function_mode, promote_mode): Handle TYPE
26509         argument being NULL.
26510         * targhooks.c (default_promote_function_mode): Lisewise.
26511         * config/s390/s390.c (s390_promote_function_mode): Likewise.
26512         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
26513
26514         * doc/tm.texi: Document that TYPE argument might be NULL.
26515
26516 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
26517
26518         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
26519
26520 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
26521
26522         From Bernd Schmidt
26523         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
26524
26525 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26526
26527         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
26528         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
26529         Move ...
26530         * mips-tfile.c: ... here.
26531         Don't include coretypes.h, tm.h, filenames.h.
26532         (saber_stop): Remove definition and all calls.
26533         [__SABER__]: Remove.
26534         (__LINE__): Remove default.
26535         (Size_t, Ptrdiff_t): Remove definitions.
26536         Replace by size_t, ptrdiff_t.
26537         [!MIPS_DEBUGGING_INFO]: Remove.
26538         (SHASH_SIZE, THASH_SIZE): Remove defaults.
26539         (progname): Add const.
26540         (STATIC): Remove.
26541         Replace all uses by static.
26542         (ALIGN_SYMTABLE_OFFSET): Remove default.
26543         * mips-tdump.c: Don't include coretypes.h, tm.h.
26544         Remove !MIPS_IS_STAB guard.
26545         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
26546         $(TM_H), filenames.h dependencies.
26547         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
26548
26549 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
26550
26551         From Jie Zhang
26552         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
26553         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
26554
26555 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
26556
26557         From Bernd Schmidt
26558         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
26559         account and save/restore RETS.
26560         (PROFILE_BEFORE_PROLOGUE): Define.
26561         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
26562         the push insn to use predecrement.
26563
26564 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
26565
26566         From Jie Zhang
26567         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
26568
26569 2011-05-04  Nick Clifton  <nickc@redhat.com>
26570
26571         * config/mn10300/mn10300.c: Include cfgloop.h.
26572         (DUMP): New macro.
26573         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
26574         Lcc or a FLcc insn into the instruction stream.
26575         (mn10300_block_contains_call): New function.  Returns true if the
26576         given basic block contains a CALL insn.
26577         (mn10300_loop_contains_call_insn): New function.  Returns true if
26578         the given loop contains a CALL insn.
26579         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
26580         to use the SETLB and Lcc or FLcc insns.
26581         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
26582         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
26583         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
26584         disable the SETLB optimization.
26585         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
26586         __SETLB__ or __NO_SETLB__.
26587         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
26588         (movsf_internal): Handle MDR register.
26589         (cmpsi): Make visible.
26590         (setlb): New pattern.
26591         (Lcc): New pattern.
26592         (FLcc): New pattern.
26593
26594 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
26595
26596         PR target/48860
26597         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
26598         for reg<->xmm moves.
26599         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
26600         (vec_concatv2di_rex64_sse): Ditto.
26601         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
26602         (*vec_extractv2di_1_rex64): Ditto.
26603
26604         Revert:
26605         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
26606
26607         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
26608         reg<->xmm moves.
26609         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
26610
26611 2011-05-04  Richard Guenther  <rguenther@suse.de>
26612
26613         * tree.h (int_const_binop): Remove notrunc argument.
26614         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
26615         create integer constants that are properly truncated.
26616         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
26617         (const_binop): Remove zero notrunc argument to int_const_binop.
26618         (size_binop_loc): Likewise.
26619         (fold_div_compare): Likewise.
26620         (maybe_canonicalize_comparison_1): Likewise.
26621         (fold_comparison): Likewise.
26622         (fold_binary_loc): Likewise.
26623         (multiple_of_p): Likewise.
26624         * expr.c (store_constructor): Likewise.
26625         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
26626         (maybe_fold_stmt_addition): Likewise.
26627         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
26628         * stor-layout.c (layout_type): Likewise.
26629         * tree-data-ref.c (tree_fold_divides_p): Likewise.
26630         * tree-sra.c (build_ref_for_offset): Likewise.
26631         (build_user_friendly_ref_for_offset): Likewise.
26632         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
26633         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
26634         * tree-ssa-loop-niter.c (inverse): Likewise.
26635         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
26636         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
26637         * tree-switch-conversion.c (check_range): Likewise.
26638         (build_constructors): Likewise.
26639         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
26640         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
26641         (extract_range_from_assert): Likewise.
26642         (vrp_int_const_binop): Likewise.
26643         (extract_range_from_binary_expr): Likewise.
26644         (extract_range_from_unary_expr): Likewise.
26645         (check_array_ref): Likewise.
26646         (find_case_label_range): Likewise.
26647         (simplify_div_or_mod_using_ranges): Likewise.
26648         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
26649         comparing case labels for merging.
26650
26651 2011-05-03  Mark Wielaard  <mjw@redhat.com>
26652
26653         * dwarf2out.c (debug_str_hash_forced): Removed.
26654         (gen_label_for_indirect_string): Removed.
26655         (get_debug_string_label): Removed.
26656         (AT_string_form): Generate label directly.
26657         (output_indirect_string): Test indirect_string_node for
26658         DW_FORM_strp instead of checking label and refcount.
26659         (prune_indirect_string): Removed.
26660         (prune_unused_types): Don't check debug_str_hash_forced or
26661         call prune_indirect_string.
26662
26663 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
26664
26665         PR other/48093
26666         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
26667
26668 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
26669
26670         PR debug/47994
26671         PR debug/47919
26672         * combine.c (try_combine): Skip debug insns at m_split tests.
26673
26674 2011-04-26  Mark Wielaard  <mjw@redhat.com>
26675
26676         PR42288
26677         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
26678         when info_section_emitted.
26679
26680 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
26681
26682         * config/mips/mips-opts.h: New.
26683         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
26684         to mips-opts.h.
26685         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
26686         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
26687         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
26688         via opts pointer.
26689         * config/mips/mips.h (enum mips_code_readable_setting): Move to
26690         mips-opts.h.
26691         (mips_abi, mips_code_readable): Don't declare.
26692         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
26693         (mabi=): Use Enum and Var.
26694         (mips_abi): New Enum and EnumValue entries.
26695         (mcode-readable=): Use Enum and Var.
26696         (mips_code_readable_setting): New Enum and EnumValue entries.
26697         (mr10k-cache-barrier=): Use Enum and Var.
26698         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
26699
26700 2011-05-03  Jan Hubicka  <jh@suse.cz>
26701
26702         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
26703         replace hash by pointer map.
26704         (cgraph_node_set_element_def, cgraph_node_set_element,
26705         const_cgraph_node_set_element, varpool_node_set_element_def,
26706         varpool_node_set_element, const_varpool_node_set_element): Remove.
26707         (free_cgraph_node_set, free_varpool_node_set): New function.
26708         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
26709         * tree-emutls.c: Free varpool node set.
26710         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
26711         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
26712         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
26713         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
26714         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
26715         Move here from ipa.c; implement using pointer_map
26716         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
26717         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
26718         debug_cgraph_node_set, varpool_node_set_new,
26719         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
26720         dump_varpool_node_set, debug_varpool_node_set):
26721         Move to ipa-uitls.c.
26722         * passes.c (ipa_write_summaries): Update.
26723
26724 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26725
26726         From Mike Frysinger:
26727         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
26728         bf542/bf544/bf547/bf548/bf549.
26729
26730 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
26731
26732         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
26733
26734 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26735
26736         From Bernd Schmidt:
26737         * config/bfin/bfin.md (MOVCC): New mode_macro.
26738         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
26739         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
26740         comments from generated assembly.
26741
26742 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26743
26744         From Bernd Schmidt
26745         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
26746         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
26747         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
26748         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
26749         * config/bfin/lib1funcs.asm (___muldi3): New function.
26750
26751 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26752
26753         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
26754         build_function_type_list instead of build_function_type.
26755         Rearrange initialization of `args' to do so.
26756
26757 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26758
26759         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
26760         instead of build_function_type.
26761
26762 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26763
26764         * config/rs6000/rs6000.c (spe_init_builtins): Call
26765         build_function_type_list instead of build_function_type.
26766         (paired_init_builtins, altivec_init_builtins): Likewise.
26767         (builtin_function_type): Likewise.
26768
26769 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26770
26771         * config/sh/sh.c (sh_media_init_builtins): Call
26772         build_function_type_list instead of build_function_type.
26773
26774 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26775
26776         * config/sparc/sparc.c (sparc_file_end): Call
26777         build_function_type_list instead of build_function_type.
26778
26779 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26780
26781         * config/alpha/alpha.c (alpha_init_builtins): Call
26782         build_function_type_list instead of build_function_type.
26783
26784 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26785
26786         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
26787         build_function_type_list instead of build_function_type.
26788
26789 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26790
26791         * config/iq2000/i2000.c (iq2000_init_builtins): Call
26792         build_function_type_list instead of build_function_type.
26793         Delete `endlink' variable.
26794
26795 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26796
26797         * config/avr/avr.c (avr_init_builtins): Call
26798         build_function_type_list instead of build_function_type.
26799
26800 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26801
26802         * config/picochip/picochip.c (picochip_init_builtins): Call
26803         build_function_type_list instead of build_function_type.
26804         Delete `endlink' variable.
26805
26806 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
26807
26808         * config/bfin/bfin.c (bfin_init_builtins): Call
26809         build_function_type_list instead of build_function_type.
26810
26811 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26812
26813         From Bernd Schmidt
26814         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
26815         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
26816
26817 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26818
26819         From Jie Zhang:
26820         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
26821         libbffastfp overrides libgcc when -mfast-fp.
26822
26823 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26824
26825         Originally from Bernd Schmidt
26826         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
26827         * config/bfin/bfin.c (override_options): Test it and error if
26828         TARGET_FDPIC.
26829
26830 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
26831
26832         Originally From Bernd Schmidt
26833         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
26834         FD-PIC.
26835
26836 2011-05-03  Jeff Law  <law@redhat.com>
26837
26838         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
26839         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
26840         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
26841         than accessing AUX field directly.  Free the AUX field before
26842         clearing it.
26843         (thread_block, thread_through_loop_header): Likewise.
26844         (thread_single_edge, mark_threaded_blocks): Likewise.
26845         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
26846         (register_jump_thread): Do not attempt to thread to a NULL edge.
26847
26848 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
26849
26850         * function.c (init_function_start): Call decide_function_section.
26851         * varasm.c (decide_function_section): New function.
26852         (assemble_start_function): When not using
26853         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
26854         or first_function_block_is_cold.
26855         * rtl.h (decide_function_section): Declare.
26856
26857 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
26858             Jakub Jelinek  <jakub@redhat.com>
26859
26860         PR target/48774
26861         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
26862         only succeed if req_mode is the same as set_mode.
26863
26864 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
26865
26866         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
26867         * genemit.c (gen_exp): Handle RETURN.
26868         * emit-rtl.c (verify_rtx_sharing): Likewise.
26869         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
26870         * rtl.c (copy_rtx): RETURN is shared.
26871         * rtl.h (enum global_rtl_index): Add GR_RETURN.
26872         (ret_rtx): New.
26873         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
26874         * config/s390/s390.c (s390_emit_epilogue): Likewise.
26875         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
26876         * config/cris/cris.c (cris_expand_return): Likewise.
26877         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
26878         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
26879         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
26880         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
26881         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
26882         Likewise.
26883         * config/v850/v850.c (expand_epilogue): Likewise.
26884         * config/bfin/bfin.c (bfin_expand_call): Likewise.
26885         * config/arm/arm.md (epilogue): Likewise.
26886         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
26887         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
26888         variable to ret_reg.
26889
26890 2011-05-03  Richard Guenther  <rguenther@suse.de>
26891
26892         PR lto/48846
26893         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
26894         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
26895         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
26896
26897 2011-05-03  Richard Guenther  <rguenther@suse.de>
26898
26899         * c-decl.c (grokdeclarator): Instead of looking at
26900         TREE_OVERFLOW check if the constant fits in the index type.
26901
26902 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
26903
26904         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
26905         (vec_store_lanes<mode><mode>): Likewise.
26906
26907 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
26908
26909         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
26910         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
26911         convert_optab_index values.
26912         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
26913         * genopinit.c (optabs): Initialize the new optabs.
26914         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
26915         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
26916         (expand_STORE_LANES): New functions.
26917         * tree.h (build_array_type_nelts): Declare.
26918         * tree.c (build_array_type_nelts): New function.
26919         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
26920         (vect_model_load_cost): Likewise.
26921         (vect_store_lanes_supported, vect_load_lanes_supported)
26922         (vect_record_strided_load_vectors): Declare.
26923         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
26924         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
26925         (vect_transform_strided_load): Split out statement recording into...
26926         (vect_record_strided_load_vectors): ...this new function.
26927         * tree-vect-stmts.c (create_vector_array, read_vector_array)
26928         (write_vector_array, create_array_ref): New functions.
26929         (vect_model_store_cost): Add store_lanes_p argument.
26930         (vect_model_load_cost): Add load_lanes_p argument.
26931         (vectorizable_store): Try to use store-lanes functions for
26932         interleaved stores.
26933         (vectorizable_load): Likewise load-lanes and loads.
26934         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
26935         to vect_model_store_cost.
26936         (vect_build_slp_tree): Likewise vect_model_load_cost.
26937
26938 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
26939
26940         * hooks.h (hook_bool_mode_uhwi_false): Declare.
26941         * hooks.c (hook_bool_mode_uhwi_false): New function.
26942         * target.def (array_mode_supported_p): New hook.
26943         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
26944         * doc/tm.texi: Regenerate.
26945         * stor-layout.c (mode_for_array): New function.
26946         (layout_type): Use it.
26947         * config/arm/arm.c (arm_array_mode_supported_p): New function.
26948         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
26949
26950 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
26951
26952         PR target/48723
26953         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
26954         for -fstack-check if the size to allocate is negative.
26955
26956 2011-05-02  Lawrence Crowl  <crowl@google.com>
26957
26958         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
26959         (timevar_cond_start): New for starting a timer only when it is not
26960         already running.
26961         (timevar_cond_stop): New for stopping a timer when it was not already
26962         running.
26963
26964         * timevar.c (timevar_stop): Enable start/stop timers to start again.
26965         (timevar_cond_start): New as above.
26966         (timevar_cond_stop): New as above.
26967
26968         * timevar.def: Add start/stop timers for compiler phases,
26969         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
26970         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
26971         and TV_PHASE_FINALIZE.
26972         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
26973         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
26974         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
26975         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
26976         Make unused TV_OVERLOAD into a start/stop timer.
26977
26978         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
26979         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
26980         to indicate that they are start/stop timers.
26981
26982         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
26983         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
26984         Move initialization to do_compile.
26985         (do_compile): Add initialization from above.
26986         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
26987
26988         * c-decl.c (c_write_global_declarations): Add start/stop of
26989         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
26990
26991         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
26992         or TV_PARSE_INLINE, as appropriate.
26993         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
26994         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
26995
26996 2011-05-02  Jason Merrill  <jason@redhat.com>
26997
26998         PR c++/40975
26999         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
27000
27001 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
27002
27003         PR c/35445
27004         * c-decl.c (finish_decl): Only create a composite if the types are
27005         compatible.
27006
27007 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
27008
27009         * config/fr30/fr30-protos.h (Mmode): Don't define.
27010         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
27011         definition where used.
27012         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
27013         define.  Expand definitions where used.
27014         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
27015         Expand definitions where used.
27016         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
27017         rx_function_arg, rx_function_arg_advance,
27018         rx_function_arg_boundary): Expand definitions of those macros.
27019         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
27020         definition where used.
27021
27022 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
27023
27024         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
27025         reg<->xmm moves.
27026         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
27027         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
27028         with *movv2sf_internal_rex64_avx.
27029         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
27030         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
27031         Use %v prefix in insn mnemonic to handle TARGET_AVX.
27032         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
27033         "vex" in "prefix" attribute calculation.
27034         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
27035
27036 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
27037
27038         PR target/47951
27039         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
27040         inputs match the output.
27041
27042 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
27043
27044         PR target/47955
27045         * config/m68k/m68k.c (m68k_expand_prologue): Set
27046         current_function_static_stack_size.
27047
27048 2011-05-02  Jan Hubicka  <jh@suse.cz>
27049
27050         * lto-streamer.c (lto_streamer_cache_insert_1,
27051         lto_streamer_cache_lookup, lto_streamer_cache_create,
27052         lto_streamer_cache_delete): Use pointer map instead of hashtable.
27053         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
27054
27055 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
27056
27057         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
27058         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
27059         config/m68k/t-opts: New files.
27060         * config/m68k/m68k-tables.opt: New file (generated).
27061         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
27062         extra_options and m68k/t-opts to tmake_file.
27063         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
27064         (all_isas): Initialize using m68k-isas.def.
27065         (all_microarchs): Initialize using m68k-microarchs.def.
27066         (m68k_find_selection): Remove.
27067         (m68k_handle_option): Don't assert that global structures are in
27068         use.  Use error_at.  Access variables via opts pointer.  Don't
27069         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
27070         directly for -m68020-40 and -m68020-60.
27071         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
27072         m68k_tune_entry here.
27073         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
27074         to m68k-opts.h.
27075         (m68k_library_id_string): Remove declaration.
27076         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
27077         (m68k_library_id_string): New Variable.
27078         (march=, mcpu=, mtune=): Use Enum and Var.
27079
27080 2011-05-02  Richard Guenther  <rguenther@suse.de>
27081
27082         * varasm.c (output_constructor_regular_field): Compute zero-based
27083         index with double-ints.  Make sure to ICE instead of producing
27084         wrong code.
27085         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
27086         in asserts.  Properly use a signed type.
27087
27088 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
27089
27090         * config/i386/sse.md (V): New mode iterator.
27091         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
27092         TARGET_SSE2.
27093         (V_256): Rename from AVX256MODE.
27094         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
27095         condition to all users.
27096         (VF1): Ditto.
27097         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
27098         condition to all users.
27099         (VF_128): Make V4SF mode unconditional.
27100         (VF_256): Rename from AVX256MODEF2P.
27101         (VI4F_128): Rename from SSEMODE4S.
27102         (VI8F_128): Rename from SSEMODE2D.
27103         (VI4F_256): Rename from AVX256MODE8P.
27104         (VI8F_256): Rename from AVX256MODE4P.
27105         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
27106         (ssescalarmodesuffix): Remove SF and DF modes.
27107         (SSEMODE124): Remove.
27108         (SSEMODE1248): Ditto.
27109         (SSEMODEF2P): Ditto.
27110         (AVXMODEF2P): Ditto.
27111         (AVXMODEFDP): Ditto.
27112         (AVXMODEFSP): Ditto.
27113         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
27114         unconditional.
27115         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
27116         unconditional.
27117         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
27118         xop_pcmov_<mode>256.  Use V mode iterator.
27119
27120         Adjust RTX patterns globally for renamed mode attributes.
27121
27122 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27123
27124         * haifa-sched.c (sched_emit_insn): Emit insn before first
27125         non-scheduled insn.  Inform back-end about new insn.  Add
27126         new insn to scheduled_insns list.
27127
27128 2011-05-02  Richard Guenther  <rguenther@suse.de>
27129
27130         PR tree-optimization/48822
27131         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
27132         (process_scc): Indicate which iteration we start.
27133
27134 2011-05-02  Jan Hubicka  <jh@suse.cz>
27135
27136         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
27137         (lto_section_overrun): New.
27138         * lto-section-out.c (append_block): Rename to ...
27139         (lto_append_block): ... this one; export.
27140         (lto_output_1_stream): Move lto lto-streamer.h
27141         (lto_output_data_stream): Update.
27142         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
27143         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
27144         functions.
27145
27146 2011-05-02  Richard Guenther  <rguenther@suse.de>
27147
27148         * tree.c (tree_code_counts): New global array.
27149         (record_node_allocation_statistics): Count individual tree codes.
27150         (dump_tree_statistics): Dump individual code stats.
27151
27152 2011-05-01  Jan Hubicka  <jh@suse.cz>
27153
27154         * ipa-inline.c (caller_growth_limits): Fix thinko when
27155         looking for largest stack frame.
27156         * ipa-inline.h (dump_inline_summary): Declare.
27157         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
27158         on stack usage.
27159         (dump_inline_summary): Export.
27160         (debug_inline_summary): Declare as DEBUG_FUNCTION.
27161
27162 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
27163
27164         * reginfo.c (memory_move_cost): Change rclass argument type form
27165         'enum reg_class' to reg_class_t.
27166         * reload.h (memory_move_cost): Update prototype.
27167         * postreload.c reload_cse_simplify_set): Change type dclass var to
27168         reg_class_t.
27169         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
27170         Update prototype.
27171         (ira_allocate_and_set_costs): Change aclass argument type form
27172         'enum reg_class' to reg_class_t.
27173         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
27174         Change aclass argument type to reg_class_t.
27175         (update_conflict_hard_reg_costs): Change type aclass and pref vars
27176         to reg_class_t.
27177         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
27178         memory_move_cost call.
27179
27180         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
27181         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
27182         Change type tmp var to reg_class_t.
27183
27184 2011-04-30  Jan Hubicka  <jh@suse.cz>
27185
27186         * ipa-inline.c (can_inline_edge_p): Disregard limits when
27187         inlining into function with flatten attribute.
27188         (want_inline_small_function_p): Be more realistic about inlining
27189         cold calls where callee size grows.
27190
27191 2011-04-30  Jan Hubicka  <jh@suse.cz>
27192
27193         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
27194         flags.
27195
27196 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
27197
27198         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
27199         PRINT_OPERAND_PUNCT_VALID_P): Remove.
27200         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
27201         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
27202         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
27203         (print_operand): Rename to...
27204         (sparc_print_operand): ...this. Make static. Adjust
27205         sparc_print_operand function call.
27206         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
27207         functions.
27208
27209 2011-04-30  Jan Hubicka  <jh@suse.cz>
27210
27211         PR middle-end/48752
27212         * ipa-inline.c (early_inliner): Disable when doing late
27213         addition of function.
27214
27215 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
27216
27217         * dwarf2out.c (get_address_mode): New inline.
27218         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
27219         if not dwarf_strict emit
27220         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
27221         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
27222         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
27223         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
27224         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
27225         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
27226         mem_loc_descriptor callers.
27227         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
27228         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
27229         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
27230         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
27231         (base_types): New variable.
27232         (get_base_type_offset, calc_base_type_die_sizes,
27233         base_type_for_mode, mark_base_types, base_type_cmp,
27234         move_marked_base_types): New functions.
27235         (calc_die_sizes): Assert that die_offset is 0 or equal to
27236         next_die_offset.
27237         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
27238         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
27239         callers.  If not dwarf_strict, call mem_loc_descriptor even for
27240         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
27241         (gen_subprogram_die): Don't give up on call site parameters
27242         with non-integral or large integral modes.  Adjust
27243         mem_loc_descriptor callers.
27244         (prune_unused_types): Call prune_unused_types_mark on base_types
27245         vector entries.
27246         (resolve_addr): Call mark_base_types.
27247         (dwarf2out_finish): Call move_marked_base_types.
27248
27249         PR tree-optimization/48809
27250         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
27251         type.
27252         (gen_inbound_check): Don't compute index_expr - range_min in utype
27253         again, instead reuse SSA_NAME initialized in build_arrays.
27254         Remove two useless gsi_for_stmt calls.
27255
27256 2011-04-29  Jeff Law  <law@redhat.com>
27257
27258         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
27259
27260 2011-04-29  Martin Jambor  <mjambor@suse.cz>
27261
27262         * cgraph.h (cgraph_postorder): Remove declaration.
27263         * ipa-utils.h (ipa_free_postorder_info): Declare.
27264         (ipa_reverse_postorder): Likewise.
27265         * cgraphunit.c: Include ipa-utils.h.
27266         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
27267         * ipa-inline.c: Include ipa-utils.h.
27268         (ipa_inline): Update call to ipa_reverse_postorder.
27269         * ipa-pure-const.c (propagate_pure_const): Update call to
27270         ipa_reduced_postorder and ipa_print_order.  Call
27271         ipa_free_postorder_info to clean up.
27272         (propagate_nothrow): Likewise.
27273         * ipa-reference.c (propagate): Removed a useless call to
27274         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
27275         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
27276         * ipa.c: Include ipa-utils.h.
27277         (ipa_profile): Update call to ipa_reverse_postorder.
27278         (cgraph_postorder): Moved to...
27279         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
27280         (ipa_utils_print_order): Renamed to ipa_print_order.
27281         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
27282         comments.
27283         (ipa_free_postorder_info): New function.
27284         * passes.c: Include ipa-utils.h.
27285         (do_per_function_toporder): Update call to ipa_reverse_postorder.
27286         (ipa_write_summaries): Likewise.
27287         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
27288         (cgraphunit.o): Likewise.
27289         (ipa.o): Likewise.
27290         (ipa-inline.o): Likewise.
27291
27292 2011-04-29  Jan Hubicka  <jh@suse.cz>
27293
27294         * ipa-inline.h (clause_t): Turn into unsigned int.
27295         * ipa-inline-analysis.c (add_clause): Do more simplification.
27296         (and_predicates): Shortcut more cases.
27297         (predicates_equal_p): Move forward; check that clauses are properly
27298         ordered.
27299         (or_predicates): Shortcut more cases.
27300         (edge_execution_predicate): Rewrite as...
27301         (set_cond_stmt_execution_predicate): ... this function; handle
27302         __builtin_constant_p.
27303         (set_switch_stmt_execution_predicate): New .
27304         (compute_bb_predicates): New.
27305         (will_be_nonconstant_predicate): Update TODO.
27306         (estimate_function_body_sizes): Use compute_bb_predicates
27307         and free them later, always try to estimate if stmt is constant.
27308         (estimate_time_after_inlining, estimate_size_after_inlining):
27309         Gracefully handle optimized out edges.
27310         (read_predicate): Fix off by one error.
27311
27312 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
27313
27314         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
27315
27316 2011-04-27  Xinliang David Li  <davidxl@google.com>
27317
27318         * tree-profile.c (init_ic_make_global_vars): Set
27319         tls attribute on ic vars.
27320         * coverage.c (coverage_end_function): Initialize
27321         function_list with zero.
27322
27323 2011-04-29  Richard Guenther  <rguenther@suse.de>
27324
27325         * builtins.c (fold_builtin_classify_type): Use integer_type_node
27326         for the type of the result.
27327         (fold_builtin_isascii): Likewise.
27328         (fold_builtin_toascii): Use integer_type_node where appropriate.
27329         (fold_builtin_logb): Likewise.
27330         (fold_builtin_frexp): Likewise.
27331         (fold_builtin_strstr): Likewise.
27332         (fold_builtin_strpbrk): Likewise.
27333         (fold_builtin_fputs): Likewise.
27334         (fold_builtin_sprintf): Likewise.
27335         (fold_builtin_snprintf): Likewise.
27336         (fold_builtin_printf): Likewise.
27337         (do_mpfr_remquo): Use a proper type for the assigned constant.
27338         (do_mpfr_lgamma_r): Likewise.
27339         * dwarf2out.c (resolve_one_addr): Use size_int.
27340         * except.c (init_eh): Likewise.
27341         (assign_filter_values): Use integer_type_node for filter values.
27342         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
27343         indices.
27344         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
27345         for EH region numbers.
27346         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
27347         for the shift amount.
27348
27349 2011-04-29  Richard Guenther  <rguenther@suse.de>
27350
27351         * expr.h (expand_shift): Rename to ...
27352         (expand_variable_shift): ... this.
27353         (expand_shift): Take a constant shift amount.
27354         * expmed.c (expand_shift): Rename to ...
27355         (expand_variable_shift): ... this.
27356         (expand_shift): New wrapper around expand_variable_shift.
27357         * expr.c (convert_move, emit_group_load_1, emit_group_store,
27358         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
27359         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
27360         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
27361         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
27362         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
27363         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
27364         emit_store_flag_1, emit_store_flag): Likewise.
27365         * builtins.c (expand_builtin_signbit): Likewise.
27366         * calls.c (load_register_parameters): Likewise.
27367         * function.c (assign_parm_setup_block): Likewise.
27368         * lower-subreg.c (resolve_shift_zext): Likewise.
27369         * optabs.c (widen_bswap, expand_abs_nojump,
27370         expand_one_cmpl_abs_nojump, expand_float): Likewise.
27371         * spu/spu.c (spu_expand_extv): Likewise.
27372         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
27373
27374 2011-04-29  Richard Guenther  <rguenther@suse.de>
27375
27376         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
27377         for the remapped region number.
27378         * predict.c (build_predict_expr): Use integer_type_node for the
27379         predict kind.
27380         * fold-const.c (fold_binary_loc): Use integer_type_node for
27381         the shift amount.  Use a proper type for the PLUS_EXPR operand.
27382
27383 2011-04-29  Michael Matz  <matz@suse.de>
27384
27385         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
27386         other trees that just builtins.
27387         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
27388
27389 2011-04-29  Richard Guenther  <rguenther@suse.de>
27390
27391         * tree-nested.c (get_trampoline_type): Use size_int.
27392         (get_nl_goto_field): Likewise.
27393         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
27394         for all indexes.
27395         (lower_eh_constructs_2): Likewise.
27396         (lower_resx): Likewise.
27397         (lower_eh_dispatch): Likewise.
27398         * tree-mudflap.c (mf_build_string): Use size_int.
27399         (mudflap_register_call): Use integer_type_node for the flag.
27400         (mudflap_enqueue_constant): Use size_int.
27401         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
27402         instead of rebuilding it.
27403
27404 2011-04-29  Richard Guenther  <rguenther@suse.de>
27405
27406         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
27407         Handle OBJ_TYPE_REF.
27408         (find_func_aliases_for_call): Use it more consistently.
27409
27410 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
27411
27412         * haifa-sched.c (last_nondebug_scheduled_insn): New.
27413         (rank_for_schedule): Use it.
27414         (schedule_block): Set it.
27415
27416 2011-04-28  David Li  <davidxl@google.com>
27417
27418         * tree.c (crc32_string): Use crc32_byte.
27419         (crc32_byte): New function.
27420         * tree.h (crc32_byte): New function.
27421         * gcov.c (read_graph_file): Handle new cfg_cksum.
27422         (read_count_file): Ditto.
27423         * profile.c (instrument_values): Ditto.
27424         (get_exec_counts): Ditto.
27425         (read_profile_edge_counts): Ditto.
27426         (compute_branch_probabilities): Ditto.
27427         (compute_value_histograms): Ditto.
27428         (branch_prob): Ditto.
27429         (end_branch_prob): Ditto.
27430         * coverage.c (read_counts_file): Ditto.
27431         (get_coverage_counts): Ditto.
27432         (tree_coverage_counter_addr): Ditto.
27433         (coverage_checksum_string): Ditto.
27434         (coverage_begin_output): Ditto.
27435         (coverage_end_function): Ditto.
27436         (build_fn_info_type): Ditto.
27437         (build_fn_info_value): Ditto.
27438         * libgcov.c (gcov_exit): Ditto.
27439         * gcov-dump.c (tag_function): Ditto.
27440         (compute_checksum): Remove.
27441
27442 2011-04-29  Alan Modra  <amodra@gmail.com>
27443
27444         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
27445         unspec plus offset.  Tidy macho code.
27446
27447 2011-04-29  Martin Jambor  <mjambor@suse.cz>
27448
27449         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
27450         node instead of a decl.  Update all callers.
27451         * cgraph.h: Update declaration.
27452
27453 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
27454
27455         PR tree-optimization/48765
27456         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
27457         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
27458         to indicate if loop aware SLP is being used.  Scan the statements
27459         and update the vectorization factor according to the type of
27460         vectorization before statement analysis.
27461         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
27462         pass it to vect_analyze_loop_operations.
27463         (vectorizable_reduction): Set number of copies to 1 in case of pure
27464         SLP statement.
27465         * tree-vect-stmts.c (vectorizable_conversion,
27466         vectorizable_assignment, vectorizable_shift,
27467         vectorizable_operation, vectorizable_type_demotion,
27468         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
27469         Likewise.
27470         (vectorizable_condition): Move the check that it is not SLP
27471         vectorization before the number of copies check.
27472         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
27473         to vectorize the loop using SLP.
27474
27475 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
27476
27477         PR middle-end/48597
27478         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
27479         inline asm.
27480
27481 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
27482
27483         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
27484         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
27485         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
27486         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
27487         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
27488         linux*.h headers.
27489         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
27490         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
27491         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
27492         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
27493         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
27494         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
27495         REG_NAME.
27496         * config/i386/linux.h (REG_NAME): Don't define.
27497         * config/i386/linux64.h (REG_NAME): Don't define.
27498         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
27499         Undefine before defining.
27500
27501 2011-04-28  Jan Hubicka  <jh@suse.cz>
27502
27503         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
27504         nonconstant_names array.
27505         (estimate_function_body_sizes): Build nonconstant_names array; handle
27506         BUILT_IN_CONSTANT_P.
27507
27508 2011-04-28  Richard Guenther  <rguenther@suse.de>
27509
27510         PR bootstrap/48804
27511         Revert
27512         2011-04-28  Richard Guenther  <rguenther@suse.de>
27513
27514         * tree-ssa-structalias.c (solve_constraints): Build succ graph
27515         as late as possible.
27516
27517 2011-04-28  Richard Guenther  <rguenther@suse.de>
27518
27519         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
27520         (debug_constraint): Do it here.
27521         (dump_constraints): And here.
27522         (rewrite_constraints): And here.
27523         (dump_constraint_edge): Remove.
27524         (dump_constraint_graph): Rewrite to produce DOT output.
27525         (solve_constraints): Build succ graph as late as possible.
27526         Dump constraint graphs before and after solving.
27527
27528 2011-04-28  Richard Guenther  <rguenther@suse.de>
27529
27530         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
27531         New function split out from ...
27532         (find_func_aliases): ... here.  Call it.
27533         (find_func_aliases_for_call): Likewise.
27534
27535 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
27536
27537         * internal-fn.h (internal_fn_name_array): Declare.
27538         (internal_fn_flags_array): Likewise.
27539
27540 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
27541
27542         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
27543         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
27544         Move from sse.md.
27545         (ssemodefsuffix): Remove.
27546         (ssevecmodesuffix): New mode attribute.
27547         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
27548         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
27549         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
27550         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
27551         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
27552         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
27553         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
27554         ssemodesuffix mode attribute.
27555         (float splitters): Use ssevecmodesuffix mode attribute.
27556         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
27557         (sseinsmode): Rename from avxvecmode.
27558         (avxsizesuffix): Rename from avxmodesuffix.
27559         (sseintvecmode): Rename from avxpermvecmode.
27560         (ssedoublevecmode): Rename from ssedoublesizemode.
27561         (ssehalfvecmode): Rename from avxhalfvecmode.
27562         (ssescalarmode): Rename from avxscalarmode.
27563         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
27564         templates for ssemodesuffix mode attribute.
27565         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
27566         mode attribute.
27567
27568         Adjust RTX patterns globally for renamed mode attributes.
27569
27570 2011-04-27  Jan Hubcika  <jh@suse.cz>
27571
27572         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
27573         * ipa-inline-analysis.c: Include alloc-pool.h.
27574         (edge_predicate_pool): New.
27575         (trye_predicate_p): New function
27576         (false_predicate_p): New function.
27577         (add_clause): Sanity check that false clauses are "optimized";
27578         never add clauses to predicate that is already known to be false.
27579         (and_predicate): Use flase_predicate_p.
27580         (evaulate_predicate): Rename to ...
27581         (evaluate_predicate): ... this one; update all callers; assert
27582         that false is not listed among possible truths.
27583         (dump_predicate): Use true_predicate_p.
27584         (account_size_time): Use false_predicate_p.
27585         (evaulate_conditions_for_edge): Rename to ...
27586         (evaluate_conditions_for_edge) ... this one.
27587         (edge_set_predicate): New function.
27588         (inline_edge_duplication_hook): Duplicate edge predicates.
27589         (inline_edge_removal_hook): Free edge predicates.
27590         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
27591         (dump_inline_summary): Update.
27592         (estimate_function_body_sizes): Set edge predicates.
27593         (estimate_calls_size_and_time): Handle predicates.
27594         (estimate_callee_size_and_time): Update.
27595         (remap_predicate): Add toplev_predicate; update comment.
27596         (remap_edge_predicates): New function.
27597         (inline_merge_summary): Compute toplev predicate; update.
27598         (read_predicate): New function.
27599         (read_inline_edge_summary): Use it.
27600         (inline_read_section): Likewise.
27601         (write_predicate): New function.
27602         (write_inline_edge_summary): Use it.
27603         (inline_write_summary): Likewise.
27604         (inline_free_summary): Free alloc pool and edge summary vec.
27605
27606 2011-04-27  Richard Guenther  <rguenther@suse.de>
27607
27608         * tree-ssa-structalias.c (changed_count): Remove.
27609         (changed): Use a bitmap.
27610         (unify_nodes): Adjust.
27611         (do_sd_constraint): Likewise.
27612         (do_ds_constraint): Likewise.
27613         (do_complex_constraint): Likewise.
27614         (solve_graph): Likewise.
27615
27616 2011-04-27  Jan Hubicka  <jh@suse.cz>
27617
27618         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
27619
27620 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
27621
27622         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
27623         (avx_vperm2f128_*_operand): Ditto.
27624         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
27625         Use avx_vpermilp_parallel in insn condition.
27626         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
27627         Use avx_vperm2f128_parallel in insn condition.
27628
27629 2011-04-27  Richard Guenther  <rguenther@suse.de>
27630
27631         * Makefile.in (tree-ssa-structalias.o): Remove
27632         gt-tree-ssa-structalias.h dependency.
27633         (GTFILES): Remove tree-ssa-structalias.c.
27634         * tree.c (allocate_decl_uid): New function.
27635         (make_node_stat): Use it.
27636         (copy_node_stat): Likewise.
27637         * tree.h (allocate_decl_uid): Declare.
27638         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
27639         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
27640         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
27641         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
27642         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
27643         (struct heapvar_map): Likewise.
27644         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
27645         heapvar_insert): Likewise.
27646         (make_heapvar_for): Rename to ...
27647         (make_heapvar): ... this.  Simplify.
27648         (fake_var_decl_obstack): New global var.
27649         (build_fake_var_decl): New function.
27650         (make_constraint_from_heapvar): Adjust.
27651         (handle_lhs_call): Likewise.
27652         (create_function_info_for): Likewise.
27653         (intra_create_variable_infos): Likewise.
27654         (init_alias_vars): Allocate fake_var_decl_obstack.
27655         (init_alias_heapvars, delete_alias_heapvars): Remove.
27656         (compute_points_to_sets): Do not call init_alias_heapvars.
27657         (ipa_pta_execute): Likewise.
27658         (delete_points_to_sets): Free fake_var_decl_obstack.
27659
27660 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27661
27662         * config/spu/divmovti4.c (union qword_UTItype): New data type.
27663         (si_from_UTItype, si_to_UTItype): New functions.
27664         (__udivmodti4): Use them to implement type-punning.
27665         * config/spu/multi3.c (union qword_TItype): New data type.
27666         (si_from_TItype, si_to_TItype): New functions.
27667         (__multi3): Use them to implement type-punning.
27668
27669 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27670
27671         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
27672
27673 2011-04-27  Jan Hubicka  <jh@suse.cz>
27674
27675         * ipa-prop.c (function_insertion_hook_holder): New holder.
27676         (ipa_add_new_function): New function.
27677         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
27678         Register/deregister holder.
27679
27680 2011-04-27  Richard Guenther  <rguenther@suse.de>
27681
27682         PR tree-optimization/48772
27683         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
27684
27685 2011-04-27  Richard Guenther  <rguenther@suse.de>
27686
27687         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
27688         TARGET_MEM_REF handling.
27689
27690 2011-04-27  Nick Clifton  <nickc@redhat.com>
27691
27692         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
27693         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
27694         (REG_CLASS_NAMES): Likewise.
27695         (REG_CLASS_CONTENTS): Likewise.
27696         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
27697         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
27698         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
27699         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
27700         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
27701         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
27702         duplicate register classes.
27703         (frv_class_likely_spilled_p): Likewise.
27704         (frv_register_move_cost): Likewise.
27705
27706         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
27707         end of the regno_reg_class array.
27708
27709 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
27710
27711         PR c/48742
27712         * c-typeck.c (build_binary_op): Don't wrap arguments if
27713         int_operands is true.
27714
27715 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
27716
27717         PR target/48767
27718         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
27719         targetm.calls.must_pass_in_stack for void type.
27720
27721 2011-04-26  Jan Hubicka  <jh@suse.cz>
27722
27723         * cgraphbuild.c (build_cgraph_edges): Update call
27724         of cgraph_create_edge and cgraph_create_indirect_edge.
27725         * cgraph.c (cgraph_create_edge_including_clones,
27726         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
27727         cgraph_update_edges_for_call_stmt_node): Do not take nest
27728         argument; do not initialize call_stmt_size/time.
27729         (dump_cgraph_node): Do not dump nest.
27730         (cgraph_clone_edge): Do not take loop_nest argument;
27731         do not propagate it; do not clone call_stmt_size/time.
27732         (cgraph_clone_node): Likewise.
27733         (cgraph_create_virtual_clone): Update.
27734         * cgraph.h (struct cgraph_edge): Remove
27735         call_stmt_size/call_stmt_time/loop_nest.
27736         (cgraph_create_edge, cgraph_create_indirect_edge,
27737         cgraph_create_edge_including_clones, cgraph_clone_node): Update
27738         prototype.
27739         * tree-emutls.c (gen_emutls_addr): Update.
27740         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
27741         loop_nest; handle indirect calls, too.
27742         (clone_inlined_nodes): Do not care about updating inline summaries.
27743         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
27744         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
27745         stream call_stmt_size/call_stmt_time/loop_nest.
27746         * ipa-inline.c (edge_badness): Update.
27747         (ipa_inline): dump summaries after inlining.
27748         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
27749         New.
27750         (inline_edge_summary): New function.
27751         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
27752         (inline_edge_removal_hook): Handle edge summaries.
27753         (inline_edge_duplication_hook): New hook.
27754         (inline_summary_alloc): Alloc hooks.
27755         (initialize_growth_caches): Do not register removal hooks.
27756         (free_growth_caches); Do not free removal hook.
27757         (dump_inline_edge_summary): New function.
27758         (dump_inline_summary): Use it.
27759         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
27760         (inline_update_callee_summaries): New function.
27761         (inline_merge_summary): Use it.
27762         (do_estimate_edge_time, do_estimate_edge_growth): Update.
27763         (read_inline_edge_summary): New function.
27764         (inline_read_section): Use it.
27765         (write_inline_edge_summary): New function.
27766         (inline_write_summary): Use it.
27767         (inline_free_summary): Free edge new holders.
27768         * tree-inline.c (copy_bb): Update.
27769
27770 2011-04-26  Jason Merrill  <jason@redhat.com>
27771
27772         * tree-eh.c (lower_try_finally_switch): Create the label along with
27773         the CASE_LABEL_EXPR.
27774
27775 2011-04-26  David S. Miller  <davem@davemloft.net>
27776             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27777
27778         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
27779         * configure: Regenerate.
27780
27781 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
27782
27783         PR target/48258
27784         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
27785         reduction.
27786         (VEC_reduc): New code iterator and splitters for vector reduction.
27787         (VEC_reduc_name): Ditto.
27788         (VEC_reduc_rtx): Ditto.
27789         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
27790         (reduc_<VEC_reduc_name>_v4sf): Ditto.
27791
27792         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
27793         support for extracting SF on VSX.
27794
27795         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
27796         generating xscvspdp.
27797         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
27798         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
27799         double add, minimum, maximum vector reduction.
27800         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
27801         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
27802         optimize double vector reduction.
27803         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
27804
27805 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
27806
27807         * config/fr30/fr30.h (inhibit_libc): Don't define.
27808         * config/m32r/m32r-protos.h: Correct comment.
27809         * config/v850/v850.h (GHS_default_section_names,
27810         GHS_current_section_names): Use tree, not union tree_node *.
27811
27812 2011-04-26  Xinliang David Li  <davidxl@google.com>
27813
27814         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
27815         * c-family/c-opts.c (c_common_handle_option): Set
27816         warn_maybe_uninitialized.
27817         * opts.c (common_handle_option): Ditto.
27818         * common.opt:  New option.
27819         * tree-ssa.c (warn_uninit): Add one more parameter.
27820         (warn_uninitialized_var): Pass warning code.
27821         * tree-flow.h: Interface change.
27822
27823 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27824
27825         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
27826         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
27827         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
27828
27829 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27830
27831         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
27832         * config/mips/mips.opt (mmips-tfile): Remove.
27833
27834         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
27835         mips-tdump reference to ...
27836         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
27837         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
27838         reference by Tru64 UNIX.
27839
27840 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
27841
27842         PR debug/48768
27843         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
27844         is error_mark_node, set value to NULL.
27845
27846         PR tree-optimization/48734
27847         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
27848         if return value from maybe_fold_*_comparsions isn't something
27849         the code is prepared to handle.
27850
27851 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
27852
27853         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
27854         mode check.
27855         (ext_QIreg_nomode_operands): Remove.
27856         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
27857         (*andsi_1): Ditto.
27858         (*andhi_1): Ditto.
27859
27860 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
27861
27862         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
27863
27864 2011-04-26  Richard Guenther  <rguenther@suse.de>
27865
27866         * c-typeck.c (build_unary_op): Do not expand array-refs via
27867         pointer arithmetic.  Only adjust qualifiers for function types.
27868
27869 2011-04-26  Richard Guenther  <rguenther@suse.de>
27870
27871         PR middle-end/48694
27872         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
27873         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
27874         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
27875         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
27876
27877 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
27878
27879         * doc/extend.texi: Document __underlying_type.
27880
27881 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
27882
27883         * config/rs6000/titan.md (automata_option "progress"): Remove.
27884
27885 2011-04-25  Jeff Law  <law@redhat.com>
27886
27887         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
27888
27889 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
27890
27891         * system.h (ENUM_BITFIELD): Remove.
27892
27893 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
27894             Eric Botcazou  <ebotcazou@adacore.com>
27895
27896         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
27897         for STORE_FLAG_VALUE==-1 case.
27898
27899 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
27900
27901         PR target/43804
27902         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
27903         LEGITIMATE_PIC_OPERAND_P.
27904
27905 2011-04-24  Jan Hubicka  <jh@suse.cz>
27906
27907         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
27908         WPA hack.
27909         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
27910         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
27911         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
27912         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
27913         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
27914         Sanity check predicate length.
27915         (remap_predicate): Likewise; sanity check jump functions.
27916         (inline_read_section, inline_write_summary): Sanity check
27917         predicate length.
27918
27919 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
27920
27921         PR other/48748
27922         * doc/extend.texi (Type Traits): Document __is_standard_layout,
27923         __is_literal_type, and __is_trivial; update throughout about
27924         possibly cv-qualified void types.
27925
27926 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
27927
27928         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
27929         testsuite and make it version agnostic.
27930
27931 2011-04-22  Jan Hubicka  <jh@suse.cz>
27932
27933         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
27934
27935 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
27936
27937         PR c/48685
27938         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
27939         to VOID_TYPE even around MODIFY_EXPR.
27940
27941 2011-04-22  Mike Stump  <mikestump@comcast.net>
27942
27943         * gensupport.c (read_md_rtx): Fix typo in comment.
27944         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
27945         comment.
27946
27947 2011-04-22  Jan Hubicka  <jh@suse.cz>
27948
27949         * gengtype.c (open_base_files): Add ipa-inline.h include.
27950         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
27951         ipa-prop.c; update all uses.
27952         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
27953         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
27954         merge summary of inlined function into former caller.
27955         * ipa-inline.c (max_benefit): Remove.
27956         (edge_badness): Compensate for removal of benefits.
27957         (update_caller_keys): Use
27958         reset_node_growth_cache/reset_edge_growth_cache.
27959         (update_callee_keys): Likewise.
27960         (update_all_callee_keys): Likewise.
27961         (inline_small_functions): Do not collect max_benefit; do not reset
27962         estimated_growth; call free_growth_caches and initialize_growth_caches.
27963         * ipa-inline.h (struct condition, type clause_t, struct predicate,
27964         struct size_time_entry): New structures.
27965         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
27966         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
27967         and estimated_growth.
27968         (edge_growth_cache_entry): New structure.
27969         (node_growth_cache, edge_growth_cache): New global vars.
27970         (estimate_growth): Turn into inline.
27971         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
27972         initialize_growth_caches, free_growth_caches): Declare.
27973         (estimate_edge_growth): Rewrite.
27974         (estimate_edge_time): Implement as inline cache lookup.
27975         (reset_node_growth_cache, reset_edge_growth_cache): New inline
27976         functions.
27977         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
27978         (NUM_CONDITIONS): New constant.
27979         (predicate_conditions): New enum.
27980         (IS_NOT_CONSTANT): New constant.
27981         (edge_removal_hook_holder): New var.
27982         (node_growth_cache, edge_growth_cache): New global vars.
27983         (true_predicate, single_cond_predicate, false_predicate,
27984         not_inlined_predicate, add_condition, add_clause, and_predicates,
27985         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
27986         dump_clause, dump_predicate, account_size_time,
27987         evaulate_conditions_for_edge): New functions.
27988         (inline_summary_alloc): Move to heap.
27989         (inline_node_removal_hook): Clear condition and entry vectors.
27990         (inline_edge_removal_hook): New function.
27991         (initialize_growth_caches, free_growth_caches): New function.
27992         (dump_inline_summary): Update.
27993         (edge_execution_predicate): New function.
27994         (will_be_nonconstant_predicate): New function.
27995         (estimate_function_body_sizes): Compute BB and constantness predicates.
27996         (compute_inline_parameters): Do not clear estimated_growth.
27997         (estimate_edge_size_and_time): New function.
27998         (estimate_calls_size_and_time): New function.
27999         (estimate_callee_size_and_time): New function.
28000         (remap_predicate): New function.
28001         (inline_merge_summary): New function.
28002         (do_estimate_edge_time): New function based on...
28003         (estimate_edge_time): ... this one.
28004         (do_estimate_edge_growth): New function.
28005         (do_estimate_growth): New function based on....
28006         (estimate_growth): ... this one.
28007         (inline_analyze_function): Analyze after deciding on jump functions.
28008         (inline_read_section): New function.
28009         (inline_read_summary): Use it.
28010         (inline_write_summary): Write all the new data.
28011         * ipa-prop.c (ipa_get_param_decl_index): Export.
28012         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
28013         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
28014         Declare.
28015         (ipa_get_lattice): Move here from ipa-cp.c
28016         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
28017         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
28018         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
28019         cgraph_edge_inlinable_p): Remove.
28020         * cgraphunit.c: Include ipainline.h
28021         (cgraph_process_new_functions): Update call of
28022         compute_inline_parameters.
28023
28024 2011-04-22  Richard Guenther  <rguenther@suse.de>
28025
28026         * tree.c (build_int_cst): Properly create canonicalized integer
28027         constants.
28028         (build_int_cst_type): Remove scary comments.
28029
28030 2011-04-22  Xinliang David Li  <davidxl@google.com>
28031
28032         * toplev.c (process_options): Enable -Werror=coverage-mismatch
28033         by default when -Wno-error is not specified.
28034         * opts-global.c (decode_options): Remove call to
28035         control_warning_options.
28036
28037 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
28038
28039         PR tree-optimization/48717
28040         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
28041         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
28042
28043 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
28044
28045         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
28046         definition where used.
28047
28048 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
28049
28050         PR c/48716
28051         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
28052         TREE_STATIC variables declared inside of some OpenMP construct.
28053
28054 2011-04-22  Martin Jambor  <mjambor@suse.cz>
28055
28056         PR middle-end/48585
28057         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
28058
28059 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
28060
28061         PR c/36750
28062         * c-typeck.c (pop_init_level): Do not warn about initializing
28063         with ` = {0}'.
28064
28065 2011-04-22  Alan Modra  <amodra@gmail.com>
28066
28067         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
28068         when returning call_cookie.
28069         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
28070         pointers, to functions with no more vector args than the current
28071         function, and some non-local calls for ABI_V4.
28072         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
28073         sibcall_nonlocal_aix64): Combine to ..
28074         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
28075         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
28076         (sibcall_value_nonlocal_aix<mode>): ..likewise.
28077         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
28078         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
28079         operand.
28080         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
28081         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
28082         sibcall_value_symbolic_64): Delete.
28083
28084 2011-04-21  Xinliang David Li  <davidxl@google.com>
28085
28086         * cgraph.h: Remove pid.
28087         * cgraph.c: Remove pid.
28088         * value-prof.c (init_node_map): New function.
28089         (del_node_map): New function.
28090         (find_func_by_funcdef_no): New function.
28091         (gimple_ic_transform): Call new function.
28092         * cgraphunit.c (cgraph_finalize_function): Remove pid.
28093         * function.c (get_last_funcdef_no): New function.
28094         * function.h (get_last_funcdef_no): New function.
28095         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
28096         to libgcov function.
28097         (tree-profiling): Call node map init and delete function.
28098
28099 2011-04-21  Ian Lance Taylor  <iant@google.com>
28100
28101         * godump.c (go_format_type): Use exported Go name for anonymous
28102         field name.
28103
28104 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
28105
28106         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
28107         Call builtin_function_type_list instead of builtin_function_type.
28108         (UNARY, BINARY, TRINARY, QUAD): Likewise.
28109
28110 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
28111
28112         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
28113         build_function_type_list instead of build_function_type.
28114         Delete variable `endlink'.
28115
28116 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
28117
28118         * config/s390/s390.c (s390_init_builtins): Call
28119         build_function_type_list instead of build_function_type.
28120
28121 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
28122
28123         * config/ia64/ia64.c (ia64_init_builtins): Call
28124         build_function_type_list instead of builtin_function_type.
28125
28126 2011-04-21  Easwaran Raman  <eraman@google.com>
28127
28128         * cfgexpand.c (stack_var): Remove OFFSET...
28129         (add_stack_var): ...and its reference here...
28130         (expand_stack_vars): ...and here.
28131         (stack_var_cmp): Sort by descending order of size.
28132         (partition_stack_vars): Change heuristic.
28133         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
28134         (dump_stack_var_partition): Add newline after each partition.
28135
28136 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
28137             Jeff Law  <law@redhat.com>
28138
28139         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
28140         * gengtype.c (matching_file_name_substitute): Likewise.
28141
28142 2011-04-21  Richard Guenther  <rguenther@suse.de>
28143
28144         PR lto/48703
28145         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
28146
28147 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
28148
28149         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
28150
28151 2011-04-21  Richard Guenther  <rguenther@suse.de>
28152
28153         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
28154         file name.
28155
28156 2011-04-21  Richard Guenther  <rguenther@suse.de>
28157
28158         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
28159         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
28160         Use DECL_P, not SSA_VAR_P.
28161         (ptr_derefs_may_alias_p): Likewise.
28162         (ptr_deref_may_alias_ref_p_1): Likewise.
28163         (decl_refs_may_alias_p): Likewise.
28164         (refs_may_alias_p_1): Likewise.
28165         (ref_maybe_used_by_call_p_1): Likewise.
28166         (call_may_clobber_ref_p_1): Likewise.
28167         (indirect_ref_may_alias_decl_p): Assume indirect refrences
28168         are either MEM_REF or TARGET_MEM_REF.
28169         (indirect_refs_may_alias_p): Likewise.
28170         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
28171         for MEM_EXPR of indirect calls.
28172
28173 2011-04-21  Tristan Gingold  <gingold@adacore.com>
28174
28175         * vmsdbgout.c (write_srccorr): Compute file length from the string.
28176         (dst_file_info_struct): Remove flen field.
28177         (lookup_filename): Remove code that set flen field.
28178
28179 2011-04-21  Tristan Gingold  <gingold@adacore.com>
28180
28181         * config/ia64/ia64.c (ia64_start_function): Add a guard.
28182
28183 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
28184
28185         PR target/48708
28186         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
28187         vec_extract and vec_concat for non-SSE4_1 targets.
28188
28189 2011-04-21  Richard Guenther  <rguenther@suse.de>
28190
28191         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
28192         return statements.
28193
28194 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
28195
28196         * config/i386/cygming.h (union tree_node, TREE): Don't define or
28197         undefine.
28198         (FILE): Don't undefine.
28199
28200 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
28201
28202         * config/alpha/alpha.c (struct machine_function): Use rtx, not
28203         struct rtx_def *.
28204         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
28205         struct rtx_def *.
28206         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
28207         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
28208         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
28209         rtx_def *.
28210         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
28211         definitions where used.
28212         * config/microblaze/microblaze.h (struct microblaze_args): Use
28213         rtx, not struct rtx_def *.
28214         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
28215         rtx_def *.
28216         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
28217         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
28218         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
28219         not struct rtx_def *.
28220         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
28221         struct rtx_def *.
28222         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
28223         rtx_def *.
28224         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
28225
28226 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
28227
28228         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
28229         operand_equal_p to compare DR_BASE_ADDRESSes.
28230         (vect_check_interleaving): Likewise.
28231
28232 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
28233
28234         PR target/46329
28235         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
28236         for all Neon struct constants.
28237
28238 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
28239
28240         * target.def (legitimate_constant_p): New hook.
28241         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
28242         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
28243         * doc/tm.texi: Regenerate.
28244         * hooks.h (hook_bool_mode_rtx_true): Declare.
28245         * hooks.c (hook_bool_mode_rtx_true): Define.
28246         * system.h (LEGITIMATE_CONSTANT_P): Poison.
28247         * calls.c (precompute_register_parameters): Replace uses of
28248         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
28249         (emit_library_call_value_1): Likewise.
28250         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
28251         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
28252         * ira-costs.c (scan_one_insn): Likewise.
28253         * recog.c (general_operand, immediate_operand): Likewise.
28254         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
28255         * reload1.c (init_eliminable_invariants): Likewise.
28256
28257         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
28258         mode argument.
28259         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
28260         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
28261         argument.
28262         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28263         * config/alpha/predicates.md (input_operand): Update call to
28264         alpha_legitimate_constant_p.
28265
28266         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
28267         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
28268         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
28269         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28270         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
28271         (arm_legitimate_constant_p): New functions.
28272         (arm_cannot_force_const_mem): Make static.
28273
28274         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
28275
28276         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
28277         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
28278         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
28279         instead of bfin_legitimate_constant_p.
28280         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
28281         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28282
28283         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
28284
28285         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
28286
28287         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
28288         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
28289         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28290         (frv_legitimate_constant_p): Make static.  Add a mode argument.
28291
28292         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
28293         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
28294         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
28295
28296         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
28297         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
28298         * config/i386/i386.c (legitimate_constant_p): Rename to...
28299         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
28300         argument.
28301         (ix86_cannot_force_const_mem): Update accordingly.
28302         (ix86_legitimate_address_p): Likewise.
28303         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28304         * config/i386/i386.md: Update commentary.
28305
28306         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
28307         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
28308         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28309         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
28310
28311         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
28312
28313         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
28314         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
28315         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28316         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
28317
28318         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
28319         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
28320         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
28321
28322         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
28323         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28324         (m32r_legitimate_constant_p): New function.
28325
28326         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
28327         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
28328         LEGITIMATE_CONSTANT_P.
28329         (LEGITIMATE_CONSTANT_P): Delete.
28330         * config/m68k/m68k.c (m68k_expand_prologue): Call
28331         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
28332         (m68k_legitimate_constant_p): New function.
28333         * config/m68k/m68k.md: Update comments.
28334
28335         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
28336         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28337         (mcore_legitimate_constant_p): New function.
28338
28339         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
28340         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
28341         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
28342         Add a mode argument.
28343         (mep_legitimate_address): Update accordingly.
28344         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28345
28346         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
28347         Delete.
28348         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
28349         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
28350         static.  Check OP's mode for VOIDmode.
28351         (microblaze_legitimate_constant_p): New function.
28352         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28353
28354         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
28355         * config/mips/mips.c (mips_legitimate_constant_p): New function.
28356         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
28357         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28358         * config/mips/predicates.md: Update comments.
28359
28360         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
28361         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
28362         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28363         (mmix_legitimate_constant_p): Make static, return a bool, and take
28364         a mode argument.
28365         (mmix_print_operand_address): Update accordingly.
28366
28367         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
28368         Delete.
28369         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
28370         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
28371         static.  Add a mode argument.
28372         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28373
28374         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
28375
28376         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
28377         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28378         (pa_legitimate_constant_p): New function.
28379
28380         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
28381
28382         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
28383         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28384         (pdp11_legitimate_constant_p): New function.
28385
28386         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
28387         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28388         (rs6000_legitimate_constant_p): New function.
28389
28390         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
28391         (rx_legitimate_constant_p): ...this.
28392         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
28393         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
28394         (rx_legitimate_constant_p): ...this.
28395         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28396         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
28397
28398         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
28399         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
28400         * config/s390/s390.c (legitimate_constant_p): Rename to...
28401         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
28402         and add a mode argument.
28403         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28404
28405         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
28406
28407         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
28408         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28409         (sh_legitimate_constant_p): New function.
28410
28411         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
28412         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
28413         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28414         (legitimate_constant_p): Rename to...
28415         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
28416         argument.
28417         (constant_address_p): Update accordingly.
28418
28419         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
28420         argument and return a bool.
28421         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
28422         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28423         (spu_legitimate_constant_p): Add a mode argument and return a bool.
28424         (spu_rtx_costs): Update accordingly.
28425         * config/spu/predicates.md (vec_imm_operand): Likewise.
28426
28427         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
28428
28429         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
28430         * config/v850/v850.c (v850_legitimate_constant_p): New function.
28431         (TARGET_LEGITIMATE_CONSTANT_P): Define.
28432
28433         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
28434         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
28435         * config/vax/vax.c (legitimate_constant_p): Likewise.
28436
28437         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
28438         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
28439         (xtensa_legitimate_constant_p): New function.
28440
28441 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
28442
28443         * target.def (cannot_force_const_mem): Add a mode argument.
28444         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
28445         * doc/tm.texi: Regenerate.
28446         * hooks.h (hook_bool_mode_rtx_false): Declare.
28447         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
28448         (hook_bool_mode_const_rtx_true): Likewise.
28449         (hook_bool_mode_rtx_false): New function.
28450         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
28451         to be non-VOID.  Update call to cannot_force_const_mem.
28452         (find_reloads): Update accordingly.
28453         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
28454         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
28455         argument.
28456         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
28457         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
28458         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
28459         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
28460         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
28461         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
28462         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
28463         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
28464         (m68k_cannot_force_const_mem): ...this new function.
28465         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
28466         argument.
28467         (mips_const_insns, mips_legitimize_const_move): Update calls.
28468         (mips_secondary_reload_class): Likewise.
28469         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
28470         (pa_cannot_force_const_mem): ...this new function.
28471         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
28472         (rs6000_cannot_force_const_mem): ...this new function.
28473         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
28474         argument.
28475         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
28476         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
28477         to...
28478         (xtensa_cannot_force_const_mem): ...this new function.
28479
28480 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
28481
28482         * config/mips/mips.c (mips16_build_function_stub): Call
28483         build_function_type_list instead of build_function_type.
28484         (mips16_build_call_stub): Likewise.
28485
28486 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
28487
28488         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
28489         instead of build_function_type.
28490
28491 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
28492
28493         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
28494         instead of build_function_type.
28495
28496 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
28497
28498         PR target/48678
28499         * config/i386/i386.md (insv): Change operand 0 constraint to
28500         "register_operand".  Change operand 1 and 2 constraint to
28501         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
28502         * config/i386/sse.md (sse4_1_pinsrb): Export.
28503         (sse2_pinsrw): Ditto.
28504         (sse4_1_pinsrd): Ditto.
28505         (sse4_1_pinsrq): Ditto.
28506         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
28507         * config/i386/i386.c (ix86_expand_pinsr): New.
28508
28509 2011-04-20  Easwaran Raman  <eraman@google.com>
28510
28511         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
28512         containing union type only with -fstrict-aliasing.
28513
28514 2011-04-20  Jim Meyering  <meyering@redhat.com>
28515
28516         Remove useless if-before-free tests.
28517         * calls.c (expand_call, save_area): Likewise.
28518         * cfgcleanup.c (try_forward_edges): Likewise.
28519         * collect2.c (collect_execute): Likewise.
28520         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
28521         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
28522         * coverage.c (coverage_checksum_string): Likewise.
28523         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
28524         * cselib.c (cselib_init): Likewise.
28525         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
28526         (df_set_clean_cfg): Likewise.
28527         * function.c (free_after_compilation): Likewise.
28528         * gcc.c (do_spec_1, main): Likewise.
28529         * gcov.c (create_file_names): Likewise.
28530         * gensupport.c (identify_predicable_attribute): Likewise.
28531         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
28532         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
28533         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
28534         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
28535         * ipa-pure-const.c (local_pure_const): Likewise.
28536         * ipa-reference.c (propagate): Likewise.
28537         * ira-costs.c (free_ira_costs): Likewise.
28538         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
28539         * matrix-reorg.c (mat_free): Likewise.
28540         * prefix.c (get_key_value): Likewise.
28541         * profile.c (compute_value_histograms): Likewise.
28542         * reload1.c (free_reg_equiv): Likewise.
28543         * sched-deps.c (free_deps): Likewise.
28544         * sel-sched-ir.c (fence_clear): Likewise.
28545         * sese.c (set_rename, if_region_set_false_region): Likewise.
28546         * tree-data-ref.c (free_rdg): Likewise.
28547         * tree-eh.c (lower_try_finally): Likewise.
28548         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
28549         * tree-ssa-live.c (delete_var_map): Likewise.
28550         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
28551         * tree-ssa-pre.c (phi_trans_add): Likewise.
28552
28553 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
28554
28555         PR tree-optimization/48611
28556         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
28557         beyond ERT_MUST_NOT_THROW region.
28558
28559 2011-04-20  Catherine Moore  <clm@codesourcery.com>
28560
28561         * config/mips/mips.opt (mfix-24k): New.
28562         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
28563         * config/mips/mips.md (length): Increase by 4 for stores if
28564         fixing 24K errata.
28565         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
28566         all noreorder if fixing 24K errata.
28567         * doc/invoke.texi: Document mfix-24k.
28568
28569 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
28570
28571         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
28572         quad-word modes, reduce to 9-bit index range when above 1016 limit.
28573
28574 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
28575
28576         * config/arm/arm.c (arm_gen_constant): Move movw support ....
28577         (const_ok_for_op): ... to here.
28578
28579 2011-04-20  Kai Tietz  <ktietz@redhat.com>
28580
28581         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
28582         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
28583
28584 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
28585
28586         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
28587
28588 2011-04-20  Richard Guenther  <rguenther@suse.de>
28589
28590         PR tree-optimization/47892
28591         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
28592         are if-convertible.
28593
28594 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
28595
28596         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
28597
28598 2011-04-20  Tristan Gingold  <gingold@adacore.com>
28599
28600         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
28601
28602 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
28603
28604         PR target/18145
28605
28606         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
28607         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
28608         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
28609         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
28610         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
28611
28612         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
28613         New prototype.
28614
28615         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
28616         (avr_asm_named_section, avr_asm_output_aligned_common,
28617         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
28618         New functions to update...
28619         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
28620         (avr_asm_init_sections): Overwrite section callbacks for
28621         data_section, bss_section.
28622         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
28623         from here to...
28624         (avr_file_end): ...here.
28625
28626 2011-04-20  Richard Guenther  <rguenther@suse.de>
28627
28628         PR middle-end/48695
28629         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
28630         objects and types here.  Adjust for their offset before comparing.
28631
28632 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
28633
28634         * tree-vect-stmts.c (vectorizable_store): Only chain one related
28635         statement per copy.
28636
28637 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
28638
28639         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
28640         (GIMPLE_H): Include $(INTERNAL_FN_H).
28641         (OBJS-common): Add internal-fn.o.
28642         (internal-fn.o): New rule.
28643         * internal-fn.def: New file.
28644         * internal-fn.h: Likewise.
28645         * internal-fn.c: Likewise.
28646         * gimple.h: Include internal-fn.h.
28647         (GF_CALL_INTERNAL): New gf_mask.
28648         (gimple_statement_call): Put fntype into a union with a new
28649         internal_fn field.
28650         (gimple_build_call_internal): Declare.
28651         (gimple_build_call_internal_vec): Likewise.
28652         (gimple_call_same_target_p): Likewise.
28653         (gimple_call_internal_p): New function.
28654         (gimple_call_internal_fn): Likewise.
28655         (gimple_call_fntype): Return null for internal calls.
28656         (gimple_call_set_fntype): Assert that the function is not internal.
28657         (gimple_call_set_fn): Likewise.
28658         (gimple_call_set_fndecl): Likewise.
28659         (gimple_call_set_internal_fn): New function.
28660         (gimple_call_addr_fndecl): Handle null functions.
28661         (gimple_call_return_type): Likewise null types.
28662         * gimple.c (gimple_build_call_internal_1): New function.
28663         (gimple_build_call_internal): Likewise.
28664         (gimple_build_call_internal_vec): Likewise.
28665         (gimple_call_same_target_p): Likewise.
28666         (gimple_call_flags): Handle calls to internal functions.
28667         (gimple_call_fnspec): New function.
28668         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
28669         (gimple_has_side_effects): Handle null functions.
28670         (gimple_rhs_has_side_effects): Likewise.
28671         (gimple_call_copy_skip_args): Handle calls to internal functions.
28672         * cfgexpand.c (expand_call_stmt): Likewise.
28673         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
28674         * gimple-fold.c (gimple_fold_call): Handle null functions.
28675         (gimple_fold_stmt_to_constant_1): Don't fold
28676         calls to internal functions.
28677         * gimple-low.c (gimple_check_call_args): Handle calls to internal
28678         functions.
28679         * gimple-pretty-print.c (dump_gimple_call): Likewise.
28680         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
28681         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
28682         (do_warn_unused_result): Likewise.
28683         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
28684         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
28685         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
28686         the target of a call.
28687         (initialize_hash_element): Update accordingly.
28688         (hashable_expr_equal_p): Use gimple_call_same_target_p.
28689         (iterative_hash_hashable_expr): Handle calls to internal functions.
28690         (print_expr_hash_elt): Likewise.
28691         * tree-ssa-pre.c (can_value_number_call): Likewise.
28692         (eliminate): Handle null functions.
28693         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
28694         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
28695         (find_func_aliases): Likewise.
28696         * value-prof.c (gimple_ic_transform): Likewise.
28697         (gimple_indirect_call_to_profile): Likewise.
28698         * lto-streamer-in.c (input_gimple_stmt): Likewise.
28699         * lto-streamer-out.c (output_gimple_stmt): Likewise.
28700
28701 2011-04-19  Jan Hubicka  <jh@suse.cz>
28702
28703         * ipa-inline-transform.c (save_inline_function_body): Add comments.
28704         * ipa-inline.c (inline_small_functions): Compute summaries first,
28705         populate heap later.
28706
28707 2011-04-19  Jan Hubicka  <jh@suse.cz>
28708
28709         * cgraph.h (save_inline_function_body): Remove.
28710         * ipa-inline-transform.c: New file, broke out of...
28711         * ipa-inline.c: ... this one; Update toplevel comment.
28712         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
28713         make global.
28714         (update_noncloned_frequencies): Move to ipa-inline-transform.c
28715         (cgraph_mark_inline_edge): Rename to inline_call; move to
28716         ipa-inline-transform.c.
28717         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
28718         move to ipa-inline-transform.c
28719         (recursive_inlining, inline_small_functions, flatten_function,
28720         ipa_inline, inline_always_inline_functions,
28721         early_inline_small_functions): Update.
28722         (inline_transform): Move to ipa-inline-transform.c.
28723         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
28724         Declare.
28725         * Makefile.in (ipa-inline-transform.o): New file.
28726         * cgraphunit.c (save_inline_function_body): Move to
28727         ipa-inline-transform.c
28728
28729 2011-04-19  DJ Delorie  <dj@redhat.com>
28730
28731         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
28732         registers if we already know there aren't any.
28733         (m32c_emit_epilogue): Don't emit a barrier here.
28734         (m32c_emit_eh_epilogue): Likewise.
28735         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
28736         operands at expand time.
28737         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
28738         int" wchar type.
28739         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
28740         duplicates.  Provide aliases instead.
28741         * config/m32c/prologue.md (eh_return): Emit a barrier here.
28742         (eh_epilogue): Add a "(return)" here as a hint to other parts of
28743         the compiler.
28744
28745 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
28746
28747         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
28748         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
28749         (general_or_i64_p, sparc_register_move_cost): New function.
28750
28751 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28752
28753         * doc/install.texi (Configuration, --enable-threads): Remove mach.
28754         Add lynx, mipssde.  Sort table.
28755
28756 2011-04-19  Xinliang David Li  <davidxl@google.com>
28757
28758         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
28759         not negative.
28760
28761 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
28762
28763         PR target/48678
28764         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
28765         is a SUBREG with non-MODE_INT mode inside of it.
28766
28767 2011-04-19  Martin Jambor  <mjambor@suse.cz>
28768
28769         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
28770         also according to actual contants.
28771         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
28772         (gimple_fold_call): Use it.
28773         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
28774
28775 2011-04-19  Martin Jambor  <mjambor@suse.cz>
28776
28777         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
28778         non-pointer assignments.
28779
28780 2011-04-19  Martin Jambor  <mjambor@suse.cz>
28781
28782         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
28783         account anc_offset and otr_type from the indirect edge info.
28784         * ipa-prop.c (get_ancestor_addr_info): New function.
28785         (compute_complex_ancestor_jump_func): Assignment analysis moved to
28786         get_ancestor_addr_info, call it.
28787         (ipa_note_param_call): Do not initialize information about polymorphic
28788         calls, return the indirect call graph edge.  Remove the last
28789         parameter, adjust all callers.
28790         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
28791         parameters.  Initialize polymorphic information in the indirect edge.
28792
28793 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
28794
28795         PR lto/48148
28796         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
28797         the types if they have different enumeration identifiers.
28798
28799 2011-04-19  Jan Hubicka  <jh@suse.cz>
28800
28801         * cgraph.h (cgraph_optimize_for_size_p): Declare.
28802         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
28803         * predict.c (cgraph_optimize_for_size_p): Break out from ...
28804         (optimize_function_for_size_p) ... here.
28805
28806 2011-04-19  Richard Guenther  <rguenther@suse.de>
28807
28808         PR lto/48207
28809         * tree.c (free_lang_data): Do not reset the decl-assembler-name
28810         langhook.
28811
28812 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
28813
28814         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
28815         if DECL_NO_INLINE_WARNING_P is set on the function.
28816
28817 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
28818
28819         PR fortran/47976
28820         * reload1.c (inc_for_reload): Return void. All callers changed.
28821         (emit_input_reload_insns): Don't try to delete previous output
28822         reloads to a register, or record spill_reg_store for autoincs.
28823
28824 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
28825
28826         * gengtype.h: Updated copyright year.
28827         (struct input_file_st): Add inpisplugin field.
28828         (type_fileloc): New function.
28829         * gengtype.c
28830         (write_typed_struct_alloc_def): Add gcc_assert.
28831         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
28832         (write_typed_alloc_defns): Don't output for plugin files.
28833         (input_file_by_name): Clear inpisplugin field.
28834         (main): Set inpisplugin field for plugin files.
28835
28836 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
28837
28838         * gengtype-state.c (string_eq): New.
28839         (read_state): Use string_eq instead of strcmp when creating the
28840         state_ident_tab.
28841
28842 2011-04-19  Wei Guozhi  <carrot@google.com>
28843
28844         PR target/47855
28845         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
28846         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
28847         linkage.
28848         * config/arm/constraints.md (Uu): New constraint.
28849         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
28850
28851 2011-04-19  Tristan Gingold  <gingold@adacore.com>
28852
28853         * config.gcc (-*-*-*vms): Added.
28854         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
28855         definitions moved.
28856         * config/vms/vms-ld.c: New file.
28857         * config/vms/vms-ar.c: New file.
28858         * config/vms/t-vmsnative: New file.
28859
28860 2011-04-18  Xinliang David Li  <davidxl@google.com>
28861
28862         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
28863
28864 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
28865
28866         PR middle-end/48661
28867         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
28868         if TREE_TYPE (v) is non-NULL.
28869
28870         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
28871         gimple_get_virt_mehtod_for_binfo.
28872         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
28873         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
28874         callers.
28875         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
28876
28877 2011-04-18  Michael Matz  <matz@suse.de>
28878             Steve Ellcey  <sje@cup.hp.com>
28879
28880         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
28881         use its mode as source mode if it isn't VOIDmode.
28882
28883 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
28884
28885         * doc/passes.texi: Fill crossref nodes.
28886
28887 2011-04-18  Jim Meyering  <meyering@redhat.com>
28888
28889         Fix doubled-word typos in comments and strings
28890         * config/alpha/vms-unwind.h: s/for for/for/
28891         * config/arm/unwind-arm.h: Likewise.
28892         * config/microblaze/microblaze.c: Likewise.
28893         * config/sh/constraints.md: s/in in/in/
28894         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
28895
28896 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
28897
28898         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
28899         (AVX_FLOAT_MODE_P): Ditto.
28900         (AVX128_VEC_FLOAT_MODE_P): Ditto.
28901         (AVX256_VEC_FLOAT_MODE_P): Ditto.
28902         (AVX_VEC_FLOAT_MODE_P): Ditto.
28903         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
28904         (UNSPEC_MASKSTORE): Ditto.
28905         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
28906         Merge from <sse>_movmsk<ssemodesuffix> and
28907         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
28908         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
28909         iterator.
28910         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
28911         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
28912         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
28913
28914 2011-04-18  Jan Hubicka  <jh@suse.cz>
28915
28916         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
28917
28918         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
28919         (want_inline_function_called_once_p): Break out the logic from
28920         ipa_inline.
28921         (edge_badness): Ensure that profile is not misupdated.
28922         (lookup_recursive_calls): Prioritize by call frequencies.
28923         (inline_small_functions): Move program size estimates here;
28924         actually process whole queue even when unit growth has been
28925         met. (to properly compute inline_failed reasons and for the
28926         case unit size decrease.) Revisit comments on recursive inlining.
28927         (ipa_inline): Remove unit summary code; first inline hot calls
28928         of functions called once, cold calls next.
28929         (order, nnodes): Remove unused variables.
28930         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
28931         (GTFILES): Remove ipa-inline.c
28932         * sel-sched.c (fill_insns): Silence uninitialized var warning.
28933
28934 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
28935
28936         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
28937
28938 2011-04-18  Jie Zhang  <jie@codesourcery.com>
28939             Richard Earnshaw  <rearnsha@arm.com>
28940
28941         * arm.c (neon_builtin_type_bits): Remove.
28942         (typedef enum neon_builtin_mode): New.
28943         (T_MAX): Don't define.
28944         (typedef enum neon_builtin_datum): Remove bits, codes[],
28945         num_vars and base_fcode.  Add mode, code and fcode.
28946         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
28947         VAR10): Change accordingly.
28948         (neon_builtin_data[]): Change accordingly
28949         (arm_init_neon_builtins): Change accordingly.
28950         (neon_builtin_compare): Remove.
28951         (locate_neon_builtin_icode): Remove.
28952         (arm_expand_neon_builtin): Change accordingly.
28953
28954         * arm.h (enum arm_builtins): Move to ...
28955         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
28956
28957         * arm.c (arm_builtin_decl): Declare.
28958         (TARGET_BUILTIN_DECL): Define.
28959         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
28960         (arm_builtin_decls[]): New.
28961         (arm_init_neon_builtins): Store builtin declarations in
28962         arm_builtin_decls[].
28963         (arm_init_tls_builtins): Likewise.
28964         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
28965         (arm_builtin_decl): New.
28966
28967 2011-04-18  Richard Guenther  <rguenther@suse.de>
28968
28969         * tree.c (upper_bound_in_type): Build properly canonicalized
28970         INTEGER_CSTs.
28971         (lower_bound_in_type): Likewise.
28972
28973 2011-04-18  Richard Guenther  <rguenther@suse.de>
28974
28975         * gimple.h (gimple_call_addr_fndecl): New function.
28976         (gimple_call_fndecl): Use it.
28977         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
28978         for direct calls.
28979         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
28980         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
28981
28982 2011-04-18  Richard Guenther  <rguenther@suse.de>
28983
28984         PR middle-end/48650
28985         * tree.c (build_string): STRING_CST is now derived from tree_typed.
28986
28987 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
28988
28989         PR lto/48492
28990         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
28991         DECL_IN_CONSTANT_POOL without RTL.
28992
28993 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
28994             Ira Rosen  <ira.rosen@linaro.org>
28995
28996         PR target/48252
28997         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
28998         to match neon_vzip/vuzp/vtrn_internal.
28999         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
29000         outputs explicitly dependent on both inputs.
29001         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
29002
29003 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
29004
29005         PR tree-optimization/48616
29006         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
29007         whether the shift is by scalar or vector based on whether all SLP
29008         scalar stmts have the same rhs.
29009
29010 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
29011
29012         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
29013         memory operands.
29014
29015 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
29016
29017         PR target/43700
29018         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
29019         registers.
29020
29021 2011-04-17  Jan Hubicka  <jh@suse.cz>
29022
29023         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
29024         * cgrpahunit.c (cgraph_finalize_function): Do not set
29025         finalized_by_frontend.
29026         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
29027         finalized_by_frontend.
29028
29029 2011-04-17  Jan Hubicka  <jh@suse.cz>
29030
29031         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
29032         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
29033         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
29034         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
29035         method.
29036         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
29037         gimple-fold.c
29038         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
29039
29040 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
29041
29042         PR lto/48538
29043         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
29044         is non-null before accessing it.
29045         (input_cgraph): Remove trailing spaces.
29046
29047 2011-04-17  Revital Eres  <revital.eres@linaro.org>
29048
29049         * params.def (sms-min-sc): New param flag.
29050         * modulo-sched.c (sms_schedule): Use it.
29051         * doc/invoke.texi (sms-min-sc): Document it.
29052
29053 2011-04-17  Jan Hubicka  <jh@suse.cz>
29054
29055         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
29056         present, also set gimple_call_set_cannot_inline.
29057         * ipa-inline.c: Update toplevel comment.
29058         (MAX_TIME): Remove.
29059         (cgraph_clone_inlined_nodes): Fix linebreaks.
29060         (cgraph_check_inline_limits): Restructure to ...
29061         (caller_growth_limits): ... this one; be more tolerant
29062         on growth in nested inline chains; add explanatory comment;
29063         fix stack accounting thinko introduced by previous patch.
29064         (cgraph_default_inline_p): Remove.
29065         (report_inline_failed_reason): New function.
29066         (can_inline_edge_p): New function.
29067         (can_early_inline_edge_p): New function.
29068         (leaf_node_p): Move upwards in file.
29069         (want_early_inline_function_p): New function.
29070         (want_inline_small_function_p): New function.
29071         (want_inline_self_recursive_call_p): New function.
29072         (cgraph_edge_badness): Rename to ...
29073         (edge_badness) ... this one; fix linebreaks.
29074         (update_edge_key): Update call of edge_baddness; add
29075         detailed dump about queue updates.
29076         (update_caller_keys): Use can_inline_edge_p and
29077         want_inline_small_function_p.
29078         (cgraph_decide_recursive_inlining): Rename to...
29079         (recursive_inlining): Use can_inline_edge_p and
29080         want_inline_self_recursive_call_p; simplify and remove no longer
29081         valid FIXME.
29082         (cgraph_set_inline_failed): Remove.
29083         (add_new_edges_to_heap): Use can_inline_edge_p and
29084         want_inline_small_function_p.
29085         (cgraph_decide_inlining_of_small_functions): Rename to ...
29086         (inline_small_functions): ... this one; cleanup; use
29087         can/want predicates; cleanup debug ouput; work edges till fibheap
29088         is exhausted and do not stop once unit growth is reached; remove
29089         later loop processing remaining edges.
29090         (cgraph_flatten): Rename to ...
29091         (flatten_function): ... this one; use can_inline_edge_p
29092         and can_early_inline_edge_p predicates.
29093         (cgraph_decide_inlining): Rename to ...
29094         (ipa_inline): ... this one; remove unreachable nodes before
29095         inlining functions called once; simplify the pass.
29096         (cgraph_perform_always_inlining): Rename to ...
29097         (inline_always_inline_functions): ... this one; use
29098         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
29099         (cgraph_decide_inlining_incrementally): Rename to ...
29100         (early_inline_small_functions): ... this one; simplify
29101         using new predicates; cleanup; make dumps prettier.
29102         (cgraph_early_inlining): Rename to ...
29103         (early_inliner): newer inline regular functions into always-inlines;
29104         fix updating of call stmt summaries.
29105         (pass_early_inline): Update for new names.
29106         (inline_transform): Fix formating.
29107         (gate_cgraph_decide_inlining): Rename to ...
29108         (pass_ipa_inline): ... this one.
29109         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
29110         * ipa-inline-analysis.c (dump_inline_summary): Update.
29111         (compute_inline_parameters): Do not compute disregard_inline_limits;
29112         look for mismatching arguments.
29113         (estimate_growth): Fix handlig of non-trivial self recursion.
29114         (inline_read_summary): Do not read info->disregard_inline_limits.
29115         (inline_write_summary): Do not write info->disregard_inline_limits.
29116         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
29117         and move all checks into can_inline_edge_p predicate; re-enable code
29118         comparing optimization levels.
29119         (expand_call_inline): Do not test inline_forbidden_into_p.
29120         * Makefile.in (ipa-inline.o): Update arguments.
29121
29122 2011-04-17  Revital Eres  <revital.eres@linaro.org>
29123
29124         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
29125
29126 2011-04-17  Revital Eres  <revital.eres@linaro.org>
29127
29128         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
29129
29130 2011-04-17  Michael Matz  <matz@suse.de>
29131
29132         PR tree-optimization/48622
29133         PR lto/48645
29134         * ipa-inline-analysis.c (inline_read_summary): Read size/time
29135         in same order as they're written.
29136
29137 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29138
29139         * config/pa/predicates.md: Reorganize and simplify predicates.
29140         Eliminate duplicate code checks.
29141         (arith_operand): Rename to arith14_operand
29142         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
29143         * config/pa/pa.md: Use renamed operands.
29144         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
29145         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
29146         arith11_operand, adddi3_operand, indexed_memory_operand,
29147         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
29148         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
29149         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
29150         move_dest_operand, move_src_operand, prefetch_cc_operand,
29151         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
29152         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
29153         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
29154         div_operand, int5_operand, movb_comparison_operator,
29155         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
29156         arith_double_operand, ireg_operand, lhs_lshift_operand,
29157         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
29158         integer_store_memory_operand): Likewise.
29159         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
29160         (integer_store_memory_operand, read_only_operand,
29161         function_label_operand, borx_reg_operand,
29162         non_hard_reg_operand): Likewise.
29163         (eq_neq_comparison_operator): Delete unused operator.
29164         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
29165         function_label_operand.
29166         (emit_move_sequence): Likewise.
29167
29168 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
29169
29170         * config/i386/sse.md (sseunpackmode): New mode attribute.
29171         (ssepackmode): Ditto.
29172         (vec_pack_trunc_<mode>): Macroize expander from
29173         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
29174         (vec_unpacks_lo_<mode>): Macroize expander from
29175         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
29176         (vec_unpacks_hi_<mode>): Macroize expander from
29177         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
29178         (vec_unpacku_lo_<mode>): Macroize expander from
29179         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
29180         (vec_unpacku_hi_<mode>): Macroize expander from
29181         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
29182         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
29183         ix86_expand_sse4_unpack.
29184         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
29185
29186 2011-04-16  Jan Hubicka  <jh@suse.cz>
29187
29188         * cgraphbuild.c: Include ipa-inline.h.
29189         (reset_inline_failed): Use initialize_inline_failed.
29190         * cgraph.c: Include ipa-inline.h.
29191         (cgraph_create_node_1): Do not initialize estimated_growth.
29192         (initialize_inline_failed): More to ipa-inline-analysis.c
29193         (dump_cgraph_node): Do not dump inline flags.
29194         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
29195         and disregard_inline_limits flags.
29196         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
29197         time, size, estimated_growth.
29198         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
29199         Update.
29200         * cgraphunit.c (cgraph_decide_is_function_needed): Use
29201         DECL_DISREGARD_INLINE_LIMITS.
29202         (cgraph_analyze_function): Do not initialize
29203         node->local.disregard_inline_limits.
29204         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
29205         inlinable, versionable and disregard_inline_limits.
29206         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
29207         cgraph_check_inline_limits, cgraph_default_inline_p,
29208         cgraph_edge_badness, update_caller_keys, update_callee_keys,
29209         add_new_edges_to_heap): Update.
29210         (cgraph_decide_inlining_of_small_function): Update; set
29211         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
29212         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
29213         cgraph_decide_inlining_incrementally): Update.
29214         * ipa-inline.h (inline_summary): Add inlinable, versionable,
29215         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
29216         time, size and estimated_growth parameters.
29217         (estimate_edge_growth): Update.
29218         (initialize_inline_failed): Declare.
29219         * ipa-split.c: Include ipa-inline.h
29220         (execute_split_functions): Update.
29221         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
29222         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
29223         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
29224         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
29225         estimated_growth to INT_MIN.
29226         (inline_node_duplication_hook): Likewise.
29227         (dump_inline_summary): Dump new fields.
29228         (compute_inline_parameters): Update.
29229         (estimate_edge_time, estimate_time_after_inlining,
29230         estimate_size_after_inlining, estimate_growth, inline_read_summary,
29231         inline_write_summary):
29232         (initialize_inline_failed): Move here from cgraph.c.
29233         * tree-sra.c: Include ipa-inline.h.
29234         (ipa_sra_preliminary_function_checks): Update.
29235         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
29236         ipa-inline.h.
29237
29238 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
29239
29240         * config/i386/sse.md (V16): New mode iterator.
29241         (VI1, VI8): Ditto.
29242         (AVXMODEQI, AVXMODEDI): Remove.
29243         (sse2, sse3): New mode attribute.
29244         (mov<mode>): Use V16 mode iterator.
29245         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
29246         (push<mode>1): Use V16 mode iterator.
29247         (movmisalign<mode>): Ditto.
29248         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
29249         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
29250         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
29251         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
29252         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
29253         avx_movdqu<avxmodesuffix>.
29254         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
29255         *avx_movdqu<avxmodesuffix>.
29256         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
29257         avx_lddqu<avxmodesuffix>.
29258         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
29259         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
29260         avx_movnt<AVXMODEDI:mode>.
29261         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
29262         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
29263
29264 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29265
29266         PR target/48629
29267         * haifa-sched.c (prune_ready_list, schedule_block): Use
29268         sched_pressure_p rather than flag_sched_pressure.
29269
29270 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
29271
29272         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
29273         cgraph_get_node instead of cgraph_get_create_node.
29274
29275 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
29276
29277         * cfgexpand.c (expand_debug_expr): Use
29278         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
29279
29280 2011-04-15  Michael Matz  <matz@suse.de>
29281
29282         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
29283         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
29284         * function.c (gimplify_parameters): Ditto.
29285         * gimplify.c (gimplify_vla_decl): Ditto.
29286
29287         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
29288         (gimple_call_set_alloca_for_var): New inline function.
29289         (gimple_call_alloca_for_var_p): Ditto.
29290         * gimple.c (gimple_build_call_from_tree): Remember
29291         CALL_ALLOCA_FOR_VAR_P state.
29292         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
29293
29294         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
29295         calls if they were for VLA objects.
29296
29297 2011-04-15  Martin Jambor  <mjambor@suse.cz>
29298
29299         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
29300         of ADR_EXPRs.
29301
29302 2011-04-15  Martin Jambor  <mjambor@suse.cz>
29303
29304         PR middle-end/48601
29305         * tree-emutls.c (lower_emutls_function_body): Call
29306         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
29307         result is non-NULL.
29308
29309 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
29310
29311         * c-decl.c (detect_field_duplicates): Call
29312         objc_detect_field_duplicates instead of objc_get_interface_ivars.
29313
29314 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
29315
29316         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
29317         * gimple.c (gimple_asm_clobbers_memory_p): Define.
29318         * ipa-pure-const.c (check_stmt): Call it.
29319         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
29320
29321 2011-04-15  Richard Guenther  <rguenther@suse.de>
29322
29323         PR tree-optimization/48290
29324         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
29325         Properly decide inhibiting propagation based on the valueized
29326         operand.  Do loop-closed SSA form preserving here ...
29327         (init_copy_prop): ... not here.
29328
29329 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
29330
29331         PR target/48612
29332         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
29333         (*ieee_smax<mode>3): Likewise.
29334
29335 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29336
29337         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
29338         Replace match_operand with match_dup for the third operand in
29339         these expanders.
29340
29341 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
29342
29343         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
29344         to track processing of conditionals.  Update all callers.
29345         (try_combine, simplify_if_then_else): Update.
29346
29347 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
29348
29349         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
29350         -fsched-pressure.
29351
29352 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
29353
29354         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
29355         instead of match_operand for operand 3.
29356
29357 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
29358
29359         * recog.h (insn_operand_data): Add an "allows_mem" field.
29360         * genoutput.c (output_operand_data): Initialize it.
29361         * optabs.c (maybe_legitimize_operand_same_code): New function.
29362         (maybe_legitimize_operand): Use it when matching the original
29363         op->value.
29364
29365 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
29366
29367         * gimplify.c: Fix issues in comments throughout.
29368         (voidify_wrapper_expr): Fix long line.
29369         (build_stack_save_restore): Likewise.
29370         (gimplify_loop_expr): Likewise.
29371         (gimplify_compound_lval): Likewise.
29372         (gimplify_init_ctor_eval): Likewise.
29373         (gimplify_modify_expr_rhs): Likewise.
29374         (omp_notice_threadprivate_variable): Likewise.
29375
29376 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
29377
29378         * cfgexpand.c (expand_call_stmt): Convert the function type to the
29379         original one if this is not a builtin function.
29380
29381 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
29382
29383         PR target/48605
29384         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
29385         offset it as needed based on top 2 bits in operands[3], change
29386         MEM mode to SFmode and mask those 2 bits away from operands[3].
29387
29388 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
29389
29390         * c-parser.c (c_parser_objc_protocol_definition): Updated for
29391         change from objc_declare_protocols() to objc_declare_protocol().
29392
29393 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
29394
29395         * config/i386/sse.md (sse4_1): New mode attribute.
29396         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
29397         avx_blend<ssemodesuffix><avxmodesuffix> and
29398         sse4_1_blend<ssemodesuffix> using VF mode iterator.
29399         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
29400         avx_blendv<ssemodesuffix><avxmodesuffix> and
29401         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
29402         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
29403         avx_dp<ssemodesuffix><avxmodesuffix> and
29404         sse4_1_dp<ssemodesuffix> using VF mode iterator.
29405         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
29406         (sse4_1_packusdw): Merge with *avx_packusdw.
29407         (sse4_1_pblendvb): Merge with *avx_pblendvb.
29408         (sse4_1_pblendw): Merge with *avx_pblendw.
29409         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
29410         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
29411         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
29412         VF mode iterator.
29413         (sse4_1_round<ssescalarmodesuffix>): Merge with
29414         *avx_round<ssescalarmodesuffix>.
29415         (aesenc): Merge with *avx_aesenc.
29416         (aesenclast): Merge with *avx_aesenclast.
29417         (aesdec): Merge with *avx_aesdec.
29418         (aesdeclast): Merge with *avx_aesdeclast.
29419         (pclmulqdq): Merge with *pclmulqdq.
29420         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
29421         New predicate.
29422         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
29423
29424 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
29425
29426         PR middle-end/48608
29427         * cfgexpand.c (get_decl_align_unit): Renamed to ...
29428         (align_local_variable): This.  Update DECL_ALIGN.
29429         (add_stack_var): Updated.
29430         (expand_one_stack_var): Likewise.
29431
29432 2011-04-14  Richard Guenther  <rguenther@suse.de>
29433
29434         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
29435         Remove.
29436         (dse_initialize_block_local_data, dse_leave_block,
29437         record_voperand_set, get_stmt_uid): Likewise.
29438         (dse_possible_dead_store_p): Allow any kind of killing stmt.
29439         (dse_optimize_stmt): Remove voperand set handling code.
29440         Simplify and improve to handle any kind of killing stmt.
29441         (dse_record_phi): Remove.
29442         (dse_enter_block): Simplify.
29443         (tree_ssa_dse): Likewise.
29444         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
29445
29446 2011-04-14  Jan Hubicka  <jh@suse.cz>
29447
29448         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
29449         * cgraph.h (struct inline_summary): Move to ipa-inline.h
29450         (cgraph_local_info): Remove inline_summary.
29451         * ipa-cp.c: Include ipa-inline.h.
29452         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
29453         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
29454         accesor.
29455         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
29456         (input_overwrite_node): Do not set inline summary.
29457         (input_node): Do not stream inline summary.
29458         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
29459         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
29460         growth; we do not have inline parameters computed for that anyway.
29461         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
29462         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
29463         (inline_summary_t): New type and VECtor.
29464         (debug_inline_summary, dump_inline_summaries): Declare.
29465         (inline_summary): Use VOCtor.
29466         (estimate_edge_growth): Kill hack computing call stmt size directly.
29467         * lto-section-in.c (lto_section_name): Add inline section.
29468         * ipa-inline-analysis.c: Include lto-streamer.h
29469         (node_removal_hook_holder, node_duplication_hook_holder): New holders
29470         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
29471         (inline_summary_vec): Define.
29472         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
29473         dump_inline_summaries): New functions.
29474         (estimate_function_body_sizes): Properly compute size/time of outgoing
29475         calls.
29476         (compute_inline_parameters): Alloc inline_summary; do not compute
29477         size/time of incomming calls.
29478         (estimate_edge_time): Avoid missing time summary hack.
29479         (inline_read_summary): Read inline summary info.
29480         (inline_write_summary): Write inline summary info.
29481         (inline_free_summary): Free all hooks and inline summary vector.
29482         * lto-streamer.h: Add LTO_section_inline_summary section.
29483         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
29484         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
29485
29486 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
29487
29488         * tree-vectorizer.h (vect_strided_store_supported): Add a
29489         HOST_WIDE_INT argument.
29490         (vect_strided_load_supported): Likewise.
29491         (vect_permute_store_chain): Return void.
29492         (vect_transform_strided_load): Likewise.
29493         (vect_permute_load_chain): Delete.
29494         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
29495         count argument.  Check that the count is a power of two.
29496         (vect_strided_load_supported): Likewise.
29497         (vect_permute_store_chain): Return void.  Update after above changes.
29498         Assert that the access is supported.
29499         (vect_permute_load_chain): Likewise.
29500         (vect_transform_strided_load): Return void.
29501         * tree-vect-stmts.c (vectorizable_store): Update calls after
29502         above interface changes.
29503         (vectorizable_load): Likewise.
29504         (vect_analyze_stmt): Don't check for strided powers of two here.
29505
29506 2011-04-14  Richard Guenther  <rguenther@suse.de>
29507
29508         PR tree-optimization/48590
29509         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
29510         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
29511         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
29512         BUILT_IN_STACK_SAVE.
29513         * tree-ssa-dce.c (propagate_necessity): Handle
29514         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
29515
29516 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
29517
29518         * c-parser.c (c_parser_objc_class_declaration): Updated call to
29519         objc_declare_class.
29520
29521 2011-04-14  Richard Guenther  <rguenther@suse.de>
29522
29523         * tree.h (get_object_alignment_1): Declare.
29524         * builtins.c (get_object_alignment_1): Split out worker from ...
29525         (get_object_alignment): ... here.
29526         * fold-const.c (get_pointer_modulus_and_residue): Use
29527         get_object_alignment_1.
29528
29529 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
29530
29531         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
29532         type parameter.
29533         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
29534         parameter.  Generalise code to handle arrays as well as vectors.
29535         (vect_setup_realignment): Update accordingly.
29536         * tree-vect-stmts.c (vectorizable_store): Likewise.
29537         (vectorizable_load): Likewise.
29538
29539 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
29540
29541         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
29542         within the per-copy loop.
29543
29544 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
29545
29546         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
29547         in the dump file.
29548
29549 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
29550
29551         * doc/options.texi (Negative): Explicitly mention that the
29552         Negative chain must be circular.
29553
29554 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
29555
29556         * function.h (block_chainon): Declare.
29557         * function.c (block_chainon): Define.
29558
29559 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
29560             Eric Weddington  <eric.weddington@atmel.com>
29561             Georg-Johann Lay  <avr@gjlay.de>
29562
29563         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
29564         New Includes
29565         (avr_init_builtins, avr_expand_builtin,
29566         avr_expand_delay_cycles, avr_expand_unop_builtin,
29567         avr_expand_binop_builtin ): New functions.
29568         (avr_builtin_id): New enum
29569         (struct avr_builtin_description): New struct
29570         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
29571         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
29572
29573         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
29574         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
29575         UNSPECV_DELAY_CYCLES): new enumeration values
29576         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
29577         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
29578         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
29579         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
29580         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
29581         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
29582         "fmulsu"): New insns
29583
29584         * config/avr/avr-c.c: fix line endings
29585         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
29586         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
29587         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
29588         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
29589         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
29590
29591         * doc/extend.texi (AVR Built-in Functions): New node
29592         (Target Builtins): Add documentation of AVR
29593         built-in functions.
29594
29595 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
29596
29597         PR target/44643
29598         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
29599         alone. Error if non-const data has attribute progmem.
29600
29601 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
29602
29603         * tree.h (struct tree_constructor): Include tree_typed instead of
29604         tree_common.
29605         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
29606         TS_TYPED instead of TS_COMMON.
29607
29608 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
29609
29610         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
29611         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
29612         (sse2_psadbw): Merge with *avx_psadbw.
29613         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
29614         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
29615         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
29616         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
29617         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
29618         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
29619         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
29620         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
29621         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
29622         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
29623         (ssse3_palignrti): Merge with *avx_palignrti.
29624
29625 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
29626
29627         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
29628         * tree-ssanames.c (fini_ssanames): VEC_free it.
29629         (make_ssa_name_fn): Update for VECness of free_ssanames.
29630         (release_ssa_name, release_dead_ssa_names): Likewise.
29631         * tree.h (struct tree_ssa_name): Include tree_typed instead of
29632         tree_common.
29633         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
29634         TS_TYPED instead of TS_COMMON.
29635
29636 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
29637
29638         * postreload-gcse.c (gcse_after_reload_main): Add calls to
29639         statistics_counter_event.
29640         * tree-ssa-copyrename.c (stats): Define.
29641         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
29642         statistics_counter_event.
29643         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
29644         (bswap_stats, widen_mul_stats): Define.
29645         (insert_reciprocals): Increment rdivs_inserted.
29646         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
29647         rfuncs_inserted.  Add calls to statistics_counter_event.
29648         (execute_cse_sincos_1): Increment inserted.
29649         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
29650         statistics_counter_event.
29651         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
29652         of bswap_stats.  Add calls to statistics_counter_event.
29653         (convert_mult_to_widen): Increment widen_mults_inserted.
29654         (convert_plusminus_to_widen): Increment maccs_inserted.
29655         (convert_mult_to_fma): Increment fmas_inserted.
29656         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
29657         calls to statistics_counter_event.
29658
29659 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
29660
29661         PR rtl-optimization/48455
29662         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
29663         `temp_costs->mem_cost'.
29664
29665 2011-04-13  Jan Hubicka  <jh@suse.cz>
29666
29667         * ipa-inline.h: New file.
29668         * ipa-inline-analysis.c: New file. Broken out of ...
29669         * ipa-inline.c: ... this file; update toplevel comment;
29670         include ipa-inline.h
29671         (inline_summary): Move to ipa-inline.h
29672         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
29673         ipa-inline-analysis.c.
29674         (cgraph_estimate_time_after_inlining): Rename to
29675         estiamte_time_after_inlining; move to ipa-inline-analysis.c
29676         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
29677         to estimate_edge_growth.
29678         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
29679         rename to estimate_size_after_inlining.
29680         (cgraph_mark_inline_edge): Update for new naming convention.
29681         (cgraph_check_inline_limits): Likewise.
29682         (cgraph_edge_badness): Likewise.
29683         (cgraph_decide_recursive_inlining): Likewise.
29684         (cgraph_decide_inlining_of_small_functions): Likewise.
29685         (cgraph_decide_inlining_incrementally): Likewise.
29686         (cgraph_estimate_growth): Rename to estimate_growth; move to
29687         ipa-inline-analysis.c.
29688         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
29689         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
29690         (compute_inline_parameters): Likewise.
29691         (compute_inline_parameters_for_current): Likewise.
29692         (pass_inline_parameters): Likewise.
29693         (inline_indirect_intraprocedural_analysis): Likewise.
29694         (analyze_function): Rename to inline_analyze_function; likewise.
29695         (add_new_function): Move to ipa-inline-analysis.c.
29696         (inline_generate_summary): Likewise.
29697         (inline_read_summary): Likewise.
29698         (inline_write_summary): Likewise.
29699         * Makefile.in (ipa-inline-analysis.c): New file.
29700
29701 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29702
29703         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
29704         * configure: Regenerate.
29705
29706 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
29707
29708         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
29709         instead of tree_common.
29710         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
29711         Likewise.
29712         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
29713         TS_TYPED rather than TS_COMMON.
29714         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
29715
29716 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
29717
29718         PR target/45263
29719         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
29720         r20 around calls of __tablejump_elpm__
29721
29722 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
29723
29724         PR middle-end/48591
29725         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
29726         NULL.
29727         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
29728
29729 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
29730
29731         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
29732         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
29733         (cfi_vec): New typedef.
29734         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
29735         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
29736         (cie_cfi_vec): New static variable.
29737         (cie_cfi_head): Delete.
29738         (add_cfi): Accept a cfi_vec * as first argument. All callers and
29739         declaration changed. Use vector rather than list operations.
29740         (new_cfi): Don't initialize the dw_cfi_next field.
29741         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
29742         rather than list operations.
29743         (lookup_cfa): Use vector rather than list operations.
29744         (output_cfis): New argument upto. Accept a cfi_vec rather than
29745         a dw_cfi_ref list head as argument. All callers changed.
29746         Iterate over the vector using upto as a maximum index.
29747         (output_all_cfis): New static function.
29748         (output_fde): Use vector rather than list operations. Use the
29749         new upto argument for output_cfis rather than manipulating a
29750         list.
29751         (dwarf2out_begin_prologue): Change initializations to match
29752         new struct members.
29753         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
29754         from the vector length rather than searching for the end of a list.
29755         Use output_all_cfis.
29756         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
29757
29758 2011-04-13  Nick Clifton  <nickc@redhat.com>
29759
29760         * config/rx/rx.md (movmemsi): Do not use this pattern when
29761         volatile pointers are involved.
29762
29763 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
29764
29765         * config/i386/sse.md (pinsrbits): Remove.
29766         (sse2_packsswb): Merge with *avx_packsswb.
29767         (sse2_packssdw): Merge with *avx_packssdw.
29768         (sse2_packuswb): Merge with *avx_packuswb.
29769         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
29770         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
29771         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
29772         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
29773         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
29774         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
29775         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
29776         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
29777         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
29778         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
29779         (sse2_loadld): Merge with *avx_loadld.
29780         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
29781         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
29782         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
29783         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
29784         (vec_concatv2di): Merge with *vec_concatv2di_avx.
29785
29786 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
29787
29788         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
29789         calling TREE_CHAIN.
29790         * print-tree.c (print_node): Likewise.
29791         * tree-inline.c (copy_tree_r): Likewise.
29792         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
29793         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
29794         instead of TS_COMMON.
29795         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
29796         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
29797         (copy_node_stat): Zero TREE_CHAIN only if necessary.
29798         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
29799         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
29800         ...and these...
29801         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
29802         * tree.h: ...here.
29803         (TREE_CHAIN): Check for a TS_COMMON structure.
29804         (TREE_TYPE): Check for a TS_TYPED structure.
29805
29806 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
29807
29808         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
29809         cgraph_get_create_node instead of cgraph_node.
29810
29811 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
29812
29813         * c-parser.c (c_parser_initelt): Updated call to
29814         objc_build_message_expr.
29815         (c_parser_postfix_expression): Likewise.
29816
29817 2011-04-12  Kai Tietz  <ktietz@redhat.com>
29818
29819         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
29820         MASK_MS_BITFIELD_LAYOUT bit.
29821
29822 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
29823
29824         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
29825         assert it is always true.
29826         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
29827         moves.
29828
29829 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
29830
29831         * c-parser.c (c_lex_one_token): Rewritten conditional used when
29832         compiling Objective-C to be more efficient.
29833
29834 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
29835
29836         * opts-common.c (decode_cmdline_options_to_array): Remove variable
29837         argv_copied.
29838
29839 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29840
29841         * recog.h, genoutput.c, optabs.c: Revert last patch.
29842
29843 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
29844
29845         PR target/48090
29846         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
29847
29848 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29849
29850         * recog.h (insn_operand_data): Add an "allows_mem" field.
29851         * genoutput.c (output_operand_data): Initialize it.
29852         * optabs.c (maybe_legitimize_operand_same_code): New function.
29853         (maybe_legitimize_operand): Use it when matching the original
29854         op->value.
29855
29856 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29857
29858         * genpreds.c (process_define_predicate): Move most processing
29859         to gensupport.c.  Continue to validate the expression.
29860         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
29861         (process_define_predicate): Move processing to gensupport.c.
29862         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
29863         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
29864         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
29865         argument.
29866         (valid_predicate_name_p): New function, split out from old
29867         genpreds.c:process_define_predicate.
29868         (process_define_predicate): New function, combining code from
29869         old genpreds.c and genrecog.c functions.
29870         (process_rtx): Call it for DEFINE_PREDICATE and
29871         DEFINE_SPECIAL_PREDICATE.
29872
29873 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29874
29875         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
29876         size of a '%A' memory reference.
29877         (T_DREG, T_QREG): New neon_builtin_type_bits.
29878         (arm_init_neon_builtins): Assert that the load and store operands
29879         are neon_struct_operands.
29880         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
29881         (NEON_ARG_MEMORY): New builtin_arg.
29882         (neon_dereference_pointer): New function.
29883         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
29884         Handle NEON_ARG_MEMORY.
29885         (arm_expand_neon_builtin): Update after above interface changes.
29886         Use NEON_ARG_MEMORY for loads and stores.
29887         * config/arm/predicates.md (neon_struct_operand): New predicate.
29888         * config/arm/iterators.md (V_two_elem): Tweak formatting.
29889         (V_three_elem): Use BLKmode for accesses that have no associated mode.
29890         (V_four_elem): Tweak formatting.
29891         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
29892         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
29893         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
29894         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
29895         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
29896         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
29897         (neon_vst4<mode>): Replace pointer operand with a memory operand.
29898         Use %A in the output template.
29899         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
29900         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
29901         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
29902         the width of the memory access.  Remove post-increment.
29903         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
29904
29905 2011-04-12  Nick Clifton  <nickc@redhat.com>
29906
29907         * config/v850/v850.c (expand_prologue): Do not use the CALLT
29908         instruction for interrupt handlers if the target is the basic V850
29909         architecture.
29910         (expand_epilogue): Likewise.
29911
29912 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
29913
29914         PR rtl-optimization/48549
29915         * combine.c (propagate_for_debug): Also stop after BB_END of
29916         this_basic_block.  Process LAST and just stop processing after it.
29917         (combine_instructions): If last_combined_insn has been deleted,
29918         set last_combined_insn to its PREV_INSN.
29919
29920 2011-04-12  Richard Guenther  <rguenther@suse.de>
29921
29922         PR tree-optimization/46076
29923         * gimple.h (struct gimple_statement_call): Add fntype field.
29924         (gimple_call_fntype): Adjust.
29925         (gimple_call_set_fntype): New function.
29926         * gimple.c (gimple_build_call_1): Set the call function type.
29927         * gimplify.c (gimplify_call_expr): Preserve the function
29928         type the frontend used for the call.
29929         (gimplify_modify_expr): Likewise.
29930         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
29931         function type.
29932         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
29933         function type.
29934         * tree-ssa.c (useless_type_conversion_p): Function pointer
29935         conversions are useless.
29936
29937 2011-04-12  Martin Jambor  <mjambor@suse.cz>
29938
29939         * cgraph.h (cgraph_node): Remove function declaration.
29940         (cgraph_create_node): Declare.
29941         (cgraph_get_create_node): Likewise.
29942         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
29943         Updated all callers.
29944         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
29945         the decl does not already exist.  Call cgraph_get_create_node instead
29946         of cgraph_node.
29947         (cgraph_get_create_node): New function.
29948         (cgraph_same_body_alias): Update comment.
29949         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
29950         assert it does not return NULL.
29951         (cgraph_update_edges_for_call_stmt): Likewise.
29952         (cgraph_clone_edge): Likewise.
29953         (cgraph_create_virtual_clone): Likewise.
29954         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
29955         instead of cgraph_node.
29956         (cgraph_add_new_function): Call cgraph_create_node or
29957         cgraph_get_create_node instead of cgraph_node.
29958         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
29959         instead of cgraph_node.
29960         (record_eh_tables): Likewise.
29961         (mark_address): Likewise.
29962         (mark_load): Likewise.
29963         (build_cgraph_edges): Call cgraph_get_create_node instead
29964         of cgraph_node.
29965         (rebuild_cgraph_edges): Likewise.
29966         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
29967         instead of cgraph_node.
29968         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
29969         cgraph_node.
29970         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
29971         cgraph_create_node instead of cgraph_node.
29972         * c-decl.c (finish_function): Call cgraph_get_create_node instead
29973         of cgraph_node.
29974         * lto-cgraph.c (input_node): Likewise.
29975         * lto-streamer-in.c (input_function): Likewise.
29976         * varasm.c (mark_decl_referenced): Likewise.
29977         (assemble_alias): Likewise.
29978
29979 2011-04-12  Martin Jambor  <mjambor@suse.cz>
29980
29981         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
29982         instead of cgraph_node and assert it does not return NULL.
29983         * lto-streamer-in.c (lto_read_body): Likewise.
29984         * omp-low.c (new_omp_context): Likewise.
29985         (create_task_copyfn): Likewise.
29986         * tree-emutls.c (lower_emutls_function_body): Likewise.
29987         * matrix-reorg.c (transform_allocation_sites): Likewise.
29988
29989 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
29990
29991         PR c/48552
29992         * c-typeck.c (build_asm_expr): Error out on attempts to use
29993         void type outputs or inputs for constraints that allow reg or
29994         don't allow memory.
29995
29996 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
29997             Richard Earnshaw  <rearnsha@arm.com>
29998
29999         PR target/48250
30000         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
30001         to use sign-magnitude offsets. Reject unsupported unaligned
30002         cases. Add detailed description in comments.
30003         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
30004         condition from TARGET_32BIT to TARGET_ARM.
30005
30006 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
30007
30008         * tree.h (struct typed_tree): New.
30009         (struct tree_common): Include it instead of tree_base.
30010         (TREE_TYPE): Update for new location of type field.
30011         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
30012         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
30013         (union tree_node): Add typed field.
30014         * treestruct.def (TS_TYPED): New.
30015         * lto-streamer.c (check_handled_ts_structures): Handle it.
30016         * tree.c (MARK_TS_TYPED): New macro.
30017         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
30018
30019 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
30020
30021         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
30022         (force_nonfallthru): Do not alter the loop nest if no basic block
30023         was created.
30024
30025 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
30026
30027         * config/i386/sse.md (VI): New mode iterator.
30028         (SSEMODEI): Remove.
30029         (AVX256MODEI): Ditto.
30030         (AVXMODEF4P): Ditto.
30031         (avxvecpsmode): Ditto.
30032         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
30033         (sse2_andnot<mode>3): New expander.
30034         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
30035         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
30036         (<any_logic:code><mode>3): Use VI mode iterator.
30037         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
30038         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
30039         (*andnottf3): Handle AVX three-operand constraints.
30040         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
30041
30042 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
30043             Robert Millan  <rmh@gnu.org>
30044
30045         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
30046         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
30047         GNU_USER_DYNAMIC_LINKER64): Define.
30048         (REG_NAME): Don't undefine.
30049         (MD_UNWIND_SUPPORT): Undefine.
30050         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
30051         (REG_NAME): Don't undefine.
30052         (MD_UNWIND_SUPPORT): Undefine.
30053         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
30054
30055 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
30056
30057         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
30058         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
30059
30060 2011-04-11  Xinliang David Li  <davidxl@google.com>
30061
30062         * value-profile.c (check_ic_target): New function.
30063         (gimple_ic_transform): Sanity check indirect call target.
30064         * gimple-low.c (gimple_check_call_args): Interface change.
30065         (gimple_check_call_matching_types): New function.
30066         * tree-inline.c (tree_can_inline_p): Call new function.
30067
30068 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
30069
30070         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
30071         tree-pretty-print.h & realmpfr.h.
30072
30073 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
30074
30075         PR middle-end/48464
30076         * ira.c (setup_pressure_classes): Fix typo in loop condition.
30077         (setup_allocno_and_important_classes): Ditto.
30078
30079 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
30080
30081         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
30082         GNU_USER_DYNAMIC_LINKER.
30083         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
30084         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30085         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
30086         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
30087         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
30088         GNU_USER_TARGET_OS_CPP_BUILTINS.
30089         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
30090         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30091         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
30092         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30093         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
30094         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
30095         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
30096         GNU_USER_TARGET_OS_CPP_BUILTINS.
30097         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30098         GNU_USER_DYNAMIC_LINKER.
30099         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
30100         GNU_USER_TARGET_OS_CPP_BUILTINS.
30101         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
30102         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30103         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
30104         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30105         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
30106         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
30107         GNU_USER_DYNAMIC_LINKER64): Remove.
30108         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
30109         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30110         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30111         GNU_USER_DYNAMIC_LINKER.
30112         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
30113         GNU_USER_TARGET_OS_CPP_BUILTINS.
30114         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
30115         GNU_USER_TARGET_OS_CPP_BUILTINS.
30116         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
30117         to GNU_USER_TARGET_OS_CPP_BUILTINS.
30118         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
30119         GNU_USER_TARGET_OS_CPP_BUILTINS.
30120         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
30121         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
30122         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
30123         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
30124         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30125         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30126         GNU_USER_DYNAMIC_LINKER.
30127         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
30128         GNU_USER_TARGET_OS_CPP_BUILTINS.
30129         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
30130         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30131         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30132         GNU_USER_DYNAMIC_LINKER.
30133         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
30134         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30135         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
30136         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30137         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30138         GNU_USER_DYNAMIC_LINKER.
30139         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
30140         GNU_USER_DYNAMIC_LINKERN32.
30141         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
30142         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
30143         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
30144         GNU_USER_DYNAMIC_LINKER32.
30145         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
30146         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30147         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30148         GNU_USER_DYNAMIC_LINKER.
30149         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
30150         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30151         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
30152         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30153         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
30154         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
30155         GNU_USER_DYNAMIC_LINKER32.
30156         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
30157         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
30158         GNU_USER_DYNAMIC_LINKER.
30159         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
30160         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30161         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
30162         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
30163         GNU_USER_DYNAMIC_LINKER64.
30164         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
30165         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30166         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30167         GNU_USER_DYNAMIC_LINKER.
30168         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
30169         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30170         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
30171         GNU_USER_DYNAMIC_LINKER.
30172         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
30173         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30174         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
30175         GNU_USER_DYNAMIC_LINKER32.
30176         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
30177         GNU_USER_DYNAMIC_LINKER64.
30178         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
30179         GNU_USER_DYNAMIC_LINKER64.
30180         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
30181         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30182         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
30183         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
30184         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
30185
30186 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
30187
30188         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
30189         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
30190         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
30191         GNU_USER_DYNAMIC_LINKER.
30192         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
30193         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
30194         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
30195         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
30196         GNU_USER_DYNAMIC_LINKER64.
30197         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
30198         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
30199         GNU_USER_LINK_EMULATION.
30200         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
30201         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
30202         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
30203         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
30204         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
30205         CPP_SPEC, CC1_SPEC): Remove.
30206         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
30207         (GNU_USER_DYNAMIC_LINKER): Define.
30208         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
30209         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
30210         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
30211         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
30212         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
30213         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
30214         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
30215         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
30216         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
30217         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
30218         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
30219         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
30220         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
30221         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
30222         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
30223         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
30224         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
30225         GNU_USER_DYNAMIC_LINKER.
30226         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
30227         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
30228         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
30229         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
30230         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
30231         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
30232         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
30233         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
30234         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
30235         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
30236
30237 2011-04-11  Kai Tietz  <ktietz@redhat.com>
30238
30239         PR target/9601
30240         PR target/11772
30241         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
30242         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
30243         comment.
30244         (ix86_is_msabi_thiscall): Removed.
30245         (ix86_is_type_thiscall): Likewise.
30246         (ix86_get_callcvt): New function.
30247         (ix86_comp_type_attributes): Simplify check.
30248         (ix86_function_regparm): Use ix86_get_callcvt for calling
30249         convention attribute checks.
30250         (ix86_return_pops_args): Likewise.
30251         (ix86_static_chain): Likewise.
30252         (x86_this_parameter): Likewise.
30253         (x86_output_mi_thunk): Likewise.
30254         (ix86_function_type_abi): Optimize check for types without attributes.
30255         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
30256         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
30257         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
30258         by flag-values.
30259         (IX86_BASE_CALLCVT): Helper macro.
30260         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
30261         Use ix86_get_callcvt for calling convention attribute checks and avoid
30262         symbol-decoration for stdcall in TARGET_RTD case.
30263         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
30264         Likewise.
30265         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
30266         for declaration.
30267
30268 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
30269
30270         * config/i386/sse.md (VI_128): New mode iterator.
30271         (VI12_128): Rename from SSEMODE12.
30272         (VI14_128): Rename from SSEMODE14.
30273         (VI124_128): New mode iterator.
30274         (VI24_128): Rename from SSEMODE248.
30275         (VI248_128): Rename from SSEMODE248.
30276         (SSEMODE124C8): Remove.
30277         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
30278         (*sse2_<plusminus_insn><mode>3): Merge with
30279         *avx_<plusminus_insn><mode>3.
30280         (*mulv8hi3): Merge with *avx_mulv8hi3.
30281         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
30282         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
30283         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
30284         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
30285         (ashr<mode>3): Merge with *avx_ashr<mode>3.
30286         (lshr<mode>3): Merge with *avx_lshr<mode>3.
30287         (ashl<mode>3): Merge with *avx_ashl<mode>3.
30288         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
30289         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
30290         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
30291         (*<smaxmin:code>v8hi3): Ditto.
30292         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
30293         (*<smaxmin:code>v16qi3): Ditto.
30294         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
30295         (*sse2_eq<mode>3): Ditto.
30296         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
30297         (*sse2_gt<mode>3): Ditto.
30298         (vcondv2di): Split out of vcond<mode>.
30299         (vconduv2di): Split out of vcondu<mode>.
30300
30301 2011-04-11  Richard Guenther  <rguenther@suse.de>
30302
30303         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
30304         before calling tree_low_cst.
30305
30306 2011-04-11  Richard Guenther  <rguenther@suse.de>
30307
30308         * stor-layout.c (layout_type): Compute all array index size operations
30309         in the original type.
30310         (initialize_sizetypes): Add comment.
30311         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
30312
30313 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
30314
30315         * common.opt (Tbss=, Tdata=, Ttext=): New options.
30316
30317 2011-04-11  Martin Jambor  <mjambor@suse.cz>
30318
30319         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
30320         of cgraph_node, handle NULL return value.
30321         (cgraph_global_info): Likewise.
30322         (cgraph_rtl_info): Likewise.
30323         * tree-inline.c (estimate_num_insns): Likewise.
30324         * gimplify.c (unshare_body): Likewise.
30325         (unvisit_body): Likewise.
30326         (gimplify_body): Likewise.
30327         * predict.c (optimize_function_for_size_p): Likewise.
30328         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
30329         (call_may_clobber_ref_p_1): Likewise.
30330         * varasm.c (function_section_1): Likewise.
30331         (assemble_start_function): Likewise.
30332
30333 2011-04-11  Martin Jambor  <mjambor@suse.cz>
30334
30335         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
30336         of cgraph_node.
30337         * final.c (rest_of_clean_state): Likewise.
30338         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
30339         * passes.c (pass_init_dump_file): Likewise.
30340         (execute_all_ipa_transforms): Likewise.
30341         (function_called_by_processed_nodes_p): Likewise.
30342         * predict.c (maybe_hot_frequency_p): Likewise.
30343         (probably_never_executed_bb_p): Likewise.
30344         (compute_function_frequency): Likewise.
30345         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
30346         (unnest_nesting_tree_1): Likewise.
30347         (lower_nested_functions): Likewise.
30348         * tree-optimize.c (execute_fixup_cfg): Likewise.
30349         (tree_rest_of_compilation): Likewise.
30350         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
30351         * tree-sra.c (ipa_early_sra): Likewise.
30352         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
30353         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
30354         * ipa.c (record_cdtor_fn): Likewise.
30355         * ipa-inline.c (cgraph_early_inlining): Likewise.
30356         (compute_inline_parameters_for_current): Likewise.
30357         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
30358         * ipa-pure-const.c (local_pure_const): Likewise.
30359         * ipa-split.c (split_function): Likewise.
30360         (execute_split_functions): Likewise.
30361         * cgraphbuild.c (build_cgraph_edges): Likewise.
30362         (rebuild_cgraph_edges): Likewise.
30363         (cgraph_rebuild_references): Likewise.
30364         (remove_cgraph_callee_edges): Likewise.
30365         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
30366         (verify_cgraph_node): Likewise.
30367         (cgraph_analyze_functions): Likewise.
30368         (cgraph_preserve_function_body_p): Likewise.
30369         (save_inline_function_body): Likewise.
30370         (save_inline_function_body): Likewise.
30371         * tree-inline.c (copy_bb): Likewise.
30372         (optimize_inline_calls): Likewise.
30373
30374 2011-04-11  Martin Jambor  <mjambor@suse.cz>
30375
30376         PR tree-optimization/48195
30377         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
30378         ipa_check_create_edge_args.
30379         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
30380         ipa_check_create_edge_args.
30381         * ipa-inline.c (inline_generate_summary): Do not call
30382         ipa_check_create_node_params and ipa_check_create_edge_args.
30383         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
30384         ipa_check_create_edge_args.
30385
30386 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
30387
30388         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
30389         instead of loop.
30390         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
30391         * function.c (record_hard_reg_sets): Likewise.
30392         * ira.c (compute_regs_asm_clobbered): Likewise.
30393         * sched-deps.c (sched_analyze_1): Likewise.
30394         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
30395
30396 2011-04-09  Xinliang David Li  <davidxl@google.com>
30397
30398         PR tree-optimization/PR48484
30399         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
30400         has_valid_pred lazily
30401
30402 2011-04-09  Duncan Sands  <baldrick@free.fr>
30403
30404         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
30405
30406 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
30407
30408         * combine.c (combine_validate_cost): Adjust comments.  Set registered
30409         cost of I0 to zero at the end, if any.
30410
30411 2011-04-08  Xinliang David Li  <davidxl@google.com>
30412
30413         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
30414         to insane profile data.
30415
30416 2011-04-08  Xinliang David Li  <davidxl@google.com>
30417
30418         * ipa-cp.c (ipcp_update_profiling): Correct
30419          negative scale factor due to insane profile data.
30420
30421 2011-04-08  Xinliang David Li  <davidxl@google.com>
30422
30423         * final.c (dump_basic_block_info): New function.
30424         (final): Dump basic block.
30425         (final_scan_insn): Remove old dump.
30426
30427 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
30428
30429         PR target/47829
30430         * config.gcc (i386-*-freebsd): Disable unwind table generation for
30431         crtbegin/crtend.
30432
30433 2011-04-08  Michael Matz  <matz@suse.de>
30434
30435         PR middle-end/48389
30436         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
30437         functions.
30438         (rebuild_jump_labels): Call rebuild_jump_labels_1.
30439         * rtl.h (rebuild_jump_labels_chain): Declare.
30440         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
30441         insns inserted on edges.
30442
30443 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
30444
30445         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
30446         * config/arm/arm-arches.def: New.
30447         * config/arm/arm-opts.h: New.
30448         * config/arm/genopt.sh: New.
30449         * config/arm/arm-tables.opt: New (generated).
30450         * config/arm/arm.c (arm_handle_option, arm_target_help,
30451         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
30452         (all_architectures): Get most table contents from arm-arches.def.
30453         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
30454         arm_selected_tune here.
30455         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
30456         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
30457         (march=, mcpu=, mtune=): Use Enum and Var.
30458         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
30459         (arm.o): Update dependencies.
30460
30461 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
30462
30463         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
30464         of header_file.
30465         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
30466         (write_typed_alloc_defns): Likewise.
30467         (main): Calls write_typed_alloc_defns with output_header.
30468
30469 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
30470
30471         PR inline-asm/48435
30472         * ira-color.c (setup_profitable_hard_regs): Add comments.
30473         Don't take prohibited hard regs into account.
30474         (setup_conflict_profitable_regs): Rename to
30475         get_conflict_profitable_regs.
30476         (check_hard_reg_p): Check prohibited hard regs.
30477
30478 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
30479
30480         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
30481         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
30482         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
30483
30484 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30485
30486         PR target/48366
30487         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
30488         move from floating point to shift amount register.
30489         (emit_move_sequence): Remove secondary reload support for floating
30490         point to shift amount amount register copies.
30491         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
30492         amount register copies.
30493         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
30494         register, return false if mode isn't a scalar integer mode.
30495         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
30496
30497 2011-04-08  Richard Guenther  <rguenther@suse.de>
30498
30499         * gimple.c (gimple_call_flags): Remove kludge.
30500
30501 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
30502
30503         * sel-sched.c (sel_region_init): Move call to
30504         sel_setup_region_sched_flags after setup_current_loop_nest.
30505
30506 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
30507
30508         PR rtl-optimization/48272
30509         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
30510         init_insn_reg_pressure_info.  Adjust a caller.
30511         * sched-int.h (init_insn_reg_pressure_info): Declare.
30512         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
30513         when sched-pressure is enabled.
30514
30515 2011-04-08  Richard Guenther  <rguenther@suse.de>
30516
30517         * gimple.c (gimple_set_modified): Do not queue calls to
30518         MODIFIED_NORETURN_CALLS here ...
30519         * tree-ssa-operands.c (update_stmt_operands): ... but here.
30520
30521 2011-04-08  Richard Guenther  <rguenther@suse.de>
30522
30523         PR lto/48467
30524         * toplev.c (lang_dependent_init): Do not open asm_out_file
30525         in WPA mode, nor perform debug machinery initialization.
30526         (finalize): Do not unlink asm_out_file in WPA mode.
30527
30528 2011-04-08  Richard Guenther  <rguenther@suse.de>
30529
30530         * gimple.h (gimple_call_fntype): New function.
30531         (gimple_call_return_type): Use it.
30532         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
30533         * gimple-low.c (gimple_check_call_args): Likewise.
30534         * gimple.c (gimple_call_flags): Likewise.
30535         (gimple_call_arg_flags): Likewise.
30536         (gimple_call_return_flags): Likewise.
30537         * tree-cfg.c (verify_gimple_call): Likewise.
30538         (do_warn_unused_result): Likewise.
30539         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
30540         * value-prof.c (gimple_ic_transform): Fix fndecl check.
30541
30542 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
30543
30544         PR rtl-optimization/48235
30545         * sel-sched.c (code_motion_process_successors): Recompute the last
30546         insn in basic block if control flow changed.
30547         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
30548         Update condition for ilist_remove.
30549
30550 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
30551
30552         PR rtl-optimization/48302
30553         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
30554         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
30555         it to record added preheader blocks.
30556         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
30557         on to sel_add_loop_preheaders.
30558         (sel_region_init): Move call to setup_current_loop_nest after
30559         sel_init_bbs.
30560
30561 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
30562
30563         PR target/48273
30564         * cfgloop.h (loop_has_exit_edges): New helper.
30565         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
30566         non-clonable.
30567         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
30568         that have no exit edges.
30569
30570 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
30571
30572         PR rtl-optimization/48442
30573         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
30574         all callers.  Adjust assert.
30575
30576 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
30577
30578         PR tree-optimization/48377
30579         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
30580         is_packed to true even for types with smaller TYPE_ALIGN than
30581         TYPE_SIZE.
30582
30583 2011-04-08  Richard Guenther  <rguenther@suse.de>
30584
30585         PR bootstrap/48513
30586         * doc/tm.texi: Re-generate.
30587
30588 2011-04-08  Wei Guozhi  <carrot@google.com>
30589
30590         PR target/47855
30591         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
30592         * config/arm/arm.c (arm_attr_length_push_multi): New function.
30593         * config/arm/arm.md (*push_multi): Change the length computation to
30594         call a C function.
30595
30596 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
30597
30598         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
30599         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
30600         * doc/tm.texi: Regenerate.
30601         * system.h (ASM_OUTPUT_BSS): Poison.
30602         * varasm.c (asm_output_bss): Remove function.
30603         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
30604
30605         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
30606         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
30607         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
30608         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
30609         Likewise.
30610         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
30611         Likewise.
30612         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
30613         Likewise.
30614         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
30615
30616 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
30617
30618         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
30619         EnumValue lines.
30620
30621 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
30622
30623         * config/m68k/m68k.c (m68k_handle_option): Don't handle
30624         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
30625         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
30626         OPT_mcpu32.
30627         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
30628         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
30629         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
30630         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
30631         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
30632         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
30633         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
30634         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
30635         options.  Don't map other m68k options manually.  Don't handle
30636         old-style options as canonical.
30637         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
30638         * doc/install.texi (m68k-*-*): Document binutils version requirement.
30639
30640 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
30641
30642         * basic-block.h (force_nonfallthru): Move to...
30643         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
30644         (force_nonfallthru): ...here.
30645         * cfghooks.c (force_nonfallthru): New function.
30646         * cfgrtl.c (force_nonfallthru): Rename into...
30647         (rtl_force_nonfallthru): ...this.
30648         (commit_one_edge_insertion): Do not set AUX field.
30649         (commit_edge_insertions): Do not discover new basic blocks.
30650         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
30651         (cfg_layout_rtl_cfg_hooks): Likewise.
30652         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
30653         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
30654         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
30655
30656 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
30657
30658         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
30659         Remove macros.
30660
30661 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
30662
30663         * config/i386/sse.md: Update copyright year.
30664         (avxcvtvecmode): Remove.
30665         (sse_movhlps): Merge with *avx_movhlps.
30666         (sse_movlhps): Merge with *avx_movlhps.
30667         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
30668         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
30669         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
30670         (sse_loadhps): Merge with *avx_loadhps.
30671         (sse_storelps): Merge with *avx_storelps.
30672         (sse_loadlps): Merge with *avx_loadlps.
30673         (sse_movss): Merge with *avx_movss.
30674         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
30675         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
30676         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
30677         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
30678         (vec_set<mode>_0): Ditto.
30679         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
30680         (sse4_1_insertps): Merge with *avx_insertps.
30681         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
30682         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
30683         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
30684         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
30685         (sse2_storehpd): Merge with *avx_storehpd.
30686         (sse2_loadhpd): Merge with *avx_loadhpd.
30687         (sse2_loadlpd): Merge with *avx_loadlpd.
30688         (sse2_movsd): Merge with *avx_movsd.
30689         (*vec_concatv2df): Merge with *vec_concatv2df.
30690
30691 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
30692
30693         PR debug/48343
30694         * combine.c (combine_instructions): Add last_combined_insn,
30695         update it if insn is after it, pass it to all try_combine calls.
30696         (try_combine): Add last_combined_insn parameter, pass it instead of
30697         i3 to propagate_for_debug.
30698
30699 2011-04-07  Nick Clifton  <nickc@redhat.com>
30700
30701         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
30702         to handle MDR <-> data register transfers.
30703         (movhi_internal): Likewise.
30704
30705 2011-04-07  Alan Modra  <amodra@gmail.com>
30706
30707         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
30708         previous stack info.
30709
30710 2011-04-07  Tom de Vries  <tom@codesourcery.com>
30711
30712         PR target/43920
30713         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
30714         flow_find_cross_jump.  Swap variables to implement backward replacement.
30715         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
30716
30717 2011-04-07  Tom de Vries  <tom@codesourcery.com>
30718
30719         PR target/43920
30720         * cfgcleanup.c (walk_to_nondebug_insn): New function.
30721         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
30722         and bb2.
30723         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
30724         src1 or src2.  Redirect edges to the last basic block.  Update
30725         frequency and count on multiple basic blocks in case of fallthru.
30726
30727 2011-04-07  Tom de Vries  <tom@codesourcery.com>
30728
30729         PR target/43920
30730         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
30731         function.
30732         (old_insns_match_p): Change return type.  Replace return false/true
30733         with return dir_none/dir_both.  Use can_replace_by.
30734         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
30735         direction from dir_p.  Register replacement direction in dir, last_dir
30736         and afterlast_dir.  Handle new return type of old_insns_match_p using
30737         merge_dir.  Return replacement direction in dir_p.
30738         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
30739         return type of old_insns_match_p.
30740         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
30741         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
30742         flow_find_cross_jump.
30743         * basic-block.h (enum replace_direction): New type.
30744         (flow_find_cross_jump): Add parameter to declaration.
30745
30746 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
30747
30748         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
30749         (AVXMODEDCVTPS2DQ): Ditto.
30750         (VEC_FLOAT_MODE): Ditto.
30751         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
30752         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
30753         (<any_logic:code><mode>3): Use VF mode iterator.
30754         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
30755         Use VF mode iterator.
30756         (copysign<mode>3): Use VF mode iterator.
30757         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
30758         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
30759         (*<any_logic:code><MODEF:mode>3): Merge with
30760         *avx_<any_logic:code><MODEF:mode>3.
30761         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
30762         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
30763         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
30764         (avx_cvtdq2ps<avxmodesuffix>): Remove.
30765         (sse2_cvtdq2ps): Use %v modifier.
30766         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
30767         (avx_cvtps2dq<avxmodesuffix>): Remove.
30768         (sse2_cvtps2dq): Use %v modifier.
30769         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
30770         (avx_cvttps2dq<avxmodesuffix>): Remove.
30771         (sse2_cvttps2dq): Use %v modifier.
30772         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
30773         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
30774         (sse2_cvtsd2siq): Fix insn template.
30775         (sse2_cvtsd2siq_2): Ditto.
30776         (sse2_cvttsd2siq): Ditto.
30777         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
30778         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
30779
30780 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
30781
30782         * gcov-io.c: Use GCC Runtime Library Exception.
30783
30784 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
30785
30786         PR debug/48466
30787         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
30788         as base_reg whatever register reg has been eliminated to, instead
30789         of hardcoding STACK_POINTER_REGNUM.
30790
30791 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
30792
30793         * doc/tm.texi.in: Document C target hooks as separate from general
30794         target hooks.
30795         * doc/tm.texi: Regenerate.
30796         * genhooks.c (struct hook_desc): Add docname field.
30797         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
30798         docname field.
30799         (hook_array): Include c-target.def.
30800         (emit_documentation): Use docname field in output.
30801         (emit_init_macros): Take docname argument.  Only emit definitions
30802         for hooks matching docname.
30803         (main): Expect additional arguments in all cases.  Pass argument
30804         to emit_init_macros.
30805         * target.def: Move initial macro definitions and comments to
30806         target-hooks-macros.h.
30807         (gcc_targetcm): Move to c-family/c-target.def.
30808         * target.h (targetcm): Move declaration to c-family/c-target.h.
30809         * targhooks.c (default_handle_c_option): Move to
30810         c-family/c-opts.c.
30811         * targhooks.h (default_handle_c_option): Move declaration to
30812         c-family/c-common.h.
30813         * target-hooks-macros.h: New file.
30814         * config.gcc (target_has_targetcm): Define and use to add to
30815         c_target_objs and cxx_target_objs.
30816         * config/default-c.c: New file.
30817         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
30818         of target.h and target-def.h.
30819         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
30820         (darwin_objc_construct_string, darwin_cfstring_ref_p,
30821         darwin_check_cfstring_format_arg): Make static.
30822         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
30823         TARGET_STRING_OBJECT_REF_TYPE_P,
30824         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
30825         * config/darwin-protos.h (darwin_objc_construct_string,
30826         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
30827         declare.
30828         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
30829         TARGET_STRING_OBJECT_REF_TYPE_P,
30830         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
30831         * config/t-darwin (darwin-c.o): Update dependencies.
30832         * system.h (TARGET_HAS_TARGETCM): Poison.
30833         * Makefile.in (TARGET_H): Update.
30834         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
30835         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
30836         (default-c.o): New target.
30837         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
30838         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
30839         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
30840         c-target.def.
30841         (build/genhooks.o): Update dependencies.
30842
30843 2011-04-06  Richard Guenther  <rguenther@suse.de>
30844
30845         * ipa-inline.c (enum inlining_mode): Remove.
30846         (cgraph_flatten): Use some other token.
30847         (cgraph_edge_early_inlinable_p): New function, split out from ...
30848         (cgraph_perform_always_inlining): New function, split out from ...
30849         (cgraph_decide_inlining_incrementally): ... here.
30850         (cgraph_mark_inline_edge): Adjust.
30851         (cgraph_early_inlining): Re-structure.
30852         (pass_early_inline): Require SSA form.
30853
30854 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
30855             Julian Brown  <julian@codesourcery.com>
30856             Mark Shinwell  <shinwell@codesourcery.com>
30857
30858         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
30859         LO_REGS only for Thumb-1.
30860         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
30861         be used in short instructions when optimising for size on Thumb-2.
30862
30863 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
30864
30865         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
30866         associated with user returns to be preserved.
30867
30868 2011-04-06  Tristan Gingold  <gingold@adacore.com>
30869
30870         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
30871         symbol_queue_size, DBXOUT_DECR_NESTING,
30872         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
30873         if XCOFF_DEBUGGING_INFO.
30874
30875 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
30876
30877         * config/i386/i386.md (attribute isa): New.
30878         (attribute enabled): New.
30879         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
30880         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
30881         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
30882         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
30883         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
30884         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
30885         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
30886         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
30887
30888         * config/i386/sse.md (VF): New mode iterator.
30889         (VF1): Ditto.
30890         (VF2): Ditto.
30891         (VF_128): Ditto.
30892         (SSEMODEF4): Remove.
30893         (attribute sse): Handle V8SF and V4DF modes.
30894         (<absneg:code><mode>2): Use VF mode iterator.
30895         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
30896         mode iterator.
30897         (<plusminus_insn><mode>3): Use VF mode iterator.
30898         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
30899         Use VF mode iterator.
30900         (<sse>_vm<plusminus_insn><mode>3): Merge with
30901         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
30902         (mul<mode>3): Use VF mode iterator.
30903         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
30904         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
30905         mode iterator.
30906         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
30907         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
30908         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
30909         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
30910         mode iterator.
30911         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
30912         Use VF1 mode iterator.
30913         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
30914         (sqrt<VF2:mode>2): New expander.
30915         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
30916         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
30917         and sqrtv2df2.  Use VF mode iterator.
30918         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
30919         mode iterator.
30920         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
30921         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
30922         Use VF1 mode iterator.
30923         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
30924         (<smaxmin:code><mode>3): Use VF mode iterator.
30925         (*<smaxmin:code><mode>3_finite): Merge with
30926         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
30927         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
30928         (<sse>_vm<smaxmin:code><mode>2): Merge with
30929         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
30930         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
30931         mode iterator.
30932         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
30933         mode iterator.
30934         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
30935         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
30936         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
30937         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
30938         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
30939         VF mode iterator.
30940         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
30941         Use VF_128 mode iterator.
30942         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
30943         mode iterator.
30944         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
30945         VF_128 mode iterator.
30946         (vcond<mode>): Use VF mode iterator.
30947         * config/i386/predicates.md (sse_comparison_operator): Merge with
30948         avx_comparison_float_operator.  Do not declare as special_predicate.
30949         * config/i386/i386.c (struct builtin_description): Update for renamed
30950         compare patterns.
30951         (ix86_expand_args_builtin): Ditto.
30952         (ix86_expand_sse_compare_mask): Ditto.
30953
30954 2011-04-06  Richard Guenther  <rguenther@suse.de>
30955
30956         * tree-inline.c (estimate_num_insns): For calls simply account
30957         for all passed arguments and a used return value.
30958
30959 2011-04-06  Richard Guenther  <rguenther@suse.de>
30960
30961         PR tree-optimization/47663
30962         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
30963         call_stmt_time fields.
30964         (cgraph_edge_inlinable_p): Declare.
30965         (cgraph_edge_recursive_p): New inline function.
30966         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
30967         (cgraph_clone_edge): Copy it.
30968         * ipa-inline.c (cgraph_estimate_edge_time): New function.
30969         Account for call stmt time.
30970         (cgraph_estimate_time_after_inlining): Take edge argument.
30971         (cgraph_estimate_edge_growth): Account call stmt size.
30972         (cgraph_estimate_size_after_inlining): Take edge argument.
30973         (cgraph_mark_inline_edge): Adjust.
30974         (cgraph_check_inline_limits): Likewise.
30975         (cgraph_recursive_inlining_p): Remove.
30976         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
30977         (cgraph_decide_recursive_inlining): Take edge argument and
30978         adjust.
30979         (cgraph_decide_inlining_of_small_functions): Do not avoid
30980         diags for recursive inlining here.
30981         (cgraph_flatten): Adjust.
30982         (cgraph_decide_inlining_incrementally): Likewise.
30983         (estimate_function_body_sizes): Remove call cost handling.
30984         (compute_inline_parameters): Initialize caller edge call costs.
30985         (cgraph_estimate_edge_growth): New function.
30986         (cgraph_estimate_growth): Use it.
30987         (cgraph_edge_badness): Likewise.
30988         (cgraph_check_inline_limits): Take an edge argument.
30989         (cgraph_decide_inlining_of_small_functions): Adjust.
30990         (cgraph_decide_inlining): Likewise.
30991         * tree-inline.c (estimate_num_insns): Only account for call
30992         return value if it is used.
30993         (expand_call_inline): Avoid diagnostics on recursive inline
30994         functions here.
30995         * lto-cgraph.c (lto_output_edge): Output edge call costs.
30996         (input_edge): Input edge call costs.
30997
30998 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30999
31000         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
31001
31002 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
31003
31004         * doc/invoke.texi (Spec Files): Fix typo.
31005
31006 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
31007
31008         * profile.c (branch_prob): Move declaration of local variable.  Remove
31009         obsolete ??? comment.  Expand the location explicitly instead of using
31010         the LOCATION_FILE and LOCATION_LINE macros.
31011
31012 2011-04-06  Wei Guozhi  <carrot@google.com>
31013
31014         PR target/47855
31015         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
31016         (arm_cond_branch): Likewise.
31017         (arm_cond_branch_reversed): Likewise.
31018         (arm_jump): Likewise.
31019         (push_multi): Likewise.
31020         * config/arm/constraints.md (Py): New constraint.
31021
31022 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
31023
31024         PR bootstrap/48471
31025         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
31026         Move these...
31027         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
31028         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
31029         #ifdef DBX_DEBUGGING_INFO.
31030
31031 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
31032
31033         PR bootstrap/48403
31034         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
31035         if old and new states differ.
31036
31037 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
31038
31039         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
31040         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
31041         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
31042         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
31043         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
31044         mcfv4e): Use Alias.
31045         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
31046         ColdFire options to -mcpu= options.
31047
31048 2011-04-05  Jeff Law  <law@redhat.com>
31049
31050         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
31051         check if BB is a successor of LOOP->header and return
31052         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
31053
31054 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
31055
31056         * cprop.c (struct reg_use): Remove.
31057         (reg_use_table): Make an array of RTX.
31058         (find_used_regs, constprop_register, local_cprop_pass,
31059         bypass_block): Simplify users of reg_use_table.
31060         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
31061         on one of the uses found by find_used_regs.
31062
31063 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
31064
31065         PR bootstrap/48469
31066         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
31067         declaration.
31068
31069 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
31070
31071         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
31072         as an rtx.
31073         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
31074
31075 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
31076
31077         PR middle-end/48441
31078         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
31079
31080 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
31081
31082         * combine.c: Include obstack.h.
31083         (struct insn_link): Define.
31084         (uid_log_links): Adjust type.
31085         (FOR_EACH_LOG_LINK): New macro.
31086         (insn_link_obstack): Declare.
31087         (alloc_insn_link): Define.
31088         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
31089         type of link variables.
31090         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
31091         (try_combine, record_promoted_values, distribute_notes): Likewise.
31092         (distribute_links): Likewise.  Tweak prototype.
31093         (clear_log_links): Delete.
31094         (adjust_for_new_dest): Call alloc_insn_link.
31095         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
31096
31097 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
31098
31099         * gcse.c (modify_mem_list): Convert to an array of VECs.
31100         (canon_modify_mem_list, compute_transp): Tweak formatting.
31101         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
31102         (load_killed_in_block_p): Likewise.
31103         (record_last_mem_set_info): Likewise.
31104         (clear_modify_mem_tables): Likewise.
31105
31106 2011-04-05  Tom de Vries  <tom@codesourcery.com>
31107
31108         PR middle-end/48461
31109         * function.c (emit_use_return_register_into_block): Only define if
31110         HAVE_return.
31111
31112 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
31113
31114         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
31115
31116 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
31117
31118         * config/rx/rx-opts.h: New.
31119         * config/rx/rx.c (rx_cpu_type): Remove.
31120         (rx_handle_option): Don't assert that global structures are in
31121         use.  Access variables via opts pointer.  Defer most handling of
31122         OPT_mint_register_.  Use error_at.
31123         (rx_option_override): Handle deferred OPT_mint_register_ here.
31124         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
31125         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
31126         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
31127         (rx_cpu_types): New Enum and EnumValue entries.
31128         (mint-register=): Use Defer and use Var accordingly.
31129
31130 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
31131
31132         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
31133         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
31134         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
31135         Move these...
31136         (debug_free_queue, debug_nesting, symbol_queue_index):
31137         ...and these...
31138         * dbxout.c: ...to here.  Make static.
31139
31140 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
31141
31142         * gcse.c (modify_pair): Define.  Define a VEC of it.
31143         (canon_modify_mem_list): Convert to an array of VECs.
31144         (free_insn_expr_list_list): Delete.
31145         (clear_modify_mem_tables): Call VEC_free instead.
31146         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
31147         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
31148         (canon_list_insert, compute_transp): Likewise.
31149
31150 2011-04-05  Tom de Vries  <tom@codesourcery.com>
31151
31152         PR target/43920
31153         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
31154         for size.
31155
31156 2011-04-05  Tom de Vries  <tom@codesourcery.com>
31157
31158         PR target/43920
31159         * function.c (emit_use_return_register_into_block): New function.
31160         (thread_prologue_and_epilogue_insns): Use
31161         emit_use_return_register_into_block.
31162
31163 2011-04-05  Tom de Vries  <tom@codesourcery.com>
31164
31165         PR target/43920
31166         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
31167         insn.
31168
31169 2011-04-05  Tom de Vries  <tom@codesourcery.com>
31170
31171         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
31172
31173 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
31174
31175         * config/arm/arm.md (define_constants for unspec): Replace with
31176         define_c_enum.
31177         (define_constants for unspecv): Replace with define_c_enum.
31178         * config/arm/neon.md (define_constants for unspec): Replace with
31179         define_c_enum.
31180
31181 2011-04-04  Richard Henderson  <rth@redhat.com>
31182
31183         PR bootstrap/48400
31184         * dwarf2out.c (output_line_info): Always emit line info from
31185         at least one section.
31186         (dwarf2out_init): Create text_section_line_info here ...
31187         (set_cur_line_info_table): ... not here.
31188
31189 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
31190
31191         PR target/48380
31192         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
31193         not called.
31194
31195         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
31196
31197 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
31198
31199         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
31200         (expr_equiv_p): Remove.
31201         (insert_set_in_table): Look at <dest, src> pair instead of expr.
31202         (hash_scan_set): Update call to insert_set_in_table.
31203         (dump_hash_table): Dump <dest, src> pair.
31204         (lookup_set): Simplify.  Lookup <dest, src> pair.
31205         (compute_transp): Remove, fold heavily simplified code into...
31206         (compute_local_properties): ...here.  Expect COMP and TRANSP
31207         unconditionally.
31208         (find_avail_set): Take set directly from struct expr.
31209         (find_bypass-set): Likewise.
31210         (bypass_block): Likewise.
31211         (cprop_insn): Likewise.  Remove redundant INSN_P test.
31212
31213         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
31214         checks on form of COND from find_implicit_sets to here.
31215         (find_implicit_sets): Cleanup control flow. Split critical edges
31216         if it exposes implicit sets.  Allocate/resize implicit_sets as
31217         necessary.
31218         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
31219         changed something.  Run df_analyze after find_implicit_sets if any
31220         edges were split.  Do not allocate implicit_sets here.
31221
31222         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
31223         (gcse_obstack): Renamed to cprop_obstack.
31224         (GNEW, GNEWVEC, GNEWVAR): Remove.
31225         (gmalloc): Remove.
31226         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
31227         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
31228         (gcse_alloc): Likewise, and rename to cprop_alloc.
31229         (alloc_gcse_men, free_gcse_mem): Remove.
31230         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
31231         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
31232         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
31233
31234         * cprop.c (oprs_not_set_p): Remove.
31235         (mark_set, mark_clobber): Remove.
31236         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
31237         (reg_not_set_p): New function.
31238         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
31239         (cprop_insn): Likewise.
31240         (cprop_jump): Use FOR_EACH_EDGE.
31241
31242 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
31243
31244         PR bootstrap/48403
31245         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
31246         (rank_for_schedule): Use scheduled_insns vector instead of
31247         last_scheduled_insn.
31248         (ok_for_early_queue_removal): Likewise.
31249         (queue_to_ready): Search forward in nonscheduled_insns_begin if
31250         we have a dbg_cnt.
31251         (choose_ready): Likewise.
31252         (commit_schedule): Use VEC_iterate.
31253         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
31254         a dbg_cnt, use it and ensure the first insn is in the ready list.
31255         (haifa_sched_init): Allocate scheduled_insns.
31256         (sched_extend_ready_list): Don't allocate it; reserve space.
31257         (haifa_sched_finish): Free it.
31258
31259 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
31260
31261         * optc-gen.awk: Always remove type from Variable entry before
31262         recording in var_seen.
31263
31264 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
31265
31266         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
31267         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
31268         call to tidy_fallthru_edges.
31269
31270 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
31271
31272         * doc/options.texi (ToLower): Document.
31273         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
31274         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
31275         * opts.h (cl_option): Add cl_tolower field.
31276         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
31277         arguments with lowercase strings.
31278         * config/rx/rx.opt (mcpu=): Add ToLower.
31279         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
31280         argument.
31281
31282 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
31283
31284         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
31285
31286 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
31287
31288         * config/vax/vax.c: Include reload.h.
31289
31290 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
31291
31292         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
31293         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
31294         (sparc_preferred_reload_class): New function.
31295
31296 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
31297
31298         PR debug/48401
31299         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
31300         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
31301
31302 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
31303
31304         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
31305         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
31306
31307 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
31308
31309         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
31310         (ASM_OUTPUT_ALIGNED_BSS): Define.
31311
31312 2011-04-03  Michael Matz  <matz@suse.de>
31313
31314         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
31315         and next_slot members.
31316         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
31317         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
31318         (lto_streamer_cache_append): Declare.
31319         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
31320         unsigned index, remove offset parameter, ensure that we append
31321         or update existing entries.
31322         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
31323         parameter, update next_slot for append.
31324         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
31325         parameter.
31326         (lto_streamer_cache_insert_at): Likewise.
31327         (lto_streamer_cache_append): New function.
31328         (lto_streamer_cache_lookup): Use unsigned index.
31329         (lto_streamer_cache_get): Likewise.
31330         (lto_record_common_node): Don't test tree_node_can_be_shared.
31331         (preload_common_node): Adjust call to lto_streamer_cache_insert.
31332         (lto_streamer_cache_delete): Don't free offsets member.
31333         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
31334         (lto_output_string_with_length): Use lto_output_data_stream.
31335         (lto_output_tree_header): Remove ix parameter, don't write it.
31336         (lto_output_builtin_tree): Likewise.
31337         (lto_write_tree): Adjust callers to above, don't track and write
31338         offset, write unsigned index.
31339         (output_unreferenced_globals): Don't emit all global vars.
31340         (write_global_references): Use unsigned indices.
31341         (lto_output_decl_state_refs): Likewise.
31342         (write_symbol): Likewise.
31343         * lto-streamer-in.c (lto_input_chain): Move earlier.
31344         (input_function): Use unsigned index.
31345         (input_alias_pairs): Don't read and then ignore all global vars.
31346         (lto_materialize_tree): Remove ix_p parameter, don't read index,
31347         don't pass it back, use lto_streamer_cache_append.
31348         (lto_register_var_decl_in_symtab): Use unsigned index.
31349         (lto_register_function_decl_in_symtab): Likewise.
31350         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
31351         index.
31352         (lto_get_builtin_tree): Don't read index, use
31353         lto_streamer_cache_append.
31354         (lto_read_tree): Adjust call to lto_materialize_tree.
31355
31356         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
31357         don't use function calls in arguments to MIN.
31358
31359         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
31360         twice.
31361
31362         * gimple.c (gimple_type_leader_entry): Mark deletable.
31363
31364 2011-04-03  Alan Modra  <amodra@gmail.com>
31365
31366         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
31367
31368 2011-04-03  Michael Matz  <matz@suse.de>
31369
31370         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
31371         an integer.
31372         * tree.h (tree_decl_non_common.vindex): Adjust comment.
31373
31374 2011-04-03  Michael Matz  <matz@suse.de>
31375
31376         * cgraphbuild.c (record_reference): Canonicalize constructor values.
31377         * gimple-fold.c (canonicalize_constructor_val): Accept being called
31378         without function context.
31379         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
31380         current_function_decl and cfun.
31381
31382 2011-04-03  Michael Matz  <matz@suse.de>
31383
31384         * tree.c (decl_init_priority_insert): Don't create entry for
31385         default priority.
31386         (decl_fini_priority_insert): Ditto.
31387         (fields_compatible_p, find_compatible_field): Remove.
31388         * tree.h (fields_compatible_p, find_compatible_field): Remove.
31389         * gimple.c (gimple_compare_field_offset): Adjust block comment.
31390
31391 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
31392
31393         * combine.c (try_combine): Remove useless local variable.
31394
31395 2011-04-03  Richard Guenther  <rguenther@suse.de>
31396             Ira Rosen  <ira.rosen@linaro.org>
31397
31398         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
31399         non-variable offsets and compare the remaining bases of the two
31400         accesses instead of looking for exact same data-ref.
31401
31402 2011-04-02  Kai Tietz  <ktietz@redhat.com>
31403
31404         PR target/48416
31405         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
31406
31407         * i386.c (ix86_is_msabi_thiscall): New helper function.
31408         (ix86_is_type_thiscall): New helper function.
31409         (ix86_comp_type_attributes): Handle thiscall for method-functions
31410         special.
31411         (init_cumulative_args): Likewise.
31412         (find_drap_reg): Likewise.
31413         (ix86_static_chain): Likewise.
31414         (x86_this_parameter): Likewise.
31415         (x86_output_mi_thunk): Likewise.
31416
31417 2011-04-01  Olivier Hainque  <hainque@adacore.com>
31418             Nicolas Setton  <setton@adacore.com>
31419             Eric Botcazou  <ebotcazou@adacore.com>
31420
31421         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
31422         (add_gnat_descriptive_type_attribute): New function.
31423         (gen_array_type_die): Call it.
31424         (gen_enumeration_type_die): Likewise.
31425         (gen_struct_or_union_type_die): Likewise.
31426         (modified_type_die): Likewise.
31427         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
31428         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
31429         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
31430
31431 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
31432
31433         PR bootstrap/48148
31434         * dwarf2out.c (resolve_addr): Don't call force_decl_die
31435         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
31436
31437         Revert:
31438         2011-03-17  Richard Guenther  <rguenther@suse.de>
31439
31440         PR bootstrap/48148
31441         * lto-cgraph.c (input_overwrite_node): Clear the abstract
31442         origin for decls in other ltrans units.
31443         (input_varpool_node): Likewise.
31444
31445 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
31446
31447         PR middle-end/48335
31448         * expr.c (expand_assignment): Handle all possibilities
31449         if TO_RTX is CONCAT.
31450         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
31451         (store_split_bit_field): If SUBREG_REG (op0) or
31452         op0 itself has smaller mode than word, return it
31453         for offset 0 and const0_rtx for out-of-bounds stores.
31454         If word is const0_rtx, skip it.
31455
31456 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
31457
31458         * config/h8300/h8300.c (print_operand_address): Rename to...
31459         (h8300_print_operand_address): ...this. Make static. Adjust comments.
31460         Call h8300_print_operand and h8300_print_operand_address instead of
31461         print_operand and print_operand_address. Declare.
31462         (print_operand): Renake to...
31463         (h8300_print_operand): ...this. Make static. Adjust comments.
31464         Call h8300_print_operand instead of print_operand. Declare.
31465         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
31466         (h8300_register_move_cost): Likewise.
31467         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
31468         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
31469         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
31470         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
31471         * config/h8300/h8300-protos.h (print_operand): Delete.
31472         (print_operand_address): Delete.
31473
31474 2011-04-01  Richard Henderson  <rth@redhat.com>
31475
31476         PR 48400
31477         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
31478         in strict mode before dwarf4.  Re-order tests to early out
31479         before switching sections.
31480
31481 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
31482
31483         * config/h8300/constraints.md: New file.
31484         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
31485         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
31486         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
31487         * config/h8300/predicates.md (bit_operand): Likewise.
31488         (incdec_operand): Use satisfies_constraint_M and
31489         satisfies_constraint_O.  Don't use C code block.
31490         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
31491         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
31492         (compute_mov_length): Use satisfies_constraint_G.
31493         (fix_bit_operand): Use satisfies_constraint_U.
31494         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
31495         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
31496         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
31497         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
31498         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
31499         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
31500         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
31501         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
31502         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
31503         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
31504         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
31505         (EXTRA_MEMORY_CONSTRAINT): Delete.
31506
31507 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
31508             Michael Meissner  <meissner@linux.vnet.ibm.com>
31509
31510         PR target/48262
31511         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
31512         operands, as per the specifications.
31513
31514         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
31515         (vec_extract_evenv4sf): Ditto.
31516         (vec_extract_evenv8hi): Ditto.
31517         (vec_extract_evenv16qi): Ditto.
31518         (vec_extract_oddv4si): Ditto.
31519
31520 2011-03-31  Mark Wielaard  <mjw@redhat.com>
31521
31522         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
31523         high_pc attribute if the CU has no associated code. Only output
31524         DW_AT_entry_pc for CU if not generating strict dwarf and
31525         dwarf_version < 4.
31526
31527 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
31528
31529         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
31530         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
31531         out of ...
31532         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
31533         * final.c (final_start_function): Call the new function rather
31534         than using a NULL argument for dwarf2out_frame_debug.
31535
31536         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
31537         that contains the prologue.
31538
31539         * haifa-sched.c (queue_insn): New arg REASON.  All callers
31540         changed.  Print it in debugging output.
31541
31542         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
31543
31544         * sched-ebb.c (begin_schedule_ready): Remove second argument.
31545         Split most of the code into...
31546         (begin_move_insn): ... here.  New function.
31547         (ebb_sched_info): Add a pointer to it.
31548         * haifa-sched.c (scheduled_insns): New static variable.
31549         (sched_extend_ready_list): Allocate it.
31550         (schedule_block): Use it to record the order of scheduled insns.
31551         Perform RTL changes to move insns only after all scheduling
31552         decisions have been made.
31553         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
31554         begin_move_insn field.
31555         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
31556         * sched-int.h (struct haifa_sched_info): Remove second argument
31557         from begin_schedule_ready hook.  Add new member begin_move_insn.
31558         * sched-rgn.c (begin_schedule_ready): Remove second argument.
31559         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
31560
31561         * haifa-sched.c (prune_ready_list): New function, broken out of
31562         schedule_block.
31563         (schedule_block): Use it.
31564
31565 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31566
31567         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
31568
31569 2011-04-01  Kai Tietz  <ktietz@redhat.com>
31570
31571         * config.gcc (*-*-mingw*): Allow as option the
31572         posix threading model.
31573         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
31574         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
31575         definition.
31576         (CPP_SPEC): Add pthread/no-pthread handling.
31577         (LIB_SPEC): Likewise.
31578         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
31579         (LIB_SPEC): Likewise.
31580         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
31581         flag to pass -pthread option for shared libgcc build.
31582         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
31583         for shared libgcc build.
31584         * config/i386/t-mingw-pthread: New file.
31585         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
31586         New define to enable use of library pthread by default.
31587         * config/i386/mingw.opt (pthread): New driver option.
31588         (no-pthread): New driver option.
31589         * config/i386/cygming.opt: Make sure trailing empty line is retained.
31590         * config/i386/mingw-w64.opt: Likewise.
31591
31592 2011-04-01  Gary Funck  <gary@intrepid.com>
31593
31594         * c-decl.c (grokdeclarator): Fix formatting.
31595
31596 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
31597
31598         * expr.c (emit_block_move_via_movmem): Use n_generator_args
31599         instead of n_operands.
31600         (set_storage_via_setmem): Likewise.
31601         * optabs.c (maybe_gen_insn): Likewise.
31602         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
31603         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
31604         (mips_expand_builtin_direct): Likewise.
31605         * config/spu/spu.c (expand_builtin_args): Likewise.
31606
31607 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
31608
31609         * recog.h (insn_data_d): Add n_generator_args.
31610         * genoutput.c (data): Likewise.
31611         (output_insn_data): Print it.
31612         (max_opno, num_dups): Delete.
31613         (scan_operands): Just fill in "d->operand[...]".
31614         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
31615
31616 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
31617
31618         * gensupport.h (pattern_stats): New structure.
31619         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
31620         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
31621         (max_operand_1, max_operand_vec): Delete.
31622         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
31623
31624 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
31625
31626         * emit-rtl.c (emit_pattern_after_setloc): New function.
31627         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
31628         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
31629         (emit_pattern_after): New function.
31630         (emit_insn_after, emit_jump_insn_after): Call it.
31631         (emit_call_insn_after, emit_debug_insn_after): Likewise.
31632         (emit_pattern_before_setloc): New function.
31633         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
31634         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
31635         Likewise.
31636         (emit_pattern_before): New function.
31637         (emit_insn_before, emit_jump_insn_before): Call it.
31638         (emit_call_insn_before, emit_debug_insn_before): Likewise.
31639
31640 2011-03-31  Richard Henderson  <rth@redhat.com>
31641
31642         * dwarf2out.c (dw_separate_line_info_ref): Remove.
31643         (dw_separate_line_info_entry): Remove.
31644         (enum dw_line_info_opcode): New.
31645         (dw_line_info_entry): Use it.
31646         (dw_line_info_table, dw_line_info_table_p): New.
31647         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
31648         (line_info_table, line_info_label_num): Remove.
31649         (line_info_table_in_use): Remove.
31650         (separate_line_info_table): Remove.
31651         (separate_line_info_table_allocated): Remove.
31652         (separate_line_info_table_in_use): Remove.
31653         (LINE_INFO_TABLE_INCREMENT): Remove.
31654         (line_info_label_num): New.
31655         (cur_line_info_table): New.
31656         (text_section_line_info, cold_text_section_line_info): New.
31657         (separate_line_info): New.
31658         (SEPARATE_LINE_CODE_LABEL): Remove.
31659         (print_dwarf_line_table): Remove.
31660         (debug_dwarf): Don't dump it.
31661         (output_one_line_info_table): New.
31662         (output_line_info): Use it.
31663         (new_line_info_table): New.
31664         (set_cur_line_info_table): New.
31665         (dwarf2out_switch_text_section): Use it.
31666         (dwarf2out_begin_function): Likewise.
31667         (push_dw_line_info_entry): New.
31668         (dwarf2out_source_line): Rewrite for new line info tables.
31669         (dwarf2out_init): Remove dead initailizations.
31670
31671 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
31672
31673         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
31674         various flags.
31675         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
31676         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
31677         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
31678         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
31679         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
31680         * opt-functions.awk (flag_init, switch_bit_fields): New.
31681         (switch_flags): Don't handle flags moved to bit-fields.  Don't
31682         generate CL_MISSING_OK or CL_SAVE.
31683         * optc-gen.awk: Update to generate bit-field output as well as
31684         flags field.
31685         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
31686         bit-field instead of CL_REJECT_DRIVER flag.
31687         * opts-common.c (generate_canonical_option,
31688         decode_cmdline_option): Use bit-fields instead of CL_* flags.
31689         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
31690         instead of CL_REJECT_NEGATIVE flag.
31691         * toplev.c (print_switch_values): Use cl_report bit-field instead
31692         of CL_REPORT flag.
31693
31694 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
31695
31696         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
31697         a zero minimum index only if it is redundant.
31698
31699 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
31700
31701         PR rtl-optimization/48381
31702         * ira-color.c (assign_hard_reg): Use hard reg set intersection
31703         instead of ira_class_hard_reg_index for calculating conflicting
31704         hard registers.
31705
31706 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
31707
31708         * cprop.c: Clean up hash table building.
31709         (reg_avail_info): Remove.
31710         (oprs_available_p): Remove.
31711         (record_last_reg_set_info): Remove.
31712         (record_last_set_info): Remove.
31713         (reg_available_p): New function.
31714         (gcse_constant_p): Do not treat unfolded conditions as constants.
31715         (make_set_regs_unavailable): New function.
31716         (hash_scan_set): Simplify with new reg_available_p.
31717         (compute_hash_table_work): Traverse insns stream only once.
31718         Do not compute reg_avail_info. Traverse insns in reverse order.
31719         Record implicit sets after recording explicit sets from the block.
31720
31721 2011-03-31  Michael Matz  <matz@suse.de>
31722
31723         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
31724
31725 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
31726
31727         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
31728         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
31729         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
31730         (h8300_mode_dependent_address_p): New function.
31731         (h8300_get_index): Make static.
31732
31733 2011-03-31  Jeff Law  <law@redhat.com>
31734
31735         * reload1.c (elimination_effects): Fix typo in recent change.
31736
31737         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
31738         typo potentially leading to null pointer dereference.
31739
31740         * caller-save.c (new_saved_hard_reg): Eliminate return value.
31741         (setup_save_areas): Corresponding changes to avoid useless
31742         assignments.
31743
31744         * jump.c (reversed_comparison_code_parts): Avoid successive return
31745         statements when REVERSE_CONDITION is defined.
31746
31747         * expr.c (expand_assignment): Avoid useless assignments.
31748         (expand_expr_real_1): Likewise.
31749         (expand_expr_real_2): Avoid useless statements.
31750
31751         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
31752
31753         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
31754
31755         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
31756         statements.
31757
31758         * stmt.c (expand_expr_stmt): Avoid useless assignment.
31759
31760 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
31761
31762         PR target/47109
31763         * doc/tm.texi.in (TARGET_VERSION): Remove.
31764         * doc/tm.texi: Regenerate.
31765         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
31766         * collect2.c (main): Don't use TARGET_VERSION.
31767         * mips-tdump.c (main): Don't use TARGET_VERSION.
31768         * mips-tfile.c (main): Don't use TARGET_VERSION.
31769         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
31770         * config/rs6000/vxworksae.h: Remove.
31771         * config/alpha/alpha.h (TARGET_VERSION): Remove.
31772         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
31773         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
31774         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
31775         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
31776         * config/arm/arm.h (TARGET_VERSION): Remove.
31777         * config/arm/coff.h (TARGET_VERSION): Remove.
31778         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
31779         * config/arm/elf.h (TARGET_VERSION): Remove.
31780         * config/arm/freebsd.h (TARGET_VERSION): Remove.
31781         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
31782         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
31783         * config/arm/pe.h (TARGET_VERSION): Remove.
31784         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
31785         * config/arm/semi.h (TARGET_VERSION): Remove.
31786         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
31787         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
31788         * config/arm/vxworks.h (TARGET_VERSION): Remove.
31789         * config/avr/avr.h (TARGET_VERSION): Remove.
31790         * config/bfin/bfin.h (TARGET_VERSION): Remove.
31791         * config/fr30/fr30.h (TARGET_VERSION): Remove.
31792         * config/frv/frv.h (TARGET_VERSION): Remove.
31793         * config/h8300/h8300.h (TARGET_VERSION): Remove.
31794         * config/i386/cygwin.h (TARGET_VERSION): Remove.
31795         * config/i386/darwin.h (TARGET_VERSION): Remove.
31796         * config/i386/darwin64.h (TARGET_VERSION): Remove.
31797         * config/i386/djgpp.h (TARGET_VERSION): Remove.
31798         * config/i386/freebsd.h (TARGET_VERSION): Remove.
31799         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
31800         * config/i386/gnu.h (TARGET_VERSION): Remove.
31801         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
31802         * config/i386/i386elf.h (TARGET_VERSION): Remove.
31803         * config/i386/linux.h (TARGET_VERSION): Remove.
31804         * config/i386/linux64.h (TARGET_VERSION): Remove.
31805         * config/i386/lynx.h (TARGET_VERSION): Remove.
31806         * config/i386/mingw32.h (TARGET_VERSION): Remove.
31807         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
31808         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
31809         * config/i386/netware.h (TARGET_VERSION): Remove.
31810         * config/i386/nto.h (TARGET_VERSION): Remove.
31811         * config/i386/openbsd.h (TARGET_VERSION): Remove.
31812         * config/i386/vxworks.h (TARGET_VERSION): Remove.
31813         * config/ia64/elf.h (TARGET_VERSION): Remove.
31814         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
31815         * config/ia64/hpux.h (TARGET_VERSION): Remove.
31816         * config/ia64/linux.h (TARGET_VERSION): Remove.
31817         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
31818         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
31819         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
31820         * config/lm32/lm32.h (TARGET_VERSION): Remove.
31821         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
31822         * config/m32c/m32c.h (TARGET_VERSION): Remove.
31823         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
31824         * config/m32r/m32r.h (TARGET_VERSION): Remove.
31825         * config/m68k/linux.h (TARGET_VERSION): Remove.
31826         * config/m68k/m68k.h (TARGET_VERSION): Remove.
31827         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
31828         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
31829         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
31830         * config/mep/mep.h (TARGET_VERSION): Remove.
31831         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
31832         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
31833         * config/mips/iris6.h (MACHINE_TYPE): Remove.
31834         * config/mips/linux.h (TARGET_VERSION): Remove.
31835         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
31836         * config/mips/vxworks.h (TARGET_VERSION): Remove.
31837         * config/mmix/mmix.h (TARGET_VERSION): Remove.
31838         * config/mn10300/linux.h (TARGET_VERSION): Remove.
31839         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
31840         * config/pa/pa.h (TARGET_VERSION): Remove.
31841         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
31842         * config/picochip/picochip.h (TARGET_VERSION): Remove.
31843         * config/rs6000/aix.h (TARGET_VERSION): Remove.
31844         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
31845         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
31846         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
31847         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
31848         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
31849         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
31850         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
31851         * config/rs6000/linux.h (TARGET_VERSION): Remove.
31852         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
31853         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
31854         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
31855         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
31856         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
31857         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
31858         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
31859         * config/s390/linux.h (TARGET_VERSION): Remove.
31860         * config/s390/s390.h (TARGET_VERSION): Remove.
31861         * config/s390/tpf.h (TARGET_VERSION): Remove.
31862         * config/score/score.h (TARGET_VERSION): Remove.
31863         * config/sh/linux.h (TARGET_VERSION): Remove.
31864         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
31865         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
31866         * config/sh/sh.h (TARGET_VERSION): Remove.
31867         * config/sh/sh64.h (TARGET_VERSION): Remove.
31868         * config/sh/superh.h (TARGET_VERSION): Remove.
31869         * config/sh/vxworks.h (TARGET_VERSION): Remove.
31870         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
31871         * config/sparc/linux.h (TARGET_VERSION): Remove.
31872         * config/sparc/linux64.h (TARGET_VERSION): Remove.
31873         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
31874         TARGET_NAME32, TARGET_NAME): Remove.
31875         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
31876         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
31877         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
31878         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
31879         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
31880         * config/spu/spu.h (TARGET_VERSION): Remove.
31881         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
31882         * config/v850/v850.h (TARGET_VERSION): Remove.
31883         * config/vax/linux.h (TARGET_VERSION): Remove.
31884         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
31885         * config/xtensa/elf.h (TARGET_VERSION): Remove.
31886         * config/xtensa/linux.h (TARGET_VERSION): Remove.
31887
31888 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
31889
31890         PR target/48142
31891         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
31892         frame-related from frame-unrelated adjustments to the stack pointer.
31893
31894 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
31895
31896         * common.opt (fdebug-types-section): Move earlier.
31897         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
31898
31899 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
31900
31901         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
31902         var.
31903
31904 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
31905
31906         * tree.h (CASE_CHAIN): Define.
31907         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
31908         (gimple_redirect_edge_and_branch): Likewise.
31909
31910 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
31911
31912         PR middle-end/48367
31913         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
31914         calculation.
31915
31916 2011-03-30  Jeff Law  <law@redhat.com>
31917
31918         * PR bootstrap/48371
31919         * reload1.c (reload): Fix botch in last change.
31920
31921         * reload.h (struct reload): Fix typo introduced in last change.
31922
31923 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
31924
31925         * config/arm/arm.opt (mhard-float, msoft-float): Mark
31926         Undocumented.  Remove help text.
31927         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
31928         -mhard-float.
31929
31930 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
31931
31932         * doc/options.texi (NegativeAlias): Document.
31933         (Alias): Mention NegativeAlias.
31934         * opt-functions.awk: Handle NegativeAlias.
31935         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
31936         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
31937         * opts.h (CL_NEGATIVE_ALIAS): Define.
31938         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
31939         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
31940         OPT_mspe_.
31941         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
31942         Alias entries.
31943         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
31944         mno-spe and mno-isel instead of mspe=no and -misel=no.
31945
31946 2011-03-29  Mark Wielaard  <mjw@redhat.com>
31947
31948         * common.opt (fdebug-types-section): New flag.
31949         * doc/invoke.texi: Document new -fno-debug-types-section flag.
31950         * dwarf2out.c (use_debug_types): New define.
31951         (struct die_struct): Mark die_id with GTY desc use_debug_types.
31952         (print_die): Guard output of type unit signatures using
31953         use_debug_types.
31954         (build_abbrev_table): Replace assert of dwarf_version >= 4
31955         with assert on use_debug_types.
31956         (size_of_die): Likewise.
31957         (unmark_dies): Likewise.
31958         (value_format): Decide AT_ref_external form on use_debug_types.
31959         (output_die): Replace dwarf_version version check guard with
31960         use_debug_types where appropriate.
31961         (modified_type_die): Likewise.
31962         (gen_reference_type_die): Likewise.
31963         (dwarf2out_start_source_file): Likewise.
31964         (dwarf2out_end_source_file): Likewise.
31965         (prune_unused_types_walk_attribs): Likewise.
31966         (dwarf2out_finish): Likewise.
31967
31968 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
31969
31970         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
31971
31972 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
31973
31974         PR rtl-optimization/48332
31975         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
31976         mode of input operand N and modeN to its actual mode.
31977
31978 2011-03-30  Jeff Law  <law@redhat.com>
31979
31980         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
31981         define accessor macro.
31982         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
31983         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
31984         (reg_equiv_init): Likewise.
31985         (reg_equivs_size): New variable.
31986         (reg_equiv_init_size): Remove.
31987         (allocate_initial_values): Move prototype to here from....
31988         * integrate.h (allocate_initial_values): Remove prototype.
31989         * integrate.c: Include reload.h.
31990         (allocate_initial_values): Corresponding changes.
31991         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
31992         (fix_reg_equiv_init, no_equiv): Corresponding changes.
31993         (update_equiv_regs): Corresponding changes.
31994         (ira): Corresponding changes.
31995         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
31996         (push_secondary_reload): Corresponding changes.
31997         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
31998         (make_memloc, find_reloads_address): Corresponding changes.
31999         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
32000         (find_reloads_address_1): Corresponding changes.
32001         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
32002         (refers_to_regno_for_reload_p): Corresponding changes.
32003         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
32004         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
32005         * reload1.c: Include ggc.h.
32006         (grow_reg_equivs): New function.
32007         (replace_pseudos_in, reload): Corresponding changes.
32008         (calculate_needs_all_insns, alter_regs): Corresponding changes.
32009         (eliminate_regs_1, elimination_effects): Corresponding changes.
32010         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
32011         (delete_output_reload): Likewise.
32012         * caller-save.c (mark_referenced_regs): Corresponding changes.
32013         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
32014         * frv/predicates.md (frv_load_operand): Corresponding changes.
32015         * microblaze/microblaze.c (double_memory_operand): Corresponding
32016         changes.
32017         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
32018         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
32019         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
32020         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
32021         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
32022         changes.
32023         * pa/pa.c (emit_move_sequence): Corresponding changes.
32024         * vax/vax.c (nonindexed_address_p): Corresponding changes.
32025
32026 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
32027
32028         PR target/47551
32029         * config/arm/arm.c (coproc_secondary_reload_class): Handle
32030         structure modes.  Don't check neon_vector_mem_operand for
32031         vector or structure modes.
32032
32033 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
32034             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
32035
32036         PR target/43590
32037         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
32038         operand 1 and reshuffle the operands to match.
32039         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
32040
32041 2011-03-30  Christian Schüler  <cschueler@gmx.de>
32042
32043         PR driver/48208
32044         * config/c.opt (F): Added 'Driver' to -F option.
32045
32046         PR driver/48260
32047         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
32048           handler function.
32049         * config/darwin.opt: Added '-arch' option.
32050
32051 2011-03-30  Nick Clifton  <nickc@redhat.com>
32052
32053         * config/rx/rx.md: Add peepholes and patterns to combine
32054         extending loads and simple arithmetic instructions.
32055         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
32056         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
32057         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
32058         modes to use pre-decrement and post-increment addressing.
32059         (rx_is_restricted_memory_address): Add range checking of REG+INT
32060         addresses.
32061         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
32062         (rx_memory_move_cost): Adjust cost of stores.
32063         (rx_adjust_insn_length): New function.
32064
32065 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
32066
32067         PR c/48305
32068         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
32069         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
32070         matching arg00/arg01 types.
32071
32072 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
32073
32074         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
32075         last_location to UNKNOWN_LOCATION.
32076
32077 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
32078
32079         PR target/48349
32080         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
32081         FLOAT_SSE_REGS.
32082
32083 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
32084             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32085
32086         PR bootstrap/48337
32087         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
32088         Init(PROCESSOR_V7).
32089         (sparc_cpu): Likewise.
32090         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
32091         PROCESSOR_V7.
32092
32093 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
32094
32095         PR target/48336
32096         PR middle-end/48342
32097         PR rtl-optimization/48345
32098         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
32099         hard regs for given mode from profitable regs when doing secondary
32100         allocation.
32101
32102 2011-03-29  Jeff Law  <law@redhat.com>
32103
32104         PR bootstrap/48327
32105         * tree-ssa-threadupdate.c (struct redirection_data): Remove
32106         do_not_duplicate field.
32107         (lookup_redirection_data): Corresponding changes.
32108         (create_duplicates): Always create a template block.
32109         (redirect_edges): Remove code which reused the original block
32110         when it was going to become unreachable code.
32111         (thread_block): Don't set do_not_duplicate field.
32112
32113 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
32114
32115         * lto-opts.c (register_user_option_p, lto_register_user_option):
32116         Make type argument unsigned.
32117         * lto-streamer.h (lto_register_user_option): Make type argument
32118         unsigned.
32119         * opth-gen.awk: Make CL_* macros unsigned.
32120         * opts-common.c (find_opt): Make lang_mask argument unsigned.
32121         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
32122         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
32123         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
32124         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
32125         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
32126         (find_opt): Make lang_mask argument unsigned.
32127
32128 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
32129
32130         PR rtl-optimization/48331
32131         PR rtl-optimization/48334
32132         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
32133         for any used algorithm.
32134
32135 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
32136
32137         * ira-conflicts.c (build_object_conflicts): Add unused attribute
32138         to parent_max.
32139
32140 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
32141
32142         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
32143         (alpha_option_override): Don't set alpha_sr_alias_set.
32144         (emit_frame_store_1): Use gen_frame_mem rather than calling
32145         set_mem_alias_set.
32146         (alpha_expand_epilogue): Ditto.
32147
32148 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
32149
32150         PR tree-optimization/48290
32151         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
32152         vectorization, check that relevant phis in the basic block after
32153         the inner loop are really inner loop's exit phis.
32154
32155 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
32156
32157         PR debug/48190
32158         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
32159         (cached_dw_loc_list_def): New structure.
32160         (cached_dw_loc_list): New typedef.
32161         (cached_dw_loc_list_table): New variable.
32162         (cached_dw_loc_list_table_hash): New function.
32163         (cached_dw_loc_list_table_eq): Likewise.
32164         (add_location_or_const_value_attribute): Take a bool cache_p.
32165         Cache the list when the parameter is true.
32166         (gen_formal_parameter_die): Update caller.
32167         (gen_variable_die): Likewise.
32168         (dwarf2out_finish): Likewise.
32169         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
32170         while generating debug info for the decl.
32171         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
32172         (dwarf2out_init): Initialize cached_dw_loc_list_table.
32173         (resolve_addr): Cache the result of resolving a chain of
32174         location lists.
32175
32176 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
32177
32178         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
32179         conflict object hard regset nodes have intersecting hard reg sets.
32180
32181         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
32182         after regstat_init_n_sets_and_refs.
32183
32184         * ira.c: Add more comments at the top.
32185         (setup_stack_reg_pressure_class, setup_pressure_classes):
32186         Add comments how we compute the register pressure classes.
32187         (setup_allocno_and_important_classes): Add more comments.
32188         (setup_class_translate_array, reorder_important_classes)
32189         (setup_reg_class_relations): Add comments.
32190
32191         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
32192         start of the file.
32193
32194         * ira-color.c: Add 2011 to the Copyright line.
32195         (assign_hard_reg):  Add more comments.
32196         (improve_allocation): Ditto.
32197
32198         * ira-costs.c: Add 2011 to the Copyright line.
32199         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
32200         comments.
32201         (setup_regno_cost_classes_by_mode): Ditto.
32202
32203         Initial patches from ira-improv branch:
32204
32205         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
32206
32207         * ira-build.c (ira_create_object): Remove initialization of
32208         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
32209         (ira_create_allocno): Remove initialization of
32210         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
32211         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
32212         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
32213         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
32214         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
32215         Initialize ALLOCNO_ADD_DATA.
32216         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
32217         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
32218         ALLOCNO_REG.
32219         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
32220         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
32221
32222         * ira.c (ira_reallocate): Remove.
32223         (setup_pressure_classes): Call
32224         ira_init_register_move_cost_if_necessary.  Use
32225         ira_register_move_cost instead of ira_get_register_move_cost.
32226         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
32227         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
32228
32229         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
32230         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
32231         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
32232         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
32233         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
32234         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
32235         Fix formatting.
32236         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
32237         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
32238         (struct allocno_color_data): New.
32239         (allocno_color_data_t): New typedef.
32240         (allocno_color_data): New definition.
32241         (ALLOCNO_COLOR_DATA): New macro.
32242         (struct object_color_data): New.
32243         (object_color_data_t): New typedef.
32244         (object_color_data): New definition.
32245         (OBJECT_COLOR_DATA): New macro.
32246         (update_copy_costs, calculate_allocno_spill_cost): Call
32247         ira_init_register_move_cost_if_necessary.  Use
32248         ira_register_move_cost instead of ira_get_register_move_cost.
32249         (move_spill_restore, update_curr_costs): Ditto.
32250         (allocno_spill_priority): Make it inline.
32251         (color_pass): Allocate and free allocno_color_dat and object_color_data.
32252         (struct coalesce_data, coalesce_data_t): New.
32253         (allocno_coalesce_data): New definition.
32254         (ALLOCNO_COALESCE_DATA): New macro.
32255         (merge_allocnos, coalesced_allocno_conflict_p): Use
32256         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
32257         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
32258         (coalesce_allocnos): Ditto.
32259         (setup_coalesced_allocno_costs_and_nums): Ditto.
32260         (collect_spilled_coalesced_allocnos): Ditto.
32261         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
32262         (setup_slot_coalesced_allocno_live_ranges): Ditto.
32263         (coalesce_spill_slots): Ditto.
32264         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
32265         free allocno_coalesce_data.
32266
32267         * ira-conflicts.c: Fix formatting.
32268         (process_regs_for_copy): Call
32269         ira_init_register_move_cost_if_necessary.  Use
32270         ira_register_move_cost instead of ira_get_register_move_cost.
32271         (build_object_conflicts): Optimize.
32272
32273         * ira-costs.c (record_reg_classes): Optimize.  Call
32274         ira_init_register_move_cost_if_necessary.  Use
32275         ira_register_move_cost, ira_may_move_in_cost, and
32276         ira_may_move_out_cost instead of ira_get_register_move_cost and
32277         ira_get_may_move_cost.
32278         (record_address_regs): Ditto.
32279         (scan_one_insn): Optimize.
32280         (find_costs_and_classes): Optimize.
32281         (process_bb_node_for_hard_reg_moves): Call
32282         ira_init_register_move_cost_if_necessary.  Use
32283         ira_register_move_cost instead of ira_get_register_move_cost.
32284
32285         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
32286         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
32287         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
32288         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
32289         definitions.
32290         (ira_initiate_emit_data, ira_finish_emit_data)
32291         (create_new_allocno): New functions.
32292         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
32293         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
32294         Use ira_register_move_cost instead of ira_get_register_move_cost.
32295
32296         * ira-int.h: Fix some comments.
32297         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
32298         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
32299         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
32300         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
32301         add_data.
32302         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
32303         bitfield after mode.  Make hard_regno a short int.  Make
32304         hard_regno short.  Remove first_coalesced_allocno and
32305         next_coalesced_allocno.  Move mem_optimized_dest_p,
32306         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
32307         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
32308         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
32309         temp, colorable_p.  Add new member add_data.
32310         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
32311         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
32312         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
32313         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
32314         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
32315         (ALLOCNO_ADD_DATA): New macro.
32316         (ira_emit_data_t): New typedef.
32317         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
32318         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
32319         from struct ira_allocno.
32320         (ALLOCNO_EMIT_DATA): New macro.
32321         (ira_allocno_emit_data, allocno_emit_reg): New.
32322         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
32323         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
32324         (OBJECT_ADD_DATA): New macro.
32325         (ira_reallocate): Remove.
32326         (ira_initiate_emit_data, ira_finish_emit_data): New.
32327         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
32328         (ira_init_register_move_cost_if_necessary): New.
32329         (ira_object_conflict_iter_next): Merge into
32330         ira_object_conflict_iter_cond.
32331         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
32332
32333         * ira-live.c (process_single_reg_class_operands): Call
32334         ira_init_register_move_cost_if_necessary.  Use
32335         ira_register_move_cost instead of ira_get_register_move_cost.
32336
32337         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
32338
32339         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
32340
32341         * ira-costs.c: Fix formatting.
32342         (cost_classes, cost_classes_num): Remove.
32343         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
32344         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
32345         (cost_classes_del, cost_classes_htab): New.
32346         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
32347         (initiate_regno_cost_classes, setup_cost_classes): New.
32348         (setup_regno_cost_classes_by_aclass): New.
32349         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
32350         (record_reg_classes): Use regno_cost_classes instead of
32351         cost_classes.  Move checking opposite operand up.
32352         (record_address_regs): Use regno_cost_classes
32353         instead of cost_classes.
32354         (scan_one_insn): Ditto.  Use always general register.
32355         (print_allocno_costs): Use regno_cost_classes instead of
32356         cost_classes.
32357         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
32358         (find_costs_and_classes): Set up cost classes for each registers.
32359         Use also their mode for this.  Use regno_cost_classes instead of
32360         cost_classes.
32361         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
32362         cost_classes.
32363         (free_ira_costs, ira_init_costs): Don't use cost_classes.
32364         (ira_costs, ira_set_pseudo_classes): Call
32365         initiate_regno_cost_classes and finish_regno_cost_classes.
32366
32367         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
32368
32369         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
32370
32371         * target.def (ira_cover_classes): Remove.
32372
32373         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
32374
32375         * doc/tm.texi.in: Ditto.
32376
32377         * ira-conflicts.c: Remove mentioning cover classes from the file.
32378         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
32379         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
32380
32381         * targhooks.c (default_ira_cover_classes): Remove.
32382
32383         * targhooks.h (default_ira_cover_classes): Ditto.
32384
32385         * haifa-sched.c: Remove mentioning cover classes from the file.
32386         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
32387         ira_pressure_classes and ira_pressure_classes_num instead of
32388         ira_reg_class_cover_size and ira_reg_class_cover.  Use
32389         sched_regno_pressure_class instead of sched_regno_cover_class.
32390         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
32391         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
32392
32393         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
32394         classes from the file.
32395         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
32396         (struct object_hard_regs, struct object_hard_regs_node): New.
32397         (struct ira_object): New members profitable_hard_regs,
32398         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
32399         (struct ira_allocno): Rename cover_class to aclass.  Rename
32400         cover_class_cost and updated_cover_class_cost to class_cost and
32401         updated_class_cost.  Remove splay_removed_p and
32402         left_conflict_size.  Add new members colorable_p.
32403         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
32404         (ALLOCNO_COLORABLE_P): New macro.
32405         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
32406         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
32407         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
32408         (OBJECT_...): Rename parameter C to O.
32409         (OBJECT_PROFITABLE_HARD_REGS): New macro.
32410         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
32411         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
32412         (struct target_ira_int): New members x_ira_max_memory_move_cost,
32413         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
32414         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
32415         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
32416         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
32417         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
32418         x_ira_reg_class_subunion.
32419         (ira_max_memory_move_cost, ira_max_register_move_cost)
32420         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
32421         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
32422         (ira_important_class_nums, ira_reg_class_superunion): New macros.
32423         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
32424         (ira_reg_class_union): Rename to ira_reg_class_subunion.
32425         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
32426         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
32427         (ira_tune_allocno_costs_and_cover_classes): Rename to
32428         ira_tune_allocno_costs.
32429         (ira_debug_hard_regs_forest): New.
32430         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
32431         (ira_object_conflict_iter_next): Fix comments.
32432         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
32433         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
32434         cover_class to aclass.
32435         (ira_allocate_and_accumulate_costs): Ditto.
32436         (ira_allocate_and_set_or_copy_costs): Ditto.
32437
32438         * opts.c (decode_options): Remove ira_cover_class check.
32439
32440         * ira-color.c: Remove mentioning cover classes from the file.  Use
32441         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
32442         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
32443         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
32444         (splay-tree.h): Remove include.
32445         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
32446         before copy_freq_compare_func.
32447         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
32448         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
32449         New definitions.
32450         (hard_regs_roots, hard_regs_node_vec): Ditto.
32451         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
32452         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
32453         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
32454         (create_new_object_hard_regs_node): Ditto.
32455         (add_new_object_hard_regs_node_to_forest): Ditto.
32456         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
32457         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
32458         Ditto.
32459         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
32460         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
32461         (remove_unused_object_hard_regs_nodes): Ditto.
32462         (enumerate_object_hard_regs_nodes): Ditto.
32463         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
32464         (object_hard_regs_subnode_t): Ditto.
32465         (struct object_hard_regs_subnode): Ditto.
32466         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
32467         (setup_object_hard_regs_subnode_index): Ditto.
32468         (get_object_hard_regs_subnodes_num): Ditto.
32469         (form_object_hard_regs_nodes_forest): Ditto.
32470         (finish_object_hard_regs_nodes_tree): Ditto.
32471         (finish_object_hard_regs_nodes_forest): Ditto.
32472         (allocnos_have_intersected_live_ranges_p): Rename to
32473         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
32474         (pseudos_have_intersected_live_ranges_p): Rename to
32475         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
32476         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
32477         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
32478         (update_copy_costs): Remove assert.  Skip cost update if the hard
32479         reg does not belong the class.
32480         (assign_hard_reg): Process only profitable hard regs.
32481         (uncolorable_allocnos_num): Make it scalar.
32482         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
32483         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
32484         and ira_reg_class_max_nregs.
32485         (bucket_allocno_compare_func): Check frequency first.
32486         (sort_bucket): Add compare function as a parameter.
32487         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
32488         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
32489         (push_allocno_to_stack): Rewrite for checking new allocno
32490         colorability.
32491         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
32492         (push_only_colorable): Pass new parameter to sort_bucket.
32493         (push_allocno_to_spill): Remove.
32494         (allocno_spill_priority_compare): Make it inline and rewrite.
32495         (splay_tree_allocate, splay_tree_free): Remove.
32496         (allocno_spill_sort_compare): New function.
32497         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
32498         build and use splay tree.  Choose first allocno in uncolorable
32499         allocno bucket to spill.  Remove setting spill cost.
32500         (all_conflicting_hard_regs): Remove.
32501         (setup_allocno_available_regs_num): Check only profitable hard
32502         regs.  Print info about hard regs nodes.
32503         (setup_allocno_left_conflicts_size): Remove.
32504         (put_allocno_into_bucket): Don't call
32505         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
32506         (improve_allocation): New.
32507         (color_allocnos): Call setup_profitable_hard_regs,
32508         form_object_hard_regs_nodes_forest, improve_allocation,
32509         finish_object_hard_regs_nodes_forest.  Setup spill cost.
32510         (print_loop_title): Use pressure classes.
32511         (color_allocnso): Ditto.
32512         (do_coloring): Remove allocation and freeing splay_tree_node_pool
32513         and allocnos_for_spilling.
32514         (ira_sort_regnos_for_alter_reg): Don't setup members
32515         {first,next}_coalesced_allocno.
32516         (color): Remove allocating and freeing removed_splay_allocno_vec.
32517         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
32518         prohibited_class_mode_regs.
32519
32520         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
32521         formatting.
32522         (update_allocno_pressure_excess_length): Use pressure classes.
32523         (inc_register_pressure, dec_register_pressure): Check for pressure
32524         class.
32525         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
32526         pressure class.  Use ira_reg_class_nregs instead of
32527         ira_reg_class_max_nregs.
32528         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
32529         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
32530         (single_reg_class): Use ira_reg_class_nregs instead of
32531         ira_reg_class_max_nregs.
32532         (process_bb_node_lives): Use pressure classes.
32533
32534         * ira-emit.c: Remove mentioning cover classes from the file.  Use
32535         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
32536         (change_loop): Use pressure classes.
32537         (modify_move_list): Call ira_set_allocno_class instead of
32538         ira_set_allocno_cover_class.
32539
32540         * ira-build.c: Remove mentioning cover classes from the file.  Use
32541         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
32542         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
32543         ALLOCNO_UPDATED_CLASS_COST instead of
32544         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
32545         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
32546         (ira_create_allocno): Remove initialization of
32547         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
32548         ALLOCNO_COLORABLE_P.
32549         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
32550         Update conflict regs for the objects.
32551         (create_cap_allocno): Remove assert.  Don't propagate
32552         ALLOCNO_AVAILABLE_REGS_NUM.
32553         (ira_free_allocno_costs): New function.
32554         (finish_allocno): Change a part of code into call of
32555         ira_free_allocno_costs.
32556         (low_pressure_loop_node_p): Use pressure classes.
32557         (object_range_compare_func): Don't compare classes.
32558         (setup_min_max_conflict_allocno_ids): Ditto.
32559
32560         * loop-invariant.c: Remove mentioning cover classes from the file.
32561         Use ira_pressure_classes and ira_pressure_classes_num instead of
32562         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
32563         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
32564         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
32565         Use reg_allocno_class instead of reg_cover_class.
32566         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
32567         STACK_REG_COVER_CLASS.
32568         (get_regno_cover_class): Rename to get_regno_pressure_class.
32569         (move_loop_invariants): Initialize and finalize regstat.
32570
32571         * ira.c: Remove mentioning cover classes from the file.  Add
32572         comments about coloring without cover classes.  Use ALLOCNO_CLASS
32573         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
32574         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
32575         setup_class_subset_and_memory_move_costs.
32576         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
32577         (setup_cover_and_important_classes): Rename to
32578         setup_allocno_and_important_classes.
32579         (setup_class_translate_array): New.
32580         (setup_class_translate): Call it for allocno and pressure classes.
32581         (cover_class_order): Rename to allocno_class_order.
32582         (comp_reg_classes_func): Use ira_allocno_class_translate instead
32583         of ira_class_translate.
32584         (reorder_important_classes): Set up ira_important_class_nums.
32585         (setup_reg_class_relations): Set up ira_reg_class_superunion.
32586         (print_class_cover): Rename to print_classes.  Add parameter.
32587         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
32588         Print pressure classes too.
32589         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
32590         setup_reg_subclasses.
32591         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
32592         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
32593         (setup_prohibited_class_mode_regs): Use
32594         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
32595         (clarify_prohibited_class_mode_regs): New function.
32596         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
32597         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
32598         (ira_init_once): Initialize them.
32599         (free_register_move_costs): Process them.
32600         (ira_init): Move calls of find_reg_classes and
32601         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
32602         Call clarify_prohibited_class_mode_regs.
32603         (ira_no_alloc_reg): Remove.
32604         (too_high_register_pressure_p): Use pressure classes.
32605
32606         * sched-deps.c: Remove mentioning cover classes from the file.
32607         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
32608         ira_pressure_classes and ira_pressure_classes_num instead of
32609         ira_reg_class_cover_size and ira_reg_class_cover.
32610         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
32611         sched_regno_pressure_class instead of sched_regno_cover_class.
32612         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
32613         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
32614
32615         * ira.h: Add 2010 to Copyright.
32616         (ira_no_alloc_reg): Remove external.
32617         (struct target_ira): Rename x_ira_hard_regno_cover_class,
32618         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
32619         x_ira_class_translate to x_ira_hard_regno_allocno_class,
32620         x_ira_allocno_classes_num, x_ira_allocno_classes, and
32621         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
32622         x_ira_pressure_classes, x_ira_pressure_class_translate, and
32623         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
32624         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
32625         x_ira_no_alloc_regs.
32626         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
32627         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
32628         ira_allocno_classes_num and ira_allocno_classes.
32629         (ira_class_translate): Rename to ira_allocno_class_translate.
32630         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
32631         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
32632         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
32633         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
32634         (ira_no_alloc_regs): New.
32635
32636         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
32637         classes from the file.  Use ALLOCNO_CLASS instead of
32638         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
32639         ALLOCNO_COVER_CLASS_COST.
32640         (regno_cover_class): Rename to regno_aclass.
32641         (record_reg_classes): Use ira_reg_class_subunion instead of
32642         ira_reg_class_union.
32643         (record_address_regs): Check overflow.
32644         (scan_one_insn): Ditto.
32645         (print_allocno_costs): Print total mem cost fore regional allocation.
32646         (print_pseudo_costs): Use REG_N_REFS.
32647         (find_costs_and_classes): Use classes intersected with them on the
32648         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
32649         ira_reg_class_union.  Use ira_allocno_class_translate and
32650         regno_aclass instead of ira_class_translate and regno_cover_class.
32651         Modify code for finding regno_aclass.  Setup preferred classes for
32652         the next pass.
32653         (setup_allocno_cover_class_and_costs): Rename to
32654         setup_allocno_class_and_costs.  Use regno_aclass instead of
32655         regno_cover_class.  Use ira_set_allocno_class instead of
32656         ira_set_allocno_cover_class.
32657         (init_costs, finish_costs): Use regno_aclass instead of
32658         regno_cover_class.
32659         (ira_costs): Use setup_allocno_class_and_costs instead of
32660         setup_allocno_cover_class_and_costs.
32661         (ira_tune_allocno_costs_and_cover_classes): Rename to
32662         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
32663         by processing objects.  Use ira_reg_class_max_nregs instead of
32664         ira_reg_class_nregs.
32665
32666         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
32667
32668         * sched-int.h: Remove mentioning cover classes from the file.
32669         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
32670
32671         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
32672         classes from the file.
32673         (struct reg_pref): Rename coverclass into allocnoclass.
32674         (reg_cover_class): Rename to reg_allocno_class.
32675
32676         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
32677
32678         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
32679
32680         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
32681
32682         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
32683
32684         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
32685
32686         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
32687
32688         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
32689
32690         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
32691
32692         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
32693
32694         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
32695
32696         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
32697         (i386_ira_cover_classes): Ditto.
32698
32699         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
32700
32701         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
32702
32703         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
32704
32705         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
32706
32707         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
32708
32709         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
32710
32711         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
32712         (mips_ira_cover_classes): Ditto.
32713
32714         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
32715
32716         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
32717
32718         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
32719
32720         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
32721
32722         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
32723
32724         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
32725         (IRA_COVER_CLASSES_VSX): Ditto.
32726
32727         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
32728         (rs6000_ira_cover_classes): Ditto.
32729
32730         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
32731
32732         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
32733
32734         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
32735
32736         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
32737
32738         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
32739
32740         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
32741
32742         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
32743
32744         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
32745
32746         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
32747
32748         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
32749
32750 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
32751
32752         PR debug/48253
32753         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
32754         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
32755         dw_fde_unlikely_section_end_label, cold_in_std_section,
32756         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
32757         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
32758         fields.
32759         (output_fde): Use dw_fde_second_{begin,end} if second is
32760         true, otherwise dw_fde_{begin,end}.
32761         (output_call_frame_info): Test dw_fde_second_begin != NULL
32762         instead of dw_fde_switched_sections.
32763         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
32764         fields, initialize new fields.  Initialize in_std_section
32765         unconditionally from the first partition.
32766         (dwarf2out_end_epilogue): Don't override dw_fde_end when
32767         dw_fde_second_begin is non-NULL.
32768         (dwarf2out_switch_text_section): Stop initializing removed
32769         dw_fde_struct fields, initialize new fields, initialize
32770         also dw_fde_end here.  Set dw_fde_switch_cfi even when
32771         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
32772         (struct var_loc_list_def): Add last_before_switch field.
32773         (arange_table, arange_table_allocated, arange_table_in_use,
32774         ARANGE_TABLE_INCREMENT, add_arange): Removed.
32775         (size_of_aranges): Count !in_std_section and !second_in_std_section
32776         hunks in fdes, instead of looking at arange_table_in_use.
32777         (output_aranges): Add aranges_length argument, don't call
32778         size_of_aranges here.  Instead of using aranges_table*
32779         emit ranges for fdes when !in_std_section resp.
32780         !second_in_std_section.
32781         (dw_loc_list): Break ranges crossing section switch.
32782         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
32783         use dw_fde_second_end instead of dw_fde_end as end of last range.
32784         (gen_subprogram_die): Don't call add_arange.  Use
32785         dw_fde_{begin,end} for first partition and if switched
32786         section dw_fde_second_{begin,end} for the second.
32787         (var_location_switch_text_section_1,
32788         var_location_switch_text_section): New functions.
32789         (dwarf2out_begin_function): Initialize cold_text_section even
32790         when function_section () isn't text_section.
32791         (prune_unused_types): Don't walk arange_table.
32792         (dwarf2out_finish): Don't needlessly test
32793         flag_reorder_blocks_and_partition when testing cold_text_section_used.
32794         If info_section_emitted, call size_of_aranges and if it indicates
32795         non-empty .debug_aranges, call output_aranges with the computed
32796         size.  Stop using removed dw_fde_struct fields, use
32797         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
32798         for second.
32799
32800         PR debug/48203
32801         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
32802         create ENTRY_VALUE if incoming or address of incoming's MEM
32803         is a hard REG.
32804         * dwarf2out.c (mem_loc_descriptor): Don't emit
32805         DW_OP_GNU_entry_value of DW_OP_fbreg.
32806         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
32807         on ENTRY_VALUE is able to find the canonical parameter VALUE.
32808         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
32809         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
32810         ENTRY_VALUE_EXPs.
32811         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
32812         is a REG_P or MEM_P with REG_P address, compute hash directly
32813         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
32814         (preserve_only_constants): Don't clear VALUES forwaring
32815         ENTRY_VALUE to some other VALUE.
32816
32817 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
32818
32819         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
32820         instead of GEN_INT.
32821
32822 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
32823
32824         * cfgexpand.c (expand_gimple_cond): Always set the source location and
32825         block before expanding the statement.
32826         (expand_gimple_stmt_1): Likewise.  Set them here...
32827         (expand_gimple_stmt): ...and not here.  Tidy.
32828         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
32829         unknown.
32830
32831 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
32832
32833         * Makefile.in: New rule for cprop.o.
32834         * gcse.c: Move constant/copy propagation to cprop.c.
32835         (compute_local_properties): Only handle expression tables.
32836         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
32837         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
32838         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
32839         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
32840         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
32841         compute_cprop_data, find_used_regs, try_replace_reg,
32842         find_avail_set, cprop_jump, constprop_register, cprop_insn,
32843         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
32844         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
32845         find_bypass_set, reg_killed_on_edge, bypass_block,
32846         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
32847         execute_rtl_cprop, pass_rtl_cprop): Move to...
32848         * cprop.c: ...here.  New file, constant/copy propagation for RTL
32849         moved from gcse.c to here with minor cleanups in duplicated code.
32850
32851 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
32852
32853         * config/i386/i386.c (flag_opts): Fix a typo in
32854         -mavx256-split-unaligned-store.
32855
32856 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
32857
32858         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
32859         LIBCALL_VALUE): Remove macros.
32860         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
32861         TARGET_FUNCTION_VALUE_REGNO_P): Define.
32862         (h8300_function_value, h8300_libcall_value,
32863         h8300_function_value_regno_p): New functions.
32864
32865 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
32866
32867         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
32868
32869 2011-03-28  Jeff Law  <law@redhat.com>
32870
32871         * tree-ssa-threadupdate.c (redirect_edges): Call
32872         create_edge_and_update_destination_phis as needed.
32873         (create_edge_and_update_destination_phis): Accept new BB argument.
32874         All callers updated.
32875         (thread_block): Do not update the profile when threading around
32876         intermediate blocks.
32877         (thread_single_edge): Likewise.
32878         (determine_bb_domination_status): If BB is not a successor of the
32879         loop header, return NONDOMINATING.
32880         (register_jump_thread): Note when we register a jump thread around
32881         an intermediate block.
32882         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
32883         (thread_across_edge): Use it.
32884
32885 2011-03-28  Tristan Gingold  <gingold@adacore.com>
32886
32887         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
32888         when for_return is 2.
32889
32890 2011-03-28  Jeff Law  <law@redhat.com>
32891
32892         * var-tracking.c (canonicalize_values_mark): Delete unused
32893         lhs assignment.
32894         (canonicalize_values_star, set_variable_part): Likewise.
32895         (clobber_variable_part, delete_variable_part): Likewise.
32896
32897 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
32898
32899         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
32900
32901 2011-03-28  Martin Jambor  <mjambor@suse.cz>
32902
32903         * tree-inline.c (expand_call_inline): Do not check that destination
32904         node is analyzed.
32905         (optimize_inline_calls): Assert that destination node is analyzed.
32906         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
32907         not call tree_lowering_passes.
32908         * cgraph.h (cgraph_analyze_function): Declare.
32909         * cgraphunit.c (cgraph_analyze_function): Make public.
32910
32911 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
32912
32913         * config/sparc/sparc-opts.h: New.
32914         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
32915         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
32916         (sparc_option_override): Store processor_type enumeration rather
32917         than string in cpu_default.  Remove name and enumeration from
32918         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
32919         without using sparc_select.  Use target_flags_explicit instead of
32920         fpu_option_set.
32921         * config/sparc/sparc.h (enum processor_type): Move to
32922         sparc-opts.h.
32923         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
32924         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
32925         HeaderInclude entry.
32926         (mcpu=, mtune=): Use Var and Enum.
32927         (sparc_processor_type): New Enum and EnumValue entries.
32928
32929 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32930             Iain Sandoe  <iains@gcc.gnu.org>
32931
32932         PR target/48245
32933         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
32934
32935 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
32936
32937         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
32938         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
32939         Insert new statements at it in lieu of STMT.
32940         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
32941         * tree-vect-stmts.c (vectorizable_store): Likewise.
32942         (vectorizable_load): Likewise.
32943
32944 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
32945
32946         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
32947         (divtf3): Ditto.
32948         (multf3): Ditto.
32949         (subtf3): Ditto.
32950
32951 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
32952
32953         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
32954         unaligned 256bit load/store.
32955         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
32956         (*avx_movdqu<avxmodesuffix>): Likewise.
32957
32958 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32959
32960         PR target/48288
32961         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
32962         * config/pa/pa.md (iordi3): Use new predicate in expander.
32963         (iorsi3): Likewise.
32964
32965 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
32966
32967         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
32968         FUNCTION_VALUE_REGNO_P): Remove macros.
32969         * config/mips/mips-protos.h (mips_function_value): Remove.
32970         * config/mips/mips.c (mips_function_value): Rename to...
32971         (mips_function_value_1): ... this. Make static.  Handle receiving
32972         the function type in 'fn_decl_or_type' argument.
32973         (mips_function_value, mips_libcall_value,
32974         mips_function_value_regno_p): New function.
32975         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
32976         TARGET_FUNCTION_VALUE_REGNO_P): Define.
32977
32978 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
32979
32980         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
32981         and -mavx256-split-unaligned-store.
32982         (ix86_option_override_internal): Split 32-byte AVX unaligned
32983         load/store by default.
32984         (ix86_avx256_split_vector_move_misalign): New.
32985         (ix86_expand_vector_move_misalign): Use it.
32986
32987         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
32988         -mavx256-split-unaligned-store.
32989
32990         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
32991         256bit load/store.  Generate unaligned store on misaligned memory
32992         operand.
32993         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
32994         256bit load/store.
32995         (*avx_movdqu<avxmodesuffix>): Likewise.
32996
32997         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
32998         -mavx256-split-unaligned-store.
32999
33000 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
33001
33002         PR target/38598
33003         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
33004         Update commentary.
33005
33006 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
33007
33008         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
33009         opno arguments with an expand_operand.  Use create_input_operand.
33010         (mips_prepare_builtin_target): Delete.
33011         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
33012         functions.
33013         (mips_expand_builtin_direct): Use create_output_operand and
33014         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
33015         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
33016         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
33017
33018 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
33019
33020         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
33021         function.
33022         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
33023
33024 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
33025
33026         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
33027         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
33028         basic blocks and call commit_edge_insertions directly.
33029         (fixup_abnormal_edges): Move from here to...
33030         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
33031         on the edges and return whether some have actually been inserted.
33032         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
33033         compensation code.
33034
33035 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
33036
33037         PR rtl-optimization/48144
33038         * sel-sched-ir.c (merge_history_vect): Factor out from ...
33039         (merge_expr_data): ... here.
33040         (av_set_intersect): Rename to av_set_code_motion_filter.
33041         Update all callers.  Call merge_history_vect when an expression
33042         is found in both sets.
33043         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
33044
33045 2011-03-26  Alan Modra  <amodra@gmail.com>
33046
33047         * config/rs6000/predicates.md (word_offset_memref_op): Handle
33048         cmodel medium addresses.
33049         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
33050         64-bit gpr loads and stores.
33051         (rs6000_secondary_reload_ppc64): New function.
33052         * config/rs6000/rs6000-protos.h: Declare it.
33053         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
33054
33055 2011-03-26  Alan Modra  <amodra@gmail.com>
33056
33057         PR target/47487
33058         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
33059         GNU Go in traceback table.
33060
33061 2011-03-25  Richard Henderson  <rth@redhat.com>
33062
33063         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
33064         if there are exactly 6 operands.
33065         (set_storage_via_setmem): Similarly.
33066
33067 2011-03-25  Kai Tietz  <ktietz@redhat.com>
33068
33069         * collect2.c (write_c_file_stat): Handle backslash
33070         as right-hand directory separator.
33071         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
33072         checking just for slash.
33073         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
33074         instead of checking for trailing slash.
33075         * gcc.c (record_temp_file): Use filename_cmp instead
33076         of strcmp.
33077         (do_spec_1): Likewise.
33078         (replace_outfile_spec_function): Likewise.
33079         (is_directory): Use filename_ncmp instead of strncmp.
33080         (print_multilib_info): Likewise.
33081         * gcov.c (find_source): Use filename_cmp instead
33082         instead of strcmp.
33083         (make_gcov_file_name): Fix order of slash/backslash
33084         checks.
33085         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
33086         (add_standard_paths): Likewise.
33087         * mips-tfile.c (saber_stop): Handle backslash.
33088         * prefix.c (update_path): Use filename_ncmp instead of
33089         strncmp.
33090         * profile.c (output_location): Use filename_cmp instead
33091         of strcmp.
33092         * read-md.c (handle_toplevel_file): Handle backslash.
33093         * tlink.c (frob_extension):  Likewise.
33094         * tree-cfg.c (same_line_p): Use filename_cmp instead of
33095         strcmp.
33096         * tree-dump.c (dequeue_and_dump): Handle backslash.
33097         * tree.c (get_file_function_name): Likewise.
33098         * gengtype.c (read_input_list): Likewise.
33099         (get_file_realbasename): Likewise.
33100         (get_output_file_with_visibility): Use filename_cmp
33101         instead of strcmp.
33102
33103 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
33104
33105         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
33106         case to VFPv1.
33107
33108 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
33109
33110         * fold-const.c (expr_location_or): New function.
33111         (fold_truth_not_expr): Call it.
33112
33113 2011-03-25  Jeff Law  <law@redhat.com>
33114
33115         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
33116         va_end.
33117         * c-family/c-common.c (def_fn_type): Likewise.
33118         * emit-rtl.c (gen_rtvec): Likewise.
33119         * lto/lto-lang.c (def_fn_type): Likewise.
33120
33121 2011-03-25  Richard Guenther  <rguenther@suse.de>
33122
33123         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
33124         also generate copies.
33125         (fini_copy_prop): Handle constant values properly.
33126
33127 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
33128
33129         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
33130         mode size instead of bitsize with DWARF2_ADDR_SIZE.
33131         (hash_loc_operands, compare_loc_operands): Handle
33132         DW_OP_GNU_entry_value.
33133
33134 2011-03-25  Kai Tietz  <ktietz@redhat.com>
33135
33136         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
33137         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
33138         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
33139         comment and use macro TARGET_64BIT_MS_ABI instead.
33140         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
33141         and change default behavior for 32-bit MS_ABI.
33142         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
33143         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
33144         32-bit, too.
33145         (ix86_cfun_abi): Likewise.
33146         (ix86_maybe_switch_abi): Adjust comment.
33147         (init_cumulative_args): Check for bit-ness in MS_ABI case.
33148         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
33149         instead of checking for SYSV_ABI.
33150         (ix86_nsaved_sseregs): Likewise.
33151         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
33152         to 16 bytes.
33153         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
33154         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
33155         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
33156         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
33157         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
33158
33159 2011-03-25  Richard Guenther  <rguenther@suse.de>
33160
33161         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
33162         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
33163         (verify_gimple): Remove.
33164         * tree-cfg.c (verify_gimple_call): Merge verification
33165         from verify_stmts.
33166         (verify_gimple_phi): Merge verification from verify_stmts.
33167         (verify_gimple_label): New function.
33168         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
33169         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
33170         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
33171         (verify_stmts): Rename to verify_gimple_in_cfg.
33172         (verify_gimple_in_cfg): New function.
33173         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
33174         * tree-ssa.c (verify_ssa): Likewise.
33175         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
33176
33177 2011-03-25  Richard Guenther  <rguenther@suse.de>
33178
33179         * passes.c (init_optimization_passes): Add FRE pass after
33180         early SRA.
33181
33182 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
33183             Andrew Stubbs  <ams@codesourcery.com>
33184
33185         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
33186         for Cortex-A8.
33187         (arm_movdi_vfp_cortexa8): New pattern.
33188         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
33189         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
33190         instructions when tuning for Cortex-A8.  Set attribute "arch".
33191         * config/arm/arm.md: Move include arm-tune.md up a bit.
33192         (define_attr "arch"): Add "onlya8" and "nota8" values.
33193         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
33194
33195 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
33196
33197         PR bootstrap/48282
33198         Revert:
33199         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
33200
33201         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
33202         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
33203         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
33204         * passes.c (init_optimization_passes): Move
33205         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
33206
33207 2011-03-25  Kai Tietz  <ktietz@redhat.com>
33208
33209         * c-typeck.c (comptypes_internal): Replace target
33210         hook call of comp_type_attributes by version in tree.c file.
33211         * gimple.c (gimple_types_compatible_p_1): Likewise.
33212         * tree-ssa.c (useless_type_conversion_p): Likewise.
33213         * tree.c (build_type_attribute_qual_variant): Likewise.
33214         (attribute_value_equal): New static helper function.
33215         (comp_type_attributes): New function.
33216         (merge_attributes): Use attribute_value_equal for comparison.
33217         (attribute_list_contained): Likewise.
33218         * tree.h (comp_type_attributes): New prototype.
33219
33220 2011-03-25  Richard Guenther  <rguenther@suse.de>
33221
33222         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
33223         of complex types at -O0.
33224         (verify_gimple_assign_binary): Likewise.
33225         (verify_gimple_assign_ternary): Likewise.
33226
33227 2011-03-24  Mark Wielaard  <mjw@redhat.com>
33228
33229         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
33230         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
33231
33232 2011-03-24  Mark Wielaard  <mjw@redhat.com>
33233
33234         PR debug/48041
33235         * dwarf2out.c (output_abbrev_section): Only write table when
33236         abbrev_die_table_in_use > 1.
33237
33238 2011-02-24  Richard Henderson  <rth@redhat.com>
33239
33240         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
33241         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
33242         (alpha_expand_unaligned_load_words): Use extql.
33243         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
33244         (emit_insxl): Handle all modes for consistency.
33245
33246 2011-02-24  Richard Henderson  <rth@redhat.com>
33247
33248         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
33249         (alpha_expand_unaligned_load): Likewise.
33250         (alpha_expand_unaligned_store): Likewise.
33251         (alpha_expand_unaligned_load_words): Likewise.
33252         (alpha_expand_unaligned_store_words): Likewise.
33253         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
33254         (alpha_split_lock_test_and_set_12): Likewise.
33255         (print_operand, alpha_fold_builtin_extxx): Likewise.
33256         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
33257         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
33258         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
33259         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
33260         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
33261         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
33262         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
33263         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
33264         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
33265         (extwl, extll, extql): Similarly.
33266         (inswh, inslh, insqh): Similarly.
33267         (mskbl, mskwl, mskll, mskql): Similarly.
33268         (mskwh, msklh, mskqh): Similarly.
33269
33270 2011-02-24  Richard Henderson  <rth@redhat.com>
33271
33272         * config/alpha/alpha.md (attribute isa): Add er, ner.
33273         (attribute enabled): Handle them.
33274         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
33275
33276 2011-02-24  Richard Henderson  <rth@redhat.com>
33277
33278         * config/alpha/alpha.md (attribute isa): Add vms.
33279         (attribute enabled): Handle it.
33280         (*movsf): Merge *movsf_{nofix,fix,nofp}.
33281         (*movdf): Merge *movdf_{nofix,fix,nofp}.
33282         (*movtf): Rename from *movtf_internal for consistency.
33283         (*movsi): Merge with *movsi_nt_vms.
33284         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
33285         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
33286         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
33287         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
33288
33289 2011-02-24  Richard Henderson  <rth@redhat.com>
33290
33291         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
33292         (extendqisi2, extendhisi2): Likewise.
33293         (extendqidi2): Simplify BWX/non-BWX expansions.
33294         (extendhidi2): Similarly.
33295
33296 2011-02-24  Richard Henderson  <rth@redhat.com>
33297
33298         * config/alpha/alpha.md (attribute isa): New.
33299         (attribute enabled): New.
33300         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
33301         (zero_extendqisi2, zero_extendqidi2): Similarly.
33302         (zero_extendhisi2, zero_extendhidi2): Similarly.
33303         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
33304
33305 2011-02-24  Richard Henderson  <rth@redhat.com>
33306
33307         * config/alpha/predicates.md (input_operand): Revert last change;
33308         update comment to mention 32-bit VMS rather than Windows.
33309
33310 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
33311
33312         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
33313         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
33314         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
33315         * passes.c (init_optimization_passes): Move
33316         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
33317
33318 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
33319
33320         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
33321
33322 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
33323
33324         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
33325         correctly.
33326
33327 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
33328
33329         PR debug/48204
33330         * simplify-rtx.c (simplify_const_unary_operation): Call
33331         real_convert when changing mode class with FLOAT_EXTEND.
33332
33333 2011-03-24  Nick Clifton  <nickc@redhat.com>
33334
33335         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
33336         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
33337         * config/rx/rx.c (rx_option_override): Set align_jumps,
33338         align_loops and align_labels if not set by the user.
33339         (rx_align_for_label): New function.
33340         (rx_max_skip_for_label): New function.
33341         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
33342         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
33343         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
33344         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
33345         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
33346
33347 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
33348
33349         PR rtl-optimization/48263
33350         * optabs.c (expand_binop_directly): Reinstate convert_modes code
33351         and original commutative_p handling.  Use maybe_gen_insn.
33352
33353 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33354
33355         * reload.c (find_reloads_subreg_address): Add address_reloaded
33356         parameter and return true there if the full address has been
33357         reloaded.
33358         (find_reloads_toplev): Pass address_reloaded flag.
33359         (find_reloads_address_1): Don't use address_reloaded parameter.
33360
33361 2011-03-24  Jeff Law  <law@redhat.com>
33362
33363         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
33364         unused variable "ann".
33365         (remove_unused_locals): Likewise.
33366
33367         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
33368         statement.
33369
33370         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
33371         after it is freed.
33372
33373 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33374
33375         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
33376         for invalid symbolic addresses.
33377         (s390_secondary_reload): Don't use s390_check_symref_alignment for
33378         larl operands.
33379
33380 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
33381
33382         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
33383         the argument in calls to fold_truth_not_expr.
33384
33385 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
33386
33387         * tree.c (record_node_allocation_statistics): New function.
33388         (make_node_stat, copy_node_stat, build_string): Call it.
33389         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
33390         (build1_stat, build_omp_clause): Likewise.
33391
33392 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
33393
33394         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
33395         last commit.
33396
33397 2011-03-24  Richard Guenther  <rguenther@suse.de>
33398
33399         PR tree-optimization/48271
33400         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
33401         blocks that still exist.
33402
33403 2011-03-24  Richard Guenther  <rguenther@suse.de>
33404
33405         PR tree-optimization/48270
33406         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
33407         not free datarefs before ddrs.
33408
33409 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
33410
33411         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
33412         from the address built for a reference with variable offset.
33413
33414 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
33415
33416         PR target/48237
33417         * config/i386/i386.md (*movdf_internal_rex64): Do not split
33418         alternatives that can be handled with movq or movabsq insn.
33419         (*movdf_internal): Disable for !TARGET_64BIT.
33420         (*movdf_internal_nointeger): Ditto.
33421         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
33422
33423 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
33424
33425         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
33426         (FUNCTION_ARG_ADVANCE): Likewise.
33427         * tm.texi.in: Change references to them to hook references.
33428         * tm.texi: Regenerate.
33429         * targhooks.c (default_function_arg): Eliminate check for target macro.
33430         (default_function_incoming_arg): Likewise.
33431         (default_function_arg_advance): Likewise.
33432         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
33433         (function_arg_advance): Likewise.
33434         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
33435
33436 2011-03-24  Richard Guenther  <rguenther@suse.de>
33437
33438         PR middle-end/48269
33439         * tree-object-size.c (addr_object_size): Do not double-account
33440         for MEM_REF offsets.
33441
33442 2011-03-24  Diego Novillo  <dnovillo@google.com>
33443
33444         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
33445         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
33446         (lto_input_data_block): Move from lto-opts.c.  Make extern.
33447         Update all users.
33448         (lto_input_string): Rename from input_string.  Make extern.
33449         Update all users.
33450         * lto-streamer-out.c (lto_output_string_with_length): Rename from
33451         output_string_with_length.
33452         Output 0 to indicate a non-NULL string.  Update all callers to
33453         not emit 0.
33454         (lto_output_string): Rename from output_string.  Make extern.
33455         Update all users.
33456         (lto_output_decl_state_streams): Make extern.
33457         (lto_output_decl_state_refs): Make extern.
33458         * lto-streamer.h (lto_input_string): Declare.
33459         (lto_input_data_block): Declare.
33460         (lto_output_string): Declare.
33461         (lto_output_string_with_length): Declare.
33462         (lto_output_decl_state_streams): Declare.
33463         (lto_output_decl_state_refs): Declare.
33464
33465 2011-03-24  Richard Guenther  <rguenther@suse.de>
33466
33467         PR tree-optimization/46562
33468         * tree.c (build_invariant_address): New function.
33469         * tree.h (build_invariant_address): Declare.
33470         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
33471         a renamed function moved ...
33472         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
33473         Take valueization callback parameter.
33474         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
33475         * gimple-fold.h: New file.
33476         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
33477         (ccp_fold, fold_const_aggregate_ref,
33478         fold_ctor_reference, fold_nonarray_ctor_reference,
33479         fold_array_ctor_reference, fold_string_cst_ctor_reference,
33480         get_base_constructor): Move ...
33481         * gimple-fold.c: ... here.
33482         (gimple_fold_stmt_to_constant_1): New function
33483         split out from ccp_fold.  Take a valueization callback parameter.
33484         Valueize all operands.
33485         (gimple_fold_stmt_to_constant): New wrapper function.
33486         (fold_const_aggregate_ref_1): New function split out from
33487         fold_const_aggregate_ref.  Take a valueization callback parameter.
33488         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
33489         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
33490         invariant POINTER_PLUS_EXPRs to invariant form.
33491         (vn_valueize): New function.
33492         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
33493         * tree-vrp.c (vrp_valueize): New function.
33494         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
33495         to fold statements to constants.
33496         * tree-ssa-pre.c (eliminate): Properly guard propagation of
33497         function declarations.
33498         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
33499         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
33500
33501 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
33502
33503         * config/h8300/predicates.md (jump_address_operand): Fix register
33504         mode check.
33505
33506 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
33507
33508         * doc/invoke.texi (max-stores-to-sink): Document.
33509         * params.h (MAX_STORES_TO_SINK): Define.
33510         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
33511         if either vectorization or if-conversion is disabled.
33512         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
33513         tree-vect-data-refs.c vect_equal_offsets.
33514         (dr_equal_offsets_p): New function.
33515         (find_data_references_in_bb): Remove static.
33516         * tree-data-ref.h (find_data_references_in_bb): Declare.
33517         (dr_equal_offsets_p): Likewise.
33518         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
33519         (vect_drs_dependent_in_basic_block): Update calls to
33520         vect_equal_offsets.
33521         (vect_check_interleaving): Likewise.
33522         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
33523         (cond_if_else_store_replacement): Rename to...
33524         (cond_if_else_store_replacement_1): ... this.  Change arguments and
33525         documentation.
33526         (cond_if_else_store_replacement): New function.
33527         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
33528         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
33529
33530 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
33531
33532         PR target/46934
33533         * config/arm/arm.md (casesi): Use the gen_int_mode() function
33534         to subtract lower bound instead of GEN_INT().
33535
33536 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
33537
33538         PR other/48179
33539         PR other/48221
33540         PR other/48234
33541         * doc/extend.texi (Alignment): Move section to match order in TOC.
33542         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
33543         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
33544
33545 2011-03-23  Jeff Law  <law@redhat.com>
33546
33547         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
33548         before removing the edge.
33549
33550         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
33551         it may have been freed by redirect_branch_edge or
33552         redirect_edge_succ_nodup.
33553
33554 2011-03-23  Richard Guenther  <rguenther@suse.de>
33555
33556         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
33557         (check_va_list_escapes): Likewise.
33558         (check_all_va_list_escapes): Likewise.
33559
33560 2011-03-23  Richard Guenther  <rguenther@suse.de>
33561
33562         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
33563         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
33564         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
33565         (alias.o): Likewise.
33566         (ipa-type-escape.o): Remove.
33567         (ipa-struct-reorg.o): Likewise.
33568         (GTFILES): Remove ipa-struct-reorg.c.
33569         * alias.c: Do not include ipa-type-escape.h.
33570         * tree-ssa-alias.c: Likewise.
33571         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
33572         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
33573         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
33574         and ipa-type-escape passes.
33575         * tree-pass.h (pass_ipa_type_escape): Remove.
33576         (pass_ipa_struct_reorg): Likewise.
33577         * ipa-struct-reorg.h: Remove.
33578         * ipa-struct-reorg.c: Likewise.
33579         * ipa-type-escape.h: Likewise.
33580         * ipa-type-escape.c: Likewise.
33581         * doc/invoke.texi (-fipa-struct-reorg): Remove.
33582         (--param struct-reorg-cold-struct-ratio): Likewise.
33583         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
33584         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
33585         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
33586
33587 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33588
33589         * config/s390/2084.md: Enable all insn reservations also for z9_ec
33590         cpu attribute value.
33591         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
33592         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
33593         * config/s390/s390.c (processor_flags_table): New constant array.
33594         (s390_handle_arch_option): Remove.
33595         (s390_handle_option): Remove s390_handle_arch_option invocations
33596         and OPT_mwarn_framesize_ handling.
33597         (s390_option_override): Remove s390_handle_arch_option invocation.
33598         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
33599         warnings.
33600         * config/s390/s390.md (cpu attribute): Add z9_ec value.
33601         * config/s390/s390.opt (s390_tune, s390_arch)
33602         (march=): Replace s390_arch_option enum and values with
33603         processor_type.  Set variable name to s390_arch.  Set
33604         initialization value.
33605         (mtune=): Replace s390_arch_option with processor_type.  Set
33606         variable name to s390_tune.  Set initialization value.
33607
33608 2011-03-23  Julian Brown  <julian@codesourcery.com>
33609
33610         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
33611         accesses which are not naturally aligned.
33612
33613 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
33614
33615         PR target/47553
33616         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
33617
33618 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
33619
33620         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
33621         parameter from "int" to "enum insn_code".
33622         (expand_operand_type): New enum.
33623         (expand_operand): New structure.
33624         (create_expand_operand): New function.
33625         (create_fixed_operand, create_output_operand): Likewise
33626         (create_input_operand, create_convert_operand_to): Likewise.
33627         (create_convert_operand_from, create_address_operand): Likewise.
33628         (create_integer_operand): Likewise.
33629         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
33630         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
33631         (expand_insn, expand_jump_insn): Likewise.
33632         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
33633         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
33634         (expand_movstr, expand_builtin___clear_cache): Likewise.
33635         (expand_builtin_lock_release): Likewise.
33636         * explow.c (allocate_dynamic_stack_space): Likewise.
33637         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
33638         and use the default handling in that case.
33639         * expmed.c (check_predicate_volatile_ok): Delete.
33640         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
33641         (emit_cstore): Likewise.
33642         * expr.c (emit_block_move_via_movmem): Likewise.
33643         (set_storage_via_setmem, expand_assignment): Likewise.
33644         (emit_storent_insn, try_casesi): Likewise.
33645         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
33646         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
33647         (expand_vec_shift_expr, expand_binop_directly): Likewise.
33648         (expand_twoval_unop, expand_twoval_binop): Likewise.
33649         (expand_unop_direct, emit_indirect_jump): Likewise.
33650         (emit_conditional_move, vector_compare_rtx): Likewise.
33651         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
33652         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
33653         (expand_sync_lock_test_and_set): Likewise.
33654         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
33655         (emit_unop_insn): Likewise.
33656         (expand_copysign_absneg): Change icode to an insn_code.
33657         (create_convert_operand_from_type): New function.
33658         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
33659         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
33660         (expand_insn, expand_jump_insn): Likewise.
33661         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
33662         than const_int_operand for operand 2.
33663
33664 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33665
33666         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
33667         if possible.
33668
33669 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
33670
33671         * emit-rtl.c (emit_pattern_before_noloc): New function.
33672         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
33673         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
33674         (emit_pattern_after_noloc): New function.
33675         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
33676         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
33677
33678 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
33679
33680         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
33681         (__ffsDI2): Likewise.
33682
33683 2011-03-22  Richard Henderson  <rth@redhat.com>
33684
33685         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
33686         of !TARGET_ABI_OPEN_VMS.
33687         (alpha_trampoline_init, alpha_start_function): Likewise.
33688         (alpha_expand_epilogue, alpha_file_start): Likewise.
33689         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
33690         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
33691         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
33692         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
33693         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
33694
33695 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33696
33697         * config/s390/s390-opts.h: New.
33698         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
33699         s390_arch_flags, s390_warn_framesize, s390_stack_size,
33700         s390_stack_guard): Remove.
33701         (s390_handle_arch_option): Return void.  Take enum
33702         s390_arch_option value instead of string and searching array.
33703         (s390_handle_option): Don't assert that global structures are in
33704         use.  Access variables via opts pointer.  Use error_at.  Don't use
33705         sscanf for -mstack-guard= or -mstack-size=.  Update call to
33706         s390_handle_arch_option.
33707         (s390_option_override): Update call to s390_handle_arch_option.
33708         (s390_emit_prologue): Use %d format for s390_stack_size in
33709         diagnostic.  Use %wd for HOST_WIDE_INT.
33710         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
33711         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
33712         * config/s390/s390.opt (config/s390/s390-opts.h): New
33713         HeaderInclude entry.
33714         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
33715         s390_arch_flags, s390_warn_framesize): New Variable entries.
33716         (s390_arch_option): New Enum and EnumValue entries.
33717         (march=): Use Enum instead of Var.
33718         (mstack-guard=, mstack-size=): Use UInteger and Var.
33719         (mtune=): Use Enum.
33720
33721 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33722
33723         * config/score/score.c (score_handle_option): Don't assert that
33724         global structures are in use.  Access target_flags via opts
33725         pointer.  Use value of -march= option to determine target_flags
33726         settings.
33727         * config/score/score.opt (march=): Use Enum.
33728         (score_arch): New Enum and EnumValue entries.
33729
33730 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33731
33732         * config/mep/mep.c (option_mtiny_specified): Remove.
33733         (mep_option_override): Move register handling for -mivc2 from
33734         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
33735         instead of option_mtiny_specified.
33736         (mep_handle_option): Access target_flags via opts pointer.  Don't
33737         assert that global structures are in use.  Defer part of -mivc2
33738         handling and move it to mep_option_override.
33739         * config/mep/mep.opt (IVC2): New Mask entry.
33740         (mivc2): Use Var and Defer instead of Mask.
33741
33742 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33743
33744         * config/v850/v850-opts.h: New.
33745         * config/v850/v850.c (small_memory): Replace with
33746         small_memory_physical_max array.  Make that array static const.
33747         (v850_handle_memory_option): Take integer value of argument.  Take
33748         gcc_options pointer, option text and location.  Return void.
33749         Update for changes to small memory structures.
33750         (v850_handle_option): Access target_flags via opts pointer.  Don't
33751         assert that global structures are in use.  Update calls to
33752         v850_handle_memory_option.
33753         (v850_encode_data_area): Update references to small memory settings.
33754         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
33755         (enum small_memory_type): Move to v850-opts.h.
33756         * config/v850/v850.opt (config/v850/v850-opts.h): New
33757         HeaderInclude entry.
33758         (small_memory_max): New Variable entry.
33759         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
33760         (mtda, mzda): Likewise.
33761
33762 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33763
33764         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
33765         pointer.  Don't assert that global structures are in use.
33766
33767 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33768
33769         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
33770         via opts pointer.  Don't assert that global structures are in use.
33771
33772 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33773
33774         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
33775         (munix=93): Use Var.
33776         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
33777         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
33778         * config/pa/pa-opts.h: New.
33779         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
33780         (pa_handle_option): Don't assert that global structures are in
33781         use.  Access target_flags via opts pointer.  Don't handle
33782         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
33783         OPT_munix_98 here.
33784         (pa_option_override): Handle deferred OPT_mfixed_range_.
33785
33786 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33787
33788         * config/mn10300/mn10300-opts.h: New.
33789         * config/mn10300/mn10300.c (mn10300_processor,
33790         mn10300_tune_string): Remove.
33791         (mn10300_handle_option): Don't assert that global structures are
33792         in use.  Access mn10300_processor via opts pointer.  Don't handle
33793         OPT_mtune_ here.
33794         * config/mn10300/mn10300.h (enum processor_type): Move to
33795         mn10300-opts.h.
33796         (mn10300_processor): Remove.
33797         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
33798         HeaderInclude entry.
33799         (mn10300_processor): New Variable entry.
33800         (mtune=): Use Var.
33801
33802 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33803
33804         * config/microblaze/microblaze.c: Don't include opts.h.
33805         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
33806         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
33807         (mno-clearbss): Use Var and Warn.
33808
33809 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33810
33811         * config/m32r/m32r-opts.h: New.
33812         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
33813         (m32r_handle_option): Don't assert that global structures are in
33814         use.  Access target_flags and m32r_cache_flush_func via opts
33815         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
33816         OPT_mno_flush_trap here.
33817         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
33818         include of m32r-opts.h.
33819         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
33820         HeaderInclude entry.
33821         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
33822         (mmodel=): Use Enum and Var.
33823         (m32r_model): New Enum and EnumValue entries.
33824         (mno-flush-trap): Use Var.
33825         (msdata=): Use Enum and Var.
33826         (m32r_sdata): New Enum and EnumValue entries.
33827
33828 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33829
33830         * config/m32c/m32c.c: Don't include opts.h.
33831         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
33832         m32c_handle_option): Remove.
33833         (m32c_option_override): Check global_options_set.x_target_memregs
33834         instead of target_memregs_set.
33835         * config/m32c/m32c.h (target_memregs): Remove.
33836         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
33837         variable.
33838
33839 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33840
33841         * config/iq2000/iq2000-opts.h: New.
33842         * config/iq2000/iq2000.c: Don't include opts.h.
33843         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
33844         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
33845         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
33846         HeaderInclude entry.
33847         (iq2000_tune): New Variable entry.
33848         (march=): Add comment.  Use Enum.
33849         (iq2000_arch): New Enum and EnumValue entries.
33850         (mcpu=): Use Enum and Var.
33851         (iq2000_tune): New Enum and EnumValue entries.
33852
33853 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33854
33855         * config/ia64/ia64-opts.h: New.
33856         * config/ia64/ia64.c (ia64_tune): Remove.
33857         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
33858         here.  Use error_at.
33859         (ia64_option_override): Handle deferred OPT_mfixed_range_.
33860         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
33861         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
33862         HeaderInclude entry.
33863         (ia64_tune): New Variable entry.
33864         (mfixed-range=): Use Defer and Var.
33865         (mtune=): Use Enum and Var.
33866         (ia64_tune): New Enum and EnumValue entries.
33867
33868 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33869
33870         * config/frv/frv-opts.h: New.
33871         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
33872         frv-opts.h.
33873         (frv_cpu_type): Remove.
33874         * config/frv/frv.c: Don't include opts.h.
33875         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
33876         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
33877         (frv_cpu_type): New Variable entry.
33878         (frv_cpu): New Enum and EnumValue entries.
33879
33880 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33881
33882         * config/cris/cris.c (cris_handle_option): Access target_flags via
33883         opts pointer.  Don't assert that global structures are in use.
33884         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
33885         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
33886
33887 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33888
33889         * config/bfin/bfin-opts.h: New.
33890         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
33891         bfin_si_revision, bfin_workarounds): Remove.
33892         (bfin_cpus): Make static const.
33893         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
33894         not bfin_lib_id_given.
33895         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
33896         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
33897         pointer. Use error_at.  Don't assert that global structures are in use.
33898         * config/bfin/bfin.h: Include bfin-opts.h.
33899         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
33900         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
33901         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
33902         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
33903         entries.
33904
33905 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33906
33907         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
33908         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
33909         or -msoft-float here.
33910         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
33911         -msoft-float and -mhard-float.
33912         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
33913         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
33914         msoft-float.
33915         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
33916         -msoft-float.
33917         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
33918         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
33919         not mhard-float.
33920         (LIBGCC_SPEC): Don't handle -msoft-float.
33921         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
33922         -mhard-float.
33923         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
33924         msoft-float.
33925         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
33926         -mfloat-abi=*, not -msoft-float and -mhard-float.
33927         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
33928         -msoft-float.
33929         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
33930         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
33931         mhard-float and msoft-float.
33932         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
33933         mfloat-abi=soft in comments, not mhard-float and msoft-float.
33934         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
33935         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
33936         mhard-float.
33937         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
33938         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
33939         msoft-float.
33940         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
33941         not mhard-float.
33942         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
33943         not msoft-float.
33944
33945 2011-03-22  Richard Henderson  <rth@redhat.com>
33946
33947         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
33948         TARGET_ABI_WINDOWS_NT.
33949         (alpha_output_function_end_prologue): Likewise.
33950         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
33951         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
33952         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
33953         (trap, *movsi_nt_vms): Likewise.
33954         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
33955         (*tablejump_osf_nt_internal): Remove.
33956         * config/alpha/predicates.md (input_operand): Only test Pmode.
33957
33958 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33959
33960         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
33961         via opts pointer.  Use error_at.  Don't assert that global
33962         structures are in use.
33963
33964 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
33965
33966         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
33967         (ix86_handle_option): Access ix86_isa_flags and
33968         ix86_isa_flags_explicit via opts pointer.  Don't assert that
33969         global structures are in use.
33970         (ix86_function_specific_save, ix86_function_specific_restore):
33971         Update ix86_isa_flags_explicit field name.
33972         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
33973         (ix86_isa_flags_explicit): Rename TargetSave entry to
33974         x_ix86_isa_flags_explicit.
33975
33976 2011-03-22  Richard Henderson  <rth@redhat.com>
33977
33978         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
33979         (alpha_option_override, direct_return): Likewise.
33980         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
33981         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
33982         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
33983         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
33984         (alpha_expand_epilogue, alpha_end_function): Likewise.
33985         (alpha_init_libfuncs): Likewise.
33986         (struct machine_function): Remove unicosmk members.
33987         (print_operand) ['t']: Remove.
33988         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
33989         unicosmk_output_module_name, unicosmk_output_common,
33990         current_section_align, unicosmk_output_text_section_asm_op,
33991         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
33992         unicosmk_section_type_flags, unicosmk_unique_section,
33993         unicosmk_asm_named_section, unicosmk_insert_attributes,
33994         unicosmk_output_align, unicosmk_defer_case_vector,
33995         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
33996         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
33997         unicosmk_output_ssib, unicosmk_add_call_info_word,
33998         unicosmk_extern_head, unicosmk_output_default_externs,
33999         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
34000         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
34001         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
34002         * config/alpha/alpha-protos.h: Update.
34003         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
34004         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
34005         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
34006         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
34007         (*mulsi_se, mulvsi3): Likewise.
34008         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
34009         (*divmodsi_internal, call, call_value, realign): Likewise.
34010         (moddi3, umoddi3): Likewise; remove duplicate expander.
34011         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
34012         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
34013         (*movdi_nofix): Remove r/U alternative.
34014         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
34015         * config/alpha/constraints.md ("U"): Remove.
34016         * config/alpha/predicates.md (call_operand"): Don't test
34017         TARGET_ABI_UNICOSMK.
34018
34019 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
34020
34021         * target.def (handle_option): Take gcc_options and
34022         cl_decoded_option pointers and location_t.
34023         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
34024         * doc/tm.texi: Regenerate.
34025         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
34026         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
34027         * lto-opts.c (lto_reissue_options): Generate option structure for
34028         targetm.handle_option call.
34029         * opts.c (target_handle_option): Update call to
34030         targetm.handle_option.  Remove assertions about values now passed
34031         down to hook.
34032         * targhooks.c (default_target_handle_option): New.
34033         * targhooks.h (default_target_handle_option): Declare.
34034         * config/alpha/alpha.c: Include opts.h.
34035         (alpha_handle_option): Update to new hook interface.
34036         * config/arm/arm.c: Include opts.h.
34037         (arm_handle_option): Update to new hook interface.
34038         * config/arm/t-arm (arm.o): Update dependencies.
34039         * config/bfin/bfin.c: Include opts.h.
34040         (bfin_handle_option): Update to new hook interface.
34041         * config/cris/cris.c: Include opts.h.
34042         (cris_handle_option): Update to new hook interface.
34043         * config/frv/frv.c: Include opts.h.
34044         (frv_handle_option): Update to new hook interface.
34045         * config/i386/i386.c: Include opts.h.
34046         (ix86_handle_option): Update to new hook interface.
34047         (ix86_valid_target_attribute_inner_p): Generate option structure
34048         for call to ix86_handle_option.
34049         * config/i386/t-i386 (i386.o): Update dependencies.
34050         * config/ia64/ia64.c: Include opts.h.
34051         (ia64_handle_option): Update to new hook interface.
34052         * config/ia64/t-ia64 (ia64.o): Update dependencies.
34053         * config/iq2000/iq2000.c: Include opts.h.
34054         (iq2000_handle_option): Update to new hook interface.
34055         * config/m32c/m32c.c: Include opts.h.
34056         (m32c_handle_option): Update to new hook interface.
34057         * config/m32r/m32r.c: Include opts.h.
34058         (m32r_handle_option): Update to new hook interface.
34059         * config/m68k/m68k.c: Include opts.h.
34060         (m68k_handle_option): Update to new hook interface.
34061         * config/mep/mep.c: Include opts.h.
34062         (mep_handle_option): Update to new hook interface.
34063         * config/microblaze/microblaze.c: Include opts.h.
34064         (microblaze_handle_option): Update to new hook interface.
34065         * config/mips/mips.c: Include opts.h.
34066         (mips_handle_option): Update to new hook interface.
34067         * config/mn10300/mn10300.c: Include opts.h.
34068         (mn10300_handle_option): Update to new hook interface.
34069         * config/pa/pa.c: Include opts.h.
34070         (pa_handle_option): Update to new hook interface.
34071         * config/pdp11/pdp11.c: Include opts.h.
34072         (pdp11_handle_option): Update to new hook interface.
34073         * config/rs6000/rs6000.c: Include opts.h.
34074         (rs6000_handle_option): Update to new hook interface.
34075         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
34076         * config/rx/rx.c: Include opts.h.
34077         (rx_handle_option): Update to new hook interface.
34078         * config/s390/s390.c: Include opts.h.
34079         (s390_handle_option): Update to new hook interface.
34080         * config/score/score.c: Include opts.h.
34081         (score_handle_option): Update to new hook interface.
34082         * config/sh/sh.c: Include opts.h.
34083         (sh_handle_option): Update to new hook interface.
34084         * config/sparc/sparc.c: Include opts.h.
34085         (sparc_handle_option): Update to new hook interface.
34086         * config/v850/v850.c: Include opts.h.
34087         (v850_handle_option): Update to new hook interface.
34088
34089 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
34090
34091         * gcc.c (driver_unknown_option_callback): Only permit and save
34092         unknown -Wno- options.
34093         (driver_wrong_lang_callback): Save options directly instead of via
34094         driver_unknown_option_callback.
34095
34096 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
34097
34098         * combine.c (simplify_set): Try harder to find the best CC mode when
34099         simplifying a nested COMPARE on the RHS.
34100
34101 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
34102
34103         * config/alpha/gnu.h: Remove.
34104         * config/arc: Remove directory.
34105         * config/arm/netbsd.h: Remove.
34106         * config/arm/t-pe: Remove.
34107         * config/crx: Remove directory.
34108         * config/i386/netbsd.h: Remove.
34109         * config/m68hc11: Remove directory.
34110         * config/m68k/uclinux-oldabi.h: Remove.
34111         * config/mcore/mcore-pe.h: Remove.
34112         * config/mcore/t-mcore-pe: Remove.
34113         * config/netbsd-aout.h: Remove.
34114         * config/rs6000/gnu.h: Remove.
34115         * config/sh/sh-symbian.h: Remove.
34116         * config/sh/symbian-base.c: Remove.
34117         * config/sh/symbian-c.c: Remove.
34118         * config/sh/symbian-cxx.c: Remove.
34119         * config/sh/symbian-post.h: Remove.
34120         * config/sh/symbian-pre.h: Remove.
34121         * config/sh/t-symbian: Remove.
34122         * config/svr3.h: Remove.
34123         * config/vax/netbsd.h: Remove.
34124         * config.build: Don't handle i[34567]86-*-pe.
34125         * config.gcc: Remove handling of deprecations for most deprecated
34126         targets.
34127         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
34128         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
34129         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
34130         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
34131         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
34132         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
34133         Remove cases.
34134         * config.host: Don't handle i[34567]86-*-pe.
34135         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
34136         (ASM_SPEC32): Don't handle -mcall-gnu.
34137         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
34138         -mcall-gnu.
34139         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
34140         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
34141         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
34142         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
34143         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
34144         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
34145         conditional on SYMBIAN.
34146         * configure.ac: Don't handle powerpc*-*-gnu*.
34147         * configure: Regenerate.
34148         * doc/extend.texi (interrupt attribute): Don't mention CRX.
34149         * doc/install-old.texi (m6811, m6812): Don't mention.
34150         * doc/install.texi (arc-*-elf*): Don't document multilib option.
34151         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
34152         (m68k-uclinuxoldabi): Don't mention.
34153         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
34154         Remove.
34155         (-mcall-gnu): Remove.
34156         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
34157         families): Remove constraint documentation.
34158
34159 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
34160
34161         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
34162         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
34163         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
34164
34165 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
34166
34167         PR target/48226
34168         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
34169         vector when peeking at the next token for vector, don't expand the
34170         keywords.
34171
34172 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
34173
34174         * config/avr/avr-protos.h (expand_epilogue): Change prototype
34175         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
34176         * config/avr/avr.c (init_cumulative_args)
34177         (avr_function_arg_advance): Use it.
34178         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
34179         sibcall epilogues.
34180         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
34181         (avr_function_ok_for_sibcall): ...this new function.
34182         (avr_lookup_function_attribute1): New static Function.
34183         (avr_naked_function_p, interrupt_function_p)
34184         (signal_function_p, avr_OS_task_function_p)
34185         (avr_OS_main_function_p): Use it.
34186         * config/avr/avr.md ("sibcall", "sibcall_value")
34187         ("sibcall_epilogue"): New expander.
34188         ("*call_insn", "*call_value_insn"): New insn.
34189         ("call_insn", "call_value_insn"): Remove
34190         ("call", "call_value", "epilogue"): Change expander to handle
34191         sibling calls.
34192
34193 2011-03-21  Nick Clifton  <nickc@redhat.com>
34194
34195         * doc/invoke.texi (Overall Options): Move closing brace to end of
34196         options list.
34197         (Optimization Options): Add missing @gol.
34198         (Directory Options): Likewise.
34199         (i386 and x86-64 Options): Likewise.
34200         (RS6000 and PowerPC Options): Likewise.
34201         (i386 and x86-64 Windows Options): Likewise.
34202         (V850 Options): Add text missing from descriptions.
34203
34204 2011-03-22  Richard Henderson  <rth@redhat.com>
34205
34206         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
34207         (avr_incoming_return_addr_rtx): New.
34208         (emit_push_byte): New.
34209         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
34210         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
34211         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
34212         (emit_pop_byte): New.
34213         (expand_epilogue): Use it.  Pop frame pointer by bytes.
34214         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
34215         (INCOMING_RETURN_ADDR_RTX): New.
34216         (INCOMING_FRAME_SP_OFFSET): New.
34217         (ARG_POINTER_CFA_OFFSET): New.
34218         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
34219         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
34220         (pophi): Remove.
34221
34222         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
34223
34224 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
34225
34226         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
34227         (FUNCTION_ARG_ADVANCE): Likewise.
34228         * tm.texi.in: Change references to them to hook references.
34229         * tm.texi: Regenerate.
34230         * targhooks.c (default_function_arg): Eliminate check for target
34231         macro.
34232         (default_function_incoming_arg): Likewise.
34233         (default_function_arg_advance): Likewise.
34234         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
34235         (function_arg_advance): Likewise.
34236         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
34237
34238 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
34239
34240         * tree.c (build_call_1): New function.
34241         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
34242
34243 2011-03-22  Richard Guenther  <rguenther@suse.de>
34244
34245         PR tree-optimization/48228
34246         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
34247         for single-arg PHIs.
34248
34249 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
34250
34251         PR rtl-optimization/48143
34252         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
34253         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
34254         sse2_cvtps2pd): Likewise.
34255
34256 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34257
34258         * recog.c (canonicalize_change_group): Use validate_unshare_change.
34259
34260 2011-03-22  Richard Guenther  <rguenther@suse.de>
34261
34262         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
34263         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
34264         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
34265         and REALIGN_LOAD_EXPR.
34266         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
34267         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
34268         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
34269         DOT_PROD_EXPR case ...
34270         (expand_expr_real_2): ... here.
34271         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
34272         and REALIGN_LOAD_EXPR.
34273         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
34274         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
34275         (vect_create_epilog_for_reduction): Likewise.
34276         (vectorizable_reduction): Likewise.
34277         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
34278         * tree-vect-stmts.c (vectorizable_load): Likewise.
34279
34280 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
34281
34282         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
34283
34284 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34285
34286         * config/s390/s390.c (s390_delegitimize_address): Fix offset
34287         handling for PLTOFF/GOTOFF.
34288
34289 2011-03-22  Nick Clifton  <nickc@redhat.com>
34290
34291         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
34292         trailing backslash from the end of the macro definition.
34293
34294 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34295
34296         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
34297         and PLT unspecs.
34298
34299 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
34300
34301         * expr.h (prepare_operand): Move to...
34302         * optabs.h (prepare_operand): ...here and change the insn code
34303         parameter from "int" to "enum insn_code".
34304         (insn_operand_matches): Declare.
34305         * expr.c (init_expr_target): Use insn_operand_matches.
34306         (compress_float_constant): Likewise.
34307         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
34308         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
34309         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
34310         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
34311         Likewise.
34312         (gen_cond_trap): Likewise.
34313         (prepare_operand): Likewise.  Change icode to an insn_code.
34314         (insn_operand_matches): New function.
34315         * reload.c (find_reloads_address_1): Use insn_operand_matches.
34316         * reload1.c (gen_reload): Likewise.
34317         * targhooks.c (default_secondary_reload): Likewise.
34318
34319 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
34320
34321         * config/alpha/alpha.md (unspec): New define_c_enum.
34322         (unspecv): Ditto.
34323
34324 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
34325
34326         PR debug/48214
34327         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
34328         between a call and its CALL_ARG_LOCATION note.
34329
34330 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
34331
34332         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
34333
34334 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
34335
34336         PR c/42544
34337         PR c/48197
34338         * c-common.c (shorten_compare): If primopN is first sign-extended
34339         to opN and then zero-extended to result type, set primopN to opN.
34340
34341 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
34342
34343         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
34344         for barrier handlers.
34345
34346 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
34347
34348         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
34349         UNSPEC constants to be in the unspec enumeration, and redefine
34350         all UNSPECV constants to be in the unspecv enumeration, so that
34351         dumps print which unspec/unspec_volatile this is.
34352         * config/rs6000/vector.md (UNSPEC_*): Ditto.
34353         * config/rs6000/paired.md (UNSPEC_*): Ditto.
34354         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
34355         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
34356         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
34357
34358         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
34359         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
34360         UNSPECV_LWSYNC, since these are used as unspec_volatile.
34361         * config/rs6000/sync.md (isync, lwsync): Ditto.
34362
34363 2011-03-21  Richard Guenther  <rguenther@suse.de>
34364
34365         * params.def (lto-min-partition): Fix typo.
34366
34367 2011-03-21  Richard Guenther  <rguenther@suse.de>
34368
34369         PR c/47939
34370         * c-decl.c (grokdeclarator): Drop to the main variant only
34371         for array types.  Drop flag_gen_aux_info check.
34372
34373 2011-03-21  Richard Guenther  <rguenther@suse.de>
34374
34375         PR translation/47911
34376         * params.def (lto-partitions): Fix typo.
34377         (lto-min-partition): Fix wording.
34378
34379 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
34380
34381         * config/rs6000/t-freebsd: Remove duplication from file.
34382
34383 2011-03-21  Richard Guenther  <rguenther@suse.de>
34384
34385         PR middle-end/47661
34386         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
34387
34388 2011-03-21  Richard Guenther  <rguenther@suse.de>
34389
34390         PR lto/48210
34391         * params.def (lto-partitions): Require at least 1 partition.
34392
34393 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34394
34395         * gthr-solaris.h: Remove.
34396         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
34397         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
34398         (LIB_SPEC): Likewise.
34399         * config/sol2.opt (threads): Remove.
34400         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
34401         (sparc*-*-solaris2*): Likewise.
34402         * configure.ac (enable_threads): Enable solaris support.
34403         * configure: Regenerate.
34404         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
34405         * doc/install.texi (Configuration, --enable-threads=lib): Remove
34406         solaris.
34407
34408 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34409
34410         * config.gcc: Obsolete *-*-solaris2.8*.
34411         * doc/install.texi (Specific, *-*-solaris2*): Document it.
34412
34413 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34414
34415         PR bootstrap/48135
34416         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
34417         reference.  Solaris 8 perl works.
34418
34419 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34420
34421         PR bootstrap/48135
34422         * doc/install.texi (Prerequisites): Move jar etc. up.
34423         Explain support library version requirements.
34424
34425 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34426
34427         PR bootstrap/48135
34428         * doc/install.texi (Prerequisites): Move Perl to build
34429         requirements.  Always necessary on Solaris 2 with Sun ld.
34430
34431 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34432
34433         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
34434         binutils 2.21.
34435         (Specific, i?86-*-solaris2.[89]): Likewise.
34436         (Specific, i?86-*-solaris2.10): Likewise.
34437         (Specific, mips-sgi-irix6): Likewise.
34438         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
34439         Update for binutils 2.21.
34440
34441 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34442
34443         * configure.ac (gcc_cv_lto_plugin): Fix typo.
34444         Allow -fuse-linker-plugin for non-default plugin linker.
34445         * configure: Regenerate.
34446
34447 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
34448
34449         PR bootstrap/48167
34450         * gengtype.c (files_rules): Added rule for cp/parser.h.
34451
34452 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
34453
34454         PR target/48213
34455         * config/s390/s390.c (s390_delegitimize_address): Don't call
34456         lowpart_subreg if orig_x has BLKmode.
34457
34458 2011-03-21  Kai Tietz  <ktietz@redhat.com>
34459
34460         PR target/12171
34461         * doc/plugins.texi: Adjust documentation for plugin register_callback.
34462         * tree.h (attribute_spec): Add new member affects_type_identity.
34463         * attribs.c (empty_attribute_table): Adjust attribute_spec
34464         initializers.
34465         * config/alpha/alpha.c: Likewise.
34466         * config/arc/arc.c: Likewise.
34467         * config/arm/arm.c: Likewise.
34468         * config/avr/avr.c: Likewise.
34469         * config/bfin/bfin.c: Likewise.
34470         * config/crx/crx.c: Likewise.
34471         * config/darwin.h: Likewise.
34472         * config/h8300/h8300.c: Likewise.
34473         * config/i386/cygming.h: Likewise.
34474         * config/i386/i386.c: Likewise.
34475         * config/ia64/ia64.c: Likewise.
34476         * config/m32c/m32c.c: Likewise.
34477         * config/m32r/m32r.c: Likewise.
34478         * config/m68hc11/m68hc11.c: Likewise.
34479         * config/m68k/m68k.c: Likewise.
34480         * config/mcore/mcore.c: Likewise.
34481         * config/mep/mep.c: Likewise.
34482         * config/microblaze/microblaze.c: Likewise.
34483         * config/mips/mips.c: Likewise.
34484         * config/rs6000/rs6000.c: Likewise.
34485         * config/rx/rx.c: Likewise.
34486         * config/sh/sh.c: Likewise.
34487         * config/sol2.h: Likewise.
34488         * config/sparc/sparc.c: Likewise.
34489         * config/spu/spu.c: Likewise.
34490         * config/stormy16/stormy16.c: Likewise.
34491         * config/v850/v850.c: Likewise.
34492
34493 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
34494
34495         * simplify-rtx.c (simplify_binary_operation_1): Handle
34496         (xor (and A B) C) case when B and C are both constants.
34497
34498 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
34499
34500         * tree-dfa.c (add_referenced_var): Fix typo in comment.
34501
34502 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
34503
34504         PR bootstrap/48168
34505         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
34506
34507 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
34508
34509         PR rtl-optimization/48156
34510         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
34511         assume df and df_lr are not NULL.
34512
34513 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
34514
34515         PR debug/48023
34516         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
34517         between a call and its CALL_ARG_LOCATION note.
34518
34519 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
34520
34521         PR debug/48178
34522         * config/sh/sh.c (find_barrier): Don't emit a constant pool
34523         between a call and its corresponding CALL_ARG_LOCATION note.
34524
34525 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
34526
34527         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
34528         instead of loop. Use HARD_REGISTER_NUM_P predicate.
34529         * haifa-sched.c (setup_ref_regs): Ditto.
34530         * caller-save.c (add_used_regs_1): Ditto.
34531         * dse.c (look_for_hardregs): Ditto.
34532         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
34533         * sched-rgn.c (check_live_1): Ditto.
34534
34535 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
34536
34537         * c-decl.c (diagnose_mismatched_decls): Give an error for
34538         redefining a typedef with variably modified type.
34539
34540 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
34541
34542         * c-decl.c (grokfield): Don't allow typedefs for structures or
34543         unions with no tag by default.
34544         * doc/extend.texi (Unnamed Fields): Update.
34545
34546 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
34547
34548         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
34549         Rewrite using indirect functions.
34550         (lwp_slwpcb): Ditto.
34551         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
34552         (avx_vinsertf128<mode>): Ditto.
34553
34554 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34555
34556         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
34557         unspecs.
34558
34559 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34560
34561         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
34562         splitting between a call and its corresponding CALL_ARG_LOCATION note.
34563
34564 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
34565
34566         PR rtl-optimization/48170
34567         * gcse.c (hoist_code): Remove bogus asserts.
34568
34569 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
34570
34571         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
34572         computation for prologue/epilogue.
34573
34574 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34575
34576         * Makefile.in (check-consistency): Remove.
34577
34578 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
34579
34580         PR debug/48176
34581         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
34582         arange_table_in_use is 0, but either text_section_used or
34583         cold_text_section_used is true.  Don't call it if
34584         !info_section_emitted.
34585
34586 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
34587
34588         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
34589         FUNCTION_VALUE_REGNO_P): Remove.
34590         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
34591         Remove.
34592         * config/avr/avr.c (avr_ret_register): Make static inline.
34593         (avr_function_value_regno_p): New function.
34594         (avr_libcall_value): Make static. Add 'func' argument.
34595         (avr_function_value): Make static. Rename 'func' argument to
34596         'fn_decl_or_type', forward it to avr_libcall_value. Call
34597         avr_ret_register function instead of RET_REGISTER macro.
34598         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
34599
34600 2011-03-18  Jason Merrill  <jason@redhat.com>
34601
34602         PR c++/23372
34603         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
34604
34605 2011-03-18  Richard Guenther  <rguenther@suse.de>
34606
34607         * doc/install.texi (--enable-gold): Remove.
34608         (--with-plugin-ld): Document.
34609         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
34610
34611 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
34612
34613         PR middle-end/47790
34614         * expr.c (optimize_bitfield_assignment_op): Revamp to work
34615         again after expansion changes.
34616
34617 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
34618
34619         * combine.c (try_combine): Do simplification only call of
34620         subst() on i2 even when i1 is present. Update comments.
34621
34622 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
34623
34624         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
34625         and UNSPEC_PCREL_SYMOFF.
34626
34627 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34628
34629         * config/s390/s390.md: Use define_c_enum for the unspec constant
34630         definitions.
34631
34632 2011-03-18  Richard Henderson  <rth@redhat.com>
34633             Jakub Jelinek  <jakub@redhat.com>
34634
34635         PR bootstrap/48161
34636         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
34637         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
34638
34639 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
34640
34641         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
34642         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
34643         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
34644         Change return type to bool.
34645         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
34646
34647 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
34648
34649         PR debug/48163
34650         * var-tracking.c (prepare_call_arguments): If CALL target
34651         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
34652         pc instead of looking it up using cselib_lookup and use
34653         Pmode for it if x has VOIDmode.
34654         * dwarf2out.c (gen_subprogram_die): If also both first and
34655         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
34656
34657         PR debug/48163
34658         * function.c (assign_parms): For data.passed_pointer parms
34659         use MEM of data.entry_parm instead of data.entry_parm itself
34660         as DECL_INCOMING_RTL.
34661         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
34662         also when passed and declared mode is the same, DECL_RTL
34663         is a MEM with pseudo as address and DECL_INCOMING_RTL is
34664         a MEM too.
34665
34666 2011-03-16  Jeff Law  <law@redhat.com>
34667
34668         PR rtl-optimization/37273
34669         * ira-costs.c (scan_one_insn): Detect constants living in memory and
34670         handle them like argument loads from stack slots.  Do not double
34671         count memory for memory constants and argument loads from stack slots.
34672
34673 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
34674
34675         PR debug/48160
34676         * var-tracking.c (prepare_call_arguments): Check SUBREG.
34677
34678 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
34679
34680         PR target/48171
34681         * config/i386/i386.opt: Add Save to -mavx and -mfma.
34682
34683 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
34684
34685         PR bootstrap/48153
34686         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
34687         if dwarf_strict.
34688         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
34689         Clear call_arg_locations and call_arg_loc_last always.
34690
34691         PR middle-end/48152
34692         * var-tracking.c (prepare_call_arguments): If argument needs to be
34693         passed by reference, adjust argtype and mode.
34694
34695 2011-03-17  Richard Guenther  <rguenther@suse.de>
34696
34697         PR middle-end/48134
34698         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
34699         a value make sure to fold the statement.
34700
34701 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
34702
34703         PR target/43872
34704         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
34705         return condition with !cfun->calls_alloca.
34706
34707 2011-03-17  Richard Guenther  <rguenther@suse.de>
34708
34709         PR bootstrap/48148
34710         * lto-cgraph.c (input_overwrite_node): Clear the abstract
34711         origin for decls in other ltrans units.
34712         (input_varpool_node): Likewise.
34713
34714 2011-03-17  Richard Guenther  <rguenther@suse.de>
34715
34716         PR middle-end/48165
34717         * tree-object-size.c (compute_object_offset): Properly return
34718         the offset operand of MEM_REFs as sizetype.
34719
34720 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
34721
34722         PR rtl-optimization/48141
34723         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
34724         * dse.c: Include params.h.
34725         (active_local_stores_len): New variable.
34726         (add_wild_read, dse_step1): Clear it when setting active_local_stores
34727         to NULL.
34728         (record_store, check_mem_read_rtx): Decrease it when removing
34729         from the chain.
34730         (scan_insn): Likewise.  Increase it when adding to chain, if it
34731         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
34732         set active_local_stores to NULL before the addition.
34733         * Makefile.in (dse.o): Depend on $(PARAMS_H).
34734
34735         PR rtl-optimization/48141
34736         * dse.c (record_store): If no positions are needed in an insn
34737         that cannot be deleted, at least unchain it from active_local_stores.
34738
34739 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
34740
34741         PR debug/47510
34742         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
34743         (lookup_type_die_strip_naming_typedef): ... here.
34744         (get_context_die): Use it.
34745         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
34746         the anonymous struct named by the naming typedef.
34747
34748 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
34749
34750         PR target/48154
34751         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
34752         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
34753
34754 2011-03-16  Jeff Law  <law@redhat.com>
34755
34756         * tree-vrp.c (identify_jump_threads): Slightly simplify type
34757         check for operands of conditional.  Allow type to be a pointer.
34758
34759 2011-03-16  Richard Guenther  <rguenther@suse.de>
34760
34761         PR tree-optimization/48149
34762         * fold-const.c (fold_binary_loc): Fold
34763         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
34764
34765 2011-03-16  Richard Guenther  <rguenther@suse.de>
34766
34767         PR tree-optimization/26134
34768         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
34769         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
34770         (non_rewritable_mem_ref_base): Handle complex type component
34771         accesses, constrain offsets for vector and complex extracts
34772         more properly.
34773
34774 2011-03-16  Richard Guenther  <rguenther@suse.de>
34775
34776         PR tree-optimization/48146
34777         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
34778         operands avoiding the need for renaming.
34779
34780 2011-03-16  Richard Guenther  <rguenther@suse.de>
34781
34782         * gimple-fold.c (maybe_fold_reference): Open-code relevant
34783         constant folding.  Move MEM_REF canonicalization first.
34784         Rely on fold_const_aggregate_ref for initializer folding.
34785         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
34786
34787 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
34788
34789         PR middle-end/48136
34790         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
34791         arg0/arg1 or their arguments are always fold converted to matching
34792         types.
34793
34794         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
34795         to nargs.
34796
34797 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34798
34799         PR lto/46944
34800         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
34801         Handle in-tree gold.
34802         (ld_vers): Extract binutils version for gold.
34803         (gcc_cv_ld_hidden): Handle gold here.
34804         (gcc_cv_lto_plugin): Determine level of linker plugin support.
34805         * configure: Regenerate.
34806         * config.in: Regenerate.
34807         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
34808         -fuse-linker-plugin otherwise.
34809         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
34810         (LINK_COMMAND_SPEC): Use it.
34811         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
34812
34813 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
34814
34815         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
34816         * calls.c: Remove debug.h include.
34817         (emit_call_1): Don't call virtual_call_token debug hook.
34818         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
34819         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
34820         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
34821         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
34822         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
34823         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
34824         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
34825         dwarf2out_virtual_call): Remove.
34826         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
34827         copy_call_info and virtual_call hooks.
34828         (dwarf2out_init): Don't initialize vcall_insn_table,
34829         debug_dcall_section and debug_vcall_section.
34830         (prune_unused_types): Don't mark nodes from dcall_table.
34831         (dwarf2out_finish): Don't output dcall or vcall tables.
34832         * final.c (final_scan_insn): Don't call direct_call or
34833         virtual_call debug hooks.
34834         * debug.h (struct gcc_debug_hooks): Remove direct_call,
34835         virtual_call_token, copy_call_info and virtual_call hooks.
34836         (debug_nothing_uid): Remove prototype.
34837         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
34838         copy_call_info and virtual_call hooks.
34839         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
34840         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
34841         * debug.c (do_nothing_debug_hooks): Likewise.
34842         (debug_nothing_uid): Remove.
34843         * doc/invoke.texi (-fenable-icf-debug): Remove.
34844         * common.opt (-fenable-icf-debug): Likewise.
34845
34846         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
34847         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
34848         call's MEM.  Handle functions returning aggregate through a hidden
34849         first pointer.  For virtual calls add clobbered pc to call arguments
34850         chain.
34851         * dwarf2out.c (gen_subprogram_die): Emit
34852         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
34853         can't be emitted.
34854
34855         PR debug/45882
34856         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
34857         * rtl.h (ENTRY_VALUE_EXP): Define.
34858         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
34859         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
34860         * print-rtl.c (print_rtx): Likewise.
34861         * gengtype.c (adjust_field_rtx_def): Likewise.
34862         * var-tracking.c (vt_add_function_parameter): Adjust
34863         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
34864         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
34865         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
34866         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
34867         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
34868
34869         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
34870         Call var_location debug hook even on CALL_INSNs.
34871         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
34872         * rtl.def (ENTRY_VALUE): New.
34873         * dwarf2out.c: Include cfglayout.h.
34874         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
34875         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
34876         (struct call_arg_loc_node): New type.
34877         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
34878         tail_call_site_count): New variables.
34879         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
34880         DW_TAG_GNU_call_site_parameter.
34881         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
34882         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
34883         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
34884         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
34885         and DW_AT_GNU_all_source_call_sites.
34886         (mem_loc_descriptor): Handle ENTRY_VALUE.
34887         (add_src_coords_attributes): Don't add enything if
34888         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
34889         (dwarf2out_abstract_function): Save and clear call_arg_location,
34890         call_site_count and tail_call_site_count around dwarf2out_decl call.
34891         (gen_call_site_die): New function.
34892         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
34893         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
34894         (dwarf2out_function_decl): Clear call_arg_locations,
34895         call_arg_loc_last, set call_site_count and tail_call_site_count
34896         to -1 and free block_map.
34897         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
34898         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
34899         followed by any real instructions.
34900         (dwarf2out_begin_function): Set call_site_count and
34901         tail_call_site_count to 0.
34902         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
34903         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
34904         attempt to force a DIE for it and worst case remove the attribute.
34905         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
34906         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
34907         the decl itself.
34908         * var-tracking.c: Include tm_p.h.
34909         (vt_stack_adjustments): For calls call note_register_arguments.
34910         (argument_reg_set): New variable.
34911         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
34912         ensure the VALUE is resolved.
34913         (call_arguments): New variable.
34914         (prepare_call_arguments): New function.
34915         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
34916         (struct expand_loc_callback_data): Add ignore_cur_loc field.
34917         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
34918         always use the best expression.
34919         (vt_expand_loc): Add ignore_cur_loc argument.
34920         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
34921         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
34922         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
34923         note for all calls.
34924         (vt_add_function_parameter): Use cselib_lookup_from_insn.
34925         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
34926         argument.  Don't call cselib_preserve_only_values and
34927         cselib_reset_table.
34928         (note_register_arguments): New function.
34929         (vt_initialize): Compute argument_reg_set.  Call
34930         vt_add_function_parameters before processing basic blocks instead of
34931         afterwards.  For calls call prepare_call_arguments before calling
34932         cselib_process_insn.
34933         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
34934         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
34935         (var-tracking.o): Depend on $(TM_P_H).
34936         * cfglayout.h (insn_scope): New prototype.
34937         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
34938         * cfglayout.c (insn_scope): No longer static.
34939         * insn-notes.def (CALL_ARG_LOCATION): New.
34940         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
34941         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
34942         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
34943         nothing for DECL_EXTERNAL BLOCK_VARS.
34944
34945 2011-03-16  Alan Modra  <amodra@gmail.com>
34946
34947         PR target/45844
34948         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
34949         create invalid offset address for vsx splat insn.
34950         * config/rs6000/predicates.md (splat_input_operand): New.
34951         * config/rs6000/vsx.md (vsx_splat_*): Use it.
34952
34953 2011-03-15  Xinliang David Li  <davidxl@google.com>
34954
34955         PR c/47837
34956         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
34957         (normalize_preds): New function.
34958         (is_use_properly_guarded): Normalize def predicates.
34959
34960 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
34961
34962         PR target/46788
34963         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
34964         in the output template.
34965
34966 2011-03-15  Richard Guenther  <rguenther@suse.de>
34967
34968         PR middle-end/47650
34969         * tree-pretty-print.c (dump_function_declaration): Properly
34970         dump unprototyped and varargs function types.
34971
34972 2011-03-15  Richard Guenther  <rguenther@suse.de>
34973
34974         PR tree-optimization/13954
34975         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
34976         and friends.
34977
34978 2011-03-15  Richard Guenther  <rguenther@suse.de>
34979
34980         PR tree-optimization/48037
34981         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
34982         selects into BIT_FIELD_REFs.
34983         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
34984         vector select.
34985
34986 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
34987
34988         PR tree-optimization/48129
34989         * builtins.c (fold_builtin_snprintf): Convert to type of
34990         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
34991         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
34992
34993 2011-03-15  Richard Guenther  <rguenther@suse.de>
34994
34995         PR tree-optimization/41490
34996         * tree-ssa-dce.c (propagate_necessity): Handle returns without
34997         value but with VUSE.
34998         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
34999         return statements.
35000         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
35001         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
35002         * tree-tailcall.c (find_tail_calls): Ignore returns.
35003
35004 2011-03-15  Richard Guenther  <rguenther@suse.de>
35005
35006         PR middle-end/48031
35007         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
35008         or variable-indexed array accesses when in gimple form.
35009
35010 2011-03-15  Richard Guenther  <rguenther@suse.de>
35011
35012         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
35013
35014 2011-03-15  Alan Modra  <amodra@gmail.com>
35015
35016         PR target/48032
35017         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
35018         presume symbol_refs without a symbol_ref_decl are suitably
35019         aligned, nor other trees we may see here.  Handle anchor symbols.
35020         (legitimate_constant_pool_address_p): Comment.  Add mode param.
35021         Check cmodel=medium addresses.  Adjust all calls.
35022         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
35023         creating cmodel=medium optimized access to locals.
35024         * config/rs6000/constraints.md (R): Pass QImode to
35025         legitimate_constant_pool_address_p.
35026         * config/rs6000/predicates.md (input_operand): Pass mode to
35027         legitimate_constant_pool_address_p.
35028         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
35029         Update prototype.
35030
35031 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35032
35033         PR target/48053
35034         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
35035         64-bit constants being loaded into registers other than GPRs such
35036         as loading 0 into a VSX register.
35037
35038 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35039
35040         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
35041
35042 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
35043
35044         PR middle-end/47917
35045         * builtins.c (fold_builtin_snprintf): New function.
35046         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
35047         (fold_builtin_4): Likewise.
35048
35049         PR middle-end/38878
35050         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
35051         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
35052         and C - X == X also strip nops from +/-/p+ operand.
35053         When optimizing -X == C, fold C to arg0's type.
35054
35055         PR debug/47946
35056         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
35057         emit it as add_AT_int instead of add_AT_unsigned.
35058
35059 2011-03-14  Tom Tromey  <tromey@redhat.com>
35060
35061         * unwind-dw2.c: Include sys/sdt.h if it exists.
35062         (_Unwind_DebugHook): Use STAP_PROBE2.
35063         * config.in, configure: Rebuild.
35064         * configure.ac: Check for sys/sdt.h.
35065
35066 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
35067
35068         * config/i386/i386.md (ROUND_FLOOR): New constant.
35069         (ROUND_CEIL): Ditto.
35070         (ROUND_TRUNC): Ditto.
35071         (ROUND_MXCSR): Ditto.
35072         (ROUND_NO_EXC): Ditto.
35073         (rint<mode>2): Use new defines instead of numerical constants.
35074         (floor<mode>2): Ditto.
35075         (ceil<mode>2): Ditto.
35076         (btrunc<mode>2): Ditto.
35077         * config/i386/i386-builtin-types.def: Define ROUND function type
35078         aliases.
35079         * config/i386/i386.c (enum ix86_builtins): Add
35080         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
35081         (struct builtin_description): Add
35082         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
35083         (ix86_expand_sse_round): New static function.
35084         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
35085         function types.
35086         (ix86_builtin_vectorized_function): Handle
35087         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
35088
35089 2011-03-14  Tom Tromey  <tromey@redhat.com>
35090
35091         * c-parser.c (c_parser_asm_string_literal): Clear
35092         warn_overlength_strings.
35093
35094 2011-03-14  Tom Tromey  <tromey@redhat.com>
35095
35096         * c-parser.c (disable_extension_diagnostics): Save
35097         warn_overlength_strings.
35098         (restore_extension_diagnostics): Restore warn_overlength_strings.
35099
35100 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
35101
35102         * BASE-VER: Change to 4.7.0.
35103
35104 2011-03-14  Richard Guenther  <rguenther@suse.de>
35105
35106         PR middle-end/48098
35107         * tree.c (build_vector_from_val): Adjust assert to requirements
35108         and reality.
35109
35110 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
35111
35112         PR bootstrap/48102
35113         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
35114
35115 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
35116
35117         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
35118         terms of target_flags_explicit. Adjust copyright year.
35119
35120         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
35121         * config/rs6000/t-freebsd: New file. Add override for
35122         LIB2FUNCS_EXTRA.
35123
35124 2011-03-13  Chris Demetriou  <cgd@google.com>
35125
35126         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
35127         (-fno-diagnostics-show-option): this, to reflect current default.
35128         (-Werror=): Update text about -fno-diagnostics-show-option.
35129
35130 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
35131
35132         PR target/48053
35133         * config/rs6000/predicates.md (easy_vector_constant_add_self,
35134         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
35135         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
35136         mode is not V2DImode or V2DFmode.
35137         (vspltis_constant): Do not handle V2DImode and V2DFmode.
35138         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
35139         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
35140         registers to 0.
35141         (movdi_internal64): Likewise.
35142
35143 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
35144
35145         PR tree-optimization/47127
35146         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
35147         parameter.
35148         (set_cloog_options): Same.
35149         (scop_to_clast): Same.
35150         (print_clast_stmt): Do not call cloog_state_malloc and
35151         cloog_state_free.
35152         (print_generated_program): Same.
35153         (gloog): Same.
35154         * graphite-clast-to-gimple.h (cloog_state): Declared.
35155         (scop_to_clast): Adjust declaration.
35156         * graphite.c (cloog_state): Defined here.
35157         (graphite_initialize): Call cloog_state_malloc.
35158         (graphite_finalize): Call cloog_state_free.
35159
35160 2011-03-11  Jason Merrill  <jason@redhat.com>
35161
35162         * attribs.c (lookup_attribute_spec): Take const_tree.
35163         * tree.h: Adjust.
35164
35165 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
35166
35167         * config/sparc/sparc.c (sparc_option_override): Use
35168         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
35169
35170 2011-03-11  Richard Guenther  <rguenther@suse.de>
35171
35172         PR tree-optimization/48067
35173         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
35174         multiplication result will be only used once on the target
35175         stmt.
35176
35177 2011-03-11  Richard Guenther  <rguenther@suse.de>
35178
35179         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
35180
35181 2011-03-11  Richard Guenther  <rguenther@suse.de>
35182
35183         PR lto/48073
35184         * tree.c (find_decls_types_r): Do not walk types only reachable
35185         from IDENTIFIER_NODEs.
35186
35187 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
35188
35189         PR middle-end/48044
35190         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
35191         all vnode->force_output nodes as needed.
35192
35193 2011-03-11  Jason Merrill  <jason@redhat.com>
35194
35195         PR c++/48069
35196         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
35197         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
35198
35199 2011-03-11  Martin Jambor  <mjambor@suse.cz>
35200
35201         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
35202         cgraph_node.
35203
35204 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
35205
35206         PR tree-optimization/48063
35207         * ipa-inline.c (cgraph_decide_inlining): Don't try to
35208         inline functions called once if !tree_can_inline_p (node->callers).
35209
35210 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
35211
35212         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
35213         extra_objs.
35214         * config/score/score3.c: Delete.
35215         * config/score/score3.h: Delete.
35216         * config/score/mul-div.S: Delete.
35217         * config/score/sfp-machine.h: Add new file.
35218         * config/score/constraints.md: Add new file.
35219         * config/score/t-score-softfp: Add new file.
35220         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
35221         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
35222         (score7_extra_constraint): Delete.
35223         (score7_option_override): Remove unused code.
35224         * config/score/score.c: Remove score3 and score5 define and code.
35225         * config/score/score.h: Remove score3 and score5 define and code.
35226         * config/score/score.md: Remove score3 template and unusual insn.
35227         * config/score/score.opt: Remove score3 and score5 options.
35228
35229 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35230
35231         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
35232         when _HPUX_SOURCE is defined.
35233         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
35234
35235 2011-03-10  Jason Merrill  <jason@redhat.com>
35236
35237         PR c++/48029
35238         * stor-layout.c (layout_type): Don't set structural equality
35239         on arrays of incomplete type.
35240         * tree.c (type_hash_eq): Handle comparing them properly.
35241
35242 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
35243
35244         PR debug/48043
35245         * config/s390/s390.c (s390_delegitimize_address): Make sure the
35246         result mode matches original rtl mode.
35247
35248 2011-03-10  Nick Clifton  <nickc@redhat.com>
35249
35250         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
35251         (andsi3, andsi3_flags): Fix timings for three operand alternative.
35252
35253 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
35254
35255         PR rtl-optimization/47866
35256         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
35257         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
35258         if target wasn't scalar.
35259         * function.c (assign_stack_temp_for_type): Assert that neither
35260         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
35261         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
35262         macro.
35263         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
35264
35265 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35266
35267         * config/s390/s390-protos.h (s390_label_align): New prototype.
35268         * config/s390/s390.c (s390_label_align): New function.
35269         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
35270
35271 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
35272
35273         PR target/47755
35274         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
35275         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
35276         (output_vec_const_move): Ditto.
35277
35278 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
35279
35280         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
35281         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
35282         * config/mips/mips.c (mips_preferred_reload_class): Make static.
35283         Change 'rclass' argument and result type to reg_class_t.
35284         (TARGET_PREFERRED_RELOAD_CLASS): Define.
35285
35286 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
35287
35288         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
35289         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
35290         (TARGET_MEMORY_MOVE_COST): Define.
35291         (avr_register_move_cost, avr_memory_move_cost): New Functions.
35292
35293 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
35294
35295         PR debug/47881
35296         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
35297         removed anything.
35298
35299         PR tree-optimization/48022
35300         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
35301         for EQ/NE_EXPR.
35302
35303 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
35304
35305         PR debug/47991
35306         * var-tracking.c (find_use_val): Return NULL for
35307         cui->sets && cui->store_p BLKmode MEMs.
35308
35309 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
35310
35311         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
35312         Remove.
35313         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
35314         xstormy16_print_operand_address): Remove.
35315         * config/stormy16/stormy16.c (xstormy16_print_operand,
35316         xstormy16_print_operand_address): Make static.
35317         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
35318
35319 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
35320
35321         PR target/47862
35322         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
35323         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
35324         before definition.
35325
35326 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
35327
35328         PR bootstrap/48000
35329         * cfgloopmanip.c (fix_bb_placements): Return immediately
35330         if FROM is BASE_LOOP's header.
35331
35332 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
35333
35334         * gimplify.c (gimplify_function_tree): Fix building calls
35335         to __builtin_return_address.
35336
35337 2011-03-07  Alan Modra  <amodra@gmail.com>
35338
35339         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
35340         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
35341         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
35342         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
35343         return_mode args.
35344         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
35345         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
35346         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
35347         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
35348         * config/rs6000/rs6000.c
35349         (rs6000_elf_end_indicate_exec_stack): Rename to..
35350         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
35351         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
35352         (rs6000_file_start): ..here.
35353         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
35354         file scope variables.
35355         (call_ABI_of_interest): New function.
35356         (init_cumulative_args): Set above vars when function return value
35357         is a float, vector, or small struct.
35358         (rs6000_function_arg_advance_1): Likewise for function args.
35359         (rs6000_va_start): Set rs6000_passes_float if variable arg function
35360         references float args.
35361
35362 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
35363
35364         * doc/cfg.texi: Remove "See" before @ref.
35365         * doc/invoke.texi: Likewise.
35366
35367 2011-03-05  Jason Merrill  <jason@redhat.com>
35368
35369         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
35370
35371 2011-03-05  Anthony Green  <green@moxielogic.com>
35372
35373         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
35374
35375 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
35376
35377         PR rtl-optimization/47899
35378         * cfgloopmanip.c (fix_bb_placements): Fix first argument
35379         to flow_loop_nested_p when moving the loop upward.
35380
35381 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
35382
35383         PR target/47719
35384         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
35385
35386 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
35387
35388         PR tree-optimization/47967
35389         * ipa-cp.c (build_const_val): Return NULL instead of creating
35390         VIEW_CONVERT_EXPR for mismatching sizes.
35391         (ipcp_create_replace_map): Return NULL if build_const_val failed.
35392         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
35393         give up on versioning.
35394
35395 2011-03-05  Alan Modra  <amodra@gmail.com>
35396
35397         PR target/47986
35398         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35399         full cmodel medium/large lo_sum + high addresses.
35400
35401 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35402
35403         * config/s390/s390.c (s390_decompose_address): Reject non-literal
35404         pool references in UNSPEC_LTREL_OFFSET.
35405
35406 2011-03-04  Jan Hubicka  <jh@suse.cz>
35407
35408         PR lto/47497
35409         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
35410         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
35411         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
35412         Add node pointers.
35413         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
35414         cgraph_add_thunk): Add node pointers.
35415         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
35416         associated to right node.
35417         (input_node): Update use of cgraph_same_body_alias
35418         and cgraph_add_thunk.
35419
35420 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35421
35422         * config/i386/i386.opt (mprefer-avx128): New flag.
35423         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
35424         modes when the flag -mprefer-avx128 is on.
35425
35426 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
35427
35428         * dwarf2out.c (compare_loc_operands): Fix address handling.
35429
35430 2011-03-04  Alan Modra  <amodra@gmail.com>
35431
35432         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
35433
35434 2011-03-04  Richard Guenther  <rguenther@suse.de>
35435
35436         PR middle-end/47968
35437         * expmed.c (extract_bit_field_1): Prefer vector modes that
35438         vec_extract patterns can handle.
35439
35440 2011-03-04  Richard Guenther  <rguenther@suse.de>
35441
35442         PR middle-end/47975
35443         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
35444
35445 2011-03-04  Richard Henderson  <rth@redhat.com>
35446
35447         * explow.c (emit_stack_save): Remove 'after' parameter.
35448         (emit_stack_restore): Likewise.
35449         * expr.h: Update to match.
35450         * builtins.c, calls.c, stmt.c: Likewise.
35451         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
35452         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
35453         * function.c (expand_function_end): Insert the emit_stack_save
35454         sequence before parm_birth_insn instead of after.
35455
35456 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
35457
35458         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
35459         (ssse3_pmaddubsw128): Ditto.
35460         (ssse3_pmaddubsw): Ditto.
35461
35462 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
35463
35464         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
35465
35466 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
35467
35468         PR c/47963
35469         * gimplify.c (omp_add_variable): Only call omp_notice_variable
35470         on TYPE_SIZE_UNIT if it is a DECL.
35471
35472         PR debug/47283
35473         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
35474         first operand is not is_gimple_mem_ref_addr, try to fold it.
35475         If the operand still isn't is_gimple_mem_ref_addr, clear
35476         MEM_EXPR on op0.
35477
35478 2011-03-03  Richard Guenther  <rguenther@suse.de>
35479
35480         PR middle-end/47283
35481         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
35482         match comment.
35483         (refs_may_alias_p_1): For release branches return true if
35484         we are confused by our input.
35485
35486 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35487
35488         * config/s390/s390.c (s390_function_value): Rename to ...
35489         (s390_function_and_libcall_value): ... this.
35490         (s390_function_value): New function.
35491         (s390_libcall_value): New function.
35492         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
35493         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
35494         target macro definitions.
35495         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
35496
35497 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
35498
35499         * config/i386/freebsd64.h (CC1_SPEC): Define.
35500         * config/i386/linux64.h (CC1_SPEC): Define.
35501         * config/i386/x86-64.h (CC1_SPEC): Don't define.
35502
35503 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
35504
35505         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
35506         Remove.
35507         * config/stormy16/stormy16.c: Include reload.h.
35508         (xstormy16_memory_move_cost): New function.
35509         (TARGET_MEMORY_MOVE_COST): Define.
35510
35511 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
35512
35513         PR rtl-optimization/47925
35514         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
35515         with side effects.  Remove the more-specific check for volatile asms.
35516
35517 2011-03-02  Alan Modra  <amodra@gmail.com>
35518
35519         PR target/47935
35520         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
35521         toc relative addresses for valid offsets.
35522
35523 2011-03-01  Richard Guenther  <rguenther@suse.de>
35524
35525         PR tree-optimization/47890
35526         * tree-vect-loop.c (get_initial_def_for_induction): Set
35527         related stmt properly.
35528
35529 2011-03-01  Richard Guenther  <rguenther@suse.de>
35530
35531         PR lto/47924
35532         * lto-streamer.c (lto_record_common_node): Also register
35533         the canonical type.
35534
35535 2011-03-01  Richard Guenther  <rguenther@suse.de>
35536
35537         PR lto/46911
35538         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
35539         Do not stream DECL_ABSTRACT_ORIGIN.
35540         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
35541         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
35542         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
35543         Do not stream DECL_ABSTRACT_ORIGIN.
35544         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
35545         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
35546
35547 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
35548
35549         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
35550         FUNCTION_VALUE_REGNO_P): Remove.
35551         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
35552         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
35553         Add 'outgoing' argument.
35554         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
35555         function.
35556         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
35557         TARGET_FUNCTION_VALUE_REGNO_P): Define.
35558
35559 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
35560
35561         PR debug/28047
35562         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
35563         (lookup_filename): Likewise.
35564         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
35565
35566 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
35567             Jakub Jelinek  <jakub@redhat.com>
35568
35569         PR middle-end/47893
35570         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
35571         (assign_stack_local_1): Change last argument type to int.
35572         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
35573         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
35574         don't record padding space into frame_space_list nor use those areas.
35575         (assign_stack_local): Adjust caller.
35576         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
35577         of assign_stack_local, pass 0 as last argument.
35578         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
35579         callers.
35580
35581 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
35582
35583         PR debug/47283
35584         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
35585         Use target address_mode and pointer_mode hooks instead of hardcoded
35586         Pmode and ptr_mode.  Handle some simple cases of extending if
35587         POINTERS_EXTEND_UNSIGNED < 0.
35588         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
35589         Call convert_debug_memory_address.
35590         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
35591         convert_debug_memory_address.
35592
35593         PR middle-end/46790
35594         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
35595         * configure: Regenerated.
35596         * config.in: Regenerated.
35597         * varasm.c (default_function_section): Return NULL
35598         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
35599
35600 2011-02-28  Martin Jambor  <mjambor@suse.cz>
35601
35602         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
35603         the description to match the printed values.
35604
35605 2011-02-28  Richard Guenther  <rguenther@suse.de>
35606
35607         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
35608         of the copied scope tree.
35609
35610 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35611
35612         * doc/extend.texi (Function Attributes): Avoid deeply (and
35613         wrongly) nested tables.
35614
35615 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
35616
35617         PR middle-end/47903
35618         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
35619         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
35620         r isn't op0 nor op1.
35621
35622 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
35623
35624         * config/avr/avr.md: Remove magic comment for emacs.
35625
35626 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
35627
35628         PR target/45261
35629         * config/avr/avr.c (avr_option_override): Use error on bad options.
35630         (avr_help): New function.
35631         (TARGET_HELP): Define.
35632
35633 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
35634
35635         PR target/42240
35636         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
35637         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
35638
35639 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
35640
35641         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
35642         (ARM Options): Ditto.
35643         (i386 and x86-64 Options): Ditto.
35644         (RX Options): Ditto.
35645         (SPARC Options): Ditto.
35646
35647 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
35648
35649         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
35650         FreeBSD 6 and later.  Generally use cpu generic.
35651
35652 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35653
35654         * doc/cpp.texi: Update copyright years.
35655
35656 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
35657
35658         PR target/46898
35659         * config/lm32/lm32.md (ashrsi3): Added needed variable.
35660
35661 2011-02-25  Jon Beniston  <jon@beniston.com>
35662
35663         PR target/46898
35664         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
35665         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
35666         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
35667         (lm32_block_move_inline): Add type cast to remove warning.
35668         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
35669         (gen_int_relational): Move declarations to start of function.
35670
35671 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
35672
35673         PR tree-optimization/45470
35674         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
35675         can throw internally only.
35676         * tree-vect-stmts.c (vectorizable_call): Likewise.
35677
35678 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
35679
35680         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
35681         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
35682         * config/stormy16/stormy16-protos.h
35683         (xstormy16_preferred_reload_class): Remove.
35684         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
35685         static. Change 'rclass' argument and return type to reg_class_t.
35686         (TARGET_PREFERRED_RELOAD_CLASS,
35687         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
35688
35689 2011-02-24  Richard Guenther  <rguenther@suse.de>
35690
35691         * lto-streamer-in.c (input_bb): Do not find referenced vars
35692         in debug statements.
35693
35694 2011-02-23  Jason Merrill  <jason@redhat.com>
35695
35696         * common.opt (fabi-version): Document v5 and v6.
35697
35698 2011-02-23  Richard Guenther  <rguenther@suse.de>
35699
35700         PR tree-optimization/47849
35701         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
35702
35703 2011-02-23  Jie Zhang  <jie@codesourcery.com>
35704
35705         * opts-common.c (decode_cmdline_option): Print empty string
35706         argument as "" in decoded->orig_option_with_args_text.
35707         * gcc.c (execute): Print empty string argument as ""
35708         in the verbose output.
35709         (do_spec_1): Keep empty string argument.
35710
35711 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
35712
35713         * config.gcc: Declare score-* and crx-* obsolete.
35714
35715 2011-02-23  Jie Zhang  <jie@codesourcery.com>
35716
35717         PR rtl-optimization/47763
35718         * web.c (web_main): Ignore naked clobber when replacing register.
35719
35720 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
35721
35722         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
35723         Remove.
35724
35725 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35726
35727         PR doc/47848
35728         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
35729
35730 2011-02-22  Mike Stump  <mikestump@comcast.net>
35731
35732         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
35733         assembler.
35734         * configure: Regenerate.
35735
35736 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
35737
35738         PR rtl-optimization/46002
35739         * ira-color.c (update_copy_costs): Change class intersection
35740         test to reg_class_contents[] test of 'hard_regno'.
35741
35742 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
35743
35744         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
35745         than Driver option.
35746         * config/hpux11.opt (mt): Likewise.
35747         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
35748         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
35749         * config/vax/elf.opt (mno-asm-pic): Likewise.
35750         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
35751
35752 2011-02-21  Mike Stump  <mikestump@comcast.net>
35753
35754         PR target/47822
35755         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
35756         tree so we can get save the type.
35757         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
35758         for CFString instead of trying to use past the end of the builtins.
35759         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
35760         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
35761         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
35762         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
35763         Rename to darwin_builtin_cfstring.
35764         (darwin_init_cfstring_builtins): Return the built type.
35765
35766 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
35767
35768         PR target/47840
35769         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
35770         (_mm256_insert_epi64): Use _mm_insert_epi64.
35771
35772 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
35773
35774         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
35775         * config/stormy16/stormy16-protos.h
35776         (xstormy16_mode_dependent_address_p): Remove.
35777         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
35778         Make static. Change return type to bool. Change argument type to
35779         const_rtx. Remove dead code.
35780         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
35781
35782 2011-02-21  Richard Guenther  <rguenther@suse.de>
35783
35784         PR lto/47820
35785         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
35786         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
35787         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
35788         TUs context.
35789         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
35790         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
35791
35792 2011-02-20  Richard Guenther  <rguenther@suse.de>
35793
35794         PR lto/47822
35795         * tree.c (free_lang_data_in_decl): Clean builtins from
35796         the TU decl BLOCK_VARS.
35797
35798 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
35799
35800         PR debug/47620
35801         PR debug/47630
35802         * haifa-sched.c (fix_tick_ready): Skip tick computation
35803         for debug insns.
35804
35805 2011-02-19  Richard Guenther  <rguenther@suse.de>
35806
35807         PR lto/47647
35808         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
35809         Remove lazy BLOCK_VARS streaming.
35810         (lto_input_ts_block_tree_pointers): Likewise.
35811         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
35812
35813 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
35814
35815         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
35816
35817 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
35818
35819         * config/i386/biarch32.h, config/i386/mach.h,
35820         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
35821
35822 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
35823
35824         PR target/47800
35825         * config/i386/i386.md (peephole2 for shift and plus): Use
35826         operands[1] original mode in the first insn.
35827
35828 2011-02-18  Mike Stump  <mikestump@comcast.net>
35829
35830         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
35831
35832 2011-02-18  Jan Hubicka  <jh@suse.cz>
35833
35834         PR middle-end/47788
35835         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
35836         to zero when the function is not inlinable at all.
35837
35838 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35839
35840         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
35841         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
35842         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
35843         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
35844         * config/pa/t-pa64: Likewise.
35845         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
35846
35847 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
35848
35849         PR driver/47787
35850         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
35851
35852 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35853
35854         PR target/47792
35855         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
35856
35857 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
35858
35859         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
35860         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
35861         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
35862         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
35863         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
35864         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
35865         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
35866         m32r_load_postinc_p, m32r_store_preinc_predec_p,
35867         m32r_legitimate_address_p): New functions.
35868         * config/m32r/constraints.md (constraint "S"): Don't use
35869         STORE_PREINC_PREDEC_P.
35870         (constraint "U"): Don't use LOAD_POSTINC_P.
35871
35872 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
35873
35874         PR rtl-optimization/46178
35875         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
35876         compute ira_hard_regno_cover_class[].
35877
35878 2011-02-18  Richard Guenther  <rguenther@suse.de>
35879
35880         PR lto/47798
35881         * lto-streamer.h (lto_global_var_decls): Declare.
35882         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
35883         statics for global var processing.
35884
35885 2011-02-18  Richard Guenther  <rguenther@suse.de>
35886
35887         PR tree-optimization/47737
35888         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
35889         edge dominance check.
35890
35891 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
35892
35893         PR debug/47780
35894         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
35895         avoid invalid rtx sharing.
35896
35897 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
35898
35899         * doc/cpp.texi (Obsolete Features): Add background on the
35900         origin of assertions.
35901
35902 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
35903
35904         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
35905         objc_abi == 2.
35906         * config/darwin.c (output_objc_section_asm_op): Added support for
35907         ABI v1 and v2.
35908         (is_objc_metadata): New.
35909         (darwin_objc2_section): New.
35910         (darwin_objc1_section): New.
35911         (machopic_select_section): Added support for ABI v1 and v2.
35912         (darwin_emit_objc_zeroed): New.
35913         (darwin_output_aligned_bss): Detect objc metadata and treat it
35914         appropriately.
35915         (darwin_asm_output_aligned_decl_common): Same.
35916         (darwin_asm_output_aligned_decl_local): Same.
35917         * config/darwin-sections.def: Updated for ABI v1 and v2.
35918         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
35919         compiling Objective-C code for the NeXT runtime, default to using
35920         ABI version 0 for 32-bit, and version 2 for 64-bit.
35921
35922 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35923
35924         * common.opt (optimize_fast): New Variable.
35925         * opts.c (default_options_optimization): Use opts->x_optimize_fast
35926         instead of local variable ofast.
35927
35928 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
35929
35930         * doc/invoke.texi (fobjc-abi-version): Documented.
35931         (fobjc-nilcheck): Documented.
35932         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
35933         version.
35934
35935 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35936
35937         PR driver/47390
35938         * common.opt (export-dynamic): New Driver option.
35939         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
35940
35941 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35942
35943         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
35944
35945 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
35946             Jan Hubicka  <jh@suse.cz>
35947
35948         PR debug/47106
35949         PR debug/47402
35950         * cfgexpand.c (account_used_vars_for_block): Remove.
35951         (estimated_stack_frame_size): Use referenced vars.
35952         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
35953         that were referenced in the original function.  Test src_fn
35954         rather than cfun.  Drop redundant get_var_ann.
35955         (setup_one_parameter): Drop redundant get_var_ann.
35956         (declare_return_variable): Likewise.
35957         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
35958         (copy_arguments_for_versioning): Drop redundant get_var_ann.
35959         * ipa-inline.c (compute_inline_parameters): Do not compute
35960         disregard_inline_limits here.
35961         (compute_inlinable_for_current, pass_inlinable): New.
35962         (pass_inline_parameters): Require PROP_referenced_vars.
35963         * cgraphunit.c (cgraph_process_new_functions): Don't run
35964         compute_inline_parameters explicitly unless function is in SSA form.
35965         (cgraph_analyze_function): Set .disregard_inline_limits.
35966         * tree-sra.c (convert_callers): Compute inliner parameters
35967         only for functions already in SSA form.
35968
35969 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35970
35971         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
35972         -mlittle-endian-data.
35973
35974 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
35975
35976         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
35977         -mno-fpu, not -fpu and -no-fpu.
35978         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
35979         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
35980
35981 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
35982
35983         PR target/43653
35984         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
35985         input reload with PLUS RTX.
35986
35987 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35988
35989         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
35990         of InverseVar(MDMX).
35991
35992 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35993
35994         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
35995         --m4-340.
35996
35997 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
35998
35999         * config/mn10300/mn10300.opt (mno-crt0): New.
36000
36001 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
36002
36003         * config/m68k/uclinux.opt (static-libc): New Driver option.
36004
36005 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
36006
36007         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
36008
36009 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
36010
36011         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
36012         %{muser-extend-enabled}.
36013
36014 2011-02-16  Richard Guenther  <rguenther@suse.de>
36015
36016         PR tree-optimization/47738
36017         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
36018         the TODO from tree_predictive_commoning.
36019
36020 2011-02-15  Jeff Law  <law@redhat.com>
36021
36022         Revert
36023         2011-01-25  Jeff Law  <law@redhat.com>
36024
36025         PR rtl-optimization/37273
36026         * ira-costs.c (scan_one_insn): Detect constants living in memory and
36027         handle them like argument loads from stack slots.  Do not double
36028         count memory for memory constants and argument loads from stack slots.
36029
36030 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
36031
36032         PR target/47755
36033         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
36034         mode for vector constants.  Remove code that checks for TImode.
36035
36036 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
36037
36038         PR debug/47106
36039         PR debug/47402
36040         * cgraph.h (compute_inline_parameters): Return void.
36041         * ipa-inline.c (compute_inline_parameters): Adjust.
36042
36043 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
36044
36045         PR debug/47106
36046         PR debug/47402
36047         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
36048         rather than decl.
36049         * cfgexpand.c (estimated_stack_frame_size): Likewise.
36050         * ipa-inline.c (compute_inline_parameters): Adjust.
36051
36052 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
36053
36054         PR debug/47106
36055         PR debug/47402
36056         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
36057         Adjust all users.  Pass FN to...
36058         * tree-flow-inline.h (first_referenced_var): ... this.  Add
36059         fn argument.
36060         * ipa-struct-reorg.c: Adjust.
36061         * tree-dfa.c: Adjust.
36062         * tree-into-ssa.c: Adjust.
36063         * tree-sra.c: Adjust.
36064         * tree-ssa-alias.c: Adjust.
36065         * tree-ssa-live.c: Adjust.
36066         * tree-ssa.c: Adjust.
36067         * tree-ssanames.c: Adjust.
36068         * tree-tailcall.c: Adjust.
36069
36070 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
36071
36072         PR debug/47106
36073         PR debug/47402
36074         * tree-flow.h (referenced_var_lookup): Add fn parameter.
36075         Adjust all callers.
36076         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
36077         * tree-flow-inline.h: Adjust.
36078         * gimple-pretty-print.c: Adjust.
36079         * tree-into-ssa.c: Adjust.
36080         * tree-ssa.c: Adjust.
36081         * cfgexpand.c: Adjust.
36082
36083 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
36084
36085         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
36086         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
36087         (EXTRA_CONSTRAINT): Delete.
36088         * config/iq2000/constraints.md: New file.
36089         * config/iq2000/iq2000.md: Include it.
36090         (define_insn ""): Delete.
36091         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
36092         unsupported constraint letters from patterns.
36093         (call_value, call_value_internal1): Likewise.
36094         (call_value_multiple_internal1): Likewise.
36095
36096 2011-02-15  Nick Clifton  <nickc@redhat.com>
36097
36098         * config/mn10300/mn10300.c: Include tm-constrs.h.
36099         (struct liw_data): New data structure describing an LIW candidate
36100         instruction.
36101         (extract_bundle): Use struct liw_data.  Allow small integer
36102         operands for some instructions.
36103         (check_liw_constraints): Use struct liw_data.  Remove swapped
36104         parameter.  Add comments describing the checks.  Fix bug when
36105         assigning the source of liw1 to the source of liw2.
36106         (liw_candidate): Delete.  Code moved into extract_bundle.
36107         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
36108         before swapping.
36109         * config/mn10300/predicates.md (liw_operand): New predicate.
36110         Allows registers and small integer constants.
36111         * config/mn10300/constraints.md (O): New constraint.  Accetps
36112         integers in the range -8 to +7 inclusive.
36113         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
36114         for moving a small integer into a register.  Give this alternative
36115         LIW attributes.
36116         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
36117         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
36118         using the J,K,L and M constraints,
36119         (liw): Remove SI mode on second operands to allow for HI and QI
36120         mode values.
36121         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
36122         instruction.
36123
36124 2011-02-15  Richard Guenther  <rguenther@suse.de>
36125
36126         PR tree-optimization/47743
36127         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
36128         for a non-type-compatible VN lookup bail out.
36129
36130 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
36131
36132         * config/fr30/constraints.md: New file.
36133         * config/fr30/fr30.md: Include it.
36134         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
36135         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
36136         (EXTRA_CONSTRAINT): Delete.
36137
36138 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
36139
36140         * config/frv/constraints.md: New file.
36141         * config/frv/predicates.md: Include it.
36142         * config/frv/frv.c (reg_class_from_letter): Delete.
36143         (frv_option_override): Don't initialize it.
36144         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
36145         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
36146         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
36147         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
36148         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
36149         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
36150         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
36151         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
36152         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
36153         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
36154         (REG_CLASS_FROM_CONSTRAINT): Delete.
36155
36156 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
36157
36158         PR middle-end/47581
36159         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
36160         if frame size is 0 in a leaf function.
36161
36162 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36163
36164         PR pch/14940
36165         * config/alpha/host-osf.c: New file.
36166         * config/alpha/x-osf: New file.
36167         * config.host (alpha*-dec-osf*): Use it.
36168
36169 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
36170
36171         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
36172         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
36173         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
36174         (rx_mode_dependent_address_p): ...this. Make static. Change argument
36175         type to const_rtx.
36176         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
36177
36178 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
36179
36180         * config/stormy16/constraints.md: New file.
36181         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
36182         Use satisfies_constraint_Q and satisfies_constraint_R.
36183         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
36184         Delete.
36185         (xstormy16_legitiamte_address_p): Declare.
36186         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
36187         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
36188         (EXTRA_CONSTRAINT): Delete.
36189         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
36190         Un-staticize.
36191         (xstormy16_extra_constraint_p): Delete.
36192
36193 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
36194
36195         PR tree-optimization/46494
36196         * loop-unroll.c (split_edge_and_insert): Adjust comment.
36197         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
36198         (pass_rtl_loop_done): Add TODO_verify_flow.
36199         * fwprop.c (pass_rtl_fwprop): Likewise.
36200         * modulo-sched.c (pass_sms): Likewise.
36201         * tree-ssa-dom.c (pass_dominator): Likewise.
36202         * tree-ssa-loop-ch.c (pass_ch): Likewise.
36203         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
36204         (pass_tree_loop_done): Likewise.
36205         * tree-ssa-pre.c (execute_pre): Likewise.
36206         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
36207         * tree-ssa-sink.c (pass_sink_code): Likewise.
36208         * tree-vrp.c (pass_vrp): Likewise.
36209
36210 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
36211
36212         * config/v850/constraints.md: New file.
36213         * config/v850/v850.md: Include it.
36214         * config/v850/predicates.md (reg_or_0_operand): Use
36215         satisfies_constraint_G.
36216         (special_symbolref_operand): Use satisfies_constraint_K.
36217         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
36218         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
36219         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
36220         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
36221         (EXTRA_CONSTRAINT): Delete.
36222         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
36223         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
36224         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
36225
36226 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
36227
36228         PR target/47696
36229         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
36230         description.
36231
36232 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
36233
36234         * config/mcore/constraints.md: New file.
36235         * config/mcore/mcore.md: Include it.
36236         * config/mcore/mcore.c (reg_class_from_letter): Delete.
36237         * config/mcore/mcore.h (reg_class_from_letter): Delete.
36238         (REG_CLASS_FROM_LETTER): Delete.
36239         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
36240         insn_const_int_ok_for_constraint.
36241         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
36242         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
36243         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
36244         (EXTRA_CONSTRAINT): Delete.
36245
36246 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36247
36248         PR ada/41929
36249         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
36250         (IS_SIGHANDLER): Define.
36251         (sparc64_is_sighandler): New function, split off from
36252         sparc64_fallback_frame_state.
36253         (sparc_is_sighandler): New function, split off from
36254         sparc_fallback_frame_state.
36255         (sparc64_fallback_frame_state): Merge with ...
36256         (sparc_fallback_frame_state): ... this into ...
36257         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
36258         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
36259         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
36260         stack instead of hardcoded offsets.
36261
36262 2011-02-14  Andriy Gapon  <avg@freebsd.org>
36263
36264         PR target/45808
36265         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
36266
36267 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36268
36269         * configure: Regenerate.
36270
36271 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
36272
36273         PR driver/45731
36274         * gcc.c (asm_options): Correct spec matching --target-help.
36275
36276 2011-02-12  Martin Jambor  <mjambor@suse.cz>
36277
36278         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
36279         to gimple call error.
36280
36281 2011-02-12  Mike Stump  <mikestump@comcast.net>
36282
36283         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
36284         comments in backslash regions.
36285
36286 2011-02-12  Mike Stump  <mikestump@comcast.net>
36287             Jakub Jelinek  <jakub@redhat.com>
36288             Iain Sandoe  <iains@gcc.gnu.org>
36289
36290         PR target/47324
36291         * dwarf2out.c (output_cfa_loc): When required, apply the
36292         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
36293         (output_loc_sequence): Likewise.
36294         (output_loc_operands_raw): Likewise.
36295         (output_loc_sequence_raw): Likewise.
36296         (output_cfa_loc): Likewise.
36297         (output_loc_list): Suppress register number adjustment when
36298         calling output_loc_sequence()
36299         (output_die): Likewise.
36300
36301 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
36302
36303         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
36304         Remove macros.
36305         * config/xtensa/xtensa.c (xtensa_register_move_cost,
36306         xtensa_memory_move_cost): New functions.
36307         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
36308
36309 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
36310
36311         PR lto/47225
36312         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
36313         in the current directory.
36314         * configure: Rebuilt.
36315
36316 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
36317
36318         * config/darwin.c (darwin_override_options): Add a hunk missed
36319         from the commit of r168571.  Trim comment line lengths and
36320         correct indents of the preceding block.
36321
36322 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
36323
36324         * gcc.c (driver_handle_option): Concatenate the argument to -F with
36325         the switch.
36326
36327 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
36328
36329         * common.opt (nostartfiles): New Driver option.
36330
36331 2011-02-11  Xinliang David Li  <davidxl@google.com>
36332
36333         PR tree-optimization/47707
36334         * tree-chrec.c (convert_affine_scev): Keep type precision.
36335
36336 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
36337
36338         PR tree-optimization/47420
36339         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
36340
36341 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
36342
36343         PR rtl-optimization/47614
36344         * rtl.h (check_for_inc_dec): Declare.
36345         * dse.c (check_for_inc_dec): Externalize...
36346         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
36347         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
36348
36349 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
36350
36351         PR driver/47678
36352         * gcc.c (main): Do not compile inputs if there were errors in
36353         option handling.
36354         * opts-common.c (read_cmdline_option): Check for wrong language
36355         after other error checks.
36356
36357 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
36358
36359         * cgraph.c: Fix comment typos.
36360         * cgraph.h: Likewise.
36361         * cgraphunit.c: Likewise.
36362         * ipa-cp.c: Likewise.
36363         * ipa-inline.c: Likewise.
36364         * ipa-prop.c: Likewise.
36365         * ipa-pure-const.c: Likewise.
36366         * ipa-ref.c: Likewise.
36367         * ipa-reference.c: Likewise.
36368
36369 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
36370
36371         PR debug/47684
36372         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
36373
36374 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36375
36376         PR testsuite/47400
36377         * doc/sourcebuild.texi (Require Support): Document
36378         dg-require-ascii-locale.
36379
36380 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
36381
36382         * doc/lto.texi (Write summary): Fix missing parentheses.
36383
36384 2011-02-10  DJ Delorie  <dj@redhat.com>
36385
36386         * config/m32c/m32c.c (m32c_option_override): Disable
36387         -fcombine-stack-adjustments until flag value tracking and compare
36388         optimization can be rewritten.
36389
36390 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
36391
36392         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
36393         PROCESSOR_POWER7.
36394         (PROCESSOR_DEFAULT64): Likewise.
36395
36396 2011-02-10  Richard Henderson  <rth@redhat.com>
36397
36398         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
36399         change from 2011-02-03.
36400         * config/rx/rx.c (flags_from_code): Likewise.
36401         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
36402         is valid, n/pz otherwise.
36403         (rx_select_cc_mode): Return CCmode if Y is not zero.
36404
36405 2011-02-10  Richard Guenther  <rguenther@suse.de>
36406
36407         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
36408
36409 2011-02-10  Richard Guenther  <rguenther@suse.de>
36410
36411         PR tree-optimization/47677
36412         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
36413
36414 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
36415
36416         PR target/47665
36417         * combine.c (make_compound_operation): Only change shifts into
36418         multiplication for SCALAR_INT_MODE_P.
36419
36420 2011-02-10  Jie Zhang  <jie@codesourcery.com>
36421
36422         PR testsuite/47622
36423         Revert
36424         2011-02-05  Jie Zhang  <jie@codesourcery.com>
36425         PR debug/42631
36426         * web.c (entry_register): Don't clobber the number of the
36427         first uninitialized reference in used[].
36428
36429 2011-02-09  Richard Guenther  <rguenther@suse.de>
36430
36431         PR tree-optimization/47664
36432         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
36433         all edges again.
36434
36435 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
36436
36437         PR target/46481
36438         PR target/47032
36439         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
36440         PROCESSOR_POWER7.
36441         (PROCESSOR_DEFAULT64): Same.
36442         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
36443
36444 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36445
36446         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
36447
36448 2011-02-09  Martin Jambor  <mjambor@suse.cz>
36449
36450         PR middle-end/45505
36451         * tree-sra.c (struct access): New flags grp_scalar_read and
36452         grp_scalar_write.  Changed description of assignment read and write
36453         flags.
36454         (dump_access): Dump new flags, reorder all of them.
36455         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
36456         to detect multiple scalar reads.
36457         (analyze_access_subtree): Use the new scalar read write flags instead
36458         of the old flags.  Adjusted comments.
36459
36460 2011-02-08  DJ Delorie  <dj@redhat.com>
36461
36462         PR target/47548
36463         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
36464         patterns.
36465
36466 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
36467
36468         * config/m68k/uclinux.opt: New.
36469         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
36470
36471 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
36472
36473         * config/cris/elf.opt (sim): New Driver option.
36474
36475 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
36476
36477         * config/xtensa/elf.opt: New.
36478         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
36479
36480 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
36481
36482         * config/vax/elf.opt: New.
36483         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
36484
36485 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
36486
36487         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
36488
36489 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
36490
36491         * config/gnu-user.opt: New.
36492         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
36493         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
36494         *-*-uclinux*): Use gnu-user.opt.
36495
36496 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
36497
36498         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
36499         * config/i386/gnu.h (CPP_SPEC): Likewise.
36500
36501 2011-02-08  Ian Lance Taylor  <iant@google.com>
36502
36503         * common.opt (fcx-limited-range): Add SetByCombined flag.
36504         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
36505         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
36506         (fassociative-math, freciprocal-math): Likewise.
36507         (funsafe-math-optimizations): Likewise.
36508         * opth-gen.awk: Handle SetByCombined.
36509         * optc-gen.awk: Likewise.
36510         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
36511         (set_unsafe_math_optimizations_flags): Likewise.
36512         * doc/options.texi (Option properties): Document SetByCombined.
36513
36514 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
36515
36516         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
36517         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
36518         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
36519         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
36520         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
36521
36522 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
36523
36524         PR tree-optimization/46834
36525         PR tree-optimization/46994
36526         PR tree-optimization/46995
36527         * graphite-sese-to-poly.c (used_outside_reduction): New.
36528         (detect_commutative_reduction): Call used_outside_reduction.
36529         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
36530         translate_scalar_reduction_to_array only when at least one
36531         loop-phi/close-phi tuple has been detected.
36532
36533 2011-02-08  Richard Guenther  <rguenther@suse.de>
36534
36535         PR middle-end/47639
36536         * tree-vect-generic.c (expand_vector_operations_1): Update
36537         stmts here ...
36538         (expand_vector_operations): ... not here.  Cleanup EH info
36539         and the CFG if required.
36540
36541 2011-02-08  Richard Guenther  <rguenther@suse.de>
36542
36543         PR tree-optimization/47641
36544         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
36545         require type compatibility.
36546
36547 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36548
36549         * gimple-low.c (lower_function_body): Don't remove the location of
36550         the return statement here.
36551         (lower_gimple_return): Do it here instead but only if the return
36552         statement is actually used twice.
36553
36554 2011-02-08  Richard Guenther  <rguenther@suse.de>
36555
36556         PR tree-optimization/47632
36557         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
36558         unused up_to_stmt parameter, return whether cfg-cleanup is
36559         necessary, remove EH info properly.
36560         (forward_propagate_into_gimple_cond): Adjust caller.
36561         (forward_propagate_into_cond): Likewise.
36562         (forward_propagate_comparison): Likewise.
36563         (tree_ssa_forward_propagate_single_use_vars): Make
36564         forward_propagate_comparison case similar to the two others.
36565
36566 2011-02-08  Nick Clifton  <nickc@redhat.com>
36567
36568         * config/mn10300/mn10300.opt (mliw): New command line option.
36569         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
36570         (liw_bundling): New automaton.
36571         (liw): New attribute.
36572         (liw_op): New attribute.
36573         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
36574         (movsi_internal): Add LIW attributes.
36575         (andsi3): Likewise.
36576         (iorsi3): Likewise.
36577         (xorsi3): Likewise.
36578         (addsi3): Separate register and immediate alternatives.
36579         Add LIW attributes.
36580         (subsi3): Likewise.
36581         (cmpsi): Likewise.
36582         (aslsi3): Likewise.
36583         (lshrsi3): Likewise.
36584         (ashrsi3): Likewise.
36585         (liw): New pattern.
36586         * config/mn10300/mn10300.c (liw_op_names): New
36587         (mn10300_print_operand): Handle 'W' operand descriptor.
36588         (extract_bundle): New function.
36589         (check_liw_constraints): New function.
36590         (liw_candidate): New function.
36591         (mn10300_bundle_liw): New function.
36592         (mn10300_reorg): New function.
36593         (TARGET_MACHINE_DEPENDENT_REORG): Define.
36594         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
36595         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
36596         __LIW__ or __NO_LIW__.
36597         * doc/invoke.texi: Describe the -mliw command line option.
36598
36599 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36600
36601         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
36602         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
36603         pthread_mutex_unlock): Remove.
36604         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
36605         * config/pa/t-pa64: Likewise.
36606         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
36607         shared libc if not linking against libpthread.
36608         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
36609
36610 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
36611
36612         PR target/47558
36613         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
36614         on 10.6 and later to ensure that we always use the unwinder from
36615         the system.  Only add -no_compact_unwind when tarteting darwin
36616         10.6 or later.
36617
36618 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
36619
36620         PR target/46997
36621         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
36622         (vec_interleave_lowv2sf): Ditto.
36623         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
36624         (vec_extract_oddv2sf): Ditto.
36625
36626 2011-02-07  Mike Stump  <mikestump@comcast.net>
36627
36628         PR target/42333
36629         Add __ieee_divdc3 entry point.
36630         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
36631         entry point.
36632         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
36633         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
36634         * config/darwin.c (darwin_rename_builtins): Add.
36635         * config/darwin-protos.h (darwin_rename_builtins): Add.
36636
36637 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
36638
36639         PR target/47636
36640         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
36641         for the condition.
36642
36643 2011-02-07  Mike Stump  <mikestump@comcast.net>
36644
36645         * config/darwin.opt (mmacosx-version-min): Update default OS version.
36646
36647 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
36648
36649         PR target/47534
36650         * config/avr/libgcc.S (exit): Move .endfunc
36651
36652 2011-02-07  Richard Guenther  <rguenther@suse.de>
36653
36654         PR tree-optimization/47615
36655         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
36656         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
36657         (run_scc_vn): Initialize it.
36658         (visit_reference_op_load): Use it.
36659         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
36660
36661 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36662
36663         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
36664         DImode trapping arithmetic libfuncs.
36665
36666 2011-02-07  Richard Guenther  <rguenther@suse.de>
36667
36668         PR tree-optimization/47621
36669         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
36670         two duplicates ...
36671         (execute_update_addresses_taken): ... here.  Make it more
36672         conservative in what we accept.
36673
36674 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
36675
36676         * config/sparc/freebsd.h (ASM_SPEC): Define.
36677         * config/sparc/vxworks.h (ASM_SPEC): Define.
36678
36679 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
36680
36681         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
36682
36683 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
36684
36685         * doc/invoke.texi: Remove reference to compiler internals from
36686         user documentation.
36687
36688         * reg-notes.def: Remove REG_VALUE_PROFILE.
36689         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
36690
36691 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
36692
36693         PR middle-end/47610
36694         * varasm.c (default_section_type_flags): If decl is NULL,
36695         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
36696
36697 2011-02-05  Jie Zhang  <jie@codesourcery.com>
36698
36699         PR debug/42631
36700         * web.c (entry_register): Don't clobber the number of the
36701         first uninitialized reference in used[].
36702
36703 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
36704
36705         PR tree-optimization/46194
36706         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
36707         (build_classic_dist_vector_1): Do not represent classic distance
36708         vectors when the access functions are variating in different loops.
36709
36710 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
36711
36712         * config/mips/iris6.opt: New.
36713         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
36714
36715 2011-02-04  Richard Henderson  <rth@redhat.com>
36716             Steve Ellcey  <sje@cup.hp.com>
36717
36718         PR target/46997
36719         * config/ia64/predicates.md (mux1_brcst_element): New.
36720         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
36721         * config/ia64/ia64.c (ia64_unpack_assemble): New.
36722         (ia64_unpack_sign): New.
36723         (ia64_expand_unpack): Rewrite using new routines.
36724         (ia64_expand_widen_sum): Ditto.
36725         (ia64_expand_dot_prod_v8qi): Ditto.
36726         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
36727         routines, add endian check.
36728         (pmpy2_even): Rename from pmpy2_r, add endian check.
36729         (pmpy2_odd): Rename from pmpy2_l, add endian check.
36730         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
36731         (vec_widen_smult_hi_v4hi): Ditto.
36732         (vec_widen_umult_lo_v4hi): Ditto.
36733         (vec_widen_umult_hi_v4hi): Ditto.
36734         (mulv2si3): Change endian checks.
36735         (sdot_prodv4hi): Rewrite with new calls.
36736         (udot_prodv4hi): New.
36737         (vec_pack_ssat_v4hi): Add endian check.
36738         (vec_pack_usat_v4hi): Ditto.
36739         (vec_pack_ssat_v2si): Ditto.
36740         (max1_even): Rename from max1_r, add endian check.
36741         (max1_odd): Rename from max1_l, add endian check.
36742         (*mux1_rev): Format change.
36743         (*mux1_mix): Ditto.
36744         (*mux1_shuf): Ditto.
36745         (*mux1_alt): Ditto.
36746         (*mux1_brcst_v8qi): Use new predicate.
36747         (vec_extract_evenv8qi): Remove endian check.
36748         (vec_extract_oddv8qi): Ditto.
36749         (vec_interleave_lowv4hi): Format change.
36750         (vec_interleave_highv4hi): Ditto.
36751         (mix2_even): Rename from mix2_r, add endian check.
36752         (mix2_odd): Rename from mux2_l, add endian check.
36753         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
36754         (vec_extract_evenodd_helper): Format change.
36755         (vec_extract_evenv4hi): Remove endian check.
36756         (vec_extract_oddv4hi): Remove endian check.
36757         (vec_interleave_lowv2si): Format change.
36758         (vec_interleave_highv2si): Format change.
36759         (vec_initv2si): Remove endian check.
36760         (vecinit_v2si): Add endian check.
36761         (reduc_splus_v2sf): Add endian check.
36762         (reduc_smax_v2sf): Ditto.
36763         (reduc_smin_v2sf): Ditto.
36764         (vec_initv2sf): Remove endian check.
36765         (fpack): Add endian check.
36766         (fswap): Add endian check.
36767         (vec_interleave_highv2sf): Add endian check.
36768         (vec_interleave_lowv2sf): Add endian check.
36769         (fmix_lr): Add endian check.
36770         (vec_setv2sf): Format change.
36771         (*vec_extractv2sf_0_be): Use shift to extract operand.
36772         (*vec_extractv2sf_1_be): New.
36773         (vec_pack_trunc_v4hi): Add endian check.
36774         (vec_pack_trunc_v2si): Format change.
36775
36776 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
36777
36778         PR inline-asm/23200
36779         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
36780         do bb, locus and block comparison and disallow loads if it is not set.
36781         (stmt_is_replaceable_p): New function.
36782         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
36783         callers.
36784         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
36785         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
36786         SSA_NAME_DEF_STMT.
36787         * tree-flow.h (stmt_is_replaceable_p): New prototype.
36788
36789 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
36790
36791         * config/rs6000/xilinx.opt: New.
36792         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
36793
36794 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
36795
36796         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
36797
36798 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
36799
36800         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
36801         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
36802         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
36803         secondary_reload_info, xtensa_secondary_reload): Remove.
36804         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
36805         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
36806         (xtensa_preferred_reload_class): Make static. Change return and
36807         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
36808         Use CONST_DOUBLE_P predicate.
36809         (xtensa_preferred_output_reload_class): New function.
36810         (xtensa_secondary_reload): Make static.
36811
36812 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
36813
36814         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
36815         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
36816         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
36817
36818 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
36819
36820         PR middle-end/31490
36821         * output.h (SECTION_RELRO): Define.
36822         (SECTION_MACH_DEP): Adjust.
36823         (get_variable_section): New prototype.
36824         * varpool.c (varpool_finalize_named_section_flags): New function.
36825         (varpool_assemble_pending_decls): Call it.
36826         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
36827         * cgraphunit.c (cgraph_output_in_order): Call
36828         varpool_finalize_named_section_flags.
36829         * varasm.c (get_section): Allow section flags conflicts between
36830         relro and read-only sections if the section hasn't been declared yet.
36831         Set SECTION_OVERRIDE after diagnosing section type conflict.
36832         (get_variable_section): No longer static.
36833         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
36834         readonly sections that need relocations.
36835         (decl_readonly_section_1): New function.
36836         (decl_readonly_section): Use it.
36837
36838         Revert:
36839         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
36840                     Steve Ellcey  <sje@cup.hp.com>
36841
36842         PR middle-end/31490
36843         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
36844         if section attribute used.
36845
36846 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
36847
36848         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
36849         * config/darwin.c (SECTION_NO_ANCHOR): Define.
36850         (darwin_init_sections): Remove assertion.
36851
36852 2011-02-03  Nick Clifton  <nickc@redhat.com>
36853
36854         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
36855         lt and ge.
36856         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
36857         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
36858         instead of "n" and "pz".
36859         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
36860         CC_FLAG_S.
36861
36862 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
36863
36864         PR target/47312
36865         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
36866         fma, expand FMA_EXPR as fma{,f,l} call.
36867
36868         PR lto/47274
36869         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
36870         copy them into a unsigned char variable and pass address of it to
36871         lto_output_data_stream.
36872
36873         PR target/47564
36874         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
36875         around backend_init_target and lang_dependent_init_target calls.
36876         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
36877         (verify_cgraph_node): Don't call set_cfun here.  Use
36878         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
36879         Set error_found for incorrectly represented calls to thunks.
36880
36881 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
36882
36883         PR debug/43092
36884         PR rtl-optimization/43494
36885         * rtl.h (for_each_inc_dec_fn): New type.
36886         (for_each_inc_dec): Declare.
36887         * rtlanal.c (struct for_each_inc_dec_ops): New type.
36888         (for_each_inc_dec_find_inc_dec): New fn.
36889         (for_each_inc_dec_find_mem): New fn.
36890         (for_each_inc_dec): New fn.
36891         * dse.c (struct insn_size): Remove.
36892         (replace_inc_dec, replace_inc_dec_mem): Remove.
36893         (emit_inc_dec_insn_before): New fn.
36894         (check_for_inc_dec): Use it, along with for_each_inc_dec.
36895         (canon_address): Pass mem modes to cselib_lookup.
36896         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
36897         (cselib_lookup_from_insn): Likewise.
36898         (cselib_subst_to_values): Likewise.
36899         * cselib.c (find_slot_memmode): New var.
36900         (cselib_find_slot): New fn.  Use it instead of
36901         htab_find_slot_with_hash everywhere.
36902         (entry_and_rtx_equal_p): Use find_slot_memmode.
36903         (autoinc_split): New fn.
36904         (rtx_equal_for_cselib_p): Rename and implement in terms of...
36905         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
36906         Deal with autoinc.  Special-case recursion into MEMs.
36907         (cselib_hash_rtx): Likewise.
36908         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
36909         address and MEM modes.
36910         (cselib_subst_to_values): Add memmode, pass it on.
36911         Deal with autoinc.
36912         (cselib_lookup): Add memmode argument, pass it on.
36913         (cselib_lookup_from_insn): Add memmode.
36914         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
36915         (struct cselib_record_autoinc_data): New.
36916         (cselib_record_autoinc_cb): New fn.
36917         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
36918         mode to cselib_lookup.  Reset autoinced REGs here instead of...
36919         (cselib_process_insn): ... here.
36920         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
36921         to cselib_lookup.
36922         (add_uses): Likewise, also to cselib_subst_to_values.
36923         (add_stores): Likewise.
36924         * sched-deps.c (add_insn_mem_dependence): Pass mode to
36925         cselib_subst_to_values.
36926         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
36927         * gcse.c (do_local_cprop): Adjusted.
36928         * postreload.c (reload_cse_simplify_set): Adjusted.
36929         (reload_cse_simplify_operands): Adjusted.
36930         * sel-sched-dump (debug_mem_addr_value): Pass mode.
36931
36932 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
36933
36934         PR tree-optimization/45122
36935         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
36936         unsafe assumptions when there's more than one loop exit.
36937
36938 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
36939
36940         PR target/47272
36941         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
36942         Document using vector double with the load/store builtins, and
36943         that the load/store builtins always use Altivec instructions.
36944
36945         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
36946         to use altivec memory instructions, even on VSX.
36947         (vector_altivec_store_<mode>): Ditto.
36948
36949         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
36950         function.
36951
36952         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36953         V2DF, V2DI support to load/store overloaded builtins.
36954
36955         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
36956         altivec load/store builtins for V2DF/V2DI types.
36957
36958         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
36959         set avoid indexed addresses on power6 if -maltivec.
36960         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
36961         vector_altivec_load/vector_altivec_store builtins.
36962         (altivec_expand_st_builtin): Ditto.
36963         (altivec_expand_builtin): Add VSX memory builtins.
36964         (rs6000_init_builtins): Add V2DI types to internal types.
36965         (altivec_init_builtins): Add support for V2DF/V2DI altivec
36966         load/store builtins.
36967         (rs6000_address_for_altivec): Insure memory address is appropriate
36968         for Altivec.
36969
36970         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
36971         vec_vsx_ld and vec_vsx_st.
36972         (vsx_store_<mode>): Ditto.
36973
36974         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
36975         variables to hold long long types for VSX vector memory builtins.
36976         (RS6000_BTI_unsigned_long_long): Ditto.
36977         (long_long_integer_type_internal_node): Ditti.
36978         (long_long_unsigned_type_internal_node): Ditti.
36979
36980         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
36981         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
36982         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
36983
36984         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
36985         short cuts.
36986         (vec_vsx_st): Ditto.
36987
36988 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
36989
36990         * config/pa/pa-hpux10.opt: New.
36991         * config/hpux11.opt (pthread): New Driver option.
36992         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
36993         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
36994
36995 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
36996
36997         * config/ia64/vms.opt: New.
36998         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
36999
37000 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
37001
37002         PR target/47580
37003         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
37004         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
37005         generator functions.
37006         (vsx_floatuns<VSi><mode>2): Ditto.
37007         (vsx_fix_trunc<mode><VSi>2): Ditto.
37008         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
37009
37010 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
37011
37012         * config/i386/djgpp.opt (posix): New Driver option.
37013
37014 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
37015
37016         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
37017         Move to the unsupported targets list.
37018
37019 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
37020
37021         PR rtl-optimization/47525
37022         * df-scan.c: Update copyright years.
37023         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
37024         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
37025
37026 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37027
37028         * config/i386/sysv4.h (TARGET_VERSION): Remove.
37029         (SUBTARGET_RETURN_IN_MEMORY): Remove.
37030         (ASM_OUTPUT_ASCII): Remove.
37031         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
37032
37033 2011-02-02  Jeff Law  <law@redhat.com>
37034
37035         PR middle-end/47543
37036         * reload.c (find_reloads_address): Handle reg+d address where both
37037         components are invalid by reloading the entire address.
37038
37039 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
37040             Richard Guenther  <rguenther@suse.de>
37041
37042         PR tree-optimization/40979
37043         PR bootstrap/47044
37044         * passes.c (init_optimization_passes): After LIM call copy_prop
37045         and DCE to clean up.
37046         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
37047
37048 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
37049
37050         PR tree-optimization/47576
37051         PR tree-optimization/47555
37052         * doc/invoke.texi (scev-max-expr-complexity): Documented.
37053         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
37054         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
37055         * tree-scalar-evolution.c (follow_ssa_edge): Use
37056         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
37057
37058 2011-02-02  Richard Guenther  <rguenther@suse.de>
37059
37060         PR tree-optimization/47566
37061         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
37062
37063 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
37064
37065         PR debug/47106
37066         PR debug/47402
37067         * tree-inline.c (declare_return_variable): Remove unused caller
37068         variable.
37069
37070         PR debug/47106
37071         PR debug/47402
37072         * tree-flow-inline.h (clear_is_used, is_used_p): New.
37073         * cfgexpand.c (account_used_vars_for_block): Use them.
37074         * tree-nrv.c (tree_nrv): Likewise.
37075         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
37076         (dump_scope_block): Likewise.
37077         (remove_unused_locals): Likewise.
37078
37079         PR debug/47106
37080         PR debug/47402
37081         * tree-inline.c (declare_return_variable): Add result decl to
37082         local decls only once.
37083         * gimple-low.c (record_vars_into): Mark newly-created variables
37084         as referenced.
37085
37086 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
37087
37088         PR debug/47498
37089         PR debug/47501
37090         PR debug/45136
37091         PR debug/45130
37092         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
37093         debug insns.
37094         (no_real_insns_p, schedule_block, set_priorities): Drop special
37095         treatment of boundary debug insns.
37096         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
37097         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
37098         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
37099         (BOUNDARY_DEBUG_INSN_P): Likewise.
37100         (SCHEDULE_DEBUG_INSN_P): Likewise.
37101         * sched-rgn.c (init_ready_list): Drop special treatment of
37102         boundary debug insns.
37103         * final.c (rest_of_clean_state): Clear notes' BB.
37104
37105 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
37106
37107         * config/openbsd.opt (assert=): New Driver option.
37108
37109 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
37110
37111         * config/i386/nto.opt: New.
37112         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
37113
37114 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
37115
37116         * config/i386/netware.opt: New.
37117         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
37118
37119 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
37120
37121         * config/interix.opt (posix): New Driver option.
37122
37123 2011-02-01  DJ Delorie  <dj@redhat.com>
37124
37125         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
37126
37127         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
37128         class for A0/A1.
37129
37130 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
37131
37132         PR tree-optimization/47561
37133         * toplev.c (process_options): Print the Graphite flags.  Add
37134         flag_loop_flatten to the list of options requiring Graphite.
37135
37136 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
37137
37138         * config/i386/cygming.opt (posix): New Driver option.
37139
37140 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
37141
37142         * config/arm/vxworks.opt: New.
37143         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
37144
37145 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
37146
37147         * config/alpha/elf.opt: New.
37148         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
37149         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
37150
37151 2011-02-01  Richard Guenther  <rguenther@suse.de>
37152
37153         PR tree-optimization/47559
37154         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
37155         store-motion on references that can throw.
37156
37157 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
37158
37159         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
37160         * tree-pass.h (TDF_CSELIB): New macro.
37161         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
37162         cselib_lookup): Check for it rather than for TDF_DETAILS.
37163
37164 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
37165
37166         PR driver/47547
37167         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
37168         is HOST_BIT_BUCKET.
37169
37170         * opts.c (finish_options): Don't add x_aux_base_name if it is
37171         HOST_BIT_BUCKET.
37172
37173 2011-02-01  Richard Guenther  <rguenther@suse.de>
37174
37175         PR tree-optimization/47555
37176         Revert
37177         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
37178
37179         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
37180
37181 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
37182
37183         PR gcc/46692
37184         * config/lm32/t-lm32: Add multilib for all CPU options.
37185
37186 2011-02-01  Richard Guenther  <rguenther@suse.de>
37187
37188         PR tree-optimization/47541
37189         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
37190         sure to have a field at offset zero.
37191
37192 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
37193
37194         * config/arc/arc.opt (EB, EL): New Driver options.
37195
37196 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
37197
37198         * config/alpha/osf5.opt: New.
37199         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
37200
37201 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
37202
37203         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
37204
37205 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
37206
37207         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
37208         -floop-interchange.
37209         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
37210         is an alias of -floop-interchange and that it requires the
37211         Graphite infrastructure.
37212         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
37213         flag_loop_interchange based on the value of flag_tree_loop_linear.
37214
37215 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
37216             Richard Guenther  <rguenther@suse.de>
37217
37218         PR tree-optimization/47538
37219         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
37220         type instead of r1type, except for comparisons.  For right
37221         shifts and comparisons punt if there are mismatches in
37222         sizetype vs. non-sizetype types.
37223
37224 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37225
37226         * doc/sourcebuild.texi (Effective-Target Keywords): Document
37227         avx_runtime.
37228
37229 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37230
37231         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
37232         version number.
37233         * configure: Regenerate.
37234
37235 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37236
37237         * configure.ac (gcc_cv_ld_static_option): Define.
37238         (gcc_cv_ld_dynamic_option): Define.
37239         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
37240         instead.
37241         (HAVE_LD_STATIC_DYNAMIC): Update message.
37242         (LD_STATIC_OPTION): Define.
37243         (LD_DYNAMIC_OPTION): Define.
37244         * configure: Regenerate.
37245         * config.in: Regenerate.
37246         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
37247         HAVE_LD_STATIC_DYNAMIC]: Use them.
37248
37249 2011-01-31  Nick Clifton  <nickc@redhat.com>
37250
37251         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
37252         registers inside interrupt handlers if the handler is not a leaf
37253         function.
37254
37255 2011-01-31  Nick Clifton  <nickc@redhat.com>
37256
37257         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
37258         reg_renumber returning an INVALID_REGNUM.
37259
37260 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
37261
37262         PR libgcj/44341
37263         * doc/install.texi: Document host options discarded when cross
37264         configuring target libraries.
37265
37266 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
37267
37268         Reverted:
37269         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
37270         PR debug/45136
37271         PR debug/45130
37272         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
37273         debug insns.
37274         (no_real_insns_p, schedule_block, set_priorities): Drop special
37275         treatment of boundary debug insns.
37276         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
37277         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
37278         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
37279         (BOUNDARY_DEBUG_INSN_P): Likewise.
37280         (SCHEDULE_DEBUG_INSN_P): Likewise.
37281         * sched-rgn.c (init_ready_list): Drop special treatment of
37282         boundary debug insns.
37283         * final.c (rest_of_clean-state): Clear notes' BB.
37284
37285 2011-01-31  Alan Modra  <amodra@gmail.com>
37286
37287         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
37288         toc relative expressions as we do in print_operand_address.
37289
37290 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
37291
37292         * doc/extend.texi: Follow spelling conventions.
37293         * doc/invoke.texi: Fix a typo.
37294
37295 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
37296
37297         * config/hpux11.opt: New.
37298         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
37299         ia64*-*-hpux*): Use hpux11.opt.
37300
37301 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
37302
37303         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
37304         to tmake_file.
37305
37306 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
37307
37308         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
37309         support sites.
37310
37311 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
37312
37313         * doc/install.texi (Binaries): Remove outdated reference for
37314         Motorola 68HC11/68HC12 downloads.
37315
37316 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
37317
37318         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
37319         Drepper's paper.
37320
37321 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
37322
37323         PR bootstrap/47147
37324         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
37325         used by NetBSD.
37326
37327 2011-01-28  Ahmad Sharif  <asharif@google.com>
37328
37329         * value-prof.c (check_counter): Corrected error message.
37330
37331 2011-01-29  Jie Zhang  <jie@codesourcery.com>
37332
37333         * config/arm/arm.c (arm_legitimize_reload_address): New.
37334         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
37335         arm_legitimize_reload_address.
37336         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
37337
37338 2011-01-28  Ian Lance Taylor  <iant@google.com>
37339
37340         * godump.c (go_define): Ignore macros whose definitions include
37341         two adjacent operands.
37342
37343 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
37344
37345         PR target/42894
37346         * varasm.c (force_const_mem): Store copy of x in desc->constant
37347         instead of x itself.
37348         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
37349         itself into REG_EQUAL note.
37350
37351 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
37352
37353         * config/freebsd.opt (posix, rdynamic): New Driver options.
37354
37355 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37356
37357         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
37358         -Bstatic/-Bdynamic.
37359         * configure: Regenerate.
37360
37361 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
37362
37363         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
37364         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
37365
37366 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
37367
37368         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
37369         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
37370         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
37371         (s390_preferred_reload_class): Make static. Change return and
37372         'rclass' argument type to reg_class_t.
37373
37374 2011-01-27  Jan Hubicka  <jh@suse.cz>
37375
37376         PR middle-end/46949
37377         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
37378         (process_function_and_variable_attributes): Check defined weakrefs.
37379
37380 2011-01-27  Martin Jambor  <mjambor@suse.cz>
37381
37382         PR tree-optimization/47228
37383         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
37384         build_ref_for_offset.
37385
37386 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37387
37388         * config/spu/spu-elf.h (ASM_SPEC): Remove.
37389
37390 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
37391
37392         PR rtl-optimization/46856
37393         * postreload.c (reload_combine_recognize_const_pattern): Do not
37394         separate cc0 setter and user on cc0 targets.
37395
37396 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
37397
37398         PR c/43082
37399         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
37400         passed a VOID_TYPE expression, immediately emit an error and
37401         return error_mark_node.
37402
37403 2011-01-26  Jeff Law  <law@redhat.com>
37404
37405         PR rtl-optimization/47464
37406         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
37407         rather than may_trap_p as needed.
37408
37409 2011-01-26  DJ Delorie  <dj@redhat.com>
37410
37411         PR rtl-optimization/46878
37412         * combine.c (insn_a_feeds_b): Check for the implicit cc0
37413         setter/user dependency as well.
37414
37415 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
37416
37417         PR rtl-optimization/44469
37418         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
37419         after removing trivially dead basic blocks.
37420
37421 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
37422
37423         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
37424         * config/frv/frv.h (LINK_SPEC): Likewise.
37425         * config/i386/netware.h (LINK_SPEC): Likewise.
37426         * config/m68k/linux.h (ASM_SPEC): Likewise.
37427         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
37428         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
37429         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
37430         * config/sparc/linux.h (ASM_SPEC): Likewise.
37431         * config/sparc/linux64.h (ASM_SPEC): Likewise.
37432         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
37433
37434 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
37435
37436         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
37437         * config/frv/frv.h (ASM_SPEC): Likewise.
37438         * config/m68k/linux.h (ASM_SPEC): Likewise.
37439         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
37440         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
37441         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
37442         * config/sparc/linux.h (ASM_SPEC): Likewise.
37443         * config/sparc/linux64.h (ASM_SPEC): Likewise.
37444         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
37445
37446 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
37447
37448         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
37449         * config/frv/frv.h (LINK_SPEC): Likewise.
37450         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
37451
37452 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
37453
37454         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
37455         * config/frv/frv.h (ASM_SPEC): Likewise.
37456         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
37457         * config/m68k/linux.h (ASM_SPEC): Likewise.
37458         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
37459         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
37460         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
37461         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
37462         * config/sparc/linux.h (ASM_SPEC): Likewise.
37463         * config/sparc/linux64.h (ASM_SPEC): Likewise.
37464         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
37465         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
37466
37467 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
37468
37469         PR target/46997
37470         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
37471         (*mux2): Ditto.
37472         (vec_extract_evenodd_help): Ditto.
37473         (vec_extract_evenv4hi): Ditto.
37474         (vec_extract_oddv4hi): Ditto.
37475         (vec_interleave_lowv2si): Ditto.
37476         (vec_interleave_highv2si): Ditto.
37477         (vec_extract_evenv2si): Ditto.
37478         (vec_extract_oddv2si: Ditto.
37479         (vec_pack_trunc_v2si): Ditto.
37480
37481 2011-01-22  Jan Hubicka  <jh@suse.cz>
37482
37483         PR target/47237
37484         * cgraph.h (cgraph_local_info): New field can_change_signature.
37485         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
37486         signature can change.
37487         (ipcp_estimate_growth): Call sequence simplify only if calle signature
37488         can change.
37489         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
37490         (cgraph_function_versioning): We can not change signature of functions
37491         that don't allow that.
37492         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
37493         (lto_input_node): Likewise.
37494         * ipa-inline.c (compute_inline_parameters): Compute
37495         local.can_change_signature.
37496         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
37497         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
37498         functions that can not change signature.
37499         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
37500         init_cumulative_args): Do not use local calling conventions
37501         for functions that can not change signature.
37502
37503 2011-01-22  Jan Hubicka  <jh@suse.cz>
37504
37505         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
37506
37507 2011-01-26  Richard Guenther  <rguenther@suse.de>
37508
37509         PR tree-optimization/47190
37510         * cgraphunit.c (process_common_attributes): New function.
37511         (process_function_and_variable_attributes): Use it.
37512
37513 2011-01-26  Richard Guenther  <rguenther@suse.de>
37514
37515         PR lto/47423
37516         * cgraphbuild.c (record_eh_tables): Record reference to personality
37517         function.
37518
37519 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
37520
37521         PR debug/45454
37522         * sel-sched.c (moveup_expr): Don't let debug insns prevent
37523         non-debug insns from moving up.
37524
37525 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
37526
37527         PR target/40125
37528         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
37529         t-dlldir{,-x} fragment for build and add it to tmake_file.
37530         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
37531         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
37532         * config/i386/t-dlldir: New file.
37533         (SHLIB_DLLDIR): Define.
37534         * config/i386/t-dlldir-x: New file.
37535         (SHLIB_DLLDIR): Define.
37536         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
37537         (SHLIB_INSTALL): Use it.
37538
37539 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
37540
37541         PR target/47246
37542         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
37543         lower bound of the allowed Thumb-2 coprocessor load/store
37544         index range to -256. Add explaining comment.
37545
37546 2011-01-25  Ian Lance Taylor  <iant@google.com>
37547
37548         * godump.c (go_define): Improve lexing of macro expansion to only
37549         accept expressions which match Go spec.
37550
37551 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
37552
37553         PR c++/43601
37554         * tree.c (handle_dll_attribute): Handle it.
37555         * doc/extend.texi (@item dllexport): Mention it.
37556         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
37557
37558 2011-01-25  Ian Lance Taylor  <iant@google.com>
37559
37560         PR tree-optimization/26854
37561         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
37562         (decl_jump_unsafe): Move higher in file, with no other change.
37563         (bind): Set has_jump_unsafe_decl if appropriate.
37564         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
37565         (check_earlier_gotos): Likewise.
37566         (c_check_switch_jump_warnings): Likewise.
37567
37568 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
37569
37570         * doc/invoke.texi (Warning Options): Add missing hyphen.
37571         (-fprofile-dir): Minor grammatical fixes.
37572         (-fbranch-probabilities): Likewise.
37573
37574 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
37575
37576         PR debug/45136
37577         PR debug/45130
37578         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
37579         debug insns.
37580         (no_real_insns_p, schedule_block, set_priorities): Drop special
37581         treatment of boundary debug insns.
37582         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
37583         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
37584         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
37585         (BOUNDARY_DEBUG_INSN_P): Likewise.
37586         (SCHEDULE_DEBUG_INSN_P): Likewise.
37587         * sched-rgn.c (init_ready_list): Drop special treatment of
37588         boundary debug insns.
37589         * final.c (rest_of_clean-state): Clear notes' BB.
37590
37591 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37592
37593         * Makefile.in (LAMBDA_H): Removed.
37594         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
37595         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
37596         lambda-trans.o, and tree-loop-linear.o.
37597         (lto-symtab.o): Remove dependence on LAMBDA_H.
37598         (tree-loop-linear.o): Remove rule.
37599         (lambda-mat.o): Same.
37600         (lambda-trans.o): Same.
37601         (lambda-code.o): Same.
37602         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
37603         (tree-vect-slp.o): Same.
37604         * hwint.h (gcd): Moved here.
37605         (least_common_multiple): Same.
37606         * lambda-code.c: Removed.
37607         * lambda-mat.c: Removed.
37608         * lambda-trans.c: Removed.
37609         * lambda.h: Removed.
37610         * tree-loop-linear.c: Removed.
37611         * lto-symtab.c: Do not include lambda.h.
37612         * omega.c (gcd): Removed.
37613         * passes.c (init_optimization_passes): Remove pass_linear_transform.
37614         * tree-data-ref.c (print_lambda_vector): Moved here.
37615         (lambda_vector_copy): Same.
37616         (lambda_matrix_copy): Same.
37617         (lambda_matrix_id): Same.
37618         (lambda_vector_first_nz): Same.
37619         (lambda_matrix_row_add): Same.
37620         (lambda_matrix_row_exchange): Same.
37621         (lambda_vector_mult_const): Same.
37622         (lambda_vector_negate): Same.
37623         (lambda_matrix_row_negate): Same.
37624         (lambda_vector_equal): Same.
37625         (lambda_matrix_right_hermite): Same.
37626         * tree-data-ref.h: Do not include lambda.h.
37627         (lambda_vector): Moved here.
37628         (lambda_matrix): Same.
37629         (dependence_level): Same.
37630         (lambda_transform_legal_p): Removed declaration.
37631         (lambda_collect_parameters): Same.
37632         (lambda_compute_access_matrices): Same.
37633         (lambda_vector_gcd): Same.
37634         (lambda_vector_new): Same.
37635         (lambda_vector_clear): Same.
37636         (lambda_vector_lexico_pos): Same.
37637         (lambda_vector_zerop): Same.
37638         (lambda_matrix_new): Same.
37639         * tree-flow.h (least_common_multiple): Removed declaration.
37640         * tree-parloops.c (lambda_trans_matrix): Moved here.
37641         (LTM_MATRIX): Same.
37642         (LTM_ROWSIZE): Same.
37643         (LTM_COLSIZE): Same.
37644         (LTM_DENOMINATOR): Same.
37645         (lambda_trans_matrix_new): Same.
37646         (lambda_matrix_vector_mult): Same.
37647         (lambda_transform_legal_p): Same.
37648         * tree-pass.h (pass_linear_transform): Removed declaration.
37649         * tree-ssa-loop.c (tree_linear_transform): Removed.
37650         (gate_tree_linear_transform): Removed.
37651         (pass_linear_transform): Removed.
37652         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
37653         flag_loop_interchange.
37654
37655 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
37656
37657         PR tree-optimization/47265
37658         PR tree-optimization/47443
37659         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
37660         if name still has some uses.
37661
37662 2011-01-25  Martin Jambor  <mjambor@suse.cz>
37663
37664         PR tree-optimization/47382
37665         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
37666         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
37667
37668 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
37669
37670         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
37671         sjlj_except_unwind_info.
37672
37673 2011-01-25  Richard Guenther  <rguenther@suse.de>
37674
37675         PR tree-optimization/47426
37676         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
37677         visible functions results escape.
37678
37679 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
37680
37681         PR target/45701
37682         * config/arm/arm.c (any_sibcall_uses_r3): New function.
37683         (arm_get_frame_offsets): Use it.
37684
37685 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37686             Jakub Jelinek  <jakub@redhat.com>
37687
37688         PR tree-optimization/47271
37689         * tree-if-conv.c (bb_postdominates_preds): New.
37690         (if_convertible_bb_p): Call bb_postdominates_preds.
37691         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
37692         (predicate_scalar_phi): Call bb_postdominates_preds.
37693
37694 2011-01-25  Nick Clifton  <nickc@redhat.com>
37695
37696         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
37697         * config/rx/rx.c (rx_function_value): Likewise.
37698         (rx_promote_function_mode): Likewise.
37699         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
37700         in order to make it legitimate.
37701         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
37702         make sure that the first operand is the same as the result register.
37703         (addsi3_unspec): Delete.
37704         (subdi3): Do not accept immediate operands.
37705         (subdi3_internal): Likewise.
37706
37707 2011-01-25  Jeff Law  <law@redhat.com>
37708
37709         PR rtl-optimization/37273
37710         * ira-costs.c (scan_one_insn): Detect constants living in memory and
37711         handle them like argument loads from stack slots.  Do not double
37712         count memory for memory constants and argument loads from stack slots.
37713
37714 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
37715
37716         PR tree-optimization/47427
37717         PR tree-optimization/47428
37718         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
37719         coalesce if the new root var would be TREE_READONLY.
37720
37721 2011-01-25  Richard Guenther  <rguenther@suse.de>
37722
37723         PR middle-end/47414
37724         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
37725         correct type for TBAA.
37726
37727 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37728
37729         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
37730         (close_phi_written_to_memory): Call for_each_index with
37731         dr_indices_valid_in_loop.
37732
37733 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37734
37735         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
37736         when it is initialized.
37737
37738 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37739
37740         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
37741         call to graphite_find_data_references_in_stmt.
37742         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
37743         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
37744         call to graphite_find_data_references_in_stmt.
37745         (analyze_drs_in_stmts): Same.
37746         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
37747         in which the scalar analysis of indices is performed.
37748         (create_data_ref): Same.  Update call to dr_analyze_indices.
37749         (find_data_references_in_stmt): Update call to create_data_ref.
37750         (graphite_find_data_references_in_stmt): Same.
37751         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
37752         declaration.
37753         (create_data_ref): Same.
37754         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
37755         call to create_data_ref.
37756
37757 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37758
37759         * graphite-sese-to-poly.c (build_poly_scop): Move
37760         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
37761
37762 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37763
37764         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
37765         VAR_DECL, PARM_DECL, and RESULT_DECL.
37766
37767 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37768
37769         * graphite-dependences.c (reduction_dr_1): Allow several reductions
37770         in a reduction PBB.
37771         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
37772         that have already been marked as PBB_IS_REDUCTION.
37773
37774 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37775
37776         * graphite-scop-detection.c (same_close_phi_node): New.
37777         (remove_duplicate_close_phi): New.
37778         (make_close_phi_nodes_unique): New.
37779         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
37780
37781 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37782
37783         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
37784         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
37785         of both data references to be the same.
37786
37787 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37788
37789         * graphite-dependences.c (build_lexicographical_constraint): Remove
37790         the gdim parameter.
37791         (build_lexicographical_constraint): Adjust call to
37792         ppl_powerset_is_empty.
37793         (dependence_polyhedron): Same.
37794         (graphite_legal_transform_dr): Same.
37795         (graphite_carried_dependence_level_k): Same.
37796         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
37797         parameter.
37798         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
37799
37800 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37801
37802         * graphite-sese-to-poly.c
37803         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
37804         (close_phi_written_to_memory): New.
37805         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
37806         and unshare_expr.
37807
37808 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37809
37810         * doc/install.texi: Update the expected version number of PPL to 0.11.
37811         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
37812         #if PPL_VERSION_MINOR < 11.
37813
37814 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37815
37816         * graphite-dependences.c: Include graphite-cloog-util.h.
37817         (new_poly_ddr): Inlined into dependence_polyhedron.
37818         (free_poly_ddr): Moved close by new_poly_ddr.
37819         (dependence_polyhedron_1): Renamed dependence_polyhedron.
37820         Early return NULL when ppl_powerset_is_empty returns true.
37821         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
37822         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
37823         (graphite_legal_transform_dr): Call new_poly_ddr.
37824         (graphite_carried_dependence_level_k): Same.
37825         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
37826         (dot_transformed_deps_stmt_1): Removed.
37827         (dot_deps_stmt_1): Call dot_deps_stmt_2.
37828         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
37829         (dot_deps_1): Call dot_deps_2.
37830         * Makefile.in (graphite-dependences.o): Add missing dependence on
37831         graphite-cloog-util.h.
37832
37833 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37834
37835         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
37836         (build_lexicographical_constraint): Same.
37837         (dependence_polyhedron_1): Same.
37838         (graphite_legal_transform_dr): Same.
37839         (graphite_carried_dependence_level_k): Same.
37840         * graphite-ppl.c (ppl_powerset_is_empty): New.
37841         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
37842         * tree-data-ref.c (dump_data_reference): Print the basic block index.
37843
37844 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37845
37846         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
37847         the "a followed by b" relation and document it.
37848
37849 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37850
37851         * graphite-dependences.c (build_lexicographical_constraint): Stop the
37852         iteration when the bag of constraints is empty.
37853
37854 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37855
37856         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
37857
37858 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37859
37860         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
37861         nest and two loop depths as parameters.
37862         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
37863         lst_perfect_nestify.
37864
37865 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37866
37867         * graphite-dependences.c (print_pddr): Call
37868         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
37869
37870 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
37871
37872         * graphite-ppl.c (debug_gmp_value): New.
37873         * graphite-ppl.h (debug_gmp_value): Declared.
37874
37875 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
37876
37877         * doc/install.texi: Document availability of cloog-0.16.
37878
37879 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
37880
37881         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
37882         invalid postdominance info.
37883
37884 2011-01-24  Jan Hubicka  <jh@suse.cz>
37885
37886         PR c/21659
37887         * doc/extend.texi (weak pragma): Drop claim that it must
37888         appear before definition.
37889         * varasm.c (merge_weak, declare_weak): Only sanity check
37890         that DECL is not output at a time it is declared weak.
37891
37892 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
37893
37894         * machmode.def: Fixed comments.
37895
37896 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
37897
37898         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
37899
37900 2011-01-24  Paul Koning  <ni1d@arrl.net>
37901
37902         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
37903         WORDS_BIG_ENDIAN.
37904
37905 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
37906
37907         PR target/46519
37908         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
37909         (block_info): Add scanned and prev.
37910         (move_or_delete_vzeroupper_2): Return if the basic block
37911         has been scanned and the upper 128bit state is unchanged
37912         from the last scan.
37913         (move_or_delete_vzeroupper_1): Return true if the exit
37914         state is changed.
37915         (move_or_delete_vzeroupper): Visit basic blocks using the
37916         work-list based algorithm based on vt_find_locations in
37917         var-tracking.c.
37918
37919         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
37920
37921 2011-01-24  Nick Clifton  <nickc@redhat.com>
37922
37923         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
37924         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
37925         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
37926         then define __v850e1__.
37927         * doc/invoke.texi: Document -mv850es.
37928
37929 2011-01-24  Richard Henderson  <rth@redhat.com>
37930
37931         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
37932         compound unordered comparisons.
37933         * config/rx/rx.c (rx_split_fp_compare): Remove.
37934         * config/rx/rx-protos.h: Update.
37935         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
37936         (cbranchsf4): Don't call rx_split_fp_compare.
37937         (*cbranchsf4): Use rx_split_cbranch.
37938         (*cmpsf): Don't accept "i" constraint.
37939         (*conditional_branch): Only valid after reload.
37940         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
37941
37942 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
37943
37944         PR target/47385
37945         * config/rs6000/altivec.md (vector constant splitters): Add
37946         support for creating vector single precision constants if -mvsx is
37947         used and we would create the constant using Altivec primitives.
37948
37949 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
37950             Richard Sandiford  <rdsandiford@googlemail.com>
37951
37952         PR rtl-optimization/47166
37953         * reload1.c (emit_reload_insns): Disable the spill_reg_store
37954         mechanism for PRE_MODIFY and POST_MODIFY.
37955         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
37956         reloadreg.
37957
37958 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
37959
37960         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
37961
37962 2011-01-22  Jan Hubicka  <jh@suse.cz>
37963
37964         PR lto/47333
37965         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
37966
37967 2011-01-22  Jan Hubicka  <jh@suse.cz>
37968
37969         PR tree-optimization/43884
37970         PR lto/44334
37971         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
37972         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
37973
37974 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
37975
37976         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
37977         * config/s390/s390.c (s390_register_move_cost,
37978         s390_memory_move_cost): New.
37979         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
37980
37981 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37982
37983         PR middle-end/47401
37984         * except.c (sjlj_assign_call_site_values): Move setting the
37985         crtl->uses_eh_lsda flag to ...
37986         (sjlj_mark_call_sites): ... here.
37987         (sjlj_emit_function_enter): Support NULL dispatch label.
37988         (sjlj_build_landing_pads): In a function with no landing pads
37989         that still has must-not-throw regions, generate code to register
37990         a personality function with empty LSDA.
37991
37992 2011-01-21  Richard Henderson  <rth@redhat.com>
37993
37994         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
37995
37996         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
37997
37998         * compare-elim.c: New file.
37999         * Makefile.in (OBJS-common): Add it.
38000         (compare-elim.o): New.
38001         * common.opt (fcompare-elim): New.
38002         * opts.c (default_options_table): Add OPT_fcompare_elim.
38003         * tree-pass.h (pass_compare_elim_after_reload): New.
38004         * passes.c (init_optimization_passes): Add it.
38005         * recog.h: Protect against re-inclusion.
38006         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
38007         * doc/invoke.texi (-fcompare-elim): Document it.
38008         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
38009         * doc/tm.texi: Rebuild.
38010
38011 2011-01-22  Nick Clifton  <nickc@redhat.com>
38012
38013         * config/rx/rx.md (cstoresf4): Pass comparison operator to
38014         rx_split_fp_compare.
38015
38016 2011-01-22  Nick Clifton  <nickc@redhat.com>
38017
38018         * config/rx/rx.md (UNSPEC_CONST): New.
38019         (deallocate_and_return): Wrap the amount popped off the stack in
38020         an UNSPEC_CONST in order to stop it being rejected by
38021         -mmax-constant-size.
38022         (pop_and_return): Add a "(return)" rtx.
38023         (call): Drop the immediate operand.
38024         (call_internal): Likewise.
38025         (call_value): Likewise.
38026         (call_value_internal): Likewise.
38027         (sibcall_internal): Likewise.
38028         (sibcall_value_internal): Likewise.
38029         (sibcall): Likewise.  Generate an explicit call using
38030         sibcall_internal.
38031         (sibcall_value): Likewise.
38032         (mov<>): FAIL if a constant operand is not legitimate.
38033         (addsi3_unpsec): New pattern.
38034
38035         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
38036         (ok_for_max_constant): New function.
38037         (gen_safe_add): New function.
38038         (rx_expand_prologue): Use gen_safe_add.
38039         (rx_expand_epilogue): Likewise.
38040         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
38041         UNSPEC CONSTs.
38042
38043 2011-01-21  Jeff Law  <law@redhat.com>
38044
38045         PR tree-optimization/47053
38046         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
38047         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
38048         statements are deleted.
38049         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
38050         is nonempty, then purge dead edges and cleanup the CFG.
38051
38052 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
38053
38054         PR debug/47402
38055         Temporarily revert:
38056         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
38057         PR debug/47106
38058         * tree-dfa.c (create_var_ann): Mark variable as used.
38059
38060 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
38061
38062         PR middle-end/45566
38063         * except.c (convert_to_eh_region_ranges): Emit queued no-region
38064         notes from other section in hot/cold partitioning even if
38065         last_action is -3.  Increment call_site_base.
38066
38067         PR rtl-optimization/47366
38068         * fwprop.c (forward_propagate_into): Return bool.  If
38069         any changes are made, -fnon-call-exceptions is used and
38070         REG_EH_REGION note is present, call purge_dead_edges
38071         and return true if it purged anything.
38072         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
38073         any EH edges were purged.
38074
38075 2011-01-21  Jeff Law  <law@redhat.com>
38076
38077         PR rtl-optimization/41619
38078         * caller-save.c (setup_save_areas): Break out code to determine
38079         which hard regs are live across calls by examining the reload chains
38080         so that it is always used.
38081         Eliminate code which checked REG_N_CALLS_CROSSED.
38082
38083 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
38084
38085         PR tree-optimization/47355
38086         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
38087         NOP has non-debug uses beyond PHIs in new_bb.
38088
38089 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
38090
38091         PR debug/47106
38092         * cfgexpand.c (account_used_vars_for_block): Only account vars
38093         that are annotated as used.
38094         (estimated_stack_frame_size): Don't set TREE_USED.
38095         * tree-dfa.c (create_var_ann): Mark variable as used.
38096
38097 2011-01-21  Richard Guenther  <rguenther@suse.de>
38098
38099         PR middle-end/47395
38100         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
38101
38102 2011-01-21  Richard Guenther  <rguenther@suse.de>
38103
38104         PR tree-optimization/47365
38105         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
38106         (vn_reference_lookup_pieces): Adjust.
38107         (vn_reference_lookup): Likewise.
38108         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
38109         (vn_reference_lookup_3): Only look through kills if in
38110         VN_WALKREWRITE mode.
38111         (vn_reference_lookup_pieces): Adjust.
38112         (vn_reference_lookup): Likewise.
38113         (visit_reference_op_load): Likewise.
38114         (visit_reference_op_store): Likewise.
38115         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
38116         (compute_avail): Likewise.
38117         (eliminate): Likewise.
38118
38119 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
38120
38121         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
38122         DECL_IGNORED_P non-reg vars if they are used.
38123
38124         PR tree-optimization/47391
38125         * varpool.c (const_value_known_p): Return false if
38126         decl is volatile.
38127
38128 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
38129
38130         PR bootstrap/47215
38131         * config/i386/i386.c (ix86_local_alignment): Handle
38132         case for va_list_type_node is nil.
38133         (ix86_canonical_va_list_type): Likewise.
38134
38135 2011-01-21  Alan Modra  <amodra@gmail.com>
38136
38137         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
38138         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
38139
38140 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38141
38142         * config/arm/arm.md (define_attr type): Rename f_load
38143         and f_store to f_fpa_load and f_fpa_store. Update.
38144         (write_conflict): Deal with rename fallout.
38145         (*push_fp_multi): Likewise.
38146         * config/arm/fpa.md (f_load): Use f_fpa_load.
38147         (f_store): Use f_fpa_store.
38148         (*movsf_fpa): Likewise.
38149         (*movdf_fpa): Likewise.
38150         (*movxf_fpa): Likewise.
38151         (*thumb2_movsf_fpa): Likewise.
38152         (*thumb2_movdf_fpa): Likewise.
38153         (*thumb2_movxf_fpa): Likewise.
38154         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
38155         f_loadd and f_stored.
38156         (*thumb2_movdi_vfp): Likewise.
38157         (*thumb2_movsf_vfp): Fix attribute to f_loads.
38158         (*thumb2_movsi_vfp): Likewise.
38159         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
38160         Use f_loads instead of f_load.
38161         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
38162
38163 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
38164
38165         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
38166         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
38167         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
38168         (xtensa_mode_dependent_address_p): New function.
38169         (constantpool_address_p): Make static. Change return type to bool.
38170         Change argument type to const_rtx. Use CONST_INT_P predicate.
38171
38172 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
38173
38174         PR debug/46583
38175         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
38176
38177 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
38178
38179         PR debug/47283
38180         * cfgexpand.c (expand_debug_expr): Instead of generating
38181         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
38182         etc. handling.
38183
38184 2011-01-20  Richard Guenther  <rguenther@suse.de>
38185
38186         PR middle-end/47370
38187         * tree-inline.c (remap_gimple_op_r): Recurse manually for
38188         the pointer operand of MEM_REFs.
38189
38190 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
38191
38192         PR tree-optimization/46130
38193         * ipa-split.c (consider_split): If return_bb contains non-virtual
38194         PHIs other than for retval or if split_function would not adjust it,
38195         refuse to split.
38196
38197 2011-01-20  Richard Guenther  <rguenther@suse.de>
38198
38199         PR tree-optimization/47167
38200         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
38201         Revert previous change, only avoid enumeral type changes.
38202
38203 2011-01-19  Mike Stump  <mikestump@comcast.net>
38204
38205         * doc/tm.texi.in (BRANCH_COST): Englishify.
38206         * doc/tm.texi (BRANCH_COST): Likewise.
38207
38208 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
38209
38210         PR c++/47291
38211         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
38212         (gen_scheduled_generic_parms_dies): New functions.
38213         (gen_struct_or_union_type_die): Schedule template parameters DIEs
38214         generation for the end of CU compilation.
38215         (dwarf2out_finish): Generate template parameters DIEs here.
38216
38217 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
38218
38219         PR debug/46240
38220         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
38221         debug bind stmt on merge edges.
38222
38223 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
38224
38225         PR debug/47079
38226         PR debug/46724
38227         * function.c (instantiate_expr): Instantiate incoming rtl of
38228         implicit arguments, and recurse on VALUE_EXPRs.
38229         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
38230         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
38231
38232 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
38233
38234         * c-parser.c (c_parser_for_statement): Initialize
38235         collection_expression.
38236
38237 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
38238
38239         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
38240
38241 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
38242
38243         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
38244         (LINK_SHLIB_SPEC): Don't use %(link_path).
38245         (SUBTARGET_EXTRA_SPECS): Remove link_path.
38246
38247 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
38248
38249         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
38250         (NO_SHARED_LIB_SUPPORT): Remove.
38251         (LINK_SHLIB_SPEC): Remove one conditional definition.
38252
38253 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
38254
38255         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
38256         %{call_shared}.
38257         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
38258         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
38259         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
38260         %{call_shared} and conditionals on these options not being passed.
38261         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
38262         %{call_shared}.
38263
38264 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
38265
38266         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
38267         simplify.
38268
38269         * ipa-split.c: Spelling fixes.
38270
38271 2011-01-19  Richard Henderson  <rth@redhat.com>
38272
38273         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
38274         (*mulsi3): Likewise.
38275
38276         * longlong.h [__mn10300__] (count_leading_zeros): New.
38277         [__mn10300__] (umul_ppmm, smul_ppmm): New.
38278         [__mn10300__] (add_ssaaaa, subddmmss): New.
38279         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
38280         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
38281
38282 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38283
38284         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
38285
38286 2011-01-19  Richard Henderson  <rth@redhat.com>
38287
38288         * config/mn10300/mn10300.md (addsi3_flags): New.
38289         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
38290         (subsi3_flags, subc_internal, subdi3): New.
38291         (subdi3_internal, *subdi3_degenerate): New.
38292         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
38293
38294         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
38295         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
38296         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
38297         * config/mn10300/mn10300-protos.h: Update.
38298         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
38299         (return_ret): Likewise.  Rename from return_internal_regs.
38300         (return_internal): Remove.
38301
38302         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
38303         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
38304         (mn10300_legitimate_constant_p): Likewise.
38305         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
38306         (mn10300_frame_size): New.
38307         (mn10300_expand_prologue): Use it.
38308         (mn10300_expand_epilogue): Likewise.
38309         (mn10300_initial_offset): Likewise.
38310         * config/mn10300/mn10300-protos.h: Update.
38311         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
38312         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
38313         (prologue, epilogue, return_internal): Tidy output code.
38314         (mn10300_store_multiple_operation, return): Likewise.
38315         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
38316         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
38317         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
38318         (load_pic, am33_load_pic): New.
38319         (mn10300_load_pic0, mn10300_load_pic1): New.
38320
38321         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
38322         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
38323         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
38324         (cc_flags_for_mode, cc_flags_for_code): New.
38325         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
38326         overflow flag is not valid.  Validate that the flags we need
38327         for the comparison are valid.
38328         (mn10300_output_cmp): Remove.
38329         (mn10300_output_add): New.
38330         (mn10300_select_cc_mode): Use cc_flags_for_code.
38331         (mn10300_split_cbranch): New.
38332         (mn10300_match_ccmode): New.
38333         (mn10300_split_and_operand_count): New.
38334         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
38335         to the function.
38336         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
38337         (addsi3): ... here.  Use mn10300_output_add.
38338         (*addsi3_flags): New.
38339         (*am33_subsi3, *mn10300_subsi3): Merge...
38340         (subsi3): ... here.  Use attribute isa.
38341         (*subsi3_flags): New.
38342         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
38343         when possible.
38344         (*am33_andsi3, *mn10300_andsi3): Merge...
38345         (andsi3): ... here.
38346         (*andsi3_flags): New.
38347         (andsi3 splitters): New.
38348         (*am33_iorsi3, *mn10300_iorsi3): Merge...
38349         (iorsi3): ... here.
38350         (*iorsi3_flags): New.
38351         (*am33_xorsi3, *mn10300_xorsi3): Merge...
38352         (xorsi3): ... here.
38353         (*xorsi3_flags): New.
38354         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
38355         (one_cmplsi2): ... here.
38356         (*one_cmplsi2_flags): New.
38357         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
38358         instead of "dax" in constraints.  Use mn10300_split_cbranch.
38359         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
38360         use matching constraints to eliminate a self-comparison.
38361         (*integer_conditional_branch): Rename from integer_conditional_branch.
38362         Use int_mode_flags to match CC_REG.
38363         (*cbranchsi4_btst, *btstsi): New.
38364         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
38365         mn10300_split_cbranch.
38366         (*am33_cmpsf): Rename from am33_cmpsf.
38367         (*float_conditional_branch): Rename from float_conditional_branch.
38368         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
38369         (zero_extendqisi2): ... here.
38370         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
38371         (zero_extendhisi2): ... here.
38372         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
38373         (extendqisi2): ... here.
38374         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
38375         (extendhisi2): ... here.
38376         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
38377         (ashlsi3): ... here.
38378         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
38379         (lshrsi3): ... here.
38380         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
38381         (ashrsi3): ... here.
38382         (consecutive add peephole): Remove.
38383         * config/mn10300/predicates.md (label_ref_operand): New.
38384         (int_mode_flags): New.
38385         (CCZN_comparison_operator): New.
38386
38387         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
38388         (throughput_42_latency_43): New reservation.
38389         (mulsidi3, umulsidi3): New expanders.
38390         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
38391         the MDR register to allocation; separately allocate the low and
38392         high parts of the DImode result.
38393         (umulsidi3_internal): Similarly.
38394         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
38395         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
38396         (udivsi3, umodsi3): Remove.
38397         (udivmodsi4, divmodsi4): New expanders.
38398         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
38399         (*divmodsi4): Simiarly.
38400         (ext_internal): New.
38401
38402         * config/mn10300/constraints.md ("z"): New constraint.
38403         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
38404         (FIXED_REGISTERS): Don't fix MDR.
38405         (CALL_USED_REGSITERS): Reformat nicely.
38406         (REG_ALLOC_ORDER): Add MDR.
38407         (enum regclass): Add MDR_REGS.
38408         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
38409         (IRA_COVER_CLASSES): Add MDR_REGS.
38410         (REGNO_REG_CLASS): Handle MDR_REG.
38411         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
38412         (mn10300_register_move_cost): Likewise.
38413         * config/mn10300/mn10300.md (MDR_REG): New.
38414         (*movsi_internal): Handle moves to/from MDR_REGS.
38415
38416         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
38417         POST_MODIFY.
38418         (mn10300_secondary_reload): Tidy combination reload classes.
38419         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
38420         addresses for AM33.  Allow symbolic offsets for reg+imm.
38421         (mn10300_regno_in_class_p): New.
38422         (mn10300_legitimize_reload_address): New.
38423         * config/mn10300/mn10300.h (enum reg_class): Remove
38424         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
38425         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
38426         SP_OR_GENERAL_REGS.
38427         (REG_CLASS_NAMES): Update to match.
38428         (REG_CLASS_CONTENTS): Likewise.
38429         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
38430         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
38431         (REGNO_IN_RANGE_P): Remove.
38432         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
38433         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
38434         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
38435         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
38436         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
38437         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
38438         (REGNO_GENERAL_P): New.
38439         (HAVE_POST_MODIFY_DISP): New.
38440         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
38441         (LEGITIMIZE_RELOAD_ADDRESS): New.
38442         * config/mn10300/mn10300-protos.h: Update.
38443
38444         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
38445         DATA_REGS for AM33 stack-pointer destination.
38446         (mn10300_preferred_output_reload_class): Likewise.
38447         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
38448         into a form appropriate for ...
38449         (TARGET_SECONDARY_RELOAD): New.
38450         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
38451         * config/mn10300/mn10300-protos.h: Update.
38452         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
38453         reload_insi; use the "A" constraint for the scratch; handle AM33
38454         moves of sp to non-address registers.
38455
38456         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
38457         (*movqi_internal): ... here.
38458         (*am33_movhi, *mn10300_movhi): Merge into...
38459         (*movhi_internal): ... here.
38460         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
38461         as the source/destination of moves from/to SP.
38462         (movsf): Only allow for AM33-2.
38463         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
38464         any integer constant constraint.  Only allow for AM33-2.  Tidy
38465         all of the alternative outputs.
38466         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
38467         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
38468         for MN103.
38469         (udivsi3, umodsi3): New patterns for MN103 only.
38470
38471 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
38472
38473         * doc/tm.texi.in: Spell out that a lack of register class unions
38474         can lead to ICEs.
38475         * doc/tm.texi: Regenerate.
38476
38477 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
38478
38479         PR rtl-optimization/47337
38480         * dce.c (check_argument_store): New function.
38481         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
38482
38483         PR tree-optimization/47290
38484         * tree-eh.c (infinite_empty_loop_p): New function.
38485         (cleanup_empty_eh): Use it.
38486
38487 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
38488
38489         PR target/46997
38490         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
38491         (a64_expand_widen_sum): Ditto.
38492         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
38493         (vec_extract_evenodd_help): Ditto.
38494         (vec_extract_evenv4hi): Ditto.
38495         (vec_extract_oddv4hi): Ditto.
38496         (vec_extract_evenv2si): Ditto.
38497         (vec_extract_oddv2si): Ditto.
38498         (vec_extract_evenv2sf): Ditto.
38499         (vec_extract_oddv2sf): Ditto.
38500         (vec_pack_trunc_v4hi: Ditto.
38501         (vec_pack_trunc_v2si): Ditto.
38502         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
38503         (vec_interleave_highv8qi): Ditto.
38504         (mix1_r): Ditto.
38505         (vec_extract_oddv8qi): Ditto.
38506         (vec_interleave_lowv4hi): Ditto.
38507         (vec_interleave_highv4hi): Ditto.
38508         (vec_interleave_lowv2si): Ditto.
38509         (vec_interleave_highv2si): Ditto.
38510
38511 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38512
38513         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
38514         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
38515         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
38516         (pa_c_mode_for_suffix): New.
38517         (TARGET_EXPAND_BUILTIN): Define.
38518         (TARGET_C_MODE_FOR_SUFFIX): Define.
38519         (pa_builtins): Define.
38520         (pa_init_builtins): Register __float128 type and init new support
38521         builtins.
38522         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
38523         * config/pa/quadlib.c (_U_Qfcopysign): New.
38524
38525 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
38526
38527         PR middle-end/46894
38528         * explow.c (allocate_dynamic_stack_space): Do not assume more than
38529         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
38530         are defined.
38531
38532 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38533
38534         PR tree-optimization/47179
38535         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
38536         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
38537
38538 2011-01-18  Richard Guenther  <rguenther@suse.de>
38539
38540         PR rtl-optimization/47216
38541         * emit-rtl.c: Include tree-flow.h.
38542         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
38543         of replicating it with different semantics.
38544         * Makefile.in (emit-rtl.o): Adjust.
38545
38546 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38547
38548         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
38549         (cortex_a9_dp): Handle neon types correctly.
38550
38551 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
38552
38553         PR rtl-optimization/47299
38554         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38555         subtarget.  Use normal multiplication if both operands are constants.
38556         * expmed.c (expand_widening_mult): Don't try to optimize constant
38557         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
38558         before using it.
38559
38560 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38561
38562         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
38563         spacing after 'e.g.', typos, comma, hyphenation.
38564
38565 2011-01-17  Richard Henderson  <rth@redhat.com>
38566
38567         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
38568         (rx_restricted_mem_operand): New.
38569         (rx_shift_operand): Use register_operand.
38570         (rx_source_operand, rx_compare_operand): Likewise.
38571         * config/rx/rx.md (addsi3_flags): New expander.
38572         (adddi3): Rewrite as expander.
38573         (adc_internal, *adc_flags, adddi3_internal): New patterns.
38574         (subsi3_flags): New expander.
38575         (subdi3): Rewrite as expander.
38576         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
38577
38578         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
38579         (rx_init_builtins): Remove sat builtin.
38580         (rx_expand_builtin): Likewise.
38581         * config/rx/rx.md (ssaddsi3): New.
38582         (*sat): Rename from sat.  Represent the CC_REG input.
38583
38584         * config/rx/predicates.md (rshift_operator): New.
38585         * config/rx/rx.c (rx_expand_insv): Remove.
38586         * config/rx/rx-protos.h: Update.
38587         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
38588         operand to the canonical position.
38589         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
38590         (*bitclr, *bitclr_in_memory): Similarly.
38591         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
38592         (insv): Retain the zero_extract in the expansion.
38593
38594         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
38595         (bswaphi2, bitinvert, revw): Likewise.
38596
38597         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
38598         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
38599         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
38600         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
38601         (bitset, bitset_in_memory): Likewise.
38602         (bitinvert, bitinvert_in_memory): Likewise.
38603         (bitclr, bitclr_in_memory): Likewise.
38604         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
38605         (rx_strend, rx_cmpstrn): Likewise.
38606         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
38607         (bitop peep2 patterns): Remove.
38608
38609         * config/rx/rx.c (rx_match_ccmode): New.
38610         * config/rx/rx-protos.h: Update.
38611         * config/rx/rx.md (abssi2): Clobber, don't set flags.
38612         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
38613         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
38614         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
38615         (fix_truncsfsi2, floatsisf2): Likewise.
38616         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
38617         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
38618         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
38619         (*subsi3_flags, *xorsi3_flags): New.
38620
38621         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
38622
38623         * config/rx/rx.c (rx_print_operand): Remove workaround for
38624         unsplit comparison operations.
38625
38626         * config/rx/rx.md (movsicc): Split after reload.
38627         (*movsicc): Merge *movsieq and *movsine via match_operator.
38628         (*stcc): New pattern.
38629
38630         * config/rx/rx.c (rx_float_compare_mode): Remove.
38631         * config/rx/rx.h (rx_float_compare_mode): Remove.
38632         * config/rx/rx.md (cstoresi4): Split after reload.
38633         (*sccc): New pattern.
38634
38635         * config/rx/predicates.md (label_ref_operand): New.
38636         (rx_z_comparison_operator): New.
38637         (rx_zs_comparison_operator): New.
38638         (rx_fp_comparison_operator): New.
38639         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
38640         Validate that the flags are set properly for the comparison.
38641         (rx_gen_cond_branch_template): Remove.
38642         (rx_cc_modes_compatible): Remove.
38643         (mode_from_flags): New.
38644         (flags_from_code): Rename from flags_needed_for_conditional.
38645         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
38646         (rx_select_cc_mode): Likewise.
38647         (rx_split_fp_compare): New.
38648         (rx_split_cbranch): New.
38649         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
38650         (*cbranchsi4): Use match_operator and rx_split_cbranch.
38651         (*cbranchsf4): Similarly.
38652         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
38653         match_operator and rx_split_cbranch.
38654         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
38655         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
38656         (*cmpsi): Rename from cmpsi.
38657         (*tstsi): Rename from tstsi.
38658         (*cmpsf): Rename from cmpsf; use CC_Fmode.
38659         (*conditional_branch): Rename from conditional_branch.
38660         (*reveresed_conditional_branch): Remove.
38661         (b<code>): Remove expander.
38662         * config/rx/rx-protos.h: Update.
38663
38664         * config/rx/rx.c (rx_compare_redundant): Remove.
38665         * config/rx/rx.md (cmpsi): Don't use it.
38666         * config/rx/rx-protos.h: Update.
38667
38668         * config/rx/rx-modes.def (CC_F): New mode.
38669         * config/rx/rx.c (rx_select_cc_mode): New.
38670         * config/rx/rx.h (SELECT_CC_MODE): Use it.
38671         * config/rx/rx-protos.h: Update.
38672
38673 2011-01-17  Richard Henderson  <rth@redhat.com>
38674
38675         * except.c (dump_eh_tree): Fix stray ; after for statement.
38676
38677 2011-01-17  Richard Guenther  <rguenther@suse.de>
38678
38679         PR tree-optimization/47313
38680         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
38681         handling before copying the body.  Properly deal with
38682         by-reference result in SSA form.
38683
38684 2011-01-17  Ian Lance Taylor  <iant@google.com>
38685
38686         PR target/47219
38687         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
38688         (struct_value_alias_set): Don't define.
38689         (sparc_option_override): Don't set sparc_sr_alias_set and
38690         struct_value_alias_set.
38691         (save_or_restore_regs): Use gen_frame_mem rather than calling
38692         set_mem_alias_set.
38693         (sparc_struct_value_rtx): Likewise.
38694
38695 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
38696
38697         PR target/47318
38698         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
38699         (_mm_maskstore_pd): Likewise.
38700         (_mm_maskload_ps): Likewise.
38701         (_mm_maskstore_ps): Likewise.
38702         (_mm256_maskload_pd): Change mask to __m256i.
38703         (_mm256_maskstore_pd): Likewise.
38704         (_mm256_maskload_ps): Likewise.
38705         (_mm256_maskstore_ps): Likewise.
38706
38707         * config/i386/i386-builtin-types.def: Updated.
38708         (ix86_expand_special_args_builtin): Likewise.
38709
38710         * config/i386/i386.c (bdesc_special_args): Update
38711         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
38712         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
38713         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
38714         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
38715
38716         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
38717         Use <avxpermvecmode> on mask register.
38718         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
38719
38720 2011-01-17  Olivier Hainque  <hainque@adacore.com>
38721             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
38722             Eric Botcazou  <ebotcazou@adacore.com>
38723
38724         PR target/46655
38725         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
38726         if <= USHRT_MAX in 32-bit mode.
38727
38728 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38729
38730         * doc/install.texi (Configuration, Specific): Wrap long
38731         lines in examples.  Allow line wrapping in long options
38732         and URLs where beneficial for PDF output.
38733
38734 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
38735
38736         * config/mips/mips.c (mips_classify_symbol): Don't return
38737         SYMBOL_PC_RELATIVE for nonlocal labels.
38738
38739 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
38740
38741         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
38742
38743 2011-01-15  Jan Hubicka  <jh@suse.cz>
38744
38745         PR tree-optimization/47276
38746         * ipa.c (function_and_variable_visibility): Do not try to mark alias
38747         declarations as needed.
38748
38749 2011-01-15  Martin Jambor  <mjambor@suse.cz>
38750
38751         * common.opt (fdevirtualize): New flag.
38752         * doc/invoke.texi (Option Summary): Document it.
38753         * opts.c (default_options_table): Add devirtualize flag.
38754         * ipa-prop.c (detect_type_change): Return immediately if
38755         devirtualize flag is not set.
38756         (detect_type_change_ssa): Likewise.
38757         (compute_known_type_jump_func): Likewise.
38758         (ipa_analyze_virtual_call_uses): Likewise.
38759
38760 2011-01-14  Martin Jambor  <mjambor@suse.cz>
38761
38762         PR tree-optimization/45934
38763         PR tree-optimization/46302
38764         * ipa-prop.c (type_change_info): New type.
38765         (stmt_may_be_vtbl_ptr_store): New function.
38766         (check_stmt_for_type_change): Likewise.
38767         (detect_type_change): Likewise.
38768         (detect_type_change_ssa): Likewise.
38769         (compute_complex_assign_jump_func): Check for dynamic type change.
38770         (compute_complex_ancestor_jump_func): Likewise.
38771         (compute_known_type_jump_func): Likewise.
38772         (compute_scalar_jump_functions): Likewise.
38773         (ipa_analyze_virtual_call_uses): Likewise.
38774         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
38775
38776 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38777
38778         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
38779         * config/i386/i386.opt (msse5): New Alias.
38780
38781 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38782
38783         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
38784         * config/sparc/linux64.h (CC1_SPEC): Likewise.
38785         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
38786         * config/sparc/sparc.h (CC1_SPEC): Likewise.
38787
38788 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38789
38790         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
38791         -mcpu options.
38792         * config/sparc/linux64.h (CC1_SPEC): Likewise.
38793         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
38794         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
38795         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
38796         Likewise.
38797         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
38798
38799 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38800
38801         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
38802
38803 2011-01-14  Mike Stump  <mikestump@comcast.net>
38804
38805         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
38806         * config/fr30/fr30.md: Likweise
38807         (movsi_push): Likewise.
38808         (movsi_pop): Likewise.
38809         (enter_func): Likewise.
38810         * config/moxie/moxie.md (movsi_push): Likewise.
38811         (movsi_pop): Likewise.
38812
38813 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38814
38815         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
38816         %{no_archive} %{exact_version}.
38817         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
38818         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
38819         %{no_archive} %{exact_version}.
38820         * config/mips/openbsd.h (LINK_SPEC): Likewise.
38821         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
38822         * config/mips/vxworks.h: Likewise.
38823
38824 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38825
38826         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
38827
38828 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38829
38830         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
38831         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
38832
38833 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38834
38835         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
38836         -nodefaultlib.
38837
38838 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38839
38840         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
38841         for mcpu not cpu.
38842         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
38843         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
38844         not cpu.
38845         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
38846         Don't handle -shlib.
38847
38848 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38849
38850         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
38851         (CC1_SPEC): Don't handle -profile.
38852
38853 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38854
38855         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
38856         * config/mips/mips.h (CC1_SPEC): Likewise.
38857
38858 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38859
38860         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
38861         * config/mips/mips.h (CC1_SPEC): Likewise.
38862
38863 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38864
38865         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
38866         * config/m32r/linux.h (LINK_SPEC): Likewise.
38867         * config/mips/linux.h (LINK_SPEC): Likewise.
38868         * config/mips/linux64.h (LINK_SPEC): Likewise.
38869         * config/sparc/linux.h (LINK_SPEC): Likewise.
38870         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
38871         LINK_SPEC): Likewise.
38872         * config/xtensa/linux.h (LINK_SPEC): Likewise.
38873
38874 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38875
38876         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
38877         %{version:-v}.
38878         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
38879
38880 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38881
38882         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
38883         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
38884
38885 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
38886
38887         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
38888
38889 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38890
38891         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
38892         supports -Bstatic/-Bdynamic.
38893         * configure: Regenerate.
38894
38895 2011-01-14  Jan Hubicka  <jh@suse.cz>
38896             Jack Howarth  <howarth@bromo.med.uc.edu>
38897
38898         PR target/46037
38899         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
38900         when checking debug_info_level. Test write_symbols instead of
38901         debug_hooks->var_location when setting flag_var_tracking_uninit.
38902
38903 2011-01-14  Richard Guenther  <rguenther@suse.de>
38904
38905         PR tree-optimization/47179
38906         * target.def (ref_may_alias_errno): New target hook.
38907         * targhooks.h (default_ref_may_alias_errno): Declare.
38908         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
38909         (default_ref_may_alias_errno): New function.
38910         * target.h (struct ao_ref_s): Declare.
38911         * tree-ssa-alias.c: Include target.h.
38912         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
38913         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
38914         (targhooks.o): Likewise.
38915         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
38916         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
38917
38918 2011-01-14  Richard Guenther  <rguenther@suse.de>
38919
38920         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
38921
38922 2011-01-14  Richard Guenther  <rguenther@suse.de>
38923
38924         PR tree-optimization/47280
38925         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
38926         return CFG changes.
38927         (tree_ssa_forward_propagate_single_use_vars): Deal with
38928         CFG changes from associate_plusminus.
38929
38930 2011-01-14  Richard Guenther  <rguenther@suse.de>
38931
38932         PR middle-end/47281
38933         Revert
38934         2011-01-11  Richard Guenther  <rguenther@suse.de>
38935
38936         PR tree-optimization/46076
38937         * tree-ssa.c (useless_type_conversion_p): Conversions from
38938         unprototyped to empty argument list function types are useless.
38939
38940 2011-01-14  Richard Guenther  <rguenther@suse.de>
38941
38942         PR tree-optimization/47286
38943         * tree-ssa-structalias.c (new_var_info): Register variables are global.
38944
38945 2011-01-14  Martin Jambor  <mjambor@suse.cz>
38946
38947         PR middle-end/46823
38948         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
38949
38950 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
38951
38952         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
38953         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
38954         * config/xtensa/xtensa.c (xtensa_libcall_value,
38955         xtensa_function_value_regno_p): New functions.
38956         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
38957
38958 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
38959
38960         PR c++/47213
38961         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
38962         PE specific hook.
38963         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
38964         New function prototype.
38965         * config/i386/winnt.c (i386_pe_assemble_visibility):
38966         Warn only if attribute was specified by user.
38967
38968 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
38969
38970         PR target/47251
38971         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
38972         floating point.
38973         (floatunsdidf2_fcfidu): Ditto.
38974
38975 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38976
38977         * config/s390/s390.c (print_operand_address): Replace 'error' with
38978         'output_operand_lossage'.
38979         (print_operand): Likewise.
38980
38981 2011-01-13  Jeff Law  <law@redhat.com>
38982
38983         PR rtl-optimization/39077
38984         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
38985         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
38986         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
38987         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
38988         * gcse.c (prune_insertions_deletions): New function.
38989         (compute_pre_data): Use it.
38990
38991 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
38992
38993         PR debug/PR46973
38994         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
38995         static function.
38996         (prune_unused_types_mark): Use it.
38997
38998 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
38999
39000         PR rtl-optimization/45352
39001         * sel-sched.c: Update copyright years.
39002         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
39003         in the advancing loop when we have issued issue_rate insns.
39004
39005 2011-01-12  Richard Henderson  <rth@redhat.com>
39006
39007         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
39008         (TARGET_MD_ASM_CLOBBERS): New.
39009
39010         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
39011         (TARGET_DELEGITIMIZE_ADDRESS): New.
39012
39013         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
39014         (clzsi2, *bsch): New patterns.
39015
39016         * config/mn10300/mn10300.md (INT): New mode iterator.
39017         (*mov<INT>_clr): New pattern, and peep2 to generate it.
39018
39019         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
39020         flag_split_wide_types.
39021
39022         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
39023         (mn10300_trampoline_init): Rewrite without a template, an immediate
39024         load and a direct branch.
39025         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
39026
39027 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
39028
39029         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
39030         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
39031         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
39032         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
39033
39034 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
39035
39036         PR debug/47209
39037         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
39038         of type.
39039
39040 2011-01-12  Jan Hubicka  <jh@suse.cz>
39041
39042         PR driver/47244
39043         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
39044         (PLUGIN_COND_CLOSE): New macro.
39045         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
39046
39047 2011-01-12  Richard Guenther  <rguenther@suse.de>
39048
39049         PR lto/47259
39050         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
39051         register variables in a MEM_REF.
39052
39053 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
39054
39055         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
39056         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
39057         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
39058         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
39059         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
39060         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
39061         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
39062         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
39063         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
39064         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
39065         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
39066         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
39067         * config/gnu-user.h: New.  Copied from linux.h.
39068         (LINUX_TARGET_STARTFILE_SPEC): Rename to
39069         GNU_USER_TARGET_STARTFILE_SPEC.
39070         (LINUX_TARGET_ENDFILE_SPEC): Rename to
39071         GNU_USER_TARGET_ENDFILE_SPEC.
39072         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
39073         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
39074         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
39075         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
39076         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
39077         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
39078         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
39079         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
39080         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
39081         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
39082         * config/arm/linux-eabi.h (CC1_SPEC): Use
39083         GNU_USER_TARGET_CC1_SPEC.
39084         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
39085         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
39086         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
39087         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
39088         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
39089         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
39090         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
39091         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
39092
39093 2011-01-12  Richard Guenther  <rguenther@suse.de>
39094
39095         PR other/46946
39096         * doc/invoke.texi (ffast-math): Document it is turned on
39097         with -Ofast.
39098
39099 2011-01-12  Jan Hubicka  <jh@suse.cz>
39100
39101         PR tree-optimization/47233
39102         * opts.c (common_handle_option): Disable ipa-reference with profile
39103         feedback.
39104
39105 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
39106
39107         * c-parser.c (c_parser_objc_at_property_declaration): Improved
39108         error message.
39109
39110 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
39111
39112         * c-parser.c (c_lex_one_token): Updated and reindented some
39113         comments.  No changes in code.
39114
39115 2011-01-11  Ian Lance Taylor  <iant@google.com>
39116
39117         * godump.c (go_output_var): Don't output the variable if there is
39118         already a type with the same name.
39119
39120 2011-01-11  Ian Lance Taylor  <iant@google.com>
39121
39122         * godump.c (go_format_type): Don't generate float80.
39123
39124 2011-01-11  Richard Henderson  <rth@redhat.com>
39125
39126         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
39127         declaration.  Rewrite for both speed and size.
39128         (mn10300_address_cost_1): Remove.
39129         (mn10300_register_move_cost): New.
39130         (mn10300_memory_move_cost): New.
39131         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
39132         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
39133         extensions, shifts, BSWAP, CLZ.
39134         (mn10300_wide_const_load_uses_clr): Remove.
39135         (TARGET_REGISTER_MOVE_COST): New.
39136         (TARGET_MEMORY_MOVE_COST): New.
39137         * config/mn10300/mn10300-protos.h: Update.
39138         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
39139
39140         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
39141         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
39142         * config/mn10300/mn10300-protos.h: Update.
39143         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
39144         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
39145         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
39146         (*test_int_bitfield, *test_byte_bitfield): Remove.
39147         (*bit_test, *subreg_bit_test): Remove.
39148         * config/mn10300/predicates.md (const_8bit_operand): Remove.
39149
39150         * config/mn10300/constraints.md ("c"): Rename from "A".
39151         ("A", "D"): New constraint letters.
39152         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
39153         (fmssf4, fnmasf4, fnmssf4): Likewise.
39154
39155         * config/mn10300/mn10300.md (isa): New attribute.
39156         (enabled): New attribute.
39157
39158         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
39159         (abssf2, negsf2): Define only for hardware fp.
39160         (sqrtsf2): Reformat.
39161         (addsf3, subsf3, mulsf3): Merge expander and insn.
39162
39163         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
39164         (DEBUGGER_AUTO_OFFSET): Remove.
39165         (DEBUGGER_ARG_OFFSET): Remove.
39166
39167         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
39168         Emit register stores with the same offsets as the hardware.
39169         (mn10300_store_multiple_operation): Don't check that the register
39170         save offsets are monotonic.
39171         * config/mn10300/mn10300-protos.h: Update.
39172
39173         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
39174
39175         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
39176         in terms of the value on the stack, not the MDR register.
39177
39178 2011-01-11  Jan Hubicka  <jh@suse.cz>
39179
39180         PR lto/45721
39181         PR lto/45375
39182         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
39183         (symbol_alias_set_destroy, symbol_alias_set_contains,
39184         propagate_aliases_backward): Declare.
39185         * lto-streamer-out.c (struct sets): New sturcture.
39186         (trivally_defined_alias): New function.
39187         (output_alias_pair_p): Rewrite.
39188         (output_unreferenced_globals): Fix output of alias pairs.
39189         (produce_symtab): Likewise.
39190         * ipa.c (function_and_variable_visibility): Set weak alias destination
39191         as needed in lto.
39192         * varasm.c (symbol_alias_set_t): Remove.
39193         (symbol_alias_set_destroy): Export.
39194         (propagate_aliases_forward, propagate_aliases_backward): New functions
39195         based on ...
39196         (compute_visible_aliases): ... this one; remove.
39197         (trivially_visible_alias): New
39198         (trivially_defined_alias): New.
39199         (remove_unreachable_alias_pairs): Rewrite.
39200         (finish_aliases_1): Reorganize code checking if alias is defined.
39201         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
39202         in LTO mode.
39203
39204 2011-01-11  Richard Guenther  <rguenther@suse.de>
39205
39206         PR tree-optimization/46076
39207         * tree-ssa.c (useless_type_conversion_p): Conversions from
39208         unprototyped to empty argument list function types are useless.
39209
39210 2011-01-11  Richard Guenther  <rguenther@suse.de>
39211
39212         PR middle-end/45235
39213         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
39214         volatile MEMs as MEM_READONLY_P.
39215
39216 2011-01-11  Richard Guenther  <rguenther@suse.de>
39217
39218         PR tree-optimization/47239
39219         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
39220
39221 2011-01-11  Jeff Law  <law@redhat.com>
39222
39223         PR tree-optimization/47086
39224         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
39225         IVs from statements that might throw.
39226
39227 2011-01-10  Jan Hubicka  <jh@suse.cz>
39228
39229         PR lto/45375
39230         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
39231
39232 2011-01-10  Jan Hubicka  <jh@suse.cz>
39233
39234         PR lto/45375
39235         * profile.c (read_profile_edge_counts): Ignore profile inconistency
39236         when correcting profile.
39237
39238 2011-01-10  Jan Hubicka  <jh@suse.cz>
39239
39240         PR lto/46083
39241         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
39242         DECL_FINI_PRIORITY.
39243         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
39244         Restore DECL_FINI_PRIORITY.
39245
39246 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39247
39248         * doc/gimple.texi: Fix quoting of multi-word return values in
39249         @deftypefn statements.  Ensure presence of return value.  Wrap
39250         overlong @deftypefn lines.
39251         (is_gimple_operand, is_gimple_min_invariant_address): Remove
39252         descriptions of removed functions.
39253         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
39254         of multi-word return value in @deftypefn statement.
39255
39256 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39257
39258         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
39259         (Conditional Expressions, Logical Operators)
39260         (Statement and operand traversals): Do not indent smallexample
39261         code.  Fix duplicate function argument in example.
39262
39263 2011-01-10  Jeff Law  <law@redhat.com>
39264
39265         PR tree-optimization/47141
39266         * ipa-split.c (split_function): Handle case where we are
39267         returning a value and the return block has a virtual operand phi.
39268
39269 2011-01-10  Jan Hubicka  <jh@suse.cz>
39270
39271         PR tree-optimization/47234
39272         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
39273         (pass_feedback_split_functions): Declare.
39274         * passes.c (init_optimization_passes): Add ipa-split as subpass of
39275         tree-profile.
39276         * ipa-split.c (gate_split_functions): Update comments; disable
39277         split-functions for profile_arc_flag and branch_probabilities.
39278         (gate_feedback_split_functions): New function.
39279         (execute_feedback_split_functions): New function.
39280         (pass_feedback_split_functions): New global var.
39281
39282 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
39283
39284         PR lto/46760
39285         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
39286         calling gimple_call_set_cannot_inline.
39287
39288 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
39289
39290         * config/darwin-sections.def: Remove unused section.
39291
39292 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
39293
39294         PR c++/47218
39295         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
39296
39297 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
39298
39299         PR objc/47232
39300         * c-parser.c (c_parser_declaration_or_fndef): Improved
39301         error message.
39302
39303 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
39304
39305         * config/i386/winnt.c (i386_pe_start_function): Make sure
39306         to switch back to function's section.
39307
39308 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
39309
39310         PR gcc/46902
39311         PR testsuite/46912
39312         * plugin.c: Move include of dlfcn.h from here...
39313         * system.h: ... to here.
39314
39315 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39316
39317         * doc/cpp.texi (C++ Named Operators): Fix markup for header
39318         file name.
39319         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
39320         two extra empty pages in PDF output.
39321
39322 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
39323
39324         PR objc/47078
39325         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
39326         for error recovery purposes behave as if it was not specified so
39327         that the default type is usd.
39328
39329 2011-01-07  Jan Hubicka  <jh@suse.cz>
39330
39331         PR tree-optmization/46469
39332         * ipa.c (function_and_variable_visibility): Clear needed flags on
39333         nodes with external decls; handle weakrefs merging correctly.
39334
39335 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
39336
39337         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
39338         not false.
39339
39340 2011-01-07  Jan Hubicka  <jh@suse.cz>
39341
39342         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
39343         and no longer claim that gold is required for linker plugin.
39344         * configure: Regenerate.
39345         * gcc.c (PLUGIN_COND): New macro.
39346         (LINK_COMMAND_SPEC): Use it.
39347         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
39348         * config.in (HAVE_LTO_PLUGIN): New.
39349         * configure.ac (--with-lto-plugin): New parameter; autodetect
39350         HAVE_LTO_PLUGIN.
39351
39352 2011-01-07  Jan Hubicka  <jh@suse.cz>
39353
39354         PR tree-optimization/46367
39355         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
39356         when we can update original.
39357         (cgraph_mark_inline_edge): Sanity check.
39358         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
39359
39360 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39361
39362         * config/spu/spu.h (ASM_COMMENT_START): Define.
39363
39364 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
39365
39366         PR driver/42445
39367         * gcc.c (%>S): New.
39368         (SWITCH_KEEP_FOR_GCC): Likewise.
39369         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
39370         (do_spec_1): Handle "%>".
39371
39372         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
39373
39374 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
39375
39376         PR target/47201
39377         * config/i386/i386.c (ix86_delegitimize_address): If
39378         simplify_gen_subreg fails, return orig_x.
39379
39380         PR bootstrap/47187
39381         * value-prof.c (gimple_stringop_fixed_value): Handle
39382         lhs of the call properly.
39383
39384 2011-01-07  Jan Hubicka  <jh@suse.cz>
39385
39386         PR lto/45375
39387         * lto-opt.c (lto_reissue_options): Set flag_shlib.
39388
39389 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
39390
39391         * target.def (function_switched_text_sections): New hook.
39392         * doc/tm.texi: Regenerated.
39393         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
39394         * final.c (default_function_switched_text_sections): New.
39395         (final_scan_insn): Call function_switched_text_sections when a
39396         mid-function section change occurs.
39397         * output.h (default_function_switched_text_sections): Declare.
39398         * config/darwin-protos.h (darwin_function_switched_text_sections):
39399         Likewise.
39400         * config/darwin.c (darwin_function_switched_text_sections): New.
39401         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
39402
39403 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
39404
39405         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
39406         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
39407         the secondary code fragment when outputting for DWARF == 2.
39408
39409 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
39410
39411         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
39412         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
39413         Remove.
39414         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
39415         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
39416
39417 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
39418
39419         PR debug/46704
39420         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
39421         when it is not empty.
39422
39423 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
39424
39425         Bobcat Enablement
39426         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
39427         (case ${target}): Add btver1.
39428         * config/i386/driver-i386.c (host_detect_local_cpu): Let
39429         -march=native recognize btver1 processors.
39430         * config/i386/i386-c.c (ix86_target_macros_internal): Add
39431         btver1 def_and_undef
39432         * config/i386/i386.c (struct processor_costs btver1_cost): New
39433         btver1 cost table.
39434         (m_BTVER1): New definition.
39435         (m_AMD_MULTIPLE): Includes m_BTVER1.
39436         (initial_ix86_tune_features): Add btver1 tune.
39437         (processor_target_table): Add btver1 entry.
39438         (static const char *const cpu_names): Add btver1 entry.
39439         (software_prefetching_beneficial_p): Add btver1.
39440         (ix86_option_override_internal): Add btver1 instruction sets.
39441         (ix86_issue_rate): Add btver1.
39442         (ix86_adjust_cost): Add btver1.
39443         * config/i386/i386.h (TARGET_BTVER1): New definition.
39444         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
39445         (enum processor_type): Add PROCESSOR_BTVER1.
39446         * config/i386/i386.md (define_attr "cpu"): Add btver1.
39447
39448 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39449
39450         PR target/43309
39451         * config/i386/i386.c (legitimize_tls_address)
39452         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
39453         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
39454         (tls_initial_exec_64_sun): New pattern.
39455
39456 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
39457
39458         * doc/invoke.texi (Overall Options): Improve wording and markup
39459         of the description of -wrapper.
39460
39461 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
39462
39463         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
39464         rdynamic, threads): New Driver options.
39465
39466 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39467
39468         PR target/38118
39469         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
39470         if coming from .tdata.
39471         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
39472
39473 2011-01-06  Jan Hubicka  <jh@suse.cz>
39474
39475         PR lto/47188
39476         * collect2.c (main): Do not enable LTOmode when plugin is active.
39477
39478 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39479
39480         PR other/45915
39481         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
39482         --version output if supported.
39483         * configure: Regenerate.
39484
39485 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
39486
39487         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
39488         Driver options.
39489
39490 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
39491
39492         PR c/47150
39493         * c-convert.c (convert): When converting a complex expression
39494         other than COMPLEX_EXPR to a different complex type, ensure
39495         c_save_expr is called instead of save_expr, unless in_late_binary_op.
39496         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
39497         when converting COMPLEX_TYPE.
39498
39499 2011-01-06  Ira Rosen  <irar@il.ibm.com>
39500
39501         PR tree-optimization/47139
39502         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
39503         only the last reduction value is used outside the loop.  Update
39504         documentation.
39505
39506 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
39507
39508         * config/rtems.opt: New.
39509         * config.gcc (*-*-rtems*): Use rtems.opt.
39510
39511 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
39512
39513         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
39514         processors do not support 3DNow instructions.
39515
39516 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39517
39518         * config/spu/spu.c (spu_option_override): Set parameter
39519         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
39520
39521 2011-01-05  Jan Hubicka  <jh@suse.cz>
39522
39523         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
39524         at the command line.
39525
39526 2011-01-05  Martin Jambor  <mjambor@suse.cz>
39527
39528         PR lto/47162
39529         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
39530         deltas on streamed outgoing edges.
39531         (output_node_opt_summary): Output info for outgoing edges only when
39532         the node is in new parameter set.
39533         (output_cgraph_opt_summary): New parameter set, passed to the two
39534         aforementioned functions.  Update its forward declaration and its
39535         callee too.
39536
39537 2011-01-05  Tom Tromey  <tromey@redhat.com>
39538
39539         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
39540         operator to c_finish_omp_atomic.
39541         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
39542         (build_unary_op): Update.
39543         (build_modify_expr): Update.
39544         (build_asm_expr): Update.
39545
39546 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39547
39548         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
39549         newly inserted insns.
39550         (pad_bb): Likewise.
39551         (spu_emit_branch_hint): Likewise.
39552         (insert_hbrp_for_ilb_runout): Likewise.
39553         (spu_machine_dependent_reorg): Call df_finish_pass after
39554         schedule_insns returns.
39555
39556 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39557
39558         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
39559
39560 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
39561
39562         PR tree-optimization/47005
39563         * tree-sra.c (struct access): Add 'non_addressable' bit.
39564         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
39565         (decide_one_param_reduction): Return 0 if the parameter is passed by
39566         reference and one of the accesses in the group is non_addressable.
39567
39568 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
39569
39570         PR tree-optimization/47056
39571         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
39572         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
39573         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
39574
39575 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
39576
39577         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
39578         initializer.  Skip view conversions from aggregate types.
39579
39580 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
39581
39582         PR bootstrap/47055
39583         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
39584
39585 2011-01-04  Philipp Thomas  <pth@suse.de>
39586
39587         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
39588         obvious typo.
39589
39590 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39591
39592         * function.c (thread_prologue_and_epilogue_insns): Do not crash
39593         on empty epilogue sequences.
39594
39595 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
39596
39597         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
39598         non-static): New Driver options.
39599
39600 2011-01-04  Jie Zhang  <jie@codesourcery.com>
39601
39602         PR driver/47137
39603         * gcc.c (default_compilers[]): Set combinable field to 0
39604         for all assembly languages.
39605
39606 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
39607
39608         * config/mips/loongson3a.md: New file.
39609         * config/mips/mips.md: Include loongson3a.md.
39610         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
39611         TUNE_LOONGSON_3A.
39612
39613 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
39614
39615         PR middle-end/47017
39616         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
39617         instead of convert_memory_address_addr_space on the base expression.
39618
39619 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39620
39621         * config/spu/spu.c (spu_option_override): Update error text
39622         for bad -march= / -mtune= values.
39623
39624 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39625
39626         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
39627         if branch-hint optimization will be performed.
39628
39629 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
39630
39631         PR tree-optimization/47148
39632         * ipa-split.c (split_function): Convert arguments to
39633         DECL_ARG_TYPE if possible.
39634
39635         PR tree-optimization/47155
39636         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
39637         when computing uns.
39638
39639         PR rtl-optimization/47157
39640         * combine.c (try_combine): If undobuf.other_insn becomes
39641         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
39642         and set *new_direct_jump_p too.
39643
39644 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
39645
39646         PR tree-optimization/47021
39647         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
39648
39649 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
39650
39651         * gcc.c (process_command): Update copyright notice dates.
39652         * gcov.c (print_version): Likewise.
39653         * gcov-dump.c (print_version): Likewise.
39654         * mips-tfile.c (main): Likewise.
39655         * mips-tdump.c (main): Likewise.
39656
39657 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39658
39659         PR tree-optimization/46801
39660         * tree-sra.c (type_internals_preclude_sra_p): Check whether
39661         aggregate fields start at byte boundary instead of the bit-field flag.
39662
39663 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39664
39665         PR driver/47137
39666         * gcc.c (main): Revert revision 168407.
39667
39668 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39669
39670         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
39671
39672 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
39673
39674         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
39675         vector optab to expand vector/scalar shift, update gimple to vector.
39676
39677 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39678
39679         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
39680         a thunk.
39681
39682 2011-01-03  Martin Jambor  <mjambor@suse.cz>
39683
39684         PR tree-optimization/46984
39685         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
39686         HOST_WIDE_INT.
39687         (cgraph_create_indirect_edge): Fixed line length.
39688         (cgraph_indirect_call_info): Declare.
39689         (cgraph_make_edge_direct) Update declaration.
39690         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
39691         (cgraph_create_indirect_edge): Use it.
39692         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
39693         callees.
39694         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
39695         the new thunk_delta representation.
39696         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
39697         HOST_WIDE_INT.
39698         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
39699         (ipa_read_indirect_edge_info): Likewise.
39700         * lto-cgraph.c (output_edge_opt_summary): New function.
39701         (output_node_opt_summary): Call it on all outgoing edges.
39702         (input_edge_opt_summary): New function.
39703         (input_node_opt_summary): Call it on all outgoing edges.
39704
39705 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
39706
39707         PR driver/47137
39708         * gcc.c (main): Don't check have_o when settting combine_inputs.
39709
39710 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
39711
39712         * regrename.c: Add general comment describing the pass.
39713         (struct du_head): Remove 'length' field.
39714         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
39715         (regrename_optimize): Do not sort chains.  Rework comments, add others.
39716         Force renaming to the preferred class (if any) in the first pass and do
39717         not consider registers that belong to it in the second pass.
39718         (create_new_chain): Do not set 'length' field.
39719         (scan_rtx_reg): Likewise.
39720
39721 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
39722
39723         PR tree-optimization/47140
39724         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
39725         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
39726         to bit_value_binop.
39727
39728         PR rtl-optimization/47028
39729         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
39730         parm_birth_insn instead of at the beginning of first bb.
39731
39732 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
39733
39734         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
39735         Remove the word "see" before "@pxref".
39736         * doc/rtl.texi: Remove the word "see" before "@pxref".
39737
39738 2011-01-01  Jan Hubicka  <jh@suse.cz>
39739
39740         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
39741         memory.
39742
39743 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
39744
39745         PR target/38662
39746         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
39747
39748 \f
39749 Copyright (C) 2011 Free Software Foundation, Inc.
39750
39751 Copying and distribution of this file, with or without modification,
39752 are permitted in any medium without royalty provided the copyright
39753 notice and this notice are preserved.