OSDN Git Service

6396413c6c8f6549e69baba771b7e5bdbcc2f043
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2
3         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4
5 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6
7         * coverage.c: Include tree-pass.h.
8         (coverage_counter_alloc): Print da_file_name to the dump file.
9
10 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
11
12         * sbitmap.c (sbitmap_range_empty_p): New function.
13         * sbitmap.h (sbitmap_range_empty_p): New function.
14         * bitmap.h: Now includes obstack.h.
15
16 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
17             Kenneth Zadeck <zadeck@naturalbridge.com>
18
19         * dbgcnt.def (ra_byte_scan): Added.
20         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
21         when the last hit happens for a counter.  
22         * timevar.def (TV_DF_BYTE_LR): New variable.
23         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
24         * passes.c (pass_fast_rtl_byte_dce): New pass.
25         * fwprop.c (update_df): Added mode to call df_ref_create.
26         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
27         DF_REF_EXTRACT_OFFSET.
28         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
29         DF_BYTE_LR_OUT, df_byte_lr): New macro.
30         (df_mm): New enum.
31         (df_ref_extract): Added mode field.
32         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
33         DF_REF_EXTRACT_OFFSET.
34         (DF_REF_EXTRACT_MODE): New macro.
35         (df_byte_lr_bb_info): New structure.
36         (df_print_byte_regset, df_compute_accessed_bytes, 
37         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
38         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
39         df_byte_lr_simulate_uses,
40         df_byte_lr_simulate_artificial_refs_at_top,
41         df_byte_lr_simulate_artificial_refs_at_end,
42         df_compute_accessed_bytes): New function.
43         (df_ref_create): Add parameter.
44         (df_byte_lr_get_bb_info): New inline function.
45         * df-scan.c (df_ref_record, df_uses_record,
46         df_ref_create_structure): Added mode parameter.
47         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
48         df_defs_record, df_uses_record, df_get_conditional_uses,
49         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
50         df_entry_block_defs_collect, df_exit_block_uses_collect):
51         Added mode parameter to calls to df_ref_record, df_uses_record,
52         df_ref_create_structure.
53         (df_ref_equal_p, df_ref_compare): Added test for modes.
54         (df_ref_create_structure): Added code to set mode.  Renamed
55         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
56         DF_REF_EXTRACT_OFFSET.
57         * df-core.c (df_print_byte_regset): New function.
58         * df-byte-scan.c: New file.
59         * df-problems.c (df_rd_transfer_function): Removed unnecessary
60         calls to BITMAP_FREE.  
61         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
62         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
63         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
64         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
65         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
66         df_byte_lr_local_compute, df_byte_lr_init,
67         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
68         df_byte_lr_transfer_function, df_byte_lr_free, 
69         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
70         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
71         df_byte_lr_simulate_uses,
72         df_byte_lr_simulate_artificial_refs_at_top,
73         df_byte_lr_simulate_artificial_refs_at_end): New function.
74         * dce.c (byte_dce_process_block): New function.
75         (dce_process_block): au is now passed in rather than computed
76         locally.  Changed loops that look at artificial defs to not look
77         for conditional or partial ones, because there never are any.  
78         (fast_dce): Now is able to drive byte_dce_process_block or 
79         dce_process_block depending on the kind of dce being done.
80         (rest_of_handle_fast_dce): Add parameter to fast_dce.
81         (rest_of_handle_fast_byte_dce): New function.
82         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
83         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
84
85 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
86
87         PR fortran/35019
88         * gcc.h: Added fortran options that take arguments to
89         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
90         macros.
91
92 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
93
94         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
95         scalarization if on the LHS and not a full access.
96
97 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
98
99         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
100
101 2008-04-18  Rafael Espindola  <espindola@google.com>
102
103         * tree-vrp.c (find_case_label_index): Fix the binary search.
104         (find_case_label_range): New.
105         (vrp_visit_switch_stmt): Use find_case_label_range.
106         (simplify_switch_using_ranges): Use find_case_label_range.
107
108 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
109
110         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
111         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
112
113 2008-04-18  Tom Tromey  <tromey@redhat.com>
114
115         PR libcpp/15500:
116         * doc/cpp.texi (Implementation-defined behavior): Mention
117         -finput-charset.
118
119 2008-04-18  Ian Lance Taylor  <iant@google.com>
120
121         * fold-const.c (pointer_may_wrap_p): New static function.
122         (fold_comparison): Add another test for pointer overflow.  Use
123         pointer_may_wrap_p to disable some false positives.
124
125 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
126           
127         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
128         (fname_as_string): Match updated cpp_interpret_string prototype.
129         (fix_string_type): Support char16_t* and char32_t*.
130         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
131         derivative) nodes.  Register as builtin if C++0x.
132         (c_parse_error): Support CPP_CHAR{16,32}.
133         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
134         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
135         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
136         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
137         CTI_CHAR32_ARRAY_TYPE>: New elements.
138         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
139         char32_type_node, signed_char32_type_node, char16_array_type_node,
140         char32_array_type_node): New defines.
141         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
142         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
143         (lex_string): Support CPP_STRING{16,32}, match updated
144         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
145         (lex_charconst): Support CPP_CHAR{16,32}.
146         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
147         and CPP_STRING{16,32}.
148
149 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
150
151         PR bootstrap/35457
152         * aclocal.m4: Regenerate.
153         * configure: Regenerate.
154
155 2008-04-18  Jan Hubicka  <jh@suse.cz>
156
157         * except.c (dw2_size_of_call_site_table,
158         sjlj_size_of_call_site_table): Use vector API for call_site_record.
159
160         * cgraphbuild.c (build_cgraph_edges): Update.
161         * tree-pass.h: Update comment.
162         * final.c (leaf_function_p): Update.
163         (leaf_renumber_regs): Update.
164         (rest_of_clean_state): Update.
165         * omp-low.c (expand_omp_parallel): Update.
166         * ipa-reference.c (analyze_function): Update.
167         * reorg.c (find_end_label): Update.
168         (optimize_skip): Update.
169         (fill_simple_delay_slots): Update.
170         (fill_simple_delay_slots): Update.
171         (make_return_insns): Update.
172         (dbr_schedule): Update.
173         * gimple-low.c (record_vars_into): Update.
174         * cfgbuild.c (make_edges): Update.
175         * function.c (assign_stack_local): Update.
176         (assign_parm_adjust_stack_rtl): Update.
177         (locate_and_pad_parm): Update.
178         (allocate_struct_function): Do not initialize stack_alignment_needed
179         and preferred_stack_boundary here.
180         (stack_protect_prologue): Update.
181         (stack_protect_epilogue): Update.
182         (expand_function_start): Initialize stack_alignment_needed,
183         preferred_stack_boundary and max_jumptable_ents.
184         (expand_function_end): Update.
185         (free_after_compilation): Do not NULLify epilogue_delay_list.
186         * function.h (struct rtl_data): Add stack_protect_guard,
187         stack_alignment_needed,
188         preferred_stack_boundary, epilogue_delay_list.
189         (struct function): Remove value_histograms, stack_alignment_needed,
190         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
191         last_label_uid,
192         unexpanded_var_list, stack_protect_guard.
193         (current_function_epilogue_delay_list): Remove.
194         * ipa-type-escape.c (analyze_function): Update.
195         * gimplify.c (pop_gimplify_context): Update comment.
196         * calls.c (expand_call): Update.
197         (emit_library_call_value_1): Update.
198         * except.c (set_nothrow_function_flags): Update.
199         * cfgexpand.c (get_decl_align_unit): Update.
200         (create_stack_guard): Update.
201         (estimated_stack_frame_size): Update.
202         (expand_used_vars): Update.
203         (tree_expand_cfg): Free histogram earliers, init expansion variables.
204         * explow.c (allocate_dynamic_stack_space): Update.
205         * tree-ssa-live.c (remove_unused_locals): Update.
206         * varasm.c (mark_constant_pool): Update.
207         * tree-inline.c (remap_decls): Update.
208         (initialize_cfun): Update.
209         (declare_return_variable): Update.
210         (inline_forbidden_p): Update.
211         (expand_call_inline): Update.
212         (declare_inline_vars): Update.
213         (tree_function_versioning): Update.
214         * tree-flow.h (value_histograms): New.
215         (VALUE_HISTOGRAMS): New macro.
216         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
217         last_label_uid.
218         * tree-cfg.c (set_bb_for_stmt): Update.
219         (replace_by_duplicate_decl): Update.
220         (move_block_to_fn): Update.
221         (new_label_mapper): Update.
222         (dump_function_to_file): Update.
223         * ipa-struct-reorg.c (build_data_structure): Update.
224         * cfgrtl.c (print_rtl_with_bb): Update.
225         * reload1.c (reload): Update.
226         (reload): Update.
227         * config/i386/i386.c (setup_incoming_varargs_64,
228         ix86_compute_frame_layout): Update.
229         * config/arc/arc.c (arc_output_function_epilogue): Update.
230
231 2008-04-18  Marius Strobl <marius@FreeBSD.org>
232
233         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
234         for FreeBSD as well.
235         * gthr-posix95.h: Likewise.
236
237 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
238
239         PR rtl-optimization/35838
240         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
241         out the byte offset of the first subreg.
242
243 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
244
245         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
246         to split_ti instead of three separate calls with single member arrays.
247         (subti3 splitter): Ditto.
248         (adddi3 splitter): Ditto with split_di.
249         (subdi3 splitter): Ditto.
250         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
251         two separate calls with single member arrays.  Swap match_dup
252         operands 1 and 2 to better fit into the array.
253         (negdi2 splitter): Ditto with split_di.
254         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
255         two separate calls with single member arrays.  Swap match_dup operands
256         6 and 7 to better fit into the array.
257
258 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
259
260         * config/i386/i386.c (sse_builtin_type): New.
261         (bdesc_sse_args): Likewise.
262         (bdesc_sse_3arg): Removed.
263         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
264         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
265         IX86_BUILTIN_ROUNDPS.
266         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
267         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
268         IX86_BUILTIN_ROUNDPS.
269         (ix86_expand_sse_4_operands_builtin): Removed.
270         (ix86_expand_sse_operands_builtin): New.
271         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
272         and CODE_FOR_sse4_1_roundps.
273         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
274         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
275
276 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
277
278         PR target/35907
279         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
280         regs before frame pop when needed.  If use_backchain_to_restore_sp
281         then load backchain into a temp reg to restore vr and vrsave.  Add
282         code to restore vr after frame pop if possible.
283
284 2008-04-17  Richard Guenther  <rguenther@suse.de>
285
286         * tree-vn.c (expressions_equal_p): Do not check type
287         equality or compatibility before calling operand_equal_p.
288         * fold-const.c (operand_equal_p): Check equivalence of
289         integer constants before bailing out due to signedness or
290         precision differences.
291         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
292         spurious differences in type qualification.  Ignore types
293         for COMPONENT_REFs at all.
294
295 2008-04-17  Christian Bruel  <christian.bruel@st.com>
296
297         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
298         msw_skip comparison.
299         
300 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
301
302         PR c/35739
303         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
304         reg type.
305
306         PR tree-optimization/35899
307         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
308         rather than TREE_OPERAND.
309
310 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
311
312         PR target/35944
313         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
314         temporary registers.  Change operand predicate to general_operand.
315         (remainderxf3): Ditto.
316
317 2008-04-16  Richard Guenther  <rguenther@suse.de>
318
319         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
320         * tree-affine.c (aff_combination_expand): Look through some
321         conversions.
322
323 2008-04-15  Doug Kwan  <dougkwan@google.com>
324
325         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
326         for hex printing.
327         * tree-pretty-print.c (dump_generic_node): Ditto.
328         * final.c (output_addr_const): Ditto.
329         * dwarf2out.c (output_cfi): Ditto.
330         * c-pretty-print.c (pp_c_integer_constant): Ditto.
331         * print-rtl.c (print_rtx): Ditto.
332         * print-tree.c (print_node_brief, print_node): Ditto.
333         * c-common.c (match_case_to_enum_1): Ditto.
334         * sched-vis.c (print_value): Ditto.
335         * config/i386/i386.c (print_operand): Cast to long unsigned int
336         for hex printing.
337
338 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
339         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
340         MS Windows VirtualProtect function.
341
342 2008-04-15  Jan Hubicka  <jh@suse.cz>
343
344         * gengtype.c (write_root): Param_is argument is OK.
345         * expr.c (expand_expr_real_1): Update call of get_exception_*.
346         * function.h: Include varray.h
347         (rtl_eh): New stucture based on except.c one.
348         (call_site_record): New forward declaration and vector type.
349         * calls.c (emit_call_1): Do not call
350         note_current_region_may_contain_throw.
351         * except.c (eh_status): Remove cur_region, try_region since they are
352         unused.
353         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
354         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
355         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
356         Remove call_site_data_used, call_site_data_size.
357         Turn call_site_record into vector in function.h.
358         (note_current_region_may_contain_throw): Remove.
359         (get_exception_pointer, get_exception_filter): Do not take struct
360         function argument; update.
361         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
362         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
363         build_post_landing_pads, dw2_build_landing_pads,
364         sjlj_assign_call_site_values, sjlj_mark_call_sites,
365         sjlj_emit_function_enter, sjlj_emit_function_enter, 
366         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
367         sjlj_build_landing_pads, finish_eh_generation,
368         remove_exception_handler_label, remove_eh_handler,
369         maybe_remove_eh_handler, add_reachable_handler,
370         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
371         add_action_record, collect_one_action_chain, add_call_site,
372         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
373         sjlj_output_call_site_table, output_function_exception_table,
374         * except.h (note_current_region_may_contain_throw): Remove
375         (get_exception_pointer, get_exception_filter): Do not take struct
376         function argument.
377         * Makefile.in (GTFILES): Put varargs before struct function.
378
379 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
380
381         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
382         punt for STRING_CST.
383         (get_constraint_for): Deal with STRING_CST here instead.
384
385 2008-04-15  Richard Guenther  <rguenther@suse.de>
386
387         * tree-ssa-propagate.c (substitute_and_fold): Substitute
388         statements in a basic-block with a backward walk.  Do not
389         substitute into dead statements but instead remove those.
390
391 2008-04-15  Richard Guenther  <rguenther@suse.de>
392
393         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
394         to zero, thus disable creation of SFTs.
395
396 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
397
398         * tree-predcom.c (suitable_reference_p): Return false if the
399         reference can throw.
400
401 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
402
403         PR c/35751
404         * c-decl.c (finish_decl): If extern or static var has variable
405         size, set TREE_TYPE (decl) to error_mark_node.
406
407 2008-04-15  Rafael Espindola  <espindola@google.com>
408
409         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
410         variable arg1.
411
412 2008-04-15  Richard Guenther  <rguenther@suse.de>
413
414         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
415         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
416         (visit_reference_op_load): Do walk vuse-vdef chains on
417         vn_reference_lookup.
418         (visit_reference_op_store): But do not here.
419         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
420         vn_reference_lookup.
421         (vn_lookup_with_vuses): But do so here.
422
423 2008-04-14  Ian Lance Taylor  <iant@google.com>
424
425         * fold-const.c (fold_overflow_warning): Remove assertion.
426
427 2008-04-15  Ben Elliston  <bje@au.ibm.com>
428
429         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
430         temp1 local variables.
431
432 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
433
434         PR target/35661
435         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
436         ".text.unlikely" section as executable.
437
438 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
439
440         * config/ia64/ia64.c (rtx_needs_barrier): Handle
441         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
442         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
443         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
444         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
445         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
446         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
447
448 2008-04-14  Ian Lance Taylor  <iant@google.com>
449
450         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
451         * fold-const.c (fold_comparison): If appropriate, test
452         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
453         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
454         reassociating a pointer type.
455         * doc/invoke.texi (Optimize Options): Document that
456         -fstrict-overflow applies to pointer wraparound.
457
458 2008-04-13  Jan Hubicka  <jh@suse.cz>
459
460         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
461
462 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
463
464         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
465         we are going to "save the world".
466
467 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
468
469         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
470         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
471         operand 0 constraint, not "=".
472
473 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
474
475         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
476
477 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
478
479         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
480         of size of positions_needed * CHAR_BIT.
481
482 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
483
484         PR middle-end/35897
485         * dse.c (store_info): Change positions_needed to unsigned
486         HOST_WIDE_INT.
487         (lowpart_bitmask): New.
488         (record_store): Cast to unsigned HOST_WIDE_INT for
489         positions_needed.  Assert width <= size of positions_needed *
490         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
491         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
492         lowpart_bitmask to set mask.
493
494 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
495
496         * config/bfin/constraints.md: New file.
497         * config/bfin/bfin.md: Include it.
498         (adddi3): Use satisfies_constraint functions instead of the old macros.
499         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
500         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
501         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
502         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
503         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
504         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
505         EXTRA_CONSTRAINT): Delete.
506         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
507         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
508         of the old macros.
509         * config/bfin/bfin.c: Include "tm-constrs.h".
510         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
511         Use satisfies_constraint functions instead of the old macros.
512         * doc/md.texi (Blackfin Constraints): Update file name reference.
513
514 2008-04-11  Richard Guenther  <rguenther@suse.de>
515
516         PR tree-optimization/35869
517         * tree-vrp.c (execute_vrp): Move switch statement update after
518         jump threading.  Schedule another cfg cleanup run.
519
520 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
521
522         PR c/35744
523         * attribs.c (decl_attributes): Return early on errorneous node.
524
525 2008-04-10  Oleg Ryjkov  <olegr@google.com>
526
527         * tree.h (struct tree_base): Added a new flag default_def_flag.
528         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
529
530 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
531
532         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
533
534 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
535
536         PR target/35768
537         * pa.md: Define mode iterator P.  Define mode attribute dwc.
538         (dcacheflush): Update pattern to use iterator P and attribute dwc.
539         (icacheflush): Likewise.
540         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
541         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
542
543 2008-04-11  Ben Elliston  <bje@au.ibm.com>
544
545         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
546
547 2008-04-10  Rafael Espindola  <espindola@google.com>
548
549         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
550         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
551         (extract_range_from_expr): The same.
552
553 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
554
555         * config/mips/mips.md (GPR2): New mode iterator.
556         (seq): Add comment.
557         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
558         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
559         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
560         Rewrite these to take two modes, the mode of comparison and the
561         mode of the destination.
562         * config/mips/mips.c (mips_expand_scc): Instead of having
563         paradoxical subreg as destination, expand "narrowing" scc if mode
564         of comparison is SI and target is requested in DI mode.
565         (mips_emit_int_order_test): Update comment.  Make mode of
566         comparison match CMP0 rather than TARGET.  When creating inverse
567         target use mode of TARGET.
568
569 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
570
571         * gcov-dump.c (tag_summary): Only print summaries for the first
572         GCOV_COUNTERS_SUMMABLE counters.
573
574 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
575
576         * config/i386/i386.md (absneg): New code iterator.
577         (absnegprefix): New code attribute.
578         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
579         patterns using absneg code iterator.
580         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
581         using absneg code iterator.
582         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
583         *neg<mode>2 patterns using absneg code iterator.
584         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
585         *negextendsfdf2 patterns using absneg code iterator.
586         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
587         *negextendsfxf2 patterns using absneg code iterator.
588         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
589         *negextendsfdf2 patterns using absneg code iterator.
590         * config/i386/sse.md (<code><mode>2): Macroize expander from
591         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
592
593 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
594
595         * config/s390/s390.h: Remove the remains of the recent search
596         & replace action of current_function_outgoing_args_size.
597
598 2008-04-10  Ira Rosen  <irar@il.ibm.com>
599
600         PR tree-optimization/35821
601         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
602         NEW_STMT_LIST is not NULL.
603
604 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
605
606         PR libstdc++/35597
607         * toplev.c (process_options): Remove -ffunction-sections debugging
608         warning.
609
610 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
611
612         PR middle-end/PR28690
613         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
614         than gen_rtx_fmt_ee to perform more canonicalizations.
615
616 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
617
618         PR driver/35665
619         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
620
621 2008-04-09  Richard Guenther  <rguenther@suse.de>
622
623         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
624         (dump_function_to_file): Dump function arguments with types.
625
626 2008-04-08  Richard Guenther  <rguenther@suse.de>
627
628         * fold-const.c (fold_widened_comparison): Do not allow
629         sign-changes that change the result.
630
631 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
632
633         PR target/35839
634         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
635         kinds of indirect references.
636
637 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
638
639         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
640         GNU Fortran language string.
641
642 2008-04-08  Rafael Espindola  <espindola@google.com>
643
644         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
645         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
646         * tree.h (tree_call_nonnegative_warnv_p): New.
647
648 2008-04-08  Jan Hubicka  <jh@suse.cz>
649
650         * function.c (free_after_compilation): Clear out regno_reg_rtx
651         pointer.
652
653 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
654
655         Revert
656         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
657
658         PR middle-end/PR28690
659         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
660         same precedence as REG_POINTER and MEM_POINTER operands.
661
662 2008-04-08  Richard Guenther  <rguenther@suse.de>
663
664         PR middle-end/35834
665         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
666         for adding index to base.
667
668 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
669
670         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
671         (MINGW_ENABLE_EXECUTE_STACK): New.
672         (IN_LIBGCC2): For libgcc include windows.h file for
673         function declarations.
674
675 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
676
677         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
678         and tem2 if tem1 is not a REG or MULT.
679
680 2008-04-08  Jan Hubicka  <jh@suse.cz>
681
682         * function.h (incomming_args): Break out of struct function.
683         (function_subsections): Break out of struct function.
684         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
685         return_rtx and hard_reg_initial_vals from struct function.
686         Kill inl_max_label_num.
687         (current_function_pops_args, current_function_args_info,
688         current_function_args_size, current_function_args_size,
689         current_function_pretend_args_size,
690         current_function_outgoing_args_size,
691         current_function_internal_arg_pointer, current_function_return_rtx):
692         Kill compatibility accestor macros.
693         * builtins.c (expand_builtin_apply_args_1): Update.
694         (expand_builtin_next_arg): Update.
695         * df-scan.c (df_get_call_refs): Update.
696         * dbxout.c (dbxout_function_end): Update.
697         * dwarf2out.c (dwarf2out_switch_text_section): Update.
698         (output_line_info): Update.
699         (secname_for_decl): Update.
700         (dwarf2out_var_location): Update.
701         * function.c (free_after_compilation): Update.
702         (assign_parm_find_stack_rtl): Update.
703         (assign_parms): Update.
704         (expand_dummy_function_end): Update.
705         (expand_function_end): Update.
706         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
707         (expand_call): Update.
708         (emit_library_call_value_1): Update.
709         (store_one_arg): Update.
710         * varasm.c (initialize_cold_section_name): Update.
711         (unlikely_text_section): Update.
712         (unlikely_text_section_p): Update.
713         (assemble_start_function): Update.
714         (assemble_end_function): Update.
715         (default_section_type_flags): Update.
716         (switch_to_section): Update.
717         * integrate.c (set_decl_abstract_flags): Update.
718         (get_hard_reg_initial_val): Update.
719         (has_hard_reg_initial_val): Update.
720         (allocate_initial_values): Update.
721         * resource.c (init_resource_info): Update.
722         * config/alpha/alpha.c (NUM_ARGS): Update.
723         (direct_return): Update.
724         (alpha_va_start): Update.
725         (alpha_sa_size): Update.
726         (alpha_initial_elimination_offset): Update.
727         (alpha_expand_prologue): Update.
728         (alpha_start_function): Update.
729         (alpha_expand_epilogue): Update.
730         (unicosmk_initial_elimination_offset):
731         * config/alpha/alpha.md (call expander): Update.
732         * config/s390/s390.c (s390_register_info): Update.
733         (s390_register_info): Update.
734         (s390_frame_info): Update.
735         (s390_initial_elimination_offset): Update.
736         (s390_build_builtin_va_list): Update.
737         (s390_va_start): Update.
738         * config/spu/spu.c (direct_return): Update.
739         (spu_expand_prologue): Update.
740         (spu_initial_elimination_offset): Update.
741         (spu_build_builtin_va_list): Update.
742         (spu_va_start): Update.
743         * config/sparc/sparc.c (sparc_init_modes): Update.
744         (sparc_compute_frame_size): Update.
745         (function_value): Update.
746         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
747         * config/i386/i386.md (return expander): Update.
748         * config/i386/i386.c (ix86_va_start): Update.
749         (ix86_can_use_return_insn_p): Update.
750         (ix86_compute_frame_layout): Update.
751         (ix86_expand_epilogue): Update.
752         * config/sh/sh.c (output_stack_adjust): Update.
753         (calc_live_regs): Update.
754         (sh_expand_prologue): Update.
755         (sh_builtin_saveregs): Update.
756         (sh_va_start): Update.
757         (initial_elimination_offset): Update.
758         (sh_allocate_initial_value): Update.
759         (sh_function_ok_for_sibcall): Update.
760         (sh_get_pr_initial_val): Update.
761         * config/sh/sh.md (return expander): Update.
762         * config/avr/avr.c (frame_pointer_required_p): UPdate.
763         * config/crx/crx.c (crx_compute_frame): UPdate.
764         (crx_initial_elimination_offset): UPdate.
765         * config/xtensa/xtensa.c (compute_frame_size): Update
766         (xtensa_builtin_saveregs): Update.
767         (xtensa_va_start): Update.
768         (order_regs_for_local_alloc): Update.
769         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
770         (xstormy16_expand_builtin_va_start): Update.
771         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
772         * config/m68hc11/m68hc11.md (return expanders): Update.
773         * config/m68hc11/m68hc11.c (expand_prologue): Update.
774         (expand_epilogue): Update.
775         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
776         (cris_simple_epilogue): Update.
777         (cris_expand_prologue): Update.
778         (cris_expand_epilogue): Update.
779         * config/iq2000/iq2000.c (iq2000_va_start): Update.
780         (compute_frame_size): Update.
781         * config/mt/mt.c (mt_compute_frame_size): Update.
782         * config/mn10300/mn10300.c (expand_prologue): Update.
783         (expand_epilogue): Update.
784         (initial_offset): Update.
785         (mn10300_builtin_saveregs):
786         * config/mn10300/mn10300.md (return expander): Update.
787         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
788         (ia64_initial_elimination_offset): Update.
789         (ia64_initial_elimination_offset): Update.
790         (ia64_expand_prologue): Update.
791         * config/m68k/m68k.md (return expander): Update.
792         * config/rs6000/rs6000.c (rs6000_va_start): Update.
793         (rs6000_stack_info): Update.
794         * config/mcore/mcore.c (layout_mcore_frame): Update.
795         (mcore_expand_prolog): Update.
796         * config/arc/arc.c (arc_compute_frame_size): Update.
797         * config/score/score3.c (score3_compute_frame_size): Update.
798         * config/score/score7.c (score7_compute_frame_size): Update.
799         * config/arm/arm.c (use_return_insn): Update.
800         (thumb_find_work_register): Update.
801         (arm_compute_save_reg_mask): Update.
802         (arm_output_function_prologue): Update.
803         (arm_output_epilogue): Update.
804         (arm_size_return_regs): Update.
805         (arm_get_frame_offsets): Update.
806         (arm_expand_prologue): Update.
807         (thumb_exit): Update.
808         (thumb_unexpanded_epilogue): Update.
809         (thumb1_output_function_prologue): Update.
810         * config/pa/pa.md (return expander): Update.
811         * config/pa/pa.c (compute_frame_size): Update.
812         (hppa_builtin_saveregs): Update.
813         * config/mips/mips.c (mips_va_start): Update.
814         (mips16_build_function_stub): Update.
815         (mips_compute_frame_info): Update.
816         (mips_restore_gp): Update.
817         (mips_output_function_prologue): Update.
818         (mips_expand_prologue): Update.
819         * config/v850/v850.c (compute_frame_size): Update.
820         (expand_prologue): * config/mmix/mmix.c (along): update.
821         (mmix_initial_elimination_offset): update.
822         (mmix_reorg): update.
823         (mmix_use_simple_return): update.
824         (mmix_expand_prologue): update.
825         (mmix_expand_epilogue): Update.
826         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
827         (emit_link_insn): Update.
828
829 2008-04-08  Anatoly Sokolov <aesok@post.ru>
830
831         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
832         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
833         instructions.
834         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
835         atmega103 device.
836
837 2008-04-07  Jan Hubicka  <jh@suse.cz>
838
839         * function.h (rtl): Rename to x_rtl.
840         (crtl): New define.
841         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
842         frame_offset, stack_check_probe_note, arg_pointer_save_area,
843         used_temp_slots avail_temp_slots, temp_slot_level,
844         nonlocal_goto_handler_labels): Update accesstors.
845         (rtl): New global variable.
846         (struct function): Move some fileds to rtl_data.
847         (get_arg_pointer_save_area): Update prototype.
848         * builtins.c (expand_builtin_setjmp_receiver): Update call of
849         get_arg_pointer_save_area.
850         * expr.c (init_expr): Update
851         * function.c (get_frame_size): Update
852         (assign_stack_local): Update
853         (expand_function_end): Update.
854         (get_art_pointer_save_area): Update
855         * function.h 
856         * emit-rtl.c (rtl): Declare.
857         (regno_reg_rtx): Declare.
858         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
859         Update.
860         (gen_reg_rtx): Update.
861         * varasm.c (n_deferred_constatns): Update accestor.
862         (init_varasm_status): Do not allocate varasm_status.
863         (force_const_mem, get_pool_size, output_constant_pool): Update.
864         * stmt.c (force_label_rtx): Do not use x_ prefixes.
865         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
866         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
867         * sparc/sparc.h (INIT_EXPANDERS): Update.
868         * ia64/ia64.h (INIT_EXPANDERS): Update.
869
870 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
871
872         * reload.c (push_secondary_reload): Add missing break to for loop.
873
874 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
875
876         PR middle-end/PR28690
877         * rtlanal.c: Update copyright years.
878         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
879         as REG_POINTER and MEM_POINTER operands.
880         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
881         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
882         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
883         * gcse.c: Update copyright years.
884         (pre_delete): Call gen_reg_rtx_and_attrs.
885         (hoist_code): Likewise.
886         (build_store_vectors): Likewise.
887         (delete_store): Likewise.
888         * loop-invariant.c (move_invariant_reg): Likewise.
889         Update copyright years.
890
891 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
892
893         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
894         control string instead of quoted.
895
896 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
897
898         * doc/rtl.texi: Rewrite of subreg section.
899
900 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
901
902         PR/35842
903         * config/i386/i386.c (legitimize_pic_address): Add treating
904         of dllimport SYM_REF's.
905         (legitimize_dllimport_symbol): Add prototype.
906
907 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
908
909         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
910         reference in constructor with non self-referential type.
911
912 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
913
914         Removal of Return with Depressed Stack Pointer support
915         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
916         (ECF_SP_DEPRESSED): Likewise.
917         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
918         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
919         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
920         (expand_call): Do not test ECF_SP_DEPRESSED.
921         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
922         * function.c (keep_stack_depressed): Delete.
923         (handle_epilogue_set): Likewise.
924         (update_epilogue_consts): Likewise.
925         (emit_equiv_load): Likewise.
926         (thread_prologue_and_epilogue_insns): Remove support for Return with
927         Depressed Stack Pointer.
928         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
929
930 2008-04-06  Richard Guenther  <rguenther@suse.de>
931
932         PR tree-optimization/35400
933         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
934         information from SSA_NAMEs.
935
936 2008-04-06  Anatoly Sokolov <aesok@post.ru>
937
938         * config/avr/avr.h (avr_mega_p): Remove declaration.
939         (AVR_MEGA): Remove macro.
940         * config/avr/avr.c (avr_mega_p): Remove variable.
941         (avr_override_options): Remove inicializion of avr_mega_p.
942         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
943         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
944         (avr_jump_mode): (Ditto.).
945         (avr_output_progmem_section_asm_op): (Ditto.).
946         (avr_asm_init_sections): (Ditto.).
947         (avr_asm_init_sections): (Ditto.).
948         (avr_rtx_costs): (Ditto.).
949         * config/avr/avr.md: (Ditto.).
950         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
951         '__AVR_MEGA__'.
952
953 2008-04-06  Richard Guenther  <rguenther@suse.de>
954
955         PR tree-optimization/35842
956         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
957         is_gimple_invariant_address.
958
959 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
960
961         * gcc.c (default_compilers): Sync Fortran extensions list with
962         that in fortran/lang-specs.h.
963         * doc/invoke.texi: Likewise.
964         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
965         * dwarf2out.c (gen_compile_unit_die): Likewise.
966
967 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
968
969         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
970
971 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
972
973         PR target/12329
974         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
975         attribute is used for nested functions.
976
977 2008-04-05  Jan Hubicka  <jh@suse.cz>
978
979         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
980
981         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
982         letter argument.
983         (dump_files): Update.
984         (enable_rtl_dump_file): Do not accept letter argument.
985         * tree-pass.h (dump_file_info): Remove letter argument.
986         * toplev.c (decode_d_option): Update -da handling.
987         * toplev.h (enable_rtl_dump_file): Update prototype.
988         * passes.c (register_one_dump_file): Do not accept IPA argument; work
989         it out based on pass type.
990         (register_dump_files_1): Likewise.
991         (init_optimization_passes): Update register_one_dump_file calls.
992         (execute_one_pass): Sanity check that IPA passes are called at IPA
993         level and RTL passes at RTL level.
994         (execute_pass_list): IPA pass can not be after or subpass of
995         GIMPLE/RTL pass.
996         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
997         disallov RTL subpasses of IPA subpasses.
998
999 2008-04-05  Ben Elliston  <bje@au.ibm.com>
1000
1001         * tree-cfg.c (need_fake_edge_p): Return false for calls to
1002         builtins that return exactly once and do not throw. Cache call to
1003         call_expr_flags.
1004
1005 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
1006
1007         PR rtl-optimization/34916
1008         PR middle-end/35519
1009         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1010         between instruction pairs.
1011
1012 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1013
1014         * doc/invoke.texi: Document -mbitops for SH.
1015         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1016         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1017         * config/sh/sh.c (print_operand): Add %t operand code.
1018         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1019         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1020         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1021         (extendqihi2): Likewise.
1022         (movqi_i): Likewise.
1023         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1024         (extv): Use bld instruction for SH2A if possible.
1025         (extzv): Likewise.
1026         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1027         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1028         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1029         (bset.b, bclr.b): Define peepholes.
1030         * config/sh/sh.opt (mbitops): New option.
1031
1032 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1033
1034         PR target/35620
1035         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1036         and view convert expression.
1037
1038 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1039
1040         PR target/35364
1041         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1042
1043 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1044
1045         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1046
1047         * config/i386/cpuid.h (bit_AES): New.
1048         (bit_PCLMUL): Likewise.
1049
1050         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1051         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1052         SSE2 if AES or PCLMUL is enabled.
1053         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1054         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1055         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1056         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1057         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1058         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1059         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1060         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1061         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1062         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1063         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1064         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1065         __builtin_ia32_aeskeygenassist128 and
1066         __builtin_ia32_pclmulqdq128.
1067         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1068         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1069         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1070
1071         * config/i386/i386.h (TARGET_AES): New.
1072         (TARGET_PCLMUL): Likewise.
1073         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1074
1075         * config/i386/i386.md (UNSPEC_AESENC): New.
1076         (UNSPEC_AESENCLAST): Likewise.
1077         (UNSPEC_AESDEC): Likewise.
1078         (UNSPEC_AESDECLAST): Likewise.
1079         (UNSPEC_AESIMC): Likewise.
1080         (UNSPEC_AESKEYGENASSIST): Likewise.
1081         (UNSPEC_PCLMUL): Likewise.
1082
1083         * config/i386/i386.opt (maes): New.
1084         (mpclmul): Likewise.
1085
1086         * config/i386/sse.md (aesenc): New pattern.
1087         (aesenclast): Likewise.
1088         (aesdec): Likewise.
1089         (aesdeclast): Likewise.
1090         (aesimc): Likewise.
1091         (aeskeygenassist): Likewise.
1092         (pclmulqdq): Likewise.
1093
1094         * config/i386/wmmintrin.h: New.
1095
1096         * doc/extend.texi: Document AES and PCLMUL built-in function.
1097
1098         * doc/invoke.texi: Document -maes and -mpclmul.
1099
1100 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
1101
1102         * function.c (free_after_parsing): Replace with
1103         cxx_push_function_context from C++ front-end.
1104         (allocate_struct_function): Don't call langhook.
1105         * langhooks.h (struct lang_hooks_for_functions): Delete.
1106         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
1107         member "function".
1108         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
1109         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
1110         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1111         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
1112         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
1113         remove LANG_HOOKS_FUNCTION_INITIALIZER.
1114         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
1115
1116         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
1117         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
1118         
1119 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1120
1121         PR c/35440
1122         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1123         for all types.
1124
1125 2008-04-04  Richard Guenther  <rguenther@suse.de>
1126
1127         PR middle-end/35823
1128         * fold-const.c (optimize_minmax_comparison): Use the correct
1129         type for the constant in the simplified comparison.
1130
1131 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
1132
1133         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
1134         Pass L2 size as "--param l2-cache-size" to the compiler.
1135         (decode_l2_cache): New function to decode L2 cache parameters using
1136         0x8000006 extended cpuid function.
1137         (detect_caches_amd): Determine parameters of L2 cache using
1138         decode_l2_caches function.
1139         (decode_caches_intel): Decode L2 cache parameters.
1140         (detect_caches_intel): Determine L2 cache parameters using
1141         decode_caches_intel and decode_l2_caches functions.
1142
1143 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
1144
1145         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
1146         secondary input reload for subword loads from the constant pool.
1147
1148 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
1149
1150         PR target/35713
1151         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
1152           constants of the appropriate size for runtime calculations.
1153
1154         PR c/35712
1155         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
1156           decimal-float literal constant zero.
1157
1158 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1159
1160         PR c/35738
1161         * c-parser.c (c_parser_omp_atomic): Call
1162         default_function_array_conversion on the RHS.
1163
1164         PR middle-end/35818
1165         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
1166         call is_variable_sized if decl has incomplete type.
1167
1168 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
1169
1170         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
1171
1172 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1173
1174         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
1175         iterators.
1176         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
1177         (sgt<u>): Merge sgt and sgtu into new expander.
1178         (sgt, sgtu): Remove expanders.
1179         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
1180         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
1181         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
1182         *sgtu_<mode>_mips16 into new pattern.
1183         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
1184         (sge<u>): Merge sge and sgeu into new expander.
1185         (sge, sgeu): Remove expanders.
1186         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
1187         new pattern.
1188         (*sge_<mode>, second *sge_<mode>): Remove patterns.
1189         (slt<u>): Merge slt and sltu into new expander.
1190         (slt, sltu): Remove expanders.
1191         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
1192         (*slt_<mode>, *sltu_<mode>): Remove patterns.
1193         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
1194         *sltu_<mode>_mips16 into new pattern.
1195         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
1196         (sle<u>): Merge sle and sleu into new expander.
1197         (sle, sleu): Remove expanders.
1198         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
1199         (*sle_<mode>, *sleu_<mode>): Remove patterns.
1200         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
1201         *sleu_<mode>_mips16 into new pattern.
1202         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
1203
1204 2008-04-03  Jan Hubicka  <jh@suse.cz>
1205
1206         PR tree-optimization/35795
1207         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
1208         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1209         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1210         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1211         * score/score3.c (score3_output_mi_thunk): Likewise.
1212         * score/score7.c (score7_output_mi_thunk): Likewise.
1213         * mips/mips.c (mips_output_mi_thunk): Likewise.
1214
1215 2008-04-03  Richard Guenther  <rguenther@suse.de>
1216
1217         * tree-vrp.c (extract_range_from_unary_expr): Handle all
1218         conversions.  Simplify code.
1219
1220 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1221
1222         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
1223
1224 2008-04-03  Tom Tromey  <tromey@redhat.com>
1225             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1226
1227         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1228         * config/bfin/t-bfin-linux (generated_files): Add
1229         linux-sysroot-suffix.h.
1230         * doc/install.texi (Prerequisites): Require make 3.80.
1231         * doc/sourcebuild.texi (Front End Directory): Document new
1232         variable.
1233         * Makefile.in (generated_files): New variable.
1234         (ALL_HOST_OBJS): New variable.
1235         ($(ALL_HOST_OBJS)): New target.
1236
1237 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1238
1239         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
1240         (remap_block): Call id->transform_lang_insert_block instead
1241         of langhook.
1242         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
1243         Set id.transform_lang_insert_block to NULL.
1244         (clone_body): Move to cp/optimize.c
1245         * tree-inline.h (struct copy_body_data): Change
1246         transform_lang_insert_block to function pointer.
1247         (copy_generic_body, copy_decl_no_change): Export.
1248         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
1249         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
1250         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
1251
1252         * c-tree.h (insert_block): Kill.
1253         * c-decl.c (insert_block): Kill.
1254
1255 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1256
1257         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1258         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1259         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
1260         argument.
1261         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
1262         argument, call {push,pop}_function_context from here.
1263         * c-parser.c: Use c_{push,pop}_function_context.
1264
1265         * function.c (push_function_context_to): Move meat ...
1266         (push_function_context): ... here.  Simplify.
1267         * function.c (pop_function_context_from): Move meat ...
1268         (pop_function_context): ... here.  Simplify.
1269         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
1270         leave_nested).
1271         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1272         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1273         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
1274         * tree.h (push_function_context_to, pop_function_context_from): Remove.
1275
1276 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1277
1278         * expmed.c (extract_force_align_mem_bit_field): Remove.
1279
1280 2008-04-03  Richard Guenther  <rguenther@suse.de>
1281
1282         PR middle-end/35800
1283         * expr.h (try_casesi): Adjust prototype.
1284         * expr.c (try_casesi): Take fallback label as extra parameter.
1285         Use that for gen_casesi if default_label is NULL.
1286         * stmt.c (expand_case): Pass fallback label to try_casesi,
1287         make sure to fill gaps with a fallback label if default_label
1288         is not present.
1289
1290 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
1291
1292         PR target/35801
1293         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
1294
1295 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1296
1297         * expmed.c (extract_split_bit_field): Remove if (0) code.
1298         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
1299         (do_ds_constraint): Likewise.
1300
1301 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1302
1303         * doc/cppopts.texi (-dU): Document.
1304         * c-common.h (flag_dump_macros): Update comment.
1305         * c-opts.c (handle_OPT_d): Handle -dU.
1306         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
1307         dump_queued_macros, cb_used_define, cb_used_undef): New.
1308         (init_pp_output): Handle -dU.
1309         (cb_line_change): Call dump_queued_macros.
1310         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
1311
1312 2008-04-02  Anatoly Sokolov <aesok@post.ru>
1313
1314         * config/avr/predicates.md (io_address_operand): New predicate. 
1315         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
1316         * config/avr/avr.c (avr_io_address_p): Remove function.
1317         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
1318         'avr_io_address_p' function.
1319         (out_movhi_r_mr): (Ditto.).
1320         (out_movqi_mr_r): (Ditto.).
1321         (out_movhi_mr_r): (Ditto.).
1322         (avr_address_cost): (Ditto.).
1323
1324 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
1325
1326         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
1327         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
1328         in 32bit mode when XMM registers are available to avoid store
1329         forwarding stalls.
1330         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
1331         corresponding post-reload splitters.
1332
1333 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1334
1335         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
1336         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
1337         __builtin_ia32_roundss.
1338         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
1339         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
1340         __builtin_ia32_roundss.
1341         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
1342         IX86_BUILTIN_SHUFPD here.
1343
1344 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1345
1346         * config/i386/i386.md (plogic): New.
1347         (plogicprefix): Likewise.
1348
1349         * config/i386/mmx.md (mmx_<code><mode>3): New.
1350         (mmx_and<mode>3): Removed.
1351         (mmx_ior<mode>3): Likewise.
1352         (mmx_xor<mode>3): Likewise.
1353
1354         * config/i386/sse.md (<code><mode>3): New.
1355         (*<code><mode>3): Likewise.
1356         (*<code><mode>3): Likewise.
1357         (<code><mode>3): Likewise.
1358         (*sse_<code><mode>3): Likewise.
1359         (*sse2_<code><mode>3): Likewise.
1360         (<code>tf3): Likewise.
1361         (*<code>tf3): Likewise.
1362         (and<mode>3): Likewise.
1363         (*and<mode>3): Likewise.
1364         (ior<mode>3): Removed.
1365         (*ior<mode>3): Likewise.
1366         (xor<mode>3): Likewise.
1367         (*xor<mode>3): Likewise.
1368         (*and<mode>3): Likewise.
1369         (*ior<mode>3): Likewise.
1370         (*xor<mode>3): Likewise.
1371         (and<mode>3): Likewise.
1372         (*sse_and<mode>3): Likewise.
1373         (*sse2_and<mode>3): Likewise.
1374         (andtf3): Likewise.
1375         (*andtf3): Likewise.
1376         (ior<mode>3): Likewise.
1377         (*sse_ior<mode>3): Likewise.
1378         (*sse2_ior<mode>3): Likewise.
1379         (iortf3): Likewise.
1380         (*iortf3): Likewise.
1381         (xor<mode>3): Likewise.
1382         (*sse_xor<mode>3): Likewise.
1383         (*sse2_xor<mode>3): Likewise.
1384         (xortf3): Likewise.
1385         (*xortf3): Likewise.
1386
1387 2008-04-02  Richard Guenther  <rguenther@suse.de>
1388
1389         PR tree-optimization/14495
1390         PR tree-optimization/34793
1391         * tree-vrp.c (struct switch_update): New structure.
1392         (to_remove_edges, to_update_switch_stmts): New VECs.
1393         (simplify_switch_using_ranges): New function.  Remove not taken
1394         case labels and edges.
1395         (simplify_stmt_using_ranges): Call it.
1396         (identify_jump_threads): Mark edges we have queued for removal
1397         so we don't thread them.
1398         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
1399         case label vector.
1400         * tree-cfg.c (group_case_labels): Deal with missing default label.
1401         (tree_verify_flow_info): Allow missing default label.
1402         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
1403         (emit_case_nodes): Likewise.
1404         (expand_case): Do not rely on the default label to be present.
1405         * expr.c (try_casesi): Deal with NULL default_label.
1406         (do_tablejump): Likewise.
1407
1408 2008-04-02  Richard Guenther  <rguenther@suse.de>
1409
1410         PR tree-optimization/14495
1411         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
1412         SWITCH_EXPR here ...
1413         (vrp_visit_switch_stmt): ... but here (new function).
1414         (find_case_label_index): New helper function.
1415         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
1416
1417 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1418
1419         * fwprop.c: Fix ISO-C99ism.
1420
1421 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1422
1423         PR bootstrap/35752
1424         * Makefile.in (objdir): Set it here.
1425         * configure.ac: Not here.  Find dynamic linker characteristics.
1426         * exec-tool.in: Use them.
1427         * aclocal.m4: Regenerate.
1428         * configure: Regenerate.
1429
1430 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1431
1432         * expr.c (expand_var): Delete it.
1433         * expr.h (expand_var): Delete prototype.
1434         * function.c (expand_function_start): Use expand_decl instead.
1435         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
1436         langhook.
1437
1438 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
1439
1440         PR rtl-optimization/35542
1441         * fwprop.c (forward_propagate_and_simplify): Replace
1442         loc_reg_mentioned_in_p with reg_mentioned_p.
1443
1444 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1445
1446         PR rtl-optimization/35281
1447         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
1448         (propagate_rtx_1): Handle PR_HANDLE_MEM.
1449         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
1450         (varying_mem_p): Move above propagate_rtx.
1451         (all_uses_available_at): Do not check MEMs.
1452
1453 2008-04-02  Rafael Espindola  <espindola@google.com>
1454
1455         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
1456         (register_edge_assert_for_2): Split the cond argument.
1457         (register_edge_assert_for_1): Adjust for the change in
1458         register_edge_assert_for_2.
1459         (register_edge_assert_for): Split the cond argument.
1460         (find_switch_asserts): Adjust for the change in
1461         register_edge_assert_for.
1462
1463 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
1464
1465         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1466         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
1467         offsets for 64-bit mingw.
1468         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
1469         abi for x86_64-pc-mingw.
1470
1471 2008-04-02  Richard Guenther  <rguenther@suse.de>
1472
1473         * tree-vrp.c (extract_range_from_assert): Make sure to not
1474         produce range min/max with TREE_OVERFOW set.
1475         If merging a anti-range and a range keep the anti-range if
1476         the range covers all values of the type.
1477         (register_edge_assert_for_2): Only allow sign-changing
1478         conversions in detecting canonical range checks.  Also
1479         register an assert for the unsigned name if useful.
1480
1481         PR tree-optimization/35787
1482         * tree-vrp.c (vrp_val_max): New function.
1483         (vrp_val_min): Likewise.
1484         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
1485         (vrp_val_is_min): Likewise.
1486         (supports_overflow_infinity): Use vrp_val_{min,max}.
1487         (negative_overflow_infinity): Likewise.
1488         (positive_overflow_infinity): Likewise.
1489         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
1490         (is_positive_overflow_infinity): Likewise.
1491         (is_overflow_infinity): Likewise.
1492         (avoid_overflow_infinity): Use vrp_val_{min,max} and
1493         vrp_val_is_{min,max}.
1494         (set_and_canonicalize_value_range): Canonicalize anti-ranges
1495         to ranges if possible.  Avoid empty ranges.
1496
1497 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1498
1499         PR middle-end/35705
1500         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
1501         the expression is a function address.
1502
1503 2008-04-01  George Helffrich  <george@gcc.gnu.org>
1504
1505         PR fortran/PR35154, fortran/PR23057
1506         * fortran/trans-common.c (create_common):  Add decl to function
1507         chain to preserve identifier scope in debug output.
1508
1509         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
1510         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
1511         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
1512         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
1513         in common.
1514         (dbxout_syms): Check for COMMON-based symbol and wrap in
1515         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
1516         in bracket for efficiency.
1517
1518         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
1519         using DW_TAG_common_block + member offset.
1520         (add_pubname_string): New function.
1521         (dw_expand_expr): New function to find block name and offset for
1522         COMMON var.
1523         (common_check): New function to check whether symbol in Fortran COMMON.
1524         (gen_variable_die): If COMMON, use DW_TAG_common_block.
1525
1526         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
1527         use of common is unchanged.
1528
1529         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
1530         with all combinations of debug options available on target.
1531         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
1532         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
1533         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
1534         .stabs functionality.
1535         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
1536         DWARF functionality.
1537
1538 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
1539
1540         PR c/35436
1541         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
1542
1543 2008-04-02  Ben Elliston  <bje@au.ibm.com>
1544
1545         * config/v850/v850.md (casesi): Remove if (0) code.
1546         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1547         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
1548
1549 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
1550
1551         * config/i386/i386.md (rex64suffix): New mode attribute.
1552         (floathi<mode>2): Disable expander for SSE math.
1553         (*floathi<mode>2_1): New insn insn_and_split pattern.
1554         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
1555         corresponding post-reload splitters.
1556         (*floathi<mode>2_i387): New macroized insn pattern.
1557         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
1558         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
1559         insn_and_split pattern.
1560         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
1561         New macroized instruction patterns and corresponding post-reload
1562         splitters.
1563         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
1564         and corresponding post-reload splitters.
1565         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
1566         New macroized instruction patterns.
1567         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
1568         macroized instruction patterns and corresponding post-reload splitters.
1569         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
1570         corresponding post-reload splitters.
1571         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
1572         New macroized instruction patterns.
1573         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
1574         corresponding post-reload splitters.
1575         (*floatsi<mode>2_i387): New macroized instruction patterns.
1576
1577 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
1578
1579         * config/i386/i386.md (smaxmin): New.
1580         (umaxmin): Likewise.
1581         (maxminiprefix): Likewise.
1582         (maxminfprefix): Likewise.
1583         (<code><mode>3): Likewise.
1584         (smin<mode>3): Removed.
1585         (smax<mode>3): Likewise.
1586
1587         * config/i386/mmx.md (mmx_<code>v2sf3): New.
1588         (mmx_<code>v4hi3): Likewise.
1589         (mmx_<code>v8qi3): Likewise.
1590         (mmx_smaxv2sf3): Removed.
1591         (mmx_sminv2sf3): Likewise.
1592         (mmx_umaxv8qi3): Likewise.
1593         (mmx_smaxv4hi3): Likewise.
1594         (mmx_uminv8qi3): Likewise.
1595         (mmx_sminv4hi3): Likewise.
1596
1597         * config/i386/sse.md (<addsub><mode>3): New.
1598         (*<addsub><mode>3): Likewise.
1599         (<sse>_vm<addsub><mode>3): Likewise.
1600         (<maxmin><mode>3): Likewise.
1601         (*<maxmin><mode>3_finite): Likewise.
1602         (*<maxmin><mode>3): Likewise.
1603         (<sse>_vm<maxmin><mode>3): Likewise.
1604         (sse3_h<addsub>v4sf3): Likewise.
1605         (sse3_h<addsub>v2df3): Likewise.
1606         (<maxmin>v16qi3): Likewise.
1607         (*<maxmin>v16qi3): Likewise.
1608         (<maxmin>v8hi3): Likewise.
1609         (*<maxmin>v8hi3): Likewise.
1610         (*sse4_1_<maxmin><mode>3): Likewise.
1611         (*sse4_1_<maxmin><mode>3): Likewise.
1612         (add<mode>3): Removed.
1613         (*add<mode>3): Likewise.
1614         (<sse>_vmadd<mode>3): Likewise.
1615         (sub<mode>3): Likewise.
1616         (*sub<mode>3): Likewise.
1617         (<sse>_vmsub<mode>3): Likewise.
1618         (smin<mode>3): Likewise.
1619         (*smin<mode>3_finite): Likewise.
1620         (*smin<mode>3): Likewise.
1621         (<sse>_vmsmin<mode>3): Likewise.
1622         (smax<mode>3): Likewise.
1623         (*smax<mode>3_finite): Likewise.
1624         (*smax<mode>3): Likewise.
1625         (<sse>_vmsmax<mode>3): Likewise.
1626         (sse3_haddv4sf3): Likewise.
1627         (sse3_haddv2df3): Likewise.
1628         (sse3_hsubv4sf3): Likewise.
1629         (sse3_hsubv2df3): Likewise.
1630         (umaxv16qi3): Likewise.
1631         (*umaxv16qi3): Likewise.
1632         (smaxv8hi3): Likewise.
1633         (*smaxv8hi3): Likewise.
1634         (*sse4_1_smax<mode>3): Likewise.
1635         (*sse4_1_umax<mode>3): Likewise.
1636         (uminv16qi3): Likewise.
1637         (*uminv16qi3): Likewise.
1638         (sminv8hi3): Likewise.
1639         (*sminv8hi3): Likewise.
1640         (*sse4_1_smin<mode>3): Likewise.
1641         (*sse4_1_umin<mode>3): Likewise.
1642
1643 2008-04-01  Rafael Espindola  <espindola@google.com>
1644
1645         * tree-cfg.c (verify_expr): remove in_phi.
1646         (verify_stmt): Don't call walk_tree with verify_expr. Use
1647         is_gimple_min_invariant instead of is_gimple_val.
1648
1649 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
1650
1651         * doc/include/gpl_v3.texi: Update for manpage generation.
1652         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
1653         gpl.texi.
1654         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
1655         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
1656         gpl_v3.texi instead of gpl.texi.
1657         (gpl.pod): New.
1658
1659 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
1660
1661         PR pch/13675
1662         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
1663
1664 2008-04-01  Rafael Espindola  <espindola@google.com>
1665
1666         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
1667         (extract_code_and_val_from_cond): Use
1668         extract_code_and_val_from_cond_with_ops.
1669
1670 2008-04-01  Jan Hubicka  <jh@suse.cz>
1671
1672         * function.c (free_after_compilation): Free epilogue_delay_list.
1673         (prepare_function_start): Assert that previous compilation was freed.
1674
1675 2008-04-01  Jan Hubicka  <jh@suse.cz>
1676             Jim Wilson  <wilson@tuliptree.org>
1677             Andreas Tobler <andreast@gcc.gnu.org>
1678
1679         PR middle-end/35781
1680         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
1681         rtl.emit instead cfun->emit.
1682         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
1683         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
1684
1685 2008-04-01  Ben Elliston  <bje@au.ibm.com>
1686
1687         * doc/c-tree.texi (Function Basics): Fix grammatical error.
1688
1689 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
1690
1691         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
1692         New options
1693         (fprofile-use): Add var flag_profile_use
1694         * coverage.c (coverage_begin_output): Do not open a gcno file for
1695         output only if -ftest-coverage is set.
1696         Do not add getpwd() to gcda file path.
1697         (build_gcov_info): Check the new flag
1698         flag_profile_datafile_relative_path.
1699         (coverage_init): Use profile_data_prefix.
1700         Read profile counter only if flag_profile_use is set.
1701         * opts.c (common_handle_option): New option fprofile-use=,
1702         fprofile-dir=, fprofile-generate=.
1703         * toplev.c (profile_data_prefix): New variable definition.
1704         * toplev.h (profile_data_prefix): New declaration.
1705         * doc/invoke.tex (Option Summary, Optimization Options):
1706         Add new options.
1707
1708 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
1709
1710         * varasm.c (output_constant_pool_1): In LABEL_REF check,
1711         use tmp consistently.
1712
1713         PR target/35695
1714         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
1715         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1716         UNSPEC_FR_RECIP_APPROX_RES.
1717         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
1718
1719 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
1720
1721         PR c/35750
1722         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
1723
1724 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1725
1726         PR middle-end/30186
1727         * fold-const.c (fold_indirect_ref_1): Support accessing non first
1728         element of the vector via a pointer.
1729
1730 2008-03-31  Ian Lance Taylor  <iant@google.com>
1731
1732         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
1733
1734 2008-03-31  Jan Hubicka  <jh@suse.cz>
1735
1736         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1737         get_arg_pointer_save_area.
1738         * expr.c (init_expr): Just clear out rtl.expr.
1739         * function.c (free_after_compilation): Clear out whole RTL structure.
1740         (get_func_frame_size): Merge into ...
1741         (get_frame_size): ... this one.
1742         (assign_stack_local_1): Merge into ...
1743         (assign_stack_local): ... this one.
1744         (expand_function_end): Update call of get_arg_pointer_save_area.
1745         (get_art_pointer_save_area): Remove cfun argument.
1746         * function.h (emit_status): regno_pointer_align does not need length
1747         attribute. Move x_regno_reg_rtx to ...
1748         (regno_reg_rtx): ... new global array.
1749         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
1750         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
1751         apply_args_value, forced_labels, stack_pointer_delta):
1752         Update accestors.
1753         (struct varasm_status): Move here from varasm.c
1754         (struct rtl_data): New. Move here some fields from struct function.
1755         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1756         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1757         used_temp_slots avail_temp_slots, temp_slot_level,
1758         nonlocal_goto_handler_labels): Update accesstors.
1759         (rtl): New global variable.
1760         (struct function): Move some fileds to rtl_data.
1761         (get_arg_pointer_save_area): Update prototype.
1762         * emit-rtl.c (rtl): Declare.
1763         (regno_reg_rtx): Declare.
1764         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1765         Update.
1766         (gen_reg_rtx): Update.
1767         (init_virtual_regs): Do not tate emit_status argument.
1768         (init_emit): Do not allocate emit.
1769         * varasm.c (varasm_statuc): Move to function.h.
1770         (n_deferred_constatns): Update accestor.
1771         (init_varasm_status): Do not allocate varasm_status.
1772         (force_const_mem, get_pool_size, output_constant_pool): Update.
1773         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1774         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1775
1776 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
1777
1778         PR rtl-optimization/35729
1779         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
1780         references.
1781
1782 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1783
1784         PR target/32000
1785         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
1786         load/store if memory is unaligned.
1787         (*movti_rex64): Likewise.
1788
1789         * config/i386/predicates.md (misaligned_operand): New.
1790
1791 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
1792
1793         PR tree-opt/35431
1794         * tree-ssa-phiopt.c (conditional_replacement): Return early for
1795         complex types.
1796
1797 2008-03-31  Jan Beulich  <jbeulich@novell.com>
1798
1799         * config/ia64/constraints.md: Add 'j' constraint.
1800         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
1801         (movdi_internal): Likewise.
1802
1803 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
1804
1805         PR c/35748
1806         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
1807
1808 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1809
1810         PR target/35757
1811         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
1812         proper error message for the third argument on blendpd and
1813         blendps.
1814
1815         * config/i386/sse.md (blendbits): New.
1816         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
1817
1818 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
1819
1820         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
1821
1822 2008-03-30  Richard Guenther  <rguenther@suse.de>
1823
1824         PR middle-end/31023
1825         * fold-const.c (fold_sign_changed_comparison): Do leave
1826         conversions to base-types alone.
1827
1828 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1829
1830         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
1831         the link register if one altivec register is be saved.
1832
1833 2008-03-30  Ben Elliston  <bje@au.ibm.com>
1834
1835         * final.c (final_scan_insn): Remove if (0) code.
1836
1837 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
1838
1839         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
1840
1841 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
1842
1843         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
1844         of V4SFmode to ix86_binary_operator_ok.
1845
1846 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
1847
1848         * config/i386/i386.c (override_options): Initialize
1849         ix86_veclib_handler to ix86_veclibabi_svml when
1850         -mveclibabi=svml is used.
1851         (ix86_veclibabi_svml): New function for SVML ABI style
1852         vectorization support.
1853         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
1854
1855 2008-03-28  Rafael Espindola  <espindola@google.com>
1856
1857         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
1858         (tree_binary_nonnegative_warnv_p): Make it public.
1859         (tree_single_nonnegative_warnv_p): Make it public.
1860         (tree_invalid_nonnegative_warnv_p): Make it public.
1861         (tree_unary_nonzero_warnv_p): Make it public.
1862         (tree_binary_nonzero_warnv_p): Make it public
1863         (tree_single_nonzero_warnv_p): Make it public.
1864         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
1865         (extract_range_from_binary_expr): Split the expr argument.
1866         (extract_range_from_unary_expr): Split the expr argument.
1867         (extract_range_from_comparison): Split the expr argument.
1868         (extract_range_from_expr): Use the new aux functions.
1869         (vrp_evaluate_conditional_warnv): Use
1870         vrp_evaluate_conditional_warnv_with_ops.
1871         * tree.h (tree_unary_nonzero_warnv_p): Declare.
1872         (tree_binary_nonzero_warnv_p): Declare.
1873         (tree_single_nonzero_warnv_p): Declare.
1874         (tree_expr_nonzero_warnv_p): Declare.
1875         (tree_unary_nonnegative_warnv_p): Declare.
1876         (tree_binary_nonnegative_warnv_p): Declare.
1877         (tree_single_nonnegative_warnv_p): Declare.
1878         (tree_invalid_nonnegative_warnv_p): Declare.
1879
1880 2008-03-28  Richard Guenther  <rguenther@suse.de>
1881
1882         PR tree-optimization/30317
1883         PR tree-optimization/30911
1884         PR tree-optimization/34793
1885         * tree-vrp.c (set_and_canonicalize_value_range): New function.
1886         (struct assert_locus_d): New member EXPR.
1887         (register_new_assert_for): Add EXPR parameter to support
1888         ASSERT_EXPR <name, expr OP limit>.
1889         (register_edge_assert_for_1): Adjust callers.
1890         (find_assert_locations): Likewise.
1891         (process_assert_insertions_for): Build condition from expression.
1892         (extract_range_from_assert): Handle ASSERT_EXPRs
1893         of the form ASSERT_EXPR <name, expr OP limit>.
1894         (register_edge_assert_for_2): New helper registering
1895         asserts for comparisons.  Recognize range tests of the form
1896         (unsigned)i - CST1 OP CST2.
1897         (register_edge_assert_for_1): Use it.
1898         (register_edge_assert_for): Likewise.
1899         (needs_overflow_infinity): Integer sub-types
1900         do not need overflow infinities.
1901         (vrp_val_is_max): The extreme values of integer sub-types
1902         are those of the base type.
1903         (vrp_val_is_min): Likewise.
1904         * tree.def (ASSERT_EXPR): Document extra allowed conditional
1905         expressions.
1906
1907 2008-03-28  Nick Clifton  <nickc@redhat.com>
1908
1909         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1910         Return GENERAL_REGS for stack adjustment reloads.
1911
1912 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1913
1914         PR target/31334
1915         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
1916         const_vector when all the vectors are constant.
1917
1918 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
1919
1920         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
1921         comparisons.
1922         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
1923         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
1924         (scc_sf): New.
1925         (s<code>_sf): Use new scc_sf attribute for opcode names.
1926
1927 2008-03-27  Tom Tromey  <tromey@redhat.com>
1928
1929         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
1930         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
1931         config/spu/t-spu-elf, config/i386/t-interix,
1932         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
1933         config/i386/x-darwin, config/i386/x-mingw32,
1934         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
1935         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
1936         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
1937         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
1938         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
1939         config/rs6000/x-darwin, config/rs6000/t-rs6000,
1940         config/score/t-score-elf, config/arm/t-strongarm-pe,
1941         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
1942         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
1943         Revert automatic dependency patch.
1944
1945 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1946
1947         PR target/35657
1948         * config/i386/i386.c (ix86_function_arg_boundary): Align
1949         decimal floating point to its natural boundary.
1950
1951 2008-03-27  Richard Guenther  <rguenther@suse.de>
1952
1953         PR middle-end/35716
1954         * fold-const.c (fold_comparison): Restrict distinct decl
1955         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
1956         solely rely on operand_equal_p.
1957
1958 2008-03-27  Richard Guenther  <rguenther@suse.de>
1959
1960         PR c/32511
1961         * c-common.c (handle_weak_attribute): Reject combination of
1962         weak and inline.
1963
1964 2008-03-27  Richard Guenther  <rguenther@suse.de>
1965
1966         PR tree-optimization/32810
1967         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
1968         conversions from DECL_INITIAL.
1969         (fold_const_aggregate_ref): Likewise from constructor elements.
1970
1971 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
1972
1973         * tree-affine.h (aff_combination_expand): Declare.
1974         (get_inner_reference_aff): Likewise.
1975         * tree-affine.c (aff_combination_expand): Split out from
1976         tree_to_aff_combination_expand.
1977         (get_inner_reference_aff): New function.
1978         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
1979         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
1980         (struct lim_aux_data): sm_done field removed.
1981         (mem_ref_loc_p, mem_ref_locs_p): New types.
1982         (struct mem_ref): Added id, stored, accesses_in_loop,
1983         indep_loop, dep_loop, indep_ref, dep_ref fields.
1984         Removed is_stored, locs and next fields.
1985         (memory_accesses): New variable.
1986         (movement_possibility): Do not allow moving statements
1987         that store to memory.
1988         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
1989         New functions.
1990         (determine_max_movement): For statements with memory references,
1991         find the outermost loop in that the reference is independent.
1992         (move_computations_stmt): Mark the virtual operands for renaming.
1993         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
1994         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
1995         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
1996         add_vop_ref_mapping, create_vop_ref_mapping_loop,
1997         create_vop_ref_mapping, analyze_memory_references,
1998         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
1999         get_all_locs_in_loop, ref_always_accessed_p,
2000         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
2001         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
2002         store_motion_loop, store_motion): New functions.
2003         (struct vop_to_refs_elt): New type.
2004         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
2005         memref_hash, memref_eq, hoist_memory_references): Rewritten.
2006         (schedule_sm): Replaced by...
2007         (execute_sm): ... this.
2008         (determine_lsm_ref, hoist_memory_references,
2009         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2010         find_more_ref_vops, free_mem_ref, free_mem_refs,
2011         determine_lsm_loop, determine_lsm): Removed.
2012         (tree_ssa_lim_finalize): Free data structures used by store motion.
2013         (tree_ssa_lim): Call analyze_memory_references.  Use
2014         store_motion instead of determine_lsm.
2015
2016 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2017
2018         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2019         rename tmake_file to m68hc11/t-m68hc11.
2020         (mcore): Set inhibit_libc to true.
2021         * config.host (alpha*-dec-*vms*): Set extra_programs.
2022         (interix3*): Don't use host_xmake_file.
2023         * configure.ac: Let config.gcc override inhibit_libc.
2024         * configure: Regenerate.
2025
2026         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2027         * config/t-openbsd-thread: Remove commented out lines.
2028         
2029         * config/x-interix: Remove.
2030
2031         * config/m68hc11/t-m68hc11-gas: Rename to...
2032         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2033
2034         * config/mcore/t-mcore: Remove T_CFLAGS.
2035         * config/mcore/t-mcore-pe: Likewise.
2036
2037 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2038
2039         * configure.ac: Replace custom __GNU_SOURCE test with
2040         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2041         * aclocal.m4: Regenerate.
2042         * configure: Regenerate.
2043         * config.in: Regenerate.
2044
2045 2008-03-27  Richard Guenther  <rguenther@suse.de>
2046
2047         * fold-const.c (target.h): Include.
2048         (fold_comparison): Fold comparison of addresses of decls
2049         that bind locally or of constants.  Consolidate address folding code.
2050         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2051         results from fold_binary_to_constant.
2052         (compare_values_warnv): Likewise.
2053
2054 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2055
2056         PR middle-end/35429
2057         * fold-const.c (fold_truthop): Check for integeral types when folding
2058         a == 0 && b == 0 and a != 0 || b != 0 .
2059
2060 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2061
2062         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2063
2064 2008-03-26  Andreas Schwab  <schwab@suse.de>
2065
2066         * doc/invoke.texi: Fix use of @item vs. @itemx.
2067
2068 2008-03-26  Tom Tromey  <tromey@redhat.com>
2069
2070         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2071         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2072         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2073         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2074         build/genconstants.o, build/genemit.o, build/genextract.o,
2075         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2076         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2077         options.h.
2078
2079 2008-03-26  Richard Guenther  <rguenther@suse.de>
2080
2081         Revert
2082         2008-03-26  Richard Guenther  <rguenther@suse.de>
2083
2084         * fold-const.c (target.h): Include.
2085         (fold_comparison): Fold comparison of addresses of two decls
2086         that bind locally.  Consolidate address folding code.
2087
2088 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2089
2090         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2091         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
2092         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
2093         dconstsqrt2, dconstthird, dconste and/or dconst10.
2094         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
2095         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
2096         dconstsqrt2, dconste): Delete.
2097         (init_emit_once): Likewise.  Simplify initializing dconstm1.
2098         Constify variable.
2099         * real.c (get_real_const): New.
2100         * real.h (dconst3, dconst10, dconstm2, dconstthird,
2101         dconstsqrt2, dconste): Delete.
2102         (real_value_const, get_real_const): New.
2103
2104 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
2105
2106         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
2107
2108         * config/i386/i386.c (ix86_function_arg_boundary): Check
2109         BIGGEST_ALIGNMENT instead of 128.
2110         (setup_incoming_varargs_64): Likewise.
2111
2112 2008-03-26  Tom Tromey  <tromey@redhat.com>
2113
2114         * Makefile.in (DEPFILES): Add missing '/'.
2115
2116 2008-03-26  Richard Guenther  <rguenther@suse.de>
2117
2118         * fold-const.c (target.h): Include.
2119         (fold_comparison): Fold comparison of addresses of two decls
2120         that bind locally.  Consolidate address folding code.
2121
2122 2008-03-26  Nick Clifton  <nickc@redhat.com>
2123
2124         PR target/31232
2125         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
2126         not allow INT+INT as a legitimate addressing mode.
2127
2128 2008-03-26  Richard Guenther  <rguenther@suse.de>
2129
2130         * tree-flow.h (widen_bitfield): Remove declaration.
2131         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
2132         (widen_bitfield): Remove function.
2133         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
2134         code.
2135
2136 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2137
2138         PR target/31558
2139         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
2140         error_mark_node's.
2141
2142 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2143
2144         PR rtl-optimization/35232
2145         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
2146         (forget_old_reloads_1, forget_marked_reloads): Don't clear
2147         reg_reloaded_call_part_clobbered here.
2148         (reload_regs_reach_end_p): New function.
2149         (reload_reg_rtx_for_input): New variable.
2150         (reload_reg_rtx_for_output): Likewise.
2151         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
2152         when reassigning a pseudo register.  Load reloadreg from 
2153         reload_reg_rtx_for_input, moving the mode and register
2154         calculation to...
2155         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
2156         instead of the original when deciding whether an input reload
2157         would be a no-op or whether an output reload can be deleted.
2158         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
2159         when setting up new_spill_reg_store.  Load it from
2160         reload_reg_rtx_for_output, moving the mode and register
2161         calculation to...
2162         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
2163         instead of the original when deciding whether an output reload
2164         would be a no-op.  Do the same when modifying insn notes.
2165         Use rtx_equal_p instead of == to compare the registers.
2166         (inherit_piecemeal_p): Take a mode and two register numbers
2167         as argument.
2168         (emit_reload_insns): Clear new_spill_reg_store for every hard
2169         register in the reload register.  Remove spill registers
2170         from reg_reloaded_valid before considering whether to record
2171         inheritance information for them.  Use reload_reg_rtx_for_output
2172         instead of reg_rtx when recording output reloads.  Use
2173         reload_reg_rtx_for_input instead of reg_rtx when recording
2174         input reloads.  Set or clear reg_reloaded_call_part_clobbered
2175         at the same time as setting reg_reloaded_valid.
2176         (delete_output_reload): Add a new_reload_reg parameter and use it
2177         instead of rld[j].reg_rtx.
2178         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
2179         calls accordingly.
2180
2181 2008-03-25  Tom Tromey  <tromey@redhat.com>
2182
2183         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
2184         (build/genattr.o): Likewise.
2185         (build/genattrtab.o): Likewise.
2186         (build/gencodes.o): Likewise.
2187         (build/genconfig.o): Likewise.
2188         (build/genconstants.o): Likewise.
2189         (build/genemit.o): Likewise.
2190         (build/genextract.o): Likewise.
2191         (build/genflags.o): Likewise.
2192
2193 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
2194         
2195         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
2196         instead of size_int for integer types.
2197         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
2198         to match type of MINUS_EXPR.
2199         
2200 2008-03-25  Tom Tromey  <tromey@redhat.com>
2201
2202         * configure: Rebuilt.
2203         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
2204         Makefile.
2205
2206 2008-03-25  Tom Tromey  <tromey@redhat.com>
2207
2208         * config/x-solaris (host-solaris.o): Update.
2209         * config/x-linux (host-linux.o): Update.
2210         * config/x-hpux (host-hpux.o): Update.
2211         * config/x-darwin (host-darwin.o): Update.
2212         * config/v850/t-v850e (v850-c.o): Update.
2213         * config/v850/t-v850 (v850-c.o): Update.
2214         * config/t-vxworks (vxworks.o): Update.
2215         * config/t-sol2 (sol2-c.o, sol2.o): Update.
2216         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2217         * config/spu/t-spu-elf (spu-c.o): Update.
2218         (spu.o): Remove.
2219         * config/sh/t-symbian (sh-c.o): Update.
2220         (symbian.o): Update.
2221         * config/sh/t-sh (sh-c.o): Update.
2222         * config/score/t-score-elf (score7.o, score3.o): Update.
2223         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
2224         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
2225         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
2226         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
2227         (rs6000.o): Remove.
2228         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2229         * config/m32c/t-m32c (m32c-pragma.o): Update.
2230         * config/ia64/t-ia64 (ia64-c.o): Update.
2231         * config/i386/x-mingw32 (host-mingw32.o): Update.
2232         * config/i386/x-i386 (driver-i386.o): Update.
2233         * config/i386/x-darwin (host-i386-darwin.o): Update.
2234         * config/i386/x-cygwin (host-cygwin.o): Update.
2235         * config/i386/t-nwld (nwld.o): Update.
2236         * config/i386/t-netware (netware.o): Update.
2237         * config/i386/t-interix (winnt.o): Update.
2238         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
2239         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
2240         msformat-c.o): Update.
2241         * config/bfin/t-bfin-linux (generated_files): Add
2242         linux-sysroot-suffix.h.
2243         * config/arm/t-wince-pe (pe.o): Update.
2244         * config/arm/t-strongarm-pe (pe.o): Update.
2245         * config/arm/t-pe (pe.o): Update.
2246         * config/arm/t-arm (arm-c.o): Update.
2247         * doc/install.texi (Prerequisites): Require make 3.80.
2248         * Makefile.in: Remove .o targets.
2249         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
2250         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
2251         (simple_generated_h, simple_generated_c): Move earlier.
2252         (generated_files): New variable.
2253         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
2254         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
2255         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
2256         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
2257         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
2258         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
2259         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
2260         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
2261         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
2262         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
2263         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
2264         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
2265         (.c.o): Remove.
2266         (COMPILE.base, COMPILE): New variables.
2267         (%.o): New pattern rule.
2268         (ALL_HOST_OBJS): New variable.
2269         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
2270         (dummy-checksum.o, cc1-checksum.o): Remove.
2271         (DRIVER_SHLIB): New variable.
2272         (DRIVER_DEFINES): Use it.
2273         (gencondmd.c): Move out of build/.
2274         (s-conditions): Update.
2275         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
2276         (ALL_BUILD_OBJS): Likewise.
2277         (build/%.o): Use BUILDCOMPILE.
2278         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
2279         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
2280         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
2281         build/gencheck.o, build/gencodes.o, build/genconditions.o,
2282         build/genconfig.o, build/genconstants.o, build/genemit.o,
2283         build/genextract.o, build/genflags.o, build/genmddeps.o,
2284         build/genopinit.o, build/genoutput.o, build/genpeep.o,
2285         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
2286         build/gen-protos.o, build/scan.o, build/fix-header.o,
2287         build/scan-decls.o): Simplify.
2288         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
2289         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
2290         prefix.o, toplev.o): Reduce to variable setting.
2291         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
2292         ($(out_object_file), gcc-options.o): New targets.
2293         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
2294         * configure: Rebuilt.
2295         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
2296         * doc/sourcebuild.texi (Front End Directory): Document new variable.
2297
2298 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2299
2300         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
2301         complain when we hit an error, return ERROR_MARK_NODE.
2302
2303 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2304
2305         * config/sh/constraints.md (Pso, Psz): New constraints.
2306         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
2307         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
2308
2309 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2310
2311         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
2312         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
2313
2314 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2315
2316         * config/sh/sh.md (prefetch): Add condition for SH2A target.
2317         (prefetch_sh2a): New.   
2318
2319 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2320             Naveen.H.S  <naveen.hs@kpitcummins.com>
2321
2322         * config/sh/constraints.md (I28): New constraint.
2323         * config/sh/sh.c (broken_move): Add support for movi20s.
2324         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
2325
2326 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
2327             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2328             Naveen.H.S  <naveen.hs@kpitcummins.com>
2329
2330         * config/sh/sh.c (SH_ATTRIBUTES): Define.
2331         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
2332         (print_operand): Handle resbank in %@ operand code.
2333         (sh_encode_section_info): New.
2334         (push_regs): Add conditions for resbank.
2335         (sh_expand_epilogue): Likewise.
2336         (sh_insert_attributes): Likewise.
2337         (sh_attribute_table): Likewise.
2338         (sh_handle_resbank_handler_attribute): New.
2339         (sh2a_handle_function_vector_handler_attribute): New.
2340         (sh2a_is_function_vector_call): New.
2341         (sh2a_get_function_vector_number): New.
2342         (sh2a_function_vector_p): New.
2343         (sh_cfun_resbank_handler_p): New.
2344         * config/sh/sh.md (calli): Emit jsr/n if possible.
2345         (calli_tbr_rel): New.
2346         (calli_pcrel): Emit jsr/n if possible.
2347         (return_i): Emit rts/n if possible.
2348         (call_valuei_tbr_rel): New.
2349         (call_valuei_pcrel): Add condition for SH2A target.
2350         (call_value): Likewise.
2351         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
2352         (sh2a_get_function_vector_number): Likewise.
2353         (sh2a_is_function_vector_call): Likewise.
2354         * doc/extend.texi: Document TBR relative addressing of SH2A.
2355         (resbank): Add description for SH2A.
2356
2357 2008-03-24  Richard Guenther  <rguenther@suse.de>
2358
2359         PR c/22371
2360         * gimplify.c (gimplify_modify_expr): For frontend type-correct
2361         pointer assignments change conversions according to middle-end rules.
2362         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
2363         * configure.ac: Include type checking in yes.
2364         * configure: Regenerate.
2365
2366 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2367
2368         * diagnostic.c (diagnostic_count_diagnostic): Delete.
2369         (diagnostic_report_diagnostic): Update. Handle ICEs here.
2370         
2371 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2372
2373         * gthr-vxworks.h (UNUSED): Define.
2374
2375 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
2376
2377         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2378
2379 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
2380
2381         * doc/extend.texi (Function Attributes): Add missing comma in the
2382         example of the "alloc_size" attribute.
2383         
2384 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
2385
2386         Revert:
2387         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2388
2389         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2390         32bit host.
2391
2392         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2393
2394         PR target/35496
2395         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2396         of the underlying type of a MS bitfield layout to the natural
2397         alignment of the type.
2398
2399         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2400
2401         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2402         to their natural alignment to avoid store forwarding stalls.
2403
2404 2008-03-22  Richard Guenther  <rguenther@suse.de>
2405
2406         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
2407         For PHI nodes verify the address is invariant.
2408         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
2409         (get_symbol_constant_value): Use is_gimple_min_invariant.
2410         (maybe_fold_stmt_indirect): Likewise.
2411
2412 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
2413
2414         PR rtl-optimization/33927
2415         * Makefile.in (dse.o): Depend on $(TM_P_H).
2416         * expr.h (extract_low_bits): Declare.
2417         * expmed.c (extract_low_bits): New function.
2418         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
2419         * dse.c: Include tm_p.h.
2420         (find_shift_sequence): Remove the read_reg argument and return the
2421         read value.  Emit the instructions instead of returning them.
2422         Iterate on new_mode rather than calculating it each time.
2423         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
2424         source to NEW_MODE and extract_low_bits to convert the shifted
2425         value to READ_MODE.
2426         (replace_read): Allow the load and store to have different mode
2427         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
2428         or extraction instructions before trying the replacement.  Update
2429         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
2430
2431 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2432
2433         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2434         to their natural alignment to avoid store forwarding stalls.
2435
2436 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2437
2438         PR target/27946
2439         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
2440         encouraging but not allowing gprs for input;
2441         change the input constraint to !f#r.
2442         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
2443         gprs for output;
2444         change the output constraint to !f#r.
2445
2446 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
2447
2448         PR target/13958
2449         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
2450         corresponding post-reload splitters.
2451         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
2452         when x87 FP math is selected.
2453         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
2454         New function prototype.
2455         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
2456         unreachable function to ease macroization of insn patterns.
2457
2458 2008-03-21  Martin Jambor  <mjambor@suse.cz>
2459
2460         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
2461         reference dumps if ddr is NULL or dependence is unknown.
2462
2463 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2464
2465         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
2466         unsigned extension into account.
2467         (ATOMIC_COMPARE_AND_SWAP): Likewise.
2468         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
2469         Do computations on a scratch register.
2470
2471 2008-03-21  Richard Guenther  <rguenther@suse.de>
2472
2473         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2474         Use is_gimple_min_invariant instead of TREE_INVARIANT.
2475         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2476         * tree-ssa-dom.c (record_equality): Likewise.
2477         * tree-inline.c (copy_body_r): Likewise.
2478         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
2479         TREE_INVARIANT.
2480
2481 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2482
2483         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
2484         as 'delete_unused' argument.
2485
2486 2008-03-20  Richard Guenther  <rguenther@suse.de>
2487
2488         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
2489         special casing of constant qualifiers.
2490         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
2491         care about them in general.
2492         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
2493         regardless of their type.
2494         (fold_stmt_r): Forcefully fold *& if we end up with that.
2495
2496 2008-03-20  Paul Brook  <paul@codesourcery.com>
2497
2498         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
2499         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
2500         linker flags.
2501         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
2502         definition.
2503         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
2504         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
2505
2506 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
2507
2508         * common.opt (Wmudflap): New option.
2509         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
2510         (mx_register_decls): Likewise.
2511         (mudflap_finish_file): Likewise.
2512         * doc/invoke.texi: Document -Wno-mudflap.
2513
2514 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
2515
2516         * c-format.c (replace_format_name_to_system_name): New.
2517         (cmp_attribs): New.
2518         (convert_format_name_to_system_name): New.
2519         (decode_format_attr): Add use of convert_format_name_to_system_name.
2520         (format_types_orig): Add gnu_ prefix to names.
2521         (check_format_info_main): Special treating of \0 escaped names for
2522         supporting multi-character format specifiers as I32, I64.
2523         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
2524         (gnu_target_overrides_format_attributes): New.
2525         * c-format.h: Add structure target_ovr_attr to hold
2526         system specific formatter names.
2527         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
2528         msformat-c.o file to c_target_objs and cxx_target_objs.
2529         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2530         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
2531         (TARGET_N_FORMAT_TYPES): New.
2532         * config/i386/msformat-c.c: New.
2533         * config/i386/t-cygming: Add build rule for msformat-c.o.
2534         * doc/extend.texi: Add new format names gnu_* and ms_* and
2535         further details.
2536         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2537
2538 2008-03-20  Ira Rosen  <irar@il.ibm.com>
2539
2540         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
2541         optimizations turned on under -O3.
2542         (ftree-vectorize): Add that the flag is turned on with -O3.
2543
2544 2008-03-20  Ben Elliston  <bje@au.ibm.com>
2545
2546         * regmove.c (try_auto_increment): Fix spelling error in comment.
2547         * final.c (final_scan_insn): Likewise.
2548
2549 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
2550
2551         PR target/14552
2552         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
2553         allocator preferences for "y" and "r" class registers.
2554         ("*mov<mode>_internal"): Ditto.
2555         ("*movv2sf_internal_rex64"): Ditto.
2556         ("*movv2sf_internal"): Ditto.
2557
2558 2008-03-19  Michael Matz  <matz@suse.de>
2559
2560         PR middle-end/35616
2561         * calls.c (expand_call): Check overlap of arguments with call
2562         address for sibcalls.
2563
2564 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2565
2566         PR target/35496
2567         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2568         of the underlying type of a MS bitfield layout to the natural
2569         alignment of the type.
2570
2571 2008-03-19  Jan Hubicka  <jh@suse.cz>
2572
2573         PR other/35094
2574         * toplev.c (decode_d_option): Handle all CPP flags.
2575         * tree-vrp.c: Update tree_pass descriptors.
2576         * regrename.c: Update tree_pass descriptors.
2577         * fwprop.c: Update tree_pass descriptors.
2578         * doc/invoke.texi: Remove documentation of dropped -d? flags.
2579         * tree-into-ssa.c: Update tree_pass descriptors.
2580         * tree-dump.c: Update tree_pass descriptors.
2581         * tree-complex.c: Update tree_pass descriptors.
2582         * tree-dump.h: Update tree_pass descriptors.
2583         * see.c: Update tree_pass descriptors.
2584         * cgraphbuild.c: Update tree_pass descriptors.
2585         * tracer.c: Update tree_pass descriptors.
2586         * tree-loop-distribution.c: Update tree_pass descriptors.
2587         * cgraph.c: Update tree_pass descriptors.
2588         * postreload-gcse.c: Update tree_pass descriptors.
2589         * postreload.c: Update tree_pass descriptors.
2590         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
2591         * tree-tailcall.c: Update tree_pass descriptors.
2592         * tree-pass.h (tree_opt_pass): Rename to ...
2593         (opt_pass) ... this one; add "type" field and remove letter field.
2594         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
2595         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
2596         all_lowering_passes): Update declaration.
2597         * ipa-cp.c: Update tree_pass descriptors.
2598         * final.c: Update tree_pass descriptors.
2599         * omp-low.c: Update tree_pass descriptors.
2600         * tree-ssa-dse.c: Update tree_pass descriptors.
2601         * ipa-reference.c: Update tree_pass descriptors.
2602         * tree-ssa-uncprop.c: Update tree_pass descriptors.
2603         * auto-inc-dec.c: Update tree_pass descriptors.
2604         * reorg.c: Update tree_pass descriptors.
2605         * cgraphunit.c: Update tree_pass descriptors.
2606         * tree-ssa-copyrename.c: Update tree_pass descriptors.
2607         * tree-ssa-ccp.c: Update tree_pass descriptors.
2608         * df-core.c: Update tree_pass descriptors.
2609         * mode-switching.c: Update tree_pass descriptors.
2610         * tree-nomudflap.c: Update tree_pass descriptors.
2611         * modulo-sched.c: Update tree_pass descriptors.
2612         * ipa-pure-const.c: Update tree_pass descriptors.
2613         * cse.c: Update tree_pass descriptors.
2614         * web.c: Update tree_pass descriptors.
2615         * tree-stdarg.c: Update tree_pass descriptors.
2616         * tree-ssa-math-opts.c: Update tree_pass descriptors.
2617         * tree-ssa-dom.c: Update tree_pass descriptors.
2618         * tree-nrv.c: Update tree_pass descriptors.
2619         * tree-ssa-alias.c: Update tree_pass descriptors.
2620         * loop-init.c: Update tree_pass descriptors.
2621         * gimple-low.c: Update tree_pass descriptors.
2622         * ipa-inline.c: Update tree_pass descriptors.
2623         * tree-ssa-sink.c: Update tree_pass descriptors.
2624         * global.c: Update tree_pass descriptors.
2625         * ifcvt.c: Update tree_pass descriptors.
2626         * jump.c: Update tree_pass descriptors.
2627         * predict.c: Update tree_pass descriptors.
2628         * tree-ssa-loop.c: Update tree_pass descriptors.
2629         * recog.c: Update tree_pass descriptors.
2630         * dse.c: Update tree_pass descriptors.
2631         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
2632         * tree-eh.c: Update tree_pass descriptors.
2633         * regmove.c: Update tree_pass descriptors.
2634         * local-alloc.c
2635         * function.c: Update tree_pass descriptors.
2636         * tree-vectorizer.c: Update tree_pass descriptors.
2637         * gcse.c: Update tree_pass descriptors.
2638         * ipa-type-escape.c: Update tree_pass descriptors.
2639         * tree-if-conv.c: Update tree_pass descriptors.
2640         * init-regs.c: Update tree_pass descriptors.
2641         * ipa.c: Update tree_pass descriptors.
2642         * tree-ssa-phiopt.c: Update tree_pass descriptors.
2643         * rtl-factoring.c: Update tree_pass descriptors.
2644         * lower-subreg.c: Update tree_pass descriptors.
2645         * bt-load.c: Update tree_pass descriptors.
2646         * tree-dfa.c: Update tree_pass descriptors.
2647         * except.c: Update tree_pass descriptors.
2648         * emit-rtl.c: Update tree_pass descriptors.
2649         * cfgexpand.c: Update tree_pass descriptors.
2650         * tree-cfgcleanup.c: Update tree_pass descriptors.
2651         * cfgcleanup.c: Update tree_pass descriptors.
2652         * tree-ssa-pre.c: Update tree_pass descriptors.
2653         * tree-sra.c: Update tree_pass descriptors.
2654         * tree-mudflap.c: Update tree_pass descriptors.
2655         * tree-ssa-copy.c: Update tree_pass descriptors.
2656         * cfglayout.c: Update tree_pass descriptors.
2657         * tree-ssa-forwprop.c: Update tree_pass descriptors.
2658         * tree-ssa-dce.c: Update tree_pass descriptors.
2659         * tree-ssa.c: Update tree_pass descriptors.
2660         * regclass.c: Update tree_pass descriptors.
2661         * integrate.c: Update tree_pass descriptors.
2662         * tree-optimize.c: Update tree_pass descriptors.
2663         * tree-ssa-phiprop.c: Update tree_pass descriptors.
2664         * tree-object-size.c: Update tree_pass descriptors.
2665         * combine.c: Update tree_pass descriptors.
2666         * tree-outof-ssa.c: Update tree_pass descriptors.
2667         * bb-reorder.c: Update tree_pass descriptors.
2668         * stack-ptr-mod.c: Update tree_pass descriptors.
2669         * var-tracking.c: Update tree_pass descriptors.
2670         * tree-profile.c: Update tree_pass descriptors.
2671         * tree-vect-generic.c: Update tree_pass descriptors.
2672         * reg-stack.c: Update tree_pass descriptors.
2673         * sched-rgn.c: Update tree_pass descriptors.
2674         * tree-ssa-structalias.c: Update tree_pass descriptors.
2675         * tree-cfg.c: Update tree_pass descriptors.
2676         * passes.c (current_pass): Update declaration.
2677         (finish_optimization_passes): Update.
2678         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
2679         (register_one_dump_file, register_dump_files_1, next_pass_1):
2680         Update arguments.
2681         (init_optimization_passes): Update handling of new types.
2682         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
2683         * ipa-struct-reorg.c: Update tree_pass descriptors.
2684         * tree-ssa-reassoc.c: Update tree_pass descriptors.
2685         * combine-stack-adj.c: Update tree_pass descriptors.
2686         * cfgrtl.c: Update tree_pass descriptors.
2687         * dce.c: Update tree_pass descriptors.
2688         * tree-ssanames.c: Update tree_pass descriptors.
2689
2690 2008-03-19  Richard Guenther  <rguenther@suse.de>
2691
2692         PR middle-end/35609
2693         * tree-ssa.c (walk_data): New structure.
2694         (warn_uninitialized_var): If not always_executed warn with "maybe"
2695         instead of "is".
2696         (execute_early_warn_uninitialized): Compute post-dominators.
2697         Initialize always_executed before processing each basic block.
2698
2699 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
2700
2701         PR target/35504
2702         * config/i386/i386.c (x86_this_parameter): Calculate correct location
2703         of "this" pointer when "regparm = N" or "fastcall" is in effect.
2704
2705 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2706
2707         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
2708
2709 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
2710
2711         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
2712         is true.
2713         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
2714         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
2715         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
2716         target after ignore has been set, and move there also the commputation
2717         of subtarget and original_target.
2718         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2719         (LANG_HOOKS_INITIALIZER): Remove it.
2720         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
2721
2722 2008-03-18  Richard Guenther  <rguenther@suse.de>
2723
2724         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
2725         found an expression with constants, note that in the VN for the lhs.
2726         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
2727         fold them to constants if possible.  Run cleanup_cfg if done so.
2728         (execute_pre): Return todo.
2729         (do_pre): Likewise.
2730         (execute_fre): Likewise.
2731         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
2732         of constants.
2733         (get_prop_source_stmt): Look through pointer conversions.
2734
2735 2008-03-18  Jan Hubicka  <jh@suse.cz>
2736
2737         * tree-pretty-print.c: Include predict.h.
2738         (dump_generic_node): Dump predictor.
2739         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
2740         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
2741         * gimple-low.c (lower_stmt): Likewise.
2742         * expr.c (expand_expr_real): Likewise.
2743         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
2744         them.
2745         (build_predict_expr, build_predict_expr): New.
2746         * predict.h (predictor_name, build_predict_expr): Update.
2747         * c-typeck.c (c_finish_bc_stmt): Add prediction.
2748         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
2749         * predict.def (PRED_CONTINUE): Update hitrate.
2750         * tree.def (PREDICT_EXPR): Define.
2751         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
2752         do not handle BIND_EXPR.
2753         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
2754         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
2755         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
2756         operands.
2757
2758 2008-03-18  Michael Matz  <matz@suse.de>
2759
2760         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
2761
2762 2008-03-18  Richard Guenther  <rguenther@suse.de>
2763
2764         * tree-gimple.h (is_gimple_invariant_address): Declare.
2765         (is_gimple_constant): Likewise.
2766         * tree-gimple.c (is_gimple_constant): New function.
2767         (is_gimple_invariant_address): Likewise.
2768         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
2769         and is_gimple_invariant_address.
2770         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
2771         previous change.
2772         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
2773         an addressable base.
2774
2775 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2776
2777         PR middle-end/35611
2778         * gimplify.c (gimplify_expr): Gimplify second operand of
2779         OMP_ATOMIC_LOAD.
2780
2781 2008-03-17  Richard Guenther  <rguenther@suse.de>
2782
2783         PR tree-optimization/19637
2784         * fold-const.c (fold_unary): Remove restrictions of removing
2785         intermediate pointer-conversions (P2)(P1)P0.
2786         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
2787         conversion to void pointer.
2788         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
2789
2790 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
2791
2792         PR debug/31510
2793         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
2794         emulated thread local variables.
2795
2796 2008-03-16  Richard Guenther  <rguenther@suse.de>
2797
2798         PR middle-end/35607
2799         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2800         expand TREE_INVARIANT operations that are not gimple invariant.
2801
2802 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
2803
2804         * doc/extend.texi (Alignment): Say that the ABI controls
2805         the __alignof__ for non-strict-alignment targets rather
2806         than being a recommendation.
2807
2808 2008-03-15  Paul Brook  <paul@codesourcery.com>
2809
2810         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
2811         annotations.
2812         (arm_output_fn_unwind): Mark functions that can not be unwound.
2813
2814 2008-03-15  Paul Brook  <paul@codesourcery.com>
2815
2816         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
2817         extension instructions.
2818
2819 2008-03-15  Richard Guenther  <rguenther@suse.de>
2820
2821         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
2822         and fold constant aggregate refs.
2823         (fold_const_aggregate_ref): Handle string constants
2824         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
2825         (evaluate_stmt): Simplify now that ccp_fold folds constant
2826         aggregate refs.
2827
2828 2008-03-15  Paul Brook  <paul@codesourcery.com>
2829
2830         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
2831         (extzv): Use gen_extzv_t2.
2832         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
2833
2834 2008-03-15  Richard Guenther  <rguenther@suse.de>
2835
2836         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
2837         (fold_const_aggregate_ref): Likewise.
2838         (get_value): Return NULL if we don't have any values.
2839         (ccp_finalize): Set const_val to NULL after freeing it.
2840         * tree-flow.h (get_symbol_constant_value): Declare.
2841         (fold_const_aggregate_ref): Likewise.
2842         * tree-ssa-sccvn.c (try_to_simplify): Use them.
2843
2844 2008-03-15  Richard Guenther  <rguenther@suse.de>
2845
2846         PR middle-end/35593
2847         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
2848         to not produce negative array indices if not allowed.  Add
2849         parameter to indicate that.
2850         (maybe_fold_offset_to_component_ref): Allow negative array
2851         indices only for the first member of a structure.
2852         (maybe_fold_offset_to_reference): Allow negative array indices.
2853         (maybe_fold_stmt_addition): Likewise.
2854
2855 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
2856             Anatoly Sokolov <aesok@post.ru>
2857
2858         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
2859         (avr_arch): Add ARCH_AVR6.
2860         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
2861         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
2862         instead of fixed value 2.
2863         (print_operand_address): Use gs() asm specifier instead of pm().
2864         (avr_assemble_integer): (Ditto.).
2865         (avr_output_addr_vec_elt): (Ditto.).
2866         (print_operand): Handle "!" code.
2867         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
2868         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
2869         (AVR_HAVE_EIJMP_EICALL): Define.
2870         (AVR_3_BYTE_PC): Redefine.
2871         (AVR_2_BYTE_PC): (Ditto.).
2872         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
2873         (LINK_SPEC): Add atmega2560 and atmega2561.
2874         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
2875         (crtm2561.o).
2876         * config/avr/avr.md (call_insn): Use eicall instead of icall 
2877         for 3 byte PC devices.
2878         (call_value_insn): (Ditto.).
2879         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
2880         (indirect_jump): Use only for for 2 byte PC devices.
2881         (*tablejump): (Ditto.).
2882         (*indirect_jump_avr6): Add insn.
2883         (*tablejump_rjmp): Don't use for 3 byte PC devices.
2884         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
2885         instead of ijmp for 3 byte PC devices.
2886         (__tablejump2__): (Ditto.).
2887         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
2888         (MULITLIB_DIRNAMES): (Ditto.). 
2889         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
2890
2891 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
2892
2893         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
2894         "sse2_umulsidi3".  Use V1DI mode for operand 0.
2895         ("mmx_psadbw"): Use V1DI mode for operand 0.
2896         * config/i386/i386-modes.def (V1SI): New vector mode.
2897         * config/i386/i386.c (struct builtin_description)
2898         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
2899         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
2900         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
2901         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
2902         v1di_ftype_v8qi_v8qi type.
2903         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
2904
2905         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
2906         __builtin_ia32_pmuludq]: Fix the mode of return value.
2907
2908 2008-03-15  Richard Guenther  <rguenther@suse.de>
2909
2910         PR middle-end/35595
2911         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
2912         being a PHI_NODE.
2913
2914 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
2915         
2916         * doc/invoke.texi (Option Summary, Xtensa Options): Document
2917         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
2918         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
2919         unless TARGET_SERIALIZE_VOLATILE is enabled.
2920         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
2921         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
2922         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
2923
2924 2008-03-14  Richard Guenther  <rguenther@suse.de>
2925
2926         PR tree-optimization/34172
2927         * tree-flow.h (refs_may_alias_p): Declare.
2928         (get_single_def_stmt): Likewise.
2929         (get_single_def_stmt_from_phi): Likewise.
2930         (get_single_def_stmt_with_phi): Likewise.
2931         * tree-dfa.c (refs_may_alias_p): New function.
2932         (get_single_def_stmt): Likewise.
2933         (get_single_def_stmt_from_phi): Likewise.
2934         (get_single_def_stmt_with_phi): Likewise.
2935         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
2936         (vn_reference_lookup_1): New helper function.
2937         (vn_reference_lookup): Walk the virtual use-def chain to
2938         continue searching for a match if the def does not alias the
2939         reference we are looking for.
2940
2941 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
2942
2943         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
2944         archive and Perzl.  Update The Written Word listing.
2945
2946 2008-03-14  Richard Guenther  <rguenther@suse.de>
2947
2948         PR tree-optimization/34043
2949         PR tree-optimization/33989
2950         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
2951         when doing FRE.
2952         (bitmap_find_leader): Use extra argument to verify dominance
2953         relationship inside a basic-block.
2954         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
2955         (find_leader_in_sets): Adjust.
2956         (create_component_ref_by_pieces): Take extra argument for
2957         dominance check, handle lookup failures.
2958         (find_or_generate_expression): Likewise.
2959         (create_expression_by_pieces): Likewise.
2960         (insert_into_preds_of_block): Adjust.
2961         (create_value_expr_from): If asked for, verify all operands
2962         are in the blocks AVAIL_OUT set.
2963         (make_values_for_stmt): Check for SSA_NAMEs that are life
2964         over an abnormal edge.
2965         (compute_avail): Remove such check.
2966         (do_SCCVN_insertion): New function.
2967         (eliminate): If we do not find a leader suitable for replacement
2968         insert a replacement expression from SCCVN if available.
2969         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
2970         (struct vn_ssa_aux): Add needs_insertion flag.
2971         * tree-ssa-sccvn.c (may_insert): New global flag.
2972         (copy_reference_ops_from_ref): Value-number union member access
2973         based on its size, not type and member if insertion is allowed.
2974         (visit_reference_op_load): For a weak match from union type
2975         punning lookup a view-converted value and insert a SSA_NAME
2976         for that value if that is not found.
2977         (visit_use): Make dumps shorter.  Do not disallow value numbering
2978         SSA_NAMEs that are life over an abnormal edge to constants.
2979         (free_scc_vn): Release inserted SSA_NAMEs.
2980         (run_scc_vn): New flag to specify whether insertion is allowed.
2981         Process SSA_NAMEs in forward order.
2982         * tree-ssa-loop-im.c (for_each_index): Handle invariant
2983         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
2984         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
2985         pointer type to/from integral types that do not change the
2986         precision to regular conversions.
2987
2988 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
2989
2990         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
2991         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
2992         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
2993         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
2994         input arguments and the mode of return value.  Built-in functions
2995         that operate on whole 64-bit MMX register now use V1DI mode.
2996
2997 2008-03-13  Alon Dayan  <alond@il.ibm.com>
2998             Olga Golovanevsky  <olga@il.ibm.com>
2999
3000         PR tree-optimization/35041
3001         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
3002         to locate the right position in a statement.
3003
3004 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3005
3006         PR target/34000
3007         PR target/35553
3008         * config/i386/xmmintrin.h:  Change all static inline functions to
3009         extern inline and add __gnu_inline__ attribute.
3010         * config/i386/bmintrin.h: Ditto.
3011         * config/i386/smmintrin.h: Ditto.
3012         * config/i386/tmmintrin.h: Ditto.
3013         * config/i386/mmintrin-common.h: Ditto.
3014         * config/i386/ammintrin.h: Ditto.
3015         * config/i386/emmintrin.h: Ditto.
3016         * config/i386/pmmintrin.h: Ditto.
3017         * config/i386/mmintrin.h: Ditto.
3018         * config/i386/mm3dnow.h: Ditto.
3019
3020 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3021
3022         PR middle-end/35185
3023         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3024         (lower_omp_2): New function.
3025         (lower_omp_1, lower_omp): Rewritten.
3026
3027 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3028
3029         PR 35054
3030         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3031         with the phrase "Microsoft Windows compilers".
3032         (Push/Pop Macro Pragmas): New subsection. Document
3033         #pragma push_macro and pragma pop_macro.
3034
3035 2008-03-12  Paul Brook  <paul@codesourcery.com>
3036
3037         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3038
3039 2008-03-12  Paul Brook  <paul@codesourcery.com>
3040
3041         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3042         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3043         (thumb2_addsi_shortim): Rename ...
3044         (thumb2_addsi_short): ... to this.  Allow register operands.
3045         (thumb2_subsi_short): New pattern.
3046         (thumb2_one_cmplsi2_short,
3047         thumb2_negsi2_short): New patterns and peepholes.
3048
3049 2008-03-12  Paul Brook  <paul@codesourcery.com>
3050
3051         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3052
3053 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3054
3055         * config/i386/i386.md (int_cond): New code iterator.
3056         (fp_cond): Ditto.
3057         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3058         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3059         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3060         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3061         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3062         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3063         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3064         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3065
3066 2008-03-12  Paul Brook  <paul@codesourcery.com>
3067
3068         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3069         instead of {arm,thumb}_compute_save_reg_mask.
3070         (output_return_instruction): Ditto.
3071         (thumb_unexpanded_epilogue): Ditto.
3072         (thumb1_expand_prologue): Ditto.
3073         (thumb1_output_function_prologue): Ditto.
3074         (arm_set_return_address): Ditto.
3075         (thumb_set_return_address): Ditto.
3076         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3077         regs to achieve stack alignment.
3078         (thumb1_compute_save_reg_mask): Fix compiler warning.
3079         (arm_output_epilogue): Use offsets->saved_regs_mask.
3080         Adjust stack pointer by poping call clobered registers.
3081         (arm_expand_prologue): Use offsets->saved_regs_mask.
3082         Adjust stack pointer by pushing extra registers.
3083         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3084
3085 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3086
3087         PR tree-opt/35422
3088         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3089         conversion to the operands of a multiplication.
3090
3091 2008-03-12  Richard Guenther  <rguenther@suse.de>
3092
3093         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
3094         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
3095         * timevar.def (TV_TREE_PHIPROP): Add.
3096         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
3097         pass description.  Use TV_TREE_PHIPROP.
3098         * tree-ssa-forwprop.c: Remove phiprop code.
3099
3100 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3101
3102         PR middle-end/35549
3103         * omp-low.c (maybe_lookup_decl): Constify first argument.
3104         (use_pointer_for_field): Change last argument from bool to
3105         omp_context *.  Disallow shared copy-in/out in nested
3106         parallel if decl is shared in outer parallel too.
3107         (build_outer_var_ref, scan_sharing_clauses,
3108         lower_rec_input_clauses, lower_copyprivate_clauses,
3109         lower_send_clauses, lower_send_shared_vars): Adjust callers.
3110
3111 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
3112             Ira Rosen  <irar@il.ibm.com>
3113
3114         * tree-vectorizer.c (free_stmt_vec_info): New function.
3115         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
3116         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
3117         * tree-vectorizer.h (free_stmt_vec_info): Declare.
3118         * tree-vect-transform.c (vectorizable_conversion): Free
3119         vec_oprnds0 if it was allocated.
3120         (vect_permute_store_chain): Remove unused VECs.
3121         (vectorizable_store): Free VECs that are allocated in the..
3122         function.
3123         (vect_transform_strided_load, vectorizable_load): Likewise.
3124         (vect_remove_stores): Simplify the code.
3125         (vect_transform_loop): Move code to vect_remove_stores().
3126         Call vect_remove_stores() and free_stmt_vec_info().
3127
3128 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3129
3130         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
3131         TARGET_HPUX.  Revise comment.
3132         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
3133         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
3134         Use sr4 variant of `be' instruction when not generating PIC code.
3135         (attr_length_call): Adjust for above change.
3136
3137 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3138
3139         * ipa-reference.c (static_execute): Remove module_statics_const and
3140         associated setting code.
3141
3142 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3143
3144         PR target/35540
3145         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
3146         predicate for operand 1.
3147         (paritysi2_cmp): Use register_operand predicate for operand 2.
3148         Use earlyclobber modifier for operand 1.  Remove support for
3149         memory operands.
3150         (paritydi2_cmp): Use register_operand predicate for operand 3.
3151         Use earlyclobber modifier for operand 1.  Remove support for
3152         memory operands.
3153
3154 2008-03-11  Paul Brook  <paul@codesourcery.com>
3155             Vladimir Prus  <vladimir@codesourcery.com>
3156
3157         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
3158         (arm_compute_save_reg0_reg12_mask): Always
3159         check if register 11 must be saved.  Always safe hard frame pointer
3160         when frame_pointer_needeed.
3161         (arm_compute_save_reg_mask): Save IP and PC
3162         only with apcs frames.
3163         (arm_output_epilogue): Adjust Thumb2 codepath to
3164         be also invoked and work for ARM non-apcs frames.
3165         (arm_expand_prologue): Don't bother saving IP
3166         for non-apcs frame, since it's not clobbered by
3167         prologue code.  Implement non-apcs frame
3168         layout.
3169
3170 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3171
3172         PR rtl-optimization/35281
3173         * expr.c (convert_move): Use a new pseudo for the intermediate
3174         from_mode->word_mode result.
3175
3176 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3177
3178         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
3179         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
3180         * toplev.c (compile_file): Don't call it.
3181
3182 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3183
3184         PR middle-end/35526
3185         * expr.c (store_expr): Call emit_block_move if the mode
3186         of "temp" RTX is BLKmode.
3187
3188 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3189             Richard Guenther  <rguenther@suse.de>
3190
3191         PR tree-optimization/31358
3192         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
3193         the step with a NULL_TREE.
3194         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
3195         to sizetype if type is a pointer type.
3196         (add_candidate_1): Don't convert the base and step to
3197         the generic type if the orginal type is a pointer type.
3198         (add_iv_value_candidates): Use sizetype for the step
3199         if type is a pointer type.
3200         (cand_value_at): Likewise.
3201         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3202         for pointer types.
3203         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
3204         Don't convert the tem affine to the type.
3205         (add_elt_to_tree): Use sizetype for the step if a pointer.
3206         Use POINTER_PLUS_EXPR for pointers.
3207         (aff_combination_to_tree): Use sizetype for the step if a
3208         pointer.
3209
3210 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
3211
3212         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
3213         Remove commutativity hint.
3214
3215 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
3216
3217         PR c/35438
3218         PR c/35439
3219         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
3220         errorneous type.  Check that v is a VAR_DECL.
3221
3222         PR middle-end/35099
3223         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
3224
3225 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
3226
3227         PR tree-optimization/35494
3228         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
3229         may be overriden at link and run time.
3230
3231 2008-03-10  Richard Guenther  <rguenther@suse.de>
3232
3233         PR tree-optimization/34677
3234         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
3235         (poolify_tree): Likewise.
3236         (modify_expr_template): Likewise.
3237         (poolify_modify_stmt): Likewise.
3238         (insert_fake_stores): Handle all component-ref style stores
3239         in addition to INDIRECT_REF.  Also handle complex types.
3240         Do not poolify the inserted load.
3241         (realify_fake_stores): Do not rebuild the tree but only
3242         make it a SSA_NAME copy.
3243         (init_pre): Remove initialzation of modify_expr_template.
3244         Do not allocate modify_expr_node_pool.
3245         (fini_pre): Do not free modify_expr_node_pool.
3246
3247 2008-03-10  Paul Brook  <paul@codesourcery.com>
3248
3249         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
3250         to avoid conflicts.
3251
3252 2008-03-10  Paul Brook  <paul@codesourcery.com>
3253             Mark Shinwell  <shinwell@codesourcery.com>
3254
3255         * config/arm/cortex-r4.md: New.
3256         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
3257         insn attributes.
3258         * config/arm/arm.md: Include cortex-r4.md.
3259         (insn): Add smmls, sdiv and udiv values.
3260         (generic_sched): Don't use generic scheduling for Cortex-R4.
3261         (arm_issue_rate): New function.
3262         (TARGET_SCHED_ISSUE_RATE): Define.
3263
3264 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
3265
3266         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
3267
3268 2008-03-10  Richard Guenther  <rguenther@suse.de>
3269
3270         * tree-ssa-pre.c (get_sccvn_value): Simplify.
3271         (compute_avail): Do not add stmt uses to AVAIL_OUT.
3272
3273 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
3274
3275         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
3276         Set default to true.
3277
3278 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3279
3280         * c.opt (Wsynth): Deprecate.
3281         * doc/invoke.texi (Option Summary, Warning Options): Document
3282         -Wno-format-contains-nul.
3283
3284 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
3285
3286         PR target/35496
3287         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
3288         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
3289
3290 2008-03-09  Ira Rosen  <irar@il.ibm.com>
3291
3292         * config/rs6000/rs6000.c (builtin_description): Rename vector
3293         left shift operations.
3294         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
3295         (altivec_vsl<VI_char>): Rename to ...
3296         (ashl<mode>3): ... new name.
3297         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
3298         gen_ashlv4si3.
3299         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
3300
3301 2008-03-08  Richard Guenther  <rguenther@suse.de>
3302
3303         * coverage.h (tree_coverage_counter_addr): Declare.
3304         * coverage.c (tree_coverage_counter_addr): New function.
3305         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
3306         before using again.
3307         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
3308         (tree_gen_one_value_profiler): Likewise.
3309         (tree_gen_ic_profiler): Likewise.
3310         (tree_gen_average_profiler): Likewise.
3311         (tree_gen_ior_profiler): Likewise.
3312
3313 2008-03-08  Richard Guenther  <rguenther@suse.de>
3314
3315         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
3316         (vn_binary_op_insert): Likewise.
3317         (vn_unary_op_lookup): Likewise.
3318         (vn_unary_op_insert): Likewise.
3319         (vn_nary_op_lookup): Declare.
3320         (vn_nary_op_insert): Likewise.
3321         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
3322         and binary hashes, use a single obstack for unary_op_pool
3323         and binary_op_pool.
3324         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
3325         a single struct vn_nary_op_s.  Store tree code length and
3326         a variable number of operands.
3327         (struct vn_reference_op_struct): Remove unused op2.
3328         (vn_reference_op_eq): Do not compare op2.
3329         (vn_reference_op_compute_hash): Do not compute hash of op2.
3330         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
3331         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
3332         with vn_nary_op_compute_hash.
3333         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
3334         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
3335         vn_nary_op_lookup.
3336         (vn_unary_op_insert, vn_binary_op_insert): Replace with
3337         vn_nary_op_insert.
3338         (visit_unary_op): Call nary functions.
3339         (visit_binary_op): Likewise.
3340         (process_scc): Adjust for struct vn_tables_s changes.
3341         (allocate_vn_table): Likewise.
3342         (free_vn_table): Likewise.
3343         * tree-vn.c (vn_add): Call nary functions.
3344         (vn_lookup): Likewise.
3345
3346 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
3347
3348         PR target/35498
3349         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
3350         wdst back after sync_compare_and_swapqhi_internal.
3351
3352 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
3353
3354         PR target/22152
3355         * config/i386/i386-modes.def (V1DI): New vector mode.
3356         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
3357         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
3358         (MMXMODE248): Ditto.
3359         (MMXMODE): Add V1DI mode.
3360         (mmxvecsize): Change DI mode to V1DI mode.
3361         ("mov<mode>): Use MMXMODEI8 mode iterator.
3362         ("*mov<mode>_internal_rex64"): Ditto.
3363         ("*mov<mode>_internal"): Ditto.
3364         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
3365         ("mmx_sub<mode>3"): Ditto.
3366         ("mmx_adddi3"): Remove insn pattern.
3367         ("mmx_subdi3"): Ditto.
3368         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
3369         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
3370         ("mmx_ashl<mode>3"): Ditto.
3371         ("mmx_lshrdi3"): Remove insn pattern.
3372         ("mmx_ashldi3"): Ditto.
3373         * config/i386/i386.c (classify_argument): Handle V1DImode.
3374         (function_arg_advance_32): Ditto.
3375         (function_arg_32): Ditto.
3376         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
3377         mmx_addv1di3 insn pattern.
3378         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
3379         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
3380         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
3381         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
3382         Remove definitions of built-in functions.
3383         (V1DI_type_node): New node.
3384         (v1di_ftype_v1di_int): Ditto.
3385         (v1di_ftype_v1di_v1di): Ditto.
3386         (v2si_ftype_v2si_si): Ditto.
3387         (v4hi_ftype_v4hi_di): Remove node.
3388         (v2si_ftype_v2si_di): Ditto.
3389         (ix86_init_mmx_sse_builtins): Handle V1DImode.
3390         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
3391         Redefine builtins using def_builtin_const with *_ftype_*_int node.
3392         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
3393         Add new builtins using def_builtin_const.
3394         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
3395         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
3396         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
3397         * config/i386/mmintrin.h (__v1di): New typedef.
3398         (_mm_add_si64): Cast arguments to __v1di type.
3399         (_mm_sub_si64): Ditto.
3400         (_mm_sll_pi16): Cast __count to __v4hi type.
3401         (_mm_sll_pi32): Cast __count to __v2si type.
3402         (_mm_sll_si64): Cast arguments to __v1di type.
3403         (_mm_srl_pi16): Cast __count to __v4hi type.
3404         (_mm_srl_pi32): Cast __count to __v2si type.
3405         (_mm_srl_si64): Cast arguments to __v1di type.
3406         (_mm_sra_pi16): Cast __count to __v4hi type.
3407         (_mm_sra_pi32): Cast __count to __v2si type.
3408         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
3409         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
3410         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
3411         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
3412         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
3413         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
3414         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
3415         (_mm_srai_pi32): Use __builtin_ia32_psradi.
3416         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
3417         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3418         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3419         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
3420
3421 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
3422
3423         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
3424
3425 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
3426
3427         PR target/35373
3428         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
3429         reg+const addressing for Altivec modes.  Don't generate reg+reg
3430         addressing for TFmode or TDmode quantities.
3431
3432 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
3433
3434         * c-common.c (vector_types_convertible_p): Call langhook
3435         instead of comptypes.
3436
3437 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3438
3439         PR tree-opt/35402
3440         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
3441         integral and scalar float variables which have a
3442         NULL DECL_INITIAL.
3443
3444 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
3445
3446         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
3447         dwarf_register_span hook when emitting unwind information for
3448         register-to-memory saves.
3449         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
3450         (rs6000_frame_related): Remove call to spe_synthesize_frame.
3451
3452 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
3453
3454         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
3455         for the same VAR_DECL.
3456
3457 2008-03-06  Tom Tromey  <tromey@redhat.com>
3458
3459         * treelang: Delete.
3460         * doc/standards.texi (Standards): Don't mention treelang.
3461         * doc/invoke.texi (Overall Options): Don't mention treelang.
3462         * doc/install.texi (Prerequisites): Don't mention bison or
3463         treelang.
3464         (Configuration): Don't mention treelang.
3465         (Building): Likewise.
3466         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
3467
3468 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
3469
3470         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
3471         word-extractions out of a multi-word object.
3472
3473 2008-03-06  Richard Guenther  <rguenther@suse.de>
3474
3475         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
3476         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
3477         result type and precision.
3478         * expr.c (get_inner_reference): Set unsignedp based on the result
3479         type of BIT_FIELD_REF.
3480         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
3481         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
3482         (try_instantiate_multiple_fields): Likewise.  Use the correct type
3483         for BIT_FIELD_REF.
3484         (sra_build_assignment): Likewise.
3485         (sra_build_elt_assignment): Likewise.
3486         (sra_explode_bitfield_assignment): Likewise.
3487         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
3488         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
3489         set BIT_FIELD_REF_UNSIGNED.
3490         (vectorizable_load): Likewise.
3491
3492 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3493
3494         * cse.c (cse_extended_basic_block): Invalidate artificial defs
3495         at bb start.
3496
3497 2008-03-06  Richard Guenther  <rguenther@suse.de>
3498
3499         * alias.c (struct alias_set_entry): Move has_zero_child field
3500         to pack with alias_set.
3501
3502 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
3503
3504         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3505         32bit host.
3506
3507 2008-03-05  Ian Lance Taylor  <iant@google.com>
3508
3509         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
3510
3511 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
3512
3513         * fwprop.c (update_df): Support width and offset parameters of
3514         df_ref_create.
3515         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
3516         global_conflicts): Change DF_REF_EXTRACT to either
3517         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3518         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3519         * df-scan.c (df_ref_record, df_defs_record,
3520         df_ref_create_structure, df_def_record_1, df_uses_record,
3521         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
3522         df_bb_refs_collect, df_entry_block_defs_collect,
3523         df_exit_block_uses_collect): Support new width and offset fields.
3524         (ref_extract_pool): New storage pool.
3525         (df_free_ref): New function.
3526         (df_reg_chain_unlink, df_free_collection_rec,
3527         df_sort_and_compress_refs): Call df_free_ref.
3528         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
3529         of df_ref_extract.
3530         (df_ref_create_structure): Allocate df_ref_extract if offset and
3531         width fields are used.
3532         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
3533         (df_uses_record): Get offset and width from ZERO_EXTRACT 
3534         and SIGN_EXTRACT.
3535         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
3536         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3537         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3538         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
3539         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3540         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3541         (df_ref_extract): New structure.
3542         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
3543         (df_ref_create): Add width and offset parameters.
3544         
3545 2008-03-05  Richard Guenther  <rguenther@suse.de>
3546
3547         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3548         Use ranges_overlap_p.
3549         (offset_overlaps_with_access): Rename
3550         to ranges_overlap_p and move ...
3551         * tree-flow-inline.h (ranges_overlap_p): ... here.
3552
3553         * tree.h (get_inner_reference, handled_component_p): Update
3554         comments.
3555
3556         * tree.h (record_component_aliases, get_alias_set,
3557         alias_sets_conflict_p, alias_sets_must_conflict_p,
3558         objects_must_conflict_p): Move declarations ...
3559         * alias.h (record_component_aliases, get_alias_set,
3560         alias_sets_conflict_p, alias_sets_must_conflict_p,
3561         objects_must_conflict_p): ... here.
3562         Include coretypes.h.
3563         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
3564
3565 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
3566
3567         * cfg.c: Include tree-flow.h.
3568         (remove_edge_raw): Call redirect_edge_var_map_clear.
3569         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
3570         * tree-flow-inline.h (redirect_edge_var_map_def): New.
3571         (redirect_edge_var_map_result): New.
3572         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
3573         PENDING_STMT use with redirect_edge_var_map_*.
3574         * tree-ssa.c (edge_var_maps): New definition.
3575         (redirect_edge_var_map_add): New.
3576         (redirect_edge_var_map_clear): New.
3577         (redirect_edge_var_map_dup): New.
3578         (redirect_edge_var_map_vector): New.
3579         (redirect_edge_var_map_destroy): New.
3580         (ssa_redirect_edge): Replace PENDING_STMT use with
3581         redirect_edge_var_map_*.
3582         (flush_pending_stmts): Same.
3583         (delete_tree_ssa): Destroy edge var map.
3584         * tree-flow.h (struct _edge_var_map): New.
3585         Define edge_var_map vector type.
3586         Declare redirect_edge_var_map_* prototypes.
3587         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
3588         * tree-cfg.c (reinstall_phi_args): Replace
3589         PENDING_STMT use with redirect_edge_var_map_*.
3590
3591 2008-03-05  Richard Guenther  <rguenther@suse.de>
3592
3593         PR tree-optimization/35472
3594         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
3595         whose single use_stmt has a overlapping set of loaded and
3596         stored symbols as that use_stmt might be a noop assignment then.
3597
3598 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
3599
3600         * gthr-rtems.h: Implement __gthread_mutex_destroy.
3601
3602 2008-03-05  Richard Guenther  <rguenther@suse.de>
3603
3604         PR c++/35336
3605         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
3606         should be constants.
3607         * tree-cfg.c (verify_expr): Verify it.
3608         * fold-const.c (fold_truthop): Remove code generating
3609         BIT_FIELD_REFs of structure bases.
3610         (fold_binary): Likewise.
3611         (fold_ternary): Position and size of BIT_FIELD_REFs are
3612         always host integers.
3613         (make_bit_field_ref): Remove.
3614         (optimize_bit_field_compare): Remove.
3615         (all_ones_mask_p): Remove.
3616
3617 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
3618
3619         PR gcc/33009
3620         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
3621         (split_block_and_df_analyze): New. Split basic block and rebuild
3622         dataflow.
3623         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
3624         SPLIT_BLOCK.
3625         (split_pattern_seq): Likewise.
3626         (erase_matching_seqs): Likewise.
3627         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
3628
3629 2008-03-04  Geoff Keating  <geoffk@apple.com>
3630
3631         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
3632         declaration and code.
3633         (tree_invalid_nonnegative_warnv_p): Likewise.
3634
3635 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
3636
3637         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
3638         examples.  Truncate option-names then causing overfull hbox.
3639
3640 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3641
3642         PR target/35222
3643         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
3644         on hpux10.
3645         * configure: Rebuilt.
3646
3647 2008-03-04  Rafael Espindola  <espindola@google.com>
3648
3649         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
3650         (tree_unary_nonnegative_warnv_p): New.
3651         (tree_binary_nonnegative_warnv_p): New.
3652         (tree_single_nonnegative_warnv_p): New.
3653         (tree_invalid_nonnegative_warnv_p): New.
3654         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
3655
3656 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3657
3658         PR 28322
3659         * opts.c (handle_option): Postpone 'unknown option' errors only for
3660         warning options.
3661
3662 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
3663
3664         PR target/35453
3665         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
3666         (_SIDD_XXX): This.
3667
3668 2008-03-04  Rafael Espindola  <espindola@google.com>
3669
3670         * fold-const.c (tree_unary_nonzero_warnv_p): New.
3671         (tree_binary_nonzero_warnv_p): New.
3672         (tree_single_nonzero_warnv_p): New.
3673         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
3674
3675 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
3676
3677         PR middle-end/35456
3678         * fold-const.c (fold_cond_expr_with_comparison): Prevent
3679         transformations for modes that have signed zeros.
3680         * ifcvt.c (noce_try_abs): Ditto.
3681
3682 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
3683
3684         * config/i386/i386.c (override_options): Force
3685         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
3686
3687 2008-03-04  Jan Hubicka  <jh@suse.cz>
3688
3689         PR c++/35262
3690         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
3691         in last commit.
3692
3693 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
3694
3695         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
3696         label to probe the stack.
3697
3698 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
3699
3700         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
3701         (__gthr_win32_mutex_destroy): Declare.
3702         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
3703         __gthr_win32_mutex_destroy.
3704         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
3705
3706 2008-03-03  Jan Hubicka  <jh@suse.cz>
3707
3708         PR c++/35262
3709         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
3710         aggressive on inlining cold calls.
3711
3712 2008-03-03  Richard Guenther  <rguenther@suse.de>
3713
3714         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
3715         struct copies into the expression table.
3716         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
3717         (try_to_simplify): Likewise.
3718         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
3719         integral and pointer arguments which do not change the
3720         precision to NOP_EXPRs.
3721         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
3722         VIEW_CONVERT_EXPR case.
3723
3724 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
3725
3726         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
3727         defined in a loop at depth 0 is invariant.
3728         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
3729         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
3730         be called at loop depth 0.
3731
3732 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
3733
3734         PR driver/35420
3735         * gcc.c (process_command): Update copyright notice dates.
3736         * gcov.c (print_version): Likewise.
3737         * gcov-dump.c (print_version): Likewise.
3738         * mips-tfile.c (main): Likewise.
3739         * mips-tdump.c (main): Likewise.
3740
3741 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3742
3743         PR 24924
3744         * c-common.c (flag_permissive): Delete.
3745         (constant_expression_warnings): Check flags first.
3746         (constant_expression_error): New.
3747         * c-common.h (flag_permissive): Delete.
3748         (constant_expression_error): Declare.
3749         * flags.h (flag_permissive): Declare. Update description.
3750         * diagnostic.c (pedwarn): Update.
3751         (permerror): New.
3752         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
3753         (permissive_error_kind): New.
3754         * toplev.c (flag_permissive): Define. Update description.
3755         * toplev.h (permissive_error_kind): Declare.
3756         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
3757         (pedwarn_c90): Use pedantic_warning_kind.
3758         * c-opts.c (c_common_post_options): flag_permissive does not affect
3759         flag_pedantic_errors.
3760
3761 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
3762
3763         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
3764         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
3765         __absvsi2, __absvDI2): Use unsigned arithmetic.
3766
3767 2008-03-02  Andi Kleen  <ak@suse.de>
3768             Richard Guenther  <rguenther@suse.de>
3769
3770         * struct-equiv.c: Remove file.
3771         * cfg_cleanup.c (condjump_equiv_p): Remove.
3772         * Makefile.in (OBJS-common): Remove struct-equiv.o.
3773         (struct-equiv.o): Remove rule.
3774         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
3775         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
3776         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
3777
3778 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3779
3780         * ifcvt.c (noce_process_if_block): Try to handle only the then
3781         block if the else block exists but isn't suitable.
3782
3783 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
3784
3785         PR gcc/35063
3786         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
3787         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
3788         regression from previous patch.
3789
3790 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
3791
3792         PR gcc/35063
3793         * gthr.h: Add __gthread_mutex_destroy as a function that must be
3794         implemented.
3795         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
3796         * gthr-single.h (__gthread_mutex_destroy): Likewise.
3797         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
3798         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
3799         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
3800         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
3801         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
3802         (__gthread_mutex_destroy_function): Rename to
3803         __gthread_mutex_destroy.
3804         * gthr-dce.h (__gthread_mutex_destroy): Call
3805         pthread_mutex_destroy.
3806         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
3807         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
3808         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
3809
3810 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3811
3812         * df-scan.c (df_ref_chain_change_bb): Simplify.
3813         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
3814         set_block_for_insn if there's any change.
3815         * df.h ((df_insn_change_bb): Fix prototype.
3816         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
3817         df_insn_change_bb, don't call set_block_for_insn.
3818         * emit-rtl.c (reorder_insns): Likewise.
3819         * haifa-sched.c (move_insn): Likewise.
3820
3821 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3822
3823         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
3824
3825 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3826
3827         * tree-flow-inline.h (next_readonly_imm_use): Return
3828         NULL_USE_OPERAND_P after the end.
3829
3830 2008-03-01  Richard Guenther  <rguenther@suse.de>
3831
3832         PR tree-optimization/35411
3833         * tree-sra.c (sra_build_assignment): Split conversion to
3834         final type to a separate statement if we are not assigning
3835         to a register.
3836
3837 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3838
3839         * fold-const.c (fold_convertible_p): Correct the logic to follow
3840         that in fold_convert().
3841
3842 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
3843
3844         PR c++/35315
3845         * tree-inline.c (build_duplicate_type): When we make a
3846         duplicate type, make it unique in the canonical types system.
3847
3848 2008-02-29  Tom Tromey  <tromey@redhat.com>
3849
3850         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
3851         input_file_stack_history, input_file_stack_restored): Remove.
3852         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3853         * input.h (struct file_stack): Remove.
3854         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3855         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
3856         Likewise.
3857         * diagnostic.h (struct diagnostic_context) <last_module>: Change
3858         type.
3859         (diagnostic_last_module_changed): Add 'map' argument.
3860         (diagnostic_set_last_function): Likewise.
3861         * diagnostic.c (undiagnostic_report_current_module): Iterate using
3862         line map, not input_file_stack.
3863         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
3864
3865 2008-02-29  Paul Brook  <paul@codesourcery.com>
3866
3867         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
3868
3869 2008-02-29  Paul Brook  <paul@codesourcery.com>
3870
3871         * config/arm/ieee754-df.S (muldf3): Use RET macros.
3872
3873 2008-02-29  Richard Guenther  <rguenther@suse.de>
3874
3875         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
3876         vn_lookup_or_add.
3877         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
3878         value for comparing for a store match.
3879         (simplify_unary_expression): Do nothing for SSA_NAMEs.
3880         (try_to_simplify): Do not do a full-blown reference lookup.
3881
3882 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3883
3884         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
3885         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3886
3887         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
3888
3889 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
3890
3891         * tree-loop-linear.c (try_interchange_loops): Compare memory access
3892         strides against cache sizes.
3893
3894 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3895
3896         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
3897         constant to fpul.
3898
3899 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
3900
3901         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
3902         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
3903         is smaller than the original promoted value.
3904         (simplify_subreg): If OP is a SUBREG, try to preserve its
3905         SUBREG_PROMOTED_VAR_P information.
3906
3907 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
3908
3909         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
3910         (VN_INFO_GET): Allocate new objects on the obstack.
3911         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
3912         for rpo_numbers_temp, for consistency.
3913         (free_scc_vn): Free the obstack.
3914
3915 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
3916
3917         * doc/invoke.texi: Document -ftree-loop-distribution.
3918         * tree-loop-distribution.c: New.
3919         * tree-pass.h (pass_loop_distribution): New.
3920         * graphds.h (struct graph): Add htab_t indices.
3921         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
3922         * tree-vectorizer.c (rename_variables_in_loop): Extern.
3923         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
3924         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
3925         * tree-data-ref.c (debug_data_dependence_relations): New.
3926         (dump_data_dependence_relation): Also print data references.
3927         (free_data_ref): Extern.
3928         (same_access_functions): Moved...
3929         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
3930         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3931         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
3932         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
3933         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
3934         (stmts_from_loop): Skip LABEL_EXPR.
3935         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
3936         New.
3937         (build_rdg): Initialize rdg->indices htab.
3938         (free_rdg, stores_from_loop, ref_base_address,
3939         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
3940         have_similar_memory_accesses_1, ref_base_address_1,
3941         remove_similar_memory_refs): New.
3942         * tree-data-ref.h: Depend on tree-chrec.h.
3943         (debug_data_dependence_relations, free_data_ref): Declared.
3944         (same_access_functions): ... here.
3945         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
3946         New.
3947         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
3948         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
3949         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
3950         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3951         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
3952         rdg_vertex_for_stmt): Declared.
3953         (struct rdg_edge): Add level.
3954         (RDGE_LEVEL): New.
3955         (free_rdg, stores_from_loop, remove_similar_memory_refs,
3956         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
3957         Declared.
3958         (rdg_has_similar_memory_accesses): New.
3959         * tree-vect-analyze.c: Remove unused static decls.
3960         * lambda.h (dependence_level): New.
3961         * common.opt (ftree-loop-distribution): New.
3962         * tree-flow.h (mark_virtual_ops_in_bb, 
3963         slpeel_tree_duplicate_loop_to_edge_cfg,
3964         rename_variables_in_loop): Declared.
3965         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
3966         (OBJS-common): Add tree-loop-distribution.o.
3967         (tree-loop-distribution.o): New rule.
3968         * tree-cfg.c (mark_virtual_ops_in_bb): New.
3969         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
3970         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
3971
3972 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
3973
3974         PR target/33963
3975         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
3976         other than structures and unions.
3977
3978 2008-02-28  Richard Guenther  <rguenther@suse.de>
3979
3980         Revert:
3981         2008-02-26  Richard Guenther  <rguenther@suse.de>
3982
3983         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3984         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3985         (lookup_decl_from_uid): Declare.
3986         (remove_decl_from_map): Likewise.
3987         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3988         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3989         (decl_for_uid_map): New global hashtable mapping DECL_UID
3990         to the decl tree.
3991         (init_ttree): Allocate it.
3992         (insert_de