OSDN Git Service

8b6363a613fbcfd54a03f78177d0b84e9294e888
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-24  Kenneth Zadeck <zadeck@naturalbridge.com>
2         * sbitmap.c (sbitmap_range_empty_p): New function.
3         * sbitmap.h (sbitmap_range_empty_p): New function.
4         * bitmap.h: Now includes obstack.h.  
5
6
7 2008-04-24  Richard Sandiford  <rsandifo@nildram.co.uk>
8             Kenneth Zadeck <zadeck@naturalbridge.com>
9
10         * dbgcnt.def (ra_byte_scan): Added.
11         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
12         when the last hit happens for a counter.  
13         * timevar.def (TV_DF_BYTE_LR): New variable.
14         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
15         * passes.c (pass_fast_rtl_byte_dce): New pass.
16         * fwprop.c (update_df): Added mode to call df_ref_create.
17         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
18         DF_REF_EXTRACT_OFFSET.
19         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
20         DF_BYTE_LR_OUT, df_byte_lr): New macro.
21         (df_mm): New enum.
22         (df_ref_extract): Added mode field.
23         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
24         DF_REF_EXTRACT_OFFSET.
25         (DF_REF_EXTRACT_MODE): New macro.
26         (df_byte_lr_bb_info): New structure.
27         (df_print_byte_regset, df_compute_accessed_bytes, 
28         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
29         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
30         df_byte_lr_simulate_uses,
31         df_byte_lr_simulate_artificial_refs_at_top,
32         df_byte_lr_simulate_artificial_refs_at_end,
33         df_compute_accessed_bytes): New function.
34         (df_ref_create): Add parameter.
35         (df_byte_lr_get_bb_info): New inline function.
36         * df-scan.c (df_ref_record, df_uses_record,
37         df_ref_create_structure): Added mode parameter.
38         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
39         df_defs_record, df_uses_record, df_get_conditional_uses,
40         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
41         df_entry_block_defs_collect, df_exit_block_uses_collect):
42         Added mode parameter to calls to df_ref_record, df_uses_record,
43         df_ref_create_structure.
44         (df_ref_equal_p, df_ref_compare): Added test for modes.
45         (df_ref_create_structure): Added code to set mode.  Renamed
46         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
47         DF_REF_EXTRACT_OFFSET.
48         * df-core.c (df_print_byte_regset): New function.
49         * df-byte-scan.c: New file.
50         * df-problems.c (df_rd_transfer_function): Removed unnecessary
51         calls to BITMAP_FREE.  
52         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
53         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
54         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
55         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
56         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
57         df_byte_lr_local_compute, df_byte_lr_init,
58         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
59         df_byte_lr_transfer_function, df_byte_lr_free, 
60         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
61         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
62         df_byte_lr_simulate_uses,
63         df_byte_lr_simulate_artificial_refs_at_top,
64         df_byte_lr_simulate_artificial_refs_at_end): New function.
65         * dce.c (byte_dce_process_block): New function.
66         (dce_process_block): au is now passed in rather than computed
67         locally.  Changed loops that look at artificial defs to not look
68         for conditional or partial ones, because there never are any.  
69         (fast_dce): Now is able to drive byte_dce_process_block or 
70         dce_process_block depending on the kind of dce being done.
71         (rest_of_handle_fast_dce): Add parameter to fast_dce.
72         (rest_of_handle_fast_byte_dce): New function.
73         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
74         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
75
76
77 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
78
79         PR fortran/35019
80         * gcc.h: Added fortran options that take arguments to
81         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
82         macros.
83
84 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
85
86         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
87         scalarization if on the LHS and not a full access.
88
89 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
90
91         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
92
93 2008-04-18  Rafael Espindola  <espindola@google.com>
94
95         * tree-vrp.c (find_case_label_index): Fix the binary search.
96         (find_case_label_range): New.
97         (vrp_visit_switch_stmt): Use find_case_label_range.
98         (simplify_switch_using_ranges): Use find_case_label_range.
99
100 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
101
102         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
103         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
104
105 2008-04-18  Tom Tromey  <tromey@redhat.com>
106
107         PR libcpp/15500:
108         * doc/cpp.texi (Implementation-defined behavior): Mention
109         -finput-charset.
110
111 2008-04-18  Ian Lance Taylor  <iant@google.com>
112
113         * fold-const.c (pointer_may_wrap_p): New static function.
114         (fold_comparison): Add another test for pointer overflow.  Use
115         pointer_may_wrap_p to disable some false positives.
116
117 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
118           
119         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
120         (fname_as_string): Match updated cpp_interpret_string prototype.
121         (fix_string_type): Support char16_t* and char32_t*.
122         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
123         derivative) nodes.  Register as builtin if C++0x.
124         (c_parse_error): Support CPP_CHAR{16,32}.
125         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
126         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
127         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
128         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
129         CTI_CHAR32_ARRAY_TYPE>: New elements.
130         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
131         char32_type_node, signed_char32_type_node, char16_array_type_node,
132         char32_array_type_node): New defines.
133         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
134         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
135         (lex_string): Support CPP_STRING{16,32}, match updated
136         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
137         (lex_charconst): Support CPP_CHAR{16,32}.
138         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
139         and CPP_STRING{16,32}.
140
141 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
142
143         PR bootstrap/35457
144         * aclocal.m4: Regenerate.
145         * configure: Regenerate.
146
147 2008-04-18  Jan Hubicka  <jh@suse.cz>
148
149         * except.c (dw2_size_of_call_site_table,
150         sjlj_size_of_call_site_table): Use vector API for call_site_record.
151
152         * cgraphbuild.c (build_cgraph_edges): Update.
153         * tree-pass.h: Update comment.
154         * final.c (leaf_function_p): Update.
155         (leaf_renumber_regs): Update.
156         (rest_of_clean_state): Update.
157         * omp-low.c (expand_omp_parallel): Update.
158         * ipa-reference.c (analyze_function): Update.
159         * reorg.c (find_end_label): Update.
160         (optimize_skip): Update.
161         (fill_simple_delay_slots): Update.
162         (fill_simple_delay_slots): Update.
163         (make_return_insns): Update.
164         (dbr_schedule): Update.
165         * gimple-low.c (record_vars_into): Update.
166         * cfgbuild.c (make_edges): Update.
167         * function.c (assign_stack_local): Update.
168         (assign_parm_adjust_stack_rtl): Update.
169         (locate_and_pad_parm): Update.
170         (allocate_struct_function): Do not initialize stack_alignment_needed
171         and preferred_stack_boundary here.
172         (stack_protect_prologue): Update.
173         (stack_protect_epilogue): Update.
174         (expand_function_start): Initialize stack_alignment_needed,
175         preferred_stack_boundary and max_jumptable_ents.
176         (expand_function_end): Update.
177         (free_after_compilation): Do not NULLify epilogue_delay_list.
178         * function.h (struct rtl_data): Add stack_protect_guard,
179         stack_alignment_needed,
180         preferred_stack_boundary, epilogue_delay_list.
181         (struct function): Remove value_histograms, stack_alignment_needed,
182         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
183         last_label_uid,
184         unexpanded_var_list, stack_protect_guard.
185         (current_function_epilogue_delay_list): Remove.
186         * ipa-type-escape.c (analyze_function): Update.
187         * gimplify.c (pop_gimplify_context): Update comment.
188         * calls.c (expand_call): Update.
189         (emit_library_call_value_1): Update.
190         * except.c (set_nothrow_function_flags): Update.
191         * cfgexpand.c (get_decl_align_unit): Update.
192         (create_stack_guard): Update.
193         (estimated_stack_frame_size): Update.
194         (expand_used_vars): Update.
195         (tree_expand_cfg): Free histogram earliers, init expansion variables.
196         * explow.c (allocate_dynamic_stack_space): Update.
197         * tree-ssa-live.c (remove_unused_locals): Update.
198         * varasm.c (mark_constant_pool): Update.
199         * tree-inline.c (remap_decls): Update.
200         (initialize_cfun): Update.
201         (declare_return_variable): Update.
202         (inline_forbidden_p): Update.
203         (expand_call_inline): Update.
204         (declare_inline_vars): Update.
205         (tree_function_versioning): Update.
206         * tree-flow.h (value_histograms): New.
207         (VALUE_HISTOGRAMS): New macro.
208         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
209         last_label_uid.
210         * tree-cfg.c (set_bb_for_stmt): Update.
211         (replace_by_duplicate_decl): Update.
212         (move_block_to_fn): Update.
213         (new_label_mapper): Update.
214         (dump_function_to_file): Update.
215         * ipa-struct-reorg.c (build_data_structure): Update.
216         * cfgrtl.c (print_rtl_with_bb): Update.
217         * reload1.c (reload): Update.
218         (reload): Update.
219         * config/i386/i386.c (setup_incoming_varargs_64,
220         ix86_compute_frame_layout): Update.
221         * config/arc/arc.c (arc_output_function_epilogue): Update.
222
223 2008-04-18  Marius Strobl <marius@FreeBSD.org>
224
225         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
226         for FreeBSD as well.
227         * gthr-posix95.h: Likewise.
228
229 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
230
231         PR rtl-optimization/35838
232         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
233         out the byte offset of the first subreg.
234
235 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
236
237         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
238         to split_ti instead of three separate calls with single member arrays.
239         (subti3 splitter): Ditto.
240         (adddi3 splitter): Ditto with split_di.
241         (subdi3 splitter): Ditto.
242         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
243         two separate calls with single member arrays.  Swap match_dup
244         operands 1 and 2 to better fit into the array.
245         (negdi2 splitter): Ditto with split_di.
246         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
247         two separate calls with single member arrays.  Swap match_dup operands
248         6 and 7 to better fit into the array.
249
250 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
251
252         * config/i386/i386.c (sse_builtin_type): New.
253         (bdesc_sse_args): Likewise.
254         (bdesc_sse_3arg): Removed.
255         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
256         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
257         IX86_BUILTIN_ROUNDPS.
258         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
259         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
260         IX86_BUILTIN_ROUNDPS.
261         (ix86_expand_sse_4_operands_builtin): Removed.
262         (ix86_expand_sse_operands_builtin): New.
263         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
264         and CODE_FOR_sse4_1_roundps.
265         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
266         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
267
268 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
269
270         PR target/35907
271         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
272         regs before frame pop when needed.  If use_backchain_to_restore_sp
273         then load backchain into a temp reg to restore vr and vrsave.  Add
274         code to restore vr after frame pop if possible.
275
276 2008-04-17  Richard Guenther  <rguenther@suse.de>
277
278         * tree-vn.c (expressions_equal_p): Do not check type
279         equality or compatibility before calling operand_equal_p.
280         * fold-const.c (operand_equal_p): Check equivalence of
281         integer constants before bailing out due to signedness or
282         precision differences.
283         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
284         spurious differences in type qualification.  Ignore types
285         for COMPONENT_REFs at all.
286
287 2008-04-17  Christian Bruel  <christian.bruel@st.com>
288
289         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
290         msw_skip comparison.
291         
292 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
293
294         PR c/35739
295         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
296         reg type.
297
298         PR tree-optimization/35899
299         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
300         rather than TREE_OPERAND.
301
302 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
303
304         PR target/35944
305         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
306         temporary registers.  Change operand predicate to general_operand.
307         (remainderxf3): Ditto.
308
309 2008-04-16  Richard Guenther  <rguenther@suse.de>
310
311         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
312         * tree-affine.c (aff_combination_expand): Look through some
313         conversions.
314
315 2008-04-15  Doug Kwan  <dougkwan@google.com>
316
317         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
318         for hex printing.
319         * tree-pretty-print.c (dump_generic_node): Ditto.
320         * final.c (output_addr_const): Ditto.
321         * dwarf2out.c (output_cfi): Ditto.
322         * c-pretty-print.c (pp_c_integer_constant): Ditto.
323         * print-rtl.c (print_rtx): Ditto.
324         * print-tree.c (print_node_brief, print_node): Ditto.
325         * c-common.c (match_case_to_enum_1): Ditto.
326         * sched-vis.c (print_value): Ditto.
327         * config/i386/i386.c (print_operand): Cast to long unsigned int
328         for hex printing.
329
330 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
331         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
332         MS Windows VirtualProtect function.
333
334 2008-04-15  Jan Hubicka  <jh@suse.cz>
335
336         * gengtype.c (write_root): Param_is argument is OK.
337         * expr.c (expand_expr_real_1): Update call of get_exception_*.
338         * function.h: Include varray.h
339         (rtl_eh): New stucture based on except.c one.
340         (call_site_record): New forward declaration and vector type.
341         * calls.c (emit_call_1): Do not call
342         note_current_region_may_contain_throw.
343         * except.c (eh_status): Remove cur_region, try_region since they are
344         unused.
345         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
346         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
347         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
348         Remove call_site_data_used, call_site_data_size.
349         Turn call_site_record into vector in function.h.
350         (note_current_region_may_contain_throw): Remove.
351         (get_exception_pointer, get_exception_filter): Do not take struct
352         function argument; update.
353         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
354         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
355         build_post_landing_pads, dw2_build_landing_pads,
356         sjlj_assign_call_site_values, sjlj_mark_call_sites,
357         sjlj_emit_function_enter, sjlj_emit_function_enter, 
358         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
359         sjlj_build_landing_pads, finish_eh_generation,
360         remove_exception_handler_label, remove_eh_handler,
361         maybe_remove_eh_handler, add_reachable_handler,
362         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
363         add_action_record, collect_one_action_chain, add_call_site,
364         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
365         sjlj_output_call_site_table, output_function_exception_table,
366         * except.h (note_current_region_may_contain_throw): Remove
367         (get_exception_pointer, get_exception_filter): Do not take struct
368         function argument.
369         * Makefile.in (GTFILES): Put varargs before struct function.
370
371 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
372
373         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
374         punt for STRING_CST.
375         (get_constraint_for): Deal with STRING_CST here instead.
376
377 2008-04-15  Richard Guenther  <rguenther@suse.de>
378
379         * tree-ssa-propagate.c (substitute_and_fold): Substitute
380         statements in a basic-block with a backward walk.  Do not
381         substitute into dead statements but instead remove those.
382
383 2008-04-15  Richard Guenther  <rguenther@suse.de>
384
385         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
386         to zero, thus disable creation of SFTs.
387
388 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
389
390         * tree-predcom.c (suitable_reference_p): Return false if the
391         reference can throw.
392
393 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
394
395         PR c/35751
396         * c-decl.c (finish_decl): If extern or static var has variable
397         size, set TREE_TYPE (decl) to error_mark_node.
398
399 2008-04-15  Rafael Espindola  <espindola@google.com>
400
401         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
402         variable arg1.
403
404 2008-04-15  Richard Guenther  <rguenther@suse.de>
405
406         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
407         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
408         (visit_reference_op_load): Do walk vuse-vdef chains on
409         vn_reference_lookup.
410         (visit_reference_op_store): But do not here.
411         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
412         vn_reference_lookup.
413         (vn_lookup_with_vuses): But do so here.
414
415 2008-04-14  Ian Lance Taylor  <iant@google.com>
416
417         * fold-const.c (fold_overflow_warning): Remove assertion.
418
419 2008-04-15  Ben Elliston  <bje@au.ibm.com>
420
421         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
422         temp1 local variables.
423
424 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
425
426         PR target/35661
427         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
428         ".text.unlikely" section as executable.
429
430 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
431
432         * config/ia64/ia64.c (rtx_needs_barrier): Handle
433         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
434         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
435         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
436         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
437         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
438         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
439
440 2008-04-14  Ian Lance Taylor  <iant@google.com>
441
442         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
443         * fold-const.c (fold_comparison): If appropriate, test
444         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
445         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
446         reassociating a pointer type.
447         * doc/invoke.texi (Optimize Options): Document that
448         -fstrict-overflow applies to pointer wraparound.
449
450 2008-04-13  Jan Hubicka  <jh@suse.cz>
451
452         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
453
454 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
455
456         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
457         we are going to "save the world".
458
459 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
460
461         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
462         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
463         operand 0 constraint, not "=".
464
465 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
466
467         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
468
469 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
470
471         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
472         of size of positions_needed * CHAR_BIT.
473
474 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
475
476         PR middle-end/35897
477         * dse.c (store_info): Change positions_needed to unsigned
478         HOST_WIDE_INT.
479         (lowpart_bitmask): New.
480         (record_store): Cast to unsigned HOST_WIDE_INT for
481         positions_needed.  Assert width <= size of positions_needed *
482         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
483         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
484         lowpart_bitmask to set mask.
485
486 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
487
488         * config/bfin/constraints.md: New file.
489         * config/bfin/bfin.md: Include it.
490         (adddi3): Use satisfies_constraint functions instead of the old macros.
491         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
492         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
493         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
494         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
495         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
496         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
497         EXTRA_CONSTRAINT): Delete.
498         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
499         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
500         of the old macros.
501         * config/bfin/bfin.c: Include "tm-constrs.h".
502         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
503         Use satisfies_constraint functions instead of the old macros.
504         * doc/md.texi (Blackfin Constraints): Update file name reference.
505
506 2008-04-11  Richard Guenther  <rguenther@suse.de>
507
508         PR tree-optimization/35869
509         * tree-vrp.c (execute_vrp): Move switch statement update after
510         jump threading.  Schedule another cfg cleanup run.
511
512 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
513
514         PR c/35744
515         * attribs.c (decl_attributes): Return early on errorneous node.
516
517 2008-04-10  Oleg Ryjkov  <olegr@google.com>
518
519         * tree.h (struct tree_base): Added a new flag default_def_flag.
520         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
521
522 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
523
524         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
525
526 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
527
528         PR target/35768
529         * pa.md: Define mode iterator P.  Define mode attribute dwc.
530         (dcacheflush): Update pattern to use iterator P and attribute dwc.
531         (icacheflush): Likewise.
532         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
533         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
534
535 2008-04-11  Ben Elliston  <bje@au.ibm.com>
536
537         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
538
539 2008-04-10  Rafael Espindola  <espindola@google.com>
540
541         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
542         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
543         (extract_range_from_expr): The same.
544
545 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
546
547         * config/mips/mips.md (GPR2): New mode iterator.
548         (seq): Add comment.
549         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
550         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
551         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
552         Rewrite these to take two modes, the mode of comparison and the
553         mode of the destination.
554         * config/mips/mips.c (mips_expand_scc): Instead of having
555         paradoxical subreg as destination, expand "narrowing" scc if mode
556         of comparison is SI and target is requested in DI mode.
557         (mips_emit_int_order_test): Update comment.  Make mode of
558         comparison match CMP0 rather than TARGET.  When creating inverse
559         target use mode of TARGET.
560
561 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
562
563         * gcov-dump.c (tag_summary): Only print summaries for the first
564         GCOV_COUNTERS_SUMMABLE counters.
565
566 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
567
568         * config/i386/i386.md (absneg): New code iterator.
569         (absnegprefix): New code attribute.
570         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
571         patterns using absneg code iterator.
572         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
573         using absneg code iterator.
574         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
575         *neg<mode>2 patterns using absneg code iterator.
576         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
577         *negextendsfdf2 patterns using absneg code iterator.
578         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
579         *negextendsfxf2 patterns using absneg code iterator.
580         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
581         *negextendsfdf2 patterns using absneg code iterator.
582         * config/i386/sse.md (<code><mode>2): Macroize expander from
583         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
584
585 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
586
587         * config/s390/s390.h: Remove the remains of the recent search
588         & replace action of current_function_outgoing_args_size.
589
590 2008-04-10  Ira Rosen  <irar@il.ibm.com>
591
592         PR tree-optimization/35821
593         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
594         NEW_STMT_LIST is not NULL.
595
596 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
597
598         PR libstdc++/35597
599         * toplev.c (process_options): Remove -ffunction-sections debugging
600         warning.
601
602 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
603
604         PR middle-end/PR28690
605         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
606         than gen_rtx_fmt_ee to perform more canonicalizations.
607
608 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
609
610         PR driver/35665
611         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
612
613 2008-04-09  Richard Guenther  <rguenther@suse.de>
614
615         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
616         (dump_function_to_file): Dump function arguments with types.
617
618 2008-04-08  Richard Guenther  <rguenther@suse.de>
619
620         * fold-const.c (fold_widened_comparison): Do not allow
621         sign-changes that change the result.
622
623 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
624
625         PR target/35839
626         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
627         kinds of indirect references.
628
629 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
630
631         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
632         GNU Fortran language string.
633
634 2008-04-08  Rafael Espindola  <espindola@google.com>
635
636         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
637         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
638         * tree.h (tree_call_nonnegative_warnv_p): New.
639
640 2008-04-08  Jan Hubicka  <jh@suse.cz>
641
642         * function.c (free_after_compilation): Clear out regno_reg_rtx
643         pointer.
644
645 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
646
647         Revert
648         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
649
650         PR middle-end/PR28690
651         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
652         same precedence as REG_POINTER and MEM_POINTER operands.
653
654 2008-04-08  Richard Guenther  <rguenther@suse.de>
655
656         PR middle-end/35834
657         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
658         for adding index to base.
659
660 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
661
662         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
663         (MINGW_ENABLE_EXECUTE_STACK): New.
664         (IN_LIBGCC2): For libgcc include windows.h file for
665         function declarations.
666
667 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
668
669         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
670         and tem2 if tem1 is not a REG or MULT.
671
672 2008-04-08  Jan Hubicka  <jh@suse.cz>
673
674         * function.h (incomming_args): Break out of struct function.
675         (function_subsections): Break out of struct function.
676         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
677         return_rtx and hard_reg_initial_vals from struct function.
678         Kill inl_max_label_num.
679         (current_function_pops_args, current_function_args_info,
680         current_function_args_size, current_function_args_size,
681         current_function_pretend_args_size,
682         current_function_outgoing_args_size,
683         current_function_internal_arg_pointer, current_function_return_rtx):
684         Kill compatibility accestor macros.
685         * builtins.c (expand_builtin_apply_args_1): Update.
686         (expand_builtin_next_arg): Update.
687         * df-scan.c (df_get_call_refs): Update.
688         * dbxout.c (dbxout_function_end): Update.
689         * dwarf2out.c (dwarf2out_switch_text_section): Update.
690         (output_line_info): Update.
691         (secname_for_decl): Update.
692         (dwarf2out_var_location): Update.
693         * function.c (free_after_compilation): Update.
694         (assign_parm_find_stack_rtl): Update.
695         (assign_parms): Update.
696         (expand_dummy_function_end): Update.
697         (expand_function_end): Update.
698         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
699         (expand_call): Update.
700         (emit_library_call_value_1): Update.
701         (store_one_arg): Update.
702         * varasm.c (initialize_cold_section_name): Update.
703         (unlikely_text_section): Update.
704         (unlikely_text_section_p): Update.
705         (assemble_start_function): Update.
706         (assemble_end_function): Update.
707         (default_section_type_flags): Update.
708         (switch_to_section): Update.
709         * integrate.c (set_decl_abstract_flags): Update.
710         (get_hard_reg_initial_val): Update.
711         (has_hard_reg_initial_val): Update.
712         (allocate_initial_values): Update.
713         * resource.c (init_resource_info): Update.
714         * config/alpha/alpha.c (NUM_ARGS): Update.
715         (direct_return): Update.
716         (alpha_va_start): Update.
717         (alpha_sa_size): Update.
718         (alpha_initial_elimination_offset): Update.
719         (alpha_expand_prologue): Update.
720         (alpha_start_function): Update.
721         (alpha_expand_epilogue): Update.
722         (unicosmk_initial_elimination_offset):
723         * config/alpha/alpha.md (call expander): Update.
724         * config/s390/s390.c (s390_register_info): Update.
725         (s390_register_info): Update.
726         (s390_frame_info): Update.
727         (s390_initial_elimination_offset): Update.
728         (s390_build_builtin_va_list): Update.
729         (s390_va_start): Update.
730         * config/spu/spu.c (direct_return): Update.
731         (spu_expand_prologue): Update.
732         (spu_initial_elimination_offset): Update.
733         (spu_build_builtin_va_list): Update.
734         (spu_va_start): Update.
735         * config/sparc/sparc.c (sparc_init_modes): Update.
736         (sparc_compute_frame_size): Update.
737         (function_value): Update.
738         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
739         * config/i386/i386.md (return expander): Update.
740         * config/i386/i386.c (ix86_va_start): Update.
741         (ix86_can_use_return_insn_p): Update.
742         (ix86_compute_frame_layout): Update.
743         (ix86_expand_epilogue): Update.
744         * config/sh/sh.c (output_stack_adjust): Update.
745         (calc_live_regs): Update.
746         (sh_expand_prologue): Update.
747         (sh_builtin_saveregs): Update.
748         (sh_va_start): Update.
749         (initial_elimination_offset): Update.
750         (sh_allocate_initial_value): Update.
751         (sh_function_ok_for_sibcall): Update.
752         (sh_get_pr_initial_val): Update.
753         * config/sh/sh.md (return expander): Update.
754         * config/avr/avr.c (frame_pointer_required_p): UPdate.
755         * config/crx/crx.c (crx_compute_frame): UPdate.
756         (crx_initial_elimination_offset): UPdate.
757         * config/xtensa/xtensa.c (compute_frame_size): Update
758         (xtensa_builtin_saveregs): Update.
759         (xtensa_va_start): Update.
760         (order_regs_for_local_alloc): Update.
761         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
762         (xstormy16_expand_builtin_va_start): Update.
763         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
764         * config/m68hc11/m68hc11.md (return expanders): Update.
765         * config/m68hc11/m68hc11.c (expand_prologue): Update.
766         (expand_epilogue): Update.
767         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
768         (cris_simple_epilogue): Update.
769         (cris_expand_prologue): Update.
770         (cris_expand_epilogue): Update.
771         * config/iq2000/iq2000.c (iq2000_va_start): Update.
772         (compute_frame_size): Update.
773         * config/mt/mt.c (mt_compute_frame_size): Update.
774         * config/mn10300/mn10300.c (expand_prologue): Update.
775         (expand_epilogue): Update.
776         (initial_offset): Update.
777         (mn10300_builtin_saveregs):
778         * config/mn10300/mn10300.md (return expander): Update.
779         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
780         (ia64_initial_elimination_offset): Update.
781         (ia64_initial_elimination_offset): Update.
782         (ia64_expand_prologue): Update.
783         * config/m68k/m68k.md (return expander): Update.
784         * config/rs6000/rs6000.c (rs6000_va_start): Update.
785         (rs6000_stack_info): Update.
786         * config/mcore/mcore.c (layout_mcore_frame): Update.
787         (mcore_expand_prolog): Update.
788         * config/arc/arc.c (arc_compute_frame_size): Update.
789         * config/score/score3.c (score3_compute_frame_size): Update.
790         * config/score/score7.c (score7_compute_frame_size): Update.
791         * config/arm/arm.c (use_return_insn): Update.
792         (thumb_find_work_register): Update.
793         (arm_compute_save_reg_mask): Update.
794         (arm_output_function_prologue): Update.
795         (arm_output_epilogue): Update.
796         (arm_size_return_regs): Update.
797         (arm_get_frame_offsets): Update.
798         (arm_expand_prologue): Update.
799         (thumb_exit): Update.
800         (thumb_unexpanded_epilogue): Update.
801         (thumb1_output_function_prologue): Update.
802         * config/pa/pa.md (return expander): Update.
803         * config/pa/pa.c (compute_frame_size): Update.
804         (hppa_builtin_saveregs): Update.
805         * config/mips/mips.c (mips_va_start): Update.
806         (mips16_build_function_stub): Update.
807         (mips_compute_frame_info): Update.
808         (mips_restore_gp): Update.
809         (mips_output_function_prologue): Update.
810         (mips_expand_prologue): Update.
811         * config/v850/v850.c (compute_frame_size): Update.
812         (expand_prologue): * config/mmix/mmix.c (along): update.
813         (mmix_initial_elimination_offset): update.
814         (mmix_reorg): update.
815         (mmix_use_simple_return): update.
816         (mmix_expand_prologue): update.
817         (mmix_expand_epilogue): Update.
818         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
819         (emit_link_insn): Update.
820
821 2008-04-08  Anatoly Sokolov <aesok@post.ru>
822
823         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
824         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
825         instructions.
826         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
827         atmega103 device.
828
829 2008-04-07  Jan Hubicka  <jh@suse.cz>
830
831         * function.h (rtl): Rename to x_rtl.
832         (crtl): New define.
833         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
834         frame_offset, stack_check_probe_note, arg_pointer_save_area,
835         used_temp_slots avail_temp_slots, temp_slot_level,
836         nonlocal_goto_handler_labels): Update accesstors.
837         (rtl): New global variable.
838         (struct function): Move some fileds to rtl_data.
839         (get_arg_pointer_save_area): Update prototype.
840         * builtins.c (expand_builtin_setjmp_receiver): Update call of
841         get_arg_pointer_save_area.
842         * expr.c (init_expr): Update
843         * function.c (get_frame_size): Update
844         (assign_stack_local): Update
845         (expand_function_end): Update.
846         (get_art_pointer_save_area): Update
847         * function.h 
848         * emit-rtl.c (rtl): Declare.
849         (regno_reg_rtx): Declare.
850         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
851         Update.
852         (gen_reg_rtx): Update.
853         * varasm.c (n_deferred_constatns): Update accestor.
854         (init_varasm_status): Do not allocate varasm_status.
855         (force_const_mem, get_pool_size, output_constant_pool): Update.
856         * stmt.c (force_label_rtx): Do not use x_ prefixes.
857         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
858         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
859         * sparc/sparc.h (INIT_EXPANDERS): Update.
860         * ia64/ia64.h (INIT_EXPANDERS): Update.
861
862 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
863
864         * reload.c (push_secondary_reload): Add missing break to for loop.
865
866 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
867
868         PR middle-end/PR28690
869         * rtlanal.c: Update copyright years.
870         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
871         as REG_POINTER and MEM_POINTER operands.
872         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
873         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
874         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
875         * gcse.c: Update copyright years.
876         (pre_delete): Call gen_reg_rtx_and_attrs.
877         (hoist_code): Likewise.
878         (build_store_vectors): Likewise.
879         (delete_store): Likewise.
880         * loop-invariant.c (move_invariant_reg): Likewise.
881         Update copyright years.
882
883 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
884
885         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
886         control string instead of quoted.
887
888 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
889
890         * doc/rtl.texi: Rewrite of subreg section.
891
892 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
893
894         PR/35842
895         * config/i386/i386.c (legitimize_pic_address): Add treating
896         of dllimport SYM_REF's.
897         (legitimize_dllimport_symbol): Add prototype.
898
899 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
900
901         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
902         reference in constructor with non self-referential type.
903
904 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
905
906         Removal of Return with Depressed Stack Pointer support
907         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
908         (ECF_SP_DEPRESSED): Likewise.
909         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
910         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
911         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
912         (expand_call): Do not test ECF_SP_DEPRESSED.
913         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
914         * function.c (keep_stack_depressed): Delete.
915         (handle_epilogue_set): Likewise.
916         (update_epilogue_consts): Likewise.
917         (emit_equiv_load): Likewise.
918         (thread_prologue_and_epilogue_insns): Remove support for Return with
919         Depressed Stack Pointer.
920         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
921
922 2008-04-06  Richard Guenther  <rguenther@suse.de>
923
924         PR tree-optimization/35400
925         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
926         information from SSA_NAMEs.
927
928 2008-04-06  Anatoly Sokolov <aesok@post.ru>
929
930         * config/avr/avr.h (avr_mega_p): Remove declaration.
931         (AVR_MEGA): Remove macro.
932         * config/avr/avr.c (avr_mega_p): Remove variable.
933         (avr_override_options): Remove inicializion of avr_mega_p.
934         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
935         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
936         (avr_jump_mode): (Ditto.).
937         (avr_output_progmem_section_asm_op): (Ditto.).
938         (avr_asm_init_sections): (Ditto.).
939         (avr_asm_init_sections): (Ditto.).
940         (avr_rtx_costs): (Ditto.).
941         * config/avr/avr.md: (Ditto.).
942         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
943         '__AVR_MEGA__'.
944
945 2008-04-06  Richard Guenther  <rguenther@suse.de>
946
947         PR tree-optimization/35842
948         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
949         is_gimple_invariant_address.
950
951 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
952
953         * gcc.c (default_compilers): Sync Fortran extensions list with
954         that in fortran/lang-specs.h.
955         * doc/invoke.texi: Likewise.
956         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
957         * dwarf2out.c (gen_compile_unit_die): Likewise.
958
959 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
960
961         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
962
963 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
964
965         PR target/12329
966         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
967         attribute is used for nested functions.
968
969 2008-04-05  Jan Hubicka  <jh@suse.cz>
970
971         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
972
973         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
974         letter argument.
975         (dump_files): Update.
976         (enable_rtl_dump_file): Do not accept letter argument.
977         * tree-pass.h (dump_file_info): Remove letter argument.
978         * toplev.c (decode_d_option): Update -da handling.
979         * toplev.h (enable_rtl_dump_file): Update prototype.
980         * passes.c (register_one_dump_file): Do not accept IPA argument; work
981         it out based on pass type.
982         (register_dump_files_1): Likewise.
983         (init_optimization_passes): Update register_one_dump_file calls.
984         (execute_one_pass): Sanity check that IPA passes are called at IPA
985         level and RTL passes at RTL level.
986         (execute_pass_list): IPA pass can not be after or subpass of
987         GIMPLE/RTL pass.
988         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
989         disallov RTL subpasses of IPA subpasses.
990
991 2008-04-05  Ben Elliston  <bje@au.ibm.com>
992
993         * tree-cfg.c (need_fake_edge_p): Return false for calls to
994         builtins that return exactly once and do not throw. Cache call to
995         call_expr_flags.
996
997 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
998
999         PR rtl-optimization/34916
1000         PR middle-end/35519
1001         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1002         between instruction pairs.
1003
1004 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1005
1006         * doc/invoke.texi: Document -mbitops for SH.
1007         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1008         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1009         * config/sh/sh.c (print_operand): Add %t operand code.
1010         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1011         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1012         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1013         (extendqihi2): Likewise.
1014         (movqi_i): Likewise.
1015         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1016         (extv): Use bld instruction for SH2A if possible.
1017         (extzv): Likewise.
1018         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1019         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1020         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1021         (bset.b, bclr.b): Define peepholes.
1022         * config/sh/sh.opt (mbitops): New option.
1023
1024 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1025
1026         PR target/35620
1027         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1028         and view convert expression.
1029
1030 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1031
1032         PR target/35364
1033         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1034
1035 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1036
1037         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1038
1039         * config/i386/cpuid.h (bit_AES): New.
1040         (bit_PCLMUL): Likewise.
1041
1042         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1043         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1044         SSE2 if AES or PCLMUL is enabled.
1045         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1046         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1047         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1048         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1049         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1050         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1051         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1052         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1053         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1054         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1055         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1056         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1057         __builtin_ia32_aeskeygenassist128 and
1058         __builtin_ia32_pclmulqdq128.
1059         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1060         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1061         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1062
1063         * config/i386/i386.h (TARGET_AES): New.
1064         (TARGET_PCLMUL): Likewise.
1065         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1066
1067         * config/i386/i386.md (UNSPEC_AESENC): New.
1068         (UNSPEC_AESENCLAST): Likewise.
1069         (UNSPEC_AESDEC): Likewise.
1070         (UNSPEC_AESDECLAST): Likewise.
1071         (UNSPEC_AESIMC): Likewise.
1072         (UNSPEC_AESKEYGENASSIST): Likewise.
1073         (UNSPEC_PCLMUL): Likewise.
1074
1075         * config/i386/i386.opt (maes): New.
1076         (mpclmul): Likewise.
1077
1078         * config/i386/sse.md (aesenc): New pattern.
1079         (aesenclast): Likewise.
1080         (aesdec): Likewise.
1081         (aesdeclast): Likewise.
1082         (aesimc): Likewise.
1083         (aeskeygenassist): Likewise.
1084         (pclmulqdq): Likewise.
1085
1086         * config/i386/wmmintrin.h: New.
1087
1088         * doc/extend.texi: Document AES and PCLMUL built-in function.
1089
1090         * doc/invoke.texi: Document -maes and -mpclmul.
1091
1092 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
1093
1094         * function.c (free_after_parsing): Replace with
1095         cxx_push_function_context from C++ front-end.
1096         (allocate_struct_function): Don't call langhook.
1097         * langhooks.h (struct lang_hooks_for_functions): Delete.
1098         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
1099         member "function".
1100         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
1101         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
1102         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1103         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
1104         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
1105         remove LANG_HOOKS_FUNCTION_INITIALIZER.
1106         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
1107
1108         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
1109         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
1110         
1111 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1112
1113         PR c/35440
1114         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1115         for all types.
1116
1117 2008-04-04  Richard Guenther  <rguenther@suse.de>
1118
1119         PR middle-end/35823
1120         * fold-const.c (optimize_minmax_comparison): Use the correct
1121         type for the constant in the simplified comparison.
1122
1123 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
1124
1125         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
1126         Pass L2 size as "--param l2-cache-size" to the compiler.
1127         (decode_l2_cache): New function to decode L2 cache parameters using
1128         0x8000006 extended cpuid function.
1129         (detect_caches_amd): Determine parameters of L2 cache using
1130         decode_l2_caches function.
1131         (decode_caches_intel): Decode L2 cache parameters.
1132         (detect_caches_intel): Determine L2 cache parameters using
1133         decode_caches_intel and decode_l2_caches functions.
1134
1135 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
1136
1137         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
1138         secondary input reload for subword loads from the constant pool.
1139
1140 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
1141
1142         PR target/35713
1143         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
1144           constants of the appropriate size for runtime calculations.
1145
1146         PR c/35712
1147         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
1148           decimal-float literal constant zero.
1149
1150 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1151
1152         PR c/35738
1153         * c-parser.c (c_parser_omp_atomic): Call
1154         default_function_array_conversion on the RHS.
1155
1156         PR middle-end/35818
1157         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
1158         call is_variable_sized if decl has incomplete type.
1159
1160 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
1161
1162         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
1163
1164 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1165
1166         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
1167         iterators.
1168         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
1169         (sgt<u>): Merge sgt and sgtu into new expander.
1170         (sgt, sgtu): Remove expanders.
1171         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
1172         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
1173         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
1174         *sgtu_<mode>_mips16 into new pattern.
1175         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
1176         (sge<u>): Merge sge and sgeu into new expander.
1177         (sge, sgeu): Remove expanders.
1178         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
1179         new pattern.
1180         (*sge_<mode>, second *sge_<mode>): Remove patterns.
1181         (slt<u>): Merge slt and sltu into new expander.
1182         (slt, sltu): Remove expanders.
1183         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
1184         (*slt_<mode>, *sltu_<mode>): Remove patterns.
1185         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
1186         *sltu_<mode>_mips16 into new pattern.
1187         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
1188         (sle<u>): Merge sle and sleu into new expander.
1189         (sle, sleu): Remove expanders.
1190         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
1191         (*sle_<mode>, *sleu_<mode>): Remove patterns.
1192         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
1193         *sleu_<mode>_mips16 into new pattern.
1194         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
1195
1196 2008-04-03  Jan Hubicka  <jh@suse.cz>
1197
1198         PR tree-optimization/35795
1199         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
1200         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1201         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1202         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1203         * score/score3.c (score3_output_mi_thunk): Likewise.
1204         * score/score7.c (score7_output_mi_thunk): Likewise.
1205         * mips/mips.c (mips_output_mi_thunk): Likewise.
1206
1207 2008-04-03  Richard Guenther  <rguenther@suse.de>
1208
1209         * tree-vrp.c (extract_range_from_unary_expr): Handle all
1210         conversions.  Simplify code.
1211
1212 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1213
1214         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
1215
1216 2008-04-03  Tom Tromey  <tromey@redhat.com>
1217             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1218
1219         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1220         * config/bfin/t-bfin-linux (generated_files): Add
1221         linux-sysroot-suffix.h.
1222         * doc/install.texi (Prerequisites): Require make 3.80.
1223         * doc/sourcebuild.texi (Front End Directory): Document new
1224         variable.
1225         * Makefile.in (generated_files): New variable.
1226         (ALL_HOST_OBJS): New variable.
1227         ($(ALL_HOST_OBJS)): New target.
1228
1229 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1230
1231         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
1232         (remap_block): Call id->transform_lang_insert_block instead
1233         of langhook.
1234         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
1235         Set id.transform_lang_insert_block to NULL.
1236         (clone_body): Move to cp/optimize.c
1237         * tree-inline.h (struct copy_body_data): Change
1238         transform_lang_insert_block to function pointer.
1239         (copy_generic_body, copy_decl_no_change): Export.
1240         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
1241         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
1242         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
1243
1244         * c-tree.h (insert_block): Kill.
1245         * c-decl.c (insert_block): Kill.
1246
1247 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1248
1249         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1250         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1251         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
1252         argument.
1253         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
1254         argument, call {push,pop}_function_context from here.
1255         * c-parser.c: Use c_{push,pop}_function_context.
1256
1257         * function.c (push_function_context_to): Move meat ...
1258         (push_function_context): ... here.  Simplify.
1259         * function.c (pop_function_context_from): Move meat ...
1260         (pop_function_context): ... here.  Simplify.
1261         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
1262         leave_nested).
1263         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1264         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1265         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
1266         * tree.h (push_function_context_to, pop_function_context_from): Remove.
1267
1268 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1269
1270         * expmed.c (extract_force_align_mem_bit_field): Remove.
1271
1272 2008-04-03  Richard Guenther  <rguenther@suse.de>
1273
1274         PR middle-end/35800
1275         * expr.h (try_casesi): Adjust prototype.
1276         * expr.c (try_casesi): Take fallback label as extra parameter.
1277         Use that for gen_casesi if default_label is NULL.
1278         * stmt.c (expand_case): Pass fallback label to try_casesi,
1279         make sure to fill gaps with a fallback label if default_label
1280         is not present.
1281
1282 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
1283
1284         PR target/35801
1285         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
1286
1287 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1288
1289         * expmed.c (extract_split_bit_field): Remove if (0) code.
1290         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
1291         (do_ds_constraint): Likewise.
1292
1293 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1294
1295         * doc/cppopts.texi (-dU): Document.
1296         * c-common.h (flag_dump_macros): Update comment.
1297         * c-opts.c (handle_OPT_d): Handle -dU.
1298         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
1299         dump_queued_macros, cb_used_define, cb_used_undef): New.
1300         (init_pp_output): Handle -dU.
1301         (cb_line_change): Call dump_queued_macros.
1302         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
1303
1304 2008-04-02  Anatoly Sokolov <aesok@post.ru>
1305
1306         * config/avr/predicates.md (io_address_operand): New predicate. 
1307         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
1308         * config/avr/avr.c (avr_io_address_p): Remove function.
1309         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
1310         'avr_io_address_p' function.
1311         (out_movhi_r_mr): (Ditto.).
1312         (out_movqi_mr_r): (Ditto.).
1313         (out_movhi_mr_r): (Ditto.).
1314         (avr_address_cost): (Ditto.).
1315
1316 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
1317
1318         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
1319         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
1320         in 32bit mode when XMM registers are available to avoid store
1321         forwarding stalls.
1322         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
1323         corresponding post-reload splitters.
1324
1325 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1326
1327         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
1328         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
1329         __builtin_ia32_roundss.
1330         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
1331         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
1332         __builtin_ia32_roundss.
1333         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
1334         IX86_BUILTIN_SHUFPD here.
1335
1336 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1337
1338         * config/i386/i386.md (plogic): New.
1339         (plogicprefix): Likewise.
1340
1341         * config/i386/mmx.md (mmx_<code><mode>3): New.
1342         (mmx_and<mode>3): Removed.
1343         (mmx_ior<mode>3): Likewise.
1344         (mmx_xor<mode>3): Likewise.
1345
1346         * config/i386/sse.md (<code><mode>3): New.
1347         (*<code><mode>3): Likewise.
1348         (*<code><mode>3): Likewise.
1349         (<code><mode>3): Likewise.
1350         (*sse_<code><mode>3): Likewise.
1351         (*sse2_<code><mode>3): Likewise.
1352         (<code>tf3): Likewise.
1353         (*<code>tf3): Likewise.
1354         (and<mode>3): Likewise.
1355         (*and<mode>3): Likewise.
1356         (ior<mode>3): Removed.
1357         (*ior<mode>3): Likewise.
1358         (xor<mode>3): Likewise.
1359         (*xor<mode>3): Likewise.
1360         (*and<mode>3): Likewise.
1361         (*ior<mode>3): Likewise.
1362         (*xor<mode>3): Likewise.
1363         (and<mode>3): Likewise.
1364         (*sse_and<mode>3): Likewise.
1365         (*sse2_and<mode>3): Likewise.
1366         (andtf3): Likewise.
1367         (*andtf3): Likewise.
1368         (ior<mode>3): Likewise.
1369         (*sse_ior<mode>3): Likewise.
1370         (*sse2_ior<mode>3): Likewise.
1371         (iortf3): Likewise.
1372         (*iortf3): Likewise.
1373         (xor<mode>3): Likewise.
1374         (*sse_xor<mode>3): Likewise.
1375         (*sse2_xor<mode>3): Likewise.
1376         (xortf3): Likewise.
1377         (*xortf3): Likewise.
1378
1379 2008-04-02  Richard Guenther  <rguenther@suse.de>
1380
1381         PR tree-optimization/14495
1382         PR tree-optimization/34793
1383         * tree-vrp.c (struct switch_update): New structure.
1384         (to_remove_edges, to_update_switch_stmts): New VECs.
1385         (simplify_switch_using_ranges): New function.  Remove not taken
1386         case labels and edges.
1387         (simplify_stmt_using_ranges): Call it.
1388         (identify_jump_threads): Mark edges we have queued for removal
1389         so we don't thread them.
1390         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
1391         case label vector.
1392         * tree-cfg.c (group_case_labels): Deal with missing default label.
1393         (tree_verify_flow_info): Allow missing default label.
1394         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
1395         (emit_case_nodes): Likewise.
1396         (expand_case): Do not rely on the default label to be present.
1397         * expr.c (try_casesi): Deal with NULL default_label.
1398         (do_tablejump): Likewise.
1399
1400 2008-04-02  Richard Guenther  <rguenther@suse.de>
1401
1402         PR tree-optimization/14495
1403         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
1404         SWITCH_EXPR here ...
1405         (vrp_visit_switch_stmt): ... but here (new function).
1406         (find_case_label_index): New helper function.
1407         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
1408
1409 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1410
1411         * fwprop.c: Fix ISO-C99ism.
1412
1413 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1414
1415         PR bootstrap/35752
1416         * Makefile.in (objdir): Set it here.
1417         * configure.ac: Not here.  Find dynamic linker characteristics.
1418         * exec-tool.in: Use them.
1419         * aclocal.m4: Regenerate.
1420         * configure: Regenerate.
1421
1422 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1423
1424         * expr.c (expand_var): Delete it.
1425         * expr.h (expand_var): Delete prototype.
1426         * function.c (expand_function_start): Use expand_decl instead.
1427         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
1428         langhook.
1429
1430 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
1431
1432         PR rtl-optimization/35542
1433         * fwprop.c (forward_propagate_and_simplify): Replace
1434         loc_reg_mentioned_in_p with reg_mentioned_p.
1435
1436 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1437
1438         PR rtl-optimization/35281
1439         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
1440         (propagate_rtx_1): Handle PR_HANDLE_MEM.
1441         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
1442         (varying_mem_p): Move above propagate_rtx.
1443         (all_uses_available_at): Do not check MEMs.
1444
1445 2008-04-02  Rafael Espindola  <espindola@google.com>
1446
1447         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
1448         (register_edge_assert_for_2): Split the cond argument.
1449         (register_edge_assert_for_1): Adjust for the change in
1450         register_edge_assert_for_2.
1451         (register_edge_assert_for): Split the cond argument.
1452         (find_switch_asserts): Adjust for the change in
1453         register_edge_assert_for.
1454
1455 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
1456
1457         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1458         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
1459         offsets for 64-bit mingw.
1460         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
1461         abi for x86_64-pc-mingw.
1462
1463 2008-04-02  Richard Guenther  <rguenther@suse.de>
1464
1465         * tree-vrp.c (extract_range_from_assert): Make sure to not
1466         produce range min/max with TREE_OVERFOW set.
1467         If merging a anti-range and a range keep the anti-range if
1468         the range covers all values of the type.
1469         (register_edge_assert_for_2): Only allow sign-changing
1470         conversions in detecting canonical range checks.  Also
1471         register an assert for the unsigned name if useful.
1472
1473         PR tree-optimization/35787
1474         * tree-vrp.c (vrp_val_max): New function.
1475         (vrp_val_min): Likewise.
1476         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
1477         (vrp_val_is_min): Likewise.
1478         (supports_overflow_infinity): Use vrp_val_{min,max}.
1479         (negative_overflow_infinity): Likewise.
1480         (positive_overflow_infinity): Likewise.
1481         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
1482         (is_positive_overflow_infinity): Likewise.
1483         (is_overflow_infinity): Likewise.
1484         (avoid_overflow_infinity): Use vrp_val_{min,max} and
1485         vrp_val_is_{min,max}.
1486         (set_and_canonicalize_value_range): Canonicalize anti-ranges
1487         to ranges if possible.  Avoid empty ranges.
1488
1489 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1490
1491         PR middle-end/35705
1492         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
1493         the expression is a function address.
1494
1495 2008-04-01  George Helffrich  <george@gcc.gnu.org>
1496
1497         PR fortran/PR35154, fortran/PR23057
1498         * fortran/trans-common.c (create_common):  Add decl to function
1499         chain to preserve identifier scope in debug output.
1500
1501         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
1502         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
1503         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
1504         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
1505         in common.
1506         (dbxout_syms): Check for COMMON-based symbol and wrap in
1507         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
1508         in bracket for efficiency.
1509
1510         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
1511         using DW_TAG_common_block + member offset.
1512         (add_pubname_string): New function.
1513         (dw_expand_expr): New function to find block name and offset for
1514         COMMON var.
1515         (common_check): New function to check whether symbol in Fortran COMMON.
1516         (gen_variable_die): If COMMON, use DW_TAG_common_block.
1517
1518         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
1519         use of common is unchanged.
1520
1521         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
1522         with all combinations of debug options available on target.
1523         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
1524         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
1525         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
1526         .stabs functionality.
1527         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
1528         DWARF functionality.
1529
1530 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
1531
1532         PR c/35436
1533         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
1534
1535 2008-04-02  Ben Elliston  <bje@au.ibm.com>
1536
1537         * config/v850/v850.md (casesi): Remove if (0) code.
1538         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1539         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
1540
1541 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
1542
1543         * config/i386/i386.md (rex64suffix): New mode attribute.
1544         (floathi<mode>2): Disable expander for SSE math.
1545         (*floathi<mode>2_1): New insn insn_and_split pattern.
1546         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
1547         corresponding post-reload splitters.
1548         (*floathi<mode>2_i387): New macroized insn pattern.
1549         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
1550         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
1551         insn_and_split pattern.
1552         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
1553         New macroized instruction patterns and corresponding post-reload
1554         splitters.
1555         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
1556         and corresponding post-reload splitters.
1557         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
1558         New macroized instruction patterns.
1559         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
1560         macroized instruction patterns and corresponding post-reload splitters.
1561         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
1562         corresponding post-reload splitters.
1563         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
1564         New macroized instruction patterns.
1565         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
1566         corresponding post-reload splitters.
1567         (*floatsi<mode>2_i387): New macroized instruction patterns.
1568
1569 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
1570
1571         * config/i386/i386.md (smaxmin): New.
1572         (umaxmin): Likewise.
1573         (maxminiprefix): Likewise.
1574         (maxminfprefix): Likewise.
1575         (<code><mode>3): Likewise.
1576         (smin<mode>3): Removed.
1577         (smax<mode>3): Likewise.
1578
1579         * config/i386/mmx.md (mmx_<code>v2sf3): New.
1580         (mmx_<code>v4hi3): Likewise.
1581         (mmx_<code>v8qi3): Likewise.
1582         (mmx_smaxv2sf3): Removed.
1583         (mmx_sminv2sf3): Likewise.
1584         (mmx_umaxv8qi3): Likewise.
1585         (mmx_smaxv4hi3): Likewise.
1586         (mmx_uminv8qi3): Likewise.
1587         (mmx_sminv4hi3): Likewise.
1588
1589         * config/i386/sse.md (<addsub><mode>3): New.
1590         (*<addsub><mode>3): Likewise.
1591         (<sse>_vm<addsub><mode>3): Likewise.
1592         (<maxmin><mode>3): Likewise.
1593         (*<maxmin><mode>3_finite): Likewise.
1594         (*<maxmin><mode>3): Likewise.
1595         (<sse>_vm<maxmin><mode>3): Likewise.
1596         (sse3_h<addsub>v4sf3): Likewise.
1597         (sse3_h<addsub>v2df3): Likewise.
1598         (<maxmin>v16qi3): Likewise.
1599         (*<maxmin>v16qi3): Likewise.
1600         (<maxmin>v8hi3): Likewise.
1601         (*<maxmin>v8hi3): Likewise.
1602         (*sse4_1_<maxmin><mode>3): Likewise.
1603         (*sse4_1_<maxmin><mode>3): Likewise.
1604         (add<mode>3): Removed.
1605         (*add<mode>3): Likewise.
1606         (<sse>_vmadd<mode>3): Likewise.
1607         (sub<mode>3): Likewise.
1608         (*sub<mode>3): Likewise.
1609         (<sse>_vmsub<mode>3): Likewise.
1610         (smin<mode>3): Likewise.
1611         (*smin<mode>3_finite): Likewise.
1612         (*smin<mode>3): Likewise.
1613         (<sse>_vmsmin<mode>3): Likewise.
1614         (smax<mode>3): Likewise.
1615         (*smax<mode>3_finite): Likewise.
1616         (*smax<mode>3): Likewise.
1617         (<sse>_vmsmax<mode>3): Likewise.
1618         (sse3_haddv4sf3): Likewise.
1619         (sse3_haddv2df3): Likewise.
1620         (sse3_hsubv4sf3): Likewise.
1621         (sse3_hsubv2df3): Likewise.
1622         (umaxv16qi3): Likewise.
1623         (*umaxv16qi3): Likewise.
1624         (smaxv8hi3): Likewise.
1625         (*smaxv8hi3): Likewise.
1626         (*sse4_1_smax<mode>3): Likewise.
1627         (*sse4_1_umax<mode>3): Likewise.
1628         (uminv16qi3): Likewise.
1629         (*uminv16qi3): Likewise.
1630         (sminv8hi3): Likewise.
1631         (*sminv8hi3): Likewise.
1632         (*sse4_1_smin<mode>3): Likewise.
1633         (*sse4_1_umin<mode>3): Likewise.
1634
1635 2008-04-01  Rafael Espindola  <espindola@google.com>
1636
1637         * tree-cfg.c (verify_expr): remove in_phi.
1638         (verify_stmt): Don't call walk_tree with verify_expr. Use
1639         is_gimple_min_invariant instead of is_gimple_val.
1640
1641 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
1642
1643         * doc/include/gpl_v3.texi: Update for manpage generation.
1644         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
1645         gpl.texi.
1646         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
1647         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
1648         gpl_v3.texi instead of gpl.texi.
1649         (gpl.pod): New.
1650
1651 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
1652
1653         PR pch/13675
1654         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
1655
1656 2008-04-01  Rafael Espindola  <espindola@google.com>
1657
1658         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
1659         (extract_code_and_val_from_cond): Use
1660         extract_code_and_val_from_cond_with_ops.
1661
1662 2008-04-01  Jan Hubicka  <jh@suse.cz>
1663
1664         * function.c (free_after_compilation): Free epilogue_delay_list.
1665         (prepare_function_start): Assert that previous compilation was freed.
1666
1667 2008-04-01  Jan Hubicka  <jh@suse.cz>
1668             Jim Wilson  <wilson@tuliptree.org>
1669             Andreas Tobler <andreast@gcc.gnu.org>
1670
1671         PR middle-end/35781
1672         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
1673         rtl.emit instead cfun->emit.
1674         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
1675         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
1676
1677 2008-04-01  Ben Elliston  <bje@au.ibm.com>
1678
1679         * doc/c-tree.texi (Function Basics): Fix grammatical error.
1680
1681 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
1682
1683         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
1684         New options
1685         (fprofile-use): Add var flag_profile_use
1686         * coverage.c (coverage_begin_output): Do not open a gcno file for
1687         output only if -ftest-coverage is set.
1688         Do not add getpwd() to gcda file path.
1689         (build_gcov_info): Check the new flag
1690         flag_profile_datafile_relative_path.
1691         (coverage_init): Use profile_data_prefix.
1692         Read profile counter only if flag_profile_use is set.
1693         * opts.c (common_handle_option): New option fprofile-use=,
1694         fprofile-dir=, fprofile-generate=.
1695         * toplev.c (profile_data_prefix): New variable definition.
1696         * toplev.h (profile_data_prefix): New declaration.
1697         * doc/invoke.tex (Option Summary, Optimization Options):
1698         Add new options.
1699
1700 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
1701
1702         * varasm.c (output_constant_pool_1): In LABEL_REF check,
1703         use tmp consistently.
1704
1705         PR target/35695
1706         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
1707         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1708         UNSPEC_FR_RECIP_APPROX_RES.
1709         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
1710
1711 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
1712
1713         PR c/35750
1714         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
1715
1716 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1717
1718         PR middle-end/30186
1719         * fold-const.c (fold_indirect_ref_1): Support accessing non first
1720         element of the vector via a pointer.
1721
1722 2008-03-31  Ian Lance Taylor  <iant@google.com>
1723
1724         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
1725
1726 2008-03-31  Jan Hubicka  <jh@suse.cz>
1727
1728         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1729         get_arg_pointer_save_area.
1730         * expr.c (init_expr): Just clear out rtl.expr.
1731         * function.c (free_after_compilation): Clear out whole RTL structure.
1732         (get_func_frame_size): Merge into ...
1733         (get_frame_size): ... this one.
1734         (assign_stack_local_1): Merge into ...
1735         (assign_stack_local): ... this one.
1736         (expand_function_end): Update call of get_arg_pointer_save_area.
1737         (get_art_pointer_save_area): Remove cfun argument.
1738         * function.h (emit_status): regno_pointer_align does not need length
1739         attribute. Move x_regno_reg_rtx to ...
1740         (regno_reg_rtx): ... new global array.
1741         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
1742         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
1743         apply_args_value, forced_labels, stack_pointer_delta):
1744         Update accestors.
1745         (struct varasm_status): Move here from varasm.c
1746         (struct rtl_data): New. Move here some fields from struct function.
1747         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1748         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1749         used_temp_slots avail_temp_slots, temp_slot_level,
1750         nonlocal_goto_handler_labels): Update accesstors.
1751         (rtl): New global variable.
1752         (struct function): Move some fileds to rtl_data.
1753         (get_arg_pointer_save_area): Update prototype.
1754         * emit-rtl.c (rtl): Declare.
1755         (regno_reg_rtx): Declare.
1756         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1757         Update.
1758         (gen_reg_rtx): Update.
1759         (init_virtual_regs): Do not tate emit_status argument.
1760         (init_emit): Do not allocate emit.
1761         * varasm.c (varasm_statuc): Move to function.h.
1762         (n_deferred_constatns): Update accestor.
1763         (init_varasm_status): Do not allocate varasm_status.
1764         (force_const_mem, get_pool_size, output_constant_pool): Update.
1765         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1766         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1767
1768 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
1769
1770         PR rtl-optimization/35729
1771         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
1772         references.
1773
1774 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1775
1776         PR target/32000
1777         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
1778         load/store if memory is unaligned.
1779         (*movti_rex64): Likewise.
1780
1781         * config/i386/predicates.md (misaligned_operand): New.
1782
1783 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
1784
1785         PR tree-opt/35431
1786         * tree-ssa-phiopt.c (conditional_replacement): Return early for
1787         complex types.
1788
1789 2008-03-31  Jan Beulich  <jbeulich@novell.com>
1790
1791         * config/ia64/constraints.md: Add 'j' constraint.
1792         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
1793         (movdi_internal): Likewise.
1794
1795 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
1796
1797         PR c/35748
1798         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
1799
1800 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1801
1802         PR target/35757
1803         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
1804         proper error message for the third argument on blendpd and
1805         blendps.
1806
1807         * config/i386/sse.md (blendbits): New.
1808         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
1809
1810 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
1811
1812         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
1813
1814 2008-03-30  Richard Guenther  <rguenther@suse.de>
1815
1816         PR middle-end/31023
1817         * fold-const.c (fold_sign_changed_comparison): Do leave
1818         conversions to base-types alone.
1819
1820 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1821
1822         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
1823         the link register if one altivec register is be saved.
1824
1825 2008-03-30  Ben Elliston  <bje@au.ibm.com>
1826
1827         * final.c (final_scan_insn): Remove if (0) code.
1828
1829 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
1830
1831         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
1832
1833 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
1834
1835         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
1836         of V4SFmode to ix86_binary_operator_ok.
1837
1838 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
1839
1840         * config/i386/i386.c (override_options): Initialize
1841         ix86_veclib_handler to ix86_veclibabi_svml when
1842         -mveclibabi=svml is used.
1843         (ix86_veclibabi_svml): New function for SVML ABI style
1844         vectorization support.
1845         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
1846
1847 2008-03-28  Rafael Espindola  <espindola@google.com>
1848
1849         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
1850         (tree_binary_nonnegative_warnv_p): Make it public.
1851         (tree_single_nonnegative_warnv_p): Make it public.
1852         (tree_invalid_nonnegative_warnv_p): Make it public.
1853         (tree_unary_nonzero_warnv_p): Make it public.
1854         (tree_binary_nonzero_warnv_p): Make it public
1855         (tree_single_nonzero_warnv_p): Make it public.
1856         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
1857         (extract_range_from_binary_expr): Split the expr argument.
1858         (extract_range_from_unary_expr): Split the expr argument.
1859         (extract_range_from_comparison): Split the expr argument.
1860         (extract_range_from_expr): Use the new aux functions.
1861         (vrp_evaluate_conditional_warnv): Use
1862         vrp_evaluate_conditional_warnv_with_ops.
1863         * tree.h (tree_unary_nonzero_warnv_p): Declare.
1864         (tree_binary_nonzero_warnv_p): Declare.
1865         (tree_single_nonzero_warnv_p): Declare.
1866         (tree_expr_nonzero_warnv_p): Declare.
1867         (tree_unary_nonnegative_warnv_p): Declare.
1868         (tree_binary_nonnegative_warnv_p): Declare.
1869         (tree_single_nonnegative_warnv_p): Declare.
1870         (tree_invalid_nonnegative_warnv_p): Declare.
1871
1872 2008-03-28  Richard Guenther  <rguenther@suse.de>
1873
1874         PR tree-optimization/30317
1875         PR tree-optimization/30911
1876         PR tree-optimization/34793
1877         * tree-vrp.c (set_and_canonicalize_value_range): New function.
1878         (struct assert_locus_d): New member EXPR.
1879         (register_new_assert_for): Add EXPR parameter to support
1880         ASSERT_EXPR <name, expr OP limit>.
1881         (register_edge_assert_for_1): Adjust callers.
1882         (find_assert_locations): Likewise.
1883         (process_assert_insertions_for): Build condition from expression.
1884         (extract_range_from_assert): Handle ASSERT_EXPRs
1885         of the form ASSERT_EXPR <name, expr OP limit>.
1886         (register_edge_assert_for_2): New helper registering
1887         asserts for comparisons.  Recognize range tests of the form
1888         (unsigned)i - CST1 OP CST2.
1889         (register_edge_assert_for_1): Use it.
1890         (register_edge_assert_for): Likewise.
1891         (needs_overflow_infinity): Integer sub-types
1892         do not need overflow infinities.
1893         (vrp_val_is_max): The extreme values of integer sub-types
1894         are those of the base type.
1895         (vrp_val_is_min): Likewise.
1896         * tree.def (ASSERT_EXPR): Document extra allowed conditional
1897         expressions.
1898
1899 2008-03-28  Nick Clifton  <nickc@redhat.com>
1900
1901         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1902         Return GENERAL_REGS for stack adjustment reloads.
1903
1904 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1905
1906         PR target/31334
1907         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
1908         const_vector when all the vectors are constant.
1909
1910 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
1911
1912         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
1913         comparisons.
1914         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
1915         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
1916         (scc_sf): New.
1917         (s<code>_sf): Use new scc_sf attribute for opcode names.
1918
1919 2008-03-27  Tom Tromey  <tromey@redhat.com>
1920
1921         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
1922         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
1923         config/spu/t-spu-elf, config/i386/t-interix,
1924         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
1925         config/i386/x-darwin, config/i386/x-mingw32,
1926         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
1927         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
1928         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
1929         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
1930         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
1931         config/rs6000/x-darwin, config/rs6000/t-rs6000,
1932         config/score/t-score-elf, config/arm/t-strongarm-pe,
1933         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
1934         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
1935         Revert automatic dependency patch.
1936
1937 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1938
1939         PR target/35657
1940         * config/i386/i386.c (ix86_function_arg_boundary): Align
1941         decimal floating point to its natural boundary.
1942
1943 2008-03-27  Richard Guenther  <rguenther@suse.de>
1944
1945         PR middle-end/35716
1946         * fold-const.c (fold_comparison): Restrict distinct decl
1947         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
1948         solely rely on operand_equal_p.
1949
1950 2008-03-27  Richard Guenther  <rguenther@suse.de>
1951
1952         PR c/32511
1953         * c-common.c (handle_weak_attribute): Reject combination of
1954         weak and inline.
1955
1956 2008-03-27  Richard Guenther  <rguenther@suse.de>
1957
1958         PR tree-optimization/32810
1959         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
1960         conversions from DECL_INITIAL.
1961         (fold_const_aggregate_ref): Likewise from constructor elements.
1962
1963 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
1964
1965         * tree-affine.h (aff_combination_expand): Declare.
1966         (get_inner_reference_aff): Likewise.
1967         * tree-affine.c (aff_combination_expand): Split out from
1968         tree_to_aff_combination_expand.
1969         (get_inner_reference_aff): New function.
1970         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
1971         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
1972         (struct lim_aux_data): sm_done field removed.
1973         (mem_ref_loc_p, mem_ref_locs_p): New types.
1974         (struct mem_ref): Added id, stored, accesses_in_loop,
1975         indep_loop, dep_loop, indep_ref, dep_ref fields.
1976         Removed is_stored, locs and next fields.
1977         (memory_accesses): New variable.
1978         (movement_possibility): Do not allow moving statements
1979         that store to memory.
1980         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
1981         New functions.
1982         (determine_max_movement): For statements with memory references,
1983         find the outermost loop in that the reference is independent.
1984         (move_computations_stmt): Mark the virtual operands for renaming.
1985         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
1986         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
1987         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
1988         add_vop_ref_mapping, create_vop_ref_mapping_loop,
1989         create_vop_ref_mapping, analyze_memory_references,
1990         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
1991         get_all_locs_in_loop, ref_always_accessed_p,
1992         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
1993         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
1994         store_motion_loop, store_motion): New functions.
1995         (struct vop_to_refs_elt): New type.
1996         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
1997         memref_hash, memref_eq, hoist_memory_references): Rewritten.
1998         (schedule_sm): Replaced by...
1999         (execute_sm): ... this.
2000         (determine_lsm_ref, hoist_memory_references,
2001         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2002         find_more_ref_vops, free_mem_ref, free_mem_refs,
2003         determine_lsm_loop, determine_lsm): Removed.
2004         (tree_ssa_lim_finalize): Free data structures used by store motion.
2005         (tree_ssa_lim): Call analyze_memory_references.  Use
2006         store_motion instead of determine_lsm.
2007
2008 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2009
2010         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2011         rename tmake_file to m68hc11/t-m68hc11.
2012         (mcore): Set inhibit_libc to true.
2013         * config.host (alpha*-dec-*vms*): Set extra_programs.
2014         (interix3*): Don't use host_xmake_file.
2015         * configure.ac: Let config.gcc override inhibit_libc.
2016         * configure: Regenerate.
2017
2018         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2019         * config/t-openbsd-thread: Remove commented out lines.
2020         
2021         * config/x-interix: Remove.
2022
2023         * config/m68hc11/t-m68hc11-gas: Rename to...
2024         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2025
2026         * config/mcore/t-mcore: Remove T_CFLAGS.
2027         * config/mcore/t-mcore-pe: Likewise.
2028
2029 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2030
2031         * configure.ac: Replace custom __GNU_SOURCE test with
2032         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2033         * aclocal.m4: Regenerate.
2034         * configure: Regenerate.
2035         * config.in: Regenerate.
2036
2037 2008-03-27  Richard Guenther  <rguenther@suse.de>
2038
2039         * fold-const.c (target.h): Include.
2040         (fold_comparison): Fold comparison of addresses of decls
2041         that bind locally or of constants.  Consolidate address folding code.
2042         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2043         results from fold_binary_to_constant.
2044         (compare_values_warnv): Likewise.
2045
2046 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2047
2048         PR middle-end/35429
2049         * fold-const.c (fold_truthop): Check for integeral types when folding
2050         a == 0 && b == 0 and a != 0 || b != 0 .
2051
2052 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2053
2054         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2055
2056 2008-03-26  Andreas Schwab  <schwab@suse.de>
2057
2058         * doc/invoke.texi: Fix use of @item vs. @itemx.
2059
2060 2008-03-26  Tom Tromey  <tromey@redhat.com>
2061
2062         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2063         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2064         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2065         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2066         build/genconstants.o, build/genemit.o, build/genextract.o,
2067         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2068         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2069         options.h.
2070
2071 2008-03-26  Richard Guenther  <rguenther@suse.de>
2072
2073         Revert
2074         2008-03-26  Richard Guenther  <rguenther@suse.de>
2075
2076         * fold-const.c (target.h): Include.
2077         (fold_comparison): Fold comparison of addresses of two decls
2078         that bind locally.  Consolidate address folding code.
2079
2080 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2081
2082         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2083         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
2084         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
2085         dconstsqrt2, dconstthird, dconste and/or dconst10.
2086         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
2087         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
2088         dconstsqrt2, dconste): Delete.
2089         (init_emit_once): Likewise.  Simplify initializing dconstm1.
2090         Constify variable.
2091         * real.c (get_real_const): New.
2092         * real.h (dconst3, dconst10, dconstm2, dconstthird,
2093         dconstsqrt2, dconste): Delete.
2094         (real_value_const, get_real_const): New.
2095
2096 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
2097
2098         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
2099
2100         * config/i386/i386.c (ix86_function_arg_boundary): Check
2101         BIGGEST_ALIGNMENT instead of 128.
2102         (setup_incoming_varargs_64): Likewise.
2103
2104 2008-03-26  Tom Tromey  <tromey@redhat.com>
2105
2106         * Makefile.in (DEPFILES): Add missing '/'.
2107
2108 2008-03-26  Richard Guenther  <rguenther@suse.de>
2109
2110         * fold-const.c (target.h): Include.
2111         (fold_comparison): Fold comparison of addresses of two decls
2112         that bind locally.  Consolidate address folding code.
2113
2114 2008-03-26  Nick Clifton  <nickc@redhat.com>
2115
2116         PR target/31232
2117         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
2118         not allow INT+INT as a legitimate addressing mode.
2119
2120 2008-03-26  Richard Guenther  <rguenther@suse.de>
2121
2122         * tree-flow.h (widen_bitfield): Remove declaration.
2123         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
2124         (widen_bitfield): Remove function.
2125         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
2126         code.
2127
2128 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2129
2130         PR target/31558
2131         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
2132         error_mark_node's.
2133
2134 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2135
2136         PR rtl-optimization/35232
2137         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
2138         (forget_old_reloads_1, forget_marked_reloads): Don't clear
2139         reg_reloaded_call_part_clobbered here.
2140         (reload_regs_reach_end_p): New function.
2141         (reload_reg_rtx_for_input): New variable.
2142         (reload_reg_rtx_for_output): Likewise.
2143         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
2144         when reassigning a pseudo register.  Load reloadreg from 
2145         reload_reg_rtx_for_input, moving the mode and register
2146         calculation to...
2147         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
2148         instead of the original when deciding whether an input reload
2149         would be a no-op or whether an output reload can be deleted.
2150         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
2151         when setting up new_spill_reg_store.  Load it from
2152         reload_reg_rtx_for_output, moving the mode and register
2153         calculation to...
2154         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
2155         instead of the original when deciding whether an output reload
2156         would be a no-op.  Do the same when modifying insn notes.
2157         Use rtx_equal_p instead of == to compare the registers.
2158         (inherit_piecemeal_p): Take a mode and two register numbers
2159         as argument.
2160         (emit_reload_insns): Clear new_spill_reg_store for every hard
2161         register in the reload register.  Remove spill registers
2162         from reg_reloaded_valid before considering whether to record
2163         inheritance information for them.  Use reload_reg_rtx_for_output
2164         instead of reg_rtx when recording output reloads.  Use
2165         reload_reg_rtx_for_input instead of reg_rtx when recording
2166         input reloads.  Set or clear reg_reloaded_call_part_clobbered
2167         at the same time as setting reg_reloaded_valid.
2168         (delete_output_reload): Add a new_reload_reg parameter and use it
2169         instead of rld[j].reg_rtx.
2170         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
2171         calls accordingly.
2172
2173 2008-03-25  Tom Tromey  <tromey@redhat.com>
2174
2175         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
2176         (build/genattr.o): Likewise.
2177         (build/genattrtab.o): Likewise.
2178         (build/gencodes.o): Likewise.
2179         (build/genconfig.o): Likewise.
2180         (build/genconstants.o): Likewise.
2181         (build/genemit.o): Likewise.
2182         (build/genextract.o): Likewise.
2183         (build/genflags.o): Likewise.
2184
2185 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
2186         
2187         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
2188         instead of size_int for integer types.
2189         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
2190         to match type of MINUS_EXPR.
2191         
2192 2008-03-25  Tom Tromey  <tromey@redhat.com>
2193
2194         * configure: Rebuilt.
2195         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
2196         Makefile.
2197
2198 2008-03-25  Tom Tromey  <tromey@redhat.com>
2199
2200         * config/x-solaris (host-solaris.o): Update.
2201         * config/x-linux (host-linux.o): Update.
2202         * config/x-hpux (host-hpux.o): Update.
2203         * config/x-darwin (host-darwin.o): Update.
2204         * config/v850/t-v850e (v850-c.o): Update.
2205         * config/v850/t-v850 (v850-c.o): Update.
2206         * config/t-vxworks (vxworks.o): Update.
2207         * config/t-sol2 (sol2-c.o, sol2.o): Update.
2208         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2209         * config/spu/t-spu-elf (spu-c.o): Update.
2210         (spu.o): Remove.
2211         * config/sh/t-symbian (sh-c.o): Update.
2212         (symbian.o): Update.
2213         * config/sh/t-sh (sh-c.o): Update.
2214         * config/score/t-score-elf (score7.o, score3.o): Update.
2215         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
2216         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
2217         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
2218         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
2219         (rs6000.o): Remove.
2220         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2221         * config/m32c/t-m32c (m32c-pragma.o): Update.
2222         * config/ia64/t-ia64 (ia64-c.o): Update.
2223         * config/i386/x-mingw32 (host-mingw32.o): Update.
2224         * config/i386/x-i386 (driver-i386.o): Update.
2225         * config/i386/x-darwin (host-i386-darwin.o): Update.
2226         * config/i386/x-cygwin (host-cygwin.o): Update.
2227         * config/i386/t-nwld (nwld.o): Update.
2228         * config/i386/t-netware (netware.o): Update.
2229         * config/i386/t-interix (winnt.o): Update.
2230         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
2231         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
2232         msformat-c.o): Update.
2233         * config/bfin/t-bfin-linux (generated_files): Add
2234         linux-sysroot-suffix.h.
2235         * config/arm/t-wince-pe (pe.o): Update.
2236         * config/arm/t-strongarm-pe (pe.o): Update.
2237         * config/arm/t-pe (pe.o): Update.
2238         * config/arm/t-arm (arm-c.o): Update.
2239         * doc/install.texi (Prerequisites): Require make 3.80.
2240         * Makefile.in: Remove .o targets.
2241         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
2242         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
2243         (simple_generated_h, simple_generated_c): Move earlier.
2244         (generated_files): New variable.
2245         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
2246         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
2247         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
2248         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
2249         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
2250         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
2251         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
2252         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
2253         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
2254         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
2255         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
2256         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
2257         (.c.o): Remove.
2258         (COMPILE.base, COMPILE): New variables.
2259         (%.o): New pattern rule.
2260         (ALL_HOST_OBJS): New variable.
2261         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
2262         (dummy-checksum.o, cc1-checksum.o): Remove.
2263         (DRIVER_SHLIB): New variable.
2264         (DRIVER_DEFINES): Use it.
2265         (gencondmd.c): Move out of build/.
2266         (s-conditions): Update.
2267         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
2268         (ALL_BUILD_OBJS): Likewise.
2269         (build/%.o): Use BUILDCOMPILE.
2270         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
2271         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
2272         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
2273         build/gencheck.o, build/gencodes.o, build/genconditions.o,
2274         build/genconfig.o, build/genconstants.o, build/genemit.o,
2275         build/genextract.o, build/genflags.o, build/genmddeps.o,
2276         build/genopinit.o, build/genoutput.o, build/genpeep.o,
2277         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
2278         build/gen-protos.o, build/scan.o, build/fix-header.o,
2279         build/scan-decls.o): Simplify.
2280         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
2281         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
2282         prefix.o, toplev.o): Reduce to variable setting.
2283         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
2284         ($(out_object_file), gcc-options.o): New targets.
2285         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
2286         * configure: Rebuilt.
2287         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
2288         * doc/sourcebuild.texi (Front End Directory): Document new variable.
2289
2290 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2291
2292         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
2293         complain when we hit an error, return ERROR_MARK_NODE.
2294
2295 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2296
2297         * config/sh/constraints.md (Pso, Psz): New constraints.
2298         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
2299         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
2300
2301 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2302
2303         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
2304         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
2305
2306 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2307
2308         * config/sh/sh.md (prefetch): Add condition for SH2A target.
2309         (prefetch_sh2a): New.   
2310
2311 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2312             Naveen.H.S  <naveen.hs@kpitcummins.com>
2313
2314         * config/sh/constraints.md (I28): New constraint.
2315         * config/sh/sh.c (broken_move): Add support for movi20s.
2316         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
2317
2318 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
2319             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2320             Naveen.H.S  <naveen.hs@kpitcummins.com>
2321
2322         * config/sh/sh.c (SH_ATTRIBUTES): Define.
2323         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
2324         (print_operand): Handle resbank in %@ operand code.
2325         (sh_encode_section_info): New.
2326         (push_regs): Add conditions for resbank.
2327         (sh_expand_epilogue): Likewise.
2328         (sh_insert_attributes): Likewise.
2329         (sh_attribute_table): Likewise.
2330         (sh_handle_resbank_handler_attribute): New.
2331         (sh2a_handle_function_vector_handler_attribute): New.
2332         (sh2a_is_function_vector_call): New.
2333         (sh2a_get_function_vector_number): New.
2334         (sh2a_function_vector_p): New.
2335         (sh_cfun_resbank_handler_p): New.
2336         * config/sh/sh.md (calli): Emit jsr/n if possible.
2337         (calli_tbr_rel): New.
2338         (calli_pcrel): Emit jsr/n if possible.
2339         (return_i): Emit rts/n if possible.
2340         (call_valuei_tbr_rel): New.
2341         (call_valuei_pcrel): Add condition for SH2A target.
2342         (call_value): Likewise.
2343         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
2344         (sh2a_get_function_vector_number): Likewise.
2345         (sh2a_is_function_vector_call): Likewise.
2346         * doc/extend.texi: Document TBR relative addressing of SH2A.
2347         (resbank): Add description for SH2A.
2348
2349 2008-03-24  Richard Guenther  <rguenther@suse.de>
2350
2351         PR c/22371
2352         * gimplify.c (gimplify_modify_expr): For frontend type-correct
2353         pointer assignments change conversions according to middle-end rules.
2354         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
2355         * configure.ac: Include type checking in yes.
2356         * configure: Regenerate.
2357
2358 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2359
2360         * diagnostic.c (diagnostic_count_diagnostic): Delete.
2361         (diagnostic_report_diagnostic): Update. Handle ICEs here.
2362         
2363 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2364
2365         * gthr-vxworks.h (UNUSED): Define.
2366
2367 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
2368
2369         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2370
2371 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
2372
2373         * doc/extend.texi (Function Attributes): Add missing comma in the
2374         example of the "alloc_size" attribute.
2375         
2376 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
2377
2378         Revert:
2379         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2380
2381         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2382         32bit host.
2383
2384         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2385
2386         PR target/35496
2387         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2388         of the underlying type of a MS bitfield layout to the natural
2389         alignment of the type.
2390
2391         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2392
2393         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2394         to their natural alignment to avoid store forwarding stalls.
2395
2396 2008-03-22  Richard Guenther  <rguenther@suse.de>
2397
2398         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
2399         For PHI nodes verify the address is invariant.
2400         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
2401         (get_symbol_constant_value): Use is_gimple_min_invariant.
2402         (maybe_fold_stmt_indirect): Likewise.
2403
2404 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
2405
2406         PR rtl-optimization/33927
2407         * Makefile.in (dse.o): Depend on $(TM_P_H).
2408         * expr.h (extract_low_bits): Declare.
2409         * expmed.c (extract_low_bits): New function.
2410         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
2411         * dse.c: Include tm_p.h.
2412         (find_shift_sequence): Remove the read_reg argument and return the
2413         read value.  Emit the instructions instead of returning them.
2414         Iterate on new_mode rather than calculating it each time.
2415         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
2416         source to NEW_MODE and extract_low_bits to convert the shifted
2417         value to READ_MODE.
2418         (replace_read): Allow the load and store to have different mode
2419         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
2420         or extraction instructions before trying the replacement.  Update
2421         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
2422
2423 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2424
2425         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2426         to their natural alignment to avoid store forwarding stalls.
2427
2428 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2429
2430         PR target/27946
2431         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
2432         encouraging but not allowing gprs for input;
2433         change the input constraint to !f#r.
2434         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
2435         gprs for output;
2436         change the output constraint to !f#r.
2437
2438 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
2439
2440         PR target/13958
2441         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
2442         corresponding post-reload splitters.
2443         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
2444         when x87 FP math is selected.
2445         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
2446         New function prototype.
2447         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
2448         unreachable function to ease macroization of insn patterns.
2449
2450 2008-03-21  Martin Jambor  <mjambor@suse.cz>
2451
2452         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
2453         reference dumps if ddr is NULL or dependence is unknown.
2454
2455 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2456
2457         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
2458         unsigned extension into account.
2459         (ATOMIC_COMPARE_AND_SWAP): Likewise.
2460         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
2461         Do computations on a scratch register.
2462
2463 2008-03-21  Richard Guenther  <rguenther@suse.de>
2464
2465         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2466         Use is_gimple_min_invariant instead of TREE_INVARIANT.
2467         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2468         * tree-ssa-dom.c (record_equality): Likewise.
2469         * tree-inline.c (copy_body_r): Likewise.
2470         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
2471         TREE_INVARIANT.
2472
2473 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2474
2475         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
2476         as 'delete_unused' argument.
2477
2478 2008-03-20  Richard Guenther  <rguenther@suse.de>
2479
2480         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
2481         special casing of constant qualifiers.
2482         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
2483         care about them in general.
2484         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
2485         regardless of their type.
2486         (fold_stmt_r): Forcefully fold *& if we end up with that.
2487
2488 2008-03-20  Paul Brook  <paul@codesourcery.com>
2489
2490         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
2491         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
2492         linker flags.
2493         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
2494         definition.
2495         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
2496         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
2497
2498 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
2499
2500         * common.opt (Wmudflap): New option.
2501         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
2502         (mx_register_decls): Likewise.
2503         (mudflap_finish_file): Likewise.
2504         * doc/invoke.texi: Document -Wno-mudflap.
2505
2506 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
2507
2508         * c-format.c (replace_format_name_to_system_name): New.
2509         (cmp_attribs): New.
2510         (convert_format_name_to_system_name): New.
2511         (decode_format_attr): Add use of convert_format_name_to_system_name.
2512         (format_types_orig): Add gnu_ prefix to names.
2513         (check_format_info_main): Special treating of \0 escaped names for
2514         supporting multi-character format specifiers as I32, I64.
2515         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
2516         (gnu_target_overrides_format_attributes): New.
2517         * c-format.h: Add structure target_ovr_attr to hold
2518         system specific formatter names.
2519         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
2520         msformat-c.o file to c_target_objs and cxx_target_objs.
2521         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2522         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
2523         (TARGET_N_FORMAT_TYPES): New.
2524         * config/i386/msformat-c.c: New.
2525         * config/i386/t-cygming: Add build rule for msformat-c.o.
2526         * doc/extend.texi: Add new format names gnu_* and ms_* and
2527         further details.
2528         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2529
2530 2008-03-20  Ira Rosen  <irar@il.ibm.com>
2531
2532         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
2533         optimizations turned on under -O3.
2534         (ftree-vectorize): Add that the flag is turned on with -O3.
2535
2536 2008-03-20  Ben Elliston  <bje@au.ibm.com>
2537
2538         * regmove.c (try_auto_increment): Fix spelling error in comment.
2539         * final.c (final_scan_insn): Likewise.
2540
2541 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
2542
2543         PR target/14552
2544         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
2545         allocator preferences for "y" and "r" class registers.
2546         ("*mov<mode>_internal"): Ditto.
2547         ("*movv2sf_internal_rex64"): Ditto.
2548         ("*movv2sf_internal"): Ditto.
2549
2550 2008-03-19  Michael Matz  <matz@suse.de>
2551
2552         PR middle-end/35616
2553         * calls.c (expand_call): Check overlap of arguments with call
2554         address for sibcalls.
2555
2556 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2557
2558         PR target/35496
2559         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2560         of the underlying type of a MS bitfield layout to the natural
2561         alignment of the type.
2562
2563 2008-03-19  Jan Hubicka  <jh@suse.cz>
2564
2565         PR other/35094
2566         * toplev.c (decode_d_option): Handle all CPP flags.
2567         * tree-vrp.c: Update tree_pass descriptors.
2568         * regrename.c: Update tree_pass descriptors.
2569         * fwprop.c: Update tree_pass descriptors.
2570         * doc/invoke.texi: Remove documentation of dropped -d? flags.
2571         * tree-into-ssa.c: Update tree_pass descriptors.
2572         * tree-dump.c: Update tree_pass descriptors.
2573         * tree-complex.c: Update tree_pass descriptors.
2574         * tree-dump.h: Update tree_pass descriptors.
2575         * see.c: Update tree_pass descriptors.
2576         * cgraphbuild.c: Update tree_pass descriptors.
2577         * tracer.c: Update tree_pass descriptors.
2578         * tree-loop-distribution.c: Update tree_pass descriptors.
2579         * cgraph.c: Update tree_pass descriptors.
2580         * postreload-gcse.c: Update tree_pass descriptors.
2581         * postreload.c: Update tree_pass descriptors.
2582         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
2583         * tree-tailcall.c: Update tree_pass descriptors.
2584         * tree-pass.h (tree_opt_pass): Rename to ...
2585         (opt_pass) ... this one; add "type" field and remove letter field.
2586         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
2587         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
2588         all_lowering_passes): Update declaration.
2589         * ipa-cp.c: Update tree_pass descriptors.
2590         * final.c: Update tree_pass descriptors.
2591         * omp-low.c: Update tree_pass descriptors.
2592         * tree-ssa-dse.c: Update tree_pass descriptors.
2593         * ipa-reference.c: Update tree_pass descriptors.
2594         * tree-ssa-uncprop.c: Update tree_pass descriptors.
2595         * auto-inc-dec.c: Update tree_pass descriptors.
2596         * reorg.c: Update tree_pass descriptors.
2597         * cgraphunit.c: Update tree_pass descriptors.
2598         * tree-ssa-copyrename.c: Update tree_pass descriptors.
2599         * tree-ssa-ccp.c: Update tree_pass descriptors.
2600         * df-core.c: Update tree_pass descriptors.
2601         * mode-switching.c: Update tree_pass descriptors.
2602         * tree-nomudflap.c: Update tree_pass descriptors.
2603         * modulo-sched.c: Update tree_pass descriptors.
2604         * ipa-pure-const.c: Update tree_pass descriptors.
2605         * cse.c: Update tree_pass descriptors.
2606         * web.c: Update tree_pass descriptors.
2607         * tree-stdarg.c: Update tree_pass descriptors.
2608         * tree-ssa-math-opts.c: Update tree_pass descriptors.
2609         * tree-ssa-dom.c: Update tree_pass descriptors.
2610         * tree-nrv.c: Update tree_pass descriptors.
2611         * tree-ssa-alias.c: Update tree_pass descriptors.
2612         * loop-init.c: Update tree_pass descriptors.
2613         * gimple-low.c: Update tree_pass descriptors.
2614         * ipa-inline.c: Update tree_pass descriptors.
2615         * tree-ssa-sink.c: Update tree_pass descriptors.
2616         * global.c: Update tree_pass descriptors.
2617         * ifcvt.c: Update tree_pass descriptors.
2618         * jump.c: Update tree_pass descriptors.
2619         * predict.c: Update tree_pass descriptors.
2620         * tree-ssa-loop.c: Update tree_pass descriptors.
2621         * recog.c: Update tree_pass descriptors.
2622         * dse.c: Update tree_pass descriptors.
2623         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
2624         * tree-eh.c: Update tree_pass descriptors.
2625         * regmove.c: Update tree_pass descriptors.
2626         * local-alloc.c
2627         * function.c: Update tree_pass descriptors.
2628         * tree-vectorizer.c: Update tree_pass descriptors.
2629         * gcse.c: Update tree_pass descriptors.
2630         * ipa-type-escape.c: Update tree_pass descriptors.
2631         * tree-if-conv.c: Update tree_pass descriptors.
2632         * init-regs.c: Update tree_pass descriptors.
2633         * ipa.c: Update tree_pass descriptors.
2634         * tree-ssa-phiopt.c: Update tree_pass descriptors.
2635         * rtl-factoring.c: Update tree_pass descriptors.
2636         * lower-subreg.c: Update tree_pass descriptors.
2637         * bt-load.c: Update tree_pass descriptors.
2638         * tree-dfa.c: Update tree_pass descriptors.
2639         * except.c: Update tree_pass descriptors.
2640         * emit-rtl.c: Update tree_pass descriptors.
2641         * cfgexpand.c: Update tree_pass descriptors.
2642         * tree-cfgcleanup.c: Update tree_pass descriptors.
2643         * cfgcleanup.c: Update tree_pass descriptors.
2644         * tree-ssa-pre.c: Update tree_pass descriptors.
2645         * tree-sra.c: Update tree_pass descriptors.
2646         * tree-mudflap.c: Update tree_pass descriptors.
2647         * tree-ssa-copy.c: Update tree_pass descriptors.
2648         * cfglayout.c: Update tree_pass descriptors.
2649         * tree-ssa-forwprop.c: Update tree_pass descriptors.
2650         * tree-ssa-dce.c: Update tree_pass descriptors.
2651         * tree-ssa.c: Update tree_pass descriptors.
2652         * regclass.c: Update tree_pass descriptors.
2653         * integrate.c: Update tree_pass descriptors.
2654         * tree-optimize.c: Update tree_pass descriptors.
2655         * tree-ssa-phiprop.c: Update tree_pass descriptors.
2656         * tree-object-size.c: Update tree_pass descriptors.
2657         * combine.c: Update tree_pass descriptors.
2658         * tree-outof-ssa.c: Update tree_pass descriptors.
2659         * bb-reorder.c: Update tree_pass descriptors.
2660         * stack-ptr-mod.c: Update tree_pass descriptors.
2661         * var-tracking.c: Update tree_pass descriptors.
2662         * tree-profile.c: Update tree_pass descriptors.
2663         * tree-vect-generic.c: Update tree_pass descriptors.
2664         * reg-stack.c: Update tree_pass descriptors.
2665         * sched-rgn.c: Update tree_pass descriptors.
2666         * tree-ssa-structalias.c: Update tree_pass descriptors.
2667         * tree-cfg.c: Update tree_pass descriptors.
2668         * passes.c (current_pass): Update declaration.
2669         (finish_optimization_passes): Update.
2670         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
2671         (register_one_dump_file, register_dump_files_1, next_pass_1):
2672         Update arguments.
2673         (init_optimization_passes): Update handling of new types.
2674         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
2675         * ipa-struct-reorg.c: Update tree_pass descriptors.
2676         * tree-ssa-reassoc.c: Update tree_pass descriptors.
2677         * combine-stack-adj.c: Update tree_pass descriptors.
2678         * cfgrtl.c: Update tree_pass descriptors.
2679         * dce.c: Update tree_pass descriptors.
2680         * tree-ssanames.c: Update tree_pass descriptors.
2681
2682 2008-03-19  Richard Guenther  <rguenther@suse.de>
2683
2684         PR middle-end/35609
2685         * tree-ssa.c (walk_data): New structure.
2686         (warn_uninitialized_var): If not always_executed warn with "maybe"
2687         instead of "is".
2688         (execute_early_warn_uninitialized): Compute post-dominators.
2689         Initialize always_executed before processing each basic block.
2690
2691 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
2692
2693         PR target/35504
2694         * config/i386/i386.c (x86_this_parameter): Calculate correct location
2695         of "this" pointer when "regparm = N" or "fastcall" is in effect.
2696
2697 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2698
2699         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
2700
2701 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
2702
2703         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
2704         is true.
2705         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
2706         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
2707         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
2708         target after ignore has been set, and move there also the commputation
2709         of subtarget and original_target.
2710         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2711         (LANG_HOOKS_INITIALIZER): Remove it.
2712         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
2713
2714 2008-03-18  Richard Guenther  <rguenther@suse.de>
2715
2716         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
2717         found an expression with constants, note that in the VN for the lhs.
2718         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
2719         fold them to constants if possible.  Run cleanup_cfg if done so.
2720         (execute_pre): Return todo.
2721         (do_pre): Likewise.
2722         (execute_fre): Likewise.
2723         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
2724         of constants.
2725         (get_prop_source_stmt): Look through pointer conversions.
2726
2727 2008-03-18  Jan Hubicka  <jh@suse.cz>
2728
2729         * tree-pretty-print.c: Include predict.h.
2730         (dump_generic_node): Dump predictor.
2731         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
2732         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
2733         * gimple-low.c (lower_stmt): Likewise.
2734         * expr.c (expand_expr_real): Likewise.
2735         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
2736         them.
2737         (build_predict_expr, build_predict_expr): New.
2738         * predict.h (predictor_name, build_predict_expr): Update.
2739         * c-typeck.c (c_finish_bc_stmt): Add prediction.
2740         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
2741         * predict.def (PRED_CONTINUE): Update hitrate.
2742         * tree.def (PREDICT_EXPR): Define.
2743         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
2744         do not handle BIND_EXPR.
2745         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
2746         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
2747         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
2748         operands.
2749
2750 2008-03-18  Michael Matz  <matz@suse.de>
2751
2752         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
2753
2754 2008-03-18  Richard Guenther  <rguenther@suse.de>
2755
2756         * tree-gimple.h (is_gimple_invariant_address): Declare.
2757         (is_gimple_constant): Likewise.
2758         * tree-gimple.c (is_gimple_constant): New function.
2759         (is_gimple_invariant_address): Likewise.
2760         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
2761         and is_gimple_invariant_address.
2762         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
2763         previous change.
2764         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
2765         an addressable base.
2766
2767 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2768
2769         PR middle-end/35611
2770         * gimplify.c (gimplify_expr): Gimplify second operand of
2771         OMP_ATOMIC_LOAD.
2772
2773 2008-03-17  Richard Guenther  <rguenther@suse.de>
2774
2775         PR tree-optimization/19637
2776         * fold-const.c (fold_unary): Remove restrictions of removing
2777         intermediate pointer-conversions (P2)(P1)P0.
2778         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
2779         conversion to void pointer.
2780         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
2781
2782 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
2783
2784         PR debug/31510
2785         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
2786         emulated thread local variables.
2787
2788 2008-03-16  Richard Guenther  <rguenther@suse.de>
2789
2790         PR middle-end/35607
2791         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2792         expand TREE_INVARIANT operations that are not gimple invariant.
2793
2794 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
2795
2796         * doc/extend.texi (Alignment): Say that the ABI controls
2797         the __alignof__ for non-strict-alignment targets rather
2798         than being a recommendation.
2799
2800 2008-03-15  Paul Brook  <paul@codesourcery.com>
2801
2802         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
2803         annotations.
2804         (arm_output_fn_unwind): Mark functions that can not be unwound.
2805
2806 2008-03-15  Paul Brook  <paul@codesourcery.com>
2807
2808         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
2809         extension instructions.
2810
2811 2008-03-15  Richard Guenther  <rguenther@suse.de>
2812
2813         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
2814         and fold constant aggregate refs.
2815         (fold_const_aggregate_ref): Handle string constants
2816         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
2817         (evaluate_stmt): Simplify now that ccp_fold folds constant
2818         aggregate refs.
2819
2820 2008-03-15  Paul Brook  <paul@codesourcery.com>
2821
2822         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
2823         (extzv): Use gen_extzv_t2.
2824         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
2825
2826 2008-03-15  Richard Guenther  <rguenther@suse.de>
2827
2828         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
2829         (fold_const_aggregate_ref): Likewise.
2830         (get_value): Return NULL if we don't have any values.
2831         (ccp_finalize): Set const_val to NULL after freeing it.
2832         * tree-flow.h (get_symbol_constant_value): Declare.
2833         (fold_const_aggregate_ref): Likewise.
2834         * tree-ssa-sccvn.c (try_to_simplify): Use them.
2835
2836 2008-03-15  Richard Guenther  <rguenther@suse.de>
2837
2838         PR middle-end/35593
2839         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
2840         to not produce negative array indices if not allowed.  Add
2841         parameter to indicate that.
2842         (maybe_fold_offset_to_component_ref): Allow negative array
2843         indices only for the first member of a structure.
2844         (maybe_fold_offset_to_reference): Allow negative array indices.
2845         (maybe_fold_stmt_addition): Likewise.
2846
2847 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
2848             Anatoly Sokolov <aesok@post.ru>
2849
2850         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
2851         (avr_arch): Add ARCH_AVR6.
2852         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
2853         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
2854         instead of fixed value 2.
2855         (print_operand_address): Use gs() asm specifier instead of pm().
2856         (avr_assemble_integer): (Ditto.).
2857         (avr_output_addr_vec_elt): (Ditto.).
2858         (print_operand): Handle "!" code.
2859         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
2860         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
2861         (AVR_HAVE_EIJMP_EICALL): Define.
2862         (AVR_3_BYTE_PC): Redefine.
2863         (AVR_2_BYTE_PC): (Ditto.).
2864         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
2865         (LINK_SPEC): Add atmega2560 and atmega2561.
2866         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
2867         (crtm2561.o).
2868         * config/avr/avr.md (call_insn): Use eicall instead of icall 
2869         for 3 byte PC devices.
2870         (call_value_insn): (Ditto.).
2871         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
2872         (indirect_jump): Use only for for 2 byte PC devices.
2873         (*tablejump): (Ditto.).
2874         (*indirect_jump_avr6): Add insn.
2875         (*tablejump_rjmp): Don't use for 3 byte PC devices.
2876         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
2877         instead of ijmp for 3 byte PC devices.
2878         (__tablejump2__): (Ditto.).
2879         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
2880         (MULITLIB_DIRNAMES): (Ditto.). 
2881         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
2882
2883 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
2884
2885         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
2886         "sse2_umulsidi3".  Use V1DI mode for operand 0.
2887         ("mmx_psadbw"): Use V1DI mode for operand 0.
2888         * config/i386/i386-modes.def (V1SI): New vector mode.
2889         * config/i386/i386.c (struct builtin_description)
2890         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
2891         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
2892         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
2893         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
2894         v1di_ftype_v8qi_v8qi type.
2895         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
2896
2897         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
2898         __builtin_ia32_pmuludq]: Fix the mode of return value.
2899
2900 2008-03-15  Richard Guenther  <rguenther@suse.de>
2901
2902         PR middle-end/35595
2903         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
2904         being a PHI_NODE.
2905
2906 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
2907         
2908         * doc/invoke.texi (Option Summary, Xtensa Options): Document
2909         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
2910         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
2911         unless TARGET_SERIALIZE_VOLATILE is enabled.
2912         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
2913         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
2914         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
2915
2916 2008-03-14  Richard Guenther  <rguenther@suse.de>
2917
2918         PR tree-optimization/34172
2919         * tree-flow.h (refs_may_alias_p): Declare.
2920         (get_single_def_stmt): Likewise.
2921         (get_single_def_stmt_from_phi): Likewise.
2922         (get_single_def_stmt_with_phi): Likewise.
2923         * tree-dfa.c (refs_may_alias_p): New function.
2924         (get_single_def_stmt): Likewise.
2925         (get_single_def_stmt_from_phi): Likewise.
2926         (get_single_def_stmt_with_phi): Likewise.
2927         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
2928         (vn_reference_lookup_1): New helper function.
2929         (vn_reference_lookup): Walk the virtual use-def chain to
2930         continue searching for a match if the def does not alias the
2931         reference we are looking for.
2932
2933 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
2934
2935         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
2936         archive and Perzl.  Update The Written Word listing.
2937
2938 2008-03-14  Richard Guenther  <rguenther@suse.de>
2939
2940         PR tree-optimization/34043
2941         PR tree-optimization/33989
2942         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
2943         when doing FRE.
2944         (bitmap_find_leader): Use extra argument to verify dominance
2945         relationship inside a basic-block.
2946         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
2947         (find_leader_in_sets): Adjust.
2948         (create_component_ref_by_pieces): Take extra argument for
2949         dominance check, handle lookup failures.
2950         (find_or_generate_expression): Likewise.
2951         (create_expression_by_pieces): Likewise.
2952         (insert_into_preds_of_block): Adjust.
2953         (create_value_expr_from): If asked for, verify all operands
2954         are in the blocks AVAIL_OUT set.
2955         (make_values_for_stmt): Check for SSA_NAMEs that are life
2956         over an abnormal edge.
2957         (compute_avail): Remove such check.
2958         (do_SCCVN_insertion): New function.
2959         (eliminate): If we do not find a leader suitable for replacement
2960         insert a replacement expression from SCCVN if available.
2961         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
2962         (struct vn_ssa_aux): Add needs_insertion flag.
2963         * tree-ssa-sccvn.c (may_insert): New global flag.
2964         (copy_reference_ops_from_ref): Value-number union member access
2965         based on its size, not type and member if insertion is allowed.
2966         (visit_reference_op_load): For a weak match from union type
2967         punning lookup a view-converted value and insert a SSA_NAME
2968         for that value if that is not found.
2969         (visit_use): Make dumps shorter.  Do not disallow value numbering
2970         SSA_NAMEs that are life over an abnormal edge to constants.
2971         (free_scc_vn): Release inserted SSA_NAMEs.
2972         (run_scc_vn): New flag to specify whether insertion is allowed.
2973         Process SSA_NAMEs in forward order.
2974         * tree-ssa-loop-im.c (for_each_index): Handle invariant
2975         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
2976         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
2977         pointer type to/from integral types that do not change the
2978         precision to regular conversions.
2979
2980 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
2981
2982         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
2983         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
2984         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
2985         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
2986         input arguments and the mode of return value.  Built-in functions
2987         that operate on whole 64-bit MMX register now use V1DI mode.
2988
2989 2008-03-13  Alon Dayan  <alond@il.ibm.com>
2990             Olga Golovanevsky  <olga@il.ibm.com>
2991
2992         PR tree-optimization/35041
2993         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
2994         to locate the right position in a statement.
2995
2996 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
2997
2998         PR target/34000
2999         PR target/35553
3000         * config/i386/xmmintrin.h:  Change all static inline functions to
3001         extern inline and add __gnu_inline__ attribute.
3002         * config/i386/bmintrin.h: Ditto.
3003         * config/i386/smmintrin.h: Ditto.
3004         * config/i386/tmmintrin.h: Ditto.
3005         * config/i386/mmintrin-common.h: Ditto.
3006         * config/i386/ammintrin.h: Ditto.
3007         * config/i386/emmintrin.h: Ditto.
3008         * config/i386/pmmintrin.h: Ditto.
3009         * config/i386/mmintrin.h: Ditto.
3010         * config/i386/mm3dnow.h: Ditto.
3011
3012 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3013
3014         PR middle-end/35185
3015         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3016         (lower_omp_2): New function.
3017         (lower_omp_1, lower_omp): Rewritten.
3018
3019 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3020
3021         PR 35054
3022         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3023         with the phrase "Microsoft Windows compilers".
3024         (Push/Pop Macro Pragmas): New subsection. Document
3025         #pragma push_macro and pragma pop_macro.
3026
3027 2008-03-12  Paul Brook  <paul@codesourcery.com>
3028
3029         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3030
3031 2008-03-12  Paul Brook  <paul@codesourcery.com>
3032
3033         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3034         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3035         (thumb2_addsi_shortim): Rename ...
3036         (thumb2_addsi_short): ... to this.  Allow register operands.
3037         (thumb2_subsi_short): New pattern.
3038         (thumb2_one_cmplsi2_short,
3039         thumb2_negsi2_short): New patterns and peepholes.
3040
3041 2008-03-12  Paul Brook  <paul@codesourcery.com>
3042
3043         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3044
3045 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3046
3047         * config/i386/i386.md (int_cond): New code iterator.
3048         (fp_cond): Ditto.
3049         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3050         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3051         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3052         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3053         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3054         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3055         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3056         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3057
3058 2008-03-12  Paul Brook  <paul@codesourcery.com>
3059
3060         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3061         instead of {arm,thumb}_compute_save_reg_mask.
3062         (output_return_instruction): Ditto.
3063         (thumb_unexpanded_epilogue): Ditto.
3064         (thumb1_expand_prologue): Ditto.
3065         (thumb1_output_function_prologue): Ditto.
3066         (arm_set_return_address): Ditto.
3067         (thumb_set_return_address): Ditto.
3068         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3069         regs to achieve stack alignment.
3070         (thumb1_compute_save_reg_mask): Fix compiler warning.
3071         (arm_output_epilogue): Use offsets->saved_regs_mask.
3072         Adjust stack pointer by poping call clobered registers.
3073         (arm_expand_prologue): Use offsets->saved_regs_mask.
3074         Adjust stack pointer by pushing extra registers.
3075         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3076
3077 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3078
3079         PR tree-opt/35422
3080         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3081         conversion to the operands of a multiplication.
3082
3083 2008-03-12  Richard Guenther  <rguenther@suse.de>
3084
3085         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
3086         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
3087         * timevar.def (TV_TREE_PHIPROP): Add.
3088         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
3089         pass description.  Use TV_TREE_PHIPROP.
3090         * tree-ssa-forwprop.c: Remove phiprop code.
3091
3092 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3093
3094         PR middle-end/35549
3095         * omp-low.c (maybe_lookup_decl): Constify first argument.
3096         (use_pointer_for_field): Change last argument from bool to
3097         omp_context *.  Disallow shared copy-in/out in nested
3098         parallel if decl is shared in outer parallel too.
3099         (build_outer_var_ref, scan_sharing_clauses,
3100         lower_rec_input_clauses, lower_copyprivate_clauses,
3101         lower_send_clauses, lower_send_shared_vars): Adjust callers.
3102
3103 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
3104             Ira Rosen  <irar@il.ibm.com>
3105
3106         * tree-vectorizer.c (free_stmt_vec_info): New function.
3107         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
3108         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
3109         * tree-vectorizer.h (free_stmt_vec_info): Declare.
3110         * tree-vect-transform.c (vectorizable_conversion): Free
3111         vec_oprnds0 if it was allocated.
3112         (vect_permute_store_chain): Remove unused VECs.
3113         (vectorizable_store): Free VECs that are allocated in the..
3114         function.
3115         (vect_transform_strided_load, vectorizable_load): Likewise.
3116         (vect_remove_stores): Simplify the code.
3117         (vect_transform_loop): Move code to vect_remove_stores().
3118         Call vect_remove_stores() and free_stmt_vec_info().
3119
3120 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3121
3122         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
3123         TARGET_HPUX.  Revise comment.
3124         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
3125         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
3126         Use sr4 variant of `be' instruction when not generating PIC code.
3127         (attr_length_call): Adjust for above change.
3128
3129 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3130
3131         * ipa-reference.c (static_execute): Remove module_statics_const and
3132         associated setting code.
3133
3134 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3135
3136         PR target/35540
3137         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
3138         predicate for operand 1.
3139         (paritysi2_cmp): Use register_operand predicate for operand 2.
3140         Use earlyclobber modifier for operand 1.  Remove support for
3141         memory operands.
3142         (paritydi2_cmp): Use register_operand predicate for operand 3.
3143         Use earlyclobber modifier for operand 1.  Remove support for
3144         memory operands.
3145
3146 2008-03-11  Paul Brook  <paul@codesourcery.com>
3147             Vladimir Prus  <vladimir@codesourcery.com>
3148
3149         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
3150         (arm_compute_save_reg0_reg12_mask): Always
3151         check if register 11 must be saved.  Always safe hard frame pointer
3152         when frame_pointer_needeed.
3153         (arm_compute_save_reg_mask): Save IP and PC
3154         only with apcs frames.
3155         (arm_output_epilogue): Adjust Thumb2 codepath to
3156         be also invoked and work for ARM non-apcs frames.
3157         (arm_expand_prologue): Don't bother saving IP
3158         for non-apcs frame, since it's not clobbered by
3159         prologue code.  Implement non-apcs frame
3160         layout.
3161
3162 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3163
3164         PR rtl-optimization/35281
3165         * expr.c (convert_move): Use a new pseudo for the intermediate
3166         from_mode->word_mode result.
3167
3168 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3169
3170         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
3171         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
3172         * toplev.c (compile_file): Don't call it.
3173
3174 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3175
3176         PR middle-end/35526
3177         * expr.c (store_expr): Call emit_block_move if the mode
3178         of "temp" RTX is BLKmode.
3179
3180 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3181             Richard Guenther  <rguenther@suse.de>
3182
3183         PR tree-optimization/31358
3184         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
3185         the step with a NULL_TREE.
3186         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
3187         to sizetype if type is a pointer type.
3188         (add_candidate_1): Don't convert the base and step to
3189         the generic type if the orginal type is a pointer type.
3190         (add_iv_value_candidates): Use sizetype for the step
3191         if type is a pointer type.
3192         (cand_value_at): Likewise.
3193         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3194         for pointer types.
3195         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
3196         Don't convert the tem affine to the type.
3197         (add_elt_to_tree): Use sizetype for the step if a pointer.
3198         Use POINTER_PLUS_EXPR for pointers.
3199         (aff_combination_to_tree): Use sizetype for the step if a
3200         pointer.
3201
3202 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
3203
3204         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
3205         Remove commutativity hint.
3206
3207 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
3208
3209         PR c/35438
3210         PR c/35439
3211         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
3212         errorneous type.  Check that v is a VAR_DECL.
3213
3214         PR middle-end/35099
3215         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
3216
3217 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
3218
3219         PR tree-optimization/35494
3220         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
3221         may be overriden at link and run time.
3222
3223 2008-03-10  Richard Guenther  <rguenther@suse.de>
3224
3225         PR tree-optimization/34677
3226         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
3227         (poolify_tree): Likewise.
3228         (modify_expr_template): Likewise.
3229         (poolify_modify_stmt): Likewise.
3230         (insert_fake_stores): Handle all component-ref style stores
3231         in addition to INDIRECT_REF.  Also handle complex types.
3232         Do not poolify the inserted load.
3233         (realify_fake_stores): Do not rebuild the tree but only
3234         make it a SSA_NAME copy.
3235         (init_pre): Remove initialzation of modify_expr_template.
3236         Do not allocate modify_expr_node_pool.
3237         (fini_pre): Do not free modify_expr_node_pool.
3238
3239 2008-03-10  Paul Brook  <paul@codesourcery.com>
3240
3241         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
3242         to avoid conflicts.
3243
3244 2008-03-10  Paul Brook  <paul@codesourcery.com>
3245             Mark Shinwell  <shinwell@codesourcery.com>
3246
3247         * config/arm/cortex-r4.md: New.
3248         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
3249         insn attributes.
3250         * config/arm/arm.md: Include cortex-r4.md.
3251         (insn): Add smmls, sdiv and udiv values.
3252         (generic_sched): Don't use generic scheduling for Cortex-R4.
3253         (arm_issue_rate): New function.
3254         (TARGET_SCHED_ISSUE_RATE): Define.
3255
3256 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
3257
3258         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
3259
3260 2008-03-10  Richard Guenther  <rguenther@suse.de>
3261
3262         * tree-ssa-pre.c (get_sccvn_value): Simplify.
3263         (compute_avail): Do not add stmt uses to AVAIL_OUT.
3264
3265 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
3266
3267         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
3268         Set default to true.
3269
3270 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3271
3272         * c.opt (Wsynth): Deprecate.
3273         * doc/invoke.texi (Option Summary, Warning Options): Document
3274         -Wno-format-contains-nul.
3275
3276 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
3277
3278         PR target/35496
3279         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
3280         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
3281
3282 2008-03-09  Ira Rosen  <irar@il.ibm.com>
3283
3284         * config/rs6000/rs6000.c (builtin_description): Rename vector
3285         left shift operations.
3286         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
3287         (altivec_vsl<VI_char>): Rename to ...
3288         (ashl<mode>3): ... new name.
3289         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
3290         gen_ashlv4si3.
3291         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
3292
3293 2008-03-08  Richard Guenther  <rguenther@suse.de>
3294
3295         * coverage.h (tree_coverage_counter_addr): Declare.
3296         * coverage.c (tree_coverage_counter_addr): New function.
3297         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
3298         before using again.
3299         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
3300         (tree_gen_one_value_profiler): Likewise.
3301         (tree_gen_ic_profiler): Likewise.
3302         (tree_gen_average_profiler): Likewise.
3303         (tree_gen_ior_profiler): Likewise.
3304
3305 2008-03-08  Richard Guenther  <rguenther@suse.de>
3306
3307         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
3308         (vn_binary_op_insert): Likewise.
3309         (vn_unary_op_lookup): Likewise.
3310         (vn_unary_op_insert): Likewise.
3311         (vn_nary_op_lookup): Declare.
3312         (vn_nary_op_insert): Likewise.
3313         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
3314         and binary hashes, use a single obstack for unary_op_pool
3315         and binary_op_pool.
3316         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
3317         a single struct vn_nary_op_s.  Store tree code length and
3318         a variable number of operands.
3319         (struct vn_reference_op_struct): Remove unused op2.
3320         (vn_reference_op_eq): Do not compare op2.
3321         (vn_reference_op_compute_hash): Do not compute hash of op2.
3322         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
3323         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
3324         with vn_nary_op_compute_hash.
3325         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
3326         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
3327         vn_nary_op_lookup.
3328         (vn_unary_op_insert, vn_binary_op_insert): Replace with
3329         vn_nary_op_insert.
3330         (visit_unary_op): Call nary functions.
3331         (visit_binary_op): Likewise.
3332         (process_scc): Adjust for struct vn_tables_s changes.
3333         (allocate_vn_table): Likewise.
3334         (free_vn_table): Likewise.
3335         * tree-vn.c (vn_add): Call nary functions.
3336         (vn_lookup): Likewise.
3337
3338 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
3339
3340         PR target/35498
3341         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
3342         wdst back after sync_compare_and_swapqhi_internal.
3343
3344 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
3345
3346         PR target/22152
3347         * config/i386/i386-modes.def (V1DI): New vector mode.
3348         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
3349         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
3350         (MMXMODE248): Ditto.
3351         (MMXMODE): Add V1DI mode.
3352         (mmxvecsize): Change DI mode to V1DI mode.
3353         ("mov<mode>): Use MMXMODEI8 mode iterator.
3354         ("*mov<mode>_internal_rex64"): Ditto.
3355         ("*mov<mode>_internal"): Ditto.
3356         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
3357         ("mmx_sub<mode>3"): Ditto.
3358         ("mmx_adddi3"): Remove insn pattern.
3359         ("mmx_subdi3"): Ditto.
3360         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
3361         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
3362         ("mmx_ashl<mode>3"): Ditto.
3363         ("mmx_lshrdi3"): Remove insn pattern.
3364         ("mmx_ashldi3"): Ditto.
3365         * config/i386/i386.c (classify_argument): Handle V1DImode.
3366         (function_arg_advance_32): Ditto.
3367         (function_arg_32): Ditto.
3368         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
3369         mmx_addv1di3 insn pattern.
3370         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
3371         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
3372         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
3373         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
3374         Remove definitions of built-in functions.
3375         (V1DI_type_node): New node.
3376         (v1di_ftype_v1di_int): Ditto.
3377         (v1di_ftype_v1di_v1di): Ditto.
3378         (v2si_ftype_v2si_si): Ditto.
3379         (v4hi_ftype_v4hi_di): Remove node.
3380         (v2si_ftype_v2si_di): Ditto.
3381         (ix86_init_mmx_sse_builtins): Handle V1DImode.
3382         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
3383         Redefine builtins using def_builtin_const with *_ftype_*_int node.
3384         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
3385         Add new builtins using def_builtin_const.
3386         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
3387         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
3388         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
3389         * config/i386/mmintrin.h (__v1di): New typedef.
3390         (_mm_add_si64): Cast arguments to __v1di type.
3391         (_mm_sub_si64): Ditto.
3392         (_mm_sll_pi16): Cast __count to __v4hi type.
3393         (_mm_sll_pi32): Cast __count to __v2si type.
3394         (_mm_sll_si64): Cast arguments to __v1di type.
3395         (_mm_srl_pi16): Cast __count to __v4hi type.
3396         (_mm_srl_pi32): Cast __count to __v2si type.
3397         (_mm_srl_si64): Cast arguments to __v1di type.
3398         (_mm_sra_pi16): Cast __count to __v4hi type.
3399         (_mm_sra_pi32): Cast __count to __v2si type.
3400         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
3401         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
3402         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
3403         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
3404         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
3405         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
3406         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
3407         (_mm_srai_pi32): Use __builtin_ia32_psradi.
3408         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
3409         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3410         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3411         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
3412
3413 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
3414
3415         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
3416
3417 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
3418
3419         PR target/35373
3420         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
3421         reg+const addressing for Altivec modes.  Don't generate reg+reg
3422         addressing for TFmode or TDmode quantities.
3423
3424 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
3425
3426         * c-common.c (vector_types_convertible_p): Call langhook
3427         instead of comptypes.
3428
3429 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3430
3431         PR tree-opt/35402
3432         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
3433         integral and scalar float variables which have a
3434         NULL DECL_INITIAL.
3435
3436 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
3437
3438         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
3439         dwarf_register_span hook when emitting unwind information for
3440         register-to-memory saves.
3441         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
3442         (rs6000_frame_related): Remove call to spe_synthesize_frame.
3443
3444 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
3445
3446         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
3447         for the same VAR_DECL.
3448
3449 2008-03-06  Tom Tromey  <tromey@redhat.com>
3450
3451         * treelang: Delete.
3452         * doc/standards.texi (Standards): Don't mention treelang.
3453         * doc/invoke.texi (Overall Options): Don't mention treelang.
3454         * doc/install.texi (Prerequisites): Don't mention bison or
3455         treelang.
3456         (Configuration): Don't mention treelang.
3457         (Building): Likewise.
3458         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
3459
3460 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
3461
3462         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
3463         word-extractions out of a multi-word object.
3464
3465 2008-03-06  Richard Guenther  <rguenther@suse.de>
3466
3467         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
3468         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
3469         result type and precision.
3470         * expr.c (get_inner_reference): Set unsignedp based on the result
3471         type of BIT_FIELD_REF.
3472         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
3473         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
3474         (try_instantiate_multiple_fields): Likewise.  Use the correct type
3475         for BIT_FIELD_REF.
3476         (sra_build_assignment): Likewise.
3477         (sra_build_elt_assignment): Likewise.
3478         (sra_explode_bitfield_assignment): Likewise.
3479         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
3480         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
3481         set BIT_FIELD_REF_UNSIGNED.
3482         (vectorizable_load): Likewise.
3483
3484 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3485
3486         * cse.c (cse_extended_basic_block): Invalidate artificial defs
3487         at bb start.
3488
3489 2008-03-06  Richard Guenther  <rguenther@suse.de>
3490
3491         * alias.c (struct alias_set_entry): Move has_zero_child field
3492         to pack with alias_set.
3493
3494 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
3495
3496         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3497         32bit host.
3498
3499 2008-03-05  Ian Lance Taylor  <iant@google.com>
3500
3501         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
3502
3503 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
3504
3505         * fwprop.c (update_df): Support width and offset parameters of
3506         df_ref_create.
3507         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
3508         global_conflicts): Change DF_REF_EXTRACT to either
3509         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3510         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3511         * df-scan.c (df_ref_record, df_defs_record,
3512         df_ref_create_structure, df_def_record_1, df_uses_record,
3513         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
3514         df_bb_refs_collect, df_entry_block_defs_collect,
3515         df_exit_block_uses_collect): Support new width and offset fields.
3516         (ref_extract_pool): New storage pool.
3517         (df_free_ref): New function.
3518         (df_reg_chain_unlink, df_free_collection_rec,
3519         df_sort_and_compress_refs): Call df_free_ref.
3520         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
3521         of df_ref_extract.
3522         (df_ref_create_structure): Allocate df_ref_extract if offset and
3523         width fields are used.
3524         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
3525         (df_uses_record): Get offset and width from ZERO_EXTRACT 
3526         and SIGN_EXTRACT.
3527         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
3528         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3529         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3530         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
3531         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3532         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3533         (df_ref_extract): New structure.
3534         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
3535         (df_ref_create): Add width and offset parameters.
3536         
3537 2008-03-05  Richard Guenther  <rguenther@suse.de>
3538
3539         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3540         Use ranges_overlap_p.
3541         (offset_overlaps_with_access): Rename
3542         to ranges_overlap_p and move ...
3543         * tree-flow-inline.h (ranges_overlap_p): ... here.
3544
3545         * tree.h (get_inner_reference, handled_component_p): Update
3546         comments.
3547
3548         * tree.h (record_component_aliases, get_alias_set,
3549         alias_sets_conflict_p, alias_sets_must_conflict_p,
3550         objects_must_conflict_p): Move declarations ...
3551         * alias.h (record_component_aliases, get_alias_set,
3552         alias_sets_conflict_p, alias_sets_must_conflict_p,
3553         objects_must_conflict_p): ... here.
3554         Include coretypes.h.
3555         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
3556
3557 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
3558
3559         * cfg.c: Include tree-flow.h.
3560         (remove_edge_raw): Call redirect_edge_var_map_clear.
3561         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
3562         * tree-flow-inline.h (redirect_edge_var_map_def): New.
3563         (redirect_edge_var_map_result): New.
3564         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
3565         PENDING_STMT use with redirect_edge_var_map_*.
3566         * tree-ssa.c (edge_var_maps): New definition.
3567         (redirect_edge_var_map_add): New.
3568         (redirect_edge_var_map_clear): New.
3569         (redirect_edge_var_map_dup): New.
3570         (redirect_edge_var_map_vector): New.
3571         (redirect_edge_var_map_destroy): New.
3572         (ssa_redirect_edge): Replace PENDING_STMT use with
3573         redirect_edge_var_map_*.
3574         (flush_pending_stmts): Same.
3575         (delete_tree_ssa): Destroy edge var map.
3576         * tree-flow.h (struct _edge_var_map): New.
3577         Define edge_var_map vector type.
3578         Declare redirect_edge_var_map_* prototypes.
3579         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
3580         * tree-cfg.c (reinstall_phi_args): Replace
3581         PENDING_STMT use with redirect_edge_var_map_*.
3582
3583 2008-03-05  Richard Guenther  <rguenther@suse.de>
3584
3585         PR tree-optimization/35472
3586         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
3587         whose single use_stmt has a overlapping set of loaded and
3588         stored symbols as that use_stmt might be a noop assignment then.
3589
3590 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
3591
3592         * gthr-rtems.h: Implement __gthread_mutex_destroy.
3593
3594 2008-03-05  Richard Guenther  <rguenther@suse.de>
3595
3596         PR c++/35336
3597         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
3598         should be constants.
3599         * tree-cfg.c (verify_expr): Verify it.
3600         * fold-const.c (fold_truthop): Remove code generating
3601         BIT_FIELD_REFs of structure bases.
3602         (fold_binary): Likewise.
3603         (fold_ternary): Position and size of BIT_FIELD_REFs are
3604         always host integers.
3605         (make_bit_field_ref): Remove.
3606         (optimize_bit_field_compare): Remove.
3607         (all_ones_mask_p): Remove.
3608
3609 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
3610
3611         PR gcc/33009
3612         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
3613         (split_block_and_df_analyze): New. Split basic block and rebuild
3614         dataflow.
3615         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
3616         SPLIT_BLOCK.
3617         (split_pattern_seq): Likewise.
3618         (erase_matching_seqs): Likewise.
3619         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
3620
3621 2008-03-04  Geoff Keating  <geoffk@apple.com>
3622
3623         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
3624         declaration and code.
3625         (tree_invalid_nonnegative_warnv_p): Likewise.
3626
3627 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
3628
3629         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
3630         examples.  Truncate option-names then causing overfull hbox.
3631
3632 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3633
3634         PR target/35222
3635         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
3636         on hpux10.
3637         * configure: Rebuilt.
3638
3639 2008-03-04  Rafael Espindola  <espindola@google.com>
3640
3641         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
3642         (tree_unary_nonnegative_warnv_p): New.
3643         (tree_binary_nonnegative_warnv_p): New.
3644         (tree_single_nonnegative_warnv_p): New.
3645         (tree_invalid_nonnegative_warnv_p): New.
3646         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
3647
3648 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3649
3650         PR 28322
3651         * opts.c (handle_option): Postpone 'unknown option' errors only for
3652         warning options.
3653
3654 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
3655
3656         PR target/35453
3657         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
3658         (_SIDD_XXX): This.
3659
3660 2008-03-04  Rafael Espindola  <espindola@google.com>
3661
3662         * fold-const.c (tree_unary_nonzero_warnv_p): New.
3663         (tree_binary_nonzero_warnv_p): New.
3664         (tree_single_nonzero_warnv_p): New.
3665         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
3666
3667 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
3668
3669         PR middle-end/35456
3670         * fold-const.c (fold_cond_expr_with_comparison): Prevent
3671         transformations for modes that have signed zeros.
3672         * ifcvt.c (noce_try_abs): Ditto.
3673
3674 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
3675
3676         * config/i386/i386.c (override_options): Force
3677         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
3678
3679 2008-03-04  Jan Hubicka  <jh@suse.cz>
3680
3681         PR c++/35262
3682         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
3683         in last commit.
3684
3685 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
3686
3687         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
3688         label to probe the stack.
3689
3690 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
3691
3692         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
3693         (__gthr_win32_mutex_destroy): Declare.
3694         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
3695         __gthr_win32_mutex_destroy.
3696         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
3697
3698 2008-03-03  Jan Hubicka  <jh@suse.cz>
3699
3700         PR c++/35262
3701         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
3702         aggressive on inlining cold calls.
3703
3704 2008-03-03  Richard Guenther  <rguenther@suse.de>
3705
3706         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
3707         struct copies into the expression table.
3708         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
3709         (try_to_simplify): Likewise.
3710         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
3711         integral and pointer arguments which do not change the
3712         precision to NOP_EXPRs.
3713         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
3714         VIEW_CONVERT_EXPR case.
3715
3716 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
3717
3718         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
3719         defined in a loop at depth 0 is invariant.
3720         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
3721         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
3722         be called at loop depth 0.
3723
3724 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
3725
3726         PR driver/35420
3727         * gcc.c (process_command): Update copyright notice dates.
3728         * gcov.c (print_version): Likewise.
3729         * gcov-dump.c (print_version): Likewise.
3730         * mips-tfile.c (main): Likewise.
3731         * mips-tdump.c (main): Likewise.
3732
3733 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3734
3735         PR 24924
3736         * c-common.c (flag_permissive): Delete.
3737         (constant_expression_warnings): Check flags first.
3738         (constant_expression_error): New.
3739         * c-common.h (flag_permissive): Delete.
3740         (constant_expression_error): Declare.
3741         * flags.h (flag_permissive): Declare. Update description.
3742         * diagnostic.c (pedwarn): Update.
3743         (permerror): New.
3744         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
3745         (permissive_error_kind): New.
3746         * toplev.c (flag_permissive): Define. Update description.
3747         * toplev.h (permissive_error_kind): Declare.
3748         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
3749         (pedwarn_c90): Use pedantic_warning_kind.
3750         * c-opts.c (c_common_post_options): flag_permissive does not affect
3751         flag_pedantic_errors.
3752
3753 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
3754
3755         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
3756         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
3757         __absvsi2, __absvDI2): Use unsigned arithmetic.
3758
3759 2008-03-02  Andi Kleen  <ak@suse.de>
3760             Richard Guenther  <rguenther@suse.de>
3761
3762         * struct-equiv.c: Remove file.
3763         * cfg_cleanup.c (condjump_equiv_p): Remove.
3764         * Makefile.in (OBJS-common): Remove struct-equiv.o.
3765         (struct-equiv.o): Remove rule.
3766         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
3767         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
3768         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
3769
3770 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3771
3772         * ifcvt.c (noce_process_if_block): Try to handle only the then
3773         block if the else block exists but isn't suitable.
3774
3775 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
3776
3777         PR gcc/35063
3778         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
3779         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
3780         regression from previous patch.
3781
3782 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
3783
3784         PR gcc/35063
3785         * gthr.h: Add __gthread_mutex_destroy as a function that must be
3786         implemented.
3787         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
3788         * gthr-single.h (__gthread_mutex_destroy): Likewise.
3789         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
3790         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
3791         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
3792         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
3793         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
3794         (__gthread_mutex_destroy_function): Rename to
3795         __gthread_mutex_destroy.
3796         * gthr-dce.h (__gthread_mutex_destroy): Call
3797         pthread_mutex_destroy.
3798         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
3799         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
3800         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
3801
3802 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3803
3804         * df-scan.c (df_ref_chain_change_bb): Simplify.
3805         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
3806         set_block_for_insn if there's any change.
3807         * df.h ((df_insn_change_bb): Fix prototype.
3808         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
3809         df_insn_change_bb, don't call set_block_for_insn.
3810         * emit-rtl.c (reorder_insns): Likewise.
3811         * haifa-sched.c (move_insn): Likewise.
3812
3813 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3814
3815         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
3816
3817 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3818
3819         * tree-flow-inline.h (next_readonly_imm_use): Return
3820         NULL_USE_OPERAND_P after the end.
3821
3822 2008-03-01  Richard Guenther  <rguenther@suse.de>
3823
3824         PR tree-optimization/35411
3825         * tree-sra.c (sra_build_assignment): Split conversion to
3826         final type to a separate statement if we are not assigning
3827         to a register.
3828
3829 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3830
3831         * fold-const.c (fold_convertible_p): Correct the logic to follow
3832         that in fold_convert().
3833
3834 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
3835
3836         PR c++/35315
3837         * tree-inline.c (build_duplicate_type): When we make a
3838         duplicate type, make it unique in the canonical types system.
3839
3840 2008-02-29  Tom Tromey  <tromey@redhat.com>
3841
3842         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
3843         input_file_stack_history, input_file_stack_restored): Remove.
3844         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3845         * input.h (struct file_stack): Remove.
3846         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3847         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
3848         Likewise.
3849         * diagnostic.h (struct diagnostic_context) <last_module>: Change
3850         type.
3851         (diagnostic_last_module_changed): Add 'map' argument.
3852         (diagnostic_set_last_function): Likewise.
3853         * diagnostic.c (undiagnostic_report_current_module): Iterate using
3854         line map, not input_file_stack.
3855         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
3856
3857 2008-02-29  Paul Brook  <paul@codesourcery.com>
3858
3859         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
3860
3861 2008-02-29  Paul Brook  <paul@codesourcery.com>
3862
3863         * config/arm/ieee754-df.S (muldf3): Use RET macros.
3864
3865 2008-02-29  Richard Guenther  <rguenther@suse.de>
3866
3867         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
3868         vn_lookup_or_add.
3869         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
3870         value for comparing for a store match.
3871         (simplify_unary_expression): Do nothing for SSA_NAMEs.
3872         (try_to_simplify): Do not do a full-blown reference lookup.
3873
3874 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3875
3876         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
3877         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3878
3879         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
3880
3881 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
3882
3883         * tree-loop-linear.c (try_interchange_loops): Compare memory access
3884         strides against cache sizes.
3885
3886 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3887
3888         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
3889         constant to fpul.
3890
3891 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
3892
3893         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
3894         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
3895         is smaller than the original promoted value.
3896         (simplify_subreg): If OP is a SUBREG, try to preserve its
3897         SUBREG_PROMOTED_VAR_P information.
3898
3899 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
3900
3901         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
3902         (VN_INFO_GET): Allocate new objects on the obstack.
3903         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
3904         for rpo_numbers_temp, for consistency.
3905         (free_scc_vn): Free the obstack.
3906
3907 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
3908
3909         * doc/invoke.texi: Document -ftree-loop-distribution.
3910         * tree-loop-distribution.c: New.
3911         * tree-pass.h (pass_loop_distribution): New.
3912         * graphds.h (struct graph): Add htab_t indices.
3913         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
3914         * tree-vectorizer.c (rename_variables_in_loop): Extern.
3915         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
3916         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
3917         * tree-data-ref.c (debug_data_dependence_relations): New.
3918         (dump_data_dependence_relation): Also print data references.
3919         (free_data_ref): Extern.
3920         (same_access_functions): Moved...
3921         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
3922         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3923         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
3924         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
3925         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
3926         (stmts_from_loop): Skip LABEL_EXPR.
3927         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
3928         New.
3929         (build_rdg): Initialize rdg->indices htab.
3930         (free_rdg, stores_from_loop, ref_base_address,
3931         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
3932         have_similar_memory_accesses_1, ref_base_address_1,
3933         remove_similar_memory_refs): New.
3934         * tree-data-ref.h: Depend on tree-chrec.h.
3935         (debug_data_dependence_relations, free_data_ref): Declared.
3936         (same_access_functions): ... here.
3937         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
3938         New.
3939         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
3940         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
3941         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
3942         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3943         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
3944         rdg_vertex_for_stmt): Declared.
3945         (struct rdg_edge): Add level.
3946         (RDGE_LEVEL): New.
3947         (free_rdg, stores_from_loop, remove_similar_memory_refs,
3948         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
3949         Declared.
3950         (rdg_has_similar_memory_accesses): New.
3951         * tree-vect-analyze.c: Remove unused static decls.
3952         * lambda.h (dependence_level): New.
3953         * common.opt (ftree-loop-distribution): New.
3954         * tree-flow.h (mark_virtual_ops_in_bb, 
3955         slpeel_tree_duplicate_loop_to_edge_cfg,
3956         rename_variables_in_loop): Declared.
3957         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
3958         (OBJS-common): Add tree-loop-distribution.o.
3959         (tree-loop-distribution.o): New rule.
3960         * tree-cfg.c (mark_virtual_ops_in_bb): New.
3961         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
3962         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
3963
3964 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
3965
3966         PR target/33963
3967         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
3968         other than structures and unions.
3969
3970 2008-02-28  Richard Guenther  <rguenther@suse.de>
3971
3972         Revert:
3973         2008-02-26  Richard Guenther  <rguenther@suse.de>
3974
3975         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3976         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3977         (lookup_decl_from_uid): Declare.
3978         (remove_decl_from_map): Likewise.
3979         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3980         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3981         (decl_for_uid_map): New global hashtable mapping DECL_UID
3982         to the decl tree.
3983         (init_ttree): Allocate it.
3984         (insert_decl_to_uid_decl_map): New helper function.
3985         (make_node_stat): Insert new decls into the map.
3986         (copy_node_stat): Likewise.
3987         (lookup_decl_from_uid): New function.
3988         (remove_decl_from_map): Likewise.
3989         (print_decl_for_uid_map_statistics): New helper.
3990         (dump_tree_statistics): Call it.
3991
3992         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3993         (referenced_var_iterator): Adjust.
3994         (FOR_EACH_REFERENCED_VAR): Adjust.
3995         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
3996         (num_referenced_vars): Adjust.
3997         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
3998         (first_referenced_var): Remove.
3999         (end_referenced_vars_p): Likewise.
4000         (next_referenced_var): Likewise.
4001         (referenced_var_iterator_set): New helper function.
4002         * tree-dfa.c (referenced_var_lookup): Adjust.
4003         (referenced_var_check_and_insert): Likewise.
4004         (remove_referenced_var): Likewise.
4005         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4006         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4007         (verify_call_clobbering): Likewise.
4008         (verify_memory_partitions): Likewise.
4009         (init_tree_ssa): Allocate bitmap instead of hashtable for
4010         referenced_vars.
4011         (delete_tree_ssa): Adjust.
4012         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4013         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4014         (compute_tag_properties): Likewise.
4015         (set_initial_properties): Likewise.
4016         (find_partition_for): Likewise.
4017         (update_reference_counts): Likewise.
4018         (dump_may_aliases_for): Likewise.
4019         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4020         (add_call_clobber_ops): Likewise.
4021         (add_call_read_ops): Likewise.
4022         (get_asm_expr_operands): Likewise.
4023         * tree-into-ssa.c (dump_decl_set): Likewise.
4024         (update_ssa): Likewise.
4025         * tree-sra.c (scan_function): Likewise.
4026         (decide_instantiations): Likewise.
4027         (scalarize_parms): Likewise.
4028         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4029         (dsa_named_for): Likewise.
4030         * tree-ssa-structalias.c (update_alias_info): Likewise.
4031         (merge_smts_into): Likewise.
4032
4033 2008-02-27  David Daney  <ddaney@avtrex.com>
4034
4035         PR target/34409
4036         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
4037         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
4038         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
4039         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
4040         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
4041
4042 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
4043
4044         PR target/25477
4045         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
4046         (BUILT_IN_NEXTTOWARD): Remove.
4047         (BUILT_IN_NEXTTOWARDF): Ditto.
4048         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
4049         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
4050
4051 2008-02-27  Tom Tromey  <tromey@redhat.com>
4052
4053         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
4054         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
4055
4056 2008-02-27  Jan Beulich  <jbeulich@novell.com>
4057
4058         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
4059         update the respective field on newdecl.
4060
4061 2008-02-27  Revital Eres  <eres@il.ibm.com>
4062
4063         PR rtl-optimization/34999
4064         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
4065         crossing edges that ends with a call insn.
4066         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
4067         call insn and clear the EDGE_CROSSING flag of the crossing edge
4068         when fixing fallthru edges.
4069
4070 2008-02-27  Richard Guenther  <rguenther@suse.de>
4071
4072         PR middle-end/35390
4073         * fold-const.c (fold_unary): Return the correct argument,
4074         converted to the result type.
4075
4076 2008-02-27  Richard Guenther  <rguenther@suse.de>
4077
4078         PR middle-end/34971
4079         * expr.c (expand_expr_real_1): Assert on rotates that operate
4080         on partial modes.
4081         * fold-const.c (fold_binary): Use the types precision, not the
4082         bitsize of the mode if folding rotate expressions.  Build rotates
4083         only for full modes.
4084
4085 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
4086
4087         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
4088         and CPP_PRAGMA_EOL.
4089         * c-pragma.c (pragma_ns_name): New typedef.
4090         (registered_pp_pragmas): New variable.
4091         (c_pp_lookup_pragma): New function.
4092         (c_register_pragma_1): If flag_preprocess_only, do nothing
4093         for non-expanded pragmas, for expanded ones push pragma's
4094         namespace and name into registered_pp_pragmas vector.
4095         (c_invoke_pragma_handler): Register OpenMP pragmas even when
4096         flag_preprocess_only, don't register GCC pch_preprocess
4097         pragma if flag_preprocess_only.
4098         * c-opts.c (c_common_init): Call init_pragma even if
4099         flag_preprocess_only.
4100         * c-pragma.c (c_pp_lookup_pragma): New prototype.
4101         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
4102         cpp_register_pragma if flag_preprocess_only.
4103
4104 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4105
4106         PR c/28800
4107         * c-parser.c (c_parser_translation_unit): Warn for empty
4108         translation unit, not empty source file.
4109
4110 2008-02-26  Paul Brook  <paul@codesourcery.com>
4111
4112         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
4113         operand for Thumb-2.
4114         * config/arm/arm.h (reg_class): Add CORE_REGS.
4115         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
4116         (BASE_REG_CLASS): Use CORE_REGS.
4117         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
4118         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
4119         (REGNO_OK_FOR_INDEX_P): Exclude SP.
4120         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
4121         ARM_REGNO_OK_FOR_INDEX_P.
4122         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
4123         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
4124         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
4125         (ldm/stm peepholes): Ditto.
4126         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
4127         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
4128         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
4129         * config/arm/constraints.md: Enable "k" constraint on ARM.
4130
4131 2008-02-27  Ben Elliston  <bje@au.ibm.com>
4132
4133         * config/rs6000/rs6000.c: Annotate cache line size field in all
4134         instances of struct processor_costs.
4135
4136 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
4137
4138         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
4139         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
4140         jump_bypass): New counters.
4141         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
4142         * dce.c (gate_ud_dce): Same.
4143         (gate_fast_dce): Same.
4144         * dse.c (gate_dse1): New function.
4145         (gate_dse2): New function.
4146         (gate_dse): Merge results of new gate functions.
4147         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
4148         (gate_handle_jump_bypass): Add dbg_cnt.
4149         (gate_handle_gcse): Add dbg_cnt.
4150         * ifcvt.c (gate_handle_if_conversion): Same.
4151         (gate_handle_if_after_combine): Same.
4152         (gate_handle_if_after_reload): Same.
4153         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
4154
4155 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
4156
4157         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
4158         line sizes.
4159         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
4160
4161 2008-02-26  Jason Merrill  <jason@redhat.com>
4162
4163         PR c++/35315
4164         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
4165         alone if it's the naming decl for the type's main variant.
4166
4167 2008-02-26  Tom Tromey  <tromey@redhat.com>
4168
4169         * system.h (USE_MAPPED_LOCATION): Poison.
4170         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
4171         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
4172         (make_goto_expr_edges): Likewise.
4173         (remove_bb): Likewise.
4174         (execute_warn_function_return): Likewise.
4175         * basic-block.h (struct edge_def) <goto_locus>: Change type to
4176         location_t.
4177         * c-common.c (fname_decl): Remove old location code.
4178         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
4179         location code.
4180         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
4181         variant.
4182         (ASM_INPUT_SOURCE_LOCATION): Likewise.
4183         (gen_rtx_ASM_INPUT): Likewise.
4184         (gen_rtx_ASM_INPUT_loc): Likewise.
4185         (get_rtx_asm_OPERANDS): Remove.
4186         * cfglayout.c (insn_locators_alloc): Remove old location code.
4187         (set_curr_insn_source_location): Likewise.
4188         (curr_insn_locator): Likewise.
4189         * print-tree.c (print_node): Remove old location code.
4190         * tree-mudflap.c (mf_varname_tree): Remove old location code.
4191         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
4192         * cfgexpand.c (expand_gimple_cond_expr): Don't use
4193         location_from_locus.
4194         (construct_exit_block): Remove old location code.
4195         * emit-rtl.c (force_next_line_note): Remove old location code.
4196         * profile.c (branch_prob): Remove old location code.
4197         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
4198         LOC_LINE): Remove old-location variants.
4199         * langhooks.c (lhd_print_error_function): Remove old location
4200         code.
4201         * configure, config.in: Rebuilt.
4202         * configure.ac (--enable-mapped-location): Remove.
4203         * c-decl.c (c_init_decl_processing): Remove old location code.
4204         (finish_function): Likewise.
4205         * recog.c (decode_asm_operands): Remove old location code.
4206         * c-pch.c (c_common_read_pch): Remove old location code.
4207         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
4208         variants.
4209         * gimple-low.c (lower_function_body): Remove old location code.
4210         * toplev.c (unknown_location): Remove.
4211         (push_srcloc): Remove old-location variant.
4212         (process_options): Remove old location code.
4213         (lang_dependent_init): Likewise.
4214         * input.h (UNKNOWN_LOCATION): Move definition.
4215         (location_t): Undeprecate.
4216         (source_locus): Remove.
4217         (location_from_locus): Remove.
4218         (struct location_s): Remove.
4219         Remove all old-location code.
4220         (input_line, input_filename): Remove.
4221         * final.c (final_scan_insn): Remove old location code.
4222         * diagnostic.c (diagnostic_build_prefix): Remove
4223         USE_MAPPED_LOCATION test.
4224         * tree.h (gimple_stmt) <locus>: Now a location_t.
4225         (tree_exp) <locus>: Likewise.
4226         (DECL_IS_BUILTIN): Remove old-location variant.
4227         (annotate_with_file_line, annotate_with_locus): Likewise.
4228         (expr_locus, set_expr_locus): Update.
4229         * tree.c (build1_stat): Remove old location code.
4230         (last_annotated_node): Remove.
4231         (annotate_with_file_line): Remove old-location variant.
4232         (annotate_with_locus): Likewise.
4233         (expr_location): Remove old location code.
4234         (set_expr_location): Likewise.
4235         (expr_has_location): Likewise.
4236         (expr_locus): Likewise.
4237         (set_expr_locus): Likewise.
4238         (expr_filename): Don't use location_from_locus.
4239         (expr_lineno): Likewise.
4240         * rtl-error.c (location_for_asm): Remove old location code.
4241         * c-lex.c (cb_line_change): Remove old location code.
4242         (fe_file_change): Likewise.
4243         (cb_def_pragma): Likewise.
4244         (c_lex_with_flags): Likewise.
4245         * gengtype.c (do_typedef): Don't special-case location types.
4246         (define_location_structures): Remove.
4247         (main): Don't call define_location_structures.
4248         * tree-pretty-print.c (dump_implicit_edges): Remove old location
4249         code.
4250
4251 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4252
4253         PR 26264
4254         * builtins.def (BUILT_IN_STDARG_START): Remove.
4255         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
4256         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4257         * tree-inline.c (inline_forbidden_p_1): Likewise.
4258         
4259 2008-02-26  Richard Guenther  <rguenther@suse.de>
4260
4261         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4262         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4263         (lookup_decl_from_uid): Declare.
4264         (remove_decl_from_map): Likewise.
4265         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4266         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4267         (decl_for_uid_map): New global hashtable mapping DECL_UID
4268         to the decl tree.
4269         (init_ttree): Allocate it.
4270         (insert_decl_to_uid_decl_map): New helper function.
4271         (make_node_stat): Insert new decls into the map.
4272         (copy_node_stat): Likewise.
4273         (lookup_decl_from_uid): New function.
4274         (remove_decl_from_map): Likewise.
4275         (print_decl_for_uid_map_statistics): New helper.
4276         (dump_tree_statistics): Call it.
4277
4278         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4279         (referenced_var_iterator): Adjust.
4280         (FOR_EACH_REFERENCED_VAR): Adjust.
4281         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4282         (num_referenced_vars): Adjust.
4283         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4284         (first_referenced_var): Remove.
4285         (end_referenced_vars_p): Likewise.
4286         (next_referenced_var): Likewise.
4287         (referenced_var_iterator_set): New helper function.
4288         * tree-dfa.c (referenced_var_lookup): Adjust.
4289         (referenced_var_check_and_insert): Likewise.
4290         (remove_referenced_var): Likewise.
4291         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4292         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4293         (verify_call_clobbering): Likewise.
4294         (verify_memory_partitions): Likewise.
4295         (init_tree_ssa): Allocate bitmap instead of hashtable for
4296         referenced_vars.
4297         (delete_tree_ssa): Adjust.
4298         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4299         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4300         (compute_tag_properties): Likewise.
4301         (set_initial_properties): Likewise.
4302         (find_partition_for): Likewise.
4303         (update_reference_counts): Likewise.
4304         (dump_may_aliases_for): Likewise.
4305         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4306         (add_call_clobber_ops): Likewise.
4307         (add_call_read_ops): Likewise.
4308         (get_asm_expr_operands): Likewise.
4309         * tree-into-ssa.c (dump_decl_set): Likewise.
4310         (update_ssa): Likewise.
4311         * tree-sra.c (scan_function): Likewise.
4312         (decide_instantiations): Likewise.
4313         (scalarize_parms): Likewise.
4314         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4315         (dsa_named_for): Likewise.
4316         * tree-ssa-structalias.c (update_alias_info): Likewise.
4317         (merge_smts_into): Likewise.
4318
4319 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4320
4321         PR 34351
4322         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
4323         * c-opts.c (c_common_handle_option): Wall enables
4324         Wvolatile-register-var.
4325         * common.opt: Move Wvolatile-register-var to...
4326         * c.opt: ...here.
4327         
4328 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4329
4330         * common.opt (Wlarger-than=): New.
4331         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
4332         -Wlarger-than=.
4333         * opts.c (common_handle_option): Handle -Wlarger-than=.
4334         * optc-gen.awk: Likewise.
4335         * opth-gen.awk: Likewise.
4336         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
4337         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4338         
4339 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4340
4341         * c-common.c (match_case_to_enum_1): Add appropriate
4342         OPT_W* parameter to warning.
4343         (c_do_switch_warnings): Likewise.
4344         * c-typeck.c (warning_init): Add one more parameter following
4345         'warning' function.
4346         (push_init_level): Update call to warning_init.
4347         (pop_init_level): Likewise.
4348         (add_pending_init): Likewise.
4349         (output_init_element: Likewise.
4350
4351 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4352
4353         PR 28322
4354         * toplev.c (toplev_main): If there are warnings or error, print
4355         errors for ignored options.
4356         * opts.c (ignored_options): New static variable.
4357         (postpone_unknown_option_error): New.
4358         (print_ignored_options): New.
4359         (handle_option): Postpone errors for unknown -Wno-* options.
4360         * opts.h (print_ignored_options): Declare.
4361         
4362 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4363
4364         * config/mips/mips.md (loadgp_blockage, blockage): Change type
4365         to "ghost".
4366
4367 2008-02-25  Richard Guenther  <rguenther@suse.de>
4368
4369         Revert:
4370         2008-02-25  Richard Guenther  <rguenther@suse.de>
4371
4372         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4373         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4374         (lookup_decl_from_uid): Declare.
4375         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4376         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4377         (decl_for_uid_map): New global hashtable mapping DECL_UID
4378         to the decl tree.
4379         (init_ttree): Allocate it.
4380         (insert_decl_to_uid_decl_map): New helper function.
4381         (make_node_stat): Insert new decls into the map.
4382         (copy_node_stat): Likewise.
4383         (lookup_decl_from_uid): New function.
4384         (print_decl_for_uid_map_statistics): New helper.
4385         (dump_tree_statistics): Call it.
4386
4387         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4388         (referenced_var_iterator): Adjust.
4389         (FOR_EACH_REFERENCED_VAR): Adjust.
4390         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4391         (num_referenced_vars): Adjust.
4392         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4393         (first_referenced_var): Remove.
4394         (end_referenced_vars_p): Likewise.
4395         (next_referenced_var): Likewise.
4396         (referenced_var_iterator_set): New helper function.
4397         * tree-dfa.c (referenced_var_lookup): Adjust.
4398         (referenced_var_check_and_insert): Likewise.
4399         (remove_referenced_var): Likewise.
4400         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4401         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4402         (verify_call_clobbering): Likewise.
4403         (verify_memory_partitions): Likewise.
4404         (init_tree_ssa): Allocate bitmap instead of hashtable for
4405         referenced_vars.
4406         (delete_tree_ssa): Adjust.
4407         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4408         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4409         (compute_tag_properties): Likewise.
4410         (set_initial_properties): Likewise.
4411         (find_partition_for): Likewise.
4412         (update_reference_counts): Likewise.
4413         (dump_may_aliases_for): Likewise.
4414         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4415         (add_call_clobber_ops): Likewise.
4416         (add_call_read_ops): Likewise.
4417         (get_asm_expr_operands): Likewise.
4418         * tree-into-ssa.c (dump_decl_set): Likewise.
4419         (update_ssa): Likewise.
4420         * tree-sra.c (scan_function): Likewise.
4421         (decide_instantiations): Likewise.
4422         (scalarize_parms): Likewise.
4423         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4424         (dsa_named_for): Likewise.
4425         * tree-ssa-structalias.c (update_alias_info): Likewise.
4426         (merge_smts_into): Likewise.
4427
4428 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
4429
4430         PR fortran/29549
4431         * doc/invoke.texi (-fcx-limited-range): Document new option.
4432         * toplev.c (process_options): Handle -fcx-fortran-rules.
4433         * common.opt: Add documentation for -fcx-fortran-rules.
4434
4435 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
4436
4437         PR c/35162
4438         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
4439         actual behaviour and C99.
4440         
4441 2008-02-26  Ben Elliston  <bje@au.ibm.com>
4442
4443         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
4444         (ASM_CPU_POWER6_SPEC): Likewise.
4445         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
4446         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
4447         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
4448
4449 2008-02-25  Richard Guenther  <rguenther@suse.de>
4450
4451         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4452         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4453         (lookup_decl_from_uid): Declare.
4454         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4455         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4456         (decl_for_uid_map): New global hashtable mapping DECL_UID
4457         to the decl tree.
4458         (init_ttree): Allocate it.
4459         (insert_decl_to_uid_decl_map): New helper function.
4460         (make_node_stat): Insert new decls into the map.
4461         (copy_node_stat): Likewise.
4462         (lookup_decl_from_uid): New function.
4463         (print_decl_for_uid_map_statistics): New helper.
4464         (dump_tree_statistics): Call it.
4465
4466         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4467         (referenced_var_iterator): Adjust.
4468         (FOR_EACH_REFERENCED_VAR): Adjust.
4469         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4470         (num_referenced_vars): Adjust.
4471         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4472         (first_referenced_var): Remove.
4473         (end_referenced_vars_p): Likewise.
4474         (next_referenced_var): Likewise.
4475         (referenced_var_iterator_set): New helper function.
4476         * tree-dfa.c (referenced_var_lookup): Adjust.
4477         (referenced_var_check_and_insert): Likewise.
4478         (remove_referenced_var): Likewise.
4479         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4480         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4481         (verify_call_clobbering): Likewise.
4482         (verify_memory_partitions): Likewise.
4483         (init_tree_ssa): Allocate bitmap instead of hashtable for
4484         referenced_vars.
4485         (delete_tree_ssa): Adjust.
4486         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4487         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4488         (compute_tag_properties): Likewise.
4489         (set_initial_properties): Likewise.
4490         (find_partition_for): Likewise.
4491         (update_reference_counts): Likewise.
4492         (dump_may_aliases_for): Likewise.
4493         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4494         (add_call_clobber_ops): Likewise.
4495         (add_call_read_ops): Likewise.
4496         (get_asm_expr_operands): Likewise.
4497         * tree-into-ssa.c (dump_decl_set): Likewise.
4498         (update_ssa): Likewise.
4499         * tree-sra.c (scan_function): Likewise.
4500         (decide_instantiations): Likewise.
4501         (scalarize_parms): Likewise.
4502         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4503         (dsa_named_for): Likewise.
4504         * tree-ssa-structalias.c (update_alias_info): Likewise.
4505         (merge_smts_into): Likewise.
4506
4507 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
4508
4509         PR target/35258
4510         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
4511         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
4512         * alias.h (nonoverlapping_memrefs_p): Likewise.
4513
4514 2008-02-25  Jan Beulich  <jbeulich@novell.com>
4515
4516         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
4517         * config/i386/netware-libgcc.exp: Add __bswap?i2,
4518         __emultls_get_address, __emultls_register_common,
4519         __floatundi?f, and _Unwind_GetIPInfo.
4520         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
4521         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
4522         (gen_regparm_prefix): Likewise.
4523         (i386_nlm_encode_section_info): Sync with
4524         config/i386/winnt.c:i386_pe_encode_section_info().
4525         (i386_nlm_maybe_mangle_decl_assembler_name): New.
4526         i386_nlm_mangle_decl_assembler_name): New.
4527         (netware_override_options): New.
4528         * config/i386/netware.h (netware_override_options): Declare.
4529         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
4530         (i386_nlm_mangle_decl_assembler_name): Declare.
4531         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
4532
4533 2008-02-25  Ben Elliston  <bje@au.ibm.com>
4534
4535         PR other/32948
4536         * c-decl.c (grokdeclarator): Remove unused local variables
4537         `typedef_type' and `type_as_written'.
4538         * bb-reorder.c
4539         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
4540         unused local variable `has_hot_blocks'.
4541         (fix_crossing_conditional_branches): Remove unused local variable
4542         `prev_bb'.
4543         
4544 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
4545
4546         PR middle-end/19984
4547         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
4548         using DEF_C99_BUILTIN.
4549         (BUILT_IN_NANF): Ditto.
4550         (BUILT_IN_NANL): Ditto.
4551
4552 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
4553             Revital Eres  <eres@il.ibm.com>
4554
4555         * modulo-sched.c (calculate_must_precede_follow): Address TODO
4556         regarding the order of two dependent insns in the same row.
4557
4558 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
4559
4560         * stor-layout.c (layout_decl): Do not bump the alignment of a
4561         bit-field to more than byte alignment if it is packed.
4562
4563 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
4564
4565         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
4566         e300c2 and e300c3.
4567
4568 2008-02-24  Diego Novillo  <dnovillo@google.com>
4569
4570         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
4571
4572         PR 33738
4573         * tree-vrp.c (vrp_evaluate_conditional): With
4574         -Wtype-limits, emit a warning when comparing against a
4575         constant outside the natural range of OP0's type.
4576         * c.opt (Wtype-limits): Move ...
4577         * common.opt (Wtype-limits): ... here.
4578
4579 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
4580
4581         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
4582         * config/rs6000/e300c2c3.md: New file.
4583         * config/rs6000/rs6000.c (processor_costs): Add new costs for
4584         e300c2 and e300c3.
4585         (rs6000_override_options): Add e300c2 and e300c3 cases to
4586         processor_target_table. Do not allow usage of Altivec or Spe
4587         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
4588         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
4589         * config/rs6000/rs6000.h (processor_type): Add
4590         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
4591         (ASM_CPU_SPEC): Add e300c2 and e300c3.
4592         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
4593         and ppce300c3. Include e300c2c3.md.
4594
4595 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
4596
4597         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
4598         instead of TARGET_STRICT_ALIGN.
4599
4600 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
4601
4602         * explow.c (memory_address): Assert that the generated address is
4603         valid.
4604
4605 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4606
4607         PR target/25477
4608         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
4609         * config/darwin-ppc-ldouble-patch.def: New file.
4610         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
4611         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
4612         SUBTARGET_INIT_BUILTINS if defined.
4613         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
4614         New functions.
4615
4616 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4617
4618         PR rtl-opt/33512
4619         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
4620         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
4621
4622 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4623
4624         PR pch/35027
4625         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
4626         file" warning condtional on -Winvalid-PCH.
4627
4628 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
4629
4630         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
4631
4632 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
4633
4634         PR target/22076
4635         PR target/34256 
4636         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
4637         prevent reload from using MMX registers.
4638         (*mov<mode>_internal): Ditto.
4639         (*movv2sf_internal_rex64): Ditto.
4640         (*movv2sf_internal): Ditto.
4641
4642 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4643
4644         PR documentation/31569
4645         * doc/install.texi2html: Use makeinfo --no-number-sections.
4646
4647 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
4648
4649         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
4650         ensure that we can address an entire entity > 8 bytes.  Don't
4651         generate reg+reg addressing for such data.
4652
4653 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
4654
4655         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
4656         strings when optimizing for size, unless the target cares about
4657         alignment.
4658
4659 2008-02-22  Tom Tromey  <tromey@redhat.com>
4660
4661         * regclass.c (current_pass): Remove declaration.
4662
4663 2008-02-22  Anatoly Sokolov <aesok@post.ru>
4664
4665         * config/avr/libgcc.S (__RAMPZ__): Define.
4666         (__do_copy_data): Add for devices with 128KB code memory.
4667
4668 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
4669
4670         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4671         Use spe_abi.
4672         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
4673
4674 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
4675
4676         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
4677         GENNONACR_REGS.
4678
4679 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4680
4681         PR c/19999
4682         * c-typeck.c (build_binary_op): Warn about floating point
4683         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
4684
4685 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
4686
4687         PR target/34526
4688         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
4689         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
4690         add vrsave.
4691         (rs6000_override_options): Set altivec_abi as default, not override,
4692         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
4693         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
4694         is used; use new member spe_abi.
4695         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
4696         spe_abi and altivec_abi.
4697
4698 2008-02-22  Tomas Bily  <tbily@suse.cz>
4699
4700         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
4701
4702 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4703
4704         PR bootstrap/35273
4705         * config.build (build_file_translate): Set to `CMD //c' only if
4706         it works.
4707         * Makefile.in (build_file_translate): Improve comment.
4708
4709 2008-02-21  Jan Hubicka  <jh@suse.cz>
4710
4711         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
4712         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
4713         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
4714
4715 2008-02-21  Michael Matz  <matz@suse.de>
4716
4717         PR target/35264
4718         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
4719
4720 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
4721
4722         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
4723         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
4724         as insn constraint.
4725         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
4726         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
4727         SSE_VEC_FLOAT_MODE_P as insn constraint.
4728         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
4729         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
4730         sse4a_movntdf using MODEF mode iterator.
4731         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
4732         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
4733         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
4734         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
4735         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
4736         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
4737         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
4738
4739 2008-02-21  Richard Guenther  <rguenther@suse.de>
4740
4741         * tree.def (PAREN_EXPR): New tree code.
4742         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
4743         and PAREN_EXPR.
4744         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
4745         * expr.c (expand_expr_real_1): Likewise.
4746         * tree-inline.c (estimate_num_insns_1): Likewise.
4747         * tree-complex.c (expand_complex_move): Likewise.
4748         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
4749         as plain x.
4750
4751 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4752
4753         PR target/35225
4754         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
4755
4756 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4757
4758         PR target/35190
4759         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
4760
4761         * config/sh/sh.c (find_barrier): Don't go past
4762         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
4763
4764 2008-02-20  DJ Delorie  <dj@redhat.com>
4765
4766         * config/h8300/h8300.md (insv): Force source operand to be a register.
4767
4768         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
4769         as a jump, not as a plain insn.
4770         
4771 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
4772
4773         * doc/invoke.texi (Warning Options): Add new option
4774         -Wframe-larger-than=.
4775         (-Wframe-larger-than): Document.
4776
4777         * flags.h (warn_frame_larger_than, frame_larger_than_size):
4778         Add declarations for new option variables.
4779
4780         * final.c (final_start_function): Check the frame size
4781         before emission and issue a Wframe-larger-than warning.
4782
4783         * opts.c (warn_frame_larger_than, frame_larger_than_size):
4784         Add definitions for new option variables.
4785         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
4786
4787         * common.opt (Wframe-larger-than=): New option.
4788
4789 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
4790
4791         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
4792         (<sse>_div<mode>3): Ditto.
4793         (<sse>_vmdiv<mode>3): Ditto.
4794         (<sse>_vmsqrt<mode>2): Ditto.
4795         (*smax<mode>3): Ditto.
4796         (sse5_frcz<mode>2): Ditto.
4797         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
4798         as insn constraint.
4799
4800 2008-02-20  Richard Guenther  <rguenther@suse.de>
4801
4802         PR middle-end/35265
4803         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
4804         be happy with INTEGRAL_TYPE_P.
4805
4806 2008-02-20  Richard Guenther  <rguenther@suse.de>
4807
4808         * fold-const.c (split_tree): Associate floatig-point expressions
4809         if flag_associative_math is set.
4810
4811 2008-02-20  Richard Guenther  <rguenther@suse.de>
4812
4813         * tree.h (fold_real_zero_addition_p): Declare.
4814         * fold-const.c (fold_real_zero_addition_p): Export.
4815         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
4816         floating-point operations with zero and one.
4817
4818 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
4819
4820         * doc/install.texi: Correct references to CFLAGS, replacing them
4821         with BOOT_CFLAGS.  Document flags used during bootstrap for
4822         target libraries.
4823                                 
4824 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
4825
4826         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
4827         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
4828         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
4829         insn constraint.
4830         (smin<mode>3): Ditto from similar patterns.
4831         (smax<mode>3): Ditto.
4832         (*ieee_smin<mode>3): Ditto.
4833         (*ieee_smax<mode>3): Ditto.
4834         * config/i386/sse.md (sse): New mode attribute.
4835         (mov<mode>): Macroize expander from movv4sf and movv2df using
4836         SSEMODEF2P mode iterator.
4837         (<sse>_movnt<mode>): Ditto from similar patterns. Use
4838         SSE_VEC_FLOAT_MODE_P as insn constraint.
4839         (storent<mode>): Ditto.
4840         (storent<mode>): Macroize expander from storentsf and storentdf using
4841         MODEF mode iterator.
4842         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
4843         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
4844         (abs<mode>2): Ditto from similar patterns.
4845         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
4846         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
4847         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
4848         (<sse>_vmsqrt<mode>2): Ditto.
4849         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
4850         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
4851         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
4852         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
4853         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
4854         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
4855         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
4856         insn constraint.
4857         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
4858         iterator and SSE_FLOAT_MODE_P as insn constraint.
4859         (<sse>_ucomi): Ditto from similar patterns.
4860         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
4861         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
4862         SSE_VEC_FLOAT_MODE_P as insn constraint.
4863         (vcond<mode>): Ditto from similar patterns.
4864         (and<mode>3, *and<mode>3): Ditto.
4865         (<sse>_nand<mode>3): Ditto.
4866         (ior<mode>3, *ior<mode>3): Ditto.
4867         (xor<mode>3, *xor<mode>3): Ditto.
4868         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
4869         iterator and SSE_FLOAT_MODE_P as insn constraint.
4870         (*nand<mode>3): Ditto from similar patterns.
4871         (*ior<mode>3): Ditto.
4872         (*xor<mode>3): Ditto.
4873
4874 2008-02-20  Ira Rosen  <irar@il.ibm.com>
4875
4876         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
4877         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
4878         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
4879
4880 2008-02-19  Jan Hubicka  <jh@suse.cz>
4881
4882         * predict.c (tree_bb_level_predictions): Remove variable next
4883         mistakely introduced by previous commit.
4884
4885 2008-02-19  Jan Hubicka  <jh@suse.cz>
4886
4887         * predict.c (predict_paths_leading_to): Rewrite.
4888         (predict_paths_for_bb): New.
4889         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
4890
4891 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4892
4893         PR bootstrap/35218
4894         * Makefile.in (build_file_translate): New.
4895         (gcc-vers.texi): Use it for translating $(abs_srcdir).
4896         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
4897         * configure.ac (build_file_translate): Substitute it.
4898         * configure: Regenerate.
4899
4900 2008-02-19  Jan Hubicka  <jh@suse.cz>
4901
4902         PR rtl-optimization/34408
4903         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
4904         invalid sharing.
4905
4906 2008-02-19  Jan Hubicka  <jh@suse.cz>
4907
4908         PR middle-end/28779
4909         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
4910         call_expr.
4911
4912 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4913
4914         PR Ada/35186
4915         * config/i386/i386-modes.def: Revert the last DI alignment
4916         change until Ada people can look into it.
4917
4918 2008-02-19  Nick Clifton  <nickc@redhat.com>
4919
4920         * opts.c (print_specific_help): Fix typo in --help text.
4921
4922 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
4923
4924         PR target/35239
4925         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
4926         32-bit inline asm without asm alternatives for host GCC < 3.0.
4927
4928 2008-02-19  Richard Guenther  <rguenther@suse.de>
4929
4930         PR tree-optimization/34989
4931         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
4932         Allow propagation to INDIRECT_REF if we can simplify only.
4933
4934 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4935
4936         * c-common.c (warn_for_collisions_1): Use appropriate option when
4937         warning.
4938
4939 2008-02-19  Nick Clifton  <nickc@redhat.com>
4940
4941         PR other/31349
4942         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
4943         (handle_options): Fix indentation.
4944         (print_filtered_help): If no language-specific options were
4945         displayed tell the user how to list all the options supported by
4946         the language's front-end.
4947         (print_specific_help): Fix indentation and remove duplicate line.
4948         (common_handle_option): Handle the -v option.
4949         For --help enable the display of undocumented options if the -v
4950         switch has been included on the command line.
4951         For --help= check for overlaps in the arguments between the option
4952         classes and the language names and issue a warning when they
4953         cannot be disambiguated.
4954         * c.opt (v): Pass on to the common option handler.
4955
4956 2008-02-19  Revital Eres  <eres@il.ibm.com> 
4957
4958         * modulo-sched.c (sms_schedule): Change dump message when
4959         create_ddg function fails.
4960         (try_scheduling_node_in_cycle): Rename row to cycle.
4961         (print_partial_schedule): Rename CYCLE to ROW.
4962
4963 2008-02-19  Christian Bruel  <christian.bruel@st.com>
4964             Zdenek Dvorak  <ook@ucw.cz>
4965
4966         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
4967
4968 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
4969
4970         PR target/33555
4971         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
4972         (*x86_movdicc_0_m1_se): Ditto.
4973
4974 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
4975
4976         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
4977         (CMPtype): Define as __gcc_CMPtype.
4978         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
4979         (CMPtype): Define as __gcc_CMPtype.
4980
4981 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
4982
4983         Support valgrind 3.3 for --enable-checking=valgrind.
4984         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
4985         here.
4986         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
4987         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
4988         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
4989         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
4990         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
4991         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
4992         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
4993         respectively.
4994         * ggc-zone.c: Similar.
4995         * ggc-page.c: Similar.
4996
4997 2008-02-19  Paul Brook  <paul@codesourcery.com>
4998
4999         PR target/35071
5000         * config/arm/ieee754-df.S: Fix do_it typo.
5001         * config/arm/ieee754-sf.S: Fix do_it typo.
5002
5003 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5004
5005         PR target/35189
5006         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
5007         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
5008         (OPTION_MASK_ISA_SSE_SET): Likewise.
5009         (OPTION_MASK_ISA_SSE2_SET): Likewise.
5010         (OPTION_MASK_ISA_SSE3_SET): Likewise.
5011         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
5012         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
5013         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
5014         (OPTION_MASK_ISA_SSE4_SET): Likewise.
5015         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
5016         (OPTION_MASK_ISA_SSE5_SET): Likewise.
5017         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
5018         (OPTION_MASK_ISA_MMX_UNSET): Updated.
5019         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
5020         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
5021         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
5022         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
5023         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
5024         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
5025         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
5026         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
5027         (OPTION_MASK_ISA_SSE4): Removed.
5028         (ix86_handle_option): Turn on bits in ix86_isa_flags and
5029         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
5030         (override_options): Don't turn on implied SSE/MMX bits in
5031         ix86_isa_flags.
5032
5033 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5034
5035         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5036         32bit host.
5037
5038 2008-02-18  Joey Ye  <joey.ye@intel.com>
5039
5040         PR middle-end/34921
5041         * tree-nested.c (insert_field_into_struct): Set type alignment
5042         to field alignment if the former is less than the latter.
5043
5044 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
5045
5046         * BASE-VER: Set to 4.4.0.
5047
5048 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5049
5050         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
5051         * doc/cfg.texi: Likewise.
5052         * doc/extend.texi: Likewise.
5053         * doc/gty.texi: Likewise.
5054         * doc/invoke.texi: Likewise.
5055         * doc/loop.texi: Likewise.
5056         * doc/md.texi: Likewise.
5057         * doc/passes.texi: Likewise.
5058         * doc/rtl.texi: Likewise.
5059         * doc/sourcebuild.texi: Likewise.
5060         * doc/tm.texi: Likewise.
5061         * doc/tree-ssa.texi: Likewise.
5062
5063 2008-02-17  Richard Guenther  <rguenther@suse.de>
5064
5065         PR middle-end/35227
5066         * tree-complex.c (init_parameter_lattice_values): Handle parameters
5067         without default definition.
5068
5069 2008-02-17  Richard Guenther  <rguenther@suse.de>
5070
5071         PR tree-optimization/35231
5072         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
5073         if A | B != 1.
5074
5075 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
5076
5077         Revert:
5078         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
5079         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5080         libgcc_cmp_return mode.
5081
5082 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5083
5084         PR c/28368
5085         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
5086
5087 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
5088
5089         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
5090         multilibs.
5091
5092 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5093
5094         * doc/c-tree.texi: Use `@.' where appropriate.
5095         * doc/extend.texi: Likewise.
5096         * doc/install.texi: Likewise.
5097         * doc/invoke.texi: Likewise.
5098         * doc/loop.texi: Likewise.
5099         * doc/makefile.texi: Likewise.
5100         * doc/md.texi: Likewise.
5101         * doc/passes.texi: Likewise.
5102         * doc/standards.texi: Likewise.
5103         * doc/tm.texi: Likewise.
5104
5105 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5106
5107         PR middle-end/35196
5108         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
5109         in entry_bb.
5110         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
5111         rather than in entry_bb.
5112
5113 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5114
5115         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5116         libgcc_cmp_return mode.
5117
5118 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5119
5120         PR middle-end/35130
5121         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
5122         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
5123
5124 2008-02-15  Richard Guenther  <rguenther@suse.de>
5125             Zdenek Dvorak  <ook@ucw.cz>
5126
5127         PR tree-optimization/35164
5128         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
5129         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
5130         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5131         Only propagate addresses which do not have abnormal SSA_NAMEs
5132         in their operands.
5133
5134 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
5135
5136         PR target/35088
5137         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
5138
5139 2008-02-15  Jan Hubicka  <jh@suse.cz>
5140
5141         PR middle-end/35149
5142         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
5143
5144 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5145
5146         PR middle-end/34621
5147         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
5148         when calculating alignment_pad.
5149
5150 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5151
5152         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
5153         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
5154         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
5155         and STACK_BOUNDARY define.
5156
5157 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
5158
5159         PR preprocessor/35061
5160         * c-pragma.c (handle_pragma_pop_macro): Check that
5161         pushed_macro_table has been allocated.
5162
5163 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
5164
5165         PR middle-end/35136
5166         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
5167         (force_gimple_operand): Likewise.
5168         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
5169         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
5170         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
5171         (find_interesting_uses_address): Check addressability and alignment
5172         of the base expression only after substituting bases of IVs into it.
5173
5174 2008-02-14  Michael Matz  <matz@suse.de>
5175
5176         PR target/34930
5177         * function.c (instantiate_virtual_regs_in_insn): Reload address
5178         before falling back to reloading the whole operand.
5179
5180 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5181
5182         * config/s390/s390.c (s390_mainpool_start): Emit the pool
5183         before the first section switch note.
5184
5185 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5186
5187         * doc/bugreport.texi: Update copyright years.
5188         * doc/c-tree.texi: Likewise.
5189         * doc/cfg.texi: Likewise.
5190         * doc/cpp.texi: Likewise.
5191         * doc/cppinternals.texi: Likewise.
5192         * doc/fragments.texi: Likewise.
5193         * doc/frontends.texi: Likewise.
5194         * doc/gcc.texi: Likewise.
5195         * doc/gty.texi: Likewise.
5196         * doc/hostconfig.texi: Likewise.
5197         * doc/implement-c.texi: Likewise.
5198         * doc/libgcc.texi: Likewise.
5199         * doc/loop.texi: Likewise.
5200         * doc/makefile.texi: Likewise.
5201         * doc/options.texi: Likewise.
5202         * doc/passes.texi: Likewise.
5203         * doc/rtl.texi: Likewise.
5204         * doc/sourcebuild.texi: Likewise.
5205         * doc/standards.texi: Likewise.
5206         * doc/tree-ssa.texi: Likewise.
5207         * doc/trouble.texi: Likewise.
5208
5209         * doc/extend.texi: Use @: or add comma where appropriate.
5210         * doc/invoke.texi: Likewise.
5211         * doc/tm.texi: Likewise.
5212
5213 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
5214
5215         PR target/34393
5216         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
5217         to a reg.
5218
5219 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
5220
5221         * doc/md.texi (clz, ctz): Add reference.
5222         * doc/rtl.texi (clz, ctz): Likewise.
5223
5224 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5225
5226         PR other/35148
5227         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
5228         srcdir.
5229
5230 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
5231
5232         * config/s390/s390.c (struct constant_pool): New field
5233         emit_pool_after added.
5234         (s390_mainpool_start): Set the emit_pool_after flag according
5235         to the section switch notes.
5236         (s390_mainpool_finish): Consider emit_pool_after when emitting
5237         the literal pool at the end of the function.
5238         (s390_chunkify_start): Force literal pool splits at section
5239         switch notes.
5240
5241 2008-02-13  Michael Matz  <matz@suse.de>
5242
5243         PR debug/35065
5244         * var-tracking.c (clobber_variable_part): Correctly traverse the
5245         list.
5246
5247 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5248
5249         PR 29673
5250         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
5251         Add -fdump-ipa-inline.
5252         * tree-dump.c (dump_files): Remove tree-inlined dump.
5253         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
5254         
5255 2008-02-12  Richard Guenther  <rguenther@suse.de>
5256
5257         PR tree-optimization/35171
5258         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
5259         default defs.
5260
5261 2008-02-12  Richard Guenther  <rguenther@suse.de>
5262
5263         PR middle-end/35163
5264         * fold-const.c (fold_widened_comparison): Use get_unwidened in
5265         value-preserving mode.  Disallow final truncation.
5266
5267 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
5268
5269         PR middle-end/35136
5270         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
5271         code from here to...
5272         (force_gimple_operand): ...here.
5273
5274 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
5275
5276         PR c++/35144
5277         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
5278         non-compatible pointers.
5279         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
5280         different FIELD_DECLs, try harder by comparing field offsets, sizes
5281         and types.
5282
5283         PR inline-asm/35160
5284         * function.c (match_asm_constraints_1): Don't replace the same input
5285         multiple times.
5286
5287 2008-02-12  Anatoly Sokolov <aesok@post.ru>
5288
5289         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
5290         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
5291         (expand_epilogue): Restore RAMPZ register.
5292         * config/avr/avr.md (RAMPZ_ADDR): New constant.
5293
5294 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
5295
5296         * config/i386/cygwin.asm: (__alloca): Correct calling
5297         convention and alignment.
5298         (__chkstk): Force 8 byte stack alignment.
5299
5300 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
5301             Richard Guenther  <rguenther@suse.de>
5302
5303         PR tree-optimization/33992
5304         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
5305         the zero we compare against.
5306
5307 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
5308
5309         PR libfortran/35063
5310         * gthr-win32.h (__gthread_mutex_destroy_function): New function
5311         to CloseHandle after unlocking to prevent accumulation of handle
5312         count.
5313
5314 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5315
5316         PR middle_end/34150
5317         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
5318         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
5319         and update LABEL_NUSES during and after reload.
5320
5321 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
5322
5323         PR middle-end/34627
5324         * combine.c (simplify_if_then_else): Make sure the comparison is
5325         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
5326
5327 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
5328
5329         PR bootstrap/35051
5330         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
5331         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
5332         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
5333         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
5334         * tree.h (get_type_static_bounds): Likewise.
5335
5336 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5337
5338         * doc/invoke.texi (Option Summary, C++ Dialect Options)
5339         (Objective-C and Objective-C++ Dialect Options, Warning Options):
5340         Make -Wfoo language annotations match what the compiler outputs.
5341
5342 2008-02-08  Sa Liu  <saliu@de.ibm.com>
5343
5344         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
5345         intrinsics spu_convts, spu_convtu, spu_convtf.
5346         * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.
5347
5348 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
5349
5350         * doc/extend.texi (Function Attributes) <noinline>: Mention
5351         asm ("") as method to keep calls.
5352
5353 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5354
5355         PR other/32754
5356         * doc/options.texi (Options): Replace references to opts.sh with
5357         optc-gen.awk.
5358         * opts-common.c: Likewise.
5359         * optc-gen.awk: Likewise.
5360         
5361 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
5362
5363         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
5364
5365 2008-02-07  Richard Henderson  <rth@redhat.com>
5366
5367         PR rtl-opt/33410
5368         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
5369         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
5370         funny mode.
5371
5372 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
5373
5374         PR tree-optimization/35085
5375         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
5376         for operand entry oe2 in addition to operand entry oe3 in order to
5377         expose more opportunities for vectorizer sum reduction.
5378
5379 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5380
5381         PR other/35107
5382         * Makefile.in (LIBS): Remove $(GMPLIBS).
5383         (cc1-dummy, cc1): Add $(GMPLIBS).
5384
5385 2008-02-06  Jan Hubicka  <jh@suse.cz>
5386
5387         PR target/23322
5388         * i386.md (moddf_integer): Do not produce partial memory stalls for
5389         targets where it hurts.
5390
5391 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
5392
5393         PR target/35083
5394         * optabs.c (expand_float): Do not check for decimal modes when
5395         expanding unsigned integer through signed conversion.
5396
5397 2008-02-06  Nick Clifton  <nickc@redhat.com>
5398
5399         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
5400         inside the clobber with a match_operand and duplicated operand
5401         number in the constraint.
5402         (ineqbranchsi): Delete redundant comment.
5403
5404 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
5405
5406         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
5407         builtin_define ("__USE_INIT_FINI__").
5408         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
5409         -msx multilibs.
5410         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
5411
5412 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5413
5414         PR documentation/30330
5415         * doc/invoke.texi (C++ Dialect Options)
5416         (Objective-C and Objective-C++ Dialect Options, Warning Options):
5417         For each warning option -Wfoo that allows -Wno-foo, ensure both
5418         -Wfoo and -Wno-foo are listed in the option index.  Fix index
5419         entry of -Wswitch-default, index -Wnormalized= including the
5420         `=', and -Wlarger-than-@var{len} including @var{len}.
5421
5422 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
5423
5424         * config/i386/i386.md (floatunssisf2): Use
5425         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
5426         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
5427         Macroize expander using MODEF mode iterator.
5428
5429 2008-02-05  Diego Novillo  <dnovillo@google.com>
5430
5431         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
5432
5433         PR 33738
5434         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
5435
5436 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5437
5438         PR other/35070
5439         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
5440
5441 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
5442
5443         PR target/35084
5444         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
5445         to indicate if a message should be generated.
5446         (init_cumulative_args): Updated.
5447         (function_value_32): Likewise.
5448
5449 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
5450
5451         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
5452
5453 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
5454
5455         PR target/35083
5456         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
5457         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
5458
5459 2008-02-04  Diego Novillo  <dnovillo@google.com>
5460
5461         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
5462
5463         PR 33738
5464         * tree-vrp.c (vrp_evaluate_conditional): With
5465         -Wtype-limits, emit a warning when comparing against a
5466         constant outside the natural range of OP0's type.
5467
5468 2008-02-04  Richard Guenther  <rguenther@suse.de>
5469
5470         PR middle-end/33631
5471         * expr.c (count_type_elements): Give for unions instead of
5472         guessing.
5473
5474 2008-02-04  Richard Guenther  <rguenther@suse.de>
5475
5476         PR middle-end/35043
5477         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
5478         to TYPE_DOMAINs base type instead of using bitsizetype here.
5479
5480 2008-02-03  Jason Merrill  <jason@redhat.com>
5481
5482         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
5483
5484 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5485
5486         PR other/29972
5487         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
5488         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
5489         (RS/6000 and PowerPC Options): Fix typos and markup.
5490         * doc/passes.texi (Tree-SSA passes): Likewise.
5491
5492 2008-02-02  Michael Matz  <matz@suse.de>
5493
5494         PR target/35045
5495         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
5496         from record_last_reg_set_info.
5497         (record_last_reg_set_info): Take an RTX argument, iterate over all
5498         constituent hardregs.
5499         (record_last_set_info, record_opr_changes): Change calls to
5500         new signature or to record_last_reg_set_info_regno.
5501
5502 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
5503
5504         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
5505
5506 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
5507
5508         PR rtl-optimization/34773
5509         * reg-notes.def (EQUAL): Mention significance of combination of
5510         REG_EQUAL and REG_RETVAL.
5511         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
5512         insn that has a REG_RETVAL.
5513
5514 2008-02-01  Roger Sayle  <roger@eyesopen.com>
5515
5516         PR bootstrap/33781
5517         * configure.ac (--enable-fixed-point): Disable unless explicitly
5518         requested on IRIX.
5519         * configure: Regenerate.
5520
5521 2008-02-01  Richard Guenther  <rguenther@suse.de>
5522
5523         PR other/35042
5524         * invoke.texi (-finline-limit): Remove no longer true parts
5525         of the documentation.  Note that there is no default value.
5526
5527 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
5528             Mark Mitchell  <mark@codesourcery.com>
5529             Ben Elliston  <bje@au.ibm.com>
5530
5531         PR c/29326
5532         * doc/extend.texi (Other Builtins): Document.
5533
5534 2008-01-31  Tom Browder <tom.browder@gmail.com>
5535
5536         * doc/c-tree.texi (Types): Fix grammar.
5537         (Expression trees): Ditto.
5538         * doc/passes.texi (Tree-SSA passes): Ditto.
5539         
5540         * doc/configterms.texi (Configure Terms): Fix typo.
5541         * doc/cpp.texi (Common Predefined Macros): Ditto.
5542         * doc/md.texi (Machine Constraints): Ditto.
5543         
5544         * doc/makefile.texi (Makefile): Add comma.
5545
5546 2008-01-31  Tom Browder  <tom.browder@gmail.com>
5547             Gerald Pfeifer  <gerald@pfeifer.com>
5548         
5549         * doc/sourcebuild.texi (Front End): Remove references to CVS
5550         and CVSROOT/modules.
5551         (Texinfo Manuals): Replace reference to CVS by one to SVN.
5552         (Back End): Remove reference to CVS.
5553
5554 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
5555
5556         PR target/34900
5557         * config/mips/mips.c (gen_load_const_gp): New function, taking a
5558         comment from...
5559         (mips16_gp_pseudo_reg): ...here.
5560         * config/mips/mips.md (load_const_gp): Replace with...
5561         (load_const_gp_<mode>): ...this :P-based insn.
5562
5563 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5564
5565         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
5566         options. Minor fixes.
5567         (-std): Move reference to standards closer to where language
5568         standards are first mentioned.
5569         
5570 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
5571
5572         PR rtl-optimization/34995
5573         * reload.c (alternative_allows_const_pool_ref): Take an rtx
5574         parameter and return a bool.  If the rtx parameter is nonnull,
5575         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
5576         (find_reloads): Update call accordingly.  Pass the new operand
5577         if it needed no address reloads, otherwise pass null.
5578
5579 2008-01-30  Richard Henderson  <rth@redhat.com>
5580
5581         PR c/34993
5582         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
5583         for unbounded arrays.
5584
5585 2008-01-30  Silvius Rus  <rus@google.com>
5586
5587         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
5588
5589 2008-01-30  Jan Hubicka  <jh@suse.cz>
5590
5591         PR target/34982
5592         * i386.c (init_cumulative_args): Use real function declaration when
5593         calling locally.
5594
5595 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5596
5597         PR rtl-optimization/34998
5598         * global.c (build_insn_chain): Treat non-subreg_lowpart
5599         SUBREGs of pseudos as clobbering all the words covered by the
5600         SUBREG, not just all the bytes.
5601         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
5602         original df_ref rather than an extract parameter.
5603         (global_conflicts): Update call accordingly.
5604
5605 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
5606
5607         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
5608         the overflow check to make it easier to read.
5609         (__fixtfdi): Change the type of the ll member in union
5610         long_double to UDItype_x.
5611
5612 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
5613
5614         PR middle-end/34969
5615         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
5616         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
5617         * tree-inline.c (fold_marked_statements): Call
5618         cgraph_update_edges_for_call_stmt if folding a call statement.
5619         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
5620         debug_generic_stmt calls, reset it back afterwards.
5621
5622         PR c/35017
5623         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
5624         static decls.
5625         * c-typeck.c (build_external_ref): Don't pedwarn about
5626         static vars in current function's scope.
5627
5628 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
5629
5630         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
5631
5632 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
5633
5634         PR c/35002
5635         * ipa-struct-reorg.c: Fix spelling.
5636         * params.def: Ditto.
5637
5638 2008-01-29  Richard Guenther  <rguenther@suse.de>
5639
5640         PR middle-end/35006
5641         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
5642         field.
5643         * tree-inline.c (remap_type): Increment remapping_type_depth
5644         around remapping types.
5645         (copy_body_r): Only add referenced variables if they are referenced
5646         from code, not types.
5647
5648 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
5649
5650         PR c++/34055
5651         PR c++/34103
5652         PR c++/34219
5653         PR c++/34606
5654         PR c++/34753
5655         PR c++/34754
5656         PR c++/34755
5657         PR c++/34919
5658         PR c++/34961
5659         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
5660         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
5661
5662 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
5663
5664         PR target/34412
5665         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
5666         pointer for tiny stack.
5667
5668 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
5669
5670         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
5671
5672 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
5673
5674         * config/vx-common.h: Fix typo in comment.
5675
5676 2008-01-28  Ian Lance Taylor  <iant@google.com>
5677
5678         PR c++/34862
5679         PR c++/33407
5680         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5681         coalesce pointers if they have different DECL_NO_TBAA_P values.
5682         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
5683         between variables with different DECL_NO_TBAA_P values.
5684
5685 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
5686
5687         PR 31535
5688         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
5689         are not legitimate small data references on SPE targets.
5690
5691 2008-01-28  David Daney  <ddaney@avtrex.com>
5692
5693         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
5694
5695 2008-01-28  David Daney  <ddaney@avtrex.com>
5696
5697         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
5698
5699 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
5700
5701         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
5702         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
5703         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
5704         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
5705         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
5706         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
5707         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
5708         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
5709
5710 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
5711
5712         * basic-block.h (condjump_equiv_p): Fix comment.
5713
5714 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
5715
5716         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
5717         print_generic_stmt_indented): Fix comment.
5718
5719 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
5720
5721         * configure.ac (__stack_chk_fail): Add detecion for availability
5722         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
5723         * configure: Regenerate.
5724
5725 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
5726
5727         PR middle-end/34688
5728         * final.c (output_addr_const): Handle TRUNCATE.
5729
5730 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
5731
5732         PR target/34711
5733         * tree-ssa-loop-ivopts.c (comp_cost): New type.
5734         (zero_cost, infinite_cost): New constants.
5735         (struct cost_pair): Change type of cost to comp_cost.
5736         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
5737         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
5738         New functions.
5739         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
5740         split_address_cost, ptr_difference_cost, difference_cost,
5741         get_computation_cost_at, get_computation_cost,
5742         determine_use_iv_cost_generic, determine_use_iv_cost_address,
5743         determine_use_iv_cost_condition, determine_use_iv_costs,
5744         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
5745         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
5746         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
5747         Change type of cost to comp_cost.
5748         (determine_iv_cost): Increase cost of non-original ivs, instead
5749         of decreasing the cost of original ones.
5750         (get_address_cost): Indicate the complexity of the addressing mode 
5751         in comp_cost.
5752         (try_add_cand_for): Prefer using ivs not specific to some object.
5753         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
5754
5755 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
5756             Janis Johnson  <janis187@us.ibm.com>
5757
5758         PR target/34814
5759         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
5760         (TARGET_INSTANTIATE_DECLS): Likewise.
5761         * target.h (expand_to_rtl_hook): New target hook.
5762         (instantiate_decls): Likewise.
5763         * function.c (instantiate_decl): Make non-static.  Rename to...
5764         (instantiate_decl_rtl): ... this.
5765         (instantiate_expr): Use instantiate_decl_rtl.
5766         (instantiate_decls_1): Likewise.
5767         (instantiate_decls): Likewise.
5768         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
5769         * function.h (instantiate_decl_rtl): Add prototype.
5770         * cfgexpand.c (target.h): New include.
5771         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
5772         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
5773         (TARGET_INSTANTIATE_DECLS): Likewise.
5774         (TARGET_INITIALIZER): New target hooks added.
5775         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
5776         New prototype.
5777         * config/rs6000/rs6000.c (tree-flow.h): New include.
5778         (machine_function): Add sdmode_stack_slot field.
5779         (rs6000_alloc_sdmode_stack_slot): New function.
5780         (rs6000_instantiate_decls): Likewise.
5781         (rs6000_secondary_memory_needed_rtx): Likewise.
5782         (rs6000_check_sdmode): Likewise.
5783         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
5784         (TARGET_INSTANTIATE_DECLS): Likewise.
5785         (rs6000_hard_regno_mode_ok): Allow SDmode.
5786         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
5787         (rs6000_emit_move): Handle SDmode.
5788         (function_arg_advance): Likewise.
5789         (function_arg): Likewise.
5790         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
5791         SDmode var args for 32-bit compiles.
5792         (rs6000_secondary_reload_class): Handle SDmode.
5793         (rs6000_output_function_epilogue): Likewise.
5794         (rs6000_function_value): Simplify if statement.
5795         (rs6000_libcall_value): Likewise.
5796         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
5797         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
5798         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
5799         (movsd_hardfloat): New define_insn.
5800         (movsd_softfloat): Likewise.
5801         (movsd_store): Likewise.
5802         (movsd_load): Likewise.
5803         (extendsddd2): Likewise.
5804         (extendsdtd2): Likewise.
5805         (truncddsd2): Likewise.
5806         (movdd_hardfloat64): Fixup comment.
5807         (UNSPEC_MOVSD_LOAD): New constant.
5808         (UNSPEC_MOVSD_STORE): Likewise.
5809
5810 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
5811
5812         PR c++/34965
5813         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
5814         TRUTH_XOR_EXPR.
5815         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
5816         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
5817         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
5818         and TRUTH_XOR_EXPR.
5819
5820 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
5821
5822         PR target/34794
5823         * config.gcc: Separate AIX 5.3 from AIX 6.1.
5824         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5825         __LONGDOUBLE128 too.
5826         * config/rs6000/aix61.h: New file.
5827
5828 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
5829
5830         PR rtl-optimization/34959
5831         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
5832         popcount and parity rtxes the same mode as their operand.
5833         Truncate or extend the result to the return value's mode
5834         if necessary.
5835
5836 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
5837
5838         PR target/34981
5839         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
5840         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
5841         to GOT_VERSION_REGNUM.
5842         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
5843         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
5844         * config/mips/mips.c (mips_emit_call_insn): New function.
5845         (mips_call_tls_get_addr): Call mips_expand_call directly.
5846         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
5847         emit_call_insn.
5848         (mips16_build_call_stub): Likewise.  Return the call insn or null.
5849         (mips_expand_call): Update the call to mips16_build_call_stub
5850         accordingly and a remove redundant condition.  Assert that MIPS16
5851         stubs do not use lazy binding.  Use mips_emit_call_insn and return
5852         the call insn.
5853         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
5854         TARGET_USE_GOT.
5855         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
5856         (mips_avoid_hazard): Remove hazard_set handling.
5857         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
5858         (UNSPEC_RESTORE_GP): ...this.
5859         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
5860         (FAKE_CALL_REGNO): Rename to...
5861         (GOT_VERSION_REGNUM): ...this.
5862         (type): Add "ghost" value.  Add an associated insn reservation.
5863         (hazard_set): Remove.
5864         (exception_receiver): Rename to...
5865         (restore_gp): ...this and update the unspec identifier accordingly.
5866         (exception_receiver, nonlocal_got_receiver): New expanders.
5867         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
5868         FAKE_CALL_REGNO.  Remove hazard_set attribute.
5869         (set_got_version, update_got_version): New patterns.
5870
5871 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
5872
5873         PR target/34970
5874         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
5875
5876 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
5877
5878         PR other/31955
5879         * doc/install.texi2html: Generate gcc-vers.texi.
5880
5881 2008-01-25  DJ Delorie  <dj@redhat.com>
5882
5883         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5884
5885 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
5886
5887         * config/c4x: Remove directory.
5888         * config.gcc (crx-*, mt-*): Mark obsolete.
5889         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
5890         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
5891         sh-*-rtemscoff*): Remove cases.
5892         * defaults.h (C4X_FLOAT_FORMAT): Remove.
5893         * real.c (encode_c4x_single, decode_c4x_single,
5894         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
5895         c4x_extended_format): Remove.
5896         * real.h (c4x_single_format, c4x_extended_format): Remove.
5897         * doc/extend.texi (interrupt, naked): Remove mention of attributes
5898         on C4x.
5899         (Pragmas): Remove comment about c4x pragmas.
5900         * doc/install.texi (c4x): Remove target-specific instructions.
5901         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
5902         * doc/md.texi (Machine Constraints): Remove C4x documentation.
5903         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
5904         refer to C4x source files as examples.
5905         (C4X_FLOAT_FORMAT): Remove documentation.
5906
5907 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
5908
5909         * config/bfin/bfin.c (override_options): Reorder tests so that
5910         flag_pic gets enabled for -msep-data.
5911
5912 2008-01-25  Richard Guenther  <rguenther@suse.de>
5913
5914         PR middle-end/32244
5915         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
5916         to its bitfield precision if required.
5917
5918 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
5919
5920         PR middle-end/33880
5921         * tree-nested.c (walk_omp_for): New function.
5922         (convert_nonlocal_reference, convert_local_reference): Call
5923         walk_omp_for on OMP_FOR.
5924         (convert_call_expr): Call walk_body on OMP_FOR's
5925         OMP_FOR_PRE_INIT_BODY.
5926
5927 2008-01-25  Richard Guenther  <rguenther@suse.de>
5928
5929         PR tree-optimization/34966
5930         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
5931         default defs and PHI_NODEs we have to insert after the
5932         defining statement.
5933
5934 2008-01-24  Nick Clifton  <nickc@redhat.com>
5935
5936         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
5937         Provide a default definition.
5938         (LIBGCC2_UNITS_PER_WORD): Likewise.
5939
5940         * config/stormy16/stormy16.c: Include df.h for the prototype
5941         for df_regs_ever_live_p.
5942         (xstormy16_expand_builtin_va_start): Convert the stack offset
5943         into a component_ref and then use POINTER_PLUS_EXPR to add it
5944         to the incoming_virtual_args_rtx.
5945         (xstormy16_gimplify_va_arg_expr): Rename to
5946         xstormy16_gimplify_va_arg_expr.
5947         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
5948         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
5949         xstormy16_gimplify_va_arg_expr.
5950         Fix up some formatting issues.
5951
5952         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
5953         Move to predicates.md.
5954         (xs_hi_general_operand): Likewise.
5955         (xs_hi_nonmemory_operand): Likewise.
5956         * config/stormy16/predicates.md:
5957         (xstormy16_carry_plus_operand): New predicate.
5958         (xs_hi_general_operand): New predicate.
5959         (xs_hi_nonmemory_operand): New predicate.
5960         * config/stormy16/stormy16-protos.h:
5961         (xstormy16_carry_plus_operand): Delete prototype.
5962         (xs_hi_general_operand): Likewise.
5963         (xs_hi_nonmemory_operand): Likewise.
5964
5965         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
5966         modifiers as they are no longer needed and they can trigger
5967         reload spill failures.
5968
5969         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
5970         with a match_operand in order to help reload.
5971
5972         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
5973         constraint with 'e' for the 8th alternative as this version of
5974         the mov.w instruction only accepts the lower 8 registers.
5975
5976 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
5977
5978         PR target/34856
5979         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
5980         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
5981         vector elements.
5982
5983 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
5984
5985         PR middle-end/33333
5986         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
5987
5988 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
5989
5990         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
5991         New functions.
5992         (remove_structure): Update allocations list before removing structure.
5993         
5994 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
5995
5996         * ipa-struct-reorg.c (is_safe_cond_expr, 
5997         create_new_stmts_for_cond_expr): Use integer_zerop function,
5998         that recognize not only zero-pointer, but zero-integer too.
5999
6000 2008-01-25  Ben Elliston  <bje@au.ibm.com>
6001
6002         PR other/22232
6003         * fixproto: Escape "." in sed expression that strips leading "./".
6004
6005 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6006
6007         PR driver/34904
6008         * gcc.c (SWITCH_OK): Removed.
6009         (SWITCH_LIVE): Changed to bit.
6010         (SWITCH_FALSE): Likewise.
6011         (SWITCH_IGNORE): Likewise.
6012         (switchstr): Change live_cond to unsigned int.
6013         (process_command): Replace SWITCH_OK with 0.
6014         (do_self_spec): Likewise.
6015         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
6016         (give_switch): Likewise.
6017         (used_arg): Likewise.
6018         (do_spec_1): Set the SWITCH_IGNORE bit.
6019         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
6020         bits.  Set the SWITCH_LIVE bit.
6021
6022 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6023
6024         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
6025
6026 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
6027
6028         PR tree-optimization/34472
6029         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
6030         parameter to a "bool *" and set *DATA to false if there is
6031         an unsafe access.  Do not delete the structure here.
6032         (check_cond_exprs): Delete it here instead.
6033         (check_cond_exprs, exclude_cold_structs): Do not increase
6034         I when removing a structure.
6035
6036 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
6037
6038         PR target/34856
6039         * config/i386/i386.c (ix86_expand_vector_init): Consider only
6040         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
6041
6042 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
6043
6044         PR middle-end/34934
6045         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
6046         a fixed vector for stack.
6047
6048 2008-01-24  Ben Elliston  <bje@au.ibm.com>
6049
6050         PR c++/25701
6051         * doc/gcc.texi (Software development): Add a direntry for g++.
6052         
6053 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
6054
6055         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
6056         stale and straggling -fforce-addr comments above.
6057
6058         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
6059         define.
6060         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
6061         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
6062
6063 2008-01-23  Michael Matz  <matz@suse.de>
6064
6065         PR debug/34895
6066         * dwarf2out.c (force_type_die): Use modified_type_die instead of
6067         gen_type_die.
6068
6069 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
6070
6071         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
6072         malloc result type.
6073
6074 2008-01-23 Anatoly Sokolov <aesok@post.ru>
6075
6076         * config/avr/avr.c (avr_current_arch): New variable.
6077         (avr_arch_types): Add 'avr31' and 'avr51' entries.
6078         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
6079         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
6080         (avr_override_options): Init 'avr_current_arch'. 
6081         (base_arch_s): Move from here...
6082         * config/avr/avr.h (base_arch_s): ... here. Add new members 
6083         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
6084         'mega' to 'have_jmp_call'.
6085         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
6086         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
6087         macros.
6088         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
6089         architectures.
6090         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
6091         MULTILIB_MATCHES): (Ditto.).
6092
6093 2008-01-23  Richard Guenther  <rguenther@suse.de>
6094
6095         PR middle-end/31529
6096         * cgraphunit.c (cgraph_reset_node): Always mark the node
6097         not reachable if it is not queued already.
6098
6099 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
6100
6101         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
6102         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
6103         (cputype_selected): New static variable.
6104         (bfin_handle_option): Set it if -mcpu is used.
6105         (override_option): Select default set of workarounds if no cpu type
6106         selected on the command line.
6107         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
6108
6109         From  Michael Frysinger  <michael.frysinger@analog.com>
6110         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
6111         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
6112
6113         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
6114         for bf547, bf523, bf524, and bf526.
6115         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
6116         bf526.
6117         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6118         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
6119         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
6120         __ADSPBF547__ and __ADSPBF54x__ for bf547.
6121         * doc/invoke.texi (Blackfin Options): Document that
6122         -mcpu now accept bf547, bf523, bf524, and bf526.
6123
6124 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
6125
6126         PR rtl-optimization/34628
6127         * combine.c (try_combine): Stop and undo after the first combination
6128         if an autoincrement side-effect on the first insn has effectively
6129         been lost.
6130
6131 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
6132
6133         PR target/34529
6134         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
6135         Offset addresses are not valid for Altivec or paired float modes.
6136
6137 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
6138
6139         PR c++/34607
6140         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
6141         if DECL_INITIAL (decl) is error_mark_node.
6142
6143         PR c++/34914
6144         * c-common.c (handle_vector_size_attribute): Only allow
6145         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
6146         the same way as pointer, array etc. types.
6147         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
6148
6149         PR c++/34917
6150         * tree.c (build_type_attribute_qual_variant): Call
6151         build_qualified_type if attributes are equal, but quals are not.
6152
6153 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6154
6155         PR 32102
6156         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
6157         * flags.h (warn_strict_aliasing): Remove.
6158         (warn_strict_overflow): Remove.
6159         * opts.c (warn_strict_aliasing): Remove.
6160         (warn_strict_overflow): Remove.
6161         * c-opts.c (c_common_handle_option): -Wall only sets
6162         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
6163         (c_common_post_options): Give default values to -Wstrict-aliasing
6164         and -Wstrict-overflow if they are uninitialized.
6165         * common.opt (Wstrict-aliasing): Specify Var and Init.
6166         (Wstrict-overflow): Likewise.
6167
6168 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
6169
6170         PR rtl-optimization/26854
6171         PR rtl-optimization/34400
6172         PR rtl-optimization/34884
6173         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
6174         DF_RD->gen.
6175         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
6176         (df_rd_bb_info.expanded_lr_out): Deleted
6177         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
6178         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
6179         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
6180         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
6181         Removed code to allocate, initialize or free expanded_lr_out.
6182         (df_rd_bb_local_compute_process_def): Restructured to make more
6183         understandable.
6184         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
6185         sets if the sets are being trimmed.
6186
6187 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
6188
6189         PR bootstrap/32287
6190         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
6191         (as_vers): Likewise.
6192         * configure: Regenerated.
6193
6194 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6195
6196         PR middle-end/33092
6197         * tree-pass.h (pass_build_alias): New pass.
6198         * tree-ssa-alias.c (gate_build_alias): New.
6199         (pass_build_alias): New.
6200         * passes.c (init_optimization_passes): Add pass_build_alias after
6201         pass_create_structure_vars.
6202
6203 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
6204
6205         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
6206         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
6207         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
6208         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
6209         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
6210         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
6211         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
6212         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
6213         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
6214         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
6215         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
6216         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
6217         * config/s390/s390.md (FP_ALL): New mode iterator.
6218         (_d): New mode attribute.
6219         ("*signbit<mode>2>"): Changed mode of first operand.
6220         ("isinf<mode>2"): Changed mode of first operand.
6221         ("*TDC_insn"): Adaptation for DFP modes.
6222
6223 2008-01-22  Ben Elliston  <bje@au.ibm.com>
6224
6225         * tree.c (check_qualified_type): Improve function description.
6226
6227 2008-01-21  Jason Merrill  <jason@redhat.com>
6228
6229         PR c++/34196
6230         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
6231         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
6232         if it is set.
6233
6234 2008-01-21  DJ Delorie  <dj@redhat.com>
6235
6236         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
6237         return zero.
6238
6239 2008-01-21  Richard Guenther  <rguenther@suse.de>
6240
6241         PR middle-end/34856
6242         * tree-cfg.c (verify_expr): Allow all invariant expressions
6243         instead of just constant class ones as reference argument.
6244         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
6245         like any other constant.
6246         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6247
6248 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
6249
6250         * regmove.c (fixup_match_1): Update call crossed frequencies.
6251
6252 2008-01-21  Richard Guenther  <rguenther@suse.de>
6253
6254         PR c/34885
6255         * tree-inline.c (setup_one_parameter): Deal with mismatched
6256         types using a VIEW_CONVERT_EXPR.
6257
6258 2008-01-21  Alon Dayan  <alond@il.ibm.com>
6259             Olga Golovanevsky  <olga@il.ibm.com>
6260         
6261         PR tree-optimization/34701
6262         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
6263         when the structure size is not a power of 2.
6264
6265 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
6266
6267         * doc/install.texi: Add doc for --enable-checking=df.
6268         
6269 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6270
6271         PR rtl-optimization/34808
6272         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
6273
6274 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
6275
6276         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
6277         input.
6278
6279 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
6280
6281         PR rtl-optimization/26854
6282         PR rtl-optimization/34400
6283         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
6284         DF_RD->gen.
6285         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
6286         (df_rd_bb_info.expanded_lr_out): New.
6287         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
6288         * loop_iv.c (iv_analysis_loop_init): Ditto.
6289         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
6290         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
6291         Added code to allocate, initialize or free expanded_lr_out.
6292         (df_rd_bb_local_compute_process_def): Restructured to make
6293         more understandable.
6294         (df_rd_confluence_n): Add code to do nothing with fake edges and
6295         code to no apply invalidate_by_call sets if the sets are being trimmed.
6296         (df_lr_local_finalize): Renamed to df_lr_finalize.
6297         (df_live_local_finalize): Renamed to df_live_finalize.
6298
6299 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
6300
6301         PR target/34831
6302         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
6303         deciding whether to use reciprocal instructions.
6304
6305 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
6306
6307         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
6308         dwarf2out_note_section_used if cold_text_section is NULL.
6309
6310 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
6311
6312         PR gcov-profile/34610
6313         * tree-cfg.c (make_edges): Mark both outgoing edges from
6314         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
6315         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
6316         from OMP_FOR and OMP_CONTINUE outgoing edges.
6317
6318         * tree-profile.c (tree_profiling): Return early if
6319         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
6320         at the end.
6321         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
6322         from cfun to child_cfun.
6323         * function.h (struct function): Add after_tree_profile bit.
6324
6325 2008-01-19 Anatoly Sokolov <aesok@post.ru>
6326
6327         * config/avr/avr.S (_exit): Disable interrupt.
6328
6329 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
6330             Steven Bosscher  <stevenb.gcc@gmail.com>
6331
6332         PR rtl-optimization/26854
6333         PR rtl-optimization/34400
6334         * df-problems.c (df_live_scratch): New scratch bitmap.
6335         (df_live_alloc): Allocate df_live_scratch when doing df_live.
6336         (df_live_reset): Clear the proper bitmaps.
6337         (df_live_bb_local_compute): Only process the artificial defs once
6338         since the order is not important.
6339         (df_live_init): Init the df_live sets only with the variables
6340         found live by df_lr.
6341         (df_live_transfer_function): Use the df_lr sets to prune the
6342         df_live sets as they are being computed.  
6343         (df_live_free): Free df_live_scratch.
6344
6345 2008-01-18  Ian Lance Taylor  <iant@google.com>
6346
6347         * common.opt: Add fmerge-debug-strings.
6348         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
6349         flag_merge_debug_strings rather than flag_merge_constants.
6350         * doc/invoke.texi (Option Summary): Mention
6351         -fmerge-debug-strings.
6352         (Debugging Options): Document -fmerge-debug-strings.
6353
6354 2008-01-18  Ian Lance Taylor  <iant@google.com>
6355
6356         PR c++/33407
6357         * tree.h (DECL_IS_OPERATOR_NEW): Define.
6358         (struct tree_function_decl): Add new field operator_new_flag.
6359         * tree-inline.c (expand_call_inline): When inlining a call to
6360         operator new, force the return value to go into a variable, and
6361         set DECL_NO_TBAA_P on that variable.
6362         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
6363
6364 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
6365
6366         PR debug/34484
6367         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
6368         DWARF2_DEBUGGING_INFO.
6369         (dwarf2out_note_section_used): Ditto.  Add prototype.
6370         (have_multiple_function_sections, text_section_used,
6371         cold_text_section_used, *cold_text_sections): Move declarations
6372         before their uses.
6373
6374 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
6375
6376         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
6377         field and add signal_ra.
6378         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
6379         assignments to frame state pc.  Move end of stack check after
6380         MD_FALLBACK_FRAME_STATE_FOR.
6381         (uw_update_context_1): Use frame state signal_regs if set, instead
6382         of checking signal_frame flag.
6383         (uw_update_context): Use frame state signal_ra if set.
6384         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
6385         * config/xtensa/linux-unwind.h: New file.
6386
6387 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
6388
6389         * modulo-sched.c (get_sched_window): Fix comment typo.
6390
6391 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
6392
6393         PR tree-optimization/34648
6394         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
6395
6396 2008-01-17  Anatoly Sokolov <aesok@post.ru>
6397
6398         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
6399         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
6400
6401 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
6402
6403         PR rtl-optimization/34400
6404         * df-core.c (df_worklist_dataflow_overeager,
6405         df_worklist_dataflow_doublequeue): New functions.
6406         (df_worklist_dataflow): Two different worklist solvers.
6407         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
6408         New param.
6409
6410 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6411
6412         PR testsuite/34821
6413         * doc/invoke.texi: Document the dependence on pthread for fopenmp
6414         and ftree-parallelize-loops.
6415
6416 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
6417
6418         PR rtl-optimization/34826
6419         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
6420
6421 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6422
6423         * global.c (find_reg): Mark the eh regs as used if necessary.
6424         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
6425         * ra.h (struct allocno): no_eh_reg field added.  Changed
6426         no_stack_reg type to bitfield.
6427
6428 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
6429
6430         * tree.c (substitute_in_expr): Add missing 'break'.
6431
6432 2008-01-17  Richard Guenther  <rguenther@suse.de>
6433
6434         PR tree-optimization/34825
6435         * tree-ssa-math-opts.c (is_division_by): Do not recognize
6436         x / x as division to handle.
6437
6438 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6439
6440         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
6441         "-pthread" is specified.
6442         * pa-hpux11.h (LIB_SPEC): Likewise.
6443
6444 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
6445             Peter Bergner  <bergner@vnet.ibm.com>
6446
6447         PR rtl-optimization/33796
6448         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
6449
6450 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6451
6452         PR libgfortran/34699
6453         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
6454         static links.
6455         * pa-hpux10.h (LINK_SPEC): Likewise.
6456         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
6457
6458 2008-01-16  Richard Guenther  <rguenther@suse.de>
6459
6460         PR middle-end/32628
6461         * fold-const.c (fold_convert_const_int_from_int): Do not
6462         set overflow if that occured only because of a sign extension
6463         change when converting from/to a sizetype with the same
6464         precision and signedness.
6465
6466 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
6467
6468         PR debug/34249
6469         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
6470         location address to the correct place.  Update copyright year.
6471
6472 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6473
6474         * lambda-code.c (lambda_transform_legal_p): Handle the case of
6475         no dependences in the dependence_relations vector.
6476
6477 2008-01-16  Jan Hubicka  <jh@suse.cz>
6478
6479         PR rtl-optimization/31396
6480         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
6481         * cfg.c (dump_reg_info): Print it.
6482         * regs.h (struct reg_info_t): add freq_calls_crossed.
6483         (REG_FREQ_CALLS_CROSSED): New macro.
6484         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
6485         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
6486         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
6487         regmove_optimize): Update call crossed frequencies.
6488         * local-alloc.c (struct qty): Add freq_calls_crossed.
6489         (alloc_qty): Copute freq_calls_crossed.
6490         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
6491         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
6492         * ra.h (struct allocno): Add freq_calls_crossed.
6493
6494 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6495
6496         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
6497         libgomp when compiling with ftree-parallelize-loops.
6498         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
6499
6500 2008-01-16  Richard Guenther  <rguenther@suse.de>
6501
6502         PR tree-optimization/34769
6503         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
6504         * tree.c (int_cst_value): Instead make this function more
6505         permissive in what it accepts as valid input.  Document this
6506         function always sign-extends the value.
6507
6508 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
6509             Richard Guenther  <rguenther@suse.de>
6510
6511         PR c/34668
6512         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
6513         (gimple_fold_indirect_ref_rhs): ... this.
6514         (gimple_fold_indirect_ref): New function with foldings
6515         that preserve lvalueness.
6516         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
6517         * tree-flow.h (gimple_fold_indirect_ref): Declare.
6518         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
6519         to fold an INDIRECT_REF, fall back to the old use of
6520         fold_indirect_ref_1.
6521
6522 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6523
6524         * tree-data-ref.c (subscript_dependence_tester_1): Call 
6525         free_conflict_function.
6526         (compute_self_dependence): Same.
6527
6528 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
6529
6530         PR debug/34249
6531         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
6532         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
6533         function global.
6534         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
6535         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
6536         for DWARF2_UNWIND_INFO targets.
6537
6538 2008-01-16  Richard Guenther  <rguenther@suse.de>
6539
6540         PR c/34768
6541         * c-typeck.c (common_pointer_type): Do not merge inconsistent
6542         type qualifiers for function types.
6543
6544 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
6545
6546         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
6547         loop_iterator li from previous commit.
6548
6549 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
6550
6551         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
6552
6553 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
6554
6555         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
6556         (parallelize_loops): Don't parallelize irreducible components.
6557
6558 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6559
6560         PR c++/24924
6561         * c-opts (c_common_post_options): Do not enable CPP
6562         flag_pedantic_errors by default.
6563         
6564 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
6565
6566         PR rtl-optimization/31944
6567         * cse.c (remove_pseudo_from_table): New function.
6568         (merge_equiv_classes): Use above function to remove pseudo-registers.
6569         (invalidate): Likewise.
6570
6571 2008-01-13  Richard Guenther  <rguenther@suse.de>
6572
6573         PR middle-end/34601
6574         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
6575         instead of TYPE_MODE to deal with calls from expand_one_error_var.
6576
6577 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
6578
6579         * gcse.c (cprop_jump): Call validate_unshare_change instead of
6580         validate_change to unshare the source of the PC set.
6581
6582 2008-01-12  Jan Hubicka  <jh@suse.cz>
6583
6584         PR middle-end/32135
6585         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
6586         references above array bounds.  This might trigger bounds checks for
6587         pointers to arrays.
6588
6589 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
6590
6591         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
6592         new_replaceable_dependencies.
6593
6594 2008-01-12  Doug Kwan  <dougkwan@google.com>
6595
6596         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
6597         instead of OPT_Wreturn_type in warning due to ignored return type
6598         qualifiers.
6599         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
6600         options included in -Wextra.
6601         * c.opt: New option -Wignored_qualifiers.
6602         * doc/invoke.texi (Warning Options, -Wextra): Add new option
6603         -Wignore_qualifiers.
6604         (-Wignored-qualifiers): Document.
6605         (-Wreturn-type): Remove description of functionality now handled
6606         by -Wignored-qualifiers.
6607
6608 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
6609
6610         PR ada/33788
6611         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
6612         NOP_EXPR if it is between integral types with the same precision.
6613
6614 2008-01-12  Jan Hubicka  <jh@suse.cz>
6615
6616         PR other/28023
6617         * invoke.texi (max-inline-recursive-depth): Fix default value.
6618
6619 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
6620
6621         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
6622         correct type.
6623
6624 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
6625         
6626         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
6627         
6628 2008-01-11  James E. Wilson  <wilson@specifix.com>
6629
6630         PR target/26015
6631         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
6632
6633 2008-01-11  Anatoly Sokolov <aesok@post.ru>
6634
6635         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
6636         save/restore frame pointer register and don't use 'call-prologues' 
6637         optimization in function with "OS_task" attribute.
6638
6639 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
6640
6641         PR middle-end/31309
6642         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
6643         when copying to memory.
6644
6645 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
6646
6647         PR rtl-optimization/30905
6648         * cfgcleanup.c: Include dce.h
6649         (crossjumps_occured): New global variable.
6650         (try_crossjump_bb): Exit loop after finding a fallthru edge.
6651         If something changed, set crossjumps_occured to true.
6652         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
6653         Don't add/remove fake edges to exit here...
6654         (cleanup_cfg): ...but do it here, when crossjumping.
6655         Run a fast DCE when successful crossjumps occured in the latest
6656         iteration of try_optimize_cfg.
6657
6658 2008-01-11  Richard Guenther  <rguenther@suse.de>
6659
6660         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
6661         (struct vn_unary_op_s): Likewise.
6662         (vn_reference_insert): Free old reference on hash collision.
6663
6664 2008-01-10  Raksit Ashok  <raksit@google.com>
6665
6666         PR rtl-optimization/27971
6667         * combine.c (find_split_point): Split PLUS expressions which are
6668         inside a MEM rtx, and whose first operand is complex.
6669
6670 2008-01-10  DJ Delorie  <dj@redhat.com>
6671
6672         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
6673         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
6674         (m32c_hard_regno_ok): Call the underlying function.
6675
6676 2008-01-10  Richard Guenther  <rguenther@suse.de>
6677
6678         PR middle-end/34683
6679         * tree-cfg.c (tree_merge_blocks): Do not go through the
6680         full-blown folding and stmt updating path if we just deal
6681         with virtual operands.
6682         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
6683         test for abnormal SSA_NAMEs.
6684
6685 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6686
6687         PR middle-end/34641
6688         * reload.c (push_reload): Add assertions.  All constants from
6689         reg_equiv_constant should have been used for replacing the respective
6690         pseudo earlier.
6691         (find_reloads_address): Invoke find_reloads_address_part for
6692         constant taken from the reg_equiv_constant array.
6693
6694 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
6695
6696         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
6697         field (valnum) the first in the struct.  Replace bools with
6698         unit bit fields.
6699
6700 2008-01-10  Richard Guenther  <rguenther@suse.de>
6701
6702         PR tree-optimization/34651
6703         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
6704         types and ordering for masking and converting.
6705
6706 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
6707
6708         PR tree-optimization/34017
6709         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
6710         also for PHI_NODE expressions.
6711
6712 2008-01-09  Jan Hubicka  <jh@suse.cz>
6713
6714         PR tree-optimization/34708
6715         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
6716         based on number of case labels.
6717         (init_inline_once): Remove switch_cost.
6718         * tree-inline.h (eni_weights_d): Remove switch_cost.
6719
6720 2008-01-09  Richard Guenther  <rguenther@suse.de>
6721         Andrew Pinski  <andrew_pinski@playstation.sony.com>
6722
6723         PR middle-end/30132
6724         * gimplify.c (gimplify_cond_expr): Do not create an addressable
6725         temporary if an rvalue is ok or an lvalue is not required.
6726
6727 2008-01-09  Richard Guenther  <rguenther@suse.de>
6728
6729         PR middle-end/34458
6730         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
6731         adjust return type.
6732
6733 2008-01-09  Richard Guenther  <rguenther@suse.de>
6734
6735         PR middle-end/34679
6736         * tree.c (host_integerp): Check for sizetype only if the
6737         type is an integer type.
6738
6739 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
6740
6741         PR debug/26364
6742         * opts.c (decode_options): Disable inlining of functions called
6743         once if not in unit-at-a-time mode.
6744
6745 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
6746
6747         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
6748
6749 2008-01-08  Richard Guenther  <rguenther@suse.de>
6750
6751         PR middle-end/31863
6752         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
6753         out early if the result will be unused.
6754
6755 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
6756
6757         PR target/34709
6758         Revert:
6759
6760         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
6761         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
6762         for TARGET_RECIP.       
6763         
6764 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
6765         
6766         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
6767         for vectorization tuned.
6768         
6769 2008-01-08  Richard Guenther  <rguenther@suse.de>
6770
6771         PR tree-optimization/34683
6772         * tree-ssa-operands.c (operand_build_cmp): Export.
6773         * tree-ssa-operands.h (operand_build_cmp): Declare.
6774         * tree-vn.c (vuses_compare): Remove.
6775         (sort_vuses): Use operand_build_cmp.
6776         (sort_vuses_heap): Likewise.
6777         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
6778         to re-use old VEC if available.  Do not sort already sorted VUSEs.
6779         (vdefs_to_vec): Do not sort already sorted VDEFs.
6780
6781 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
6782
6783         PR middle-end/34694
6784         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
6785
6786 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
6787
6788         PR target/34702
6789         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
6790         limitations of reciprocal sequences on x86 targets.
6791
6792 2008-01-08  Richard Guenther  <rguenther@suse.de>
6793
6794         PR tree-optimization/34683
6795         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
6796
6797 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
6798
6799         PR target/34622
6800         * config/darwin.c (darwin_mergeable_string_section): Don't use
6801         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
6802
6803 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
6804
6805         PR target/34682
6806         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
6807         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
6808         predicates of op0 and op1 to register_operand.
6809         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
6810         expander using X87MODEF mode iterator.  Change predicates of
6811         op0 and op1 to register_operand.
6812         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
6813         corresponding patterns and macroize using MODEF macro.  Change
6814         predicates of op0 and op1 to register_operand and remove
6815         "m" constraint. Disparage "r" alternative with "!".
6816         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
6817         macroize using X87MODEF macro.  Change predicates of op0 and op1
6818         to register_operand and remove "m" constraint.  Disparage "r"
6819         alternative with "!".
6820         (absneg splitter with memory operands): Remove.
6821         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
6822         patterns and macroize using X87MODEF mode iterator.
6823         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
6824         Change predicate of op1 to register_operand.
6825         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
6826         for memory operands.
6827
6828 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
6829
6830         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
6831
6832 2008-01-07  Richard Guenther  <rguenther@suse.de>
6833
6834         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
6835         fields.
6836
6837 2008-01-07  Richard Guenther  <rguenther@suse.de>
6838
6839         PR tree-optimization/34683
6840         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
6841         VOPs of the needed size to save memory.  Use VEC_quick_push
6842         to save compile-time.
6843         (vdefs_to_vec): Likewise.
6844
6845 2008-01-07  Sa Liu  <saliu@de.ibm.com>
6846
6847         * config/spu/spu.md (divdf3): Genetate inline code for double
6848         division.  The implementation doesn't handle INF or NAN, therefore it
6849         only applies when -ffinite-math-only is given.
6850
6851 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
6852
6853         PR libstdc++/34680
6854         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
6855         * doc/cpp.texi ([Common Predefined Macros]): Document.
6856
6857 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
6858
6859         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
6860         order to use commutative addition instead of subtraction.
6861
6862 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6863             Mircea Namolaru  <namolaru@il.ibm.com>
6864             Vladimir Yanovsky  <yanov@il.ibm.com>
6865             Revital Eres  <eres@il.ibm.com>
6866
6867         PR tree-optimization/34263
6868         * tree-outof-ssa.c (process_single_block_loop_latch,
6869         contains_tree_r): New functions.
6870         (analyze_edges_for_bb): Call process_single_block_loop_latch
6871         function to empty single-basic-block latch block if possible.
6872
6873 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
6874
6875         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
6876         for TARGET_RECIP.
6877         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
6878
6879 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
6880
6881         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
6882
6883 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
6884
6885         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
6886
6887 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
6888
6889         PR tree-optimization/34618
6890         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
6891         flag from T.
6892
6893 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
6894
6895         PR target/34673
6896         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
6897         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
6898         Update copyright year.
6899
6900         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
6901         Update copyright year.
6902         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
6903         using NR fixup.
6904
6905 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
6906
6907         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
6908         edge does not point to current bb before changing need_assert.
6909
6910 2008-01-04  Richard Guenther  <rguenther@suse.de>
6911
6912         PR middle-end/34029
6913         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
6914         for verifying purposes if they are is_gimple_min_invariant.
6915
6916 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
6917
6918         PR tree-optimization/34448
6919         PR tree-optimization/34465
6920         * gimplify.c (gimplify_init_constructor): Add new parameter
6921         notify_temp_creation.  Use it.
6922         (gimplify_modify_expr_rhs): Take volatiles into account when
6923         optimizing constructors.
6924         Do not optimize constructors if gimplify_init_constructor will dump to
6925         memory.
6926         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
6927         * gcc.c-torture/compile/pr34448.c: New.
6928
6929 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
6930
6931         PR gcov-profile/34609
6932         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
6933         return_slot if result is TREE_ADDRESSABLE.
6934
6935 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
6936
6937         * config/mips/mips.md (sqrt_condition): Tweak comment.
6938         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
6939
6940 2008-01-03  Tom Tromey  <tromey@redhat.com>
6941
6942         PR c/34457
6943         * c-common.c (c_type_hash): Handle VLAs.
6944
6945 2008-01-03  Jan Hubicka  <jh@suse.cz>
6946
6947         PR tree-optimization/31081
6948         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
6949         0 when inlining and not inlining to first basic block.
6950         (remap_decl): When var is initialized to 0, don't set default_def.
6951         (expand_call_inline): Set entry_bb.
6952         * tree-inline.h (copy_body_data): Add entry_bb.
6953
6954 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
6955
6956         PR c++/34619
6957         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
6958         before returning.
6959
6960         PR tree-optimization/29484
6961         * tree-inline.c (inline_forbidden_p_2): New function.
6962         (inline_forbidden_p): Disallow inlining if some static var
6963         has an address of a local LABEL_DECL in its initializer.
6964         * doc/extend.texi (Labels as Values): Document &&foo behaviour
6965         vs. inlining.
6966
6967 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
6968
6969         PR tree-optimization/34635
6970         * tree-data-ref.c (add_other_self_distances): Make sure that the
6971         evolution step is constant.
6972
6973 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
6974
6975         PR middle-end/34608
6976         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
6977
6978 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
6979
6980         * tree-sra.c (scalarize_init): Insert the generate_element_init
6981         statements after the generate_element_zero statements.
6982
6983 2008-01-02  Richard Guenther  <rguenther@suse.de>
6984
6985         PR middle-end/34093
6986         PR middle-end/31976
6987         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
6988         for very large number of operands instead of ICEing.
6989
6990 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
6991
6992         PR target/34013
6993         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6994         while stack probing.
6995
6996 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
6997
6998         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
6999         in C++0x mode.
7000
7001 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
7002
7003         PR libmudflap/26442
7004         * tree-mudflap.c (mx_register_decls): Guard warning by
7005         !DECL_ARTIFICIAL check.
7006
7007 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
7008
7009         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
7010         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
7011         sse5_perm<mode>): Fix constraints.