except.c (set_nothrow_function_flags): Call cgraph_get_node instead of cgraph_node.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2
3         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
4         of cgraph_node.
5         * final.c (rest_of_clean_state): Likewise.
6         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
7         * passes.c (pass_init_dump_file): Likewise.
8         (execute_all_ipa_transforms): Likewise.
9         (function_called_by_processed_nodes_p): Likewise.
10         * predict.c (maybe_hot_frequency_p): Likewise.
11         (probably_never_executed_bb_p): Likewise.
12         (compute_function_frequency): Likewise.
13         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14         (unnest_nesting_tree_1): Likewise.
15         (lower_nested_functions): Likewise.
16         * tree-optimize.c (execute_fixup_cfg): Likewise.
17         (tree_rest_of_compilation): Likewise.
18         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
19         * tree-sra.c (ipa_early_sra): Likewise.
20         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
22         * ipa.c (record_cdtor_fn): Likewise.
23         * ipa-inline.c (cgraph_early_inlining): Likewise.
24         (compute_inline_parameters_for_current): Likewise.
25         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
26         * ipa-pure-const.c (local_pure_const): Likewise.
27         * ipa-split.c (split_function): Likewise.
28         (execute_split_functions): Likewise.
29         * cgraphbuild.c (build_cgraph_edges): Likewise.
30         (rebuild_cgraph_edges): Likewise.
31         (cgraph_rebuild_references): Likewise.
32         (remove_cgraph_callee_edges): Likewise.
33         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
34         (verify_cgraph_node): Likewise.
35         (cgraph_analyze_functions): Likewise.
36         (cgraph_preserve_function_body_p): Likewise.
37         (save_inline_function_body): Likewise.
38         (save_inline_function_body): Likewise.
39         * tree-inline.c (copy_bb): Likewise.
40         (optimize_inline_calls): Likewise.
41
42 2011-04-11  Martin Jambor  <mjambor@suse.cz>
43
44         PR tree-optimization/48195
45         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
46         ipa_check_create_edge_args.
47         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
48         ipa_check_create_edge_args.
49         * ipa-inline.c (inline_generate_summary): Do not call
50         ipa_check_create_node_params and ipa_check_create_edge_args.
51         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
52         ipa_check_create_edge_args.
53
54 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
55
56         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
57         instead of loop.
58         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
59         * function.c (record_hard_reg_sets): Likewise.
60         * ira.c (compute_regs_asm_clobbered): Likewise.
61         * sched-deps.c (sched_analyze_1): Likewise.
62         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
63
64 2011-04-09  Xinliang David Li  <davidxl@google.com>
65
66         PR tree-optimization/PR48484
67         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
68         has_valid_pred lazily
69
70 2011-04-09  Duncan Sands  <baldrick@free.fr>
71
72         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
73
74 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
75
76         * combine.c (combine_validate_cost): Adjust comments.  Set registered
77         cost of I0 to zero at the end, if any.
78
79 2011-04-08  Xinliang David Li  <davidxl@google.com>
80
81         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
82         to insane profile data.
83
84 2011-04-08  Xinliang David Li  <davidxl@google.com>
85
86         * final.c (dump_basic_block_info): New function.
87         (final): Dump basic block.
88         (final_scan_insn): Remove old dump.
89
90 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
91
92         PR target/47829
93         * config.gcc (i386-*-freebsd): Disable unwind table generation for
94         crtbegin/crtend.
95
96 2011-04-08  Michael Matz  <matz@suse.de>
97
98         PR middle-end/48389
99         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
100         functions.
101         (rebuild_jump_labels): Call rebuild_jump_labels_1.
102         * rtl.h (rebuild_jump_labels_chain): Declare.
103         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
104         insns inserted on edges.
105
106 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
107
108         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
109         * config/arm/arm-arches.def: New.
110         * config/arm/arm-opts.h: New.
111         * config/arm/genopt.sh: New.
112         * config/arm/arm-tables.opt: New (generated).
113         * config/arm/arm.c (arm_handle_option, arm_target_help,
114         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
115         (all_architectures): Get most table contents from arm-arches.def.
116         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
117         arm_selected_tune here.
118         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
119         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
120         (march=, mcpu=, mtune=): Use Enum and Var.
121         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
122         (arm.o): Update dependencies.
123
124 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
125
126         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
127         of header_file.
128         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
129         (write_typed_alloc_defns): Likewise.
130         (main): Calls write_typed_alloc_defns with output_header.
131
132 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
133
134         PR inline-asm/48435
135         * ira-color.c (setup_profitable_hard_regs): Add comments.
136         Don't take prohibited hard regs into account.
137         (setup_conflict_profitable_regs): Rename to
138         get_conflict_profitable_regs.
139         (check_hard_reg_p): Check prohibited hard regs.
140
141 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
142
143         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
144         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
145         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
146
147 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
148
149         PR target/48366
150         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
151         move from floating point to shift amount register .
152         (emit_move_sequence): Remove secondary reload support for floating
153         point to shift amount amount register copies.
154         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
155         amount register copies.
156         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
157         register, return false if mode isn't a scalar integer mode.
158         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
159
160 2011-04-08  Richard Guenther  <rguenther@suse.de>
161
162         * gimple.c (gimple_call_flags): Remove kludge.
163
164 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
165
166         * sel-sched.c (sel_region_init): Move call to
167         sel_setup_region_sched_flags after setup_current_loop_nest.
168
169 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
170
171         PR rtl-optimization/48272
172         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
173         init_insn_reg_pressure_info.  Adjust a caller.
174         * sched-int.h (init_insn_reg_pressure_info): Declare.
175         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
176         when sched-pressure is enabled.
177
178 2011-04-08  Richard Guenther  <rguenther@suse.de>
179
180         * gimple.c (gimple_set_modified): Do not queue calls to
181         MODIFIED_NORETURN_CALLS here ...
182         * tree-ssa-operands.c (update_stmt_operands): ... but here.
183
184 2011-04-08  Richard Guenther  <rguenther@suse.de>
185
186         PR lto/48467
187         * toplev.c (lang_dependent_init): Do not open asm_out_file
188         in WPA mode, nor perform debug machinery initialization.
189         (finalize): Do not unlink asm_out_file in WPA mode.
190
191 2011-04-08  Richard Guenther  <rguenther@suse.de>
192
193         * gimple.h (gimple_call_fntype): New function.
194         (gimple_call_return_type): Use it.
195         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
196         * gimple-low.c (gimple_check_call_args): Likewise.
197         * gimple.c (gimple_call_flags): Likewise.
198         (gimple_call_arg_flags): Likewise.
199         (gimple_call_return_flags): Likewise.
200         * tree-cfg.c (verify_gimple_call): Likewise.
201         (do_warn_unused_result): Likewise.
202         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
203         * value-prof.c (gimple_ic_transform): Fix fndecl check.
204
205 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
206
207         PR rtl-optimization/48235
208         * sel-sched.c (code_motion_process_successors): Recompute the last
209         insn in basic block if control flow changed.
210         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
211         Update condition for ilist_remove.
212
213 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
214
215         PR rtl-optimization/48302
216         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
217         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
218         it to record added preheader blocks.
219         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
220         on to sel_add_loop_preheaders.
221         (sel_region_init): Move call to setup_current_loop_nest after
222         sel_init_bbs.
223
224 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
225
226         PR target/48273
227         * cfgloop.h (loop_has_exit_edges): New helper.
228         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
229         non-clonable.
230         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
231         that have no exit edges.
232
233 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
234
235         PR rtl-optimization/48442
236         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
237         all callers.  Adjust assert.
238
239 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
240
241         PR tree-optimization/48377
242         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
243         is_packed to true even for types with smaller TYPE_ALIGN than
244         TYPE_SIZE.
245
246 2011-04-08  Richard Guenther  <rguenther@suse.de>
247
248         PR bootstrap/48513
249         * doc/tm.texi: Re-generate.
250
251 2011-04-08  Wei Guozhi  <carrot@google.com>
252
253         PR target/47855
254         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
255         * config/arm/arm.c (arm_attr_length_push_multi): New function.
256         * config/arm/arm.md (*push_multi): Change the length computation to
257         call a C function.
258
259 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
260
261         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
262         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
263         * doc/tm.texi: Regenerate.
264         * system.h (ASM_OUTPUT_BSS): Poison.
265         * varasm.c (asm_output_bss): Remove function.
266         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
267         
268         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
269         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
270         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
271         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
272         Likewise.
273         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
274         Likewise.
275         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
276         Likewise.
277         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
278
279 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
280
281         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
282         EnumValue lines.
283
284 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
285
286         * config/m68k/m68k.c (m68k_handle_option): Don't handle
287         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
288         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
289         OPT_mcpu32.
290         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
291         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
292         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
293         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
294         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
295         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
296         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
297         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
298         options.  Don't map other m68k options manually.  Don't handle
299         old-style options as canonical.
300         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
301         * doc/install.texi (m68k-*-*): Document binutils version
302         requirement.
303
304 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
305
306         * basic-block.h (force_nonfallthru): Move to...
307         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
308         (force_nonfallthru): ...here.
309         * cfghooks.c (force_nonfallthru): New function.
310         * cfgrtl.c (force_nonfallthru): Rename into...
311         (rtl_force_nonfallthru): ...this.
312         (commit_one_edge_insertion): Do not set AUX field.
313         (commit_edge_insertions): Do not discover new basic blocks.
314         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
315         (cfg_layout_rtl_cfg_hooks): Likewise.
316         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
317         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
318         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
319
320 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
321
322         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
323         Remove macros.
324
325 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
326
327         * config/i386/sse.md: Update copyright year.
328         (avxcvtvecmode): Remove.
329         (sse_movhlps): Merge with *avx_movhlps.
330         (sse_movlhps): Merge with *avx_movlhps.
331         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
332         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
333         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
334         (sse_loadhps): Merge with *avx_loadhps.
335         (sse_storelps): Merge with *avx_storelps.
336         (sse_loadlps): Merge with *avx_loadlps.
337         (sse_movss): Merge with *avx_movss.
338         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
339         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
340         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
341         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
342         (vec_set<mode>_0): Ditto.
343         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
344         (sse4_1_insertps): Merge with *avx_insertps.
345         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
346         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
347         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
348         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
349         (sse2_storehpd): Merge with *avx_storehpd.
350         (sse2_loadhpd): Merge with *avx_loadhpd.
351         (sse2_loadlpd): Merge with *avx_loadlpd.
352         (sse2_movsd): Merge with *avx_movsd.
353         (*vec_concatv2df): Merge with *vec_concatv2df.
354
355 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
356
357         PR debug/48343
358         * combine.c (combine_instructions): Add last_combined_insn,
359         update it if insn is after it, pass it to all try_combine calls.
360         (try_combine): Add last_combined_insn parameter, pass it instead of
361         i3 to propagate_for_debug.
362
363 2011-04-07  Nick Clifton  <nickc@redhat.com>
364
365         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
366         to handle MDR <-> data register transfers.
367         (movhi_internal): Likewise.
368
369 2011-04-07  Alan Modra  <amodra@gmail.com>
370
371         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
372         previous stack info.
373
374 2011-04-07  Tom de Vries  <tom@codesourcery.com>
375
376         PR target/43920
377         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
378         flow_find_cross_jump.  Swap variables to implement backward replacement.
379         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
380
381 2011-04-07  Tom de Vries  <tom@codesourcery.com>
382
383         PR target/43920
384         * cfgcleanup.c (walk_to_nondebug_insn): New function.
385         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
386         and bb2.
387         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
388         src1 or src2.  Redirect edges to the last basic block.  Update
389         frequency and count on multiple basic blocks in case of fallthru.
390
391 2011-04-07  Tom de Vries  <tom@codesourcery.com>
392
393         PR target/43920
394         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
395         function.
396         (old_insns_match_p): Change return type.  Replace return false/true
397         with return dir_none/dir_both.  Use can_replace_by.
398         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
399         direction from dir_p.  Register replacement direction in dir, last_dir
400         and afterlast_dir.  Handle new return type of old_insns_match_p using
401         merge_dir.  Return replacement direction in dir_p.
402         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
403         return type of old_insns_match_p.
404         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
405         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
406         flow_find_cross_jump.
407         * basic-block.h (enum replace_direction): New type.
408         (flow_find_cross_jump): Add parameter to declaration.
409
410 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
411
412         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
413         (AVXMODEDCVTPS2DQ): Ditto.
414         (VEC_FLOAT_MODE): Ditto.
415         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
416         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
417         (<any_logic:code><mode>3): Use VF mode iterator.
418         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
419         Use VF mode iterator.
420         (copysign<mode>3): Use VF mode iterator.
421         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
422         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
423         (*<any_logic:code><MODEF:mode>3): Merge with
424         *avx_<any_logic:code><MODEF:mode>3.
425         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
426         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
427         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
428         (avx_cvtdq2ps<avxmodesuffix>): Remove.
429         (sse2_cvtdq2ps): Use %v modifier.
430         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
431         (avx_cvtps2dq<avxmodesuffix>): Remove.
432         (sse2_cvtps2dq): Use %v modifier.
433         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
434         (avx_cvttps2dq<avxmodesuffix>): Remove.
435         (sse2_cvttps2dq): Use %v modifier.
436         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
437         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
438         (sse2_cvtsd2siq): Fix insn template.
439         (sse2_cvtsd2siq_2): Ditto.
440         (sse2_cvttsd2siq): Ditto.
441         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
442         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
443
444 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
445
446         * gcov-io.c: Use GCC Runtime Library Exception.
447
448 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
449
450         PR debug/48466
451         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
452         as base_reg whatever register reg has been eliminated to, instead
453         of hardcoding STACK_POINTER_REGNUM.
454
455 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
456
457         * doc/tm.texi.in: Document C target hooks as separate from general
458         target hooks.
459         * doc/tm.texi: Regenerate.
460         * genhooks.c (struct hook_desc): Add docname field.
461         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
462         docname field.
463         (hook_array): Include c-target.def.
464         (emit_documentation): Use docname field in output.
465         (emit_init_macros): Take docname argument.  Only emit definitions
466         for hooks matching docname.
467         (main): Expect additional arguments in all cases.  Pass argument
468         to emit_init_macros.
469         * target.def: Move initial macro definitions and comments to
470         target-hooks-macros.h.
471         (gcc_targetcm): Move to c-family/c-target.def.
472         * target.h (targetcm): Move declaration to c-family/c-target.h.
473         * targhooks.c (default_handle_c_option): Move to
474         c-family/c-opts.c.
475         * targhooks.h (default_handle_c_option): Move declaration to
476         c-family/c-common.h.
477         * target-hooks-macros.h: New file.
478         * config.gcc (target_has_targetcm): Define and use to add to
479         c_target_objs and cxx_target_objs.
480         * config/default-c.c: New file.
481         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
482         of target.h and target-def.h.
483         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
484         (darwin_objc_construct_string, darwin_cfstring_ref_p,
485         darwin_check_cfstring_format_arg): Make static.
486         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
487         TARGET_STRING_OBJECT_REF_TYPE_P,
488         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
489         * config/darwin-protos.h (darwin_objc_construct_string,
490         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
491         declare.
492         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
493         TARGET_STRING_OBJECT_REF_TYPE_P,
494         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
495         * config/t-darwin (darwin-c.o): Update dependencies.
496         * system.h (TARGET_HAS_TARGETCM): Poison.
497         * Makefile.in (TARGET_H): Update.
498         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
499         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
500         (default-c.o): New target.
501         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
502         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
503         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
504         c-target.def.
505         (build/genhooks.o): Update dependencies.
506
507 2011-04-06  Richard Guenther  <rguenther@suse.de>
508
509         * ipa-inline.c (enum inlining_mode): Remove.
510         (cgraph_flatten): Use some other token.
511         (cgraph_edge_early_inlinable_p): New function, split out from ...
512         (cgraph_perform_always_inlining): New function, split out from ...
513         (cgraph_decide_inlining_incrementally): ... here.
514         (cgraph_mark_inline_edge): Adjust.
515         (cgraph_early_inlining): Re-structure.
516         (pass_early_inline): Require SSA form.
517
518 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
519             Julian Brown  <julian@codesourcery.com>
520             Mark Shinwell  <shinwell@codesourcery.com>
521
522         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
523         LO_REGS only for Thumb-1.
524         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
525         be used in short instructions when optimising for size on Thumb-2.
526
527 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
528
529         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
530         associated with user returns to be preserved.
531
532 2011-04-06  Tristan Gingold  <gingold@adacore.com>
533
534         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
535         symbol_queue_size, DBXOUT_DECR_NESTING,
536         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
537         if XCOFF_DEBUGGING_INFO.
538
539 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
540
541         * config/i386/i386.md (attribute isa): New.
542         (attribute enabled): New.
543         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
544         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
545         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
546         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
547         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
548         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
549         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
550         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
551
552         * config/i386/sse.md (VF): New mode iterator.
553         (VF1): Ditto.
554         (VF2): Ditto.
555         (VF_128): Ditto.
556         (SSEMODEF4): Remove.
557         (attribute sse): Handle V8SF and V4DF modes.
558         (<absneg:code><mode>2): Use VF mode iterator.
559         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
560         mode iterator.
561         (<plusminus_insn><mode>3): Use VF mode iterator.
562         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
563         Use VF mode iterator.
564         (<sse>_vm<plusminus_insn><mode>3): Merge with
565         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
566         (mul<mode>3): Use VF mode iterator.
567         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
568         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
569         mode iterator.
570         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
571         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
572         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
573         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
574         mode iterator.
575         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
576         Use VF1 mode iterator.
577         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
578         (sqrt<VF2:mode>2): New expander.
579         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
580         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
581         and sqrtv2df2.  Use VF mode iterator.
582         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
583         mode iterator.
584         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
585         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
586         Use VF1 mode iterator.
587         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
588         (<smaxmin:code><mode>3): Use VF mode iterator.
589         (*<smaxmin:code><mode>3_finite): Merge with
590         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
591         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
592         (<sse>_vm<smaxmin:code><mode>2): Merge with
593         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
594         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
595         mode iterator.
596         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
597         mode iterator.
598         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
599         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
600         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
601         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
602         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
603         VF mode iterator.
604         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
605         Use VF_128 mode iterator.
606         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
607         mode iterator.
608         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
609         VF_128 mode iterator.
610         (vcond<mode>): Use VF mode iterator.
611         * config/i386/predicates.md (sse_comparison_operator): Merge with
612         avx_comparison_float_operator.  Do not declare as special_predicate.
613         * config/i386/i386.c (struct builtin_description): Update for renamed
614         compare patterns.
615         (ix86_expand_args_builtin): Ditto.
616         (ix86_expand_sse_compare_mask): Ditto.
617
618 2011-04-06  Richard Guenther  <rguenther@suse.de>
619
620         * tree-inline.c (estimate_num_insns): For calls simply account
621         for all passed arguments and a used return value.
622
623 2011-04-06  Richard Guenther  <rguenther@suse.de>
624
625         PR tree-optimization/47663
626         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
627         call_stmt_time fields.
628         (cgraph_edge_inlinable_p): Declare.
629         (cgraph_edge_recursive_p): New inline function.
630         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
631         (cgraph_clone_edge): Copy it.
632         * ipa-inline.c (cgraph_estimate_edge_time): New function.
633         Account for call stmt time.
634         (cgraph_estimate_time_after_inlining): Take edge argument.
635         (cgraph_estimate_edge_growth): Account call stmt size.
636         (cgraph_estimate_size_after_inlining): Take edge argument.
637         (cgraph_mark_inline_edge): Adjust.
638         (cgraph_check_inline_limits): Likewise.
639         (cgraph_recursive_inlining_p): Remove.
640         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
641         (cgraph_decide_recursive_inlining): Take edge argument and
642         adjust.
643         (cgraph_decide_inlining_of_small_functions): Do not avoid
644         diags for recursive inlining here.
645         (cgraph_flatten): Adjust.
646         (cgraph_decide_inlining_incrementally): Likewise.
647         (estimate_function_body_sizes): Remove call cost handling.
648         (compute_inline_parameters): Initialize caller edge call costs.
649         (cgraph_estimate_edge_growth): New function.
650         (cgraph_estimate_growth): Use it.
651         (cgraph_edge_badness): Likewise.
652         (cgraph_check_inline_limits): Take an edge argument.
653         (cgraph_decide_inlining_of_small_functions): Adjust.
654         (cgraph_decide_inlining): Likewise.
655         * tree-inline.c (estimate_num_insns): Only account for call
656         return value if it is used.
657         (expand_call_inline): Avoid diagnostics on recursive inline
658         functions here.
659         * lto-cgraph.c (lto_output_edge): Output edge call costs.
660         (input_edge): Input edge call costs.
661
662 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
663
664         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
665
666 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
667
668         * doc/invoke.texi (Spec Files): Fix typo.
669
670 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
671
672         * profile.c (branch_prob): Move declaration of local variable.  Remove
673         obsolete ??? comment.  Expand the location explicitly instead of using
674         the LOCATION_FILE and LOCATION_LINE macros.
675
676 2011-04-06  Wei Guozhi  <carrot@google.com>
677
678         PR target/47855
679         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
680         (arm_cond_branch): Likewise.
681         (arm_cond_branch_reversed): Likewise.
682         (arm_jump): Likewise.
683         (push_multi): Likewise.
684         * config/arm/constraints.md (Py): New constraint.
685
686 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
687
688         PR bootstrap/48471
689         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
690         Move these...
691         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
692         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
693         #ifdef DBX_DEBUGGING_INFO.
694
695 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
696
697         PR bootstrap/48403
698         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
699         if old and new states differ.
700
701 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
702
703         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
704         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
705         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
706         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
707         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
708         mcfv4e): Use Alias.
709         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
710         ColdFire options to -mcpu= options.
711
712 2011-04-05  Jeff Law  <law@redhat.com>
713
714         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
715         check if BB is a successor of LOOP->header and return
716         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
717
718 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
719
720         * cprop.c (struct reg_use): Remove.
721         (reg_use_table): Make an array of RTX.
722         (find_used_regs, constprop_register, local_cprop_pass,
723         bypass_block): Simplify users of reg_use_table.
724         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
725         on one of the uses found by find_used_regs.
726
727 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
728
729         PR bootstrap/48469
730         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
731         declaration.
732
733 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
734
735         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
736         as an rtx.
737         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
738
739 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
740
741         PR middle-end/48441
742         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
743
744 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
745
746         * combine.c: Include obstack.h.
747         (struct insn_link): Define.
748         (uid_log_links): Adjust type.
749         (FOR_EACH_LOG_LINK): New macro.
750         (insn_link_obstack): Declare.
751         (alloc_insn_link): Define.
752         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
753         type of link variables.
754         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
755         (try_combine, record_promoted_values, distribute_notes): Likewise.
756         (distribute_links): Likewise.  Tweak prototype.
757         (clear_log_links): Delete.
758         (adjust_for_new_dest): Call alloc_insn_link.
759         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
760
761 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
762
763         * gcse.c (modify_mem_list): Convert to an array of VECs.
764         (canon_modify_mem_list, compute_transp): Tweak formatting.
765         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
766         (load_killed_in_block_p): Likewise.
767         (record_last_mem_set_info): Likewise.
768         (clear_modify_mem_tables): Likewise.
769
770 2011-04-05  Tom de Vries  <tom@codesourcery.com>
771
772         PR middle-end/48461
773         * function.c (emit_use_return_register_into_block): Only define if
774         HAVE_return.
775
776 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
777
778         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
779
780 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
781
782         * config/rx/rx-opts.h: New.
783         * config/rx/rx.c (rx_cpu_type): Remove.
784         (rx_handle_option): Don't assert that global structures are in
785         use.  Access variables via opts pointer.  Defer most handling of
786         OPT_mint_register_.  Use error_at.
787         (rx_option_override): Handle deferred OPT_mint_register_ here.
788         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
789         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
790         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
791         (rx_cpu_types): New Enum and EnumValue entries.
792         (mint-register=): Use Defer and use Var accordingly.
793
794 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
795
796         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
797         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
798         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
799         Move these...
800         (debug_free_queue, debug_nesting, symbol_queue_index):
801         ...and these...
802         * dbxout.c: ...to here.  Make static.
803
804 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
805
806         * gcse.c (modify_pair): Define.  Define a VEC of it.
807         (canon_modify_mem_list): Convert to an array of VECs.
808         (free_insn_expr_list_list): Delete.
809         (clear_modify_mem_tables): Call VEC_free instead.
810         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
811         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
812         (canon_list_insert, compute_transp): Likewise.
813
814 2011-04-05  Tom de Vries  <tom@codesourcery.com>
815
816         PR target/43920
817         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
818         for size.
819
820 2011-04-05  Tom de Vries  <tom@codesourcery.com>
821
822         PR target/43920
823         * function.c (emit_use_return_register_into_block): New function.
824         (thread_prologue_and_epilogue_insns): Use
825         emit_use_return_register_into_block.
826
827 2011-04-05  Tom de Vries  <tom@codesourcery.com>
828
829         PR target/43920
830         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
831         insn.
832
833 2011-04-05  Tom de Vries  <tom@codesourcery.com>
834
835         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
836
837 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
838
839         * config/arm/arm.md (define_constants for unspec): Replace with
840         define_c_enum.
841         (define_constants for unspecv): Replace with define_c_enum.
842         * config/arm/neon.md (define_constants for unspec): Replace with
843         define_c_enum.
844
845 2011-04-04  Richard Henderson  <rth@redhat.com>
846
847         PR bootstrap/48400
848         * dwarf2out.c (output_line_info): Always emit line info from
849         at least one section.
850         (dwarf2out_init): Create text_section_line_info here ...
851         (set_cur_line_info_table): ... not here.
852
853 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
854
855         PR target/48380
856         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
857         not called.
858
859         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
860
861 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
862
863         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
864         (expr_equiv_p): Remove.
865         (insert_set_in_table): Look at <dest, src> pair instead of expr.
866         (hash_scan_set): Update call to insert_set_in_table.
867         (dump_hash_table): Dump <dest, src> pair.
868         (lookup_set): Simplify.  Lookup <dest, src> pair.
869         (compute_transp): Remove, fold heavily simplified code into...
870         (compute_local_properties): ...here.  Expect COMP and TRANSP
871         unconditionally.
872         (find_avail_set): Take set directly from struct expr.
873         (find_bypass-set): Likewise.
874         (bypass_block): Likewise.
875         (cprop_insn): Likewise.  Remove redundant INSN_P test.
876
877         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
878         checks on form of COND from find_implicit_sets to here.
879         (find_implicit_sets): Cleanup control flow. Split critical edges
880         if it exposes implicit sets.  Allocate/resize implicit_sets as
881         necessary.
882         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
883         changed something.  Run df_analyze after find_implicit_sets if any
884         edges were split.  Do not allocate implicit_sets here.
885
886         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
887         (gcse_obstack): Renamed to cprop_obstack.
888         (GNEW, GNEWVEC, GNEWVAR): Remove.
889         (gmalloc): Remove.
890         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
891         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
892         (gcse_alloc): Likewise, and rename to cprop_alloc.
893         (alloc_gcse_men, free_gcse_mem): Remove.
894         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
895         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
896         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
897
898         * cprop.c (oprs_not_set_p): Remove.
899         (mark_set, mark_clobber): Remove.
900         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
901         (reg_not_set_p): New function.
902         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
903         (cprop_insn): Likewise.
904         (cprop_jump): Use FOR_EACH_EDGE.
905
906 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
907
908         PR bootstrap/48403
909         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
910         (rank_for_schedule): Use scheduled_insns vector instead of
911         last_scheduled_insn.
912         (ok_for_early_queue_removal): Likewise.
913         (queue_to_ready): Search forward in nonscheduled_insns_begin if
914         we have a dbg_cnt.
915         (choose_ready): Likewise.
916         (commit_schedule): Use VEC_iterate.
917         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
918         a dbg_cnt, use it and ensure the first insn is in the ready list.
919         (haifa_sched_init): Allocate scheduled_insns.
920         (sched_extend_ready_list): Don't allocate it; reserve space.
921         (haifa_sched_finish): Free it.
922
923 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
924
925         * optc-gen.awk: Always remove type from Variable entry before
926         recording in var_seen.
927
928 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
929
930         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
931         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
932         call to tidy_fallthru_edges.
933
934 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
935
936         * doc/options.texi (ToLower): Document.
937         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
938         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
939         * opts.h (cl_option): Add cl_tolower field.
940         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
941         arguments with lowercase strings.
942         * config/rx/rx.opt (mcpu=): Add ToLower.
943         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
944         argument.
945
946 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
947
948         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
949
950 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
951
952         * config/vax/vax.c: Include reload.h.
953
954 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
955
956         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
957         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
958         (sparc_preferred_reload_class): New function.
959
960 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
961
962         PR debug/48401
963         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
964         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
965
966 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
967
968         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
969         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
970
971 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
972
973         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
974         (ASM_OUTPUT_ALIGNED_BSS): Define.
975
976 2011-04-03  Michael Matz  <matz@suse.de>
977
978         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
979         and next_slot members.
980         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
981         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
982         (lto_streamer_cache_append): Declare.
983         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
984         unsigned index, remove offset parameter, ensure that we append
985         or update existing entries.
986         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
987         parameter, update next_slot for append.
988         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
989         parameter.
990         (lto_streamer_cache_insert_at): Likewise.
991         (lto_streamer_cache_append): New function.
992         (lto_streamer_cache_lookup): Use unsigned index.
993         (lto_streamer_cache_get): Likewise.
994         (lto_record_common_node): Don't test tree_node_can_be_shared.
995         (preload_common_node): Adjust call to lto_streamer_cache_insert.
996         (lto_streamer_cache_delete): Don't free offsets member.
997         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
998         (lto_output_string_with_length): Use lto_output_data_stream.
999         (lto_output_tree_header): Remove ix parameter, don't write it.
1000         (lto_output_builtin_tree): Likewise.
1001         (lto_write_tree): Adjust callers to above, don't track and write
1002         offset, write unsigned index.
1003         (output_unreferenced_globals): Don't emit all global vars.
1004         (write_global_references): Use unsigned indices.
1005         (lto_output_decl_state_refs): Likewise.
1006         (write_symbol): Likewise.
1007         * lto-streamer-in.c (lto_input_chain): Move earlier.
1008         (input_function): Use unsigned index.
1009         (input_alias_pairs): Don't read and then ignore all global vars.
1010         (lto_materialize_tree): Remove ix_p parameter, don't read index,
1011         don't pass it back, use lto_streamer_cache_append.
1012         (lto_register_var_decl_in_symtab): Use unsigned index.
1013         (lto_register_function_decl_in_symtab): Likewise.
1014         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
1015         index.
1016         (lto_get_builtin_tree): Don't read index, use
1017         lto_streamer_cache_append.
1018         (lto_read_tree): Adjust call to lto_materialize_tree.
1019
1020         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
1021         don't use function calls in arguments to MIN.
1022
1023         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
1024         twice.
1025
1026         * gimple.c (gimple_type_leader_entry): Mark deletable.
1027
1028 2011-04-03  Alan Modra  <amodra@gmail.com>
1029
1030         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
1031
1032 2011-04-03  Michael Matz  <matz@suse.de>
1033
1034         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
1035         an integer.
1036         * tree.h (tree_decl_non_common.vindex): Adjust comment.
1037
1038 2011-04-03  Michael Matz  <matz@suse.de>
1039
1040         * cgraphbuild.c (record_reference): Canonicalize constructor values.
1041         * gimple-fold.c (canonicalize_constructor_val): Accept being called
1042         without function context.
1043         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
1044         current_function_decl and cfun.
1045
1046 2011-04-03  Michael Matz  <matz@suse.de>
1047
1048         * tree.c (decl_init_priority_insert): Don't create entry for
1049         default priority.
1050         (decl_fini_priority_insert): Ditto.
1051         (fields_compatible_p, find_compatible_field): Remove.
1052         * tree.h (fields_compatible_p, find_compatible_field): Remove.
1053         * gimple.c (gimple_compare_field_offset): Adjust block comment.
1054
1055 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
1056
1057         * combine.c (try_combine): Remove useless local variable.
1058
1059 2011-04-03  Richard Guenther  <rguenther@suse.de>
1060             Ira Rosen  <ira.rosen@linaro.org>
1061
1062         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
1063         non-variable offsets and compare the remaining bases of the two
1064         accesses instead of looking for exact same data-ref.
1065
1066 2011-04-02  Kai Tietz  <ktietz@redhat.com>
1067
1068         PR target/48416
1069         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
1070
1071         * i386.c (ix86_is_msabi_thiscall): New helper function.
1072         (ix86_is_type_thiscall): New helper function.
1073         (ix86_comp_type_attributes): Handle thiscall for method-functions
1074         special.
1075         (init_cumulative_args): Likewise.
1076         (find_drap_reg): Likewise.
1077         (ix86_static_chain): Likewise.
1078         (x86_this_parameter): Likewise.
1079         (x86_output_mi_thunk): Likewise.
1080
1081 2011-04-01  Olivier Hainque  <hainque@adacore.com>
1082             Nicolas Setton  <setton@adacore.com>
1083             Eric Botcazou  <ebotcazou@adacore.com>
1084
1085         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
1086         (add_gnat_descriptive_type_attribute): New function.
1087         (gen_array_type_die): Call it.
1088         (gen_enumeration_type_die): Likewise.
1089         (gen_struct_or_union_type_die): Likewise.
1090         (modified_type_die): Likewise.
1091         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
1092         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
1093         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
1094
1095 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
1096
1097         PR bootstrap/48148
1098         * dwarf2out.c (resolve_addr): Don't call force_decl_die
1099         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
1100
1101         Revert:
1102         2011-03-17  Richard Guenther  <rguenther@suse.de>
1103
1104         PR bootstrap/48148
1105         * lto-cgraph.c (input_overwrite_node): Clear the abstract
1106         origin for decls in other ltrans units.
1107         (input_varpool_node): Likewise.
1108
1109 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
1110
1111         PR middle-end/48335
1112         * expr.c (expand_assignment): Handle all possibilities
1113         if TO_RTX is CONCAT.
1114         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
1115         (store_split_bit_field): If SUBREG_REG (op0) or
1116         op0 itself has smaller mode than word, return it
1117         for offset 0 and const0_rtx for out-of-bounds stores.
1118         If word is const0_rtx, skip it.
1119
1120 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
1121
1122         * config/h8300/h8300.c (print_operand_address): Rename to...
1123         (h8300_print_operand_address): ...this. Make static. Adjust comments.
1124         Call h8300_print_operand and h8300_print_operand_address instead of
1125         print_operand and print_operand_address. Declare.
1126         (print_operand): Renake to...
1127         (h8300_print_operand): ...this. Make static. Adjust comments.
1128         Call h8300_print_operand instead of print_operand. Declare.
1129         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
1130         (h8300_register_move_cost): Likewise.
1131         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
1132         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
1133         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
1134         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
1135         * config/h8300/h8300-protos.h (print_operand): Delete.
1136         (print_operand_address): Delete.
1137
1138 2011-04-01  Richard Henderson  <rth@redhat.com>
1139
1140         PR 48400
1141         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
1142         in strict mode before dwarf4.  Re-order tests to early out
1143         before switching sections.
1144
1145 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
1146
1147         * config/h8300/constraints.md: New file.
1148         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
1149         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
1150         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
1151         * config/h8300/predicates.md (bit_operand): Likewise.
1152         (incdec_operand): Use satisfies_constraint_M and
1153         satisfies_constraint_O.  Don't use C code block.
1154         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
1155         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
1156         (compute_mov_length): Use satisfies_constraint_G.
1157         (fix_bit_operand): Use satisfies_constraint_U.
1158         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
1159         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
1160         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
1161         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
1162         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
1163         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
1164         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1165         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
1166         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
1167         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
1168         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
1169         (EXTRA_MEMORY_CONSTRAINT): Delete.
1170
1171 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
1172             Michael Meissner  <meissner@linux.vnet.ibm.com>
1173
1174         PR target/48262
1175         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
1176         operands, as per the specifications.
1177
1178         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
1179         (vec_extract_evenv4sf): Ditto.
1180         (vec_extract_evenv8hi): Ditto.
1181         (vec_extract_evenv16qi): Ditto.
1182         (vec_extract_oddv4si): Ditto.
1183
1184 2011-03-31  Mark Wielaard  <mjw@redhat.com>
1185
1186         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
1187         high_pc attribute if the CU has no associated code. Only output
1188         DW_AT_entry_pc for CU if not generating strict dwarf and
1189         dwarf_version < 4.
1190
1191 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
1192
1193         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
1194         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
1195         out of ...
1196         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
1197         * final.c (final_start_function): Call the new function rather
1198         than using a NULL argument for dwarf2out_frame_debug.
1199
1200         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
1201         that contains the prologue.
1202
1203         * haifa-sched.c (queue_insn): New arg REASON.  All callers
1204         changed.  Print it in debugging output.
1205
1206         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
1207
1208         * sched-ebb.c (begin_schedule_ready): Remove second argument.
1209         Split most of the code into...
1210         (begin_move_insn): ... here.  New function.
1211         (ebb_sched_info): Add a pointer to it.
1212         * haifa-sched.c (scheduled_insns): New static variable.
1213         (sched_extend_ready_list): Allocate it.
1214         (schedule_block): Use it to record the order of scheduled insns.
1215         Perform RTL changes to move insns only after all scheduling
1216         decisions have been made.
1217         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
1218         begin_move_insn field.
1219         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1220         * sched-int.h (struct haifa_sched_info): Remove second argument
1221         from begin_schedule_ready hook.  Add new member begin_move_insn.
1222         * sched-rgn.c (begin_schedule_ready): Remove second argument.
1223         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
1224
1225         * haifa-sched.c (prune_ready_list): New function, broken out of
1226         schedule_block.
1227         (schedule_block): Use it.
1228
1229 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1230
1231         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
1232
1233 2011-04-01  Kai Tietz  <ktietz@redhat.com>
1234
1235         * config.gcc (*-*-mingw*): Allow as option the
1236         posix threading model.
1237         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
1238         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
1239         definition.
1240         (CPP_SPEC): Add pthread/no-pthread handling.
1241         (LIB_SPEC): Likewise.
1242         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
1243         (LIB_SPEC): Likewise.
1244         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
1245         flag to pass -pthread option for shared libgcc build.
1246         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
1247         for shared libgcc build.
1248         * config/i386/t-mingw-pthread: New file.
1249         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
1250         New define to enable use of library pthread by default.
1251         * config/i386/mingw.opt (pthread): New driver option.
1252         (no-pthread): New driver option.
1253         * config/i386/cygming.opt: Make sure trailing empty line is retained.
1254         * config/i386/mingw-w64.opt: Likewise.
1255
1256 2011-04-01  Gary Funck <gary@intrepid.com>
1257
1258         * c-decl.c (grokdeclarator): Fix formatting.
1259
1260 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1261
1262         * expr.c (emit_block_move_via_movmem): Use n_generator_args
1263         instead of n_operands.
1264         (set_storage_via_setmem): Likewise.
1265         * optabs.c (maybe_gen_insn): Likewise.
1266         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
1267         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
1268         (mips_expand_builtin_direct): Likewise.
1269         * config/spu/spu.c (expand_builtin_args): Likewise.
1270
1271 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1272
1273         * recog.h (insn_data_d): Add n_generator_args.
1274         * genoutput.c (data): Likewise.
1275         (output_insn_data): Print it.
1276         (max_opno, num_dups): Delete.
1277         (scan_operands): Just fill in "d->operand[...]".
1278         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
1279
1280 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1281
1282         * gensupport.h (pattern_stats): New structure.
1283         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
1284         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
1285         (max_operand_1, max_operand_vec): Delete.
1286         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
1287
1288 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
1289
1290         * emit-rtl.c (emit_pattern_after_setloc): New function.
1291         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
1292         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
1293         (emit_pattern_after): New function.
1294         (emit_insn_after, emit_jump_insn_after): Call it.
1295         (emit_call_insn_after, emit_debug_insn_after): Likewise.
1296         (emit_pattern_before_setloc): New function.
1297         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
1298         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
1299         Likewise.
1300         (emit_pattern_before): New function.
1301         (emit_insn_before, emit_jump_insn_before): Call it.
1302         (emit_call_insn_before, emit_debug_insn_before): Likewise.
1303
1304 2011-03-31  Richard Henderson  <rth@redhat.com>
1305
1306         * dwarf2out.c (dw_separate_line_info_ref): Remove.
1307         (dw_separate_line_info_entry): Remove.
1308         (enum dw_line_info_opcode): New.
1309         (dw_line_info_entry): Use it.
1310         (dw_line_info_table, dw_line_info_table_p): New.
1311         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
1312         (line_info_table, line_info_label_num): Remove.
1313         (line_info_table_in_use): Remove.
1314         (separate_line_info_table): Remove.
1315         (separate_line_info_table_allocated): Remove.
1316         (separate_line_info_table_in_use): Remove.
1317         (LINE_INFO_TABLE_INCREMENT): Remove.
1318         (line_info_label_num): New.
1319         (cur_line_info_table): New.
1320         (text_section_line_info, cold_text_section_line_info): New.
1321         (separate_line_info): New.
1322         (SEPARATE_LINE_CODE_LABEL): Remove.
1323         (print_dwarf_line_table): Remove.
1324         (debug_dwarf): Don't dump it.
1325         (output_one_line_info_table): New.
1326         (output_line_info): Use it.
1327         (new_line_info_table): New.
1328         (set_cur_line_info_table): New.
1329         (dwarf2out_switch_text_section): Use it.
1330         (dwarf2out_begin_function): Likewise.
1331         (push_dw_line_info_entry): New.
1332         (dwarf2out_source_line): Rewrite for new line info tables.
1333         (dwarf2out_init): Remove dead initailizations.
1334
1335 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
1336
1337         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
1338         various flags.
1339         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
1340         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
1341         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
1342         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
1343         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
1344         * opt-functions.awk (flag_init, switch_bit_fields): New.
1345         (switch_flags): Don't handle flags moved to bit-fields.  Don't
1346         generate CL_MISSING_OK or CL_SAVE.
1347         * optc-gen.awk: Update to generate bit-field output as well as
1348         flags field.
1349         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
1350         bit-field instead of CL_REJECT_DRIVER flag.
1351         * opts-common.c (generate_canonical_option,
1352         decode_cmdline_option): Use bit-fields instead of CL_* flags.
1353         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
1354         instead of CL_REJECT_NEGATIVE flag.
1355         * toplev.c (print_switch_values): Use cl_report bit-field instead
1356         of CL_REPORT flag.
1357
1358 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
1359
1360         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
1361         a zero minimum index only if it is redundant.
1362
1363 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
1364
1365         PR rtl-optimization/48381
1366         * ira-color.c (assign_hard_reg): Use hard reg set intersection
1367         instead of ira_class_hard_reg_index for calculating conflicting
1368         hard registers.
1369
1370 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
1371
1372         * cprop.c: Clean up hash table building.
1373         (reg_avail_info): Remove.
1374         (oprs_available_p): Remove.
1375         (record_last_reg_set_info): Remove.
1376         (record_last_set_info): Remove.
1377         (reg_available_p): New function.
1378         (gcse_constant_p): Do not treat unfolded conditions as constants.
1379         (make_set_regs_unavailable): New function.
1380         (hash_scan_set): Simplify with new reg_available_p.
1381         (compute_hash_table_work): Traverse insns stream only once.
1382         Do not compute reg_avail_info. Traverse insns in reverse order.
1383         Record implicit sets after recording explicit sets from the block.
1384
1385 2011-03-31  Michael Matz  <matz@suse.de>
1386
1387         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
1388
1389 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
1390
1391         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
1392         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
1393         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1394         (h8300_mode_dependent_address_p): New function.
1395         (h8300_get_index): Make static.
1396
1397 2011-03-31  Jeff Law  <law@redhat.com>
1398
1399         * reload1.c (elimination_effects): Fix typo in recent change.
1400
1401         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
1402         typo potentially leading to null pointer dereference.
1403
1404         * caller-save.c (new_saved_hard_reg): Eliminate return value.
1405         (setup_save_areas): Corresponding changes to avoid useless
1406         assignments.
1407
1408         * jump.c (reversed_comparison_code_parts): Avoid successive return
1409         statements when REVERSE_CONDITION is defined.
1410
1411         * expr.c (expand_assignment): Avoid useless assignments.
1412         (expand_expr_real_1): Likewise.
1413         (expand_expr_real_2): Avoid useless statements.
1414
1415         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
1416
1417         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
1418
1419         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
1420         statements.
1421
1422         * stmt.c (expand_expr_stmt): Avoid useless assignment.
1423
1424 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
1425
1426         PR target/47109
1427         * doc/tm.texi.in (TARGET_VERSION): Remove.
1428         * doc/tm.texi: Regenerate.
1429         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
1430         * collect2.c (main): Don't use TARGET_VERSION.
1431         * mips-tdump.c (main): Don't use TARGET_VERSION.
1432         * mips-tfile.c (main): Don't use TARGET_VERSION.
1433         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
1434         * config/rs6000/vxworksae.h: Remove.
1435         * config/alpha/alpha.h (TARGET_VERSION): Remove.
1436         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
1437         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
1438         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
1439         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
1440         * config/arm/arm.h (TARGET_VERSION): Remove.
1441         * config/arm/coff.h (TARGET_VERSION): Remove.
1442         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
1443         * config/arm/elf.h (TARGET_VERSION): Remove.
1444         * config/arm/freebsd.h (TARGET_VERSION): Remove.
1445         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
1446         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
1447         * config/arm/pe.h (TARGET_VERSION): Remove.
1448         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
1449         * config/arm/semi.h (TARGET_VERSION): Remove.
1450         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
1451         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
1452         * config/arm/vxworks.h (TARGET_VERSION): Remove.
1453         * config/avr/avr.h (TARGET_VERSION): Remove.
1454         * config/bfin/bfin.h (TARGET_VERSION): Remove.
1455         * config/fr30/fr30.h (TARGET_VERSION): Remove.
1456         * config/frv/frv.h (TARGET_VERSION): Remove.
1457         * config/h8300/h8300.h (TARGET_VERSION): Remove.
1458         * config/i386/cygwin.h (TARGET_VERSION): Remove.
1459         * config/i386/darwin.h (TARGET_VERSION): Remove.
1460         * config/i386/darwin64.h (TARGET_VERSION): Remove.
1461         * config/i386/djgpp.h (TARGET_VERSION): Remove.
1462         * config/i386/freebsd.h (TARGET_VERSION): Remove.
1463         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
1464         * config/i386/gnu.h (TARGET_VERSION): Remove.
1465         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
1466         * config/i386/i386elf.h (TARGET_VERSION): Remove.
1467         * config/i386/linux.h (TARGET_VERSION): Remove.
1468         * config/i386/linux64.h (TARGET_VERSION): Remove.
1469         * config/i386/lynx.h (TARGET_VERSION): Remove.
1470         * config/i386/mingw32.h (TARGET_VERSION): Remove.
1471         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
1472         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
1473         * config/i386/netware.h (TARGET_VERSION): Remove.
1474         * config/i386/nto.h (TARGET_VERSION): Remove.
1475         * config/i386/openbsd.h (TARGET_VERSION): Remove.
1476         * config/i386/vxworks.h (TARGET_VERSION): Remove.
1477         * config/ia64/elf.h (TARGET_VERSION): Remove.
1478         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
1479         * config/ia64/hpux.h (TARGET_VERSION): Remove.
1480         * config/ia64/linux.h (TARGET_VERSION): Remove.
1481         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
1482         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
1483         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
1484         * config/lm32/lm32.h (TARGET_VERSION): Remove.
1485         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
1486         * config/m32c/m32c.h (TARGET_VERSION): Remove.
1487         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
1488         * config/m32r/m32r.h (TARGET_VERSION): Remove.
1489         * config/m68k/linux.h (TARGET_VERSION): Remove.
1490         * config/m68k/m68k.h (TARGET_VERSION): Remove.
1491         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
1492         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
1493         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
1494         * config/mep/mep.h (TARGET_VERSION): Remove.
1495         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
1496         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
1497         * config/mips/iris6.h (MACHINE_TYPE): Remove.
1498         * config/mips/linux.h (TARGET_VERSION): Remove.
1499         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
1500         * config/mips/vxworks.h (TARGET_VERSION): Remove.
1501         * config/mmix/mmix.h (TARGET_VERSION): Remove.
1502         * config/mn10300/linux.h (TARGET_VERSION): Remove.
1503         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
1504         * config/pa/pa.h (TARGET_VERSION): Remove.
1505         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
1506         * config/picochip/picochip.h (TARGET_VERSION): Remove.
1507         * config/rs6000/aix.h (TARGET_VERSION): Remove.
1508         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
1509         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
1510         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
1511         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
1512         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
1513         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
1514         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
1515         * config/rs6000/linux.h (TARGET_VERSION): Remove.
1516         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
1517         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
1518         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
1519         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
1520         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
1521         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
1522         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
1523         * config/s390/linux.h (TARGET_VERSION): Remove.
1524         * config/s390/s390.h (TARGET_VERSION): Remove.
1525         * config/s390/tpf.h (TARGET_VERSION): Remove.
1526         * config/score/score.h (TARGET_VERSION): Remove.
1527         * config/sh/linux.h (TARGET_VERSION): Remove.
1528         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
1529         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
1530         * config/sh/sh.h (TARGET_VERSION): Remove.
1531         * config/sh/sh64.h (TARGET_VERSION): Remove.
1532         * config/sh/superh.h (TARGET_VERSION): Remove.
1533         * config/sh/vxworks.h (TARGET_VERSION): Remove.
1534         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
1535         * config/sparc/linux.h (TARGET_VERSION): Remove.
1536         * config/sparc/linux64.h (TARGET_VERSION): Remove.
1537         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
1538         TARGET_NAME32, TARGET_NAME): Remove.
1539         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
1540         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
1541         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
1542         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
1543         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
1544         * config/spu/spu.h (TARGET_VERSION): Remove.
1545         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
1546         * config/v850/v850.h (TARGET_VERSION): Remove.
1547         * config/vax/linux.h (TARGET_VERSION): Remove.
1548         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
1549         * config/xtensa/elf.h (TARGET_VERSION): Remove.
1550         * config/xtensa/linux.h (TARGET_VERSION): Remove.
1551
1552 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
1553
1554         PR target/48142
1555         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
1556         frame-related from frame-unrelated adjustments to the stack pointer.
1557
1558 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
1559
1560         * common.opt (fdebug-types-section): Move earlier.
1561         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
1562
1563 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
1564
1565         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
1566         var.
1567
1568 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
1569
1570         * tree.h (CASE_CHAIN): Define.
1571         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
1572         (gimple_redirect_edge_and_branch): Likewise.
1573
1574 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1575
1576         PR middle-end/48367
1577         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
1578         calculation.
1579
1580 2011-03-30  Jeff Law  <law@redhat.com>
1581
1582         * PR bootstrap/48371
1583         * reload1.c (reload): Fix botch in last change.
1584
1585         * reload.h (struct reload): Fix typo introduced in last change.
1586
1587 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
1588
1589         * config/arm/arm.opt (mhard-float, msoft-float): Mark
1590         Undocumented.  Remove help text.
1591         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
1592         -mhard-float.
1593
1594 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
1595
1596         * doc/options.texi (NegativeAlias): Document.
1597         (Alias): Mention NegativeAlias.
1598         * opt-functions.awk: Handle NegativeAlias.
1599         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
1600         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
1601         * opts.h (CL_NEGATIVE_ALIAS): Define.
1602         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
1603         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
1604         OPT_mspe_.
1605         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
1606         Alias entries.
1607         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
1608         mno-spe and mno-isel instead of mspe=no and -misel=no.
1609
1610 2011-03-29  Mark Wielaard  <mjw@redhat.com>
1611
1612         * common.opt (fdebug-types-section): New flag.
1613         * doc/invoke.texi: Document new -fno-debug-types-section flag.
1614         * dwarf2out.c (use_debug_types): New define.
1615         (struct die_struct): Mark die_id with GTY desc use_debug_types.
1616         (print_die): Guard output of type unit signatures using
1617         use_debug_types.
1618         (build_abbrev_table): Replace assert of dwarf_version >= 4
1619         with assert on use_debug_types.
1620         (size_of_die): Likewise.
1621         (unmark_dies): Likewise.
1622         (value_format): Decide AT_ref_external form on use_debug_types.
1623         (output_die): Replace dwarf_version version check guard with
1624         use_debug_types where appropriate.
1625         (modified_type_die): Likewise.
1626         (gen_reference_type_die): Likewise.
1627         (dwarf2out_start_source_file): Likewise.
1628         (dwarf2out_end_source_file): Likewise.
1629         (prune_unused_types_walk_attribs): Likewise.
1630         (dwarf2out_finish): Likewise.
1631
1632 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1633
1634         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
1635
1636 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
1637
1638         PR rtl-optimization/48332
1639         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
1640         mode of input operand N and modeN to its actual mode.
1641
1642 2011-03-30  Jeff Law  <law@redhat.com>
1643
1644         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
1645         define accessor macro.
1646         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
1647         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
1648         (reg_equiv_init): Likewise.
1649         (reg_equivs_size): New variable.
1650         (reg_equiv_init_size): Remove.
1651         (allocate_initial_values): Move prototype to here from....
1652         * integrate.h (allocate_initial_values): Remove prototype.
1653         * integrate.c: Include reload.h.
1654         (allocate_initial_values): Corresponding changes.
1655         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
1656         (fix_reg_equiv_init, no_equiv): Corresponding changes.
1657         (update_equiv_regs): Corresponding changes.
1658         (ira): Corresponding changes.
1659         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
1660         (push_secondary_reload): Corresponding changes.
1661         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
1662         (make_memloc, find_reloads_address): Corresponding changes.
1663         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
1664         (find_reloads_address_1): Corresponding changes.
1665         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
1666         (refers_to_regno_for_reload_p): Corresponding changes.
1667         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
1668         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
1669         * reload1.c: Include ggc.h.
1670         (grow_reg_equivs): New function.
1671         (replace_pseudos_in, reload): Corresponding changes.
1672         (calculate_needs_all_insns, alter_regs): Corresponding changes.
1673         (eliminate_regs_1, elimination_effects): Corresponding changes.
1674         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
1675         (delete_output_reload): Likewise.
1676         * caller-save.c (mark_referenced_regs): Corresponding changes.
1677         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
1678         * frv/predicates.md (frv_load_operand): Corresponding changes.
1679         * microblaze/microblaze.c (double_memory_operand): Corresponding
1680         changes.
1681         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
1682         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
1683         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
1684         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
1685         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
1686         changes.
1687         * pa/pa.c (emit_move_sequence): Corresponding changes.
1688         * vax/vax.c (nonindexed_address_p): Corresponding changes.
1689
1690 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
1691
1692         PR target/47551
1693         * config/arm/arm.c (coproc_secondary_reload_class): Handle
1694         structure modes.  Don't check neon_vector_mem_operand for
1695         vector or structure modes.
1696
1697 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
1698             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1699
1700         PR target/43590
1701         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
1702         operand 1 and reshuffle the operands to match.
1703         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
1704
1705 2011-03-30  Christian Schüler  <cschueler@gmx.de>
1706
1707         PR driver/48208
1708         * config/c.opt (F): Added 'Driver' to -F option.
1709
1710         PR driver/48260
1711         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
1712           handler function.
1713         * config/darwin.opt: Added '-arch' option.
1714
1715 2011-03-30  Nick Clifton  <nickc@redhat.com>
1716
1717         * config/rx/rx.md: Add peepholes and patterns to combine
1718         extending loads and simple arithmetic instructions.
1719         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
1720         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
1721         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
1722         modes to use pre-decrement and post-increment addressing.
1723         (rx_is_restricted_memory_address): Add range checking of REG+INT
1724         addresses.
1725         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
1726         (rx_memory_move_cost): Adjust cost of stores.
1727         (rx_adjust_insn_length): New function.
1728
1729 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
1730
1731         PR c/48305
1732         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
1733         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
1734         matching arg00/arg01 types.
1735
1736 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
1737
1738         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
1739         last_location to UNKNOWN_LOCATION.
1740
1741 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1742
1743         PR target/48349
1744         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
1745         FLOAT_SSE_REGS.
1746
1747 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
1748             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1749
1750         PR bootstrap/48337
1751         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
1752         Init(PROCESSOR_V7).
1753         (sparc_cpu): Likewise.
1754         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
1755         PROCESSOR_V7.
1756
1757 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1758
1759         PR target/48336
1760         PR middle-end/48342
1761         PR rtl-optimization/48345
1762         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
1763         hard regs for given mode from profitable regs when doing secondary
1764         allocation.
1765
1766 2011-03-29  Jeff Law  <law@redhat.com>
1767
1768         PR bootstrap/48327
1769         * tree-ssa-threadupdate.c (struct redirection_data): Remove
1770         do_not_duplicate field.
1771         (lookup_redirection_data): Corresponding changes.
1772         (create_duplicates): Always create a template block.
1773         (redirect_edges): Remove code which reused the original block
1774         when it was going to become unreachable code.
1775         (thread_block): Don't set do_not_duplicate field.
1776
1777 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
1778
1779         * lto-opts.c (register_user_option_p, lto_register_user_option):
1780         Make type argument unsigned.
1781         * lto-streamer.h (lto_register_user_option): Make type argument
1782         unsigned.
1783         * opth-gen.awk: Make CL_* macros unsigned.
1784         * opts-common.c (find_opt): Make lang_mask argument unsigned.
1785         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
1786         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
1787         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
1788         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
1789         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
1790         (find_opt): Make lang_mask argument unsigned.
1791
1792 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1793
1794         PR rtl-optimization/48331
1795         PR rtl-optimization/48334
1796         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
1797         for any used algorithm.
1798
1799 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1800
1801         * ira-conflicts.c (build_object_conflicts): Add unused attribute
1802         to parent_max.
1803
1804 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
1805
1806         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
1807         (alpha_option_override): Don't set alpha_sr_alias_set.
1808         (emit_frame_store_1): Use gen_frame_mem rather than calling
1809         set_mem_alias_set.
1810         (alpha_expand_epilogue): Ditto.
1811
1812 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
1813
1814         PR tree-optimization/48290
1815         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
1816         vectorization, check that relevant phis in the basic block after
1817         the inner loop are really inner loop's exit phis.
1818
1819 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
1820
1821         PR debug/48190
1822         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
1823         (cached_dw_loc_list_def): New structure.
1824         (cached_dw_loc_list): New typedef.
1825         (cached_dw_loc_list_table): New variable.
1826         (cached_dw_loc_list_table_hash): New function.
1827         (cached_dw_loc_list_table_eq): Likewise.
1828         (add_location_or_const_value_attribute): Take a bool cache_p.
1829         Cache the list when the parameter is true.
1830         (gen_formal_parameter_die): Update caller.
1831         (gen_variable_die): Likewise.
1832         (dwarf2out_finish): Likewise.
1833         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
1834         while generating debug info for the decl.
1835         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
1836         (dwarf2out_init): Initialize cached_dw_loc_list_table.
1837         (resolve_addr): Cache the result of resolving a chain of
1838         location lists.
1839
1840 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
1841
1842         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
1843         conflict object hard regset nodes have intersecting hard reg sets.
1844
1845         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
1846         after regstat_init_n_sets_and_refs.
1847
1848         * ira.c: Add more comments at the top.
1849         (setup_stack_reg_pressure_class, setup_pressure_classes):
1850         Add comments how we compute the register pressure classes.
1851         (setup_allocno_and_important_classes): Add more comments.
1852         (setup_class_translate_array, reorder_important_classes)
1853         (setup_reg_class_relations): Add comments.
1854
1855         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
1856         start of the file.
1857
1858         * ira-color.c: Add 2011 to the Copyright line.
1859         (assign_hard_reg):  Add more comments.
1860         (improve_allocation): Ditto.
1861
1862         * ira-costs.c: Add 2011 to the Copyright line.
1863         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
1864         comments.
1865         (setup_regno_cost_classes_by_mode): Ditto.
1866
1867         Initial patches from ira-improv branch:
1868
1869         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
1870
1871         * ira-build.c: (ira_create_object): Remove initialization of
1872         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
1873         (ira_create_allocno): Remove initialization of
1874         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
1875         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
1876         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
1877         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
1878         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
1879         Initialize ALLOCNO_ADD_DATA.
1880         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
1881         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
1882         ALLOCNO_REG.
1883         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
1884         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
1885
1886         * ira.c (ira_reallocate): Remove.
1887         (setup_pressure_classes): Call
1888         ira_init_register_move_cost_if_necessary.  Use
1889         ira_register_move_cost instead of ira_get_register_move_cost.
1890         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
1891         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
1892
1893         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
1894         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
1895         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
1896         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
1897         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
1898         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
1899         Fix formatting.
1900         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1901         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1902         (struct allocno_color_data): New.
1903         (allocno_color_data_t): New typedef.
1904         (allocno_color_data): New definition.
1905         (ALLOCNO_COLOR_DATA): New macro.
1906         (struct object_color_data): New.
1907         (object_color_data_t): New typedef.
1908         (object_color_data): New definition.
1909         (OBJECT_COLOR_DATA): New macro.
1910         (update_copy_costs, calculate_allocno_spill_cost): Call
1911         ira_init_register_move_cost_if_necessary.  Use
1912         ira_register_move_cost instead of ira_get_register_move_cost.
1913         (move_spill_restore, update_curr_costs): Ditto.
1914         (allocno_spill_priority): Make it inline.
1915         (color_pass): Allocate and free allocno_color_dat and object_color_data.
1916         (struct coalesce_data, coalesce_data_t): New.
1917         (allocno_coalesce_data): New definition.
1918         (ALLOCNO_COALESCE_DATA): New macro.
1919         (merge_allocnos, coalesced_allocno_conflict_p): Use
1920         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
1921         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
1922         (coalesce_allocnos): Ditto.
1923         (setup_coalesced_allocno_costs_and_nums): Ditto.
1924         (collect_spilled_coalesced_allocnos): Ditto.
1925         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
1926         (setup_slot_coalesced_allocno_live_ranges): Ditto.
1927         (coalesce_spill_slots): Ditto.
1928         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
1929         free allocno_coalesce_data.
1930
1931         * ira-conflicts.c: Fix formatting.
1932         (process_regs_for_copy): Call
1933         ira_init_register_move_cost_if_necessary.  Use
1934         ira_register_move_cost instead of ira_get_register_move_cost.
1935         (build_object_conflicts): Optimize.
1936
1937         * ira-costs.c (record_reg_classes): Optimize.  Call
1938         ira_init_register_move_cost_if_necessary.  Use
1939         ira_register_move_cost, ira_may_move_in_cost, and
1940         ira_may_move_out_cost instead of ira_get_register_move_cost and
1941         ira_get_may_move_cost.
1942         (record_address_regs): Ditto.
1943         (scan_one_insn): Optimize.
1944         (find_costs_and_classes): Optimize.
1945         (process_bb_node_for_hard_reg_moves): Call
1946         ira_init_register_move_cost_if_necessary.  Use
1947         ira_register_move_cost instead of ira_get_register_move_cost.
1948
1949         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
1950         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
1951         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
1952         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
1953         definitions.
1954         (ira_initiate_emit_data, ira_finish_emit_data)
1955         (create_new_allocno): New functions.
1956         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1957         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
1958         Use ira_register_move_cost instead of ira_get_register_move_cost.
1959
1960         * ira-int.h: Fix some comments.
1961         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
1962         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1963         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
1964         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
1965         add_data.
1966         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
1967         bitfield after mode.  Make hard_regno a short int.  Make
1968         hard_regno short.  Remove first_coalesced_allocno and
1969         next_coalesced_allocno.  Move mem_optimized_dest_p,
1970         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
1971         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
1972         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
1973         temp, colorable_p.  Add new member add_data.
1974         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
1975         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
1976         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
1977         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
1978         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
1979         (ALLOCNO_ADD_DATA): New macro.
1980         (ira_emit_data_t): New typedef.
1981         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
1982         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
1983         from struct ira_allocno.
1984         (ALLOCNO_EMIT_DATA): New macro.
1985         (ira_allocno_emit_data, allocno_emit_reg): New.
1986         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
1987         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1988         (OBJECT_ADD_DATA): New macro.
1989         (ira_reallocate): Remove.
1990         (ira_initiate_emit_data, ira_finish_emit_data): New.
1991         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
1992         (ira_init_register_move_cost_if_necessary): New.
1993         (ira_object_conflict_iter_next): Merge into
1994         ira_object_conflict_iter_cond.
1995         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1996
1997         * ira-live.c: (process_single_reg_class_operands): Call
1998         ira_init_register_move_cost_if_necessary.  Use
1999         ira_register_move_cost instead of ira_get_register_move_cost.
2000
2001         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
2002
2003         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
2004
2005         * ira-costs.c: Fix formatting.
2006         (cost_classes, cost_classes_num): Remove.
2007         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
2008         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
2009         (cost_classes_del, cost_classes_htab): New.
2010         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
2011         (initiate_regno_cost_classes, setup_cost_classes): New.
2012         (setup_regno_cost_classes_by_aclass): New.
2013         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
2014         (record_reg_classes): Use regno_cost_classes instead of
2015         cost_classes.  Move checking opposite operand up.
2016         (record_address_regs): Use regno_cost_classes
2017         instead of cost_classes.
2018         (scan_one_insn): Ditto.  Use always general register.
2019         (print_allocno_costs): Use regno_cost_classes instead of
2020         cost_classes.
2021         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
2022         (find_costs_and_classes): Set up cost classes for each registers.
2023         Use also their mode for this.  Use regno_cost_classes instead of
2024         cost_classes.
2025         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
2026         cost_classes.
2027         (free_ira_costs, ira_init_costs): Don't use cost_classes.
2028         (ira_costs, ira_set_pseudo_classes): Call
2029         initiate_regno_cost_classes and finish_regno_cost_classes.
2030
2031         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
2032
2033         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
2034
2035         * target.def (ira_cover_classes): Remove.
2036
2037         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
2038
2039         * doc/tm.texi.in: Ditto.
2040
2041         * ira-conflicts.c: Remove mentioning cover classes from the file.
2042         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
2043         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
2044
2045         * targhooks.c (default_ira_cover_classes): Remove.
2046
2047         * targhooks.h (default_ira_cover_classes): Ditto.
2048
2049         * haifa-sched.c: Remove mentioning cover classes from the file.
2050         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
2051         ira_pressure_classes and ira_pressure_classes_num instead of
2052         ira_reg_class_cover_size and ira_reg_class_cover.  Use
2053         sched_regno_pressure_class instead of sched_regno_cover_class.
2054         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
2055         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2056
2057         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
2058         classes from the file.
2059         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
2060         (struct object_hard_regs, struct object_hard_regs_node): New.
2061         (struct ira_object): New members profitable_hard_regs,
2062         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
2063         (struct ira_allocno): Rename cover_class to aclass.  Rename
2064         cover_class_cost and updated_cover_class_cost to class_cost and
2065         updated_class_cost.  Remove splay_removed_p and
2066         left_conflict_size.  Add new members colorable_p.
2067         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
2068         (ALLOCNO_COLORABLE_P): New macro.
2069         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
2070         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
2071         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
2072         (OBJECT_...): Rename parameter C to O.
2073         (OBJECT_PROFITABLE_HARD_REGS): New macro.
2074         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
2075         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
2076         (struct target_ira_int): New members x_ira_max_memory_move_cost,
2077         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
2078         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
2079         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
2080         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
2081         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
2082         x_ira_reg_class_subunion.
2083         (ira_max_memory_move_cost, ira_max_register_move_cost)
2084         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
2085         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
2086         (ira_important_class_nums, ira_reg_class_superunion): New macros.
2087         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
2088         (ira_reg_class_union): Rename to ira_reg_class_subunion.
2089         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
2090         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
2091         (ira_tune_allocno_costs_and_cover_classes): Rename to
2092         ira_tune_allocno_costs.
2093         (ira_debug_hard_regs_forest): New.
2094         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
2095         (ira_object_conflict_iter_next): Fix comments.
2096         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
2097         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
2098         cover_class to aclass.
2099         (ira_allocate_and_accumulate_costs): Ditto.
2100         (ira_allocate_and_set_or_copy_costs): Ditto.
2101
2102         * opts.c (decode_options): Remove ira_cover_class check.
2103
2104         * ira-color.c: Remove mentioning cover classes from the file.  Use
2105         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
2106         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
2107         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
2108         (splay-tree.h): Remove include.
2109         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
2110         before copy_freq_compare_func.
2111         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
2112         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
2113         New definitions.
2114         (hard_regs_roots, hard_regs_node_vec): Ditto.
2115         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
2116         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
2117         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
2118         (create_new_object_hard_regs_node): Ditto.
2119         (add_new_object_hard_regs_node_to_forest): Ditto.
2120         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
2121         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
2122         Ditto.
2123         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
2124         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
2125         (remove_unused_object_hard_regs_nodes): Ditto.
2126         (enumerate_object_hard_regs_nodes): Ditto.
2127         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
2128         (object_hard_regs_subnode_t): Ditto.
2129         (struct object_hard_regs_subnode): Ditto.
2130         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
2131         (setup_object_hard_regs_subnode_index): Ditto.
2132         (get_object_hard_regs_subnodes_num): Ditto.
2133         (form_object_hard_regs_nodes_forest): Ditto.
2134         (finish_object_hard_regs_nodes_tree): Ditto.
2135         (finish_object_hard_regs_nodes_forest): Ditto.
2136         (allocnos_have_intersected_live_ranges_p): Rename to
2137         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2138         (pseudos_have_intersected_live_ranges_p): Rename to
2139         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2140         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
2141         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
2142         (update_copy_costs): Remove assert.  Skip cost update if the hard
2143         reg does not belong the class.
2144         (assign_hard_reg): Process only profitable hard regs.
2145         (uncolorable_allocnos_num): Make it scalar.
2146         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
2147         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
2148         and ira_reg_class_max_nregs.
2149         (bucket_allocno_compare_func): Check frequency first.
2150         (sort_bucket): Add compare function as a parameter.
2151         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
2152         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
2153         (push_allocno_to_stack): Rewrite for checking new allocno
2154         colorability.
2155         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
2156         (push_only_colorable): Pass new parameter to sort_bucket.
2157         (push_allocno_to_spill): Remove.
2158         (allocno_spill_priority_compare): Make it inline and rewrite.
2159         (splay_tree_allocate, splay_tree_free): Remove.
2160         (allocno_spill_sort_compare): New function.
2161         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
2162         build and use splay tree.  Choose first allocno in uncolorable
2163         allocno bucket to spill.  Remove setting spill cost.
2164         (all_conflicting_hard_regs): Remove.
2165         (setup_allocno_available_regs_num): Check only profitable hard
2166         regs.  Print info about hard regs nodes.
2167         (setup_allocno_left_conflicts_size): Remove.
2168         (put_allocno_into_bucket): Don't call
2169         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
2170         (improve_allocation): New.
2171         (color_allocnos): Call setup_profitable_hard_regs,
2172         form_object_hard_regs_nodes_forest, improve_allocation,
2173         finish_object_hard_regs_nodes_forest.  Setup spill cost.
2174         (print_loop_title): Use pressure classes.
2175         (color_allocnso): Ditto.
2176         (do_coloring): Remove allocation and freeing splay_tree_node_pool
2177         and allocnos_for_spilling.
2178         (ira_sort_regnos_for_alter_reg): Don't setup members
2179         {first,next}_coalesced_allocno.
2180         (color): Remove allocating and freeing removed_splay_allocno_vec.
2181         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
2182         prohibited_class_mode_regs.
2183
2184         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
2185         formatting.
2186         (update_allocno_pressure_excess_length): Use pressure classes.
2187         (inc_register_pressure, dec_register_pressure): Check for pressure
2188         class.
2189         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
2190         pressure class.  Use ira_reg_class_nregs instead of
2191         ira_reg_class_max_nregs.
2192         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
2193         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
2194         (single_reg_class): Use ira_reg_class_nregs instead of
2195         ira_reg_class_max_nregs.
2196         (process_bb_node_lives): Use pressure classes.
2197
2198         * ira-emit.c: Remove mentioning cover classes from the file.  Use
2199         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2200         (change_loop): Use pressure classes.
2201         (modify_move_list): Call ira_set_allocno_class instead of
2202         ira_set_allocno_cover_class.
2203
2204         * ira-build.c: Remove mentioning cover classes from the file.  Use
2205         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
2206         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
2207         ALLOCNO_UPDATED_CLASS_COST instead of
2208         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
2209         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
2210         (ira_create_allocno): Remove initialization of
2211         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
2212         ALLOCNO_COLORABLE_P.
2213         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
2214         Update conflict regs for the objects.
2215         (create_cap_allocno): Remove assert.  Don't propagate
2216         ALLOCNO_AVAILABLE_REGS_NUM.
2217         (ira_free_allocno_costs): New function.
2218         (finish_allocno): Change a part of code into call of
2219         ira_free_allocno_costs.
2220         (low_pressure_loop_node_p): Use pressure classes.
2221         (object_range_compare_func): Don't compare classes.
2222         (setup_min_max_conflict_allocno_ids): Ditto.
2223
2224         * loop-invariant.c: Remove mentioning cover classes from the file.
2225         Use ira_pressure_classes and ira_pressure_classes_num instead of
2226         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
2227         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
2228         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2229         Use reg_allocno_class instead of reg_cover_class.
2230         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
2231         STACK_REG_COVER_CLASS.
2232         (get_regno_cover_class): Rename to get_regno_pressure_class.
2233         (move_loop_invariants): Initialize and finalize regstat.
2234
2235         * ira.c: Remove mentioning cover classes from the file.  Add
2236         comments about coloring without cover classes.  Use ALLOCNO_CLASS
2237         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2238         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
2239         setup_class_subset_and_memory_move_costs.
2240         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
2241         (setup_cover_and_important_classes): Rename to
2242         setup_allocno_and_important_classes.
2243         (setup_class_translate_array): New.
2244         (setup_class_translate): Call it for allocno and pressure classes.
2245         (cover_class_order): Rename to allocno_class_order.
2246         (comp_reg_classes_func): Use ira_allocno_class_translate instead
2247         of ira_class_translate.
2248         (reorder_important_classes): Set up ira_important_class_nums.
2249         (setup_reg_class_relations): Set up ira_reg_class_superunion.
2250         (print_class_cover): Rename to print_classes.  Add parameter.
2251         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
2252         Print pressure classes too.
2253         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
2254         setup_reg_subclasses.
2255         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2256         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2257         (setup_prohibited_class_mode_regs): Use
2258         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
2259         (clarify_prohibited_class_mode_regs): New function.
2260         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
2261         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
2262         (ira_init_once): Initialize them.
2263         (free_register_move_costs): Process them.
2264         (ira_init): Move calls of find_reg_classes and
2265         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
2266         Call clarify_prohibited_class_mode_regs.
2267         (ira_no_alloc_reg): Remove.
2268         (too_high_register_pressure_p): Use pressure classes.
2269
2270         * sched-deps.c: Remove mentioning cover classes from the file.
2271         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
2272         ira_pressure_classes and ira_pressure_classes_num instead of
2273         ira_reg_class_cover_size and ira_reg_class_cover.
2274         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
2275         sched_regno_pressure_class instead of sched_regno_cover_class.
2276         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
2277         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2278
2279         * ira.h: Add 2010 to Copyright.
2280         (ira_no_alloc_reg): Remove external.
2281         (struct target_ira): Rename x_ira_hard_regno_cover_class,
2282         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
2283         x_ira_class_translate to x_ira_hard_regno_allocno_class,
2284         x_ira_allocno_classes_num, x_ira_allocno_classes, and
2285         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
2286         x_ira_pressure_classes, x_ira_pressure_class_translate, and
2287         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
2288         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
2289         x_ira_no_alloc_regs.
2290         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2291         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
2292         ira_allocno_classes_num and ira_allocno_classes.
2293         (ira_class_translate): Rename to ira_allocno_class_translate.
2294         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
2295         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
2296         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2297         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
2298         (ira_no_alloc_regs): New.
2299
2300         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
2301         classes from the file.  Use ALLOCNO_CLASS instead of
2302         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
2303         ALLOCNO_COVER_CLASS_COST.
2304         (regno_cover_class): Rename to regno_aclass.
2305         (record_reg_classes): Use ira_reg_class_subunion instead of
2306         ira_reg_class_union.
2307         (record_address_regs): Check overflow.
2308         (scan_one_insn): Ditto.
2309         (print_allocno_costs): Print total mem cost fore regional allocation.
2310         (print_pseudo_costs): Use REG_N_REFS.
2311         (find_costs_and_classes): Use classes intersected with them on the
2312         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
2313         ira_reg_class_union.  Use ira_allocno_class_translate and
2314         regno_aclass instead of ira_class_translate and regno_cover_class.
2315         Modify code for finding regno_aclass.  Setup preferred classes for
2316         the next pass.
2317         (setup_allocno_cover_class_and_costs): Rename to
2318         setup_allocno_class_and_costs.  Use regno_aclass instead of
2319         regno_cover_class.  Use ira_set_allocno_class instead of
2320         ira_set_allocno_cover_class.
2321         (init_costs, finish_costs): Use regno_aclass instead of
2322         regno_cover_class.
2323         (ira_costs): Use setup_allocno_class_and_costs instead of
2324         setup_allocno_cover_class_and_costs.
2325         (ira_tune_allocno_costs_and_cover_classes): Rename to
2326         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
2327         by processing objects.  Use ira_reg_class_max_nregs instead of
2328         ira_reg_class_nregs.
2329
2330         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
2331
2332         * sched-int.h: Remove mentioning cover classes from the file.
2333         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
2334
2335         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
2336         classes from the file.
2337         (struct reg_pref): Rename coverclass into allocnoclass.
2338         (reg_cover_class): Rename to reg_allocno_class.
2339
2340         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
2341
2342         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
2343
2344         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
2345
2346         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
2347
2348         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
2349
2350         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
2351
2352         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
2353
2354         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
2355
2356         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
2357
2358         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
2359
2360         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
2361         (i386_ira_cover_classes): Ditto.
2362
2363         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
2364
2365         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
2366
2367         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
2368
2369         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
2370
2371         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
2372
2373         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
2374
2375         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
2376         (mips_ira_cover_classes): Ditto.
2377
2378         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
2379
2380         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
2381
2382         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
2383
2384         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
2385
2386         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
2387
2388         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
2389         (IRA_COVER_CLASSES_VSX): Ditto.
2390
2391         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
2392         (rs6000_ira_cover_classes): Ditto.
2393
2394         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
2395
2396         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
2397
2398         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
2399
2400         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
2401
2402         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
2403
2404         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
2405
2406         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
2407
2408         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
2409
2410         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
2411
2412         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
2413
2414 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
2415
2416         PR debug/48253
2417         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
2418         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
2419         dw_fde_unlikely_section_end_label, cold_in_std_section,
2420         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
2421         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
2422         fields.
2423         (output_fde): Use dw_fde_second_{begin,end} if second is
2424         true, otherwise dw_fde_{begin,end}.
2425         (output_call_frame_info): Test dw_fde_second_begin != NULL
2426         instead of dw_fde_switched_sections.
2427         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
2428         fields, initialize new fields.  Initialize in_std_section
2429         unconditionally from the first partition.
2430         (dwarf2out_end_epilogue): Don't override dw_fde_end when
2431         dw_fde_second_begin is non-NULL.
2432         (dwarf2out_switch_text_section): Stop initializing removed
2433         dw_fde_struct fields, initialize new fields, initialize
2434         also dw_fde_end here.  Set dw_fde_switch_cfi even when
2435         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
2436         (struct var_loc_list_def): Add last_before_switch field.
2437         (arange_table, arange_table_allocated, arange_table_in_use,
2438         ARANGE_TABLE_INCREMENT, add_arange): Removed.
2439         (size_of_aranges): Count !in_std_section and !second_in_std_section
2440         hunks in fdes, instead of looking at arange_table_in_use.
2441         (output_aranges): Add aranges_length argument, don't call
2442         size_of_aranges here.  Instead of using aranges_table*
2443         emit ranges for fdes when !in_std_section resp.
2444         !second_in_std_section.
2445         (dw_loc_list): Break ranges crossing section switch.
2446         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
2447         use dw_fde_second_end instead of dw_fde_end as end of last range.
2448         (gen_subprogram_die): Don't call add_arange.  Use
2449         dw_fde_{begin,end} for first partition and if switched
2450         section dw_fde_second_{begin,end} for the second.
2451         (var_location_switch_text_section_1,
2452         var_location_switch_text_section): New functions.
2453         (dwarf2out_begin_function): Initialize cold_text_section even
2454         when function_section () isn't text_section.
2455         (prune_unused_types): Don't walk arange_table.
2456         (dwarf2out_finish): Don't needlessly test
2457         flag_reorder_blocks_and_partition when testing cold_text_section_used.
2458         If info_section_emitted, call size_of_aranges and if it indicates
2459         non-empty .debug_aranges, call output_aranges with the computed
2460         size.  Stop using removed dw_fde_struct fields, use
2461         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
2462         for second.
2463
2464         PR debug/48203
2465         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
2466         create ENTRY_VALUE if incoming or address of incoming's MEM
2467         is a hard REG.
2468         * dwarf2out.c (mem_loc_descriptor): Don't emit
2469         DW_OP_GNU_entry_value of DW_OP_fbreg.
2470         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
2471         on ENTRY_VALUE is able to find the canonical parameter VALUE.
2472         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
2473         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
2474         ENTRY_VALUE_EXPs.
2475         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
2476         is a REG_P or MEM_P with REG_P address, compute hash directly
2477         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
2478         (preserve_only_constants): Don't clear VALUES forwaring
2479         ENTRY_VALUE to some other VALUE.
2480
2481 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
2482
2483         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
2484         instead of GEN_INT.
2485
2486 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
2487
2488         * cfgexpand.c (expand_gimple_cond): Always set the source location and
2489         block before expanding the statement.
2490         (expand_gimple_stmt_1): Likewise.  Set them here...
2491         (expand_gimple_stmt): ...and not here.  Tidy.
2492         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
2493         unknown.
2494
2495 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
2496
2497         * Makefile.in: New rule for cprop.o.
2498         * gcse.c: Move constant/copy propagation to cprop.c.
2499         (compute_local_properties): Only handle expression tables.
2500         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
2501         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
2502         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
2503         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
2504         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
2505         compute_cprop_data, find_used_regs, try_replace_reg,
2506         find_avail_set, cprop_jump, constprop_register, cprop_insn,
2507         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
2508         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
2509         find_bypass_set, reg_killed_on_edge, bypass_block,
2510         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
2511         execute_rtl_cprop, pass_rtl_cprop): Move to...
2512         * cprop.c: ...here.  New file, constant/copy propagation for RTL
2513         moved from gcse.c to here with minor cleanups in duplicated code.
2514
2515 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
2516
2517         * config/i386/i386.c (flag_opts): Fix a typo in
2518         -mavx256-split-unaligned-store.
2519
2520 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
2521
2522         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2523         LIBCALL_VALUE): Remove macros.
2524         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2525         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2526         (h8300_function_value, h8300_libcall_value,
2527         h8300_function_value_regno_p): New functions.
2528
2529 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
2530
2531         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
2532
2533 2011-03-28  Jeff Law  <law@redhat.com>
2534
2535         * tree-ssa-threadupdate.c (redirect_edges): Call
2536         create_edge_and_update_destination_phis as needed.
2537         (create_edge_and_update_destination_phis): Accept new BB argument.
2538         All callers updated.
2539         (thread_block): Do not update the profile when threading around
2540         intermediate blocks.
2541         (thread_single_edge): Likewise.
2542         (determine_bb_domination_status): If BB is not a successor of the
2543         loop header, return NONDOMINATING.
2544         (register_jump_thread): Note when we register a jump thread around
2545         an intermediate block.
2546         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
2547         (thread_across_edge): Use it.
2548
2549 2011-03-28  Tristan Gingold  <gingold@adacore.com>
2550
2551         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
2552         when for_return is 2.
2553
2554 2011-03-28  Jeff Law  <law@redhat.com>
2555
2556         * var-tracking.c (canonicalize_values_mark): Delete unused
2557         lhs assignment.
2558         (canonicalize_values_star, set_variable_part): Likewise.
2559         (clobber_variable_part, delete_variable_part): Likewise.
2560
2561 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
2562
2563         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
2564
2565 2011-03-28  Martin Jambor  <mjambor@suse.cz>
2566
2567         * tree-inline.c (expand_call_inline): Do not check that destination
2568         node is analyzed.
2569         (optimize_inline_calls): Assert that destination node is analyzed.
2570         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
2571         not call tree_lowering_passes.
2572         * cgraph.h (cgraph_analyze_function): Declare.
2573         * cgraphunit.c (cgraph_analyze_function): Make public.
2574
2575 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
2576
2577         * config/sparc/sparc-opts.h: New.
2578         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
2579         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
2580         (sparc_option_override): Store processor_type enumeration rather
2581         than string in cpu_default.  Remove name and enumeration from
2582         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
2583         without using sparc_select.  Use target_flags_explicit instead of
2584         fpu_option_set.
2585         * config/sparc/sparc.h (enum processor_type): Move to
2586         sparc-opts.h.
2587         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
2588         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
2589         HeaderInclude entry.
2590         (mcpu=, mtune=): Use Var and Enum.
2591         (sparc_processor_type): New Enum and EnumValue entries.
2592
2593 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2594             Iain Sandoe  <iains@gcc.gnu.org>
2595
2596         PR target/48245
2597         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
2598
2599 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
2600
2601         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
2602         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
2603         Insert new statements at it in lieu of STMT.
2604         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
2605         * tree-vect-stmts.c (vectorizable_store): Likewise.
2606         (vectorizable_load): Likewise.
2607
2608 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
2609
2610         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
2611         (divtf3): Ditto.
2612         (multf3): Ditto.
2613         (subtf3): Ditto.
2614
2615 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2616
2617         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
2618         unaligned 256bit load/store.
2619         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
2620         (*avx_movdqu<avxmodesuffix>): Likewise.
2621
2622 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2623
2624         PR target/48288
2625         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
2626         * config/pa/pa.md (iordi3): Use new predicate in expander.
2627         (iorsi3): Likewise.
2628
2629 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
2630
2631         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
2632         FUNCTION_VALUE_REGNO_P): Remove macros.
2633         * config/mips/mips-protos.h (mips_function_value): Remove.
2634         * config/mips/mips.c (mips_function_value): Rename to...
2635         (mips_function_value_1): ... this. Make static.  Handle receiving
2636         the function type in 'fn_decl_or_type' argument.
2637         (mips_function_value, mips_libcall_value,
2638         mips_function_value_regno_p): New function.
2639         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2640         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2641
2642 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2643
2644         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
2645         and -mavx256-split-unaligned-store.
2646         (ix86_option_override_internal): Split 32-byte AVX unaligned
2647         load/store by default.
2648         (ix86_avx256_split_vector_move_misalign): New.
2649         (ix86_expand_vector_move_misalign): Use it.
2650
2651         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
2652         -mavx256-split-unaligned-store.
2653
2654         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
2655         256bit load/store.  Generate unaligned store on misaligned memory
2656         operand.
2657         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
2658         256bit load/store.
2659         (*avx_movdqu<avxmodesuffix>): Likewise.
2660
2661         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
2662         -mavx256-split-unaligned-store.
2663
2664 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
2665
2666         PR target/38598
2667         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
2668         Update commentary.
2669
2670 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
2671
2672         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
2673         opno arguments with an expand_operand.  Use create_input_operand.
2674         (mips_prepare_builtin_target): Delete.
2675         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
2676         functions.
2677         (mips_expand_builtin_direct): Use create_output_operand and
2678         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
2679         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
2680         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
2681
2682 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
2683
2684         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
2685         function.
2686         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
2687
2688 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2689
2690         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
2691         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
2692         basic blocks and call commit_edge_insertions directly.
2693         (fixup_abnormal_edges): Move from here to...
2694         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
2695         on the edges and return whether some have actually been inserted.
2696         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
2697         compensation code.
2698
2699 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
2700
2701         PR rtl-optimization/48144
2702         * sel-sched-ir.c (merge_history_vect): Factor out from ...
2703         (merge_expr_data): ... here.
2704         (av_set_intersect): Rename to av_set_code_motion_filter.
2705         Update all callers.  Call merge_history_vect when an expression
2706         is found in both sets.
2707         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
2708
2709 2011-03-26  Alan Modra  <amodra@gmail.com>
2710
2711         * config/rs6000/predicates.md (word_offset_memref_op): Handle
2712         cmodel medium addresses.
2713         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
2714         64-bit gpr loads and stores.
2715         (rs6000_secondary_reload_ppc64): New function.
2716         * config/rs6000/rs6000-protos.h: Declare it.
2717         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
2718
2719 2011-03-26  Alan Modra  <amodra@gmail.com>
2720
2721         PR target/47487
2722         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
2723         GNU Go in traceback table.
2724
2725 2011-03-25  Richard Henderson  <rth@redhat.com>
2726
2727         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
2728         if there are exactly 6 operands.
2729         (set_storage_via_setmem): Similarly.
2730
2731 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2732
2733         * collect2.c (write_c_file_stat): Handle backslash
2734         as right-hand directory separator.
2735         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
2736         checking just for slash.
2737         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
2738         instead of checking for trailing slash.
2739         * gcc.c (record_temp_file): Use filename_cmp instead
2740         of strcmp.
2741         (do_spec_1): Likewise.
2742         (replace_outfile_spec_function): Likewise.
2743         (is_directory): Use filename_ncmp instead of strncmp.
2744         (print_multilib_info): Likewise.
2745         * gcov.c (find_source): Use filename_cmp instead
2746         instead of strcmp.
2747         (make_gcov_file_name): Fix order of slash/backslash
2748         checks.
2749         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
2750         (add_standard_paths): Likewise.
2751         * mips-tfile.c (saber_stop): Handle backslash.
2752         * prefix.c (update_path): Use filename_ncmp instead of
2753         strncmp.
2754         * profile.c (output_location): Use filename_cmp instead
2755         of strcmp.
2756         * read-md.c (handle_toplevel_file): Handle backslash.
2757         * tlink.c (frob_extension):  Likewise.
2758         * tree-cfg.c (same_line_p): Use filename_cmp instead of
2759         strcmp.
2760         * tree-dump.c (dequeue_and_dump): Handle backslash.
2761         * tree.c (get_file_function_name): Likewise.
2762         * gengtype.c (read_input_list): Likewise.
2763         (get_file_realbasename): Likewise.
2764         (get_output_file_with_visibility): Use filename_cmp
2765         instead of strcmp.
2766
2767 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
2768
2769         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
2770         case to VFPv1.
2771
2772 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
2773
2774         * fold-const.c (expr_location_or): New function.
2775         (fold_truth_not_expr): Call it.
2776
2777 2011-03-25  Jeff Law  <law@redhat.com>
2778
2779         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
2780         va_end.
2781         * c-family/c-common.c (def_fn_type): Likewise.
2782         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
2783         * emit-rtl.c (gen_rtvec): Likewise.
2784         * lto/lto-lang.c (def_fn_type): Likewise.
2785
2786 2011-03-25  Richard Guenther  <rguenther@suse.de>
2787
2788         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
2789         also generate copies.
2790         (fini_copy_prop): Handle constant values properly.
2791
2792 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
2793
2794         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
2795         mode size instead of bitsize with DWARF2_ADDR_SIZE.
2796         (hash_loc_operands, compare_loc_operands): Handle
2797         DW_OP_GNU_entry_value.
2798
2799 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2800
2801         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
2802         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
2803         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
2804         comment and use macro TARGET_64BIT_MS_ABI instead.
2805         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
2806         and change default behavior for 32-bit MS_ABI.
2807         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
2808         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
2809         32-bit, too.
2810         (ix86_cfun_abi): Likewise.
2811         (ix86_maybe_switch_abi): Adjust comment.
2812         (init_cumulative_args): Check for bit-ness in MS_ABI case.
2813         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
2814         instead of checking for SYSV_ABI.
2815         (ix86_nsaved_sseregs): Likewise.
2816         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
2817         to 16 bytes.
2818         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
2819         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
2820         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
2821         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
2822         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
2823
2824 2011-03-25  Richard Guenther  <rguenther@suse.de>
2825
2826         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
2827         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
2828         (verify_gimple): Remove.
2829         * tree-cfg.c (verify_gimple_call): Merge verification
2830         from verify_stmts.
2831         (verify_gimple_phi): Merge verification from verify_stmts.
2832         (verify_gimple_label): New function.
2833         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
2834         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
2835         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
2836         (verify_stmts): Rename to verify_gimple_in_cfg.
2837         (verify_gimple_in_cfg): New function.
2838         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
2839         * tree-ssa.c (verify_ssa): Likewise.
2840         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
2841
2842 2011-03-25  Richard Guenther  <rguenther@suse.de>
2843
2844         * passes.c (init_optimization_passes): Add FRE pass after
2845         early SRA.
2846
2847 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
2848             Andrew Stubbs  <ams@codesourcery.com>
2849
2850         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
2851         for Cortex-A8.
2852         (arm_movdi_vfp_cortexa8): New pattern.
2853         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
2854         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
2855         instructions when tuning for Cortex-A8.  Set attribute "arch".
2856         * config/arm/arm.md: Move include arm-tune.md up a bit.
2857         (define_attr "arch"): Add "onlya8" and "nota8" values.
2858         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
2859
2860 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
2861
2862         PR bootstrap/48282
2863         Revert:
2864         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2865
2866         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
2867         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
2868         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
2869         * passes.c (init_optimization_passes): Move
2870         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
2871
2872 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2873
2874         * c-typeck.c (comptypes_internal): Replace target
2875         hook call of comp_type_attributes by version in tree.c file.
2876         * gimple.c (gimple_types_compatible_p_1): Likewise.
2877         * tree-ssa.c (useless_type_conversion_p): Likewise.
2878         * tree.c (build_type_attribute_qual_variant): Likewise.
2879         (attribute_value_equal): New static helper function.
2880         (comp_type_attributes): New function.
2881         (merge_attributes): Use attribute_value_equal for comparison.
2882         (attribute_list_contained): Likewise.
2883         * tree.h (comp_type_attributes): New prototype.
2884
2885 2011-03-25  Richard Guenther  <rguenther@suse.de>
2886
2887         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
2888         of complex types at -O0.
2889         (verify_gimple_assign_binary): Likewise.
2890         (verify_gimple_assign_ternary): Likewise.
2891
2892 2011-03-24  Mark Wielaard  <mjw@redhat.com>
2893
2894         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
2895         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
2896
2897 2011-03-24  Mark Wielaard  <mjw@redhat.com>
2898
2899         PR debug/48041
2900         * dwarf2out.c (output_abbrev_section): Only write table when
2901         abbrev_die_table_in_use > 1.
2902
2903 2011-02-24  Richard Henderson  <rth@redhat.com>
2904
2905         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
2906         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
2907         (alpha_expand_unaligned_load_words): Use extql.
2908         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
2909         (emit_insxl): Handle all modes for consistency.
2910
2911 2011-02-24  Richard Henderson  <rth@redhat.com>
2912
2913         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
2914         (alpha_expand_unaligned_load): Likewise.
2915         (alpha_expand_unaligned_store): Likewise.
2916         (alpha_expand_unaligned_load_words): Likewise.
2917         (alpha_expand_unaligned_store_words): Likewise.
2918         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
2919         (alpha_split_lock_test_and_set_12): Likewise.
2920         (print_operand, alpha_fold_builtin_extxx): Likewise.
2921         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
2922         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
2923         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
2924         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
2925         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
2926         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
2927         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
2928         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
2929         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
2930         (extwl, extll, extql): Similarly.
2931         (inswh, inslh, insqh): Similarly.
2932         (mskbl, mskwl, mskll, mskql): Similarly.
2933         (mskwh, msklh, mskqh): Similarly.
2934
2935 2011-02-24  Richard Henderson  <rth@redhat.com>
2936
2937         * config/alpha/alpha.md (attribute isa): Add er, ner.
2938         (attribute enabled): Handle them.
2939         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
2940
2941 2011-02-24  Richard Henderson  <rth@redhat.com>
2942
2943         * config/alpha/alpha.md (attribute isa): Add vms.
2944         (attribute enabled): Handle it.
2945         (*movsf): Merge *movsf_{nofix,fix,nofp}.
2946         (*movdf): Merge *movdf_{nofix,fix,nofp}.
2947         (*movtf): Rename from *movtf_internal for consistency.
2948         (*movsi): Merge with *movsi_nt_vms.
2949         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
2950         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
2951         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
2952         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
2953
2954 2011-02-24  Richard Henderson  <rth@redhat.com>
2955
2956         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
2957         (extendqisi2, extendhisi2): Likewise.
2958         (extendqidi2): Simplify BWX/non-BWX expansions.
2959         (extendhidi2): Similarly.
2960
2961 2011-02-24  Richard Henderson  <rth@redhat.com>
2962
2963         * config/alpha/alpha.md (attribute isa): New.
2964         (attribute enabled): New.
2965         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
2966         (zero_extendqisi2, zero_extendqidi2): Similarly.
2967         (zero_extendhisi2, zero_extendhidi2): Similarly.
2968         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
2969
2970 2011-02-24  Richard Henderson  <rth@redhat.com>
2971
2972         * config/alpha/predicates.md (input_operand): Revert last change;
2973         update comment to mention 32-bit VMS rather than Windows.
2974
2975 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2976
2977         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
2978         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
2979         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
2980         * passes.c (init_optimization_passes): Move
2981         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
2982
2983 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2984
2985         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
2986
2987 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
2988
2989         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
2990         correctly.
2991
2992 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
2993
2994         PR debug/48204
2995         * simplify-rtx.c (simplify_const_unary_operation): Call
2996         real_convert when changing mode class with FLOAT_EXTEND.
2997
2998 2011-03-24  Nick Clifton  <nickc@redhat.com>
2999
3000         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
3001         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
3002         * config/rx/rx.c (rx_option_override): Set align_jumps,
3003         align_loops and align_labels if not set by the user.
3004         (rx_align_for_label): New function.
3005         (rx_max_skip_for_label): New function.
3006         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
3007         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
3008         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
3009         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
3010         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
3011
3012 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3013
3014         PR rtl-optimization/48263
3015         * optabs.c (expand_binop_directly): Reinstate convert_modes code
3016         and original commutative_p handling.  Use maybe_gen_insn.
3017
3018 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3019
3020         * reload.c (find_reloads_subreg_address): Add address_reloaded
3021         parameter and return true there if the full address has been
3022         reloaded.
3023         (find_reloads_toplev): Pass address_reloaded flag.
3024         (find_reloads_address_1): Don't use address_reloaded parameter.
3025
3026 2011-03-24  Jeff Law  <law@redhat.com>
3027
3028         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
3029         unused variable "ann".
3030         (remove_unused_locals): Likewise.
3031
3032         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
3033         statement.
3034
3035         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
3036         after it is freed.
3037
3038 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3039
3040         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
3041         for invalid symbolic addresses.
3042         (s390_secondary_reload): Don't use s390_check_symref_alignment for
3043         larl operands.
3044
3045 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3046
3047         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
3048         the argument in calls to fold_truth_not_expr.
3049
3050 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3051
3052         * tree.c (record_node_allocation_statistics): New function.
3053         (make_node_stat, copy_node_stat, build_string): Call it.
3054         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
3055         (build1_stat, build_omp_clause): Likewise.
3056
3057 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3058
3059         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
3060         last commit.
3061
3062 2011-03-24  Richard Guenther  <rguenther@suse.de>
3063
3064         PR tree-optimization/48271
3065         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
3066         blocks that still exist.
3067
3068 2011-03-24  Richard Guenther  <rguenther@suse.de>
3069
3070         PR tree-optimization/48270
3071         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
3072         not free datarefs before ddrs.
3073
3074 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3075
3076         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
3077         from the address built for a reference with variable offset.
3078
3079 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
3080
3081         PR target/48237
3082         * config/i386/i386.md (*movdf_internal_rex64): Do not split
3083         alternatives that can be handled with movq or movabsq insn.
3084         (*movdf_internal): Disable for !TARGET_64BIT.
3085         (*movdf_internal_nointeger): Ditto.
3086         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
3087
3088 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3089
3090         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
3091         (FUNCTION_ARG_ADVANCE): Likewise.
3092         * tm.texi.in: Change references to them to hook references.
3093         * tm.texi: Regenerate.
3094         * targhooks.c (default_function_arg): Eliminate check for target macro.
3095         (default_function_incoming_arg): Likewise.
3096         (default_function_arg_advance): Likewise.
3097         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
3098         (function_arg_advance): Likewise.
3099         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
3100
3101 2011-03-24  Richard Guenther  <rguenther@suse.de>
3102
3103         PR middle-end/48269
3104         * tree-object-size.c (addr_object_size): Do not double-account
3105         for MEM_REF offsets.
3106
3107 2011-03-24  Diego Novillo  <dnovillo@google.com>
3108
3109         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
3110         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
3111         (lto_input_data_block): Move from lto-opts.c.  Make extern.
3112         Update all users.
3113         (lto_input_string): Rename from input_string.  Make extern.
3114         Update all users.
3115         * lto-streamer-out.c (lto_output_string_with_length): Rename from
3116         output_string_with_length.
3117         Output 0 to indicate a non-NULL string.  Update all callers to
3118         not emit 0.
3119         (lto_output_string): Rename from output_string.  Make extern.
3120         Update all users.
3121         (lto_output_decl_state_streams): Make extern.
3122         (lto_output_decl_state_refs): Make extern.
3123         * lto-streamer.h (lto_input_string): Declare.
3124         (lto_input_data_block): Declare.
3125         (lto_output_string): Declare.
3126         (lto_output_string_with_length): Declare.
3127         (lto_output_decl_state_streams): Declare.
3128         (lto_output_decl_state_refs): Declare.
3129
3130 2011-03-24  Richard Guenther  <rguenther@suse.de>
3131
3132         PR tree-optimization/46562
3133         * tree.c (build_invariant_address): New function.
3134         * tree.h (build_invariant_address): Declare.
3135         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
3136         a renamed function moved ...
3137         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
3138         Take valueization callback parameter.
3139         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
3140         * gimple-fold.h: New file.
3141         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
3142         (ccp_fold, fold_const_aggregate_ref,
3143         fold_ctor_reference, fold_nonarray_ctor_reference,
3144         fold_array_ctor_reference, fold_string_cst_ctor_reference,
3145         get_base_constructor): Move ...
3146         * gimple-fold.c: ... here.
3147         (gimple_fold_stmt_to_constant_1): New function
3148         split out from ccp_fold.  Take a valueization callback parameter.
3149         Valueize all operands.
3150         (gimple_fold_stmt_to_constant): New wrapper function.
3151         (fold_const_aggregate_ref_1): New function split out from
3152         fold_const_aggregate_ref.  Take a valueization callback parameter.
3153         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
3154         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
3155         invariant POINTER_PLUS_EXPRs to invariant form.
3156         (vn_valueize): New function.
3157         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
3158         * tree-vrp.c (vrp_valueize): New function.
3159         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
3160         to fold statements to constants.
3161         * tree-ssa-pre.c (eliminate): Properly guard propagation of
3162         function declarations.
3163         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
3164         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
3165
3166 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3167
3168         * config/h8300/predicates.md (jump_address_operand): Fix register
3169         mode check.
3170
3171 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
3172
3173         * doc/invoke.texi (max-stores-to-sink): Document.
3174         * params.h (MAX_STORES_TO_SINK): Define.
3175         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
3176         if either vectorization or if-conversion is disabled.
3177         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
3178         tree-vect-data-refs.c vect_equal_offsets.
3179         (dr_equal_offsets_p): New function.
3180         (find_data_references_in_bb): Remove static.
3181         * tree-data-ref.h (find_data_references_in_bb): Declare.
3182         (dr_equal_offsets_p): Likewise.
3183         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
3184         (vect_drs_dependent_in_basic_block): Update calls to
3185         vect_equal_offsets.
3186         (vect_check_interleaving): Likewise.
3187         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
3188         (cond_if_else_store_replacement): Rename to...
3189         (cond_if_else_store_replacement_1): ... this.  Change arguments and
3190         documentation.
3191         (cond_if_else_store_replacement): New function.
3192         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
3193         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
3194
3195 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
3196
3197         PR target/46934
3198         * config/arm/arm.md (casesi): Use the gen_int_mode() function
3199         to subtract lower bound instead of GEN_INT().
3200
3201 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
3202
3203         PR other/48179
3204         PR other/48221
3205         PR other/48234
3206         * doc/extend.texi (Alignment): Move section to match order in TOC.
3207         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
3208         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
3209
3210 2011-03-23  Jeff Law  <law@redhat.com>
3211
3212         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
3213         before removing the edge.
3214
3215         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
3216         it may have been freed by redirect_branch_edge or
3217         redirect_edge_succ_nodup.
3218
3219 2011-03-23  Richard Guenther  <rguenther@suse.de>
3220
3221         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
3222         (check_va_list_escapes): Likewise.
3223         (check_all_va_list_escapes): Likewise.
3224
3225 2011-03-23  Richard Guenther  <rguenther@suse.de>
3226
3227         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
3228         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
3229         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
3230         (alias.o): Likewise.
3231         (ipa-type-escape.o): Remove.
3232         (ipa-struct-reorg.o): Likewise.
3233         (GTFILES): Remove ipa-struct-reorg.c.
3234         * alias.c: Do not include ipa-type-escape.h.
3235         * tree-ssa-alias.c: Likewise.
3236         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
3237         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
3238         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
3239         and ipa-type-escape passes.
3240         * tree-pass.h (pass_ipa_type_escape): Remove.
3241         (pass_ipa_struct_reorg): Likewise.
3242         * ipa-struct-reorg.h: Remove.
3243         * ipa-struct-reorg.c: Likewise.
3244         * ipa-type-escape.h: Likewise.
3245         * ipa-type-escape.c: Likewise.
3246         * doc/invoke.texi (-fipa-struct-reorg): Remove.
3247         (--param struct-reorg-cold-struct-ratio): Likewise.
3248         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3249         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3250         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
3251
3252 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3253
3254         * config/s390/2084.md: Enable all insn reservations also for z9_ec
3255         cpu attribute value.
3256         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
3257         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
3258         * config/s390/s390.c (processor_flags_table): New constant array.
3259         (s390_handle_arch_option): Remove.
3260         (s390_handle_option): Remove s390_handle_arch_option invocations
3261         and OPT_mwarn_framesize_ handling.
3262         (s390_option_override): Remove s390_handle_arch_option invocation.
3263         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
3264         warnings.
3265         * config/s390/s390.md (cpu attribute): Add z9_ec value.
3266         * config/s390/s390.opt (s390_tune, s390_arch)
3267         (march=): Replace s390_arch_option enum and values with
3268         processor_type.  Set variable name to s390_arch.  Set
3269         initialization value.
3270         (mtune=): Replace s390_arch_option with processor_type.  Set
3271         variable name to s390_tune.  Set initialization value.
3272
3273 2011-03-23  Julian Brown  <julian@codesourcery.com>
3274
3275         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
3276         accesses which are not naturally aligned.
3277
3278 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3279
3280         PR target/47553
3281         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
3282
3283 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3284
3285         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
3286         parameter from "int" to "enum insn_code".
3287         (expand_operand_type): New enum.
3288         (expand_operand): New structure.
3289         (create_expand_operand): New function.
3290         (create_fixed_operand, create_output_operand): Likewise
3291         (create_input_operand, create_convert_operand_to): Likewise.
3292         (create_convert_operand_from, create_address_operand): Likewise.
3293         (create_integer_operand): Likewise.
3294         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
3295         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
3296         (expand_insn, expand_jump_insn): Likewise.
3297         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
3298         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
3299         (expand_movstr, expand_builtin___clear_cache): Likewise.
3300         (expand_builtin_lock_release): Likewise.
3301         * explow.c (allocate_dynamic_stack_space): Likewise.
3302         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
3303         and use the default handling in that case.
3304         * expmed.c (check_predicate_volatile_ok): Delete.
3305         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
3306         (emit_cstore): Likewise.
3307         * expr.c (emit_block_move_via_movmem): Likewise.
3308         (set_storage_via_setmem, expand_assignment): Likewise.
3309         (emit_storent_insn, try_casesi): Likewise.
3310         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
3311         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
3312         (expand_vec_shift_expr, expand_binop_directly): Likewise.
3313         (expand_twoval_unop, expand_twoval_binop): Likewise.
3314         (expand_unop_direct, emit_indirect_jump): Likewise.
3315         (emit_conditional_move, vector_compare_rtx): Likewise.
3316         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
3317         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
3318         (expand_sync_lock_test_and_set): Likewise.
3319         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
3320         (emit_unop_insn): Likewise.
3321         (expand_copysign_absneg): Change icode to an insn_code.
3322         (create_convert_operand_from_type): New function.
3323         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
3324         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
3325         (expand_insn, expand_jump_insn): Likewise.
3326         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
3327         than const_int_operand for operand 2.
3328
3329 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3330
3331         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
3332         if possible.
3333
3334 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3335
3336         * emit-rtl.c (emit_pattern_before_noloc): New function.
3337         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
3338         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
3339         (emit_pattern_after_noloc): New function.
3340         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
3341         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
3342
3343 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3344
3345         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
3346         (__ffsDI2): Likewise.
3347
3348 2011-03-22  Richard Henderson  <rth@redhat.com>
3349
3350         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
3351         of !TARGET_ABI_OPEN_VMS.
3352         (alpha_trampoline_init, alpha_start_function): Likewise.
3353         (alpha_expand_epilogue, alpha_file_start): Likewise.
3354         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
3355         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
3356         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
3357         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
3358         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
3359
3360 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3361
3362         * config/s390/s390-opts.h: New.
3363         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
3364         s390_arch_flags, s390_warn_framesize, s390_stack_size,
3365         s390_stack_guard): Remove.
3366         (s390_handle_arch_option): Return void.  Take enum
3367         s390_arch_option value instead of string and searching array.
3368         (s390_handle_option): Don't assert that global structures are in
3369         use.  Access variables via opts pointer.  Use error_at.  Don't use
3370         sscanf for -mstack-guard= or -mstack-size=.  Update call to
3371         s390_handle_arch_option.
3372         (s390_option_override): Update call to s390_handle_arch_option.
3373         (s390_emit_prologue): Use %d format for s390_stack_size in
3374         diagnostic.  Use %wd for HOST_WIDE_INT.
3375         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
3376         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
3377         * config/s390/s390.opt (config/s390/s390-opts.h): New
3378         HeaderInclude entry.
3379         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
3380         s390_arch_flags, s390_warn_framesize): New Variable entries.
3381         (s390_arch_option): New Enum and EnumValue entries.
3382         (march=): Use Enum instead of Var.
3383         (mstack-guard=, mstack-size=): Use UInteger and Var.
3384         (mtune=): Use Enum.
3385
3386 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3387
3388         * config/score/score.c (score_handle_option): Don't assert that
3389         global structures are in use.  Access target_flags via opts
3390         pointer.  Use value of -march= option to determine target_flags
3391         settings.
3392         * config/score/score.opt (march=): Use Enum.
3393         (score_arch): New Enum and EnumValue entries.
3394
3395 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3396
3397         * config/mep/mep.c (option_mtiny_specified): Remove.
3398         (mep_option_override): Move register handling for -mivc2 from
3399         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
3400         instead of option_mtiny_specified.
3401         (mep_handle_option): Access target_flags via opts pointer.  Don't
3402         assert that global structures are in use.  Defer part of -mivc2
3403         handling and move it to mep_option_override.
3404         * config/mep/mep.opt (IVC2): New Mask entry.
3405         (mivc2): Use Var and Defer instead of Mask.
3406
3407 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3408
3409         * config/v850/v850-opts.h: New.
3410         * config/v850/v850.c (small_memory): Replace with
3411         small_memory_physical_max array.  Make that array static const.
3412         (v850_handle_memory_option): Take integer value of argument.  Take
3413         gcc_options pointer, option text and location.  Return void.
3414         Update for changes to small memory structures.
3415         (v850_handle_option): Access target_flags via opts pointer.  Don't
3416         assert that global structures are in use.  Update calls to
3417         v850_handle_memory_option.
3418         (v850_encode_data_area): Update references to small memory settings.
3419         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
3420         (enum small_memory_type): Move to v850-opts.h.
3421         * config/v850/v850.opt (config/v850/v850-opts.h): New
3422         HeaderInclude entry.
3423         (small_memory_max): New Variable entry.
3424         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
3425         (mtda, mzda): Likewise.
3426
3427 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3428
3429         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
3430         pointer.  Don't assert that global structures are in use.
3431
3432 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3433
3434         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
3435         via opts pointer.  Don't assert that global structures are in use.
3436
3437 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3438
3439         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
3440         (munix=93): Use Var.
3441         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
3442         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
3443         * config/pa/pa-opts.h: New.
3444         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
3445         (pa_handle_option): Don't assert that global structures are in
3446         use.  Access target_flags via opts pointer.  Don't handle
3447         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
3448         OPT_munix_98 here.
3449         (pa_option_override): Handle deferred OPT_mfixed_range_.
3450
3451 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3452
3453         * config/mn10300/mn10300-opts.h: New.
3454         * config/mn10300/mn10300.c (mn10300_processor,
3455         mn10300_tune_string): Remove.
3456         (mn10300_handle_option): Don't assert that global structures are
3457         in use.  Access mn10300_processor via opts pointer.  Don't handle
3458         OPT_mtune_ here.
3459         * config/mn10300/mn10300.h (enum processor_type): Move to
3460         mn10300-opts.h.
3461         (mn10300_processor): Remove.
3462         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
3463         HeaderInclude entry.
3464         (mn10300_processor): New Variable entry.
3465         (mtune=): Use Var.
3466
3467 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3468
3469         * config/microblaze/microblaze.c: Don't include opts.h.
3470         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
3471         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
3472         (mno-clearbss): Use Var and Warn.
3473
3474 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3475
3476         * config/m32r/m32r-opts.h: New.
3477         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
3478         (m32r_handle_option): Don't assert that global structures are in
3479         use.  Access target_flags and m32r_cache_flush_func via opts
3480         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
3481         OPT_mno_flush_trap here.
3482         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
3483         include of m32r-opts.h.
3484         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
3485         HeaderInclude entry.
3486         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
3487         (mmodel=): Use Enum and Var.
3488         (m32r_model): New Enum and EnumValue entries.
3489         (mno-flush-trap): Use Var.
3490         (msdata=): Use Enum and Var.
3491         (m32r_sdata): New Enum and EnumValue entries.
3492
3493 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3494
3495         * config/m32c/m32c.c: Don't include opts.h.
3496         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
3497         m32c_handle_option): Remove.
3498         (m32c_option_override): Check global_options_set.x_target_memregs
3499         instead of target_memregs_set.
3500         * config/m32c/m32c.h (target_memregs): Remove.
3501         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
3502         variable.
3503
3504 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3505
3506         * config/iq2000/iq2000-opts.h: New.
3507         * config/iq2000/iq2000.c: Don't include opts.h.
3508         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
3509         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
3510         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
3511         HeaderInclude entry.
3512         (iq2000_tune): New Variable entry.
3513         (march=): Add comment.  Use Enum.
3514         (iq2000_arch): New Enum and EnumValue entries.
3515         (mcpu=): Use Enum and Var.
3516         (iq2000_tune): New Enum and EnumValue entries.
3517
3518 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3519
3520         * config/ia64/ia64-opts.h: New.
3521         * config/ia64/ia64.c (ia64_tune): Remove.
3522         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
3523         here.  Use error_at.
3524         (ia64_option_override): Handle deferred OPT_mfixed_range_.
3525         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
3526         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
3527         HeaderInclude entry.
3528         (ia64_tune): New Variable entry.
3529         (mfixed-range=): Use Defer and Var.
3530         (mtune=): Use Enum and Var.
3531         (ia64_tune): New Enum and EnumValue entries.
3532
3533 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3534
3535         * config/frv/frv-opts.h: New.
3536         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
3537         frv-opts.h.
3538         (frv_cpu_type): Remove.
3539         * config/frv/frv.c: Don't include opts.h.
3540         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
3541         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
3542         (frv_cpu_type): New Variable entry.
3543         (frv_cpu): New Enum and EnumValue entries.
3544
3545 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3546
3547         * config/cris/cris.c (cris_handle_option): Access target_flags via
3548         opts pointer.  Don't assert that global structures are in use.
3549         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
3550         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
3551
3552 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3553
3554         * config/bfin/bfin-opts.h: New.
3555         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
3556         bfin_si_revision, bfin_workarounds): Remove.
3557         (bfin_cpus): Make static const.
3558         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
3559         not bfin_lib_id_given.
3560         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
3561         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
3562         pointer. Use error_at.  Don't assert that global structures are in use.
3563         * config/bfin/bfin.h: Include bfin-opts.h.
3564         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
3565         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
3566         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
3567         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
3568         entries.
3569
3570 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3571
3572         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
3573         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
3574         or -msoft-float here.
3575         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
3576         -msoft-float and -mhard-float.
3577         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
3578         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
3579         msoft-float.
3580         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
3581         -msoft-float.
3582         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
3583         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
3584         not mhard-float.
3585         (LIBGCC_SPEC): Don't handle -msoft-float.
3586         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
3587         -mhard-float.
3588         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
3589         msoft-float.
3590         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
3591         -mfloat-abi=*, not -msoft-float and -mhard-float.
3592         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
3593         -msoft-float.
3594         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
3595         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
3596         mhard-float and msoft-float.
3597         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
3598         mfloat-abi=soft in comments, not mhard-float and msoft-float.
3599         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
3600         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
3601         mhard-float.
3602         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
3603         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
3604         msoft-float.
3605         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
3606         not mhard-float.
3607         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
3608         not msoft-float.
3609
3610 2011-03-22  Richard Henderson  <rth@redhat.com>
3611
3612         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
3613         TARGET_ABI_WINDOWS_NT.
3614         (alpha_output_function_end_prologue): Likewise.
3615         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
3616         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3617         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
3618         (trap, *movsi_nt_vms): Likewise.
3619         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
3620         (*tablejump_osf_nt_internal): Remove.
3621         * config/alpha/predicates.md (input_operand): Only test Pmode.
3622
3623 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3624
3625         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
3626         via opts pointer.  Use error_at.  Don't assert that global
3627         structures are in use.
3628
3629 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3630
3631         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
3632         (ix86_handle_option): Access ix86_isa_flags and
3633         ix86_isa_flags_explicit via opts pointer.  Don't assert that
3634         global structures are in use.
3635         (ix86_function_specific_save, ix86_function_specific_restore):
3636         Update ix86_isa_flags_explicit field name.
3637         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
3638         (ix86_isa_flags_explicit): Rename TargetSave entry to
3639         x_ix86_isa_flags_explicit.
3640
3641 2011-03-22  Richard Henderson  <rth@redhat.com>
3642
3643         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
3644         (alpha_option_override, direct_return): Likewise.
3645         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
3646         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
3647         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
3648         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
3649         (alpha_expand_epilogue, alpha_end_function): Likewise.
3650         (alpha_init_libfuncs): Likewise.
3651         (struct machine_function): Remove unicosmk members.
3652         (print_operand) ['t']: Remove.
3653         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
3654         unicosmk_output_module_name, unicosmk_output_common,
3655         current_section_align, unicosmk_output_text_section_asm_op,
3656         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
3657         unicosmk_section_type_flags, unicosmk_unique_section,
3658         unicosmk_asm_named_section, unicosmk_insert_attributes,
3659         unicosmk_output_align, unicosmk_defer_case_vector,
3660         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
3661         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
3662         unicosmk_output_ssib, unicosmk_add_call_info_word,
3663         unicosmk_extern_head, unicosmk_output_default_externs,
3664         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
3665         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
3666         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
3667         * config/alpha/alpha-protos.h: Update.
3668         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
3669         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
3670         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
3671         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
3672         (*mulsi_se, mulvsi3): Likewise.
3673         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
3674         (*divmodsi_internal, call, call_value, realign): Likewise.
3675         (moddi3, umoddi3): Likewise; remove duplicate expander.
3676         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
3677         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
3678         (*movdi_nofix): Remove r/U alternative.
3679         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
3680         * config/alpha/constraints.md ("U"): Remove.
3681         * config/alpha/predicates.md (call_operand"): Don't test
3682         TARGET_ABI_UNICOSMK.
3683
3684 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3685
3686         * target.def (handle_option): Take gcc_options and
3687         cl_decoded_option pointers and location_t.
3688         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
3689         * doc/tm.texi: Regenerate.
3690         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
3691         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
3692         * lto-opts.c (lto_reissue_options): Generate option structure for
3693         targetm.handle_option call.
3694         * opts.c (target_handle_option): Update call to
3695         targetm.handle_option.  Remove assertions about values now passed
3696         down to hook.
3697         * targhooks.c (default_target_handle_option): New.
3698         * targhooks.h (default_target_handle_option): Declare.
3699         * config/alpha/alpha.c: Include opts.h.
3700         (alpha_handle_option): Update to new hook interface.
3701         * config/arm/arm.c: Include opts.h.
3702         (arm_handle_option): Update to new hook interface.
3703         * config/arm/t-arm (arm.o): Update dependencies.
3704         * config/bfin/bfin.c: Include opts.h.
3705         (bfin_handle_option): Update to new hook interface.
3706         * config/cris/cris.c: Include opts.h.
3707         (cris_handle_option): Update to new hook interface.
3708         * config/frv/frv.c: Include opts.h.
3709         (frv_handle_option): Update to new hook interface.
3710         * config/i386/i386.c: Include opts.h.
3711         (ix86_handle_option): Update to new hook interface.
3712         (ix86_valid_target_attribute_inner_p): Generate option structure
3713         for call to ix86_handle_option.
3714         * config/i386/t-i386 (i386.o): Update dependencies.
3715         * config/ia64/ia64.c: Include opts.h.
3716         (ia64_handle_option): Update to new hook interface.
3717         * config/ia64/t-ia64 (ia64.o): Update dependencies.
3718         * config/iq2000/iq2000.c: Include opts.h.
3719         (iq2000_handle_option): Update to new hook interface.
3720         * config/m32c/m32c.c: Include opts.h.
3721         (m32c_handle_option): Update to new hook interface.
3722         * config/m32r/m32r.c: Include opts.h.
3723         (m32r_handle_option): Update to new hook interface.
3724         * config/m68k/m68k.c: Include opts.h.
3725         (m68k_handle_option): Update to new hook interface.
3726         * config/mep/mep.c: Include opts.h.
3727         (mep_handle_option): Update to new hook interface.
3728         * config/microblaze/microblaze.c: Include opts.h.
3729         (microblaze_handle_option): Update to new hook interface.
3730         * config/mips/mips.c: Include opts.h.
3731         (mips_handle_option): Update to new hook interface.
3732         * config/mn10300/mn10300.c: Include opts.h.
3733         (mn10300_handle_option): Update to new hook interface.
3734         * config/pa/pa.c: Include opts.h.
3735         (pa_handle_option): Update to new hook interface.
3736         * config/pdp11/pdp11.c: Include opts.h.
3737         (pdp11_handle_option): Update to new hook interface.
3738         * config/rs6000/rs6000.c: Include opts.h.
3739         (rs6000_handle_option): Update to new hook interface.
3740         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3741         * config/rx/rx.c: Include opts.h.
3742         (rx_handle_option): Update to new hook interface.
3743         * config/s390/s390.c: Include opts.h.
3744         (s390_handle_option): Update to new hook interface.
3745         * config/score/score.c: Include opts.h.
3746         (score_handle_option): Update to new hook interface.
3747         * config/sh/sh.c: Include opts.h.
3748         (sh_handle_option): Update to new hook interface.
3749         * config/sparc/sparc.c: Include opts.h.
3750         (sparc_handle_option): Update to new hook interface.
3751         * config/v850/v850.c: Include opts.h.
3752         (v850_handle_option): Update to new hook interface.
3753
3754 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3755
3756         * gcc.c (driver_unknown_option_callback): Only permit and save
3757         unknown -Wno- options.
3758         (driver_wrong_lang_callback): Save options directly instead of via
3759         driver_unknown_option_callback.
3760
3761 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
3762
3763         * combine.c (simplify_set): Try harder to find the best CC mode when
3764         simplifying a nested COMPARE on the RHS.
3765
3766 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3767
3768         * config/alpha/gnu.h: Remove.
3769         * config/arc: Remove directory.
3770         * config/arm/netbsd.h: Remove.
3771         * config/arm/t-pe: Remove.
3772         * config/crx: Remove directory.
3773         * config/i386/netbsd.h: Remove.
3774         * config/m68hc11: Remove directory.
3775         * config/m68k/uclinux-oldabi.h: Remove.
3776         * config/mcore/mcore-pe.h: Remove.
3777         * config/mcore/t-mcore-pe: Remove.
3778         * config/netbsd-aout.h: Remove.
3779         * config/rs6000/gnu.h: Remove.
3780         * config/sh/sh-symbian.h: Remove.
3781         * config/sh/symbian-base.c: Remove.
3782         * config/sh/symbian-c.c: Remove.
3783         * config/sh/symbian-cxx.c: Remove.
3784         * config/sh/symbian-post.h: Remove.
3785         * config/sh/symbian-pre.h: Remove.
3786         * config/sh/t-symbian: Remove.
3787         * config/svr3.h: Remove.
3788         * config/vax/netbsd.h: Remove.
3789         * config.build: Don't handle i[34567]86-*-pe.
3790         * config.gcc: Remove handling of deprecations for most deprecated
3791         targets.
3792         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
3793         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
3794         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
3795         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
3796         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
3797         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
3798         Remove cases.
3799         * config.host: Don't handle i[34567]86-*-pe.
3800         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
3801         (ASM_SPEC32): Don't handle -mcall-gnu.
3802         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
3803         -mcall-gnu.
3804         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
3805         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
3806         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
3807         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
3808         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
3809         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
3810         conditional on SYMBIAN.
3811         * configure.ac: Don't handle powerpc*-*-gnu*.
3812         * configure: Regenerate.
3813         * doc/extend.texi (interrupt attribute): Don't mention CRX.
3814         * doc/install-old.texi (m6811, m6812): Don't mention.
3815         * doc/install.texi (arc-*-elf*): Don't document multilib option.
3816         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
3817         (m68k-uclinuxoldabi): Don't mention.
3818         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
3819         Remove.
3820         (-mcall-gnu): Remove.
3821         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
3822         families): Remove constraint documentation.
3823
3824 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
3825
3826         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
3827         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
3828         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
3829
3830 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
3831
3832         * config/avr/avr-protos.h (expand_epilogue): Change prototype
3833         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
3834         * config/avr/avr.c (init_cumulative_args)
3835         (avr_function_arg_advance): Use it.
3836         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
3837         sibcall epilogues.
3838         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
3839         (avr_function_ok_for_sibcall): ...this new function.
3840         (avr_lookup_function_attribute1): New static Function.
3841         (avr_naked_function_p, interrupt_function_p)
3842         (signal_function_p, avr_OS_task_function_p)
3843         (avr_OS_main_function_p): Use it.
3844         * config/avr/avr.md ("sibcall", "sibcall_value")
3845         ("sibcall_epilogue"): New expander.
3846         ("*call_insn", "*call_value_insn"): New insn.
3847         ("call_insn", "call_value_insn"): Remove
3848         ("call", "call_value", "epilogue"): Change expander to handle
3849         sibling calls.
3850
3851 2011-03-21  Nick Clifton  <nickc@redhat.com>
3852
3853         * doc/invoke.texi (Overall Options): Move closing brace to end of
3854         options list.
3855         (Optimization Options): Add missing @gol.
3856         (Directory Options): Likewise.
3857         (i386 and x86-64 Options): Likewise.
3858         (RS6000 and PowerPC Options): Likewise.
3859         (i386 and x86-64 Windows Options): Likewise.
3860         (V850 Options): Add text missing from descriptions.
3861
3862 2011-03-22  Richard Henderson  <rth@redhat.com>
3863
3864         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
3865         (avr_incoming_return_addr_rtx): New.
3866         (emit_push_byte): New.
3867         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
3868         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
3869         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
3870         (emit_pop_byte): New.
3871         (expand_epilogue): Use it.  Pop frame pointer by bytes.
3872         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
3873         (INCOMING_RETURN_ADDR_RTX): New.
3874         (INCOMING_FRAME_SP_OFFSET): New.
3875         (ARG_POINTER_CFA_OFFSET): New.
3876         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
3877         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
3878         (pophi): Remove.
3879
3880         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
3881
3882 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3883
3884         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
3885         (FUNCTION_ARG_ADVANCE): Likewise.
3886         * tm.texi.in: Change references to them to hook references.
3887         * tm.texi: Regenerate.
3888         * targhooks.c (default_function_arg): Eliminate check for target
3889         macro.
3890         (default_function_incoming_arg): Likewise.
3891         (default_function_arg_advance): Likewise.
3892         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
3893         (function_arg_advance): Likewise.
3894         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
3895
3896 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3897
3898         * tree.c (build_call_1): New function.
3899         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
3900
3901 2011-03-22  Richard Guenther  <rguenther@suse.de>
3902
3903         PR tree-optimization/48228
3904         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
3905         for single-arg PHIs.
3906
3907 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
3908
3909         PR rtl-optimization/48143
3910         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
3911         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
3912         sse2_cvtps2pd): Likewise.
3913
3914 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3915
3916         * recog.c (canonicalize_change_group): Use validate_unshare_change.
3917
3918 2011-03-22  Richard Guenther  <rguenther@suse.de>
3919
3920         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
3921         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
3922         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
3923         and REALIGN_LOAD_EXPR.
3924         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
3925         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
3926         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
3927         DOT_PROD_EXPR case ...
3928         (expand_expr_real_2): ... here.
3929         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
3930         and REALIGN_LOAD_EXPR.
3931         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
3932         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
3933         (vect_create_epilog_for_reduction): Likewise.
3934         (vectorizable_reduction): Likewise.
3935         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
3936         * tree-vect-stmts.c (vectorizable_load): Likewise.
3937
3938 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
3939
3940         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
3941
3942 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3943
3944         * config/s390/s390.c (s390_delegitimize_address): Fix offset
3945         handling for PLTOFF/GOTOFF.
3946
3947 2011-03-22  Nick Clifton  <nickc@redhat.com>
3948
3949         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
3950         trailing backslash from the end of the macro definition.
3951
3952 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3953
3954         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
3955         and PLT unspecs.
3956
3957 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
3958
3959         * expr.h (prepare_operand): Move to...
3960         * optabs.h (prepare_operand): ...here and change the insn code
3961         parameter from "int" to "enum insn_code".
3962         (insn_operand_matches): Declare.
3963         * expr.c (init_expr_target): Use insn_operand_matches.
3964         (compress_float_constant): Likewise.
3965         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
3966         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
3967         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
3968         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
3969         Likewise.
3970         (gen_cond_trap): Likewise.
3971         (prepare_operand): Likewise.  Change icode to an insn_code.
3972         (insn_operand_matches): New function.
3973         * reload.c (find_reloads_address_1): Use insn_operand_matches.
3974         * reload1.c (gen_reload): Likewise.
3975         * targhooks.c (default_secondary_reload): Likewise.
3976
3977 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
3978
3979         * config/alpha/alpha.md (unspec): New define_c_enum.
3980         (unspecv): Ditto.
3981
3982 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
3983
3984         PR debug/48214
3985         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
3986         between a call and its CALL_ARG_LOCATION note.
3987
3988 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
3989
3990         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
3991
3992 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
3993
3994         PR c/42544
3995         PR c/48197
3996         * c-common.c (shorten_compare): If primopN is first sign-extended
3997         to opN and then zero-extended to result type, set primopN to opN.
3998
3999 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
4000
4001         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
4002         for barrier handlers.
4003
4004 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4005
4006         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
4007         UNSPEC constants to be in the unspec enumeration, and redefine
4008         all UNSPECV constants to be in the unspecv enumeration, so that
4009         dumps print which unspec/unspec_volatile this is.
4010         * config/rs6000/vector.md (UNSPEC_*): Ditto.
4011         * config/rs6000/paired.md (UNSPEC_*): Ditto.
4012         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
4013         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
4014         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
4015
4016         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
4017         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
4018         UNSPECV_LWSYNC, since these are used as unspec_volatile.
4019         * config/rs6000/sync.md (isync, lwsync): Ditto.
4020
4021 2011-03-21  Richard Guenther  <rguenther@suse.de>
4022
4023         * params.def (lto-min-partition): Fix typo.
4024
4025 2011-03-21  Richard Guenther  <rguenther@suse.de>
4026
4027         PR c/47939
4028         * c-decl.c (grokdeclarator): Drop to the main variant only
4029         for array types.  Drop flag_gen_aux_info check.
4030
4031 2011-03-21  Richard Guenther  <rguenther@suse.de>
4032
4033         PR translation/47911
4034         * params.def (lto-partitions): Fix typo.
4035         (lto-min-partition): Fix wording.
4036
4037 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
4038
4039         * config/rs6000/t-freebsd: Remove duplication from file.
4040
4041 2011-03-21  Richard Guenther  <rguenther@suse.de>
4042
4043         PR middle-end/47661
4044         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
4045
4046 2011-03-21  Richard Guenther  <rguenther@suse.de>
4047
4048         PR lto/48210
4049         * params.def (lto-partitions): Require at least 1 partition.
4050
4051 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4052
4053         * gthr-solaris.h: Remove.
4054         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
4055         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
4056         (LIB_SPEC): Likewise.
4057         * config/sol2.opt (threads): Remove.
4058         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
4059         (sparc*-*-solaris2*): Likewise.
4060         * configure.ac (enable_threads): Enable solaris support.
4061         * configure: Regenerate.
4062         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
4063         * doc/install.texi (Configuration, --enable-threads=lib): Remove
4064         solaris.
4065
4066 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4067
4068         * config.gcc: Obsolete *-*-solaris2.8*.
4069         * doc/install.texi (Specific, *-*-solaris2*): Document it.
4070
4071 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4072
4073         PR bootstrap/48135
4074         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
4075         reference.  Solaris 8 perl works.
4076
4077 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4078
4079         PR bootstrap/48135
4080         * doc/install.texi (Prerequisites): Move jar etc. up.
4081         Explain support library version requirements.
4082
4083 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4084
4085         PR bootstrap/48135
4086         * doc/install.texi (Prerequisites): Move Perl to build
4087         requirements.  Always necessary on Solaris 2 with Sun ld.
4088
4089 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4090
4091         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
4092         binutils 2.21.
4093         (Specific, i?86-*-solaris2.[89]): Likewise.
4094         (Specific, i?86-*-solaris2.10): Likewise.
4095         (Specific, mips-sgi-irix6): Likewise.
4096         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
4097         Update for binutils 2.21.
4098
4099 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4100
4101         * configure.ac (gcc_cv_lto_plugin): Fix typo.
4102         Allow -fuse-linker-plugin for non-default plugin linker.
4103         * configure: Regenerate.
4104
4105 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4106
4107         PR bootstrap/48167
4108         * gengtype.c (files_rules): Added rule for cp/parser.h.
4109
4110 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
4111
4112         PR target/48213
4113         * config/s390/s390.c (s390_delegitimize_address): Don't call
4114         lowpart_subreg if orig_x has BLKmode.
4115
4116 2011-03-21  Kai Tietz  <ktietz@redhat.com>
4117
4118         PR target/12171
4119         * doc/plugins.texi: Adjust documentation for plugin register_callback.
4120         * tree.h (attribute_spec): Add new member affects_type_identity.
4121         * attribs.c (empty_attribute_table): Adjust attribute_spec
4122         initializers.
4123         * config/alpha/alpha.c: Likewise.
4124         * config/arc/arc.c: Likewise.
4125         * config/arm/arm.c: Likewise.
4126         * config/avr/avr.c: Likewise.
4127         * config/bfin/bfin.c: Likewise.
4128         * config/crx/crx.c: Likewise.
4129         * config/darwin.h: Likewise.
4130         * config/h8300/h8300.c: Likewise.
4131         * config/i386/cygming.h: Likewise.
4132         * config/i386/i386.c: Likewise.
4133         * config/ia64/ia64.c: Likewise.
4134         * config/m32c/m32c.c: Likewise.
4135         * config/m32r/m32r.c: Likewise.
4136         * config/m68hc11/m68hc11.c: Likewise.
4137         * config/m68k/m68k.c: Likewise.
4138         * config/mcore/mcore.c: Likewise.
4139         * config/mep/mep.c: Likewise.
4140         * config/microblaze/microblaze.c: Likewise.
4141         * config/mips/mips.c: Likewise.
4142         * config/rs6000/rs6000.c: Likewise.
4143         * config/rx/rx.c: Likewise.
4144         * config/sh/sh.c: Likewise.
4145         * config/sol2.h: Likewise.
4146         * config/sparc/sparc.c: Likewise.
4147         * config/spu/spu.c: Likewise.
4148         * config/stormy16/stormy16.c: Likewise.
4149         * config/v850/v850.c: Likewise.
4150
4151 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
4152
4153         * simplify-rtx.c (simplify_binary_operation_1): Handle
4154         (xor (and A B) C) case when B and C are both constants.
4155
4156 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
4157
4158         * tree-dfa.c (add_referenced_var): Fix typo in comment.
4159
4160 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
4161
4162         PR bootstrap/48168
4163         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
4164
4165 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
4166
4167         PR rtl-optimization/48156
4168         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
4169         assume df and df_lr are not NULL.
4170
4171 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4172
4173         PR debug/48023
4174         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
4175         between a call and its CALL_ARG_LOCATION note.
4176
4177 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4178
4179         PR debug/48178
4180         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4181         between a call and its corresponding CALL_ARG_LOCATION note.
4182
4183 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
4184
4185         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
4186         instead of loop. Use HARD_REGISTER_NUM_P predicate.
4187         * haifa-sched.c (setup_ref_regs): Ditto.
4188         * caller-save.c (add_used_regs_1): Ditto.
4189         * dse.c (look_for_hardregs): Ditto.
4190         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
4191         * sched-rgn.c (check_live_1): Ditto.
4192
4193 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4194
4195         * c-decl.c (diagnose_mismatched_decls): Give an error for
4196         redefining a typedef with variably modified type.
4197
4198 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4199
4200         * c-decl.c (grokfield): Don't allow typedefs for structures or
4201         unions with no tag by default.
4202         * doc/extend.texi (Unnamed Fields): Update.
4203
4204 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
4205
4206         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
4207         Rewrite using indirect functions.
4208         (lwp_slwpcb): Ditto.
4209         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
4210         (avx_vinsertf128<mode>): Ditto.
4211
4212 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4213
4214         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
4215         unspecs.
4216
4217 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4218
4219         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
4220         splitting between a call and its corresponding CALL_ARG_LOCATION note.
4221
4222 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4223
4224         PR rtl-optimization/48170
4225         * gcse.c (hoist_code): Remove bogus asserts.
4226
4227 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
4228
4229         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
4230         computation for prologue/epilogue.
4231
4232 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4233
4234         * Makefile.in (check-consistency): Remove.
4235
4236 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
4237
4238         PR debug/48176
4239         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
4240         arange_table_in_use is 0, but either text_section_used or
4241         cold_text_section_used is true.  Don't call it if
4242         !info_section_emitted.
4243
4244 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
4245
4246         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
4247         FUNCTION_VALUE_REGNO_P): Remove.
4248         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
4249         Remove.
4250         * config/avr/avr.c (avr_ret_register): Make static inline.
4251         (avr_function_value_regno_p): New function.
4252         (avr_libcall_value): Make static. Add 'func' argument.
4253         (avr_function_value): Make static. Rename 'func' argument to
4254         'fn_decl_or_type', forward it to avr_libcall_value. Call
4255         avr_ret_register function instead of RET_REGISTER macro.
4256         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
4257
4258 2011-03-18  Jason Merrill  <jason@redhat.com>
4259
4260         PR c++/23372
4261         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
4262
4263 2011-03-18  Richard Guenther  <rguenther@suse.de>
4264
4265         * doc/install.texi (--enable-gold): Remove.
4266         (--with-plugin-ld): Document.
4267         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
4268
4269 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
4270
4271         PR middle-end/47790
4272         * expr.c (optimize_bitfield_assignment_op): Revamp to work
4273         again after expansion changes.
4274
4275 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
4276
4277         * combine.c (try_combine): Do simplification only call of
4278         subst() on i2 even when i1 is present. Update comments.
4279
4280 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4281
4282         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
4283         and UNSPEC_PCREL_SYMOFF.
4284
4285 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4286
4287         * config/s390/s390.md: Use define_c_enum for the unspec constant
4288         definitions.
4289
4290 2011-03-18  Richard Henderson  <rth@redhat.com>
4291             Jakub Jelinek  <jakub@redhat.com>
4292
4293         PR bootstrap/48161
4294         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
4295         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
4296
4297 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4298
4299         PR middle-end/47725
4300         * combine.c (cant_combine_insn_p): Don't check zero/sign
4301         extended hard registers.
4302
4303 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4304
4305         PR middle-end/47725
4306         * combine.c (cant_combine_insn_p): Check zero/sign extended
4307         hard registers.
4308
4309 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
4310
4311         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4312         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
4313         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
4314         Change return type to bool.
4315         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4316
4317 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4318
4319         PR debug/48163
4320         * var-tracking.c (prepare_call_arguments): If CALL target
4321         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
4322         pc instead of looking it up using cselib_lookup and use
4323         Pmode for it if x has VOIDmode.
4324         * dwarf2out.c (gen_subprogram_die): If also both first and
4325         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
4326
4327         PR debug/48163
4328         * function.c (assign_parms): For data.passed_pointer parms
4329         use MEM of data.entry_parm instead of data.entry_parm itself
4330         as DECL_INCOMING_RTL.
4331         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
4332         also when passed and declared mode is the same, DECL_RTL
4333         is a MEM with pseudo as address and DECL_INCOMING_RTL is
4334         a MEM too.
4335
4336 2011-03-16  Jeff Law  <law@redhat.com>
4337
4338         PR rtl-optimization/37273
4339         * ira-costs.c (scan_one_insn): Detect constants living in memory and
4340         handle them like argument loads from stack slots.  Do not double
4341         count memory for memory constants and argument loads from stack slots.
4342
4343 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4344
4345         PR debug/48160
4346         * var-tracking.c (prepare_call_arguments): Check SUBREG.
4347
4348 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4349
4350         PR target/48171
4351         * config/i386/i386.opt: Add Save to -mavx and -mfma.
4352
4353 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4354
4355         PR bootstrap/48153
4356         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
4357         if dwarf_strict.
4358         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
4359         Clear call_arg_locations and call_arg_loc_last always.
4360
4361         PR middle-end/48152
4362         * var-tracking.c (prepare_call_arguments): If argument needs to be
4363         passed by reference, adjust argtype and mode.
4364
4365 2011-03-17  Richard Guenther  <rguenther@suse.de>
4366
4367         PR middle-end/48134
4368         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
4369         a value make sure to fold the statement.
4370
4371 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
4372
4373         PR target/43872
4374         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
4375         return condition with !cfun->calls_alloca.
4376
4377 2011-03-17  Richard Guenther  <rguenther@suse.de>
4378
4379         PR bootstrap/48148
4380         * lto-cgraph.c (input_overwrite_node): Clear the abstract
4381         origin for decls in other ltrans units.
4382         (input_varpool_node): Likewise.
4383
4384 2011-03-17  Richard Guenther  <rguenther@suse.de>
4385
4386         PR middle-end/48165
4387         * tree-object-size.c (compute_object_offset): Properly return
4388         the offset operand of MEM_REFs as sizetype.
4389
4390 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4391
4392         PR rtl-optimization/48141
4393         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
4394         * dse.c: Include params.h.
4395         (active_local_stores_len): New variable.
4396         (add_wild_read, dse_step1): Clear it when setting active_local_stores
4397         to NULL.
4398         (record_store, check_mem_read_rtx): Decrease it when removing
4399         from the chain.
4400         (scan_insn): Likewise.  Increase it when adding to chain, if it
4401         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
4402         set active_local_stores to NULL before the addition.
4403         * Makefile.in (dse.o): Depend on $(PARAMS_H).
4404
4405         PR rtl-optimization/48141
4406         * dse.c (record_store): If no positions are needed in an insn
4407         that cannot be deleted, at least unchain it from active_local_stores.
4408
4409 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
4410
4411         PR debug/47510
4412         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
4413         (lookup_type_die_strip_naming_typedef): ... here.
4414         (get_context_die): Use it.
4415         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
4416         the anonymous struct named by the naming typedef.
4417
4418 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
4419
4420         PR target/48154
4421         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
4422         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
4423
4424 2011-03-16  Jeff Law  <law@redhat.com>
4425
4426         * tree-vrp.c (identify_jump_threads): Slightly simplify type
4427         check for operands of conditional.  Allow type to be a pointer.
4428
4429 2011-03-16  Richard Guenther  <rguenther@suse.de>
4430
4431         PR tree-optimization/48149
4432         * fold-const.c (fold_binary_loc): Fold
4433         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
4434
4435 2011-03-16  Richard Guenther  <rguenther@suse.de>
4436
4437         PR tree-optimization/26134
4438         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
4439         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
4440         (non_rewritable_mem_ref_base): Handle complex type component
4441         accesses, constrain offsets for vector and complex extracts
4442         more properly.
4443
4444 2011-03-16  Richard Guenther  <rguenther@suse.de>
4445
4446         PR tree-optimization/48146
4447         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
4448         operands avoiding the need for renaming.
4449
4450 2011-03-16  Richard Guenther  <rguenther@suse.de>
4451
4452         * gimple-fold.c (maybe_fold_reference): Open-code relevant
4453         constant folding.  Move MEM_REF canonicalization first.
4454         Rely on fold_const_aggregate_ref for initializer folding.
4455         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
4456
4457 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
4458
4459         PR middle-end/48136
4460         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
4461         arg0/arg1 or their arguments are always fold converted to matching
4462         types.
4463
4464         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
4465         to nargs.
4466
4467 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4468
4469         PR lto/46944
4470         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
4471         Handle in-tree gold.
4472         (ld_vers): Extract binutils version for gold.
4473         (gcc_cv_ld_hidden): Handle gold here.
4474         (gcc_cv_lto_plugin): Determine level of linker plugin support.
4475         * configure: Regenerate.
4476         * config.in: Regenerate.
4477         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
4478         -fuse-linker-plugin otherwise.
4479         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
4480         (LINK_COMMAND_SPEC): Use it.
4481         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
4482
4483 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
4484
4485         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
4486         * calls.c: Remove debug.h include.
4487         (emit_call_1): Don't call virtual_call_token debug hook.
4488         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
4489         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
4490         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
4491         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
4492         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
4493         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
4494         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
4495         dwarf2out_virtual_call): Remove.
4496         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
4497         copy_call_info and virtual_call hooks.
4498         (dwarf2out_init): Don't initialize vcall_insn_table,
4499         debug_dcall_section and debug_vcall_section.
4500         (prune_unused_types): Don't mark nodes from dcall_table.
4501         (dwarf2out_finish): Don't output dcall or vcall tables.
4502         * final.c (final_scan_insn): Don't call direct_call or
4503         virtual_call debug hooks.
4504         * debug.h (struct gcc_debug_hooks): Remove direct_call,
4505         virtual_call_token, copy_call_info and virtual_call hooks.
4506         (debug_nothing_uid): Remove prototype.
4507         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
4508         copy_call_info and virtual_call hooks.
4509         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4510         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
4511         * debug.c (do_nothing_debug_hooks): Likewise.
4512         (debug_nothing_uid): Remove.
4513         * doc/invoke.texi (-fenable-icf-debug): Remove.
4514         * common.opt (-fenable-icf-debug): Likewise.
4515
4516         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
4517         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
4518         call's MEM.  Handle functions returning aggregate through a hidden
4519         first pointer.  For virtual calls add clobbered pc to call arguments
4520         chain.
4521         * dwarf2out.c (gen_subprogram_die): Emit
4522         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
4523         can't be emitted.
4524
4525         PR debug/45882
4526         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
4527         * rtl.h (ENTRY_VALUE_EXP): Define.
4528         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
4529         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
4530         * print-rtl.c (print_rtx): Likewise.
4531         * gengtype.c (adjust_field_rtx_def): Likewise.
4532         * var-tracking.c (vt_add_function_parameter): Adjust
4533         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
4534         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
4535         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
4536         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
4537         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
4538
4539         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
4540         Call var_location debug hook even on CALL_INSNs.
4541         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
4542         * rtl.def (ENTRY_VALUE): New.
4543         * dwarf2out.c: Include cfglayout.h.
4544         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
4545         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
4546         (struct call_arg_loc_node): New type.
4547         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
4548         tail_call_site_count): New variables.
4549         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
4550         DW_TAG_GNU_call_site_parameter.
4551         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
4552         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
4553         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
4554         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
4555         and DW_AT_GNU_all_source_call_sites.
4556         (mem_loc_descriptor): Handle ENTRY_VALUE.
4557         (add_src_coords_attributes): Don't add enything if
4558         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
4559         (dwarf2out_abstract_function): Save and clear call_arg_location,
4560         call_site_count and tail_call_site_count around dwarf2out_decl call.
4561         (gen_call_site_die): New function.
4562         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
4563         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
4564         (dwarf2out_function_decl): Clear call_arg_locations,
4565         call_arg_loc_last, set call_site_count and tail_call_site_count
4566         to -1 and free block_map.
4567         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
4568         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
4569         followed by any real instructions.
4570         (dwarf2out_begin_function): Set call_site_count and
4571         tail_call_site_count to 0.
4572         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
4573         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
4574         attempt to force a DIE for it and worst case remove the attribute.
4575         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
4576         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
4577         the decl itself.
4578         * var-tracking.c: Include tm_p.h.
4579         (vt_stack_adjustments): For calls call note_register_arguments.
4580         (argument_reg_set): New variable.
4581         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
4582         ensure the VALUE is resolved.
4583         (call_arguments): New variable.
4584         (prepare_call_arguments): New function.
4585         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
4586         (struct expand_loc_callback_data): Add ignore_cur_loc field.
4587         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
4588         always use the best expression.
4589         (vt_expand_loc): Add ignore_cur_loc argument.
4590         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
4591         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
4592         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
4593         note for all calls.
4594         (vt_add_function_parameter): Use cselib_lookup_from_insn.
4595         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
4596         argument.  Don't call cselib_preserve_only_values and
4597         cselib_reset_table.
4598         (note_register_arguments): New function.
4599         (vt_initialize): Compute argument_reg_set.  Call
4600         vt_add_function_parameters before processing basic blocks instead of
4601         afterwards.  For calls call prepare_call_arguments before calling
4602         cselib_process_insn.
4603         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
4604         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
4605         (var-tracking.o): Depend on $(TM_P_H).
4606         * cfglayout.h (insn_scope): New prototype.
4607         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
4608         * cfglayout.c (insn_scope): No longer static.
4609         * insn-notes.def (CALL_ARG_LOCATION): New.
4610         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
4611         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
4612         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
4613         nothing for DECL_EXTERNAL BLOCK_VARS.
4614
4615 2011-03-16  Alan Modra  <amodra@gmail.com>
4616
4617         PR target/45844
4618         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4619         create invalid offset address for vsx splat insn.
4620         * config/rs6000/predicates.md (splat_input_operand): New.
4621         * config/rs6000/vsx.md (vsx_splat_*): Use it.
4622
4623 2011-03-15  Xinliang David Li  <davidxl@google.com>
4624
4625         PR c/47837
4626         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
4627         (normalize_preds): New function.
4628         (is_use_properly_guarded): Normalize def predicates.
4629
4630 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4631
4632         PR target/46788
4633         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
4634         in the output template.
4635
4636 2011-03-15  Richard Guenther  <rguenther@suse.de>
4637
4638         PR middle-end/47650
4639         * tree-pretty-print.c (dump_function_declaration): Properly
4640         dump unprototyped and varargs function types.
4641
4642 2011-03-15  Richard Guenther  <rguenther@suse.de>
4643
4644         PR tree-optimization/13954
4645         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
4646         and friends.
4647
4648 2011-03-15  Richard Guenther  <rguenther@suse.de>
4649
4650         PR tree-optimization/48037
4651         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
4652         selects into BIT_FIELD_REFs.
4653         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
4654         vector select.
4655
4656 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
4657
4658         PR tree-optimization/48129
4659         * builtins.c (fold_builtin_snprintf): Convert to type of
4660         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
4661         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
4662
4663 2011-03-15  Richard Guenther  <rguenther@suse.de>
4664
4665         PR tree-optimization/41490
4666         * tree-ssa-dce.c (propagate_necessity): Handle returns without
4667         value but with VUSE.
4668         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
4669         return statements.
4670         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
4671         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
4672         * tree-tailcall.c (find_tail_calls): Ignore returns.
4673
4674 2011-03-15  Richard Guenther  <rguenther@suse.de>
4675
4676         PR middle-end/48031
4677         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
4678         or variable-indexed array accesses when in gimple form.
4679
4680 2011-03-15  Richard Guenther  <rguenther@suse.de>
4681
4682         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
4683
4684 2011-03-15  Alan Modra  <amodra@gmail.com>
4685
4686         PR target/48032
4687         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
4688         presume symbol_refs without a symbol_ref_decl are suitably
4689         aligned, nor other trees we may see here.  Handle anchor symbols.
4690         (legitimate_constant_pool_address_p): Comment.  Add mode param.
4691         Check cmodel=medium addresses.  Adjust all calls.
4692         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
4693         creating cmodel=medium optimized access to locals.
4694         * config/rs6000/constraints.md (R): Pass QImode to
4695         legitimate_constant_pool_address_p.
4696         * config/rs6000/predicates.md (input_operand): Pass mode to
4697         legitimate_constant_pool_address_p.
4698         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
4699         Update prototype.
4700
4701 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4702
4703         PR target/48053
4704         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
4705         64-bit constants being loaded into registers other than GPRs such
4706         as loading 0 into a VSX register.
4707
4708 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4709
4710         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
4711
4712 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4713
4714         PR middle-end/47917
4715         * builtins.c (fold_builtin_snprintf): New function.
4716         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
4717         (fold_builtin_4): Likewise.
4718
4719         PR middle-end/38878
4720         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
4721         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
4722         and C - X == X also strip nops from +/-/p+ operand.
4723         When optimizing -X == C, fold C to arg0's type.
4724
4725         PR debug/47946
4726         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
4727         emit it as add_AT_int instead of add_AT_unsigned.
4728
4729 2011-03-14  Tom Tromey  <tromey@redhat.com>
4730
4731         * unwind-dw2.c: Include sys/sdt.h if it exists.
4732         (_Unwind_DebugHook): Use STAP_PROBE2.
4733         * config.in, configure: Rebuild.
4734         * configure.ac: Check for sys/sdt.h.
4735
4736 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
4737
4738         * config/i386/i386.md (ROUND_FLOOR): New constant.
4739         (ROUND_CEIL): Ditto.
4740         (ROUND_TRUNC): Ditto.
4741         (ROUND_MXCSR): Ditto.
4742         (ROUND_NO_EXC): Ditto.
4743         (rint<mode>2): Use new defines instead of numerical constants.
4744         (floor<mode>2): Ditto.
4745         (ceil<mode>2): Ditto.
4746         (btrunc<mode>2): Ditto.
4747         * config/i386/i386-builtin-types.def: Define ROUND function type
4748         aliases.
4749         * config/i386/i386.c (enum ix86_builtins): Add
4750         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
4751         (struct builtin_description): Add
4752         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
4753         (ix86_expand_sse_round): New static function.
4754         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
4755         function types.
4756         (ix86_builtin_vectorized_function): Handle
4757         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
4758
4759 2011-03-14  Tom Tromey  <tromey@redhat.com>
4760
4761         * c-parser.c (c_parser_asm_string_literal): Clear
4762         warn_overlength_strings.
4763
4764 2011-03-14  Tom Tromey  <tromey@redhat.com>
4765
4766         * c-parser.c (disable_extension_diagnostics): Save
4767         warn_overlength_strings.
4768         (restore_extension_diagnostics): Restore warn_overlength_strings.
4769
4770 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4771
4772         * BASE-VER: Change to 4.7.0.
4773
4774 2011-03-14  Richard Guenther  <rguenther@suse.de>
4775
4776         PR middle-end/48098
4777         * tree.c (build_vector_from_val): Adjust assert to requirements
4778         and reality.
4779
4780 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4781
4782         PR bootstrap/48102
4783         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
4784
4785 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
4786
4787         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
4788         terms of target_flags_explicit. Adjust copyright year.
4789
4790         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
4791         * config/rs6000/t-freebsd: New file. Add override for
4792         LIB2FUNCS_EXTRA.
4793
4794 2011-03-13  Chris Demetriou  <cgd@google.com>
4795
4796         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
4797         (-fno-diagnostics-show-option): this, to reflect current default.
4798         (-Werror=): Update text about -fno-diagnostics-show-option.
4799
4800 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
4801
4802         PR target/48053
4803         * config/rs6000/predicates.md (easy_vector_constant_add_self,
4804         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
4805         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
4806         mode is not V2DImode or V2DFmode.
4807         (vspltis_constant): Do not handle V2DImode and V2DFmode.
4808         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
4809         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
4810         registers to 0.
4811         (movdi_internal64): Likewise.
4812
4813 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
4814
4815         PR tree-optimization/47127
4816         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
4817         parameter.
4818         (set_cloog_options): Same.
4819         (scop_to_clast): Same.
4820         (print_clast_stmt): Do not call cloog_state_malloc and
4821         cloog_state_free.
4822         (print_generated_program): Same.
4823         (gloog): Same.
4824         * graphite-clast-to-gimple.h (cloog_state): Declared.
4825         (scop_to_clast): Adjust declaration.
4826         * graphite.c (cloog_state): Defined here.
4827         (graphite_initialize): Call cloog_state_malloc.
4828         (graphite_finalize): Call cloog_state_free.
4829
4830 2011-03-11  Jason Merrill  <jason@redhat.com>
4831
4832         * attribs.c (lookup_attribute_spec): Take const_tree.
4833         * tree.h: Adjust.
4834
4835 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
4836
4837         * config/sparc/sparc.c (sparc_option_override): Use
4838         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
4839
4840 2011-03-11  Richard Guenther  <rguenther@suse.de>
4841
4842         PR tree-optimization/48067
4843         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
4844         multiplication result will be only used once on the target
4845         stmt.
4846
4847 2011-03-11  Richard Guenther  <rguenther@suse.de>
4848
4849         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
4850
4851 2011-03-11  Richard Guenther  <rguenther@suse.de>
4852
4853         PR lto/48073
4854         * tree.c (find_decls_types_r): Do not walk types only reachable
4855         from IDENTIFIER_NODEs.
4856
4857 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
4858
4859         PR middle-end/48044
4860         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
4861         all vnode->force_output nodes as needed.
4862
4863 2011-03-11  Jason Merrill  <jason@redhat.com>
4864
4865         PR c++/48069
4866         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
4867         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
4868
4869 2011-03-11  Martin Jambor  <mjambor@suse.cz>
4870
4871         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
4872         cgraph_node.
4873
4874 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
4875
4876         PR tree-optimization/48063
4877         * ipa-inline.c (cgraph_decide_inlining): Don't try to
4878         inline functions called once if !tree_can_inline_p (node->callers).
4879
4880 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
4881
4882         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
4883         extra_objs.
4884         * config/score/score3.c: Delete.
4885         * config/score/score3.h: Delete.
4886         * config/score/mul-div.S: Delete.
4887         * config/score/sfp-machine.h: Add new file.
4888         * config/score/constraints.md: Add new file.
4889         * config/score/t-score-softfp: Add new file.
4890         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
4891         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
4892         (score7_extra_constraint): Delete.
4893         (score7_option_override): Remove unused code.
4894         * config/score/score.c: Remove score3 and score5 define and code.
4895         * config/score/score.h: Remove score3 and score5 define and code.
4896         * config/score/score.md: Remove score3 template and unusual insn.
4897         * config/score/score.opt: Remove score3 and score5 options.
4898
4899 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4900
4901         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
4902         when _HPUX_SOURCE is defined.
4903         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
4904
4905 2011-03-10  Jason Merrill  <jason@redhat.com>
4906
4907         PR c++/48029
4908         * stor-layout.c (layout_type): Don't set structural equality
4909         on arrays of incomplete type.
4910         * tree.c (type_hash_eq): Handle comparing them properly.
4911
4912 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
4913
4914         PR debug/48043
4915         * config/s390/s390.c (s390_delegitimize_address): Make sure the
4916         result mode matches original rtl mode.
4917
4918 2011-03-10  Nick Clifton  <nickc@redhat.com>
4919
4920         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
4921         (andsi3, andsi3_flags): Fix timings for three operand alternative.
4922
4923 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
4924
4925         PR rtl-optimization/47866
4926         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
4927         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
4928         if target wasn't scalar.
4929         * function.c (assign_stack_temp_for_type): Assert that neither
4930         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
4931         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
4932         macro.
4933         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
4934
4935 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4936
4937         * config/s390/s390-protos.h (s390_label_align): New prototype.
4938         * config/s390/s390.c (s390_label_align): New function.
4939         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
4940
4941 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4942
4943         PR target/47755
4944         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
4945         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
4946         (output_vec_const_move): Ditto.
4947
4948 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
4949
4950         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
4951         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
4952         * config/mips/mips.c (mips_preferred_reload_class): Make static.
4953         Change 'rclass' argument and result type to reg_class_t.
4954         (TARGET_PREFERRED_RELOAD_CLASS): Define.
4955
4956 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
4957
4958         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4959         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
4960         (TARGET_MEMORY_MOVE_COST): Define.
4961         (avr_register_move_cost, avr_memory_move_cost): New Functions.
4962
4963 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
4964
4965         PR debug/47881
4966         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
4967         removed anything.
4968
4969         PR tree-optimization/48022
4970         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
4971         for EQ/NE_EXPR.
4972
4973 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
4974
4975         PR debug/47991
4976         * var-tracking.c (find_use_val): Return NULL for
4977         cui->sets && cui->store_p BLKmode MEMs.
4978
4979 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
4980
4981         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
4982         Remove.
4983         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
4984         xstormy16_print_operand_address): Remove.
4985         * config/stormy16/stormy16.c (xstormy16_print_operand,
4986         xstormy16_print_operand_address): Make static.
4987         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4988
4989 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
4990
4991         PR target/47862
4992         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
4993         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
4994         before definition.
4995
4996 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
4997
4998         PR bootstrap/48000
4999         * cfgloopmanip.c (fix_bb_placements): Return immediately
5000         if FROM is BASE_LOOP's header.
5001
5002 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
5003
5004         * gimplify.c (gimplify_function_tree): Fix building calls
5005         to __builtin_return_address.
5006
5007 2011-03-07  Alan Modra  <amodra@gmail.com>
5008
5009         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
5010         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
5011         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
5012         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
5013         return_mode args.
5014         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
5015         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
5016         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
5017         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
5018         * config/rs6000/rs6000.c
5019         (rs6000_elf_end_indicate_exec_stack): Rename to..
5020         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
5021         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
5022         (rs6000_file_start): ..here.
5023         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
5024         file scope variables.
5025         (call_ABI_of_interest): New function.
5026         (init_cumulative_args): Set above vars when function return value
5027         is a float, vector, or small struct.
5028         (rs6000_function_arg_advance_1): Likewise for function args.
5029         (rs6000_va_start): Set rs6000_passes_float if variable arg function
5030         references float args.
5031
5032 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
5033
5034         * doc/cfg.texi: Remove "See" before @ref.
5035         * doc/invoke.texi: Likewise.
5036
5037 2011-03-05  Jason Merrill  <jason@redhat.com>
5038
5039         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
5040
5041 2011-03-05  Anthony Green  <green@moxielogic.com>
5042
5043         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
5044
5045 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
5046
5047         PR rtl-optimization/47899
5048         * cfgloopmanip.c (fix_bb_placements): Fix first argument
5049         to flow_loop_nested_p when moving the loop upward.
5050
5051 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
5052
5053         PR target/47719
5054         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
5055
5056 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
5057
5058         PR tree-optimization/47967
5059         * ipa-cp.c (build_const_val): Return NULL instead of creating
5060         VIEW_CONVERT_EXPR for mismatching sizes.
5061         (ipcp_create_replace_map): Return NULL if build_const_val failed.
5062         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
5063         give up on versioning.
5064
5065 2011-03-05  Alan Modra  <amodra@gmail.com>
5066
5067         PR target/47986
5068         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5069         full cmodel medium/large lo_sum + high addresses.
5070
5071 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5072
5073         * config/s390/s390.c (s390_decompose_address): Reject non-literal
5074         pool references in UNSPEC_LTREL_OFFSET.
5075
5076 2011-03-04  Jan Hubicka  <jh@suse.cz>
5077
5078         PR lto/47497
5079         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
5080         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
5081         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
5082         Add node pointers.
5083         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
5084         cgraph_add_thunk): Add node pointers.
5085         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
5086         associated to right node.
5087         (input_node): Update use of cgraph_same_body_alias
5088         and cgraph_add_thunk.
5089
5090 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5091
5092         * config/i386/i386.opt (mprefer-avx128): New flag.
5093         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
5094         modes when the flag -mprefer-avx128 is on.
5095
5096 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
5097
5098         * dwarf2out.c (compare_loc_operands): Fix address handling.
5099
5100 2011-03-04  Alan Modra  <amodra@gmail.com>
5101
5102         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
5103
5104 2011-03-04  Richard Guenther  <rguenther@suse.de>
5105
5106         PR middle-end/47968
5107         * expmed.c (extract_bit_field_1): Prefer vector modes that
5108         vec_extract patterns can handle.
5109
5110 2011-03-04  Richard Guenther  <rguenther@suse.de>
5111
5112         PR middle-end/47975
5113         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
5114
5115 2011-03-04  Richard Henderson  <rth@redhat.com>
5116
5117         * explow.c (emit_stack_save): Remove 'after' parameter.
5118         (emit_stack_restore): Likewise.
5119         * expr.h: Update to match.
5120         * builtins.c, calls.c, stmt.c: Likewise.
5121         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
5122         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
5123         * function.c (expand_function_end): Insert the emit_stack_save
5124         sequence before parm_birth_insn instead of after.
5125
5126 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
5127
5128         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
5129         (ssse3_pmaddubsw128): Ditto.
5130         (ssse3_pmaddubsw): Ditto.
5131
5132 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
5133
5134         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
5135
5136 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
5137
5138         PR c/47963
5139         * gimplify.c (omp_add_variable): Only call omp_notice_variable
5140         on TYPE_SIZE_UNIT if it is a DECL.
5141
5142         PR debug/47283
5143         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
5144         first operand is not is_gimple_mem_ref_addr, try to fold it.
5145         If the operand still isn't is_gimple_mem_ref_addr, clear
5146         MEM_EXPR on op0.
5147
5148 2011-03-03  Richard Guenther  <rguenther@suse.de>
5149
5150         PR middle-end/47283
5151         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
5152         match comment.
5153         (refs_may_alias_p_1): For release branches return true if
5154         we are confused by our input.
5155
5156 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5157
5158         * config/s390/s390.c (s390_function_value): Rename to ...
5159         (s390_function_and_libcall_value): ... this.
5160         (s390_function_value): New function.
5161         (s390_libcall_value): New function.
5162         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
5163         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
5164         target macro definitions.
5165         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
5166
5167 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
5168
5169         * config/i386/freebsd64.h (CC1_SPEC): Define.
5170         * config/i386/linux64.h (CC1_SPEC): Define.
5171         * config/i386/x86-64.h (CC1_SPEC): Don't define.
5172
5173 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
5174
5175         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5176         Remove.
5177         * config/stormy16/stormy16.c: Include reload.h.
5178         (xstormy16_memory_move_cost): New function.
5179         (TARGET_MEMORY_MOVE_COST): Define.
5180
5181 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
5182
5183         PR rtl-optimization/47925
5184         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
5185         with side effects.  Remove the more-specific check for volatile asms.
5186
5187 2011-03-02  Alan Modra  <amodra@gmail.com>
5188
5189         PR target/47935
5190         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
5191         toc relative addresses for valid offsets.
5192
5193 2011-03-01  Richard Guenther  <rguenther@suse.de>
5194
5195         PR tree-optimization/47890
5196         * tree-vect-loop.c (get_initial_def_for_induction): Set
5197         related stmt properly.
5198
5199 2011-03-01  Richard Guenther  <rguenther@suse.de>
5200
5201         PR lto/47924
5202         * lto-streamer.c (lto_record_common_node): Also register
5203         the canonical type.
5204
5205 2011-03-01  Richard Guenther  <rguenther@suse.de>
5206
5207         PR lto/46911
5208         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5209         Do not stream DECL_ABSTRACT_ORIGIN.
5210         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5211         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5212         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5213         Do not stream DECL_ABSTRACT_ORIGIN.
5214         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5215         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5216
5217 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
5218
5219         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
5220         FUNCTION_VALUE_REGNO_P): Remove.
5221         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
5222         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
5223         Add 'outgoing' argument.
5224         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
5225         function.
5226         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5227         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5228
5229 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
5230
5231         PR debug/28047
5232         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
5233         (lookup_filename): Likewise.
5234         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
5235
5236 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
5237             Jakub Jelinek  <jakub@redhat.com>
5238
5239         PR middle-end/47893
5240         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
5241         (assign_stack_local_1): Change last argument type to int.
5242         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
5243         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
5244         don't record padding space into frame_space_list nor use those areas.
5245         (assign_stack_local): Adjust caller.
5246         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
5247         of assign_stack_local, pass 0 as last argument.
5248         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
5249         callers.
5250
5251 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
5252
5253         PR debug/47283
5254         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
5255         Use target address_mode and pointer_mode hooks instead of hardcoded
5256         Pmode and ptr_mode.  Handle some simple cases of extending if
5257         POINTERS_EXTEND_UNSIGNED < 0.
5258         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
5259         Call convert_debug_memory_address.
5260         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
5261         convert_debug_memory_address.
5262
5263         PR middle-end/46790
5264         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
5265         * configure: Regenerated.
5266         * config.in: Regenerated.
5267         * varasm.c (default_function_section): Return NULL
5268         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
5269
5270 2011-02-28  Martin Jambor  <mjambor@suse.cz>
5271
5272         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
5273         the description to match the printed values.
5274
5275 2011-02-28  Richard Guenther  <rguenther@suse.de>
5276
5277         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
5278         of the copied scope tree.
5279
5280 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5281
5282         * doc/extend.texi (Function Attributes): Avoid deeply (and
5283         wrongly) nested tables.
5284
5285 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
5286
5287         PR middle-end/47903
5288         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
5289         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
5290         r isn't op0 nor op1.
5291
5292 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5293
5294         * config/avr/avr.md: Remove magic comment for emacs.
5295
5296 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5297
5298         PR target/45261
5299         * config/avr/avr.c (avr_option_override): Use error on bad options.
5300         (avr_help): New function.
5301         (TARGET_HELP): Define.
5302
5303 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
5304
5305         PR target/42240
5306         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
5307         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
5308
5309 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
5310
5311         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
5312         (ARM Options): Ditto.
5313         (i386 and x86-64 Options): Ditto.
5314         (RX Options): Ditto.
5315         (SPARC Options): Ditto.
5316
5317 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
5318
5319         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
5320         FreeBSD 6 and later.  Generally use cpu generic.
5321
5322 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
5323
5324         * doc/cpp.texi: Update copyright years.
5325
5326 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
5327
5328         PR target/46898
5329         * config/lm32/lm32.md (ashrsi3): Added needed variable.
5330
5331 2011-02-25  Jon Beniston  <jon@beniston.com>
5332
5333         PR target/46898
5334         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
5335         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
5336         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
5337         (lm32_block_move_inline): Add type cast to remove warning.
5338         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
5339         (gen_int_relational): Move declarations to start of function.
5340
5341 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5342
5343         PR tree-optimization/45470
5344         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
5345         can throw internally only.
5346         * tree-vect-stmts.c (vectorizable_call): Likewise.
5347
5348 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
5349
5350         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
5351         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5352         * config/stormy16/stormy16-protos.h
5353         (xstormy16_preferred_reload_class): Remove.
5354         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
5355         static. Change 'rclass' argument and return type to reg_class_t.
5356         (TARGET_PREFERRED_RELOAD_CLASS,
5357         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5358
5359 2011-02-24  Richard Guenther  <rguenther@suse.de>
5360
5361         * lto-streamer-in.c (input_bb): Do not find referenced vars
5362         in debug statements.
5363
5364 2011-02-23  Jason Merrill  <jason@redhat.com>
5365
5366         * common.opt (fabi-version): Document v5 and v6.
5367
5368 2011-02-23  Richard Guenther  <rguenther@suse.de>
5369
5370         PR tree-optimization/47849
5371         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
5372
5373 2011-02-23  Jie Zhang  <jie@codesourcery.com>
5374
5375         * opts-common.c (decode_cmdline_option): Print empty string
5376         argument as "" in decoded->orig_option_with_args_text.
5377         * gcc.c (execute): Print empty string argument as ""
5378         in the verbose output.
5379         (do_spec_1): Keep empty string argument.
5380
5381 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
5382
5383         * config.gcc: Declare score-* and crx-* obsolete.
5384
5385 2011-02-23  Jie Zhang  <jie@codesourcery.com>
5386
5387         PR rtl-optimization/47763
5388         * web.c (web_main): Ignore naked clobber when replacing register.
5389
5390 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
5391
5392         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5393         Remove.
5394
5395 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5396
5397         PR doc/47848
5398         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
5399
5400 2011-02-22  Mike Stump  <mikestump@comcast.net>
5401
5402         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
5403         assembler.
5404         * configure: Regenerate.
5405
5406 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
5407
5408         PR rtl-optimization/46002
5409         * ira-color.c (update_copy_costs): Change class intersection
5410         test to reg_class_contents[] test of 'hard_regno'.
5411
5412 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
5413
5414         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
5415         than Driver option.
5416         * config/hpux11.opt (mt): Likewise.
5417         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
5418         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
5419         * config/vax/elf.opt (mno-asm-pic): Likewise.
5420         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
5421
5422 2011-02-21  Mike Stump  <mikestump@comcast.net>
5423
5424         PR target/47822
5425         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
5426         tree so we can get save the type.
5427         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
5428         for CFString instead of trying to use past the end of the builtins.
5429         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
5430         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
5431         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
5432         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
5433         Rename to darwin_builtin_cfstring.
5434         (darwin_init_cfstring_builtins): Return the built type.
5435
5436 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
5437
5438         PR target/47840
5439         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
5440         (_mm256_insert_epi64): Use _mm_insert_epi64.
5441
5442 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
5443
5444         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5445         * config/stormy16/stormy16-protos.h
5446         (xstormy16_mode_dependent_address_p): Remove.
5447         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
5448         Make static. Change return type to bool. Change argument type to
5449         const_rtx. Remove dead code.
5450         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5451
5452 2011-02-21  Richard Guenther  <rguenther@suse.de>
5453
5454         PR lto/47820
5455         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5456         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
5457         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
5458         TUs context.
5459         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5460         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
5461
5462 2011-02-20  Richard Guenther  <rguenther@suse.de>
5463
5464         PR lto/47822
5465         * tree.c (free_lang_data_in_decl): Clean builtins from
5466         the TU decl BLOCK_VARS.
5467
5468 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
5469
5470         PR debug/47620
5471         PR debug/47630
5472         * haifa-sched.c (fix_tick_ready): Skip tick computation
5473         for debug insns.
5474
5475 2011-02-19  Richard Guenther  <rguenther@suse.de>
5476
5477         PR lto/47647
5478         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
5479         Remove lazy BLOCK_VARS streaming.
5480         (lto_input_ts_block_tree_pointers): Likewise.
5481         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
5482
5483 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
5484
5485         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
5486
5487 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
5488
5489         * config/i386/biarch32.h, config/i386/mach.h,
5490         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
5491
5492 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
5493
5494         PR target/47800
5495         * config/i386/i386.md (peephole2 for shift and plus): Use
5496         operands[1] original mode in the first insn.
5497
5498 2011-02-18  Mike Stump  <mikestump@comcast.net>
5499
5500         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
5501
5502 2011-02-18  Jan Hubicka  <jh@suse.cz>
5503
5504         PR middle-end/47788
5505         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
5506         to zero when the function is not inlinable at all.
5507
5508 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5509
5510         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
5511         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
5512         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
5513         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
5514         * config/pa/t-pa64: Likewise.
5515         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
5516
5517 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
5518
5519         PR driver/47787
5520         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
5521
5522 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5523
5524         PR target/47792
5525         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
5526
5527 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
5528
5529         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
5530         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
5531         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
5532         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
5533         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
5534         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
5535         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
5536         m32r_load_postinc_p, m32r_store_preinc_predec_p,
5537         m32r_legitimate_address_p): New functions.
5538         * config/m32r/constraints.md (constraint "S"): Don't use
5539         STORE_PREINC_PREDEC_P.
5540         (constraint "U"): Don't use LOAD_POSTINC_P.
5541
5542 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
5543
5544         PR rtl-optimization/46178
5545         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
5546         compute ira_hard_regno_cover_class[].
5547
5548 2011-02-18  Richard Guenther  <rguenther@suse.de>
5549
5550         PR lto/47798
5551         * lto-streamer.h (lto_global_var_decls): Declare.
5552         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
5553         statics for global var processing.
5554
5555 2011-02-18  Richard Guenther  <rguenther@suse.de>
5556
5557         PR tree-optimization/47737
5558         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
5559         edge dominance check.
5560
5561 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
5562
5563         PR debug/47780
5564         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
5565         avoid invalid rtx sharing.
5566
5567 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
5568
5569         * doc/cpp.texi (Obsolete Features): Add background on the
5570         origin of assertions.
5571
5572 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
5573
5574         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
5575         objc_abi == 2.
5576         * config/darwin.c (output_objc_section_asm_op): Added support for
5577         ABI v1 and v2.
5578         (is_objc_metadata): New.
5579         (darwin_objc2_section): New.
5580         (darwin_objc1_section): New.
5581         (machopic_select_section): Added support for ABI v1 and v2.
5582         (darwin_emit_objc_zeroed): New.
5583         (darwin_output_aligned_bss): Detect objc metadata and treat it
5584         appropriately.
5585         (darwin_asm_output_aligned_decl_common): Same.
5586         (darwin_asm_output_aligned_decl_local): Same.
5587         * config/darwin-sections.def: Updated for ABI v1 and v2.
5588         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
5589         compiling Objective-C code for the NeXT runtime, default to using
5590         ABI version 0 for 32-bit, and version 2 for 64-bit.
5591
5592 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5593
5594         * common.opt (optimize_fast): New Variable.
5595         * opts.c (default_options_optimization): Use opts->x_optimize_fast
5596         instead of local variable ofast.
5597
5598 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5599
5600         * doc/invoke.texi (fobjc-abi-version): Documented.
5601         (fobjc-nilcheck): Documented.
5602         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
5603         version.
5604
5605 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5606
5607         PR driver/47390
5608         * common.opt (export-dynamic): New Driver option.
5609         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
5610
5611 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5612
5613         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
5614
5615 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
5616             Jan Hubicka  <jh@suse.cz>
5617
5618         PR debug/47106
5619         PR debug/47402
5620         * cfgexpand.c (account_used_vars_for_block): Remove.
5621         (estimated_stack_frame_size): Use referenced vars.
5622         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
5623         that were referenced in the original function.  Test src_fn
5624         rather than cfun.  Drop redundant get_var_ann.
5625         (setup_one_parameter): Drop redundant get_var_ann.
5626         (declare_return_variable): Likewise.
5627         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
5628         (copy_arguments_for_versioning): Drop redundant get_var_ann.
5629         * ipa-inline.c (compute_inline_parameters): Do not compute
5630         disregard_inline_limits here.
5631         (compute_inlinable_for_current, pass_inlinable): New.
5632         (pass_inline_parameters): Require PROP_referenced_vars.
5633         * cgraphunit.c (cgraph_process_new_functions): Don't run
5634         compute_inline_parameters explicitly unless function is in SSA form.
5635         (cgraph_analyze_function): Set .disregard_inline_limits.
5636         * tree-sra.c (convert_callers): Compute inliner parameters
5637         only for functions already in SSA form.
5638
5639 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5640
5641         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
5642         -mlittle-endian-data.
5643
5644 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
5645
5646         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
5647         -mno-fpu, not -fpu and -no-fpu.
5648         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
5649         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
5650
5651 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
5652
5653         PR target/43653
5654         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
5655         input reload with PLUS RTX.
5656
5657 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5658
5659         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
5660         of InverseVar(MDMX).
5661
5662 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5663
5664         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
5665         --m4-340.
5666
5667 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5668
5669         * config/mn10300/mn10300.opt (mno-crt0): New.
5670
5671 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5672
5673         * config/m68k/uclinux.opt (static-libc): New Driver option.
5674
5675 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5676
5677         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
5678
5679 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
5680
5681         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
5682         %{muser-extend-enabled}.
5683
5684 2011-02-16  Richard Guenther  <rguenther@suse.de>
5685
5686         PR tree-optimization/47738
5687         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
5688         the TODO from tree_predictive_commoning.
5689
5690 2011-02-15  Jeff Law  <law@redhat.com>
5691
5692         Revert
5693         2011-01-25  Jeff Law  <law@redhat.com>
5694
5695         PR rtl-optimization/37273
5696         * ira-costs.c (scan_one_insn): Detect constants living in memory and
5697         handle them like argument loads from stack slots.  Do not double
5698         count memory for memory constants and argument loads from stack slots.
5699
5700 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5701
5702         PR middle-end/47725
5703         * combine.c (cant_combine_insn_p): Revert the last change.
5704
5705 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5706
5707         PR target/47755
5708         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
5709         mode for vector constants.  Remove code that checks for TImode.
5710
5711 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5712
5713         PR debug/47106
5714         PR debug/47402
5715         * cgraph.h (compute_inline_parameters): Return void.
5716         * ipa-inline.c (compute_inline_parameters): Adjust.
5717
5718 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5719
5720         PR debug/47106
5721         PR debug/47402
5722         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
5723         rather than decl.
5724         * cfgexpand.c (estimated_stack_frame_size): Likewise.
5725         * ipa-inline.c (compute_inline_parameters): Adjust.
5726
5727 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5728
5729         PR debug/47106
5730         PR debug/47402
5731         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
5732         Adjust all users.  Pass FN to...
5733         * tree-flow-inline.h (first_referenced_var): ... this.  Add
5734         fn argument.
5735         * ipa-struct-reorg.c: Adjust.
5736         * tree-dfa.c: Adjust.
5737         * tree-into-ssa.c: Adjust.
5738         * tree-sra.c: Adjust.
5739         * tree-ssa-alias.c: Adjust.
5740         * tree-ssa-live.c: Adjust.
5741         * tree-ssa.c: Adjust.
5742         * tree-ssanames.c: Adjust.
5743         * tree-tailcall.c: Adjust.
5744
5745 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5746
5747         PR debug/47106
5748         PR debug/47402
5749         * tree-flow.h (referenced_var_lookup): Add fn parameter.
5750         Adjust all callers.
5751         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
5752         * tree-flow-inline.h: Adjust.
5753         * gimple-pretty-print.c: Adjust.
5754         * tree-into-ssa.c: Adjust.
5755         * tree-ssa.c: Adjust.
5756         * cfgexpand.c: Adjust.
5757
5758 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5759
5760         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
5761         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5762         (EXTRA_CONSTRAINT): Delete.
5763         * config/iq2000/constraints.md: New file.
5764         * config/iq2000/iq2000.md: Include it.
5765         (define_insn ""): Delete.
5766         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
5767         unsupported constraint letters from patterns.
5768         (call_value, call_value_internal1): Likewise.
5769         (call_value_multiple_internal1): Likewise.
5770
5771 2011-02-15  Nick Clifton  <nickc@redhat.com>
5772
5773         * config/mn10300/mn10300.c: Include tm-constrs.h.
5774         (struct liw_data): New data structure describing an LIW candidate
5775         instruction.
5776         (extract_bundle): Use struct liw_data.  Allow small integer
5777         operands for some instructions.
5778         (check_liw_constraints): Use struct liw_data.  Remove swapped
5779         parameter.  Add comments describing the checks.  Fix bug when
5780         assigning the source of liw1 to the source of liw2.
5781         (liw_candidate): Delete.  Code moved into extract_bundle.
5782         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
5783         before swapping.
5784         * config/mn10300/predicates.md (liw_operand): New predicate.
5785         Allows registers and small integer constants.
5786         * config/mn10300/constraints.md (O): New constraint.  Accetps
5787         integers in the range -8 to +7 inclusive.
5788         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
5789         for moving a small integer into a register.  Give this alternative
5790         LIW attributes.
5791         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
5792         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
5793         using the J,K,L and M constraints,
5794         (liw): Remove SI mode on second operands to allow for HI and QI
5795         mode values.
5796         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
5797         instruction.
5798
5799 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5800
5801         PR middle-end/47725
5802         * combine.c (cant_combine_insn_p): Check zero/sign extended
5803         hard registers.
5804
5805 2011-02-15  Richard Guenther  <rguenther@suse.de>
5806
5807         PR tree-optimization/47743
5808         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
5809         for a non-type-compatible VN lookup bail out.
5810
5811 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5812
5813         * config/fr30/constraints.md: New file.
5814         * config/fr30/fr30.md: Include it.
5815         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
5816         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5817         (EXTRA_CONSTRAINT): Delete.
5818
5819 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5820
5821         * config/frv/constraints.md: New file.
5822         * config/frv/predicates.md: Include it.
5823         * config/frv/frv.c (reg_class_from_letter): Delete.
5824         (frv_option_override): Don't initialize it.
5825         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
5826         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
5827         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
5828         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
5829         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
5830         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5831         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
5832         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
5833         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
5834         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
5835         (REG_CLASS_FROM_CONSTRAINT): Delete.
5836
5837 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
5838
5839         PR middle-end/47581
5840         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
5841         if frame size is 0 in a leaf function.
5842
5843 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5844
5845         PR pch/14940
5846         * config/alpha/host-osf.c: New file.
5847         * config/alpha/x-osf: New file.
5848         * config.host (alpha*-dec-osf*): Use it.
5849
5850 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
5851
5852         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5853         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
5854         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
5855         (rx_mode_dependent_address_p): ...this. Make static. Change argument
5856         type to const_rtx.
5857         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5858
5859 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5860
5861         * config/stormy16/constraints.md: New file.
5862         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
5863         Use satisfies_constraint_Q and satisfies_constraint_R.
5864         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
5865         Delete.
5866         (xstormy16_legitiamte_address_p): Declare.
5867         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
5868         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5869         (EXTRA_CONSTRAINT): Delete.
5870         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5871         Un-staticize.
5872         (xstormy16_extra_constraint_p): Delete.
5873
5874 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
5875
5876         PR tree-optimization/46494
5877         * loop-unroll.c (split_edge_and_insert): Adjust comment.
5878         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
5879         (pass_rtl_loop_done): Add TODO_verify_flow.
5880         * fwprop.c (pass_rtl_fwprop): Likewise.
5881         * modulo-sched.c (pass_sms): Likewise.
5882         * tree-ssa-dom.c (pass_dominator): Likewise.
5883         * tree-ssa-loop-ch.c (pass_ch): Likewise.
5884         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
5885         (pass_tree_loop_done): Likewise.
5886         * tree-ssa-pre.c (execute_pre): Likewise.
5887         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5888         * tree-ssa-sink.c (pass_sink_code): Likewise.
5889         * tree-vrp.c (pass_vrp): Likewise.
5890
5891 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5892
5893         * config/v850/constraints.md: New file.
5894         * config/v850/v850.md: Include it.
5895         * config/v850/predicates.md (reg_or_0_operand): Use
5896         satisfies_constraint_G.
5897         (special_symbolref_operand): Use satisfies_constraint_K.
5898         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
5899         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5900         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
5901         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
5902         (EXTRA_CONSTRAINT): Delete.
5903         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
5904         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
5905         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
5906
5907 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
5908
5909         PR target/47696
5910         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
5911         description.
5912
5913 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5914
5915         * config/mcore/constraints.md: New file.
5916         * config/mcore/mcore.md: Include it.
5917         * config/mcore/mcore.c (reg_class_from_letter): Delete.
5918         * config/mcore/mcore.h (reg_class_from_letter): Delete.
5919         (REG_CLASS_FROM_LETTER): Delete.
5920         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
5921         insn_const_int_ok_for_constraint.
5922         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
5923         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
5924         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5925         (EXTRA_CONSTRAINT): Delete.
5926
5927 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5928
5929         PR ada/41929
5930         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
5931         (IS_SIGHANDLER): Define.
5932         (sparc64_is_sighandler): New function, split off from
5933         sparc64_fallback_frame_state.
5934         (sparc_is_sighandler): New function, split off from
5935         sparc_fallback_frame_state.
5936         (sparc64_fallback_frame_state): Merge with ...
5937         (sparc_fallback_frame_state): ... this into ...
5938         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
5939         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
5940         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
5941         stack instead of hardcoded offsets.
5942
5943 2011-02-14  Andriy Gapon  <avg@freebsd.org>
5944
5945         PR target/45808
5946         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
5947
5948 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5949
5950         * configure: Regenerate.
5951
5952 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
5953
5954         PR driver/45731
5955         * gcc.c (asm_options): Correct spec matching --target-help.
5956
5957 2011-02-12  Martin Jambor  <mjambor@suse.cz>
5958
5959         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
5960         to gimple call error.
5961
5962 2011-02-12  Mike Stump  <mikestump@comcast.net>
5963
5964         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
5965         comments in backslash regions.
5966
5967 2011-02-12  Mike Stump  <mikestump@comcast.net>
5968             Jakub Jelinek  <jakub@redhat.com>
5969             Iain Sandoe  <iains@gcc.gnu.org>
5970
5971         PR target/47324
5972         * dwarf2out.c (output_cfa_loc): When required, apply the
5973         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
5974         (output_loc_sequence): Likewise.
5975         (output_loc_operands_raw): Likewise.
5976         (output_loc_sequence_raw): Likewise.
5977         (output_cfa_loc): Likewise.
5978         (output_loc_list): Suppress register number adjustment when
5979         calling output_loc_sequence()
5980         (output_die): Likewise.
5981
5982 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
5983
5984         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5985         Remove macros.
5986         * config/xtensa/xtensa.c (xtensa_register_move_cost,
5987         xtensa_memory_move_cost): New functions.
5988         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
5989
5990 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
5991
5992         PR lto/47225
5993         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
5994         in the current directory.
5995         * configure: Rebuilt.
5996
5997 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
5998
5999         * config/darwin.c (darwin_override_options): Add a hunk missed
6000         from the commit of r168571.  Trim comment line lengths and
6001         correct indents of the preceding block.
6002
6003 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
6004
6005         * gcc.c (driver_handle_option): Concatenate the argument to -F with
6006         the switch.
6007
6008 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
6009
6010         * common.opt (nostartfiles): New Driver option.
6011
6012 2011-02-11  Xinliang David Li  <davidxl@google.com>
6013
6014         PR tree-optimization/47707
6015         * tree-chrec.c (convert_affine_scev): Keep type precision.
6016
6017 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
6018
6019         PR tree-optimization/47420
6020         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
6021
6022 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
6023
6024         PR rtl-optimization/47614
6025         * rtl.h (check_for_inc_dec): Declare.
6026         * dse.c (check_for_inc_dec): Externalize...
6027         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
6028         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
6029
6030 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
6031
6032         PR driver/47678
6033         * gcc.c (main): Do not compile inputs if there were errors in
6034         option handling.
6035         * opts-common.c (read_cmdline_option): Check for wrong language
6036         after other error checks.
6037
6038 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
6039
6040         * cgraph.c: Fix comment typos.
6041         * cgraph.h: Likewise.
6042         * cgraphunit.c: Likewise.
6043         * ipa-cp.c: Likewise.
6044         * ipa-inline.c: Likewise.
6045         * ipa-prop.c: Likewise.
6046         * ipa-pure-const.c: Likewise.
6047         * ipa-ref.c: Likewise.
6048         * ipa-reference.c: Likewise.
6049
6050 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
6051
6052         PR debug/47684
6053         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
6054
6055 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6056
6057         PR testsuite/47400
6058         * doc/sourcebuild.texi (Require Support): Document
6059         dg-require-ascii-locale.
6060
6061 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
6062
6063         * doc/lto.texi (Write summary): Fix missing parentheses.
6064
6065 2011-02-10  DJ Delorie  <dj@redhat.com>
6066
6067         * config/m32c/m32c.c (m32c_option_override): Disable
6068         -fcombine-stack-adjustments until flag value tracking and compare
6069         optimization can be rewritten.
6070
6071 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
6072
6073         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
6074         PROCESSOR_POWER7.
6075         (PROCESSOR_DEFAULT64): Likewise.
6076
6077 2011-02-10  Richard Henderson  <rth@redhat.com>
6078
6079         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
6080         change from 2011-02-03.
6081         * config/rx/rx.c (flags_from_code): Likewise.
6082         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
6083         is valid, n/pz otherwise.
6084         (rx_select_cc_mode): Return CCmode if Y is not zero.
6085
6086 2011-02-10  Richard Guenther  <rguenther@suse.de>
6087
6088         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
6089
6090 2011-02-10  Richard Guenther  <rguenther@suse.de>
6091
6092         PR tree-optimization/47677
6093         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
6094
6095 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
6096
6097         PR target/47665
6098         * combine.c (make_compound_operation): Only change shifts into
6099         multiplication for SCALAR_INT_MODE_P.
6100
6101 2011-02-10  Jie Zhang  <jie@codesourcery.com>
6102
6103         PR testsuite/47622
6104         Revert
6105         2011-02-05  Jie Zhang  <jie@codesourcery.com>
6106         PR debug/42631
6107         * web.c (entry_register): Don't clobber the number of the
6108         first uninitialized reference in used[].
6109
6110 2011-02-09  Richard Guenther  <rguenther@suse.de>
6111
6112         PR tree-optimization/47664
6113         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
6114         all edges again.
6115
6116 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
6117
6118         PR target/46481
6119         PR target/47032
6120         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
6121         PROCESSOR_POWER7.
6122         (PROCESSOR_DEFAULT64): Same.
6123         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
6124
6125 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6126
6127         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
6128
6129 2011-02-09  Martin Jambor  <mjambor@suse.cz>
6130
6131         PR middle-end/45505
6132         * tree-sra.c (struct access): New flags grp_scalar_read and
6133         grp_scalar_write.  Changed description of assignment read and write
6134         flags.
6135         (dump_access): Dump new flags, reorder all of them.
6136         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
6137         to detect multiple scalar reads.
6138         (analyze_access_subtree): Use the new scalar read write flags instead
6139         of the old flags.  Adjusted comments.
6140
6141 2011-02-08  DJ Delorie  <dj@redhat.com>
6142
6143         PR target/47548
6144         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
6145         patterns.
6146
6147 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6148
6149         * config/m68k/uclinux.opt: New.
6150         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
6151
6152 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6153
6154         * config/cris/elf.opt (sim): New Driver option.
6155
6156 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6157
6158         * config/xtensa/elf.opt: New.
6159         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
6160
6161 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6162
6163         * config/vax/elf.opt: New.
6164         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
6165
6166 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6167
6168         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
6169
6170 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6171
6172         * config/gnu-user.opt: New.
6173         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
6174         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
6175         *-*-uclinux*): Use gnu-user.opt.
6176
6177 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
6178
6179         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
6180         * config/i386/gnu.h (CPP_SPEC): Likewise.
6181
6182 2011-02-08  Ian Lance Taylor  <iant@google.com>
6183
6184         * common.opt (fcx-limited-range): Add SetByCombined flag.
6185         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
6186         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
6187         (fassociative-math, freciprocal-math): Likewise.
6188         (funsafe-math-optimizations): Likewise.
6189         * opth-gen.awk: Handle SetByCombined.
6190         * optc-gen.awk: Likewise.
6191         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
6192         (set_unsafe_math_optimizations_flags): Likewise.
6193         * doc/options.texi (Option properties): Document SetByCombined.
6194
6195 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6196
6197         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
6198         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
6199         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
6200         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
6201         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
6202
6203 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
6204
6205         PR tree-optimization/46834
6206         PR tree-optimization/46994
6207         PR tree-optimization/46995
6208         * graphite-sese-to-poly.c (used_outside_reduction): New.
6209         (detect_commutative_reduction): Call used_outside_reduction.
6210         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
6211         translate_scalar_reduction_to_array only when at least one
6212         loop-phi/close-phi tuple has been detected.
6213
6214 2011-02-08  Richard Guenther  <rguenther@suse.de>
6215
6216         PR middle-end/47639
6217         * tree-vect-generic.c (expand_vector_operations_1): Update
6218         stmts here ...
6219         (expand_vector_operations): ... not here.  Cleanup EH info
6220         and the CFG if required.
6221
6222 2011-02-08  Richard Guenther  <rguenther@suse.de>
6223
6224         PR tree-optimization/47641
6225         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
6226         require type compatibility.
6227
6228 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6229
6230         * gimple-low.c (lower_function_body): Don't remove the location of
6231         the return statement here.
6232         (lower_gimple_return): Do it here instead but only if the return
6233         statement is actually used twice.
6234
6235 2011-02-08  Richard Guenther  <rguenther@suse.de>
6236
6237         PR tree-optimization/47632
6238         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
6239         unused up_to_stmt parameter, return whether cfg-cleanup is
6240         necessary, remove EH info properly.
6241         (forward_propagate_into_gimple_cond): Adjust caller.
6242         (forward_propagate_into_cond): Likewise.
6243         (forward_propagate_comparison): Likewise.
6244         (tree_ssa_forward_propagate_single_use_vars): Make
6245         forward_propagate_comparison case similar to the two others.
6246
6247 2011-02-08  Nick Clifton  <nickc@redhat.com>
6248
6249         * config/mn10300/mn10300.opt (mliw): New command line option.
6250         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
6251         (liw_bundling): New automaton.
6252         (liw): New attribute.
6253         (liw_op): New attribute.
6254         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
6255         (movsi_internal): Add LIW attributes.
6256         (andsi3): Likewise.
6257         (iorsi3): Likewise.
6258         (xorsi3): Likewise.
6259         (addsi3): Separate register and immediate alternatives.
6260         Add LIW attributes.
6261         (subsi3): Likewise.
6262         (cmpsi): Likewise.
6263         (aslsi3): Likewise.
6264         (lshrsi3): Likewise.
6265         (ashrsi3): Likewise.
6266         (liw): New pattern.
6267         * config/mn10300/mn10300.c (liw_op_names): New
6268         (mn10300_print_operand): Handle 'W' operand descriptor.
6269         (extract_bundle): New function.
6270         (check_liw_constraints): New function.
6271         (liw_candidate): New function.
6272         (mn10300_bundle_liw): New function.
6273         (mn10300_reorg): New function.
6274         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6275         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
6276         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
6277         __LIW__ or __NO_LIW__.
6278         * doc/invoke.texi: Describe the -mliw command line option.
6279
6280 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6281
6282         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
6283         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6284         pthread_mutex_unlock): Remove.
6285         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
6286         * config/pa/t-pa64: Likewise.
6287         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
6288         shared libc if not linking against libpthread.
6289         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6290
6291 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
6292
6293         PR target/47558
6294         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
6295         on 10.6 and later to ensure that we always use the unwinder from
6296         the system.  Only add -no_compact_unwind when tarteting darwin
6297         10.6 or later.
6298
6299 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
6300
6301         PR target/46997
6302         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
6303         (vec_interleave_lowv2sf): Ditto.
6304         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
6305         (vec_extract_oddv2sf): Ditto.
6306
6307 2011-02-07  Mike Stump  <mikestump@comcast.net>
6308
6309         PR target/42333
6310         Add __ieee_divdc3 entry point.
6311         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
6312         entry point.
6313         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
6314         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
6315         * config/darwin.c (darwin_rename_builtins): Add.
6316         * config/darwin-protos.h (darwin_rename_builtins): Add.
6317
6318 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
6319
6320         PR target/47636
6321         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
6322         for the condition.
6323
6324 2011-02-07  Mike Stump  <mikestump@comcast.net>
6325
6326         * config/darwin.opt (mmacosx-version-min): Update default OS version.
6327
6328 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
6329
6330         PR target/47534
6331         * config/avr/libgcc.S (exit): Move .endfunc
6332
6333 2011-02-07  Richard Guenther  <rguenther@suse.de>
6334
6335         PR tree-optimization/47615
6336         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
6337         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
6338         (run_scc_vn): Initialize it.
6339         (visit_reference_op_load): Use it.
6340         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
6341
6342 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6343
6344         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
6345         DImode trapping arithmetic libfuncs.
6346
6347 2011-02-07  Richard Guenther  <rguenther@suse.de>
6348
6349         PR tree-optimization/47621
6350         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
6351         two duplicates ...
6352         (execute_update_addresses_taken): ... here.  Make it more
6353         conservative in what we accept.
6354
6355 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
6356
6357         * config/sparc/freebsd.h (ASM_SPEC): Define.
6358         * config/sparc/vxworks.h (ASM_SPEC): Define.
6359
6360 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
6361
6362         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
6363
6364 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
6365
6366         * doc/invoke.texi: Remove reference to compiler internals from
6367         user documentation.
6368
6369         * reg-notes.def: Remove REG_VALUE_PROFILE.
6370         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
6371
6372 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
6373
6374         PR middle-end/47610
6375         * varasm.c (default_section_type_flags): If decl is NULL,
6376         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
6377
6378 2011-02-05  Jie Zhang  <jie@codesourcery.com>
6379
6380         PR debug/42631
6381         * web.c (entry_register): Don't clobber the number of the
6382         first uninitialized reference in used[].
6383
6384 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
6385
6386         PR tree-optimization/46194
6387         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
6388         (build_classic_dist_vector_1): Do not represent classic distance
6389         vectors when the access functions are variating in different loops.
6390
6391 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6392
6393         * config/mips/iris6.opt: New.
6394         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
6395
6396 2011-02-04  Richard Henderson  <rth@redhat.com>
6397             Steve Ellcey  <sje@cup.hp.com>
6398
6399         PR target/46997
6400         * config/ia64/predicates.md (mux1_brcst_element): New.
6401         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
6402         * config/ia64/ia64.c (ia64_unpack_assemble): New.
6403         (ia64_unpack_sign): New.
6404         (ia64_expand_unpack): Rewrite using new routines.
6405         (ia64_expand_widen_sum): Ditto.
6406         (ia64_expand_dot_prod_v8qi): Ditto.
6407         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
6408         routines, add endian check.
6409         (pmpy2_even): Rename from pmpy2_r, add endian check.
6410         (pmpy2_odd): Rename from pmpy2_l, add endian check.
6411         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
6412         (vec_widen_smult_hi_v4hi): Ditto.
6413         (vec_widen_umult_lo_v4hi): Ditto.
6414         (vec_widen_umult_hi_v4hi): Ditto.
6415         (mulv2si3): Change endian checks.
6416         (sdot_prodv4hi): Rewrite with new calls.
6417         (udot_prodv4hi): New.
6418         (vec_pack_ssat_v4hi): Add endian check.
6419         (vec_pack_usat_v4hi): Ditto.
6420         (vec_pack_ssat_v2si): Ditto.
6421         (max1_even): Rename from max1_r, add endian check.
6422         (max1_odd): Rename from max1_l, add endian check.
6423         (*mux1_rev): Format change.
6424         (*mux1_mix): Ditto.
6425         (*mux1_shuf): Ditto.
6426         (*mux1_alt): Ditto.
6427         (*mux1_brcst_v8qi): Use new predicate.
6428         (vec_extract_evenv8qi): Remove endian check.
6429         (vec_extract_oddv8qi): Ditto.
6430         (vec_interleave_lowv4hi): Format change.
6431         (vec_interleave_highv4hi): Ditto.
6432         (mix2_even): Rename from mix2_r, add endian check.
6433         (mix2_odd): Rename from mux2_l, add endian check.
6434         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
6435         (vec_extract_evenodd_helper): Format change.
6436         (vec_extract_evenv4hi): Remove endian check.
6437         (vec_extract_oddv4hi): Remove endian check.
6438         (vec_interleave_lowv2si): Format change.
6439         (vec_interleave_highv2si): Format change.
6440         (vec_initv2si): Remove endian check.
6441         (vecinit_v2si): Add endian check.
6442         (reduc_splus_v2sf): Add endian check.
6443         (reduc_smax_v2sf): Ditto.
6444         (reduc_smin_v2sf): Ditto.
6445         (vec_initv2sf): Remove endian check.
6446         (fpack): Add endian check.
6447         (fswap): Add endian check.
6448         (vec_interleave_highv2sf): Add endian check.
6449         (vec_interleave_lowv2sf): Add endian check.
6450         (fmix_lr): Add endian check.
6451         (vec_setv2sf): Format change.
6452         (*vec_extractv2sf_0_be): Use shift to extract operand.
6453         (*vec_extractv2sf_1_be): New.
6454         (vec_pack_trunc_v4hi): Add endian check.
6455         (vec_pack_trunc_v2si): Format change.
6456
6457 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
6458
6459         PR inline-asm/23200
6460         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
6461         do bb, locus and block comparison and disallow loads if it is not set.
6462         (stmt_is_replaceable_p): New function.
6463         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
6464         callers.
6465         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
6466         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
6467         SSA_NAME_DEF_STMT.
6468         * tree-flow.h (stmt_is_replaceable_p): New prototype.
6469
6470 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6471
6472         * config/rs6000/xilinx.opt: New.
6473         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
6474
6475 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6476
6477         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
6478
6479 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
6480
6481         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
6482         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6483         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
6484         secondary_reload_info, xtensa_secondary_reload): Remove.
6485         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
6486         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6487         (xtensa_preferred_reload_class): Make static. Change return and
6488         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
6489         Use CONST_DOUBLE_P predicate.
6490         (xtensa_preferred_output_reload_class): New function.
6491         (xtensa_secondary_reload): Make static.
6492
6493 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
6494
6495         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
6496         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
6497         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
6498
6499 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
6500
6501         PR middle-end/31490
6502         * output.h (SECTION_RELRO): Define.
6503         (SECTION_MACH_DEP): Adjust.
6504         (get_variable_section): New prototype.
6505         * varpool.c (varpool_finalize_named_section_flags): New function.
6506         (varpool_assemble_pending_decls): Call it.
6507         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
6508         * cgraphunit.c (cgraph_output_in_order): Call
6509         varpool_finalize_named_section_flags.
6510         * varasm.c (get_section): Allow section flags conflicts between
6511         relro and read-only sections if the section hasn't been declared yet.
6512         Set SECTION_OVERRIDE after diagnosing section type conflict.
6513         (get_variable_section): No longer static.
6514         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
6515         readonly sections that need relocations.
6516         (decl_readonly_section_1): New function.
6517         (decl_readonly_section): Use it.
6518
6519         Revert:
6520         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
6521                     Steve Ellcey  <sje@cup.hp.com>
6522
6523         PR middle-end/31490
6524         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
6525         if section attribute used.
6526
6527 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
6528
6529         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
6530         * config/darwin.c (SECTION_NO_ANCHOR): Define.
6531         (darwin_init_sections): Remove assertion.
6532
6533 2011-02-03  Nick Clifton  <nickc@redhat.com>
6534
6535         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
6536         lt and ge.
6537         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6538         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
6539         instead of "n" and "pz".
6540         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
6541         CC_FLAG_S.
6542
6543 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
6544
6545         PR target/47312
6546         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
6547         fma, expand FMA_EXPR as fma{,f,l} call.
6548
6549         PR lto/47274
6550         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
6551         copy them into a unsigned char variable and pass address of it to
6552         lto_output_data_stream.
6553
6554         PR target/47564
6555         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
6556         around backend_init_target and lang_dependent_init_target calls.
6557         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
6558         (verify_cgraph_node): Don't call set_cfun here.  Use
6559         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
6560         Set error_found for incorrectly represented calls to thunks.
6561
6562 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
6563
6564         PR debug/43092
6565         PR rtl-optimization/43494
6566         * rtl.h (for_each_inc_dec_fn): New type.
6567         (for_each_inc_dec): Declare.
6568         * rtlanal.c (struct for_each_inc_dec_ops): New type.
6569         (for_each_inc_dec_find_inc_dec): New fn.
6570         (for_each_inc_dec_find_mem): New fn.
6571         (for_each_inc_dec): New fn.
6572         * dse.c (struct insn_size): Remove.
6573         (replace_inc_dec, replace_inc_dec_mem): Remove.
6574         (emit_inc_dec_insn_before): New fn.
6575         (check_for_inc_dec): Use it, along with for_each_inc_dec.
6576         (canon_address): Pass mem modes to cselib_lookup.
6577         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
6578         (cselib_lookup_from_insn): Likewise.
6579         (cselib_subst_to_values): Likewise.
6580         * cselib.c (find_slot_memmode): New var.
6581         (cselib_find_slot): New fn.  Use it instead of
6582         htab_find_slot_with_hash everywhere.
6583         (entry_and_rtx_equal_p): Use find_slot_memmode.
6584         (autoinc_split): New fn.
6585         (rtx_equal_for_cselib_p): Rename and implement in terms of...
6586         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
6587         Deal with autoinc.  Special-case recursion into MEMs.
6588         (cselib_hash_rtx): Likewise.
6589         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
6590         address and MEM modes.
6591         (cselib_subst_to_values): Add memmode, pass it on.
6592         Deal with autoinc.
6593         (cselib_lookup): Add memmode argument, pass it on.
6594         (cselib_lookup_from_insn): Add memmode.
6595         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
6596         (struct cselib_record_autoinc_data): New.
6597         (cselib_record_autoinc_cb): New fn.
6598         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
6599         mode to cselib_lookup.  Reset autoinced REGs here instead of...
6600         (cselib_process_insn): ... here.
6601         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
6602         to cselib_lookup.
6603         (add_uses): Likewise, also to cselib_subst_to_values.
6604         (add_stores): Likewise.
6605         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
6606         cselib_subst_to_values.
6607         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
6608         * gcse.c (do_local_cprop): Adjusted.
6609         * postreload.c (reload_cse_simplify_set): Adjusted.
6610         (reload_cse_simplify_operands): Adjusted.
6611         * sel-sched-dump (debug_mem_addr_value): Pass mode.
6612
6613 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
6614
6615         PR tree-optimization/45122
6616         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
6617         unsafe assumptions when there's more than one loop exit.
6618
6619 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6620
6621         PR target/47272
6622         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
6623         Document using vector double with the load/store builtins, and
6624         that the load/store builtins always use Altivec instructions.
6625
6626         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
6627         to use altivec memory instructions, even on VSX.
6628         (vector_altivec_store_<mode>): Ditto.
6629
6630         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
6631         function.
6632
6633         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6634         V2DF, V2DI support to load/store overloaded builtins.
6635
6636         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
6637         altivec load/store builtins for V2DF/V2DI types.
6638
6639         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6640         set avoid indexed addresses on power6 if -maltivec.
6641         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
6642         vector_altivec_load/vector_altivec_store builtins.
6643         (altivec_expand_st_builtin): Ditto.
6644         (altivec_expand_builtin): Add VSX memory builtins.
6645         (rs6000_init_builtins): Add V2DI types to internal types.
6646         (altivec_init_builtins): Add support for V2DF/V2DI altivec
6647         load/store builtins.
6648         (rs6000_address_for_altivec): Insure memory address is appropriate
6649         for Altivec.
6650
6651         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
6652         vec_vsx_ld and vec_vsx_st.
6653         (vsx_store_<mode>): Ditto.
6654
6655         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
6656         variables to hold long long types for VSX vector memory builtins.
6657         (RS6000_BTI_unsigned_long_long): Ditto.
6658         (long_long_integer_type_internal_node): Ditti.
6659         (long_long_unsigned_type_internal_node): Ditti.
6660
6661         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
6662         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
6663         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
6664
6665         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
6666         short cuts.
6667         (vec_vsx_st): Ditto.
6668
6669 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
6670
6671         * config/pa/pa-hpux10.opt: New.
6672         * config/hpux11.opt (pthread): New Driver option.
6673         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
6674         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
6675
6676 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
6677
6678         * config/ia64/vms.opt: New.
6679         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
6680
6681 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
6682
6683         PR target/47580
6684         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
6685         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
6686         generator functions.
6687         (vsx_floatuns<VSi><mode>2): Ditto.
6688         (vsx_fix_trunc<mode><VSi>2): Ditto.
6689         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
6690
6691 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
6692
6693         * config/i386/djgpp.opt (posix): New Driver option.
6694
6695 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6696
6697         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
6698         Move to the unsupported targets list.
6699
6700 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
6701
6702         PR rtl-optimization/47525
6703         * df-scan.c: Update copyright years.
6704         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
6705         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
6706
6707 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6708
6709         * config/i386/sysv4.h (TARGET_VERSION): Remove.
6710         (SUBTARGET_RETURN_IN_MEMORY): Remove.
6711         (ASM_OUTPUT_ASCII): Remove.
6712         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
6713
6714 2011-02-02  Jeff Law  <law@redhat.com>
6715
6716         PR middle-end/47543
6717         * reload.c (find_reloads_address): Handle reg+d address where both
6718         components are invalid by reloading the entire address.
6719
6720 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
6721             Richard Guenther  <rguenther@suse.de>
6722
6723         PR tree-optimization/40979
6724         PR bootstrap/47044
6725         * passes.c (init_optimization_passes): After LIM call copy_prop
6726         and DCE to clean up.
6727         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
6728
6729 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
6730
6731         PR tree-optimization/47576
6732         PR tree-optimization/47555
6733         * doc/invoke.texi (scev-max-expr-complexity): Documented.
6734         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6735         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
6736         * tree-scalar-evolution.c (follow_ssa_edge): Use
6737         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
6738
6739 2011-02-02  Richard Guenther  <rguenther@suse.de>
6740
6741         PR tree-optimization/47566
6742         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
6743
6744 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
6745
6746         PR debug/47106
6747         PR debug/47402
6748         * tree-inline.c (declare_return_variable): Remove unused caller
6749         variable.
6750
6751         PR debug/47106
6752         PR debug/47402
6753         * tree-flow-inline.h (clear_is_used, is_used_p): New.
6754         * cfgexpand.c (account_used_vars_for_block): Use them.
6755         * tree-nrv.c (tree_nrv): Likewise.
6756         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
6757         (dump_scope_block): Likewise.
6758         (remove_unused_locals): Likewise.
6759
6760         PR debug/47106
6761         PR debug/47402
6762         * tree-inline.c (declare_return_variable): Add result decl to
6763         local decls only once.
6764         * gimple-low.c (record_vars_into): Mark newly-created variables
6765         as referenced.
6766
6767 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
6768
6769         PR debug/47498
6770         PR debug/47501
6771         PR debug/45136
6772         PR debug/45130
6773         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
6774         debug insns.
6775         (no_real_insns_p, schedule_block, set_priorities): Drop special
6776         treatment of boundary debug insns.
6777         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
6778         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
6779         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
6780         (BOUNDARY_DEBUG_INSN_P): Likewise.
6781         (SCHEDULE_DEBUG_INSN_P): Likewise.
6782         * sched-rgn.c (init_ready_list): Drop special treatment of
6783         boundary debug insns.
6784         * final.c (rest_of_clean_state): Clear notes' BB.
6785
6786 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6787
6788         * config/openbsd.opt (assert=): New Driver option.
6789
6790 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6791
6792         * config/i386/nto.opt: New.
6793         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
6794
6795 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6796
6797         * config/i386/netware.opt: New.
6798         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
6799
6800 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6801
6802         * config/interix.opt (posix): New Driver option.
6803
6804 2011-02-01  DJ Delorie  <dj@redhat.com>
6805
6806         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
6807
6808         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
6809         class for A0/A1.
6810
6811 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
6812
6813         PR tree-optimization/47561
6814         * toplev.c (process_options): Print the Graphite flags.  Add
6815         flag_loop_flatten to the list of options requiring Graphite.
6816
6817 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6818
6819         * config/i386/cygming.opt (posix): New Driver option.
6820
6821 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6822
6823         * config/arm/vxworks.opt: New.
6824         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
6825
6826 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6827
6828         * config/alpha/elf.opt: New.
6829         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
6830         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
6831
6832 2011-02-01  Richard Guenther  <rguenther@suse.de>
6833
6834         PR tree-optimization/47559
6835         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
6836         store-motion on references that can throw.
6837
6838 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
6839
6840         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
6841         * tree-pass.h (TDF_CSELIB): New macro.
6842         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
6843         cselib_lookup): Check for it rather than for TDF_DETAILS.
6844
6845 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
6846
6847         PR driver/47547
6848         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
6849         is HOST_BIT_BUCKET.
6850
6851         * opts.c (finish_options): Don't add x_aux_base_name if it is
6852         HOST_BIT_BUCKET.
6853
6854 2011-02-01  Richard Guenther  <rguenther@suse.de>
6855
6856         PR tree-optimization/47555
6857         Revert
6858         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
6859
6860         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6861
6862 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
6863
6864         PR gcc/46692
6865         * config/lm32/t-lm32: Add multilib for all CPU options.
6866
6867 2011-02-01  Richard Guenther  <rguenther@suse.de>
6868
6869         PR tree-optimization/47541
6870         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
6871         sure to have a field at offset zero.
6872
6873 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6874
6875         * config/arc/arc.opt (EB, EL): New Driver options.
6876
6877 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6878
6879         * config/alpha/osf5.opt: New.
6880         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
6881
6882 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6883
6884         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
6885
6886 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
6887
6888         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
6889         -floop-interchange.
6890         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
6891         is an alias of -floop-interchange and that it requires the
6892         Graphite infrastructure.
6893         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
6894         flag_loop_interchange based on the value of flag_tree_loop_linear.
6895
6896 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
6897             Richard Guenther  <rguenther@suse.de>
6898
6899         PR tree-optimization/47538
6900         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
6901         type instead of r1type, except for comparisons.  For right
6902         shifts and comparisons punt if there are mismatches in
6903         sizetype vs. non-sizetype types.
6904
6905 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6906
6907         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6908         avx_runtime.
6909
6910 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6911
6912         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
6913         version number.
6914         * configure: Regenerate.
6915
6916 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6917
6918         * configure.ac (gcc_cv_ld_static_option): Define.
6919         (gcc_cv_ld_dynamic_option): Define.
6920         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
6921         instead.
6922         (HAVE_LD_STATIC_DYNAMIC): Update message.
6923         (LD_STATIC_OPTION): Define.
6924         (LD_DYNAMIC_OPTION): Define.
6925         * configure: Regenerate.
6926         * config.in: Regenerate.
6927         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
6928         HAVE_LD_STATIC_DYNAMIC]: Use them.
6929
6930 2011-01-31  Nick Clifton  <nickc@redhat.com>
6931
6932         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
6933         registers inside interrupt handlers if the handler is not a leaf
6934         function.
6935
6936 2011-01-31  Nick Clifton  <nickc@redhat.com>
6937
6938         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
6939         reg_renumber returning an INVALID_REGNUM.
6940
6941 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
6942
6943         PR libgcj/44341
6944         * doc/install.texi: Document host options discarded when cross
6945         configuring target libraries.
6946
6947 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
6948
6949         Reverted:
6950         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
6951         PR debug/45136
6952         PR debug/45130
6953         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
6954         debug insns.
6955         (no_real_insns_p, schedule_block, set_priorities): Drop special
6956         treatment of boundary debug insns.
6957         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
6958         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
6959         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
6960         (BOUNDARY_DEBUG_INSN_P): Likewise.
6961         (SCHEDULE_DEBUG_INSN_P): Likewise.
6962         * sched-rgn.c (init_ready_list): Drop special treatment of
6963         boundary debug insns.
6964         * final.c (rest_of_clean-state): Clear notes' BB.
6965
6966 2011-01-31  Alan Modra  <amodra@gmail.com>
6967
6968         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
6969         toc relative expressions as we do in print_operand_address.
6970
6971 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
6972
6973         * doc/extend.texi: Follow spelling conventions.
6974         * doc/invoke.texi: Fix a typo.
6975
6976 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
6977
6978         * config/hpux11.opt: New.
6979         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
6980         ia64*-*-hpux*): Use hpux11.opt.
6981
6982 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
6983
6984         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
6985         to tmake_file.
6986
6987 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6988
6989         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
6990         support sites.
6991
6992 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6993
6994         * doc/install.texi (Binaries): Remove outdated reference for
6995         Motorola 68HC11/68HC12 downloads.
6996
6997 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6998
6999         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
7000         Drepper's paper.
7001
7002 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
7003
7004         PR bootstrap/47147
7005         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
7006         used by NetBSD.
7007
7008 2011-01-28  Ahmad Sharif  <asharif@google.com>
7009
7010         * value-prof.c (check_counter): Corrected error message.
7011
7012 2011-01-29  Jie Zhang  <jie@codesourcery.com>
7013
7014         * config/arm/arm.c (arm_legitimize_reload_address): New.
7015         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
7016         arm_legitimize_reload_address.
7017         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
7018
7019 2011-01-28  Ian Lance Taylor  <iant@google.com>
7020
7021         * godump.c (go_define): Ignore macros whose definitions include
7022         two adjacent operands.
7023
7024 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
7025
7026         PR target/42894
7027         * varasm.c (force_const_mem): Store copy of x in desc->constant
7028         instead of x itself.
7029         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
7030         itself into REG_EQUAL note.
7031
7032 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
7033
7034         * config/freebsd.opt (posix, rdynamic): New Driver options.
7035
7036 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7037
7038         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
7039         -Bstatic/-Bdynamic.
7040         * configure: Regenerate.
7041
7042 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
7043
7044         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
7045         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
7046
7047 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
7048
7049         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
7050         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
7051         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7052         (s390_preferred_reload_class): Make static. Change return and
7053         'rclass' argument type to reg_class_t.
7054
7055 2011-01-27  Jan Hubicka  <jh@suse.cz>
7056
7057         PR middle-end/46949
7058         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
7059         (process_function_and_variable_attributes): Check defined weakrefs.
7060
7061 2011-01-27  Martin Jambor  <mjambor@suse.cz>
7062
7063         PR tree-optimization/47228
7064         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
7065         build_ref_for_offset.
7066
7067 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7068
7069         * config/spu/spu-elf.h (ASM_SPEC): Remove.
7070
7071 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
7072
7073         PR rtl-optimization/46856
7074         * postreload.c (reload_combine_recognize_const_pattern): Do not
7075         separate cc0 setter and user on cc0 targets.
7076
7077 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
7078
7079         PR c/43082
7080         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
7081         passed a VOID_TYPE expression, immediately emit an error and
7082         return error_mark_node.
7083
7084 2011-01-26  Jeff Law  <law@redhat.com>
7085
7086         PR rtl-optimization/47464
7087         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
7088         rather than may_trap_p as needed.
7089
7090 2011-01-26  DJ Delorie  <dj@redhat.com>
7091
7092         PR rtl-optimization/46878
7093         * combine.c (insn_a_feeds_b): Check for the implicit cc0
7094         setter/user dependency as well.
7095
7096 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7097
7098         PR rtl-optimization/44469
7099         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
7100         after removing trivially dead basic blocks.
7101
7102 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7103
7104         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
7105         * config/frv/frv.h (LINK_SPEC): Likewise.
7106         * config/i386/netware.h (LINK_SPEC): Likewise.
7107         * config/m68k/linux.h (ASM_SPEC): Likewise.
7108         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
7109         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7110         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7111         * config/sparc/linux.h (ASM_SPEC): Likewise.
7112         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7113         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7114
7115 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7116
7117         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
7118         * config/frv/frv.h (ASM_SPEC): Likewise.
7119         * config/m68k/linux.h (ASM_SPEC): Likewise.
7120         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
7121         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
7122         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7123         * config/sparc/linux.h (ASM_SPEC): Likewise.
7124         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7125         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7126
7127 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7128
7129         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
7130         * config/frv/frv.h (LINK_SPEC): Likewise.
7131         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7132
7133 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7134
7135         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
7136         * config/frv/frv.h (ASM_SPEC): Likewise.
7137         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
7138         * config/m68k/linux.h (ASM_SPEC): Likewise.
7139         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
7140         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
7141         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7142         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
7143         * config/sparc/linux.h (ASM_SPEC): Likewise.
7144         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7145         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7146         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
7147
7148 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
7149
7150         PR target/46997
7151         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
7152         (*mux2): Ditto.
7153         (vec_extract_evenodd_help): Ditto.
7154         (vec_extract_evenv4hi): Ditto.
7155         (vec_extract_oddv4hi): Ditto.
7156         (vec_interleave_lowv2si): Ditto.
7157         (vec_interleave_highv2si): Ditto.
7158         (vec_extract_evenv2si): Ditto.
7159         (vec_extract_oddv2si: Ditto.
7160         (vec_pack_trunc_v2si): Ditto.
7161
7162 2011-01-22  Jan Hubicka  <jh@suse.cz>
7163
7164         PR target/47237
7165         * cgraph.h (cgraph_local_info): New field can_change_signature.
7166         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
7167         signature can change.
7168         (ipcp_estimate_growth): Call sequence simplify only if calle signature
7169         can change.
7170         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
7171         (cgraph_function_versioning): We can not change signature of functions
7172         that don't allow that.
7173         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
7174         (lto_input_node): Likewise.
7175         * ipa-inline.c (compute_inline_parameters): Compute
7176         local.can_change_signature.
7177         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
7178         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
7179         functions that can not change signature.
7180         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
7181         init_cumulative_args): Do not use local calling conventions
7182         for functions that can not change signature.
7183
7184 2011-01-22  Jan Hubicka  <jh@suse.cz>
7185
7186         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
7187
7188 2011-01-26  Richard Guenther  <rguenther@suse.de>
7189
7190         PR tree-optimization/47190
7191         * cgraphunit.c (process_common_attributes): New function.
7192         (process_function_and_variable_attributes): Use it.
7193
7194 2011-01-26  Richard Guenther  <rguenther@suse.de>
7195
7196         PR lto/47423
7197         * cgraphbuild.c (record_eh_tables): Record reference to personality
7198         function.
7199
7200 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
7201
7202         PR debug/45454
7203         * sel-sched.c (moveup_expr): Don't let debug insns prevent
7204         non-debug insns from moving up.
7205
7206 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7207
7208         PR target/40125
7209         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
7210         t-dlldir{,-x} fragment for build and add it to tmake_file.
7211         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
7212         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
7213         * config/i386/t-dlldir: New file.
7214         (SHLIB_DLLDIR): Define.
7215         * config/i386/t-dlldir-x: New file.
7216         (SHLIB_DLLDIR): Define.
7217         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
7218         (SHLIB_INSTALL): Use it.
7219
7220 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
7221
7222         PR target/47246
7223         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
7224         lower bound of the allowed Thumb-2 coprocessor load/store
7225         index range to -256. Add explaining comment.
7226
7227 2011-01-25  Ian Lance Taylor  <iant@google.com>
7228
7229         * godump.c (go_define): Improve lexing of macro expansion to only
7230         accept expressions which match Go spec.
7231
7232 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7233
7234         PR c++/43601
7235         * tree.c (handle_dll_attribute): Handle it.
7236         * doc/extend.texi (@item dllexport): Mention it.
7237         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
7238
7239 2011-01-25  Ian Lance Taylor  <iant@google.com>
7240
7241         PR tree-optimization/26854
7242         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
7243         (decl_jump_unsafe): Move higher in file, with no other change.
7244         (bind): Set has_jump_unsafe_decl if appropriate.
7245         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
7246         (check_earlier_gotos): Likewise.
7247         (c_check_switch_jump_warnings): Likewise.
7248
7249 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
7250
7251         * doc/invoke.texi (Warning Options): Add missing hyphen.
7252         (-fprofile-dir): Minor grammatical fixes.
7253         (-fbranch-probabilities): Likewise.
7254
7255 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
7256
7257         PR debug/45136
7258         PR debug/45130
7259         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7260         debug insns.
7261         (no_real_insns_p, schedule_block, set_priorities): Drop special
7262         treatment of boundary debug insns.
7263         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7264         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
7265         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7266         (BOUNDARY_DEBUG_INSN_P): Likewise.
7267         (SCHEDULE_DEBUG_INSN_P): Likewise.
7268         * sched-rgn.c (init_ready_list): Drop special treatment of
7269         boundary debug insns.
7270         * final.c (rest_of_clean-state): Clear notes' BB.
7271
7272 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7273
7274         * Makefile.in (LAMBDA_H): Removed.
7275         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
7276         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
7277         lambda-trans.o, and tree-loop-linear.o.
7278         (lto-symtab.o): Remove dependence on LAMBDA_H.
7279         (tree-loop-linear.o): Remove rule.
7280         (lambda-mat.o): Same.
7281         (lambda-trans.o): Same.
7282         (lambda-code.o): Same.
7283         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
7284         (tree-vect-slp.o): Same.
7285         * hwint.h (gcd): Moved here.
7286         (least_common_multiple): Same.
7287         * lambda-code.c: Removed.
7288         * lambda-mat.c: Removed.
7289         * lambda-trans.c: Removed.
7290         * lambda.h: Removed.
7291         * tree-loop-linear.c: Removed.
7292         * lto-symtab.c: Do not include lambda.h.
7293         * omega.c (gcd): Removed.
7294         * passes.c (init_optimization_passes): Remove pass_linear_transform.
7295         * tree-data-ref.c (print_lambda_vector): Moved here.
7296         (lambda_vector_copy): Same.
7297         (lambda_matrix_copy): Same.
7298         (lambda_matrix_id): Same.
7299         (lambda_vector_first_nz): Same.
7300         (lambda_matrix_row_add): Same.
7301         (lambda_matrix_row_exchange): Same.
7302         (lambda_vector_mult_const): Same.
7303         (lambda_vector_negate): Same.
7304         (lambda_matrix_row_negate): Same.
7305         (lambda_vector_equal): Same.
7306         (lambda_matrix_right_hermite): Same.
7307         * tree-data-ref.h: Do not include lambda.h.
7308         (lambda_vector): Moved here.
7309         (lambda_matrix): Same.
7310         (dependence_level): Same.
7311         (lambda_transform_legal_p): Removed declaration.
7312         (lambda_collect_parameters): Same.
7313         (lambda_compute_access_matrices): Same.
7314         (lambda_vector_gcd): Same.
7315         (lambda_vector_new): Same.
7316         (lambda_vector_clear): Same.
7317         (lambda_vector_lexico_pos): Same.
7318         (lambda_vector_zerop): Same.
7319         (lambda_matrix_new): Same.
7320         * tree-flow.h (least_common_multiple): Removed declaration.
7321         * tree-parloops.c (lambda_trans_matrix): Moved here.
7322         (LTM_MATRIX): Same.
7323         (LTM_ROWSIZE): Same.
7324         (LTM_COLSIZE): Same.
7325         (LTM_DENOMINATOR): Same.
7326         (lambda_trans_matrix_new): Same.
7327         (lambda_matrix_vector_mult): Same.
7328         (lambda_transform_legal_p): Same.
7329         * tree-pass.h (pass_linear_transform): Removed declaration.
7330         * tree-ssa-loop.c (tree_linear_transform): Removed.
7331         (gate_tree_linear_transform): Removed.
7332         (pass_linear_transform): Removed.
7333         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
7334         flag_loop_interchange.
7335
7336 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7337
7338         PR tree-optimization/47265
7339         PR tree-optimization/47443
7340         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
7341         if name still has some uses.
7342
7343 2011-01-25  Martin Jambor  <mjambor@suse.cz>
7344
7345         PR tree-optimization/47382
7346         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
7347         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
7348
7349 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
7350
7351         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
7352         sjlj_except_unwind_info.
7353
7354 2011-01-25  Richard Guenther  <rguenther@suse.de>
7355
7356         PR tree-optimization/47426
7357         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
7358         visible functions results escape.
7359
7360 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7361
7362         PR target/45701
7363         * config/arm/arm.c (any_sibcall_uses_r3): New function.
7364         (arm_get_frame_offsets): Use it.
7365
7366 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7367             Jakub Jelinek  <jakub@redhat.com>
7368
7369         PR tree-optimization/47271
7370         * tree-if-conv.c (bb_postdominates_preds): New.
7371         (if_convertible_bb_p): Call bb_postdominates_preds.
7372         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
7373         (predicate_scalar_phi): Call bb_postdominates_preds.
7374
7375 2011-01-25  Nick Clifton  <nickc@redhat.com>
7376
7377         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
7378         * config/rx/rx.c (rx_function_value): Likewise.
7379         (rx_promote_function_mode): Likewise.
7380         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
7381         in order to make it legitimate.
7382         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
7383         make sure that the first operand is the same as the result register.
7384         (addsi3_unspec): Delete.
7385         (subdi3): Do not accept immediate operands.
7386         (subdi3_internal): Likewise.
7387
7388 2011-01-25  Jeff Law  <law@redhat.com>
7389
7390         PR rtl-optimization/37273
7391         * ira-costs.c (scan_one_insn): Detect constants living in memory and
7392         handle them like argument loads from stack slots.  Do not double
7393         count memory for memory constants and argument loads from stack slots.
7394
7395 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7396
7397         PR tree-optimization/47427
7398         PR tree-optimization/47428
7399         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7400         coalesce if the new root var would be TREE_READONLY.
7401
7402 2011-01-25  Richard Guenther  <rguenther@suse.de>
7403
7404         PR middle-end/47414
7405         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
7406         correct type for TBAA.
7407
7408 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7409
7410         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
7411         (close_phi_written_to_memory): Call for_each_index with
7412         dr_indices_valid_in_loop.
7413
7414 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7415
7416         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
7417         when it is initialized.
7418
7419 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7420
7421         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
7422         call to graphite_find_data_references_in_stmt.
7423         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
7424         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
7425         call to graphite_find_data_references_in_stmt.
7426         (analyze_drs_in_stmts): Same.
7427         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
7428         in which the scalar analysis of indices is performed.
7429         (create_data_ref): Same.  Update call to dr_analyze_indices.
7430         (find_data_references_in_stmt): Update call to create_data_ref.
7431         (graphite_find_data_references_in_stmt): Same.
7432         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
7433         declaration.
7434         (create_data_ref): Same.
7435         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
7436         call to create_data_ref.
7437
7438 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7439
7440         * graphite-sese-to-poly.c (build_poly_scop): Move
7441         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
7442
7443 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7444
7445         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
7446         VAR_DECL, PARM_DECL, and RESULT_DECL.
7447
7448 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7449
7450         * graphite-dependences.c (reduction_dr_1): Allow several reductions
7451         in a reduction PBB.
7452         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
7453         that have already been marked as PBB_IS_REDUCTION.
7454
7455 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7456
7457         * graphite-scop-detection.c (same_close_phi_node): New.
7458         (remove_duplicate_close_phi): New.
7459         (make_close_phi_nodes_unique): New.
7460         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
7461
7462 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7463
7464         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
7465         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
7466         of both data references to be the same.
7467
7468 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7469
7470         * graphite-dependences.c (build_lexicographical_constraint): Remove
7471         the gdim parameter.
7472         (build_lexicographical_constraint): Adjust call to
7473         ppl_powerset_is_empty.
7474         (dependence_polyhedron): Same.
7475         (graphite_legal_transform_dr): Same.
7476         (graphite_carried_dependence_level_k): Same.
7477         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
7478         parameter.
7479         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
7480
7481 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7482
7483         * graphite-sese-to-poly.c
7484         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
7485         (close_phi_written_to_memory): New.
7486         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
7487         and unshare_expr.
7488
7489 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7490
7491         * doc/install.texi: Update the expected version number of PPL to 0.11.
7492         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
7493         #if PPL_VERSION_MINOR < 11.
7494
7495 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7496
7497         * graphite-dependences.c: Include graphite-cloog-util.h.
7498         (new_poly_ddr): Inlined into dependence_polyhedron.
7499         (free_poly_ddr): Moved close by new_poly_ddr.
7500         (dependence_polyhedron_1): Renamed dependence_polyhedron.
7501         Early return NULL when ppl_powerset_is_empty returns true.
7502         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
7503         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
7504         (graphite_legal_transform_dr): Call new_poly_ddr.
7505         (graphite_carried_dependence_level_k): Same.
7506         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
7507         (dot_transformed_deps_stmt_1): Removed.
7508         (dot_deps_stmt_1): Call dot_deps_stmt_2.
7509         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
7510         (dot_deps_1): Call dot_deps_2.
7511         * Makefile.in (graphite-dependences.o): Add missing dependence on
7512         graphite-cloog-util.h.
7513
7514 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7515
7516         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
7517         (build_lexicographical_constraint): Same.
7518         (dependence_polyhedron_1): Same.
7519         (graphite_legal_transform_dr): Same.
7520         (graphite_carried_dependence_level_k): Same.
7521         * graphite-ppl.c (ppl_powerset_is_empty): New.
7522         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
7523         * tree-data-ref.c (dump_data_reference): Print the basic block index.
7524
7525 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7526
7527         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
7528         the "a followed by b" relation and document it.
7529
7530 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7531
7532         * graphite-dependences.c (build_lexicographical_constraint): Stop the
7533         iteration when the bag of constraints is empty.
7534
7535 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7536
7537         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
7538
7539 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7540
7541         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
7542         nest and two loop depths as parameters.
7543         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
7544         lst_perfect_nestify.
7545
7546 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7547
7548         * graphite-dependences.c (print_pddr): Call
7549         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
7550
7551 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7552
7553         * graphite-ppl.c (debug_gmp_value): New.
7554         * graphite-ppl.h (debug_gmp_value): Declared.
7555
7556 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
7557
7558         * doc/install.texi: Document availability of cloog-0.16.
7559
7560 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
7561
7562         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
7563         invalid postdominance info.
7564
7565 2011-01-24  Jan Hubicka  <jh@suse.cz>
7566
7567         PR c/21659
7568         * doc/extend.texi (weak pragma): Drop claim that it must
7569         appear before definition.
7570         * varasm.c (merge_weak, declare_weak): Only sanity check
7571         that DECL is not output at a time it is declared weak.
7572
7573 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
7574
7575         * machmode.def: Fixed comments.
7576
7577 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
7578
7579         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
7580
7581 2011-01-24  Paul Koning  <ni1d@arrl.net>
7582
7583         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
7584         WORDS_BIG_ENDIAN.
7585
7586 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7587
7588         PR target/46519
7589         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
7590         (block_info): Add scanned and prev.
7591         (move_or_delete_vzeroupper_2): Return if the basic block
7592         has been scanned and the upper 128bit state is unchanged
7593         from the last scan.
7594         (move_or_delete_vzeroupper_1): Return true if the exit
7595         state is changed.
7596         (move_or_delete_vzeroupper): Visit basic blocks using the
7597         work-list based algorithm based on vt_find_locations in
7598         var-tracking.c.
7599
7600         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
7601
7602 2011-01-24  Nick Clifton  <nickc@redhat.com>
7603
7604         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
7605         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
7606         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
7607         then define __v850e1__.
7608         * doc/invoke.texi: Document -mv850es.
7609
7610 2011-01-24  Richard Henderson  <rth@redhat.com>
7611
7612         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
7613         compound unordered comparisons.
7614         * config/rx/rx.c (rx_split_fp_compare): Remove.
7615         * config/rx/rx-protos.h: Update.
7616         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
7617         (cbranchsf4): Don't call rx_split_fp_compare.
7618         (*cbranchsf4): Use rx_split_cbranch.
7619         (*cmpsf): Don't accept "i" constraint.
7620         (*conditional_branch): Only valid after reload.
7621         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
7622
7623 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7624
7625         PR target/47385
7626         * config/rs6000/altivec.md (vector constant splitters): Add
7627         support for creating vector single precision constants if -mvsx is
7628         used and we would create the constant using Altivec primitives.
7629
7630 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
7631             Richard Sandiford  <rdsandiford@googlemail.com>
7632
7633         PR rtl-optimization/47166
7634         * reload1.c (emit_reload_insns): Disable the spill_reg_store
7635         mechanism for PRE_MODIFY and POST_MODIFY.
7636         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
7637         reloadreg.
7638
7639 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
7640
7641         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7642
7643 2011-01-22  Jan Hubicka  <jh@suse.cz>
7644
7645         PR lto/47333
7646         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
7647
7648 2011-01-22  Jan Hubicka  <jh@suse.cz>
7649
7650         PR tree-optimization/43884
7651         PR lto/44334
7652         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
7653         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
7654
7655 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
7656
7657         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7658         * config/s390/s390.c (s390_register_move_cost,
7659         s390_memory_move_cost): New.
7660         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7661
7662 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7663
7664         PR middle-end/47401
7665         * except.c (sjlj_assign_call_site_values): Move setting the
7666         crtl->uses_eh_lsda flag to ...
7667         (sjlj_mark_call_sites): ... here.
7668         (sjlj_emit_function_enter): Support NULL dispatch label.
7669         (sjlj_build_landing_pads): In a function with no landing pads
7670         that still has must-not-throw regions, generate code to register
7671         a personality function with empty LSDA.
7672
7673 2011-01-21  Richard Henderson  <rth@redhat.com>
7674
7675         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
7676
7677         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
7678
7679         * compare-elim.c: New file.
7680         * Makefile.in (OBJS-common): Add it.
7681         (compare-elim.o): New.
7682         * common.opt (fcompare-elim): New.
7683         * opts.c (default_options_table): Add OPT_fcompare_elim.
7684         * tree-pass.h (pass_compare_elim_after_reload): New.
7685         * passes.c (init_optimization_passes): Add it.
7686         * recog.h: Protect against re-inclusion.
7687         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
7688         * doc/invoke.texi (-fcompare-elim): Document it.
7689         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
7690         * doc/tm.texi: Rebuild.
7691
7692 2011-01-22  Nick Clifton  <nickc@redhat.com>
7693
7694         * config/rx/rx.md (cstoresf4): Pass comparison operator to
7695         rx_split_fp_compare.
7696
7697 2011-01-22  Nick Clifton  <nickc@redhat.com>
7698
7699         * config/rx/rx.md (UNSPEC_CONST): New.
7700         (deallocate_and_return): Wrap the amount popped off the stack in
7701         an UNSPEC_CONST in order to stop it being rejected by
7702         -mmax-constant-size.
7703         (pop_and_return): Add a "(return)" rtx.
7704         (call): Drop the immediate operand.
7705         (call_internal): Likewise.
7706         (call_value): Likewise.
7707         (call_value_internal): Likewise.
7708         (sibcall_internal): Likewise.
7709         (sibcall_value_internal): Likewise.
7710         (sibcall): Likewise.  Generate an explicit call using
7711         sibcall_internal.
7712         (sibcall_value): Likewise.
7713         (mov<>): FAIL if a constant operand is not legitimate.
7714         (addsi3_unpsec): New pattern.
7715
7716         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
7717         (ok_for_max_constant): New function.
7718         (gen_safe_add): New function.
7719         (rx_expand_prologue): Use gen_safe_add.
7720         (rx_expand_epilogue): Likewise.
7721         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
7722         UNSPEC CONSTs.
7723
7724 2011-01-21  Jeff Law  <law@redhat.com>
7725
7726         PR tree-optimization/47053
7727         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
7728         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
7729         statements are deleted.
7730         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
7731         is nonempty, then purge dead edges and cleanup the CFG.
7732
7733 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7734
7735         PR debug/47402
7736         Temporarily revert:
7737         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7738         PR debug/47106
7739         * tree-dfa.c (create_var_ann): Mark variable as used.
7740
7741 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7742
7743         PR middle-end/45566
7744         * except.c (convert_to_eh_region_ranges): Emit queued no-region
7745         notes from other section in hot/cold partitioning even if
7746         last_action is -3.  Increment call_site_base.
7747
7748         PR rtl-optimization/47366
7749         * fwprop.c (forward_propagate_into): Return bool.  If
7750         any changes are made, -fnon-call-exceptions is used and
7751         REG_EH_REGION note is present, call purge_dead_edges
7752         and return true if it purged anything.
7753         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
7754         any EH edges were purged.
7755
7756 2011-01-21  Jeff Law  <law@redhat.com>
7757
7758         PR rtl-optimization/41619
7759         * caller-save.c (setup_save_areas): Break out code to determine
7760         which hard regs are live across calls by examining the reload chains
7761         so that it is always used.
7762         Eliminate code which checked REG_N_CALLS_CROSSED.
7763
7764 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7765
7766         PR tree-optimization/47355
7767         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
7768         NOP has non-debug uses beyond PHIs in new_bb.
7769
7770 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7771
7772         PR debug/47106
7773         * cfgexpand.c (account_used_vars_for_block): Only account vars
7774         that are annotated as used.
7775         (estimated_stack_frame_size): Don't set TREE_USED.
7776         * tree-dfa.c (create_var_ann): Mark variable as used.
7777
7778 2011-01-21  Richard Guenther  <rguenther@suse.de>
7779
7780         PR middle-end/47395
7781         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
7782
7783 2011-01-21  Richard Guenther  <rguenther@suse.de>
7784
7785         PR tree-optimization/47365
7786         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
7787         (vn_reference_lookup_pieces): Adjust.
7788         (vn_reference_lookup): Likewise.
7789         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
7790         (vn_reference_lookup_3): Only look through kills if in
7791         VN_WALKREWRITE mode.
7792         (vn_reference_lookup_pieces): Adjust.
7793         (vn_reference_lookup): Likewise.
7794         (visit_reference_op_load): Likewise.
7795         (visit_reference_op_store): Likewise.
7796         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
7797         (compute_avail): Likewise.
7798         (eliminate): Likewise.
7799
7800 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7801
7802         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
7803         DECL_IGNORED_P non-reg vars if they are used.
7804
7805         PR tree-optimization/47391
7806         * varpool.c (const_value_known_p): Return false if
7807         decl is volatile.
7808
7809 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
7810
7811         PR bootstrap/47215
7812         * config/i386/i386.c (ix86_local_alignment): Handle
7813         case for va_list_type_node is nil.
7814         (ix86_canonical_va_list_type): Likewise.
7815
7816 2011-01-21  Alan Modra  <amodra@gmail.com>
7817
7818         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
7819         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
7820
7821 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7822
7823         * config/arm/arm.md (define_attr type): Rename f_load
7824         and f_store to f_fpa_load and f_fpa_store. Update.
7825         (write_conflict): Deal with rename fallout.
7826         (*push_fp_multi): Likewise.
7827         * config/arm/fpa.md (f_load): Use f_fpa_load.
7828         (f_store): Use f_fpa_store.
7829         (*movsf_fpa): Likewise.
7830         (*movdf_fpa): Likewise.
7831         (*movxf_fpa): Likewise.
7832         (*thumb2_movsf_fpa): Likewise.
7833         (*thumb2_movdf_fpa): Likewise.
7834         (*thumb2_movxf_fpa): Likewise.
7835         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
7836         f_loadd and f_stored.
7837         (*thumb2_movdi_vfp): Likewise.
7838         (*thumb2_movsf_vfp): Fix attribute to f_loads.
7839         (*thumb2_movsi_vfp): Likewise.
7840         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
7841         Use f_loads instead of f_load.
7842         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
7843
7844 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
7845
7846         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7847         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
7848         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7849         (xtensa_mode_dependent_address_p): New function.
7850         (constantpool_address_p): Make static. Change return type to bool.
7851         Change argument type to const_rtx. Use CONST_INT_P predicate.
7852
7853 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
7854
7855         PR debug/46583
7856         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
7857
7858 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
7859
7860         PR debug/47283
7861         * cfgexpand.c (expand_debug_expr): Instead of generating
7862         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
7863         etc. handling.
7864
7865 2011-01-20  Richard Guenther  <rguenther@suse.de>
7866
7867         PR middle-end/47370
7868         * tree-inline.c (remap_gimple_op_r): Recurse manually for
7869         the pointer operand of MEM_REFs.
7870
7871 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
7872
7873         PR tree-optimization/46130
7874         * ipa-split.c (consider_split): If return_bb contains non-virtual
7875         PHIs other than for retval or if split_function would not adjust it,
7876         refuse to split.
7877
7878 2011-01-20  Richard Guenther  <rguenther@suse.de>
7879
7880         PR tree-optimization/47167
7881         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
7882         Revert previous change, only avoid enumeral type changes.
7883
7884 2011-01-19  Mike Stump  <mikestump@comcast.net>
7885
7886         * doc/tm.texi.in (BRANCH_COST): Englishify.
7887         * doc/tm.texi (BRANCH_COST): Likewise.
7888
7889 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
7890
7891         PR c++/47291
7892         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
7893         (gen_scheduled_generic_parms_dies): New functions.
7894         (gen_struct_or_union_type_die): Schedule template parameters DIEs
7895         generation for the end of CU compilation.
7896         (dwarf2out_finish): Generate template parameters DIEs here.
7897
7898 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7899
7900         PR debug/46240
7901         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
7902         debug bind stmt on merge edges.
7903
7904 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7905
7906         PR debug/47079
7907         PR debug/46724
7908         * function.c (instantiate_expr): Instantiate incoming rtl of
7909         implicit arguments, and recurse on VALUE_EXPRs.
7910         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
7911         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
7912
7913 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7914
7915         * c-parser.c (c_parser_for_statement): Initialize
7916         collection_expression.
7917
7918 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7919
7920         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
7921
7922 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7923
7924         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
7925         (LINK_SHLIB_SPEC): Don't use %(link_path).
7926         (SUBTARGET_EXTRA_SPECS): Remove link_path.
7927
7928 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7929
7930         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
7931         (NO_SHARED_LIB_SUPPORT): Remove.
7932         (LINK_SHLIB_SPEC): Remove one conditional definition.
7933
7934 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7935
7936         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
7937         %{call_shared}.
7938         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
7939         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
7940         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
7941         %{call_shared} and conditionals on these options not being passed.
7942         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
7943         %{call_shared}.
7944
7945 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
7946
7947         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
7948         simplify.
7949
7950         * ipa-split.c: Spelling fixes.
7951
7952 2011-01-19  Richard Henderson  <rth@redhat.com>
7953
7954         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
7955         (*mulsi3): Likewise.
7956
7957         * longlong.h [__mn10300__] (count_leading_zeros): New.
7958         [__mn10300__] (umul_ppmm, smul_ppmm): New.
7959         [__mn10300__] (add_ssaaaa, subddmmss): New.
7960         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
7961         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
7962
7963 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7964
7965         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
7966
7967 2011-01-19  Richard Henderson  <rth@redhat.com>
7968
7969         * config/mn10300/mn10300.md (addsi3_flags): New.
7970         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
7971         (subsi3_flags, subc_internal, subdi3): New.
7972         (subdi3_internal, *subdi3_degenerate): New.
7973         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
7974
7975         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
7976         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
7977         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
7978         * config/mn10300/mn10300-protos.h: Update.
7979         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
7980         (return_ret): Likewise.  Rename from return_internal_regs.
7981         (return_internal): Remove.
7982
7983         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
7984         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
7985         (mn10300_legitimate_constant_p): Likewise.
7986         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
7987         (mn10300_frame_size): New.
7988         (mn10300_expand_prologue): Use it.
7989         (mn10300_expand_epilogue): Likewise.
7990         (mn10300_initial_offset): Likewise.
7991         * config/mn10300/mn10300-protos.h: Update.
7992         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
7993         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
7994         (prologue, epilogue, return_internal): Tidy output code.
7995         (mn10300_store_multiple_operation, return): Likewise.
7996         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
7997         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
7998         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
7999         (load_pic, am33_load_pic): New.
8000         (mn10300_load_pic0, mn10300_load_pic1): New.
8001
8002         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
8003         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
8004         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
8005         (cc_flags_for_mode, cc_flags_for_code): New.
8006         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
8007         overflow flag is not valid.  Validate that the flags we need
8008         for the comparison are valid.
8009         (mn10300_output_cmp): Remove.
8010         (mn10300_output_add): New.
8011         (mn10300_select_cc_mode): Use cc_flags_for_code.
8012         (mn10300_split_cbranch): New.
8013         (mn10300_match_ccmode): New.
8014         (mn10300_split_and_operand_count): New.
8015         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
8016         to the function.
8017         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
8018         (addsi3): ... here.  Use mn10300_output_add.
8019         (*addsi3_flags): New.
8020         (*am33_subsi3, *mn10300_subsi3): Merge...
8021         (subsi3): ... here.  Use attribute isa.
8022         (*subsi3_flags): New.
8023         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
8024         when possible.
8025         (*am33_andsi3, *mn10300_andsi3): Merge...
8026         (andsi3): ... here.
8027         (*andsi3_flags): New.
8028         (andsi3 splitters): New.
8029         (*am33_iorsi3, *mn10300_iorsi3): Merge...
8030         (iorsi3): ... here.
8031         (*iorsi3_flags): New.
8032         (*am33_xorsi3, *mn10300_xorsi3): Merge...
8033         (xorsi3): ... here.
8034         (*xorsi3_flags): New.
8035         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
8036         (one_cmplsi2): ... here.
8037         (*one_cmplsi2_flags): New.
8038         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
8039         instead of "dax" in constraints.  Use mn10300_split_cbranch.
8040         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
8041         use matching constraints to eliminate a self-comparison.
8042         (*integer_conditional_branch): Rename from integer_conditional_branch.
8043         Use int_mode_flags to match CC_REG.
8044         (*cbranchsi4_btst, *btstsi): New.
8045         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
8046         mn10300_split_cbranch.
8047         (*am33_cmpsf): Rename from am33_cmpsf.
8048         (*float_conditional_branch): Rename from float_conditional_branch.
8049         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
8050         (zero_extendqisi2): ... here.
8051         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
8052         (zero_extendhisi2): ... here.
8053         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
8054         (extendqisi2): ... here.
8055         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
8056         (extendhisi2): ... here.
8057         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
8058         (ashlsi3): ... here.
8059         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
8060         (lshrsi3): ... here.
8061         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
8062         (ashrsi3): ... here.
8063         (consecutive add peephole): Remove.
8064         * config/mn10300/predicates.md (label_ref_operand): New.
8065         (int_mode_flags): New.
8066         (CCZN_comparison_operator): New.
8067
8068         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
8069         (throughput_42_latency_43): New reservation.
8070         (mulsidi3, umulsidi3): New expanders.
8071         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
8072         the MDR register to allocation; separately allocate the low and
8073         high parts of the DImode result.
8074         (umulsidi3_internal): Similarly.
8075         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
8076         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
8077         (udivsi3, umodsi3): Remove.
8078         (udivmodsi4, divmodsi4): New expanders.
8079         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
8080         (*divmodsi4): Simiarly.
8081         (ext_internal): New.
8082
8083         * config/mn10300/constraints.md ("z"): New constraint.
8084         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
8085         (FIXED_REGISTERS): Don't fix MDR.
8086         (CALL_USED_REGSITERS): Reformat nicely.
8087         (REG_ALLOC_ORDER): Add MDR.
8088         (enum regclass): Add MDR_REGS.
8089         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
8090         (IRA_COVER_CLASSES): Add MDR_REGS.
8091         (REGNO_REG_CLASS): Handle MDR_REG.
8092         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
8093         (mn10300_register_move_cost): Likewise.
8094         * config/mn10300/mn10300.md (MDR_REG): New.
8095         (*movsi_internal): Handle moves to/from MDR_REGS.
8096
8097         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
8098         POST_MODIFY.
8099         (mn10300_secondary_reload): Tidy combination reload classes.
8100         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
8101         addresses for AM33.  Allow symbolic offsets for reg+imm.
8102         (mn10300_regno_in_class_p): New.
8103         (mn10300_legitimize_reload_address): New.
8104         * config/mn10300/mn10300.h (enum reg_class): Remove
8105         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
8106         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
8107         SP_OR_GENERAL_REGS.
8108         (REG_CLASS_NAMES): Update to match.
8109         (REG_CLASS_CONTENTS): Likewise.
8110         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
8111         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
8112         (REGNO_IN_RANGE_P): Remove.
8113         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
8114         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
8115         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
8116         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
8117         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
8118         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
8119         (REGNO_GENERAL_P): New.
8120         (HAVE_POST_MODIFY_DISP): New.
8121         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
8122         (LEGITIMIZE_RELOAD_ADDRESS): New.
8123         * config/mn10300/mn10300-protos.h: Update.
8124
8125         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
8126         DATA_REGS for AM33 stack-pointer destination.
8127         (mn10300_preferred_output_reload_class): Likewise.
8128         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
8129         into a form appropriate for ...
8130         (TARGET_SECONDARY_RELOAD): New.
8131         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
8132         * config/mn10300/mn10300-protos.h: Update.
8133         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
8134         reload_insi; use the "A" constraint for the scratch; handle AM33
8135         moves of sp to non-address registers.
8136
8137         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
8138         (*movqi_internal): ... here.
8139         (*am33_movhi, *mn10300_movhi): Merge into...
8140         (*movhi_internal): ... here.
8141         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
8142         as the source/destination of moves from/to SP.
8143         (movsf): Only allow for AM33-2.
8144         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
8145         any integer constant constraint.  Only allow for AM33-2.  Tidy
8146         all of the alternative outputs.
8147         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
8148         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
8149         for MN103.
8150         (udivsi3, umodsi3): New patterns for MN103 only.
8151
8152 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
8153
8154         * doc/tm.texi.in: Spell out that a lack of register class unions
8155         can lead to ICEs.
8156         * doc/tm.texi: Regenerate.
8157
8158 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
8159
8160         PR rtl-optimization/47337
8161         * dce.c (check_argument_store): New function.
8162         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
8163
8164         PR tree-optimization/47290
8165         * tree-eh.c (infinite_empty_loop_p): New function.
8166         (cleanup_empty_eh): Use it.
8167
8168 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
8169
8170         PR target/46997
8171         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
8172         (a64_expand_widen_sum): Ditto.
8173         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
8174         (vec_extract_evenodd_help): Ditto.
8175         (vec_extract_evenv4hi): Ditto.
8176         (vec_extract_oddv4hi): Ditto.
8177         (vec_extract_evenv2si): Ditto.
8178         (vec_extract_oddv2si): Ditto.
8179         (vec_extract_evenv2sf): Ditto.
8180         (vec_extract_oddv2sf): Ditto.
8181         (vec_pack_trunc_v4hi: Ditto.
8182         (vec_pack_trunc_v2si): Ditto.
8183         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
8184         (vec_interleave_highv8qi): Ditto.
8185         (mix1_r): Ditto.
8186         (vec_extract_oddv8qi): Ditto.
8187         (vec_interleave_lowv4hi): Ditto.
8188         (vec_interleave_highv4hi): Ditto.
8189         (vec_interleave_lowv2si): Ditto.
8190         (vec_interleave_highv2si): Ditto.
8191
8192 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8193
8194         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
8195         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
8196         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
8197         (pa_c_mode_for_suffix): New.
8198         (TARGET_EXPAND_BUILTIN): Define.
8199         (TARGET_C_MODE_FOR_SUFFIX): Define.
8200         (pa_builtins): Define.
8201         (pa_init_builtins): Register __float128 type and init new support
8202         builtins.
8203         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
8204         * config/pa/quadlib.c (_U_Qfcopysign): New.
8205
8206 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
8207
8208         PR middle-end/46894
8209         * explow.c (allocate_dynamic_stack_space): Do not assume more than
8210         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
8211         are defined.
8212
8213 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8214
8215         PR tree-optimization/47179
8216         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
8217         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
8218
8219 2011-01-18  Richard Guenther  <rguenther@suse.de>
8220
8221         PR rtl-optimization/47216
8222         * emit-rtl.c: Include tree-flow.h.
8223         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
8224         of replicating it with different semantics.
8225         * Makefile.in (emit-rtl.o): Adjust.
8226
8227 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8228
8229         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
8230         (cortex_a9_dp): Handle neon types correctly.
8231
8232 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
8233
8234         PR rtl-optimization/47299
8235         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
8236         subtarget.  Use normal multiplication if both operands are constants.
8237         * expmed.c (expand_widening_mult): Don't try to optimize constant
8238         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
8239         before using it.
8240
8241 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8242
8243         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
8244         spacing after 'e.g.', typos, comma, hyphenation.
8245
8246 2011-01-17  Richard Henderson  <rth@redhat.com>
8247
8248         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
8249         (rx_restricted_mem_operand): New.
8250         (rx_shift_operand): Use register_operand.
8251         (rx_source_operand, rx_compare_operand): Likewise.
8252         * config/rx/rx.md (addsi3_flags): New expander.
8253         (adddi3): Rewrite as expander.
8254         (adc_internal, *adc_flags, adddi3_internal): New patterns.
8255         (subsi3_flags): New expander.
8256         (subdi3): Rewrite as expander.
8257         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
8258
8259         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
8260         (rx_init_builtins): Remove sat builtin.
8261         (rx_expand_builtin): Likewise.
8262         * config/rx/rx.md (ssaddsi3): New.
8263         (*sat): Rename from sat.  Represent the CC_REG input.
8264
8265         * config/rx/predicates.md (rshift_operator): New.
8266         * config/rx/rx.c (rx_expand_insv): Remove.
8267         * config/rx/rx-protos.h: Update.
8268         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
8269         operand to the canonical position.
8270         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
8271         (*bitclr, *bitclr_in_memory): Similarly.
8272         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
8273         (insv): Retain the zero_extract in the expansion.
8274
8275         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
8276         (bswaphi2, bitinvert, revw): Likewise.
8277
8278         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
8279         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
8280         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
8281         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
8282         (bitset, bitset_in_memory): Likewise.
8283         (bitinvert, bitinvert_in_memory): Likewise.
8284         (bitclr, bitclr_in_memory): Likewise.
8285         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
8286         (rx_strend, rx_cmpstrn): Likewise.
8287         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
8288         (bitop peep2 patterns): Remove.
8289
8290         * config/rx/rx.c (rx_match_ccmode): New.
8291         * config/rx/rx-protos.h: Update.
8292         * config/rx/rx.md (abssi2): Clobber, don't set flags.
8293         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
8294         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
8295         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
8296         (fix_truncsfsi2, floatsisf2): Likewise.
8297         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
8298         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
8299         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
8300         (*subsi3_flags, *xorsi3_flags): New.
8301
8302         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
8303
8304         * config/rx/rx.c (rx_print_operand): Remove workaround for
8305         unsplit comparison operations.
8306
8307         * config/rx/rx.md (movsicc): Split after reload.
8308         (*movsicc): Merge *movsieq and *movsine via match_operator.
8309         (*stcc): New pattern.
8310
8311         * config/rx/rx.c (rx_float_compare_mode): Remove.
8312         * config/rx/rx.h (rx_float_compare_mode): Remove.
8313         * config/rx/rx.md (cstoresi4): Split after reload.
8314         (*sccc): New pattern.
8315
8316         * config/rx/predicates.md (label_ref_operand): New.
8317         (rx_z_comparison_operator): New.
8318         (rx_zs_comparison_operator): New.
8319         (rx_fp_comparison_operator): New.
8320         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
8321         Validate that the flags are set properly for the comparison.
8322         (rx_gen_cond_branch_template): Remove.
8323         (rx_cc_modes_compatible): Remove.
8324         (mode_from_flags): New.
8325         (flags_from_code): Rename from flags_needed_for_conditional.
8326         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
8327         (rx_select_cc_mode): Likewise.
8328         (rx_split_fp_compare): New.
8329         (rx_split_cbranch): New.
8330         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
8331         (*cbranchsi4): Use match_operator and rx_split_cbranch.
8332         (*cbranchsf4): Similarly.
8333         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
8334         match_operator and rx_split_cbranch.
8335         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
8336         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
8337         (*cmpsi): Rename from cmpsi.
8338         (*tstsi): Rename from tstsi.
8339         (*cmpsf): Rename from cmpsf; use CC_Fmode.
8340         (*conditional_branch): Rename from conditional_branch.
8341         (*reveresed_conditional_branch): Remove.
8342         (b<code>): Remove expander.
8343         * config/rx/rx-protos.h: Update.
8344
8345         * config/rx/rx.c (rx_compare_redundant): Remove.
8346         * config/rx/rx.md (cmpsi): Don't use it.
8347         * config/rx/rx-protos.h: Update.
8348
8349         * config/rx/rx-modes.def (CC_F): New mode.
8350         * config/rx/rx.c (rx_select_cc_mode): New.
8351         * config/rx/rx.h (SELECT_CC_MODE): Use it.
8352         * config/rx/rx-protos.h: Update.
8353
8354 2011-01-17  Richard Henderson  <rth@redhat.com>
8355
8356         * except.c (dump_eh_tree): Fix stray ; after for statement.
8357
8358 2011-01-17  Richard Guenther  <rguenther@suse.de>
8359
8360         PR tree-optimization/47313
8361         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
8362         handling before copying the body.  Properly deal with
8363         by-reference result in SSA form.
8364
8365 2011-01-17  Ian Lance Taylor  <iant@google.com>
8366
8367         PR target/47219
8368         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
8369         (struct_value_alias_set): Don't define.
8370         (sparc_option_override): Don't set sparc_sr_alias_set and
8371         struct_value_alias_set.
8372         (save_or_restore_regs): Use gen_frame_mem rather than calling
8373         set_mem_alias_set.
8374         (sparc_struct_value_rtx): Likewise.
8375
8376 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
8377
8378         PR target/47318
8379         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
8380         (_mm_maskstore_pd): Likewise.
8381         (_mm_maskload_ps): Likewise.
8382         (_mm_maskstore_ps): Likewise.
8383         (_mm256_maskload_pd): Change mask to __m256i.
8384         (_mm256_maskstore_pd): Likewise.
8385         (_mm256_maskload_ps): Likewise.
8386         (_mm256_maskstore_ps): Likewise.
8387
8388         * config/i386/i386-builtin-types.def: Updated.
8389         (ix86_expand_special_args_builtin): Likewise.
8390
8391         * config/i386/i386.c (bdesc_special_args): Update
8392         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
8393         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
8394         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
8395         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
8396
8397         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
8398         Use <avxpermvecmode> on mask register.
8399         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
8400
8401 2011-01-17  Olivier Hainque  <hainque@adacore.com>
8402             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
8403             Eric Botcazou  <ebotcazou@adacore.com>
8404
8405         PR target/46655
8406         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
8407         if <= USHRT_MAX in 32-bit mode.
8408
8409 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8410
8411         * doc/install.texi (Configuration, Specific): Wrap long
8412         lines in examples.  Allow line wrapping in long options
8413         and URLs where beneficial for PDF output.
8414
8415 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
8416
8417         * config/mips/mips.c (mips_classify_symbol): Don't return
8418         SYMBOL_PC_RELATIVE for nonlocal labels.
8419
8420 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
8421
8422         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
8423
8424 2011-01-15  Jan Hubicka  <jh@suse.cz>
8425
8426         PR tree-optimization/47276
8427         * ipa.c (function_and_variable_visibility): Do not try to mark alias
8428         declarations as needed.
8429
8430 2011-01-15  Martin Jambor  <mjambor@suse.cz>
8431
8432         * common.opt (fdevirtualize): New flag.
8433         * doc/invoke.texi (Option Summary): Document it.
8434         * opts.c (default_options_table): Add devirtualize flag.
8435         * ipa-prop.c (detect_type_change): Return immediately if
8436         devirtualize flag is not set.
8437         (detect_type_change_ssa): Likewise.
8438         (compute_known_type_jump_func): Likewise.
8439         (ipa_analyze_virtual_call_uses): Likewise.
8440
8441 2011-01-14  Martin Jambor  <mjambor@suse.cz>
8442
8443         PR tree-optimization/45934
8444         PR tree-optimization/46302
8445         * ipa-prop.c (type_change_info): New type.
8446         (stmt_may_be_vtbl_ptr_store): New function.
8447         (check_stmt_for_type_change): Likewise.
8448         (detect_type_change): Likewise.
8449         (detect_type_change_ssa): Likewise.
8450         (compute_complex_assign_jump_func): Check for dynamic type change.
8451         (compute_complex_ancestor_jump_func): Likewise.
8452         (compute_known_type_jump_func): Likewise.
8453         (compute_scalar_jump_functions): Likewise.
8454         (ipa_analyze_virtual_call_uses): Likewise.
8455         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
8456
8457 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8458
8459         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
8460         * config/i386/i386.opt (msse5): New Alias.
8461
8462 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8463
8464         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
8465         * config/sparc/linux64.h (CC1_SPEC): Likewise.
8466         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8467         * config/sparc/sparc.h (CC1_SPEC): Likewise.
8468
8469 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8470
8471         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
8472         -mcpu options.
8473         * config/sparc/linux64.h (CC1_SPEC): Likewise.
8474         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8475         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
8476         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
8477         Likewise.
8478         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
8479
8480 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8481
8482         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
8483
8484 2011-01-14  Mike Stump  <mikestump@comcast.net>
8485
8486         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
8487         * config/fr30/fr30.md: Likweise
8488         (movsi_push): Likewise.
8489         (movsi_pop): Likewise.
8490         (enter_func): Likewise.
8491         * config/moxie/moxie.md (movsi_push): Likewise.
8492         (movsi_pop): Likewise.
8493
8494 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8495
8496         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
8497         %{no_archive} %{exact_version}.
8498         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
8499         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
8500         %{no_archive} %{exact_version}.
8501         * config/mips/openbsd.h (LINK_SPEC): Likewise.
8502         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
8503         * config/mips/vxworks.h: Likewise.
8504
8505 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8506
8507         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
8508
8509 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8510
8511         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
8512         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
8513
8514 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8515
8516         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
8517         -nodefaultlib.
8518
8519 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8520
8521         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
8522         for mcpu not cpu.
8523         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
8524         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
8525         not cpu.
8526         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
8527         Don't handle -shlib.
8528
8529 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8530
8531         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
8532         (CC1_SPEC): Don't handle -profile.
8533
8534 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8535
8536         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
8537         * config/mips/mips.h (CC1_SPEC): Likewise.
8538
8539 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8540
8541         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
8542         * config/mips/mips.h (CC1_SPEC): Likewise.
8543
8544 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8545
8546         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
8547         * config/m32r/linux.h (LINK_SPEC): Likewise.
8548         * config/mips/linux.h (LINK_SPEC): Likewise.
8549         * config/mips/linux64.h (LINK_SPEC): Likewise.
8550         * config/sparc/linux.h (LINK_SPEC): Likewise.
8551         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8552         LINK_SPEC): Likewise.
8553         * config/xtensa/linux.h (LINK_SPEC): Likewise.
8554
8555 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8556
8557         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
8558         %{version:-v}.
8559         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
8560
8561 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8562
8563         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
8564         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
8565
8566 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8567
8568         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
8569
8570 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8571
8572         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
8573         supports -Bstatic/-Bdynamic.
8574         * configure: Regenerate.
8575
8576 2011-01-14  Jan Hubicka  <jh@suse.cz>
8577             Jack Howarth  <howarth@bromo.med.uc.edu>
8578
8579         PR target/46037
8580         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
8581         when checking debug_info_level. Test write_symbols instead of
8582         debug_hooks->var_location when setting flag_var_tracking_uninit.
8583
8584 2011-01-14  Richard Guenther  <rguenther@suse.de>
8585
8586         PR tree-optimization/47179
8587         * target.def (ref_may_alias_errno): New target hook.
8588         * targhooks.h (default_ref_may_alias_errno): Declare.
8589         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
8590         (default_ref_may_alias_errno): New function.
8591         * target.h (struct ao_ref_s): Declare.
8592         * tree-ssa-alias.c: Include target.h.
8593         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
8594         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
8595         (targhooks.o): Likewise.
8596         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
8597         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
8598
8599 2011-01-14  Richard Guenther  <rguenther@suse.de>
8600
8601         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
8602
8603 2011-01-14  Richard Guenther  <rguenther@suse.de>
8604
8605         PR tree-optimization/47280
8606         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
8607         return CFG changes.
8608         (tree_ssa_forward_propagate_single_use_vars): Deal with
8609         CFG changes from associate_plusminus.
8610
8611 2011-01-14  Richard Guenther  <rguenther@suse.de>
8612
8613         PR middle-end/47281
8614         Revert
8615         2011-01-11  Richard Guenther  <rguenther@suse.de>
8616
8617         PR tree-optimization/46076
8618         * tree-ssa.c (useless_type_conversion_p): Conversions from
8619         unprototyped to empty argument list function types are useless.
8620
8621 2011-01-14  Richard Guenther  <rguenther@suse.de>
8622
8623         PR tree-optimization/47286
8624         * tree-ssa-structalias.c (new_var_info): Register variables are global.
8625
8626 2011-01-14  Martin Jambor  <mjambor@suse.cz>
8627
8628         PR middle-end/46823
8629         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
8630
8631 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
8632
8633         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
8634         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
8635         * config/xtensa/xtensa.c (xtensa_libcall_value,
8636         xtensa_function_value_regno_p): New functions.
8637         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
8638
8639 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
8640
8641         PR c++/47213
8642         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
8643         PE specific hook.
8644         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
8645         New function prototype.
8646         * config/i386/winnt.c (i386_pe_assemble_visibility):
8647         Warn only if attribute was specified by user.
8648
8649 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
8650
8651         PR target/47251
8652         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
8653         floating point.
8654         (floatunsdidf2_fcfidu): Ditto.
8655
8656 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8657
8658         * config/s390/s390.c (print_operand_address): Replace 'error' with
8659         'output_operand_lossage'.
8660         (print_operand): Likewise.
8661
8662 2011-01-13  Jeff Law  <law@redhat.com>
8663
8664         PR rtl-optimization/39077
8665         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
8666         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
8667         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
8668         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
8669         * gcse.c (prune_insertions_deletions): New function.
8670         (compute_pre_data): Use it.
8671
8672 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
8673
8674         PR debug/PR46973
8675         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
8676         static function.
8677         (prune_unused_types_mark): Use it.
8678
8679 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
8680
8681         PR rtl-optimization/45352
8682         * sel-sched.c: Update copyright years.
8683         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
8684         in the advancing loop when we have issued issue_rate insns.
8685
8686 2011-01-12  Richard Henderson  <rth@redhat.com>
8687
8688         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
8689         (TARGET_MD_ASM_CLOBBERS): New.
8690
8691         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
8692         (TARGET_DELEGITIMIZE_ADDRESS): New.
8693
8694         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
8695         (clzsi2, *bsch): New patterns.
8696
8697         * config/mn10300/mn10300.md (INT): New mode iterator.
8698         (*mov<INT>_clr): New pattern, and peep2 to generate it.
8699
8700         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
8701         flag_split_wide_types.
8702
8703         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
8704         (mn10300_trampoline_init): Rewrite without a template, an immediate
8705         load and a direct branch.
8706         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
8707
8708 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
8709
8710         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8711         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
8712         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
8713         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8714
8715 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
8716
8717         PR debug/47209
8718         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
8719         of type.
8720
8721 2011-01-12  Jan Hubicka  <jh@suse.cz>
8722
8723         PR driver/47244
8724         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
8725         (PLUGIN_COND_CLOSE): New macro.
8726         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
8727
8728 2011-01-12  Richard Guenther  <rguenther@suse.de>
8729
8730         PR lto/47259
8731         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
8732         register variables in a MEM_REF.
8733
8734 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
8735
8736         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
8737         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
8738         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
8739         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
8740         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
8741         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
8742         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
8743         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
8744         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
8745         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
8746         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
8747         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
8748         * config/gnu-user.h: New.  Copied from linux.h.
8749         (LINUX_TARGET_STARTFILE_SPEC): Rename to
8750         GNU_USER_TARGET_STARTFILE_SPEC.
8751         (LINUX_TARGET_ENDFILE_SPEC): Rename to
8752         GNU_USER_TARGET_ENDFILE_SPEC.
8753         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
8754         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
8755         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
8756         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
8757         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
8758         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
8759         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
8760         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
8761         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
8762         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
8763         * config/arm/linux-eabi.h (CC1_SPEC): Use
8764         GNU_USER_TARGET_CC1_SPEC.
8765         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
8766         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
8767         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
8768         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
8769         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
8770         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
8771         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
8772         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
8773
8774 2011-01-12  Richard Guenther  <rguenther@suse.de>
8775
8776         PR other/46946
8777         * doc/invoke.texi (ffast-math): Document it is turned on
8778         with -Ofast.
8779
8780 2011-01-12  Jan Hubicka  <jh@suse.cz>
8781
8782         PR tree-optimization/47233
8783         * opts.c (common_handle_option): Disable ipa-reference with profile
8784         feedback.
8785
8786 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
8787
8788         * c-parser.c (c_parser_objc_at_property_declaration): Improved
8789         error message.
8790
8791 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
8792
8793         * c-parser.c (c_lex_one_token): Updated and reindented some
8794         comments.  No changes in code.
8795
8796 2011-01-11  Ian Lance Taylor  <iant@google.com>
8797
8798         * godump.c (go_output_var): Don't output the variable if there is
8799         already a type with the same name.
8800
8801 2011-01-11  Ian Lance Taylor  <iant@google.com>
8802
8803         * godump.c (go_format_type): Don't generate float80.
8804
8805 2011-01-11  Richard Henderson  <rth@redhat.com>
8806
8807         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
8808         declaration.  Rewrite for both speed and size.
8809         (mn10300_address_cost_1): Remove.
8810         (mn10300_register_move_cost): New.
8811         (mn10300_memory_move_cost): New.
8812         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
8813         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
8814         extensions, shifts, BSWAP, CLZ.
8815         (mn10300_wide_const_load_uses_clr): Remove.
8816         (TARGET_REGISTER_MOVE_COST): New.
8817         (TARGET_MEMORY_MOVE_COST): New.
8818         * config/mn10300/mn10300-protos.h: Update.
8819         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
8820
8821         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
8822         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
8823         * config/mn10300/mn10300-protos.h: Update.
8824         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
8825         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
8826         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
8827         (*test_int_bitfield, *test_byte_bitfield): Remove.
8828         (*bit_test, *subreg_bit_test): Remove.
8829         * config/mn10300/predicates.md (const_8bit_operand): Remove.
8830
8831         * config/mn10300/constraints.md ("c"): Rename from "A".
8832         ("A", "D"): New constraint letters.
8833         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
8834         (fmssf4, fnmasf4, fnmssf4): Likewise.
8835
8836         * config/mn10300/mn10300.md (isa): New attribute.
8837         (enabled): New attribute.
8838
8839         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
8840         (abssf2, negsf2): Define only for hardware fp.
8841         (sqrtsf2): Reformat.
8842         (addsf3, subsf3, mulsf3): Merge expander and insn.
8843
8844         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
8845         (DEBUGGER_AUTO_OFFSET): Remove.
8846         (DEBUGGER_ARG_OFFSET): Remove.
8847
8848         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
8849         Emit register stores with the same offsets as the hardware.
8850         (mn10300_store_multiple_operation): Don't check that the register
8851         save offsets are monotonic.
8852         * config/mn10300/mn10300-protos.h: Update.
8853
8854         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
8855
8856         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
8857         in terms of the value on the stack, not the MDR register.
8858
8859 2011-01-11  Jan Hubicka  <jh@suse.cz>
8860
8861         PR lto/45721
8862         PR lto/45375
8863         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
8864         (symbol_alias_set_destroy, symbol_alias_set_contains,
8865         propagate_aliases_backward): Declare.
8866         * lto-streamer-out.c (struct sets): New sturcture.
8867         (trivally_defined_alias): New function.
8868         (output_alias_pair_p): Rewrite.
8869         (output_unreferenced_globals): Fix output of alias pairs.
8870         (produce_symtab): Likewise.
8871         * ipa.c (function_and_variable_visibility): Set weak alias destination
8872         as needed in lto.
8873         * varasm.c (symbol_alias_set_t): Remove.
8874         (symbol_alias_set_destroy): Export.
8875         (propagate_aliases_forward, propagate_aliases_backward): New functions
8876         based on ...
8877         (compute_visible_aliases): ... this one; remove.
8878         (trivially_visible_alias): New
8879         (trivially_defined_alias): New.
8880         (remove_unreachable_alias_pairs): Rewrite.
8881         (finish_aliases_1): Reorganize code checking if alias is defined.
8882         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
8883         in LTO mode.
8884
8885 2011-01-11  Richard Guenther  <rguenther@suse.de>
8886
8887         PR tree-optimization/46076
8888         * tree-ssa.c (useless_type_conversion_p): Conversions from
8889         unprototyped to empty argument list function types are useless.
8890
8891 2011-01-11  Richard Guenther  <rguenther@suse.de>
8892
8893         PR middle-end/45235
8894         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
8895         volatile MEMs as MEM_READONLY_P.
8896
8897 2011-01-11  Richard Guenther  <rguenther@suse.de>
8898
8899         PR tree-optimization/47239
8900         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
8901
8902 2011-01-11  Jeff Law  <law@redhat.com>
8903
8904         PR tree-optimization/47086
8905         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
8906         IVs from statements that might throw.
8907
8908 2011-01-10  Jan Hubicka  <jh@suse.cz>
8909
8910         PR lto/45375
8911         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
8912
8913 2011-01-10  Jan Hubicka  <jh@suse.cz>
8914
8915         PR lto/45375
8916         * profile.c (read_profile_edge_counts): Ignore profile inconistency
8917         when correcting profile.
8918
8919 2011-01-10  Jan Hubicka  <jh@suse.cz>
8920
8921         PR lto/46083
8922         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
8923         DECL_FINI_PRIORITY.
8924         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
8925         Restore DECL_FINI_PRIORITY.
8926
8927 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8928
8929         * doc/gimple.texi: Fix quoting of multi-word return values in
8930         @deftypefn statements.  Ensure presence of return value.  Wrap
8931         overlong @deftypefn lines.
8932         (is_gimple_operand, is_gimple_min_invariant_address): Remove
8933         descriptions of removed functions.
8934         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
8935         of multi-word return value in @deftypefn statement.
8936
8937 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8938
8939         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
8940         (Conditional Expressions, Logical Operators)
8941         (Statement and operand traversals): Do not indent smallexample
8942         code.  Fix duplicate function argument in example.
8943
8944 2011-01-10  Jeff Law  <law@redhat.com>
8945
8946         PR tree-optimization/47141
8947         * ipa-split.c (split_function): Handle case where we are
8948         returning a value and the return block has a virtual operand phi.
8949
8950 2011-01-10  Jan Hubicka  <jh@suse.cz>
8951
8952         PR tree-optimization/47234
8953         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
8954         (pass_feedback_split_functions): Declare.
8955         * passes.c (init_optimization_passes): Add ipa-split as subpass of
8956         tree-profile.
8957         * ipa-split.c (gate_split_functions): Update comments; disable
8958         split-functions for profile_arc_flag and branch_probabilities.
8959         (gate_feedback_split_functions): New function.
8960         (execute_feedback_split_functions): New function.
8961         (pass_feedback_split_functions): New global var.
8962
8963 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
8964
8965         PR lto/46760
8966         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
8967         calling gimple_call_set_cannot_inline.
8968
8969 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
8970
8971         * config/darwin-sections.def: Remove unused section.
8972
8973 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
8974
8975         PR c++/47218
8976         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
8977
8978 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
8979
8980         PR objc/47232
8981         * c-parser.c (c_parser_declaration_or_fndef): Improved
8982         error message.
8983
8984 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
8985
8986         * config/i386/winnt.c (i386_pe_start_function): Make sure
8987         to switch back to function's section.
8988
8989 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
8990
8991         PR gcc/46902
8992         PR testsuite/46912
8993         * plugin.c: Move include of dlfcn.h from here...
8994         * system.h: ... to here.
8995
8996 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8997
8998         * doc/cpp.texi (C++ Named Operators): Fix markup for header
8999         file name.
9000         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
9001         two extra empty pages in PDF output.
9002
9003 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
9004
9005         PR objc/47078
9006         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
9007         for error recovery purposes behave as if it was not specified so
9008         that the default type is usd.
9009
9010 2011-01-07  Jan Hubicka  <jh@suse.cz>
9011
9012         PR tree-optmization/46469
9013         * ipa.c (function_and_variable_visibility): Clear needed flags on
9014         nodes with external decls; handle weakrefs merging correctly.
9015
9016 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
9017
9018         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
9019         not false.
9020
9021 2011-01-07  Jan Hubicka  <jh@suse.cz>
9022
9023         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
9024         and no longer claim that gold is required for linker plugin.
9025         * configure: Regenerate.
9026         * gcc.c (PLUGIN_COND): New macro.
9027         (LINK_COMMAND_SPEC): Use it.
9028         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
9029         * config.in (HAVE_LTO_PLUGIN): New.
9030         * configure.ac (--with-lto-plugin): New parameter; autodetect
9031         HAVE_LTO_PLUGIN.
9032
9033 2011-01-07  Jan Hubicka  <jh@suse.cz>
9034
9035         PR tree-optimization/46367
9036         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
9037         when we can update original.
9038         (cgraph_mark_inline_edge): Sanity check.
9039         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
9040
9041 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9042
9043         * config/spu/spu.h (ASM_COMMENT_START): Define.
9044
9045 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
9046
9047         PR driver/42445
9048         * gcc.c (%>S): New.
9049         (SWITCH_KEEP_FOR_GCC): Likewise.
9050         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
9051         (do_spec_1): Handle "%>".
9052
9053         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
9054
9055 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
9056
9057         PR target/47201
9058         * config/i386/i386.c (ix86_delegitimize_address): If
9059         simplify_gen_subreg fails, return orig_x.
9060
9061         PR bootstrap/47187
9062         * value-prof.c (gimple_stringop_fixed_value): Handle
9063         lhs of the call properly.
9064
9065 2011-01-07  Jan Hubicka  <jh@suse.cz>
9066
9067         PR lto/45375
9068         * lto-opt.c (lto_reissue_options): Set flag_shlib.
9069
9070 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
9071
9072         * target.def (function_switched_text_sections): New hook.
9073         * doc/tm.texi: Regenerated.
9074         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
9075         * final.c (default_function_switched_text_sections): New.
9076         (final_scan_insn): Call function_switched_text_sections when a
9077         mid-function section change occurs.
9078         * output.h (default_function_switched_text_sections): Declare.
9079         * config/darwin-protos.h (darwin_function_switched_text_sections):
9080         Likewise.
9081         * config/darwin.c (darwin_function_switched_text_sections): New.
9082         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
9083
9084 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
9085
9086         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
9087         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
9088         the secondary code fragment when outputting for DWARF == 2.
9089
9090 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
9091
9092         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9093         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
9094         Remove.
9095         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
9096         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9097
9098 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
9099
9100         PR debug/46704
9101         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
9102         when it is not empty.
9103
9104 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
9105
9106         Bobcat Enablement
9107         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
9108         (case ${target}): Add btver1.
9109         * config/i386/driver-i386.c (host_detect_local_cpu): Let
9110         -march=native recognize btver1 processors.
9111         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9112         btver1 def_and_undef
9113         * config/i386/i386.c (struct processor_costs btver1_cost): New
9114         btver1 cost table.
9115         (m_BTVER1): New definition.
9116         (m_AMD_MULTIPLE): Includes m_BTVER1.
9117         (initial_ix86_tune_features): Add btver1 tune.
9118         (processor_target_table): Add btver1 entry.
9119         (static const char *const cpu_names): Add btver1 entry.
9120         (software_prefetching_beneficial_p): Add btver1.
9121         (ix86_option_override_internal): Add btver1 instruction sets.
9122         (ix86_issue_rate): Add btver1.
9123         (ix86_adjust_cost): Add btver1.
9124         * config/i386/i386.h (TARGET_BTVER1): New definition.
9125         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
9126         (enum processor_type): Add PROCESSOR_BTVER1.
9127         * config/i386/i386.md (define_attr "cpu"): Add btver1.
9128
9129 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9130
9131         PR target/43309
9132         * config/i386/i386.c (legitimize_tls_address)
9133         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
9134         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
9135         (tls_initial_exec_64_sun): New pattern.
9136
9137 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
9138
9139         * doc/invoke.texi (Overall Options): Improve wording and markup
9140         of the description of -wrapper.
9141
9142 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9143
9144         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
9145         rdynamic, threads): New Driver options.
9146
9147 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9148
9149         PR target/38118
9150         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
9151         if coming from .tdata.
9152         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9153
9154 2011-01-06  Jan Hubicka  <jh@suse.cz>
9155
9156         PR lto/47188
9157         * collect2.c (main): Do not enable LTOmode when plugin is active.
9158
9159 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9160
9161         PR other/45915
9162         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
9163         --version output if supported.
9164         * configure: Regenerate.
9165
9166 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9167
9168         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
9169         Driver options.
9170
9171 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
9172
9173         PR c/47150
9174         * c-convert.c (convert): When converting a complex expression
9175         other than COMPLEX_EXPR to a different complex type, ensure
9176         c_save_expr is called instead of save_expr, unless in_late_binary_op.
9177         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
9178         when converting COMPLEX_TYPE.
9179
9180 2011-01-06  Ira Rosen  <irar@il.ibm.com>
9181
9182         PR tree-optimization/47139
9183         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
9184         only the last reduction value is used outside the loop.  Update
9185         documentation.
9186
9187 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
9188
9189         * config/rtems.opt: New.
9190         * config.gcc (*-*-rtems*): Use rtems.opt.
9191
9192 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
9193
9194         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
9195         processors do not support 3DNow instructions.
9196
9197 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9198
9199         * config/spu/spu.c (spu_option_override): Set parameter
9200         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
9201
9202 2011-01-05  Jan Hubicka  <jh@suse.cz>
9203
9204         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
9205         at the command line.
9206
9207 2011-01-05  Martin Jambor  <mjambor@suse.cz>
9208
9209         PR lto/47162
9210         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
9211         deltas on streamed outgoing edges.
9212         (output_node_opt_summary): Output info for outgoing edges only when
9213         the node is in new parameter set.
9214         (output_cgraph_opt_summary): New parameter set, passed to the two
9215         aforementioned functions.  Update its forward declaration and its
9216         callee too.
9217
9218 2011-01-05  Tom Tromey  <tromey@redhat.com>
9219
9220         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
9221         operator to c_finish_omp_atomic.
9222         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
9223         (build_unary_op): Update.
9224         (build_modify_expr): Update.
9225         (build_asm_expr): Update.
9226
9227 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9228
9229         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
9230         newly inserted insns.
9231         (pad_bb): Likewise.
9232         (spu_emit_branch_hint): Likewise.
9233         (insert_hbrp_for_ilb_runout): Likewise.
9234         (spu_machine_dependent_reorg): Call df_finish_pass after
9235         schedule_insns returns.
9236
9237 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9238
9239         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
9240
9241 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
9242
9243         PR tree-optimization/47005
9244         * tree-sra.c (struct access): Add 'non_addressable' bit.
9245         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
9246         (decide_one_param_reduction): Return 0 if the parameter is passed by
9247         reference and one of the accesses in the group is non_addressable.
9248
9249 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9250
9251         PR tree-optimization/47056
9252         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
9253         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
9254         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
9255
9256 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9257
9258         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
9259         initializer.  Skip view conversions from aggregate types.
9260
9261 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
9262
9263         PR bootstrap/47055
9264         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
9265
9266 2011-01-04  Philipp Thomas  <pth@suse.de>
9267
9268         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
9269         obvious typo.
9270
9271 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9272
9273         * function.c (thread_prologue_and_epilogue_insns): Do not crash
9274         on empty epilogue sequences.
9275
9276 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
9277
9278         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
9279         non-static): New Driver options.
9280
9281 2011-01-04  Jie Zhang  <jie@codesourcery.com>
9282
9283         PR driver/47137
9284         * gcc.c (default_compilers[]): Set combinable field to 0
9285         for all assembly languages.
9286
9287 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
9288
9289         * config/mips/loongson3a.md: New file.
9290         * config/mips/mips.md: Include loongson3a.md.
9291         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
9292         TUNE_LOONGSON_3A.
9293
9294 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
9295
9296         PR middle-end/47017
9297         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
9298         instead of convert_memory_address_addr_space on the base expression.
9299
9300 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9301
9302         * config/spu/spu.c (spu_option_override): Update error text
9303         for bad -march= / -mtune= values.
9304
9305 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9306
9307         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
9308         if branch-hint optimization will be performed.
9309
9310 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
9311
9312         PR tree-optimization/47148
9313         * ipa-split.c (split_function): Convert arguments to
9314         DECL_ARG_TYPE if possible.
9315
9316         PR tree-optimization/47155
9317         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
9318         when computing uns.
9319
9320         PR rtl-optimization/47157
9321         * combine.c (try_combine): If undobuf.other_insn becomes
9322         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
9323         and set *new_direct_jump_p too.
9324
9325 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
9326
9327         PR tree-optimization/47021
9328         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
9329
9330 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
9331
9332         * gcc.c (process_command): Update copyright notice dates.
9333         * gcov.c (print_version): Likewise.
9334         * gcov-dump.c (print_version): Likewise.
9335         * mips-tfile.c (main): Likewise.
9336         * mips-tdump.c (main): Likewise.
9337
9338 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9339
9340         PR tree-optimization/46801
9341         * tree-sra.c (type_internals_preclude_sra_p): Check whether
9342         aggregate fields start at byte boundary instead of the bit-field flag.
9343
9344 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
9345
9346         PR driver/47137
9347         * gcc.c (main): Revert revision 168407.
9348
9349 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9350
9351         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
9352
9353 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9354
9355         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
9356         vector optab to expand vector/scalar shift, update gimple to vector.
9357
9358 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9359
9360         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
9361         a thunk.
9362
9363 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9364
9365         PR tree-optimization/46984
9366         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
9367         HOST_WIDE_INT.
9368         (cgraph_create_indirect_edge): Fixed line length.
9369         (cgraph_indirect_call_info): Declare.
9370         (cgraph_make_edge_direct) Update declaration.
9371         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
9372         (cgraph_create_indirect_edge): Use it.
9373         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
9374         callees.
9375         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
9376         the new thunk_delta representation.
9377         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
9378         HOST_WIDE_INT.
9379         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
9380         (ipa_read_indirect_edge_info): Likewise.
9381         * lto-cgraph.c (output_edge_opt_summary): New function.
9382         (output_node_opt_summary): Call it on all outgoing edges.
9383         (input_edge_opt_summary): New function.
9384         (input_node_opt_summary): Call it on all outgoing edges.
9385
9386 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
9387
9388         PR driver/47137
9389         * gcc.c (main): Don't check have_o when settting combine_inputs.
9390
9391 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
9392
9393         * regrename.c: Add general comment describing the pass.
9394         (struct du_head): Remove 'length' field.
9395         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
9396         (regrename_optimize): Do not sort chains.  Rework comments, add others.
9397         Force renaming to the preferred class (if any) in the first pass and do
9398         not consider registers that belong to it in the second pass.
9399         (create_new_chain): Do not set 'length' field.
9400         (scan_rtx_reg): Likewise.
9401
9402 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
9403
9404         PR tree-optimization/47140
9405         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
9406         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
9407         to bit_value_binop.
9408
9409         PR rtl-optimization/47028
9410         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
9411         parm_birth_insn instead of at the beginning of first bb.
9412
9413 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
9414
9415         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
9416         Remove the word "see" before "@pxref".
9417         * doc/rtl.texi: Remove the word "see" before "@pxref".
9418
9419 2011-01-01  Jan Hubicka  <jh@suse.cz>
9420
9421         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
9422         memory.
9423
9424 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
9425
9426         PR target/38662
9427         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
9428
9429 \f
9430 Copyright (C) 2011 Free Software Foundation, Inc.
9431
9432 Copying and distribution of this file, with or without modification,
9433 are permitted in any medium without royalty provided the copyright
9434 notice and this notice are preserved.