OSDN Git Service

2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2
3         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
4         use_backchain_to_restore_sp to true
5         if the offset of the link register save area would go over the 32k - 1
6         offset limit of the load
7         instructions.
8
9 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
10
11         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
12         anchor for the type-punning blurb.  Cross-reference "Structures
13         unions enumerations and bit-fields implementation".  Provide a
14         cast-through-pointer example.  Make final sentence self-contained.
15         * doc/implement-c.texi (Structures unions enumerations and
16         bit-fields implementation): Cross-reference the type-punning blurb
17         in the -fstrict-aliasing documentation.
18
19 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20
21         PR middle-end/36594
22         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
23         the memory instead of the memory itself for the save area.
24
25 2008-06-24  Olivier Hainque  <hainque@adacore.com>
26             Nicolas Roche  <roche@adacore.com>
27
28         * gengtype.c (srcdir_len): size_t instead of int.
29         (get_file_realbasename): New function.  For F a filename, the real
30         basename of F, with all the path components stripped.
31         (get_file_srcdir_relative_path): New function.  For F a filename, the
32         relative path to F from $(srcdir).
33         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
34         get_file_realbasename.  Adjust the head comment.
35         (get_prefix_langdir_index): New function. For F a filename, return the
36         lang_dir_names[] relative index of the language directory that is
37         a prefix in F.
38         (get_file_langdir): For F a filename, return the name of the language
39         directory where F is located.
40         (get_file_gtfilename): New function. The gt- output file name for an
41         input filename F.
42         (get_output_file_with_visibility): Replace in-line computations with
43         uses of get_file_gtfilename and get_prefix_langdir_index.
44         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
45
46 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
47
48         PR tree-optimization/36504
49         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
50         references without base address.
51
52 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
53
54         PR middle-end/PR36584
55         * calls.c (expand_call): Increase alignment for recursive functions.
56
57 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
58
59         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
60         (TARGET_FUNCTION_VALUE): New define.
61         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
62         * config/avr/avr.h (FUNCTION_VALUE): Remove.
63
64 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
65
66         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
67         (fmod<mode>3): Ditto.
68         (remainderxf3): Ditto.
69         (remainder<mode>3): Ditto.
70
71 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
72
73         PR target/36533
74         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
75         REG is a hard register.
76
77         PR tree-optimization/36508
78         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
79         499, don't check it at all in release compilers.
80
81 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
82
83         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
84         together with SSE_TARGET_MATH to disable insn pattern.
85         (*fop_<MODEF:mode>_2_i387): Ditto.
86         (*fop_<MODEF:mode>_3_i387): Ditto.
87
88 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
89
90         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
91         
92 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
93
94         PR middle-end/34906
95         * gimplify.c (gimplify_asm_expr): Check the return code of
96         parse_output_constraint call, set function return and is_inout
97         value if it failed.
98
99 2008-06-22  Ian Lance Taylor  <iant@google.com>
100
101         * c-lex.c (narrowest_unsigned_type): Change itk to int.
102         (narrowest_signed_type): Likewise.
103         * c-typeck.c (c_common_type): Change local variable mclass to enum
104         mode_class, twice.
105         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
106         tcc_comparison, not the tree code itself.
107         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
108         (c_expand_expr): Cast modifier to enum expand_modifier.
109         * c-common.h (C_RID_CODE): Add casts.
110         (C_SET_RID_CODE): Define.
111         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
112         (c_lex_one_token): Add cast to avoid warning.
113         (c_parser_objc_type_name): Rename local typename to type_name.
114         (check_no_duplicate_clause): Change code parameter to enum
115         omp_clause_code.
116         (c_parser_omp_var_list_parens): Change kind parameter to enum
117         omp_clause_code.
118         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
119         c_parser_omp_list_var_parens.
120         (c_parser_omp_threadprivate): Likewise.
121         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
122         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
123         * c-format.c (NO_FMT): Define.
124         (printf_length_specs): Use NO_FMT.
125         (asm_fprintf_length_specs): Likewise.
126         (gcc_diag_length_specs): Likewise.
127         (scanf_length_specs): Likewise.
128         (strfmon_length_specs): Likewise.
129         (gcc_gfc_length_specs): Likewise.
130         (printf_flag_specs): Change 0 to STD_C89.
131         (asm_fprintf_flag_specs): Likewise.
132         (gcc_diag_flag_specs): Likewise.
133         (gcc_cxxdiag_flag_specs): Likewise.
134         (scanf_flag_specs): Likewise.
135         (strftime_flag_specs): Likewise.
136         (strfmon_flag_specs): Likewise.
137         (print_char_table): Likewise.
138         (asm_fprintf_char_table): Likewise.
139         (gcc_diag_char_table): Likewise.
140         (gcc_tdiag_char_table): Likewise.
141         (gcc_cdiag_char_table): Likewise.
142         (gcc_cxxdiag_char_table): Likewise.
143         (gcc_gfc_char_table): Likewise.
144         (scan_char_table): Likewise.
145         (time_char_table): Likewis.
146         (monetary_char_table): Likewise.
147         * c-format.h (BADLEN): Likewise.
148
149 2008-06-21  Ian Lance Taylor  <iant@google.com>
150
151         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
152         Define END_OF_BASE_TREE_CODES around inclusion.
153         * tree.c (tree_code_type): New global array.
154         (tree_code_length, tree_code_name): Likewise.
155         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
156         $(lang_tree_files).
157         (all-tree.def, s-alltree): New targets.
158         (gencheck.h, s-gencheck): Remove.
159         (tree.o): Depend upon all-tree.def.
160         (build/gencheck.o): Remove gencheck.h dependency.
161         (mostlyclean): Don't remove gencheck.h.
162         * c-common.h (enum c_tree_code): Remove.
163         * c-lang.c (tree_code_type): Remove.
164         (tree_code_length, tree_code_name): Remove.
165         * gencheck.c (tree_codes): Include all-tree.def, rather than
166         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
167         after it is used.
168         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
169         than tree.def.
170         * cp/cp-tree.h (enum cplus_tree_code): Remove.
171         (operator_name_info): Size to MAX_TREE_CODES.
172         (assignment_operator_name_info): Likewise.
173         * cp/cp-lang.c (tree_code_type): Remove.
174         (tree_code_length, tree_code_name): Remove.
175         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
176         (assignment_operator_name_info): Likewise.
177         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
178         MAX_TREE_CODES.
179         * cp/mangle.c (write_expression): Likewise.
180         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
181         * fortran/f95-lang.c (tree_code_type): Remove.
182         (tree_code_length, tree_code_name): Remove.
183         * java/java-tree.h (enum java_tree_code): Remove.
184         * java/lang.c (tree_code_type): Remove.
185         (tree_code_length, tree_code_name): Remove.
186         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
187         * objc/objc-act.h (enum objc_tree_code): Remove.
188         * objc/objc-lang.c (tree_code_type): Remove.
189         (tree_code_length, tree_code_name): Remove.
190         * objcp/objcp-lang.c (tree_code_type): Remove.
191         (tree_code_length, tree_code_name): Remove.
192         * ada/ada-tree.h (enum gnat_tree_code): Remove.
193         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
194         * ada/misc.c (tree_code_type): Remove.
195         (tree_code_length, tree_code_name): Remove.
196
197 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
198
199         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
200         the grand_bitmap_obstack.
201
202 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
203
204         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
205         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
206         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
207         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
208         move_stmt_r, new_label_mapper): Likewise.
209         * tree-complex.c (cvc_lookup): Likewise.
210         * tree-dfa.c (create_function_ann): Likewise.
211         * tree-dump.c (dump_register): Likewise.
212         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
213         find_phi_replacement_condition): Likewise.
214         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
215         tree_function_versioning): Likewise.
216         * tree-into-ssa.c (cmp_dfsnum): Likewise.
217         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
218         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
219         get_nonlocal_debug_decl, convert_nonlocal_reference,
220         convert_nonlocal_omp_clauses, get_local_debug_decl,
221         convert_local_reference, convert_local_omp_clauses,
222         convert_nl_goto_reference, convert_nl_goto_receiver,
223         convert_tramp_reference, convert_call_expr): Likewise.
224         * tree-outof-ssa.c (contains_tree_r): Likewise.
225         * tree-parloops.c (reduction_phi, initialize_reductions,
226         eliminate_local_variables_1, add_field_for_reduction,
227         add_field_for_name, create_phi_for_local_result,
228         create_call_for_reduction_1, create_loads_for_reductions,
229         create_stores_for_reduction, create_loads_and_stores_for_name):
230         Likewise.
231         * tree-phinodes.c (allocate_phi_node): Likewise.
232         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
233         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
234         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
235         * tree-ssa-coalesce.c (compare_pairs): Likewise.
236         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
237         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
238         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
239         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
240         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
241         vn_nary_op_insert): Likewise.
242         * tree-ssa.c (redirect_edge_var_map_add,
243         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
244         * tree-vectorizer.c (vectorize_loops): Likewise.
245         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
246         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
247         tree_cons_stat, build1_stat, build_variant_type_copy,
248         decl_init_priority_lookup, decl_fini_priority_lookup,
249         decl_priority_info, decl_restrict_base_lookup,
250         decl_restrict_base_insert, decl_debug_expr_lookup,
251         decl_debug_expr_insert, decl_value_expr_lookup,
252         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
253         type_hash_add, get_file_function_name, tree_check_failed,
254         tree_not_check_failed, tree_range_check_failed,
255         omp_clause_range_check_failed, build_omp_clause,
256         build_vl_exp_stat): Likewise.
257         * value-prof.c (gimple_histogram_value,
258         gimple_duplicate_stmt_histograms): Likewise.
259         * var-tracking.c (attrs_list_insert, attrs_list_copy,
260         unshare_variable, variable_union_info_cmp_pos, variable_union,
261         dataflow_set_different_1, dataflow_set_different_2,
262         vt_find_locations, variable_was_changed, set_variable_part,
263         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
264         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
265         section_entry_hash, object_block_entry_eq,
266         object_block_entry_hash, create_block_symbol,
267         initialize_cold_section_name, default_function_rodata_section,
268         strip_reg_name, set_user_assembler_name, const_desc_eq,
269         build_constant_desc, output_constant_def, lookup_constant_def,
270         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
271         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
272         default_internal_label): Likewise.
273         * varray.c (varray_init, varray_grow): Likewise.
274         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
275
276 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
277
278         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
279         operators for "test" insn.  Macroize insn using SWI mode macro.
280         (*jcc_fused_2): Ditto.
281         (*jcc_fused_3): Macroize insn using SWI mode macro.
282         (*jcc_fused_4): Ditto.
283
284 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
285
286         * tree-ssa-pre.c: Fix typo in comment.
287         (init_antic, fini_antic): Add explicit funtions for
288         initializing and deinitializing ANTIC and AVAIL sets.
289         (create_expression_by_pieces): Fix typo in comment.
290         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
291         (execute_pre): Eventually dump details about ANTIC_IN.
292
293 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
294
295         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
296         * gcc.c (translate_options, init_spec, store_arg, read_specs,
297         add_to_obstack, file_at_path, find_a_file, execute,
298         add_preprocessor_option, add_assembler_option, add_linker_option,
299         process_command, insert_wrapper, do_option_spec, do_self_spec,
300         spec_path, do_spec_1, is_directory, main, used_arg,
301         getenv_spec_function): Likewise.
302         * tlink.c (symbol_hash_lookup, file_hash_lookup,
303         demangled_hash_lookup, symbol_push, file_push, frob_extension):
304         Likewise.
305
306 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
307
308         * doc/rtl.texi: Updated subreg section.
309
310 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
311
312         PR c++/36523
313         * cgraphunit.c (cgraph_process_new_functions): Don't clear
314         node->needed and node->reachable.
315         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
316         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
317         (expand_task_call): Don't call expand_task_copyfn.
318         (expand_task_copyfn): Renamed to...
319         (finalize_task_copyfn): ... this.
320
321 2008-06-19  Jan Hubicka  <jh@suse.cz>
322
323         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
324         clobbering framepointer.
325
326 2008-06-19  Jan Hubicka  <jh@suse.cz>
327
328         * tree-optimize.c (execute_early_local_optimizations): Set
329         cgraph_state only at first invocation.
330
331 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
332
333         * system.h (-Wc++-compat): Activate as a warning, no an error.
334
335 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
336
337         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
338         instead of "#" in insn asm template.
339         (*jcc_fused_2): Ditto.
340
341 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
342
343         * config/i386/i386.h (ix86_tune_indices)
344         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
345         (TARGET_FUSE_CMP_AND_BRANCH): New define.
346         * config/i386/i386.md (*jcc_fused_1): New insn pattern
347         (*jcc_fused_2): Ditto.
348         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
349         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
350         (print operand): Handle 'E' and 'e' code.
351
352 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
353
354         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
355         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
356         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
357
358 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
359
360         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
361         node->decl.
362         (cgraph_expand_function): Use local copy of decl.
363         (cgraph_expand_all_functions): Remove redundant initialization of
364         order_pos.
365         (cgraph_optimize): Reword internal_error message.
366
367 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
368
369         * arm-protos.h (arm_return_in_memory): Remove public
370         arm_return_in_memory() prototype.
371         * arm.c (arm_return_in_memory): Add static prototype, add target
372         hook macro, change definition and comments.
373         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
374
375 2008-06-19  Ben Elliston  <bje@au.ibm.com>
376
377         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
378         real.c: Remove references to IEEE 754R.
379         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
380         * doc/libgcc.texi (Decimal float library routines): Likewise.
381
382 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
383
384         * targhooks.h (struct gcc_target): New member unwind_word_mode.
385         (default_unwind_word_mode): Add prototype.
386         * targhooks.c (default_unwind_word_mode): New function.
387         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
388         instead of word_mode.
389         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
390         (TARGET_INITIALIZER): Use it.
391
392         * c-common.c (handle_mode_attribute): Support "unwind_word"
393         mode attribute.
394         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
395
396         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
397         word_mode to access SjLj_Function_Context member "data".
398         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
399         conversion from targetm.eh_return_filter_mode () to
400         targetm.unwind_word_mode () if they differ.
401
402         * builtin-types.def (BT_UNWINDWORD): New primitive type.
403         (BT_FN_UNWINDWORD_PTR): New function type.
404         (BT_FN_WORD_PTR): Remove.
405         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
406         * except.c (expand_builtin_extend_pointer): Convert pointer to
407         targetm.unwind_word_mode () instead of word_mode.
408
409         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
410         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
411         (spu_unwind_word_mode): New function.
412         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
413         (TARGET_UNWIND_WORD_MODE): Define.
414         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
415
416 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
417
418         * config/spu/spu.c (reg_align): Remove.
419         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
420         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
421         (spu_split_store): Likewise.
422
423 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
424
425         * gcc/tree-vn.c: Fix typo in comment.
426
427 2008-06-18  Jan Hubicka  <jh@suse.cz>
428
429         * cgraphunit.c (cgraph_optimize): Output debug info when doing
430         toplevel reorder too.
431
432 2008-06-18  Jan Hubicka  <jh@suse.cz>
433
434         * c-opts.c (c_common_post_options): PCH is not compatible with
435         no-unit-at-a-time.
436         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
437         -fno-toplevel-reorder by default now.
438
439 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
440
441         PR documentation/30739
442         * doc/install.texi (Prerequisites): Document dependency on awk.
443
444 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
445             Ian Lance Taylor  <iant@google.com>
446
447         PR rtl-optimization/35604
448         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
449         only want to change jump destinations, not eventual label comparisons.
450
451 2008-06-16  Jan Hubicka  <jh@suse.cz>
452
453         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
454         syntax errors.
455         (cgraph_analyze_function): Likewise.
456
457 2008-06-16  Jan Hubicka  <jh@suse.cz>
458
459         * cgraph.h (cgraph_mark_if_needed): New function.
460         * cgraphunit.c (cgraph_mark_if_needed): New function.
461         * c-decl.c (duplicate_decl): Use it.
462
463 2008-06-16  Jan Hubicka  <jh@suse.cz>
464
465         * cgraph.c (cgraph_add_new_function): When in expansion state, do
466         lowering.
467
468 2008-06-16  Jan Hubicka  <jh@suse.cz>
469
470         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
471
472 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
473             Kazu Hirata  <kazu@codesourcery.com>
474             Maxim Kuvyrkov  <maxim@codesourcery.com
475
476         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
477         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
478         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
479         EXTRA_SPEC_FUNCTIONS.
480         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
481         (DRIVER_SELF_SPECS): Adjust.
482         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
483         * config/mips/st.h, config/mips/t-st: New.
484         * config/mips/driver-native.c, config/mips/x-native: New.
485         * doc/invoke.texi (MIPS): Document 'native' value for -march and
486         -mtune options.
487
488 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
489
490         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
491         from it.
492         (ISA_HAS_FP_CONDMOVE): New macro.
493         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
494         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
495         (ISA_HAS_NMADD3_NMSUB3): New macro.
496         * config/mips/mips.c (mips_rtx_costs): Update.
497         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
498         compiling for ST Loongson 2E/2F.
499         (madd<mode>): Rename to madd4<mode>.  Update.
500         (madd3<mode>): New pattern.
501         (msub<mode>): Rename to msub4<mode>.  Update.
502         (msub3<mode>): New pattern.
503         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
504         (nmadd3<mode>): New pattern.
505         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
506         (nmadd3<mode>_fastmath): New pattern.
507         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
508         (nmsub3<mode>): New pattern.
509         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
510         (nmsub3<mode>_fastmath): New pattern.
511         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
512
513 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
514
515         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
516         (DF_REF_INSN_INFO): New.
517         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
518         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
519         with a NULL DF_REF_INSN_INFO.
520         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
521         DF_INSN_SET.
522         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
523         DF_INSN_INFO_EQ_USES): New.
524         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
525         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
526         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
527         * df-core.c: Update comment for above changes.
528         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
529         DF_INSN_UID_* macros.
530         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
531         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
532         insn rtx.  Update all callers.
533         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
534         df_ref_create_structure, df_insn_refs_collect): Likewise.
535         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
536         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
537         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
538         macros to access the insn refs.
539         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
540         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
541         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
542         for accessing the refs.
543         (try_fwprop_subst): Likewise.
544         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
545         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
546         for accessing the refs.
547         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
548         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
549         to look at the insn refs.
550         (record_uses): Likewise.
551         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
552         function anymore.
553         (mark_artificial_uses): Don't mark_insn for artificial refs.
554         (mark_reg_rependencies): Likewise.
555
556         * doc/rtl.texi: Remove documentation of ADDRESSOF.
557
558 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
559
560         * configure: Regenerate.
561
562 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
563
564         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
565         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
566         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
567
568 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
569
570         * config/avr/avr.c (avr_mcu_t): Add attiny167.
571         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
572         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
573
574 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
575
576         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
577         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
578         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
579
580 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
581
582         * tree-ssa-sccvn.c: Fix format of comments.
583
584 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
585
586         * cgraph.c: Remove unneeded forward declarations of eq_node()
587         and hash_node().
588
589 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
590
591         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
592         REG_RETVAL notes.
593         (see_update_relevancy): Likewise.
594         * fwprop.c (try_fwprop_subst): Likewise.
595         * rtlanal.c (noop_move_p): Likewise.
596         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
597         notes to non-existing libcall blocks.
598         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
599         Remove orig_set.
600         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
601         (dead_libcall_p): Remove.
602         (delete_trivially_dead_insns): Don't use it.
603         * web.c (union_defs): Remove comment about keeping nops.
604         * gcse.c (hash_scan_insn): Don't take libcall pointers.
605         (compute_hash_table_work): Don't track libcall notes.
606         (do_local_cprop): Don't take libcall pointers.  Don't update
607         libcall notes.
608         (adjust_libcall_notes): Deleted.
609         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
610         ever have existed in the first place).
611         (replace_store_insn): Don't try to remove libcall notes.
612         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
613         (resolve_reg_notes): Don't call them.
614         (resolve_simple_move): Likewise.
615         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
616         Don't remove REG_RETVAL notes.
617         * emit-rtl.c (try_split): Don't update libcall notes.
618         (emit_copy_of_insn_after): Dito.
619         * cselib.c (cselib_current_insn_in_libcall): Remove.
620         (cselib_process_insn): Don't set/clear it.
621         (new_elt_loc_list): Don't record it.
622         (cselib_init): Don't initialize it.
623         * cselib.c (struct elt_loc_list): Remove in_libcall field.
624         * loop-invariant.c (find_invariant_insn): Don't look for libcall
625         notes.
626         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
627         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
628         (init_deps): Don't initialize it.
629         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
630         * combine.c (delete_noop_moves): Don't update libcall notes.
631         (can_combine_p): Remove now pointless #if 0 block.
632         (try_combine): Remove another obsolete #if 0 block.
633         (distribute_notes): Don't distribute libcall notes.
634         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
635         * dce.c (libcall_dead_p): Remove.
636         (delete_unmarked_insns): Don't handle libcall blocks.
637         (preserve_libcall_for_dce): Remove.
638         (prescan_insns_for_dce): Don't special-case libcall block insns.
639         * reload1 (reload): Don't handle libcall notes. 
640         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
641         documentation.
642
643 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
644
645         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
646         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
647         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
648
649 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
650
651         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
652         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
653         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
654
655 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
656
657         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
658
659 2008-06-16  Ira Rosen  <irar@il.ibm.com>
660
661         PR tree-optimization/36493
662         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
663         the arguments list. Use VECTYPE to create vector pointer.
664         (vectorizable_store): Fail if accesses through a pointer to vectype
665         do not alias the original memory reference operands.
666         Call vect_create_data_ref_ptr without the removed argument.
667         (vectorizable_load): Likewise.
668         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
669         removed argument.
670
671 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
672
673         PR target/36336
674         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
675         reg_equiv_constant.
676
677 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
678
679         * config/mips/loongson2ef.md: New file.
680         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
681         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
682         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
683         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
684         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
685         and loongson_2f.
686         (loongson2ef.md): New include.
687         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
688         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
689         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
690         (loongson_gt_<mode>, loongson_extract_halfword)
691         (loongson_insert_halfword_0, loongson_insert_halfword_2)
692         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
693         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
694         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
695         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
696         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
697         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
698         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
699         (vec_interleave_low<mode>): Define type attribute.
700         * config/mips/mips.c (mips_ls2): New static variable.
701         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
702         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
703         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
704         Implement target scheduling hooks.
705         (mips_multipass_dfa_lookahead): Update to handle tuning for
706         Loongson 2E/2F.
707         (mips_sched_init): Initialize data for Loongson scheduling.
708         (mips_ls2_variable_issue): New static function.
709         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
710         Add sanity check.
711         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
712         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
713         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
714         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
715         Handle ST Loongson 2E/2F cores.
716         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
717
718 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
719
720         * omp-low.c (extract_omp_for_data): Fix comment typo.
721         * c.opt: Fix typo.
722
723 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
724
725         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
726         FIXME note about gcc/config.guess.
727         * doc/options.texi (Option file format): Remove non-ASCII bytes.
728         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
729         * doc/cppopts.texi: Likewise.
730         * doc/extend.texi: Likewise.
731         * doc/gcc.texi: Likewise.
732         * doc/gccint.texi: Likewise.
733         * doc/gcov.texi: Likewise.
734         * doc/gty.texi: Likewise.
735         * doc/hostconfig.texi: Likewise.
736         * doc/install.texi: Likewise.
737         * doc/invoke.texi: Likewise.
738         * doc/loop.texi: Likewise.
739         * doc/makefile.texi: Likewise.
740         * doc/md.texi: Likewise.
741         * doc/passes.texi: Likewise.
742         * doc/tm.texi: Likewise.
743         * doc/tree-ssa.texi: Likewise.
744         * doc/trouble.texi: Likewise.
745
746 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
747             Nathan Sidwell  <nathan@codesourcery.com>
748             Maxim Kuvyrkov  <maxim@codesourcery.com>
749             Richard Sandiford  <rdsandiford@googlemail.com>
750         
751         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
752         * config/mips/mips-protos.h (mips_expand_vector_init): New.
753         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
754         builtins.
755         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
756         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
757         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
758         V8QImode cases.
759         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
760         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
761         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
762         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
763         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
764         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
765         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
766         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
767         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
768         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
769         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
770         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
771         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
772         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
773         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
774         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
775         (mips_builtins): Add Loongson builtins.
776         (mips_loongson_2ef_bdesc): New.
777         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
778         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
779         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
780         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
781         New.
782         (mips_expand_vector_init): New.
783         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
784         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
785         if appropriate.
786         * config/mips/mips.md: Add unspec numbers for Loongson
787         builtins.  Include loongson.md.
788         (MOVE64): Include Loongson vector modes.
789         (SPLITF): Include Loongson vector modes.
790         (HALFMODE): Handle Loongson vector modes.
791         * config/mips/loongson.md: New.
792         * config/mips/loongson.h: New.
793         * config.gcc: Add loongson.h header for mips*-*-* targets.
794         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
795
796 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
797
798         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
799         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
800         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
801         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
802         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
803         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
804         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
805         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
806         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
807         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
808         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
809         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
810         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
811         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
812         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
813         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
814         Remove use_fixproto=yes.
815         (ia64*-*-hpux*): Remove comment about using fixproto.
816         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
817
818 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
819
820         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
821         library rebuilds.
822         * configure: Regenerate.
823
824 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
825
826         PR middle-end/36520
827         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
828         before evaluating it.
829
830 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
831
832         PR c/36507
833         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
834         nested inline functions.
835         (start_decl, start_function): Don't invert DECL_EXTERNAL
836         for nested inline functions.
837
838 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
839
840         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
841         splits that must be made for correctness.
842
843 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
844
845         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
846         (AVAIL_NON_MIPS16): Likewise.
847         (mips_builtin_description): Replace target_flags with a predicate.
848         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
849         (dspr2_32): New availability predicates.
850         (MIPS_BUILTIN): New macro.
851         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
852         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
853         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
854         Replace the TARGET_FLAGS parameters with AVAIL parameters.
855         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
856         (mips_dsp_32only_bdesc): Merge into...
857         (mips_builtins): ...this new array.
858         (mips_bdesc_map, mips_bdesc_arrays): Delete.
859         (mips_init_builtins): Update after above changes.
860         (mips_expand_builtin_1): Merge into...
861         (mips_expand_builtin): ...here and update after above changes.
862
863 2008-06-12  Paul Brook  <paul@codesourcery.com>
864
865         * longlong.h (__arm__): Define count_leading_zeros.
866         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
867         (clzsi2, clzdi2): New functions.
868         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
869         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
870         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
871         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
872         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
873         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
874         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
875         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
876         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
877         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
878
879 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
880
881         * config/m68k/m68k.c (m68k_tune_flags): New.
882         (override_options): Compute m68k_tune_flags.
883         (MULL_COST, MULW_COST): Update for various variants of CFV2.
884         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
885
886 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
887
888         PR middle-end/36506
889         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
890
891 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
892
893         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
894         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
895
896 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
897
898         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
899         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
900
901 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
902
903         PR middle-end/36506
904         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
905         reductions.
906
907 2008-06-12  Richard Guenther  <rguenther@suse.de>
908
909         PR tree-optimization/36345
910         * tree-flow.h (struct ptr_info_def): Align escape_mask,
911         add memory_tag_needed flag.
912         (may_alias_p): Declare.
913         * tree-ssa-alias.c (may_alias_p): Export.
914         (set_initial_properties): Use memory_tag_needed flag.
915         (update_reference_counts): Likewise.
916         (reset_alias_info): Reset memory_tag_needed flag.
917         (create_name_tags): Check memory_tag_needed flag.
918         (dump_points_to_info_for): Dump it.
919         * tree-ssa-structalias.c (struct variable_info): Remove
920         directly_dereferenced flag.
921         (new_var_info): Do not initialize it.
922         (process_constraint_1): Do not set it.
923         (update_alias_info): Set is_dereferenced flag.
924         (set_uids_in_ptset): Use may_alias_p.
925         (set_used_smts): Check memory_tag_needed flag.
926         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
927         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
928         memory_tag_needed flag.
929         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
930         from broken design.
931
932 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
933
934         * config/i386/i386.c (ix86_compute_frame_layout): Disable
935         red zone for w64 abi.
936         (ix86_expand_prologue): Likewise.
937         (ix86_force_to_memory): Likewise.
938         (ix86_free_from_memory): Likewise.
939
940 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
941
942         PR target/36425
943         * config/rs6000/rs6000.c (rs6000_override_options): Set
944         rs6000_isel conditionally to the absence of comand line override.
945         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
946         Remove duplicate rs6000_isel setting.
947         * config/rs6000/eabispe.h: Ditto.
948
949 2008-06-11  Richard Guenther  <rguenther@suse.de>
950
951         * alias.c (get_alias_set): Use the element alias-set for arrays.
952         (record_component_aliases): For arrays and vectors do nothing.
953         * c-common.c (strict_aliasing_warning): Handle the cases
954         of alias set zero explicitly.
955         * Makefile.in (dfp.o-warn): Add -Wno-error.
956
957 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
958
959         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
960         tune_32 tune_64.
961         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
962         tune_32 tune_64 to supported_defaults.  Allow values not
963         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
964         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
965         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
966         with_cpu_64 to generic for 64-bit-supporting configurations, not
967         with_cpu.  Remove FIXMEs.
968         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
969         --with-arch-64, --with-tune-32, --with-tune-64): Document.
970         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
971         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
972         arch_32 and arch_64.
973
974 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
975             Olivier Hainque  <hainque@adacore.com>
976
977         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
978         Use DECL_SIZE_UNIT to retrieve the size of the field.
979
980 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
981
982         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
983         with function calls after declarations.  Lay out
984         neon_float_type_node before further use.
985
986 2008-06-11  Richard Guenther  <rguenther@suse.de>
987
988         * tree-flow.h (may_point_to_global_var): Declare.
989         * tree-ssa-alias.c (may_point_to_global_var): New function.
990         * tree-ssa-sink.c (is_hidden_global_store): Use it.
991
992 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
993
994         * configure.ac: Teach that fido supports .debug_line.
995         * configure: Regenerate.
996
997 2008-06-10  Tom Tromey  <tromey@redhat.com>
998
999         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1000         debug hook.
1001
1002 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1003
1004         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1005         (encode_decimal64, decode_decimal64, encode_decimal128,
1006         decode_decimal128): Reverse order of 32-bit parts of value if host
1007         and target endianness differ.
1008
1009 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1010
1011         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1012         Avoid division by 0.
1013         (tree_mod_pow2_value_transform): Likewise.
1014         (tree_ic_transform): Likewise.
1015         (tree_stringops_transform): Likewise.
1016         (tree_mod_subtract_transform): Likewise.
1017         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1018         (copy_edges_for_bb): Likewise.
1019         (initialize_cfun): Likewise.
1020
1021 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1022
1023         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1024         nonmemory_operand. Add "N" operand constraint.
1025         (*btsi): Ditto.
1026         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1027         (*jcc_btsi_mask): Ditto.
1028         (*jcc_btsi_mask_1): Ditto.
1029
1030 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1031
1032         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1033         TYPE_CANONICAL for copied element type.
1034
1035 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1036
1037         PR target/36473
1038         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1039         Add m_CORE2 and m_GENERIC.
1040         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1041         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1042         (*btsi): Ditto.
1043         (*jcc_btdi_rex64): New instruction and split pattern.
1044         (*jcc_btsi): Ditto.
1045         (*jcc_btsi_1): Ditto.
1046         (*btsq): Fix Intel asm dialect operand order.
1047         (*btrq): Ditto.
1048         (*btcq): Ditto.
1049
1050 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1051
1052         PR middle-end/36447
1053         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1054         greater than size.
1055
1056 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1057
1058         * doc/md.texi: Synchronize with later constraints.md change.
1059         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1060         with a C implementation.
1061         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1062         MFLO handling.
1063         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1064         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1065         when moving to and from MD_REGNUM.
1066         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1067         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1068         Handle byte and halfword moves.
1069         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1070         separately.
1071         * config/mips/constraints.md (h): Turn into NO_REGS.
1072         (l, x): Update documentation.
1073         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1074         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1075         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1076         (HILO): New mode iterator.
1077         (MOVE128): Add TI.
1078         (any_div): New code iterator.
1079         (u): Extend code attribute to div and udiv.
1080         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1081         d_operand in the splitters.  Remove redundant CONST_INT checks.
1082         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1083         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1084         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1085         accordingly, using normal moves instead of unspecs to move LO into
1086         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1087         (<u>mulsidi3): Handle expansion in C code.
1088         (<u>mulsidi3_32bit_internal): Rename to...
1089         (<u>mulsidi3_32bit): ...this.
1090         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1091         (*<u>mulsidi3_64bit): Rename to...
1092         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1093         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1094         to set LO and HI to the multiplication result.  Use a normal move
1095         for MFLO and an unspec for MFHI.
1096         (*<u>mulsidi3_64bit_parts): Replace with...
1097         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1098         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1099         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1100         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1101         instead of HI.  Split the instruction into a separate multiplication
1102         and MFHI if !TARGET_FIX_R4000.
1103         (<su>muldi3_highpart): Likewise.
1104         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1105         and the "=h" clobber.
1106         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1107         (<u>mulditi3): New expander.
1108         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1109         (madsi): Remove "=h" clobber.
1110         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1111         Force the modulus result to be a GPR and split the instruction into
1112         a division followed by an MFHI after reload.
1113         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1114         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1115         the MIPS16 HIGH define_split.
1116         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1117         of acc<->gpr moves to "multi".
1118         (*movdi_64bit): Replace the single "x" alternative with
1119         alternatives for moving into and out of "a".
1120         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1121         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1122         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1123         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1124         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1125         (movti): New expander.
1126         (*movti, *movti_mips16): New insns.
1127         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1128         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1129         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1130         * config/mips/predicates.md (fpr_operand): Delete.
1131         (d_operand): New predicate.
1132
1133 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1134
1135         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1136         failure on some Bourne shells.
1137         (x86_64-*-*): Ditto.
1138
1139 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1140
1141         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1142
1143 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1144
1145         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1146         (sparc-sun-solaris2*): Likewise.
1147
1148 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1149
1150         * doc/install.texi: Update requirements to build the Ada compiler.
1151
1152 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1153
1154         * df-scan.c (struct df_scan_problem_data): Remove the
1155         mw_link_pool alloc pool.
1156         (df_scan_free_internal): Don't free it.
1157         (df_scan_alloc): Don't allocate it.
1158         * df.h (struct df_link): Update comment.
1159
1160 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1161
1162         * except.h: Correct checks for when SJLJ exceptions must be used.
1163
1164 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1165
1166         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1167         default.
1168         
1169 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1170
1171         PR tree-optimization/36218
1172         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1173         configure for the build system.
1174         (BUILD_LDFLAGS): Define.
1175         * configure: Regenerate.
1176         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1177
1178 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1179
1180         PR target/36424
1181         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1182         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1183         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1184
1185 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1186
1187         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1188
1189 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1190
1191         * config.gcc (Obsolete configurations): Remove list of
1192         configurations.
1193         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1194         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1195         targets matched by those patterns.
1196         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1197         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1198         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1199         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1200         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1201         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1202         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1203         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1204         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1205         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1206         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1207         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1208         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1209         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1210         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1211         Make code for Solaris 7 and greater unconditional for Solaris.
1212         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1213         Remove --with-* handling.
1214         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1215         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1216         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1217         LINK_OS_WINDISS_SPEC): Remove.
1218         * config/rs6000/sysv4.opt (mwindiss): Remove.
1219         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1220         * configure: Regenerate.
1221         * doc/cpp.texi: Don't mention BeOS.
1222         * doc/extend.texi (interrupt): Don't mention MS1.
1223         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1224         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1225         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1226         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1227         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1228         Remove.
1229         * doc/invoke.texi (MT Options): Remove.
1230         (-mwindiss): Remove.
1231         (CRIS Options): Remove cris-axis-aout references.
1232         (HPPA Options): Don't mention hppa1.1-*-pro.
1233         * doc/md.texi: (MorphoTech family): Remove.
1234         * libgcc2.c: Don't handle UWIN.
1235         * config/alpha/t-unicosmk: Remove.
1236         * config/alpha/unicosmk.h: Remove.
1237         * config/arm/kaos-arm.h: Remove.
1238         * config/arm/kaos-strongarm.h: Remove.
1239         * config/arm/strongarm-coff.h: Remove.
1240         * config/arm/strongarm-elf.h: Remove.
1241         * config/arm/strongarm-pe.h: Remove.
1242         * config/arm/t-strongarm-pe: Remove.
1243         * config/arm/t-xscale-coff: Remove.
1244         * config/arm/t-xscale-elf: Remove.
1245         * config/arm/xscale-coff.h: Remove.
1246         * config/arm/xscale-elf.h: Remove.
1247         * config/chorus.h: Remove.
1248         * config/cris/aout.h: Remove.
1249         * config/cris/aout.opt: Remove.
1250         * config/cris/t-aout: Remove.
1251         * config/i386/beos-elf.h: Remove.
1252         * config/i386/kaos-i386.h: Remove.
1253         * config/i386/ptx4-i.h: Remove.
1254         * config/i386/sco5.h: Remove.
1255         * config/i386/sco5.opt: Remove.
1256         * config/i386/sysv4-cpp.h: Remove.
1257         * config/i386/sysv5.h: Remove.
1258         * config/i386/t-beos: Remove.
1259         * config/i386/t-sco5: Remove.
1260         * config/i386/t-uwin: Remove.
1261         * config/i386/uwin.asm: Remove.
1262         * config/i386/uwin.h: Remove.
1263         * config/kaos.h: Remove.
1264         * config/mips/windiss.h: Remove.
1265         * config/mt: Remove directory.
1266         * config/pa/pa-osf.h: Remove.
1267         * config/pa/pa-pro-end.h: Remove.
1268         * config/pa/t-pro: Remove.
1269         * config/ptx4.h: Remove.
1270         * config/rs6000/beos.h: Remove.
1271         * config/rs6000/kaos-ppc.h: Remove.
1272         * config/rs6000/t-beos: Remove.
1273         * config/rs6000/windiss.h: Remove.
1274         * config/sh/kaos-sh.h: Remove.
1275         * config/sol2-6.h: Remove.
1276         * config/sparc/sol26-sld.h: Remove.
1277         * config/sparc/sysv4-only.h: Remove.
1278         * config/vax/bsd.h: Remove.
1279         * config/vax/t-memfuncs: Remove.
1280         * config/vax/ultrix.h: Remove.
1281         * config/vax/vaxv.h: Remove.
1282         * config/windiss.h: Remove.
1283
1284 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1285
1286         PR rtl-optimization/36438
1287         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1288         for vector shifts with constant scalar shift operands.
1289
1290 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1291
1292         * doc/invoke.texi: Document -march=xlr.
1293         * config/mips/xlr.md: New file.
1294         * config/mips/mips.md: Include it.
1295         (cpu): Add "xlr".
1296         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1297         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1298         (mips_rtx_cost_data): Likewise.
1299
1300 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1301
1302         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1303         PRE_INC and PRE_DEC cases.
1304
1305 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1306
1307         PR rtl-optimization/36419
1308         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1309         the emitting jump insn.
1310
1311         PR target/36362
1312         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1313         is not bool, boolify the whole *expr_p and convert to the desired type.
1314
1315 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1316
1317         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1318         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1319         Add omp_private_outer_ref hook, add another argument to
1320         omp_clause_default_ctor hook.
1321         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1322         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1323         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1324         hook_tree_tree_tree_tree_null.
1325         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1326         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1327         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1328         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1329         * tree.def (OMP_TASK): New tree code.
1330         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1331         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1332         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1333         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1334         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1335         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1336         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1337         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1338         (OMP_DIRECTIVE_P): Add OMP_TASK.
1339         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1340         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1341         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1342         and OMP_CLAUSE_UNTIED entries.
1343         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1344         num_ops to 2.
1345         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1346         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1347         * tree-pretty-print.c (dump_omp_clause): Handle
1348         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1349         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1350         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1351         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1352         warning about unsigned iterators.  Change decl/init/cond/incr
1353         arguments to TREE_VECs, check arguments for all collapsed loops.
1354         (c_finish_omp_taskwait): New function.
1355         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1356         ws_clauses.
1357         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1358         default_function_array_conversion on init.  Add par_clauses argument.
1359         If decl is present in parallel's lastprivate clause, change it to
1360         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1361         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1362         collapse count in clauses.
1363         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1364         c_parser_omp_for_loop callers.
1365         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1366         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1367         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1368         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1369         functions.
1370         (c_parser_omp_clause_schedule): Handle schedule(auto).
1371         Include correct location in the error message.
1372         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1373         and PRAGMA_OMP_CLAUSE_UNTIED.
1374         (OMP_TASK_CLAUSE_MASK): Define.
1375         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1376         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1377         * tree-nested.c (convert_nonlocal_omp_clauses,
1378         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1379         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1380         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1381         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1382         OMP_CLAUSE_DECL.
1383         (conver_nonlocal_reference, convert_local_reference,
1384         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1385         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1386         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1387         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1388         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1389         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1390         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1391         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1392         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1393         OMP_CLAUSE_UNTIED.
1394         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1395         * c-common.h (c_finish_omp_taskwait): New prototype.
1396         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1397         * tree-parloops.c (create_parallel_loop): Create 1 entry
1398         vectors for OMP_FOR_{INIT,COND,INCR}.
1399         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1400         (make_edges): Handle OMP_TASK.
1401         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1402         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1403         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1404         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1405         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1406         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1407         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1408         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1409         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1410         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1411         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1412         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1413         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1414         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1415         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1416         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1417         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1418         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1419         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1420         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1421         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1422         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1423         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1424         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1425         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1426         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1427         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1428         original iterator is present in lastprivate clause or if
1429         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1430         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1431         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1432         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1433         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1434         if it is set, lookup var in outer contexts too.  Handle
1435         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1436         to be implicitly determined firstprivate for task regions.
1437         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1438         if it is set, lookup var in outer contexts too.  Set
1439         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1440         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1441         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1442         instead of in_parallel and in_combined_parallel.
1443         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1444         Adjust callers.
1445         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1446         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1447         (new_omp_context): Set default_kind to
1448         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1449         (omp_region_type): New enum.
1450         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1451         fields, add region_type.
1452         (new_omp_context): Take region_type as argument instead of is_parallel
1453         and is_combined_parallel.
1454         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1455         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1456         ctx->is_combined_parallel checks.
1457         (gimplify_omp_task): New function.
1458         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1459         OMP_CLAUSE_UNTIED.
1460         * omp-low.c (extract_omp_for_data): Use schedule(static)
1461         for schedule(auto).  Handle pointer and unsigned iterators.
1462         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1463         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1464         (expand_parallel_call): Assert sched_kind isn't auto,
1465         map runtime schedule to index 3.
1466         (struct omp_for_data_loop): New type.
1467         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1468         Add loop, loops, collapse and iter_type fields.
1469         (workshare_safe_to_combine_p): Disallow combined for if
1470         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1471         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1472         caller.
1473         (expand_omp_for_generic): Handle pointer, unsigned and long long
1474         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1475         for struct omp_for_data changes.  If libgomp function doesn't return
1476         boolean_type_node, add comparison of the return value with 0.
1477         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1478         pointer, unsigned and long long iterators.  Adjust for struct
1479         omp_for_data changes.
1480         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1481         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1482         unsigned long long.  Allocate loops array, pass it to
1483         extract_omp_for_data.  For collapse > 1 loops use always
1484         expand_omp_for_generic.
1485         (omp_context): Add sfield_map and srecord_type fields.
1486         (is_task_ctx, lookup_sfield): New functions.
1487         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1488         argument's type from const_tree to tree.  Clarify comment.
1489         In OMP_TASK disallow copy-in/out sharing.
1490         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1491         (install_var_field): Add mask argument.  Populate both record_type
1492         and srecord_type if needed.
1493         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1494         in srecord_type.
1495         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1496         and DECL_FIELD_OFFSET.
1497         (scan_sharing_clauses): Adjust install_var_field callers.  For
1498         firstprivate clauses on explicit tasks allocate the var by value in
1499         record_type unconditionally, rather than by reference.
1500         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1501         Use is_taskreg_ctx instead of is_parallel_ctx.
1502         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1503         (create_omp_child_function_name): Add task_copy argument, use
1504         *_omp_cpyfn* names if it is true.
1505         (create_omp_child_function): Add task_copy argument, if true create
1506         *_omp_cpyfn* helper function.
1507         (scan_omp_parallel): Adjust create_omp_child_function callers.
1508         Rename parallel_nesting_level to taskreg_nesting_level.
1509         (scan_omp_task): New function.
1510         (lower_rec_input_clauses): Don't run constructors for firstprivate
1511         explicit task vars which are initialized by *_omp_cpyfn*.  
1512         Pass outer var ref to omp_clause_default_ctor hook if
1513         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1514         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1515         OMP_CLAUSE_REDUCTION_INIT.
1516         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1517         avoid duplicate setting of fields.  Handle
1518         OMP_CLAUSE_PRIVATE_OUTER_REF.
1519         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1520         copy-out if TREE_READONLY, only copy-in.
1521         (expand_task_copyfn): New function.
1522         (expand_task_call): New function.
1523         (struct omp_taskcopy_context): New type.
1524         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1525         New functions.
1526         (lower_omp_parallel): Rename to...
1527         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1528         Call create_task_copyfn if srecord_type is needed.  Adjust
1529         sender_decl type.
1530         (task_shared_vars): New variable.
1531         (check_omp_nesting_restrictions): Warn if work-sharing,
1532         barrier, master or ordered region is closely nested inside OMP_TASK.
1533         Add warnings for barrier if closely nested inside of work-sharing,
1534         ordered, or master region.
1535         (scan_omp_1): Call check_omp_nesting_restrictions even for
1536         GOMP_barrier calls.  Rename parallel_nesting_level to
1537         taskreg_nesting_level.  Handle OMP_TASK.
1538         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1539         work-sharing construct, continue looking for them on parent parallel
1540         construct.
1541         (lower_omp_for_lastprivate): Add lastprivate clauses
1542         to the beginning of dlist rather than end.  Adjust for struct
1543         omp_for_data changes.
1544         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1545         not after it.  Handle collapsed OMP_FOR loops, adjust for
1546         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1547         (get_ws_args_for): Adjust extract_omp_for_data caller.
1548         (scan_omp_for): Handle collapsed OMP_FOR
1549         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1550         (lower_omp_single_simple): If libgomp function doesn't return
1551         boolean_type_node, add comparison of the return value with 0.
1552         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1553         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1554         (parallel_nesting_level): Rename to...
1555         (taskreg_nesting_level): ... this.
1556         (is_taskreg_ctx): New function.
1557         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1558         of is_parallel_ctx.
1559         (execute_lower_omp): Rename parallel_nesting_level to
1560         taskreg_nesting_level.
1561         (expand_omp_parallel): Rename to...
1562         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1563         Call omp_task_call for OMP_TASK regions.
1564         (expand_omp): Adjust caller, handle OMP_TASK.
1565         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1566
1567         * bitmap.c (bitmap_default_obstack_depth): New variable.
1568         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1569         if argument is NULL and bitmap_default_obstack is already initialized.
1570         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1571         at the end.
1572         * matrix-reorg.c (matrix_reorg): Likewise.
1573
1574 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1575
1576         * config/i386/i386.md (*indirect_jump): Macroize using P
1577         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1578         (*tablejump_1): Ditto.
1579         (*indirect_jump_rex64): Remove insn pattern.
1580         (*tablejump_1_rex64): Ditto.
1581         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1582         and eh_return_si insn patterns.
1583
1584 2008-06-06  Richard Guenther  <rguenther@suse.de>
1585
1586         * tree-ssa-structalias.c (merge_smts_into): Remove.
1587         (find_what_p_points_to): Do not bother to compute the
1588         points-to set for pt_anything pointers.
1589         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1590         for pt_anything pointers is ok.
1591
1592 2008-06-06  Jan Hubicka  <jh@suse.cz>
1593
1594         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1595
1596 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1597
1598         * cgraph.c: Fix typos in comments.
1599         (cgraph_availability_names): Fix string typo.
1600         * fold-const.c: Fix typos in comments.
1601         (fold_binary): Fix typo in warning.
1602         * genautomata.c: Fix typos in comments.
1603         (check_presence_pattern_sets): Fix typo in local variable.
1604         (output_description): Fix typo in output.
1605         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1606         * hwint.h: Likewise.
1607         * matrix-reorg.c (check_allocation_function): Likewise.
1608         * omega.c (smooth_weird_equations): Likewise.
1609         * auto-inc-dec.c: Fix typos in comments.
1610         * bb-reorder.c: Likewise.
1611         * builtins.c: Likewise.
1612         * c-common.c: Likewise.
1613         * c-cppbuiltin.c: Likewise.
1614         * c-parser.c: Likewise.
1615         * c-pretty-print.c: Likewise.
1616         * cfgcleanup.c: Likewise.
1617         * cfgexpand.c: Likewise.
1618         * cfghooks.c: Likewise.
1619         * cfglayout.c: Likewise.
1620         * cfgloopmanip.c: Likewise.
1621         * cgraphunit.c: Likewise.
1622         * coverage.c: Likewise.
1623         * dbxout.c: Likewise.
1624         * df-byte-scan.c: Likewise.
1625         * df-core.c: Likewise.
1626         * df-problems.c: Likewise.
1627         * df-scan.c: Likewise.
1628         * dfp.c: Likewise.
1629         * dominance.c: Likewise.
1630         * domwalk.c: Likewise.
1631         * dse.c: Likewise.
1632         * dwarf2out.c: Likewise.
1633         * emit-rtl.c: Likewise.
1634         * et-forest.c: Likewise.
1635         * function.c: Likewise.
1636         * function.h: Likewise.
1637         * gcc.c: Likewise.
1638         * gcov-io.c: Likewise.
1639         * gcov.c: Likewise.
1640         * gcse.c: Likewise.
1641         * genattrtab.c: Likewise.
1642         * ggc-page.c: Likewise.
1643         * gimplify.c: Likewise.
1644         * gthr-lynx.h: Likewise.
1645         * haifa-sched.c: Likewise.
1646         * ipa-cp.c: Likewise.
1647         * ipa-inline.c: Likewise.
1648         * ipa-prop.h: Likewise.
1649         * ipa-pure-const.c: Likewise.
1650         * ipa-struct-reorg.c: Likewise.
1651         * ipa-struct-reorg.h: Likewise.
1652         * ipa-type-escape.c: Likewise.
1653         * ipa.c: Likewise.
1654         * loop-doloop.c: Likewise.
1655         * mips-tfile.c: Likewise.
1656         * mkmap-flat.awk: Likewise.
1657         * mkmap-symver.awk: Likewise.
1658         * modulo-sched.c: Likewise.
1659         * omp-low.c: Likewise.
1660         * optabs.c: Likewise.
1661         * optabs.h: Likewise.
1662         * opts.c: Likewise.
1663         * passes.c: Likewise.
1664         * postreload-gcse.c: Likewise.
1665         * postreload.c: Likewise.
1666         * predict.c: Likewise.
1667         * pretty-print.h: Likewise.
1668         * profile.c: Likewise.
1669         * protoize.c: Likewise.
1670         * ra-conflict.c: Likewise.
1671         * real.c: Likewise.
1672         * recog.c: Likewise.
1673         * regclass.c: Likewise.
1674         * regs.h: Likewise.
1675         * reload.c: Likewise.
1676         * rtl-error.c: Likewise.
1677         * rtlanal.c: Likewise.
1678         * scan.h: Likewise.
1679         * sched-rgn.c: Likewise.
1680         * see.c: Likewise.
1681         * stmt.c: Likewise.
1682         * target.h: Likewise.
1683         * tree-dfa.c: Likewise.
1684         * tree-eh.c: Likewise.
1685         * tree-flow-inline.h: Likewise.
1686         * tree-inline.c: Likewise.
1687         * tree-into-ssa.c: Likewise.
1688         * tree-loop-distribution.c: Likewise.
1689         * tree-nested.c: Likewise.
1690         * tree-parloops.c: Likewise.
1691         * tree-pass.h: Likewise.
1692         * tree-pretty-print.c: Likewise.
1693         * tree-profile.c: Likewise.
1694         * tree-scalar-evolution.c: Likewise.
1695         * tree-sra.c: Likewise.
1696         * tree-ssa-alias-warnings.c: Likewise.
1697         * tree-ssa-ccp.c: Likewise.
1698         * tree-ssa-coalesce.c: Likewise.
1699         * tree-ssa-dom.c: Likewise.
1700         * tree-ssa-dse.c: Likewise.
1701         * tree-ssa-forwprop.c: Likewise.
1702         * tree-ssa-live.c: Likewise.
1703         * tree-ssa-live.h: Likewise.
1704         * tree-ssa-loop-im.c: Likewise.
1705         * tree-ssa-loop-ivopts.c: Likewise.
1706         * tree-ssa-loop-niter.c: Likewise.
1707         * tree-ssa-loop-prefetch.c: Likewise.
1708         * tree-ssa-phiopt.c: Likewise.
1709         * tree-ssa-phiprop.c: Likewise.
1710         * tree-ssa-sccvn.c: Likewise.
1711         * tree-ssa-ter.c: Likewise.
1712         * tree-ssa-threadupdate.c: Likewise.
1713         * tree-ssa.c: Likewise.
1714         * tree-vect-analyze.c: Likewise.
1715         * tree-vect-transform.c: Likewise.
1716         * tree-vectorizer.c: Likewise.
1717         * tree-vn.c: Likewise.
1718         * tree-vrp.c: Likewise.
1719         * tree.c: Likewise.
1720         * tree.def: Likewise.
1721         * tree.h: Likewise.
1722         * unwind-dw2-fde.c: Likewise.
1723         * unwind.inc: Likewise.
1724         * value-prof.c: Likewise.
1725         * vmsdbgout.c: Likewise.
1726
1727 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1728
1729         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1730         always place FP constants in the TOC for TARGET_POWERPC64.
1731         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1732
1733 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1734
1735         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1736         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1737         enable for TARGET_E500_DOUBLE.
1738         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1739         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1740         floating-point modes like integer modes for E500 double.
1741         (rs6000_legitimate_offset_address_p): Likewise.
1742         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1743         addressing for DDmode for E500 double.
1744         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1745         modes as using 64-bits of registers for E500 double.
1746         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1747         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1748         specially for E500 double.
1749         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1750         TDmode for E500 double.
1751         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1752         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1753         (rs6000_split_multireg_move): Do not handle TDmode specially for
1754         E500 double.
1755         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1756         using 64-bit registers for E500 double.
1757         (emit_frame_save): Do not handle DDmode specially for E500 double.
1758         (gen_frame_mem_offset): Likewise.
1759         (rs6000_function_value): Do not call spe_build_register_parallel
1760         for DDmode or TDmode.
1761         (rs6000_libcall_value): Likewise.
1762         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1763         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1764         for E500 double.
1765
1766 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1767
1768         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1769         in comments.
1770
1771 2008-06-04  Junjie Gu <jgu@tensilica.com>
1772
1773         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1774         comparison for frame pointers.
1775
1776 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1777
1778         PR target/27386
1779         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1780
1781 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1782
1783         PR target/30243
1784         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1785         register is already smaller or equal to required mode. 
1786
1787 2008-06-04  Xinliang David Li  <davidxl@google.com>
1788
1789         * tree-call-cdce.c: New file. 
1790         (cond_dead_built_in_calls): New static variable.
1791         (input_domain): New struct.
1792         (check_pow): New function.
1793         (check_builtin_call): Ditto.
1794         (check_target_format): Ditto.
1795         (is_call_dce_candidate): Ditto.
1796         (gen_one_condition): Ditto.
1797         (gen_conditions_for_domain): Ditto.
1798         (get_domain): Ditto.
1799         (gen_conditions_for_pow_cst_base): Ditto.
1800         (gen_conditions_for_pow_int_base): Ditto.
1801         (gen_conditions_for_pow): Ditto.
1802         (get_no_error_domain): Ditto.
1803         (gen_shrink_wrap_conditions): Ditto.
1804         (shrink_wrap_one_built_in_call): Ditto.
1805         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1806         (tree_call_cdce): Ditto.
1807         (gate_call_cdce): Ditto.
1808         (pass_call_cdce): New gimple pass.
1809         * passes.c: (init_optimization_passes): New pass.
1810         * tree-pass.h: New pass declaration.
1811         * opts.c (decode_options): New flag setting.
1812         * common.opt: Add -ftree-builtin-call-dce flag.
1813         * Makefile.in: Add new source file.
1814         * tempvar.def: New tv_id.
1815         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1816
1817 2008-06-04  Richard Guenther  <rguenther@suse.de>
1818
1819         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1820         (is_call_clobbered): Always check var_ann->call_clobbered.
1821         (mark_call_clobbered): Always set var_ann->call_clobbered.
1822         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1823         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1824         (reset_alias_info): Clear call clobbering info on MTAGs and
1825         globals as well.
1826         (set_pt_anything): Set pt_global_mem.
1827         (create_tag_raw): Adjust comment.
1828         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1829
1830 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1831             Maxim Kuvyrkov  <maxim@codesourcery.com>
1832
1833         * config/m68k/m68k.opt (mxgot): New option.
1834         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1835         (m68k_output_addr_const_extra): New.
1836         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1837         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1838         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1839         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1840
1841 2008-06-04  Richard Guenther  <rguenther@suse.de>
1842
1843         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1844         negative or non-representable offsets.
1845
1846 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1847
1848         * config/i386/i386.c (ix86_gen_leave): New.
1849         (ix86_gen_pop1): Likewise.
1850         (ix86_gen_add3): Likewise.
1851         (ix86_gen_sub3): Likewise.
1852         (ix86_gen_sub3_carry): Likewise.
1853         (ix86_gen_one_cmpl2): Likewise.
1854         (ix86_gen_monitor): Likewise.
1855         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1856         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1857         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1858         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1859         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1860         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1861         (ix86_expand_epilogue): Updated.
1862         (print_operand): Handle integer register operand for 'z'.
1863         (ix86_expand_strlensi_unroll_1): Likewise.
1864         (ix86_expand_strlen): Likewise.
1865         (ix86_expand_builtin): Likewise.
1866         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1867         mov{q}/mov{l} and add{q}/add{l}.
1868
1869 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1870
1871         * config/i386/i386.md (P): New mode iterator.
1872         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1873         using P mode iterator.
1874         (DFmode push_operand splitter): Ditto.
1875         (XFmode push_operand splitter): Ditto.
1876         (DFmode float_extend SFmode push_operand splitter): Ditto.
1877         (XFmode float_extend SFmode push_operand splitter): Do not generate
1878         SImode pushes for 64bit target.  Macroize Dimode and SImode
1879         pushes using P mode iterator.
1880         (XFmode float_extend DFmode push_operand splitter): Ditto.
1881
1882 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1883
1884         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1885         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1886         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1887         return type to int.
1888         (ix86_call_abi_override): Remove check for call_used_regs.
1889
1890 2008-06-03  Richard Guenther  <rguenther@suse.de>
1891
1892         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1893         for the lhs of calls if the return type contains pointers.
1894
1895 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1896
1897         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1898         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1899         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1900         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1901         of cfun and DEFAULT_ABI to deceide abi mode.
1902         (DEFAULT_ABI): New.
1903         (REG_PARM_STACK_SPACE): Removed.
1904         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1905         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1906         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1907         (ix86_function_abi): Likewise.
1908         (ix86_function_type_abi): Likewise.
1909         (ix86_call_abi_override): Likewise.
1910         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1911         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1912         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1913         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1914         specific defines.
1915         (X86_64_REGPARM_MAX): New.
1916         (X86_64_SSE_REGPARM_MAX): New.
1917         (X64_REGPARM_MAX): New.
1918         (X64_SSE_REGPARM_MAX): New.
1919         (X86_32_REGPARM_MAX): New.
1920         (X86_32_SSE_REGPARM_MAX): New.
1921         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1922         (ix86_function_regparm): Handle user calling abi.
1923         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1924         by DEFAULT_ABI versus SYSV_ABI check.
1925         (ix86_reg_parm_stack_space): New.
1926         (ix86_function_type_abi): New.
1927         (ix86_call_abi_override): New.
1928         (ix86_function_abi): New.
1929         (ix86_cfun_abi): New.
1930         (init_cumulative_args): Call abi specific initialization.
1931         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1932         (function_arg_64): Extend SSE_REGPARM_MAX check.
1933         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1934         (ix86_pass_by_reference): Likewise.
1935         (ix86_function_value_regno_p): Likewise.
1936         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1937         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1938         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1939         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1940         (setup_incoming_varargs_64): Adjust regparm for call abi.
1941         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1942         (ix86_va_start): Likewise.
1943         (ix86_gimplify_va_arg): Likewise.
1944         (ix86_expand_prologue): Likewise.
1945         (output_pic_addr_const): Likewise.
1946         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1947         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1948         (x86_output_mi_thunk): Likewise.
1949         (x86_function_profiler): Likewise.
1950         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1951         (SYSV_ABI, MS_ABI): New constants.
1952         (DEFAULT_ABI): New.
1953         (init_regs): Add prototype of function in regclass.c file.
1954         (OVERRIDE_ABI_FORMAT): New.
1955         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1956         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1957         (OUTGOING_REG_PARM_STACK_SPACE): New.
1958         (ix86_reg_parm_stack_space): New prototype.
1959         (CUMULATIVE_ARGS): Add call_abi member.
1960         (machine_function): Add call_abi member.
1961         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1962         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1963
1964 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1965
1966         PR target/34879
1967         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1968         (avr_builtin_setjmp_frame_value): New function.
1969         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1970         (nonlocal_goto): Define.
1971
1972 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1973
1974         * config/mips/mips.c (mips_emit_loadgp): Return early if
1975         there is nothing do to, otherwise emit a blockage if
1976         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1977         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1978
1979 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1980
1981         * configure.ac: Drop unneeded backslash ending up in config.in.
1982         * acinclude.m4: Likewise.
1983         * config.in: Regenerate.
1984
1985 2008-05-26  Jan Hubicka  <jh@suse.cz>
1986
1987         * predict.c (maybe_hot_frequency_p): Break out of...
1988         (maybe_hot_bb_p): ... here.
1989         (maybe_hot_edge_p): New.
1990         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1991         * basic-block.h (maybe_hot_edge_p): Declare.
1992
1993 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1994
1995         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1996         (*cmpfp_<mode>_cc): Ditto.
1997         (*fp_jcc_8<mode>_387): Ditto.
1998         (*fop_<MODEF:mode>_2_i387): Ditto.
1999         (*fop_<MODEF:mode>_3_i387): Ditto.
2000         (*fop_xf_2_i387): Ditto.
2001         (*fop_xf_3_i387): Ditto.
2002
2003 2008-06-02  Tomas Bily  <tbily@suse.cz>
2004
2005         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2006
2007 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2008
2009         * config/mips/mips.c (mips_valid_offset_p): New function.
2010         (mips_valid_lo_sum_p): Likewise.
2011         (mips_classify_address): Use them.
2012         (mips_force_address): New function.
2013         (mips_legitimize_address): Use it.
2014         * config/mips/mips.md (MOVE128): New mode iterator.
2015         (movtf): Require TARGET_64BIT.  Remove empty strings.
2016         (*movtf_internal): Rename to...
2017         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2018         of "R" and use {,fp}{load,store} attributes instead of "multi".
2019         Use a separate define_split.
2020         (*movtf_mips16): New pattern.
2021
2022 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2023
2024         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2025         * config/mips/mips.c (mips_expand_before_return): New function.
2026         (mips_expand_epilogue): Call it.
2027         * config/mips/mips.md (return): Turn into a define_expand.
2028         (*return): New insn.
2029
2030 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2031
2032         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2033         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2034         functions.  Do not emit uses and clobbers of CONCATs; individually
2035         use and clobber their operands.
2036         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2037         gen_clobber, emit_use and gen_use.
2038         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2039         (expand_builtin_return): Likewise.
2040         * cfgbuild.c (count_basic_blocks): Likewise.
2041         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2042         * explow.c (emit_stack_restore): Likewise.
2043         * expmed.c (extract_bit_field_1): Likewise.
2044         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2045         (emit_move_multi_word, store_constructor): Likewise.
2046         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2047         (thread_prologue_and_epilogue_insns): Likewise.
2048         * lower-subreg.c (resolve_simple_move): Likewise.
2049         * optabs.c (widen_operand, expand_binop): Likewise.
2050         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2051         * reload.c (find_reloads): Likewise.
2052         * reload1.c (eliminate_regs_in_insn): Likewise.
2053         * stmt.c (expand_nl_goto_receiver): Likewise.
2054         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2055         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2056         * config/arm/arm.c (arm_load_pic_register): Likewise.
2057         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2058         * config/arm/arm.md (untyped_return): Likewise.
2059         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2060         * config/avr/avr.c (expand_prologue): Likewise.
2061         * config/bfin/bfin.c (do_unlink): Likewise.
2062         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2063         * config/cris/cris.c (cris_expand_prologue): Likewise.
2064         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2065         (machopic_legitimize_pic_address): Likewise.
2066         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2067         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2068         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2069         (ix86_expand_convert_uns_didf_sse): Likewise.
2070         (ix86_expand_vector_init_general): Likewise.
2071         * config/ia64/ia64.md (eh_epilogue): Likewise.
2072         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2073         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2074         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2075         (config/iq2000/iq2000.c): Likewise.
2076         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2077         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2078         (builtin_longjmp): Likewise.
2079         * config/mn10300/mn10300.md (call, call_value): Likewise.
2080         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2081         * config/pdp11/pdp11.md (abshi2): Likewise.
2082         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2083         * config/s390/s390.c (s390_emit_prologue): Likewise.
2084         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2085         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2086         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2087         * config/sh/sh.c (prepare_move_operands): Likewise.
2088         (output_stack_adjust, sh_expand_epilogue): Likewise.
2089         (sh_set_return_address, sh_expand_t_scc): Likewise.
2090         * config/sparc/sparc.c (load_pic_register): Likewise.
2091         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2092         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2093         * config/v850/v850.c (expand_epilogue): Likewise.
2094
2095 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2096
2097         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2098         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2099         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2100         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2101         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2102         stack pointer register.
2103         (output_movhi): Remove code for interrupt specific writing to the 
2104         stack pointer register.
2105
2106 2008-05-31  Richard Guenther  <rguenther@suse.de>
2107
2108         PR tree-optimization/34244
2109         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2110         (tree_expr_nonzero_warnv_p): Likewise.
2111         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2112         ssa_name_nonnegative_p.
2113         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2114         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2115         not tree_expr_nonzero_warnv_p.
2116
2117         PR tree-optimization/36262
2118         Revert
2119         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2120
2121         PR tree-optimization/34244
2122         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2123         (record_numbers_of_iterations): New function.
2124         (execute_vrp): Cache the numbers of iterations of loops.
2125         * tree-scalar-evolution.c (scev_reset_except_niters):
2126         New function.
2127         (scev_reset): Use scev_reset_except_niters.
2128         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2129
2130 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2131
2132         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2133         __WORKAROUND_RETS when appropriate.
2134
2135 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2136
2137         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2138         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2139         mode iterator.
2140         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2141         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2142         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2143         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2144         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2145         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2146         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2147         *fop_df_1_sse insn patterns using MODEF mode iterator.
2148         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2149         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2150         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2151         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2152         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2153         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2154         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2155         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2156         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2157         (*fop_xf_5_i387): Ditto.
2158         (*fop_xf_6_i387): Ditto.
2159
2160 2008-05-30  Richard Guenther  <rguenther@suse.de>
2161
2162         * builtins.c (build_string_literal): Avoid generating
2163         a non-gimple_val result.
2164
2165 2008-05-30  DJ Delorie  <dj@redhat.com>
2166
2167         * exec-tool.in: Use an environment variable (private) instead of a
2168         file (shared) as a semaphore, so as to not break parallel builds.
2169
2170 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2171
2172         * optabs.c (maybe_encapsulate_block): Remove.
2173         (emit_libcall_block): Adjust accordingly.
2174         * optabs.h (maybe_encapsulate_block): Remove prototype.
2175
2176         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2177         Don't use maybe_encapsulate_block.
2178
2179 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2180
2181         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2182         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2183         rtx is a SYMBOL_REF before calling get_pool_constant.
2184
2185 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2186
2187         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2188
2189 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2190
2191         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2192         rather than OS names to choose INO_T_EQ definition.
2193         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2194         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2195
2196 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2197
2198         PR target/36348
2199         * config/darwin-f.c: New.
2200         * config/t-darwin: Added rule to build darwin-f.o.
2201         * config.gcc: Defined new variable, fortran_target_objs.
2202         (*-*-darwin*): Set fortran_target_objs.
2203         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2204         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2205         * configure: Regenerated.
2206
2207 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2208
2209         PR target/35771
2210         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2211         canonical type if needed.
2212
2213 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2214
2215         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2216
2217 2008-05-29  Richard Guenther  <rguenther@suse.de>
2218
2219         PR tree-optimization/36343
2220         PR tree-optimization/36346
2221         PR tree-optimization/36347
2222         * tree-flow.h (clobber_what_p_points_to): Declare.
2223         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2224         pointed-to variable is dereferenced is irrelevant to whether
2225         the pointer can access the pointed-to variable.
2226         (clobber_what_p_points_to): New function.
2227         * tree-ssa-alias.c (set_initial_properties): Use it.
2228         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2229         call clobber check for NMTs.
2230
2231 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2232         
2233         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2234         for printing gcov_type.
2235
2236 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2237
2238         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2239         and the eh region information.
2240         * value-prof.c (gimple_move_stmt_histograms): New function.
2241         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2242
2243 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2244
2245         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2246
2247 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2248
2249         * value-prof.c (tree_ic_transform): Print counts.
2250         * tree-profile.c (tree_gen_ic_func_profiler):
2251         Clear __gcov_indreict_call_callee variable to avoid misattribution
2252         of the profile.
2253
2254 2008-05-28  Rafael Espindola  <espindola@google.com>
2255
2256         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2257         invalid sharing.
2258
2259 2008-05-28  Richard Guenther  <rguenther@suse.de>
2260
2261         PR tree-optimization/36339
2262         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2263         and clobbering code out of the loop.
2264
2265 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2266
2267         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2268         letters defined.
2269
2270         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2271         s390_contiguous_bitmask_p, s390_symref_operand_p,
2272         s390_check_symref_alignment, s390_reload_larl_operand,
2273         s390_reload_symref_address): New functions.
2274         (s390_branch_condition_mnemonic): Support compare and branch
2275         instructions.
2276         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2277         and 'W' constraints.
2278         (s390_secondary_reload): Add secondary reloads for unaligned
2279         symbol refs or symbol refs to floating point or QI/TI mode
2280         integer values.
2281         (legitimate_address_p): Accept symbol references as addresses.
2282         (s390_expand_insv): Use rotate and insert selected bits
2283         instruction for insv when building for z10.
2284         (print_operand_address): Handle symbol ref addresses.
2285         (print_operand): Output modifier 'c' added for signed byte values.
2286         (s390_encode_section_info): Mark symbol refs with
2287         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2288
2289         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2290         (length attribute): RRF, RRR have 4 byte length.
2291         (FPALL, INTALL): New mode iterators added.
2292         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2293         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2294         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2295         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2296         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2297         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2298         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2299         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2300         instructions.
2301         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2302         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2303         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2304         reload<INTALL:mode><P:mode>_toreg_z10,
2305         reload<FPALL:mode><P:mode>_tomem_z10,
2306         reload<FPALL:mode><P:mode>_toreg_z10,
2307         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2308         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2309         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2310         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2311         definition.
2312         (movmem, clrmem, cmpmem): New splitters added.
2313
2314         * config/s390/predicates.md (larl_operand): Use
2315         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2316         SYMBOL_REF_ALIGN1_P.
2317         (s390_signed_integer_comparison,
2318         s390_unsigned_integer_comparison): New predicates.
2319
2320         * config/s390/s390-protos.h (s390_check_symref_alignment,
2321         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2322         s390_reload_symref_address,
2323         s390_compare_and_branch_condition_mask): Prototypes added.
2324
2325         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2326         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2327         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2328
2329 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2330
2331         * config/s390/s390.c (z10_cost): New cost function for z10.
2332         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2333         (s390_issue_rate): Adjust issue rate for z10.
2334         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2335         (processor_flags): Add PF_Z10.
2336         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2337         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2338         * gcc/config.gcc: Add z10.
2339
2340 2008-05-28  Richard Guenther  <rguenther@suse.de>
2341
2342         PR tree-optimization/36291
2343         * tree-flow. h (struct gimple_df): Remove var_anns member.
2344         * tree-flow-inline.h (gimple_var_anns): Remove.
2345         (var_ann): Simplify.
2346         * tree-dfa.c (create_var_ann): Simplify.
2347         (remove_referenced_var): Clear alias info from var_anns of globals.
2348         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2349         (delete_tree_ssa): Clear alias info from var_anns of globals.
2350         Do not free var_anns.
2351         (var_ann_eq): Remove.
2352         (var_ann_hash): Likewise.
2353
2354 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2355
2356         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2357         and loongson2f entries.
2358         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2359         * config/mips/mips.h (processor_type): Add Loongson-2E
2360         and Loongson-2F entries.
2361         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2362         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2363         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2364         * doc/invoke.texi (MIPS Options): Document loongson2e
2365         and loongson2f processor names.
2366
2367 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2368
2369         PR target/35767
2370         PR target/35771
2371         * config/i386/i386.c (ix86_function_arg_boundary): Use
2372         alignment of canonical type.
2373         (ix86_expand_vector_move): Check unaligned memory access for
2374         all SSE modes.
2375
2376 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2377
2378         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2379         Moved to the front of file.
2380
2381 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2382             H.J. Lu  <hongjiu.lu@intel.com>
2383
2384         * dwarf2out.c (current_fde): New.
2385         (add_cfi): Use it.
2386         (lookup_cfa:): Likewise.
2387         (dwarf2out_end_epilogue): Likewise.
2388         (dwarf2out_note_section_used): Likewise.
2389
2390 2008-05-27  Michael Matz  <matz@suse.de>
2391
2392         PR c++/27975
2393         * c.opt (Wenum-compare): New warning option.
2394         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2395
2396 2008-05-27  Michael Matz  <matz@suse.de>
2397
2398         PR middle-end/36326
2399         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2400         non-BLKmode types.
2401         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2402         into memory as tail calls.
2403
2404 2008-05-27  Richard Guenther  <rguenther@suse.de>
2405
2406         PR tree-optimization/36339
2407         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2408         pointers cause all addressable variables to be call clobbered.
2409
2410 2008-05-27  Richard Guenther  <rguenther@suse.de>
2411
2412         PR tree-optimization/36245
2413         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2414
2415 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2416
2417         * config/s390/s390.md: Replace all occurences of the 'm'
2418         constraint with 'RT'.
2419
2420 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2421
2422         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2423         definitions added.
2424         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2425         "*movdi_64".
2426         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2427         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2428         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2429
2430 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2431
2432         * reload.c: (find_reloads): Skip alternatives according to the
2433         "enabled" attribute. Constify the constraint variable.
2434         * recog.c (get_attr_enabled): Add default implementation.
2435         (extract_insn): Set the alternative_enabled_p array
2436         in the recog_data struct.
2437         (preprocess_constraints, constrain_operands): Skip
2438         alternatives according to the "enabled" attribute
2439         * recog.h (struct recog_data): New field alternative_enabled_p.
2440         (skip_alternative): New inline function.
2441         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2442         (record_reg_classes): Skip alternative according to the
2443         "enabled" attribute.
2444
2445         * doc/md.texi: Add documention for the "enabled" attribute.
2446
2447 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2448
2449         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2450         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2451         constraint with TARGET_MEM_CONSTRAINT.
2452         * recog.c (asm_operand_ok, preprocess_constraints,
2453         constrain_operands): Likewise.
2454         * regclass.c (record_reg_classes): Likewise.
2455         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2456         * reload1.c (maybe_fix_stack_asms): Likewise.
2457         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2458         * recog.h: Adjust comment.
2459         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2460         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2461         * doc/md.texi: Add a note to description of 'm' constraint.
2462         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2463
2464 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2465
2466         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2467         that the bitfield is of integral type before testing its precision.
2468
2469 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2470             Sa Liu  <saliu@de.ibm.com> 
2471
2472         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2473         __modti3, __udivti3, __umodti3 and __udivmodti4.
2474         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2475         that implement TImode mul and div functions.
2476         * config/spu/multi3.c: New. Implement __multi3.
2477         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2478         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2479         functions on SPU.
2480
2481 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2482
2483         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2484         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2485         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2486         tls_sysv_suffix): New mode and mode attribute iterators.
2487         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2488         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2489         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2490         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2491         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2492         iterators.
2493
2494 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2495
2496         PR tree-optimization/36329
2497         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2498         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2499         * cgraphbuild.c (initialize_inline_failed): Use the latter
2500         macro in lieu of the former.
2501         * ipa-inline.c (cgraph_mark_inline): Likewise.
2502         (cgraph_decide_inlining_of_small_function): Likewise.
2503         (cgraph_decide_inlining): Likewise.
2504         (cgraph_decide_inlining_incrementally): Likewise.
2505
2506 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2507             Anatoly Sokolov  <aesok@post.ru>
2508
2509         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2510         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2511         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2512         optimization for 'avr6' architecture.
2513
2514 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2515
2516         PR target/34932
2517         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2518
2519 2008-05-26  Richard Guenther  <rguenther@suse.de>
2520
2521         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2522         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2523
2524 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2525
2526         PR middle-end/36253
2527         * caller-save.c (insert_restore): Verify alignment of spill space.
2528         (insert_save): Likewise.
2529         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2530         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2531         (STACK_SLOT_ALIGNMENT): Likewise.
2532         * function.c (LOCAL_ALIGNMENT): Removed.
2533         (get_stack_local_alignment): New.
2534         (assign_stack_local): Use it.  Set alignment on stack slot.
2535         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2536         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2537         (STACK_SLOT_ALIGNMENT): New.
2538         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2539         stack slot in XFmode.
2540
2541         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2542
2543 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2544
2545         PR/36321
2546         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2547         argument operand in rax isn't removed.
2548
2549 2008-05-26  Richard Guenther  <rguenther@suse.de>
2550
2551         PR middle-end/36300
2552         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2553         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2554
2555 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2556
2557         PR bootstrap/36331
2558         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2559
2560 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2561
2562         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2563         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2564
2565 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2566
2567         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2568         build a trampoline if we don't want one.
2569         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2570         return zero for nested functions if we don't want a trampoline.
2571
2572 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2573
2574         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2575
2576 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2577
2578         PR fortran/18428
2579         * c.opt: Removed undocumented option '-lang-fortran'.
2580         * c-common.h: Removed global variable 'lang_fortran'.
2581         * c-opts.c (c_common_handle_option): Removed code to handle
2582         option '-lang-fortran'. Updated includes.
2583         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2584         definition of '__GFORTRAN__'.
2585         (define__GNUC__): Reimplemented to use BASEVER and
2586         cpp_define_formatted.
2587         (builtin_define_with_value_n): Removed.
2588         * c-incpath.h: Renamed to ...
2589         * incpath.h: ... this.
2590         * c-incpath.c: Renamed to ...
2591         * incpath.c: ... this. Updated includes.
2592         * fix-header.c: Updated includes.
2593         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2594         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2595         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2596
2597 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2598
2599         * tree.h: Update the table of flags used on tree nodes.
2600         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2601         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2602         (FORCED_LABEL): Add access check.
2603         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2604         (ASM_INPUT_P): Likewise.
2605         (ASM_VOLATILE_P): Likewise.
2606         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2607         (OMP_SECTION_LAST): Access private_flag directly.
2608         (OMP_RETURN_NOWAIT): Likewise.
2609         (OMP_PARALLEL_COMBINED): Likewise.
2610         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2611         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2612         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2613         deprecated_flag directly.
2614
2615 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2616
2617         * final.c (frame_pointer_needed): Removed.
2618         * flags.h (frame_pointer_needed): Likewise.
2619
2620         * function.h (rtl_data): Add frame_pointer_needed.
2621         (frame_pointer_needed): New.
2622
2623 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2624
2625         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2626
2627 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2628
2629         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2630         SRC is a REG.
2631
2632 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2633
2634         * c-common.c (strip_array_types): Move function to..
2635         * tree.c: ..here.
2636         (get_inner_array_type): Delete.
2637         * c-common.h (strip_array_types): Move declaration to..
2638         * tree.h: ..here.
2639         (get_inner_array_type): Delete.
2640         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2641         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2642         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2643         * config/pa/pa.c (emit_move_sequence): Likewise.
2644
2645 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2646
2647         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2648         attribute to 34.
2649
2650 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2651
2652         * function.c: Include target hook for nonlocal_goto frame value.
2653
2654 2008-05-24  Richard Guenther  <rguenther@suse.de>
2655
2656         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2657         variable can be only accessed through a pointer or a union.
2658
2659 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2660
2661         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2662         * doc/extend.texi: Likewise.
2663
2664 2008-05-23  DJ Delorie  <dj@redhat.com>
2665
2666         * config/m32c/jump.md (untyped_call): Add.
2667
2668         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2669         for A24 to PSImode.
2670         (m32c_address_cost): Detail costs for indirect offsets.
2671
2672 2008-05-23  Rafael Espindola  <espindola@google.com>
2673
2674         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2675         if a node is a SUBREG.
2676         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2677         is a SUBREG.
2678
2679 2008-05-23  Paul Brook  <paul@codesourcery.com>
2680             Carlos O'Donell  <carlos@codesourcery.com>
2681
2682         * doc/extend.texi: Clarify use of __attribute__((naked)).
2683         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2684         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2685         * function.c (use_register_for_decl): Use
2686         targetm.calls.allocate_stack_slots_for_args.
2687         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2688         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2689         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2690
2691 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2692
2693         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2694
2695 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2696
2697         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2698         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2699         is only rounded once.
2700
2701 2008-05-23  Richard Guenther  <rguenther@suse.de>
2702
2703         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2704
2705 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2706             Jakub Jelinek  <jakub@redhat.com>
2707
2708         PR target/36079
2709         * configure.ac: Handle --enable-cld.
2710         * configure: Regenerated.
2711         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2712         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2713         (ix86_current_function_needs_cld): New define.
2714         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2715         (cld): New isns pattern.
2716         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2717         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2718         * config/i386/i386.opt (mcld): New option.
2719         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2720         TARGET_CLD and ix86_current_function_needs_cld.
2721         (override_options): Use -mcld by default for 32-bit code if
2722         USE_IX86_CLD.
2723
2724         * doc/install.texi (Options specification): Document --enable-cld.
2725         * doc/invoke.texi (Machine Dependent Options)
2726         [i386 and x86-64 Options]: Add -mcld option.
2727         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2728
2729 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2730         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2731         (return_in_memory_64): Likewise.
2732         (return_in_memory_ms_64): Likewise.
2733
2734 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2735
2736         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2737         * builtins.c (fold_builtin_fpclassify): New.
2738         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2739         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2740         * c-common.c (handle_type_generic_attribute): Adjust to accept
2741         fixed arguments before an elipsis.
2742         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2743         * doc/extend.texi: Document __builtin_fpclassify.
2744
2745 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2746
2747         * omp-low.c (gate_expand_omp_ssa): Remove.
2748         (pass_expand_omp_ssa): Remove.
2749         (gate_expand_omp): Do not check for flag_openmp_ssa.
2750         * common.opt (-fopenmp-ssa): Remove.
2751         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2752
2753 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2754
2755         * config/sh/sh.opt (mfixed-range): New option.
2756         * config/sh/sh-protos.h (sh_fix_range): Declare.
2757         * config/sh/sh.c (sh_fix_range): New function.
2758         * config/sh/sh.h (sh_fixed_range_str): Declare.
2759         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2760         is not empty.
2761         * doc/invoke.texi (SH Options): Document -mfixed-range.
2762
2763 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2764
2765         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2766         it before the redeclaration.
2767
2768 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2769
2770         * config/avr/avr.c (get_sequence_length): Add new function.
2771         (expand_prologue, expand_epilogue): Remove duplicate code.
2772
2773 2008-05-22  Rafael Espindola  <espindola@google.com>
2774
2775         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2776         sharing.
2777
2778 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2779
2780         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2781         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2782
2783         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2784         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2785         (vect_update_misalignment_for_peel): Likewise.
2786         (vector_alignment_reachable_p): Likewise.
2787         * tree-vect-transform.c (vectorizable_load): Likewise.
2788         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2789         (get_vectype_for_scalar_type): Pass mode of scalar_type
2790         to UNITS_PER_SIMD_WORD.
2791
2792         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2793         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2794         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2795         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2796         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2797
2798 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2799
2800         PR tree-optimization/36293
2801         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2802         if the first load must be skipped because of a gap.
2803
2804 2008-05-22  Richard Guenther  <rguenther@suse.de>
2805
2806         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2807         more cases of offset disambiguation that is possible if
2808         strict-aliasing rules apply.
2809         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2810         for basic offset and type-based disambiguation.
2811
2812 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2813
2814         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2815         ix86_expand_vector_set on V16QImode for SSE4.1.
2816
2817 2008-05-21  Tom Tromey  <tromey@redhat.com>
2818
2819         * c.opt (Wimport): Mark as undocumented.
2820         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2821         -Wno-import.
2822         (Warning Options): Likewise.
2823         * doc/cppopts.texi: Don't mention -Wimport.
2824
2825 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2826
2827         PR tree-optimization/36287
2828         PR tree-optimization/36286
2829         * lambda-code.c (build_access_matrix): Do not use the loop->num
2830         for computing the number of induction variables: use the loop depth
2831         instead.
2832
2833 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2834
2835         PR/36280
2836         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2837         option -f(no-)leading-underscore.
2838
2839 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2840
2841         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2842         GET_MODE_NUNITS (mode).
2843
2844 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2845
2846         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2847         (-mmulhw): Add 464 to description.
2848         (-mdlmzb): Likewise.
2849         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2850         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2851         464fp entries.
2852         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2853         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2854         * config/rs6000/rs6000.md: Update comments for 464.
2855
2856 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2857
2858         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2859
2860 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2861
2862         * config/i386/sse.md (vec_extractv4sf): Removed.
2863         (vec_extractv2df): Likewise.
2864         (vec_extractv2di): Likewise.
2865         (vec_extractv4si): Likewise.
2866         (vec_extractv8hi): Likewise.
2867         (vec_extractv16qi): Likewise.
2868         (vec_extract<mode>): New.
2869
2870 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2871
2872         * config/i386/sse.md (vec_setv4sf): Removed.
2873         (vec_setv2df): Likewise.
2874         (vec_setv2di): Likewise.
2875         (vec_setv4si): Likewise.
2876         (vec_setv8hi): Likewise.
2877         (vec_setv16qi): Likewise.
2878         (vec_set<mode>): New.
2879
2880 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2881
2882         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2883         goto for vec_concat and vec_interleave.
2884
2885 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2886
2887         * config/i386/sse.md (vec_initv4sf): Removed.
2888         (vec_initv2df): Likewise.
2889         (vec_initv2di): Likewise.
2890         (vec_initv4si): Likewise.
2891         (vec_initv8hi): Likewise.
2892         (vec_initv16qi): Likewise.
2893         (vec_init<mode>): New.
2894
2895 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2896
2897         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2898
2899 2008-05-21  Tom Tromey  <tromey@redhat.com>
2900
2901         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2902         (zone_find_object_offset): Likewise.
2903         (gt_ggc_m_S): Likewise.
2904         (highest_bit): Likewise.
2905         * ggc-page.c (gt_ggc_m_S): New function.
2906         * stringpool.c (string_stack): Remove.
2907         (init_stringpool): Update.
2908         (ggc_alloc_string): Use ggc_alloc.
2909         (maybe_delete_ident): New function.
2910         (ggc_purge_stringpool): Likewise.
2911         (gt_ggc_m_S): Remove.
2912         * ggc-common.c (ggc_protect_identifiers): New global.
2913         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2914         ggc_protect_identifiers.
2915         * ggc.h (ggc_protect_identifiers): Declare.
2916         (gt_ggc_m_S): Update.
2917         (ggc_purge_stringpool): Declare.
2918         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2919         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2920         special case.
2921         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2922
2923 2008-05-21  David S. Miller  <davem@davemloft.net>
2924
2925         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2926         tmake_file.
2927
2928 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2929
2930         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2931         once finished.
2932
2933 2008-05-20  David Daney  <ddaney@avtrex.com>
2934
2935         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2936         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2937         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2938         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2939         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2940         (atomic_hiqi_op): New define_code_iterator.
2941         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2942         mips_expand_compare_and_swap_12.
2943         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2944         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2945         (sync_<optab><mode>, sync_old_<optab><mode>,
2946         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2947         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2948         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2949         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2950         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2951         (test_and_set_12): New insn.
2952         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2953         sync_new_<optab><mode>, sync_old_nand<mode>,
2954         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2955         clobber to operand 0 for SI and DI mode insns.
2956         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2957         mips_gen_fn_4): New typedefs.
2958         (mips_gen_fn_ptrs): Define new union type.
2959         (mips_expand_compare_and_swap_12): Remove declaration.
2960         (mips_expand_atomic_qihi): Declare function.
2961         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2962         (mips_expand_atomic_qihi): ... this.  Use new generator function
2963         parameter.
2964         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2965         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2966         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2967         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2968         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2969         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2970         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2971         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2972         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2973         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2974         New macros.
2975
2976 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2977
2978         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2979         the missing break.
2980
2981 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2982
2983         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2984         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2985         (avr_attribute_table): Add 'OS_main' function attribute.
2986         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2987         functions with 'OS_main' attribute.
2988
2989 2008-05-20  Richard Guenther  <rguenther@suse.de>
2990
2991         PR tree-optimization/35204
2992         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2993         helper, split out from ...
2994         (DFS): ... here.  Make the DFS walk non-recursive.
2995
2996 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2997             Jan Sjodin  <jan.sjodin@amd.com>
2998
2999         PR tree-optimization/36181
3000         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3001         (parallelize_loops): Don't parallelize when the loop has vector
3002         phi nodes.
3003
3004 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3005             Sebastian Pop  <sebastian.pop@amd.com>
3006
3007         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3008         matrix, and never look at the tree representation of the memory
3009         accesses.
3010         (linear_transform_loops): Computes parameters and access matrices.
3011         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3012         when fails.
3013         (access_matrix_get_index_for_parameter): New.
3014         * tree-data-ref.h (struct access_matrix): New.
3015         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3016         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3017         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3018         am_vector_index_for_loop): New.
3019         (struct data_reference): Add field access_matrix.
3020         (DR_ACCESS_MATRIX): New.
3021         (compute_data_dependences_for_loop): Update declaration.
3022         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3023         * lambda.h (lambda_vector_vec_p): Declared.
3024         * lambda-code.c: Depend on pointer-set.h.
3025         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3026         av_for_af_base, av_for_af, build_access_matrix,
3027         lambda_compute_access_matrices): New.
3028         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3029
3030 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3031
3032         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3033         $SOURCEDIR/include.
3034
3035 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3036             Sebastian Pop  <sebastian.pop@amd.com>
3037
3038         PR tree-optimization/36206
3039         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3040         FOLD_CONVERSIONS.
3041         (instantiate_scev_1): Rename flags to fold_conversions.
3042         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3043         outeside instantiation_loop.
3044         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3045         (evolution_function_is_affine_or_constant_p): Removed.
3046         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3047         instantiate_scev.
3048         (analyze_siv_subscript): Pass in the loop nest number.
3049         Call evolution_function_is_affine_in_loop instead of 
3050         evolution_function_is_affine_p.
3051         (analyze_overlapping_iterations): Pass in the loop nest number.
3052
3053 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3054             Sebastian Pop  <sebastian.pop@amd.com>
3055
3056         PR tree-optimization/36206
3057         * tree-chrec.h (chrec_fold_op): New.
3058         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3059         and other trees.
3060
3061 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3062
3063         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3064         (DIRS_EQ): New.
3065         (remove_duplicates): Do not set inode on non-inode systems.
3066         Use DIRS_EQ.
3067
3068 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3069
3070         * config.gcc (tm_file): Update comments about relative pathnames.
3071
3072 2008-05-20  Richard Guenther  <rguenther@suse.de>
3073
3074         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3075         * tree-ssa-sccvn.c (process_scc): Likewise.
3076         * tree-ssa-sink.c (execute_sink_code): Likewise.
3077         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3078         * tree-vrp.c (process_assert_insertions): Likewise.
3079         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3080         (perform_tree_ssa_dce): Likewise.
3081         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3082         (dump_dominator_optimization_stats): Likewise.
3083         * tree-vectorizer.c (vectorize_loops): Likewise.
3084
3085 2008-05-20  Richard Guenther  <rguenther@suse.de>
3086
3087         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3088
3089 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3090
3091         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3092         (ix86_i386elf_return_in_memory): Likewise.
3093         (ix86_i386interix_return_in_memory): Likewise.
3094         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3095         (SUBTARGET_RETURN_IN_MEMORY): New.
3096         * config/i386/i386elf.h: Likewise.
3097         * config/i386/ptx4-i.h: Likewise.
3098         * config/i386/sol2-10.h: Likewise.
3099         * config/i386/sysv4.h: Likewise.
3100         * config/i386/vx-common.h: Likewise.
3101         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3102         * config/i386/i386.c (ix86_return_in_memory): Made static and
3103         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3104         (ix86_i386elf_return_in_memory): Removed.
3105         (ix86_i386interix_return_in_memory): Removed.
3106         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3107         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3108
3109 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3110
3111         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3112
3113 2008-05-19  Xinliang David Li  <davidxl@google.com>
3114
3115         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3116         * opts.c: Ditto.
3117         * common.opt: Ditto.
3118         * doc/invoke.texi: Ditto.
3119
3120 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3121
3122         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3123         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3124
3125 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3126
3127         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3128         sizes of operand array from 8/4 to 4/2.
3129         (ix86_expand_vector_init_general): Change size of operand array
3130         from 32 to 16.  Remove op0, op1 and half_mode.
3131
3132 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3133
3134         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3135         (ix86_expand_vector_init_interleave): Likewise.
3136         (ix86_expand_vector_init_general): Use them.  Assert
3137         word_mode == SImode when n_words == 4.
3138
3139 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3140
3141         * config/i386/i386.c (ix86_secondary_reload): New static function.
3142         (TARGET_SECONDARY_RELOAD): New define.
3143         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3144         * config/i386/i386.md (reload_outqi): Remove.
3145
3146 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3147
3148         PR middle-end/35509
3149         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3150         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3151         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3152         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3153         (fold_builtin_1): Likewise.
3154         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3155         c-common.c (check_builtin_function_arguments): Handle
3156         BUILT_IN_ISINF_SIGN.
3157         * doc/extend.texi: Document __builtin_isinf_sign.
3158         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3159
3160 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3161
3162         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3163         EH cleanup at the end of the pass, search for those that have been
3164         turned into forwarder blocks and do the cleanup on their successor.
3165
3166 2008-05-18  Richard Guenther  <rguenther@suse.de>
3167
3168         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3169         pointers to sizetype and vice versa.
3170
3171 2008-05-18 Xinliang David Li   <davidxl@google.com>
3172
3173         * gcc/tree-ssa-dce.c: Coding style fix.
3174         (check_pow): Documentation comment. 
3175         (check_log): Documenation comment. Coding style fix.
3176         (is_unnecessary_except_errno_call): Ditto.
3177         (gen_conditions_for_pow): Ditto.
3178         (gen_conditions_for_log): Ditto.
3179         (gen_shrink_wrap_conditions): Ditto.
3180         (shrink_wrap_one_built_in_calls): Ditto.
3181         * gcc/doc/invoke.texi: Better documentation string.
3182         * ChangeLog: Fix wrong change log entries from 
3183         May 17 checkin on function call DCE.
3184
3185 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3186
3187         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3188
3189 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3190
3191         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3192         * df-problems.c (simulation routines): Fixed block comment to
3193         properly say how to add forwards scanning functions.
3194         
3195 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3196
3197         * tree-inline.c (setup_one_parameter): Remove dead code.
3198
3199 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3200
3201         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3202         a BIT_AND_EXPR only for an INTEGER_TYPE.
3203
3204 2008-05-17 Xinliang David Li   <davidxl@google.com>
3205
3206         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3207         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3208         functions to check for eliminating math functions that are pure 
3209         except for setting errno.
3210         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3211         general condition expressions for shrink-wrapping pow/log calls.
3212         (gen_shrink_wrap_conditions): Ditto.
3213         (shrink_wrap_one_built_in_call): Ditto.
3214         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3215         (mark_operand_necessary): If debugging, output if OP is necessary.
3216         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3217         unnecessary.
3218         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3219         opt level >= 2.
3220         * gcc/common.opt: New user flag -ftree-builtin-dce.
3221         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3222
3223 2008-05-16  David S. Miller  <davem@davemloft.net>
3224
3225         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3226         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3227
3228 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3229
3230         PR target/36246
3231         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3232
3233 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3234
3235         * ifcvt.c (dead_or_predicable): Rename
3236         df_simulate_one_insn_backwards to df_simulate_one_insn.
3237         * recog.c (peephole2_optimize): Ditto.
3238         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3239         Ditto.
3240         * df.h: Rename df_simulate_one_insn_backwards to
3241         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3242         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3243         scanning of defs and uses.
3244         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3245         (df_simulate_one_insn_forwards): Removed.
3246
3247 2008-05-16  Doug Kwan  <dougkwan@google.com>
3248
3249         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3250         QNaN & SNaN.
3251         (real_from_string): Handle NaNs and Inf as approriate.
3252
3253 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3254
3255         * doc/gty.texi (Source Files Containing Type Information): Note
3256         that headers should appear first in the gtfiles list.
3257
3258 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3259
3260         * tree.def (COND_EXEC): Properly documented this code.
3261
3262 2008-05-16  Diego Novillo  <dnovillo@google.com>
3263
3264         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3265         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3266         the new field.
3267
3268 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3269
3270         * tree-ssa-dse (max_stmt_uid): Removed.
3271         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3272         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3273         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3274         * function.h (cfun.last_stmt_uid): New field.
3275         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3276         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3277         New functions.
3278         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3279         (create_stmt_ann): Initialize the ann->uid field.
3280         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3281         with new calls.
3282         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3283
3284 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3285
3286         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3287         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3288         (init_empty_tree_cfg): Call it.
3289
3290 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3291
3292         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3293         Update all users.
3294
3295 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3296
3297         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3298         * tree-dump.c (dump_options): New verbose option.
3299         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3300         Add verbose dump.
3301         * tree-pass.h (TDF_VERBOSE): New dump flag.
3302         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3303         (tree-flow.h): Added include.
3304         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3305
3306 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3307
3308         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3309
3310         From Jie Zhang  <jie.zhang@analog.com>
3311         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3312         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3313         mcpu=bf561-none and mcpu=bf561-0.2.
3314         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3315         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3316         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3317         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3318         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3319         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3320         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3321         option.
3322         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3323         (cputype_selected): Remove.
3324         (bfin_handle_option): Don't use cputype_selected.
3325         (override_options): When no mcpu option, enable all workarounds.
3326         Don't use bfin_workarounds.
3327         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3328         processor type.
3329         (DEFAULT_CPU_TYPE): Don't define.
3330
3331 2008-05-16  Richard Guenther  <rguenther@suse.de>
3332
3333         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3334         on deletion of the last stmt.
3335
3336 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3337
3338         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3339         V8HImode for SSE2 and V16QImode for SSE4.1.
3340
3341 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3342
3343         * cgraph.h (compute_inline_parameters): Made public.
3344         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3345         variable_generate_summary, function_write_summary,
3346         variable_write_summary, variable_read_summary.  Added generate_summary,
3347         write_summary, read_summary.
3348         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3349         pass_ipa_inline.function_generate_summary, to
3350         compute_inline_parameters. 
3351         * ipa-inline.c (compute_inline_parameters): Made public and added
3352         node parameter.
3353         (compute_inline_parameters_for_current): New function.
3354         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3355         (inline_generate_summary): Removed parameter and made to loop over
3356         all cgraph nodes.
3357         (pass_ipa_inline): Updated for new IPA_PASS structure.
3358         * passes.c (execute_ipa_summary_passes): Now is called once per
3359         pass rather than once per node*pass.
3360         
3361 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3362
3363         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3364         avr_have_mul_p, avr_asm_only_p): Remove variables.
3365         (avr_override_options): Remove initialization of removed variables.
3366         (avr_file_start):  Convert removed variables to fields of 
3367         'struct base_arch_s *avr_current_arch'. 
3368         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3369         (AVR_HAVE_MUL): (Ditto.).
3370         (AVR_HAVE_MOVW): (Ditto.).
3371         (AVR_HAVE_LPMX): (Ditto.). 
3372         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3373         avr_asm_only_p): Remove declaration.
3374
3375 2008-05-15  Diego Novillo  <dnovillo@google.com>
3376
3377         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3378         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3379
3380 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3381
3382         PR middle-end/36194
3383         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3384         Don't call record_truncated_value from here.
3385         (record_truncated_value): Turn it into a for_each_rtx callback.
3386         (record_truncated_values): New function.
3387         (combine_instructions): Call note_uses with record_truncated_values.
3388         Change name of check_conversion to check_promoted_subreg. 
3389
3390 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3391
3392         * doc/sourcebuild.texi: Document support for torture tests.
3393
3394 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3395
3396         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3397         to alternative 4 of operand 2.
3398
3399 2008-05-15  Richard Guenther  <rguenther@suse.de>
3400
3401         * tree-pass.h (current_pass): Declare.
3402         (get_pass_for_id): Likewise.
3403         * passes.c (passes_by_id, passes_by_id_size): New globals.
3404         (set_pass_for_id): New function.
3405         (get_pass_for_id): Likewise.
3406         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3407         (execute_function_todo): Flush per function statistics.
3408         * toplev.c (compile_file): Init statistics.
3409         (general_init): Do early statistics initialization.
3410         (finalize): Finish statistics.
3411         * statistics.h (statistics_early_init): Declare.
3412         (statistics_init): Likewise.
3413         (statistics_fini): Likewise.
3414         (statistics_fini_pass): Likewise.
3415         (statistics_counter_event): Likewise.
3416         (statistics_histogram_event): Likewise.
3417         * statistics.c: New file.
3418         * Makefile.in (OBJS-common): Add statistics.o.
3419         (statistics.o): Add dependencies.
3420         * doc/invoke.texi (-fdump-statistics): Document.
3421
3422         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3423         (insert): Likewise.
3424         (execute_pre): Use statistics_counter_event.
3425         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3426         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3427
3428 2008-05-15  Diego Novillo  <dnovillo@google.com>
3429
3430         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3431
3432         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3433         * tree-ssa-alias.c (new_type_alias): Remove references to
3434         sub-variables from comment.
3435         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3436
3437 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3438
3439         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3440         attribute to 1 only for insertps alternative.
3441
3442 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3443
3444         * config/bfin/bfin.md (loadbytes): New pattern.
3445         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3446         (bfin_init_builtins): Initialize it.
3447         (bdesc_1arg): Add it.
3448
3449 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3450
3451         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3452         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3453         * testsuite/lib/target-supports.exp: Add
3454         check_effective_target_fortran_integer_16.
3455
3456 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3457
3458         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3459         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3460         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3461         (TARGET_RETURN_IN_MEMORY): Define.
3462
3463 2008-05-15  Richard Guenther  <rguenther@suse.de>
3464
3465         PR middle-end/36244
3466         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3467         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3468         represent unmodifiable vars.
3469
3470 2008-05-15  Richard Guenther  <rguenther@suse.de>
3471
3472         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3473         INDIRECT_REF and TARGET_MEM_REF.
3474         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3475         TARGET_MEM_REF.
3476
3477 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3478             H.J. Lu  <hongjiu.lu@intel.com>
3479
3480         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3481         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3482         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3483         insn alternatives.  Add missing alternatives.
3484         (*vec_concatv2di_rex64_sse4_1): Likewise.
3485         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3486         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3487         Require TARGET_SSE.
3488
3489 2008-05-15  Richard Guenther  <rguenther@suse.de>
3490
3491         PR tree-optimization/36009
3492         PR tree-optimization/36204
3493         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3494         (determine_invariantness_stmt): Record the loop a store is
3495         always executed in.
3496         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3497         dependency.
3498
3499 2008-05-15  Richard Guenther  <rguenther@suse.de>
3500
3501         PR tree-optimization/34330
3502         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3503         through the pointer will alias the SMT.
3504
3505 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
3506
3507         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3508
3509 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3510
3511         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3512
3513 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3514             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3515
3516         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3517         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3518         (vashl_optab): New optab for vector/vector shifts.
3519         (vashr_optab): Ditto.
3520         (vlshr_optab): Ditto.
3521         (vrotl_optab): Ditto.
3522         (vrotr_optab): Ditto.
3523         (optab_subtype): New enum for optab_for_tree_code call.
3524         (optab_for_tree_code): Add enum optab_subtype argument.
3525
3526         * optabs.c (optab_for_tree_code): Take an additional argument to
3527         distinguish between a vector shift by a scalar and vector shift by
3528         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
3529         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
3530         vector shift by a vector.
3531         (expand_widen_pattern_expr): Pass additional argument to
3532         optab_for_tree_code.
3533
3534         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3535         vrotl_optab, vrotr_optab.
3536
3537         * expr.c (expand_expr_real_1): Update calls to
3538         optab_for_tree_code to distinguish between vector shifted by a
3539         scalar and vector shifted by a vector.
3540         * tree-vectorizer.c (supportable_widening_operation): Ditto.
3541         (supportable_narrowing_operation): Ditto.
3542         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3543         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3544         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3545         (vect_create_epilog_for_reduction): Ditto.
3546         (vectorizable_reduction): Ditto.
3547         (vectorizable_operation): Ditto.
3548         (vect_strided_store_supported): Ditto.
3549         (vect_strided_load_supported): Ditto.
3550         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3551         * expmed.c (expand_shift): Ditto.
3552
3553         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3554         scalar type.
3555         (ashr@var{m}3): Ditto.
3556         (vashl@var{m}3): Document new vector/vector shift standard name.
3557         (vashr@var{m}3): Ditto.
3558         (vlshr@var{m}3): Ditto.
3559         (vrotl@var{m}3): Ditto.
3560         (vrotr@var{m}3): Ditto.
3561
3562         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3563         (PPERM_INVERT): Ditto.
3564         (PPERM_REVERSE): Ditto.
3565         (PPERM_REV_INV): Ditto.
3566         (PPERM_ZERO): Ditto.
3567         (PPERM_ONES): Ditto.
3568         (PPERM_SIGN): Ditto.
3569         (PPERM_INV_SIGN): Ditto.
3570         (PPERM_SRC1): Ditto.
3571         (PPERM_SRC2): Ditto.
3572
3573         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3574         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3575         allows a memory operand to be the value being added, and split it
3576         to improve vectorization.
3577         (sse5_pmacsdqh_mem): Ditto.
3578         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3579         (sse5_mulv2div2di3_high): Ditto.
3580         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3581         (vec_pack_trunc_v4si): Ditto.
3582         (vec_pack_trunc_v2di): Ditto.
3583         (sse5_pcmov_<mode>): Remove code that tried to use use
3584         andps/andnps instead of pcmov.
3585         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3586         pmacsdqh instructions.
3587         (vec_widen_smult_lo_v4si): Ditto.
3588
3589         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3590         (PPERM_INVERT): Ditto.
3591         (PPERM_REVERSE): Ditto.
3592         (PPERM_REV_INV): Ditto.
3593         (PPERM_ZERO): Ditto.
3594         (PPERM_ONES): Ditto.
3595         (PPERM_SIGN): Ditto.
3596         (PPERM_INV_SIGN): Ditto.
3597         (PPERM_SRC1): Ditto.
3598         (PPERM_SRC2): Ditto.
3599         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3600         true/false tests.
3601         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3602         comparisons.
3603         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3604         says ignore whether the last reference is a memory operand.
3605
3606 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3607             Paolo Bonzini <bonzini at gnu dot org>
3608
3609         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3610         shift patterns.
3611
3612         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3613         (vlshr<mode>3): Rename from vlshr<mode>3.
3614         (vashr<mode>3): Rename from vashr<mode>3.
3615         (mulv4sf3): Change the names of vector shift patterns.
3616         (mulv4si3): Ditto.
3617         (negv4sf2): Ditt.
3618
3619         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3620         shift insns.
3621
3622         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3623         (SI_SHLHI): Ditto.
3624         (SI_SHL): Ditto.
3625         (SI_SHLI): Ditto.
3626         (SI_ROTH): Ditto.
3627         (SI_ROTHI): Ditto.
3628         (SI_ROT): Ditto.
3629         (SI_ROTI): Ditto.
3630         (SPU_RL_0): Ditto.
3631         (SPU_RL_1): Ditto.
3632         (SPU_RL_2): Ditto.
3633         (SPU_RL_3): Ditto.
3634         (SPU_RL_4): Ditto.
3635         (SPU_RL_5): Ditto.
3636         (SPU_RL_6): Ditto.
3637         (SPU_RL_7): Ditto.
3638         (SPU_SL_0): Ditto.
3639         (SPU_SL_1): Ditto.
3640         (SPU_SL_2): Ditto.
3641         (SPU_SL_3): Ditto.
3642         (SPU_SL_4): Ditto.
3643         (SPU_SL_5): Ditto.
3644         (SPU_SL_6): Ditto.
3645         (SPU_SL_7): Ditto.
3646
3647         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3648         (floatunssidf2_internal): Change vector/vector shift names.
3649         (floatunsdidf2_internal): Ditto.
3650         (mulv8hi3): Ditto.
3651         (ashrdi3): Ditto.
3652         (ashrti3): Ditto.
3653         (cgt_df): Ditto.
3654         (cgt_v2df): Ditto.
3655         (dftsv): Ditto.
3656         (vashl<mode>3): Rename from ashl<mode>3.
3657         (vashr<mode>3): Rename from ashr<mode>3.
3658         (vlshr<mode>3): Rename from lshr<mode>3.
3659         (vrotl<mode>3): Rename from rotl<mode>3.
3660
3661 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3662
3663         PR target/36224
3664         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3665         multiply gives the wrong value when doing widening multiplies.
3666         (vec_widen_smult_lo_v4si): Ditto.
3667
3668 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3669
3670         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3671         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3672         emit_library_call_value. 
3673         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3674         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3675         * calls.c (initialize_argument_information, precompute_arguments, 
3676         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3677         (precompute_arguments): Removed flags parameter.
3678         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3679         
3680 2008-05-14  Richard Guenther  <rguenther@suse.de>
3681
3682         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3683         Make sure to register the store if the use is a PHI_NODE.
3684
3685 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3686
3687         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3688         memory if the component is to be referenced in BLKmode according
3689         to get_inner_reference.
3690
3691 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3692
3693         * calls.c (emit_library_call_value_1): Restore code clearing
3694         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3695
3696 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3697             Nicolas Roche  <roche@adacore.com>
3698
3699         * configure.ac: Add support for a "gcc_subdir" variable in
3700         config-lang.in, to denote a subdirectory where the language/GCC
3701         integration files are to be found.
3702         * configure: Regenerate.
3703
3704 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3705
3706         PR tree-optimization/36098
3707         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3708         value for the first load in the group in case of a gap.
3709         (vect_build_slp_tree): Check that there are no gaps in loads.
3710
3711 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3712
3713         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3714         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3715         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3716         emit_insn and remove unneeded code to construct extra args.
3717         (emit_no_conflict_block): Removed.
3718         * optabls.h: (emit_no_conflict_block): Removed.
3719         * cse.c (cse_extended_basic_block): Remove search for
3720         REG_NO_CONFLICT note.
3721         * global.c: Removed incorrect comment added in revision 117.
3722         * expr.c (convert_move): Change call to emit_no_conflict_block to
3723         emit_insn.
3724         * recog.c: Change comments so that they do not mention
3725         REG_NO_CONFLICT.
3726         * local_alloc.c (combine_regs): Removed last parameter.
3727         (no_conflict_p): Removed.
3728         (block_alloc): Removed note, no_conflict_combined_regno and set
3729         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3730         (combine_regs): Removed already_dead and code to look for
3731         REG_NO_CONFLICT notes.
3732         * lower_subreg (remove_retval_note): Removed code to look for
3733         REG_NO_CONFLICT block.
3734         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3735         (resolve_clobber): Remove code to process libcalls that have
3736         REG_NO_CONFLICT notes.
3737         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3738         case.
3739         * combine.c (can_combine_p, distribute_notes):  Removed
3740         REG_NO_CONFLICT case.
3741         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3742         to emit_insns.
3743         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3744         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3745         Ditto.
3746         * reg-notes.def (NO_CONFLICT): Removed.
3747
3748 2008-05-14  David S. Miller  <davem@davemloft.net>
3749
3750         * config/sparc/sparc.c (sparc_profile_hook): If
3751         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3752         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3753         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3754
3755 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3756
3757         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3758
3759 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3760
3761         PR target/36222
3762         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3763         and op1 expansion before vector concat to have less live pseudos.
3764
3765 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3766
3767         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3768         ix86_expand_vector_set if supported.
3769
3770 2008-05-13  Diego Novillo  <dnovillo@google.com>
3771             Kenneth Zadeck  <zadeck@naturalbridge.com>
3772
3773         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3774
3775         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3776         phinodes_print_statistics, init_ssanames, fini_ssanames,
3777         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3778         release_ssa_name, release_defs, replace_ssa_name_symbol,
3779         ssanames_print_statistics): Move ...
3780         * tree-flow.h: ... here.
3781         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3782         Use FN instead of cfun.
3783         (make_ssa_name_fn): Rename from make_ssa_name.
3784         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3785         * tree-flow-inline.h (make_ssa_name): Move from
3786         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3787         * omp-low.c (expand_omp_parallel):
3788         * tree-flow-inline.h (redirect_edge_var_map_result):
3789         * tree-ssa.c (init_tree_ssa): Add argument FN.
3790         Use it instead of cfun.  Update all users.
3791
3792 2008-05-13  Tom Tromey  <tromey@redhat.com>
3793
3794         PR preprocessor/22168:
3795         * doc/cpp.texi (Top): Update menu.
3796         (Alternatives to Wrapper #ifndef): New node.
3797         (Other Directives): Document deprecation.
3798         (Obsolete Features): Remove menu.
3799         (Assertions): Merge node into Obsolete Features.
3800         (Obsolete once-only headers): Move earlier; rename to Alternatives
3801         to Wrapper #ifndef.
3802         * doc/cppopts.texi: Update.
3803         * c.opt (Wdeprecated): Enable for C and ObjC.
3804         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3805         (C++ Dialect Options): Move -Wno-deprecated from here to...
3806         (Warning Options): ... here.
3807
3808 2008-05-13  Richard Guenther  <rguenther@suse.de>
3809
3810         PR middle-end/36227
3811         * fold-const.c (fold_sign_changed_comparison): Do not allow
3812         changes in pointer-ness.
3813
3814 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3815
3816         PR target/24713
3817         * config/sh/sh.c (sh_expand_prologue): Don't clear
3818         RTX_FRAME_RELATED_P for push insns.
3819
3820 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3821
3822         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3823
3824 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3825
3826         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3827         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3828         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3829
3830 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3831
3832         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3833         (*vec_concatv4sf_sse): This.
3834         (*sse2_concatv2si): Renamed to ...
3835         (*vec_concatv2si_sse2): This.
3836         (*sse1_concatv2si): Renamed to ...
3837         (*vec_concatv2si_sse): This.
3838         (*vec_concatv2di_rex): Renamed to ...
3839         (*vec_concatv2di_rex64): This.
3840         (*vec_concatv2si_sse4_1): New.
3841         (*vec_concatv2di_rex64_sse4_1): Likewise.
3842
3843 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3844
3845         PR rtl-optimization/36111
3846         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3847         that was created for swappable operands.
3848
3849 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3850
3851         PR ada/36001
3852         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3853         * configure.ac: Add call to ACX_PROG_GNAT.
3854
3855 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3856
3857         * optc-gen.awk: Fix comment typo.
3858
3859 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3860
3861         * pretty-print.c (pp_integer_with_precision): Use
3862         HOST_LONG_LONG_FORMAT.
3863
3864 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3865
3866         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3867                 
3868 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3869
3870         * config/i386/i386.c (bdesc_ptest): Removed.
3871         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3872         (bdesc_args): Add __builtin_ia32_ptestz128,
3873         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3874         (ix86_init_mmx_sse_builtins): Updated.
3875         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3876         (ix86_expand_builtin): Updated.
3877
3878 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3879
3880         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3881         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3882
3883 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3884
3885         * value-prof.c (interesting_stringop_to_profile): Do not
3886         return early for BUILT_IN_MEMPCPY.
3887
3888 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3889
3890         * calls.c (expand_call): Don't use callgraph to increase
3891         preferred_stack_boundary.
3892
3893         * cgraph.h (cgraph_rtl_info): Use unsigned on
3894         preferred_incoming_stack_boundary.
3895
3896         * final.c (rest_of_clean_state): Use unsigned on
3897         preferred_stack_boundary.
3898
3899 2008-05-09  Tom Tromey  <tromey@redhat.com>
3900
3901         PR preprocessor/22231:
3902         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3903         proceeding.
3904
3905 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3906
3907         PR tree-optimization/36129
3908         * tree-ssa-ccp.c: Include value-prof.h.
3909         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3910         built-in function was folded to a constant.
3911         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3912
3913 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3914             Sebastian Pop  <sebastian.pop@amd.com>
3915
3916         * tree-scalar-evolution.c: Document instantiate_scev.
3917         (instantiate_parameters_1): Renamed instantiate_scev_1.
3918         Don't use the same loop for instantiation_loop and evolution_loop.
3919         (instantiate_scev): New.
3920         (instantiate_parameters): Moved...
3921         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3922         same loop twice.  Maintains the semantics for this function.
3923         * tree-scalar-evolution.h (instantiate_scev): Declare.
3924         (instantiate_parameters): ...here.  Now static inline.
3925         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3926         instead of resolve_mixers.
3927
3928 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3929
3930         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3931
3932 2008-05-09  Tomas Bily  <tbily@suse.cz>
3933
3934         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3935         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3936         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3937         * c-common.c (c_common_truthvalue_conversion): Likewise.
3938         * tree-object-size.c (compute_object_offset): Likewise.
3939         * tree-inline.c (estimate_num_insns_1): Likewise.
3940         * varasm.c (const_hash_1, compare_constant, copy_constant)
3941         (compute_reloc_for_constant, output_addressed_constants)
3942         (initializer_constant_valid_p): Likewise.
3943         * c-omp.c (check_omp_for_incr_expr): Likewise.
3944         * gimplify.c (gimplify_expr): Likewise.
3945         * c-typeck.c (c_finish_return): Likewise.
3946         * tree-vectorizer.c (supportable_widening_operation)
3947         (supportable_narrowing_operation): Likewise.
3948         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3949         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3950         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3951         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3952         (descr_info_loc): Likewise.
3953         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3954         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3955         (fold_unary): Likewise.
3956         * builtins.c (get_pointer_alignment): Likewise.
3957         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3958         (instantiate_parameters_1): Likewise.
3959         * tree.c (expr_align, stabilize_reference): Likewise.
3960         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3961         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3962         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3963         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3964         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3965         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3966         Likewise.
3967         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3968         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3969         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3970         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3971         (forward_propagate_comparison)
3972         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3973         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3974         * emit-rtl.c (component_ref_for_mem_expr)
3975         (set_mem_attributes_minus_bitpos): Likewise.
3976         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3977         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3978         Likewise.
3979         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3980         (build_function_call, pointer_diff, build_compound_expr)
3981         (c_finish_return): Likewise.
3982         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3983         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3984         Likewise.
3985         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3986         * expr.c (is_aligning_offset): Likewise.
3987         * tree-ssa-alias.c (is_escape_site): Likewise.
3988         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3989         (check_all_va_list_escapes): Likewise.
3990         * tree-ssa-loop-ivopts.c (determine_base_object)
3991         (determine_common_wider_type): Likewise.
3992         * dojump.c (do_jump): Likewise.
3993         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3994         * tree-gimple.c (is_gimple_cast): Likewise.
3995         * fold-const.c (decode_field_reference, )
3996         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3997         (fold_binary): Likewise.
3998         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3999         (already_warned_in_frontend_p): Likewise.
4000         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4001         * tree.c (really_constant_p, get_unwidened): Likewise.
4002         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4003         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4004         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4005         Likewise.
4006         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4007         CONVERT_EXPR_P.
4008         (CONVERT_EXPR_P): Define.
4009         (CASE_CONVERT): Define.
4010         
4011 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4012
4013         PR middle-end/36117
4014         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4015         (delete_unmarked_insns): When deleting a call, call
4016         delete_unreachable_blocks.
4017         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4018         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4019
4020 2008-05-08  Richard Guenther  <rguenther@suse.de>
4021
4022         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4023         (-ftree-salias): Likewise.
4024         (salias-max-implicit-fields): Remove param documentation.
4025         (salias-max-array-elements): Likewise.
4026         * tree-pass.h (pass_create_structure_vars): Remove.
4027         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4028         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4029         * tree-ssa-alias.c (create_structure_vars): Remove.
4030         (gate_structure_vars): Likewise.
4031         (pass_create_structure_vars): Likewise.
4032         (gate_build_alias): Likewise.
4033         (pass_build_alias): Adjust to run always and dump the function.
4034         * common.opt (ftree-salias): Hide.
4035         * passes.c (init_optimization_passes): Remove
4036         pass_create_structure_vars, adjust comment.
4037         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4038         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4039         * opts.c (decode_options): Do not set flag_tree_salias.
4040         (common_handle_option): Add OPT_ftree_salias to the backward
4041         compatibility section.
4042
4043 2008-05-08  Richard Guenther  <rguenther@suse.de>
4044
4045         * tree-flow-inline.h (var_can_have_subvars): Move ...
4046         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4047         * tree-flow.h (var_can_have_subvars): Remove.
4048         (push_fields_onto_fieldstack): Remove.
4049         (sort_fieldstack): Likewise.
4050         (struct fieldoff): Move ...
4051         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4052         alias_set and base_for_components fields.
4053         (sort_fieldstack): Make static.
4054         (push_fields_onto_fieldstack): Likewise.  Remove code that
4055         handles anything but RECORD_TYPEs.  Remove alias_set and
4056         base_for_components handling.
4057         (create_variable_info_for): Adjust.
4058
4059 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4060
4061         * common.opt (Wframe-larger-than=): Shorten the help message
4062         to one line.
4063         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4064
4065 2008-05-08  Rafael Espindola  <espindola@google.com>
4066
4067         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4068         trap.
4069         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4070         trap and that both operands are gimple values.
4071         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4072         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4073         is a fp operation.
4074
4075 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4076
4077         * read-rtl.c (join_c_conditions): Return the first string if the
4078         two strings are equal.
4079
4080 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4081
4082         * gensupport.h (pred_data): Add a "num_codes" field.
4083         (add_predicate_code): Declare.
4084         * gensupport.c (add_predicate_code): New function.
4085         (std_pred_table): Add an "allows_const_p" field.
4086         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4087         Remove the (incomplete) list of such codes from the codes field.
4088         (init_predicate_table): Use add_predicate_code.  Add all
4089         RTX_CONST_OBJs if allows_const_p is true.
4090         * genrecog.c (process_define_predicate): Use add_predicate_code.
4091
4092 2008-05-08  David Daney  <ddaney@avtrex.com>
4093             Richard Sandiford  <rsandifo@nildram.co.uk>
4094         
4095         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4096         special case of constant zero operands.
4097         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4098         old and new values.  Special case constant zero values.
4099         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4100         fails.
4101         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4102         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4103
4104 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4105
4106         PR target/36090
4107         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4108         similar RTX_CONST_OBJ before CONST_INT.
4109
4110 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4111
4112         * stmt.c (expand_stack_restore): Change sa mode if needed.
4113
4114 2008-05-08  Richard Guenther  <rguenther@suse.de>
4115
4116         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4117         return type to bool.
4118         (ix86_sol10_return_in_memory): Likewise.
4119         (ix86_i386elf_return_in_memory): Likewise.
4120         (ix86_i386interix_return_in_memory): Likewise.
4121         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4122         (ix86_sol10_return_in_memory): Likewise.
4123         (ix86_i386elf_return_in_memory): Likewise.
4124         (ix86_i386interix_return_in_memory): Likewise.
4125
4126 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4127
4128         PR bootstrap/36180
4129         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4130         fndecl argument.
4131         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4132         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4133         declared in front.
4134
4135 2008-05-08  Richard Guenther  <rguenther@suse.de>
4136
4137         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4138         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4139         (DR_SUBVARS): Remove.
4140         * tree-dfa.c (dump_subvars_for): Remove.
4141         (debug_subvars_for): Likewise.
4142         (dump_variable): Do not dump subvars.
4143         (remove_referenced_var): Do not remove subvars.
4144         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4145         (lookup_subvars_for_var): Remove.
4146         (get_subvars_for_var): Likewise.
4147         (get_subvars_at): Likewise.
4148         (get_first_overlapping_subvar): Likewise.
4149         (overlap_subvar): Likewise.
4150         * tree-flow.h (subvar_t): Remove.
4151         (struct var_ann_d): Remove subvars field.
4152         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4153         argument.  Remove special handling of SFTs.
4154         (compute_tag_properties): Likewise.
4155         (set_initial_properties): Likewise.
4156         (compute_call_clobbered): Likewise.
4157         (count_mem_refs): Likewise.
4158         (compute_memory_partitions): Likewise.
4159         (compute_flow_insensitive_aliasing): Likewise.
4160         (setup_pointers_and_addressables): Likewise.
4161         (new_type_alias): Likewise.
4162         (struct used_part): Remove.
4163         (used_portions): Likewise.
4164         (struct used_part_map): Likewise.
4165         (used_part_map_eq): Likewise.
4166         (used_part_map_hash): Likewise.
4167         (free_used_part_map): Likewise.
4168         (up_lookup): Likewise.
4169         (up_insert): Likewise.
4170         (get_or_create_used_part_for): Likewise.
4171         (create_sft): Likewise.
4172         (create_overlap_variables_for): Likewise.
4173         (find_used_portions): Likewise.
4174         (create_structure_vars): Likewise.
4175         * tree.def (STRUCT_FIELD_TAG): Remove.
4176         * tree.h (MTAG_P): Adjust.
4177         (struct tree_memory_tag): Remove base_for_components and
4178         unpartitionable flags.
4179         (struct tree_struct_field_tag): Remove.
4180         (SFT_PARENT_VAR): Likewise.
4181         (SFT_OFFSET): Likewise.
4182         (SFT_SIZE): Likewise.
4183         (SFT_NONADDRESSABLE_P): Likewise.
4184         (SFT_ALIAS_SET): Likewise.
4185         (SFT_UNPARTITIONABLE_P): Likewise.
4186         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4187         (union tree_node): Remove sft field.
4188         * alias.c (get_alias_set): Remove special handling of SFTs.
4189         * print-tree.c (print_node): Remove handling of SFTs.
4190         * tree-dump.c (dequeue_and_dump): Likewise.
4191         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4192         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4193         * tree-predcom.c (set_alias_info): Do not set subvars.
4194         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4195         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4196         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4197         (add_vars_for_offset): Remove.
4198         (add_virtual_operand): Remove special handling of SFTs.
4199         (add_call_clobber_ops): Likewise.
4200         (add_call_read_ops): Likewise.
4201         (get_asm_expr_operands): Likewise.
4202         (get_modify_stmt_operands): Likewise.
4203         (get_expr_operands): Likewise.
4204         (add_to_addressable_set): Likewise.
4205         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4206         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4207         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4208         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4209         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4210         (tree_node_structure): Likewise.
4211         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4212         handling of SFTs.
4213         (find_what_p_points_to): Likewise.
4214
4215 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4216
4217         * config/spu/spu.md: Fixed subti3 pattern.
4218
4219 2008-05-08  Richard Guenther  <rguenther@suse.de>
4220
4221         PR middle-end/36154
4222         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4223         sure to create a representative for trailing arrays for PTA.
4224
4225 2008-05-08  Richard Guenther  <rguenther@suse.de>
4226
4227         PR middle-end/36172
4228         * fold-const.c (operand_equal_p): Two objects which types
4229         differ in pointerness are not equal.
4230
4231 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4232
4233         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4234         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4235         (emit_library_call_value_1): Add new variable fndecl initialized by
4236         NULL_TREE. It should be the decl type of orgfun, but this information
4237         seems not to be available here, so it uses the default calling abi.
4238         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4239         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4240         by TARGET_RETURN_IN_MEMORY.
4241         * config/i386/i386-interix.h: Likewise.
4242         * config/i386/i386.h: Likewise.
4243         * config/i386/i386elf.h: Likewise.
4244         * config/i386/ptx4-i.h: Likewise.
4245         * config/i386/sol2-10.h: Likewise.
4246         * config/i386/sysv4.h: Likewise.
4247         * config/i386/vx-common.h: Likewise.
4248         * config/cris/cris.h: Removed #if 0 clause.
4249         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4250         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4251         argument.
4252         (ix86_sol10_return_in_memory): Likewise.
4253         (ix86_i386elf_return_in_memory): New.
4254         (ix86_i386interix_return_in_memory): New.
4255         * config/mt/mt-protos.h (mt_return_in_memory): New.
4256         * config/mt/mt.c: Likewise.
4257         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4258         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4259         * config/bfin/bfin.h: Likewise.
4260         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4261         argument.
4262         * config/bfin/bfin.c: Likewise.
4263         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4264         * config/alpha/unicosmk.h: Likewise.
4265         * config/i386/cygming.h: Likewise.
4266         * config/iq2000/iq2000.h: Likewise.
4267         * config/mips/mips.h: Likewise.
4268         * config/mn10300/mn10300.h: Likewise.
4269         * config/rs6000/rs6000.h: Likewise.
4270         * config/score/score.h: Likewise.
4271         * config/spu/spu.h: Likewise.
4272         * config/v850/v850.h: Likewise.
4273         * defaults.h: Likewise.
4274         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4275         * expr.c (emit_block_move): Adjust use of
4276         OUTGOING_REG_PARM_STACK_SPACE.
4277         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4278         OUTGOING_REG_PARM_STACK_SPACE.
4279         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4280
4281 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4282
4283         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4284         on OMP_RETURN for OMP_FOR.
4285
4286         PR debug/35896
4287         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4288         (fortran_common): New function.
4289         (gen_variable_die): Call fortran_common instead of common_check,
4290         adjust for it returning tree instead of rtx.  Formatting.
4291
4292 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4293
4294         PR rtl/7335
4295         PR rtl/33826
4296         * see.c (see_copy_insn): Copy new pure const attributes for new call.
4297         * c-decl.c (merge_decls): Ditto.
4298         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
4299         to RTL_CONST_OR_PURE_CALL_P.
4300         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
4301         Initialized DECL_LOOPING_CONST_PURE.
4302         (process_call_operands): Set tree_side_effects properly.
4303         * tree.h (TREE_READONLY_DECL_P): Removed.
4304         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4305         (DECL_LOOPING_OR_CONST_P): New macro.
4306         (struct tree_function_decl): Added looping_const_or_pure_p.
4307         (ECF_*) Renumbered.
4308         (ECF_LOOPING_OR_CONST_P): New macro.
4309         * rtlanal.c (pure_const_p): Removed.
4310         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4311         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4312         to RTL_CONST_CALL_P.
4313         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4314         (check_decl, check_tree, check_call, scan_function): Initialize
4315         looping.
4316         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4317         (static_execute): Set looping true for recursive functions.
4318         Undo setting state to IPA_NEITHER for recursive functions.
4319         * cse.c (cse_insn): 
4320         * ifcvt.c (noce_can_store_speculate_p): Changed
4321         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4322         RTL_CONST_OR_PURE_CALL_P.
4323         * dse.c (scan_insn): Ditto.
4324         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4325         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4326         RTL_CONST_OR_PURE_CALL_P.
4327         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4328         pure_call_p to RTL_CONST_CALL_P.
4329         * gimplify.c (gimplify_call_expr): Clear side effects for
4330         non-looping pure and constant calls.
4331         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4332         (flags_from_decl_or_type): Set ecf flags from decl flags.
4333         (initialize_argument_information): Turn off
4334         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4335         Change const to pure if callee_copies is true rather than just
4336         turning off const.
4337         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4338         way of marking pure calls.
4339         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4340         Remove hack that was supposed to fix pr7335 and remove old
4341         way of marking pure calls.
4342         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4343         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4344         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4345         RTL_CONST_OR_PURE_CALL_P.
4346         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4347         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4348         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4349         * sched-deps.c (schedule_analyze): Ditto.
4350         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4351         return_val field of calls to represent pure and const function info.
4352         (CONST_OR_PURE_CALL_P): Deleted macro.
4353         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4354         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4355         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4356         TREE_READONLY.
4357         * tree-optimize.c (execute_fixup_cfg): Added test for
4358         ECF_LOOPING_CONST_OR_PURE.
4359         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4360         DECL_PURE_P.
4361         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4362         effects for looping pure or const calls.
4363         (verify_gimple_expr): Added verification code. 
4364         * config/alpha/alpha.c (alpha_legitimize_address,
4365         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4366         RTL_CONST_CALL_P.
4367         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4368         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4369         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4370         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4371         RTL_CONST_OR_PURE_CALL_P.
4372         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4373         and const calls to be deleted.
4374
4375 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4376
4377         PR target/35714
4378         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4379         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4380         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4381         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4382         to handle nonimmediate operands.
4383         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4384         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4385         to handle nonimmediate operands.
4386         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4387         (mmx_pmulhrwv4hi3): New expander.  Use
4388         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4389         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4390         (sse2_umulv1siv1di3): New expander.  Use
4391         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4392         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4393         (mmx_eq<mode>3): New expander.  Use
4394         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4395         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4396         (mmx_uavgv8qi3): New expander.  Use
4397         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4398         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4399         (mmx_uavgv4hi3): New expander.  Use
4400         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4401
4402         * config/i386/sse.md
4403         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
4404         to handle nonimmediate operands.
4405         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
4406         to handle nonimmediate operands.
4407         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
4408         to handle nonimmediate operands.
4409         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
4410         to handle nonimmediate operands.
4411         (sse2_unpckhpd_exp): New expander.  Use
4412         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4413         (sse2_unpcklpd_exp): New expander.  Use
4414         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4415         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
4416         to handle nonimmediate operands.
4417         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
4418         to handle nonimmediate operands.
4419         (*sse2_<plusminus_insn><mode>3): Rename from
4420         sse2_<plusminus_insn><mode>3 insn pattern.
4421         (sse2_<plusminus_insn><mode>3): New expander.  Use
4422         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4423         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4424         (sse2_umulv2siv2di3): New expander.  Use
4425         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4426         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4427         (sse4_1_mulv2siv2di3): New expander.  Use
4428         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4429         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4430         (sse2_pmaddwd): New expander.  Use
4431         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4432         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4433         (sse2_eq<mode>3): New expander.  Use
4434         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4435         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4436         (sse4_1_eqv2di3): New expander.  Use
4437         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4438         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4439         (sse2_uavgv16qi3): New expander.  Use
4440         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4441         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4442         (sse2_uavgv16qi3): New expander.  Use
4443         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4444         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4445         (sse2_uavgv8hi3): New expander.  Use
4446         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4447         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4448         (ssse3_pmulhrswv8hi3): New expander.  Use
4449         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4450         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4451         (ssse3_pmulhrswv4hi3): New expander.  Use
4452         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4453
4454         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4455         (<sse>_vmmul<mode>3): Ditto.
4456         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4457         (divv2df3): Ditto.
4458         (ssse3_pmaddubsw128): Use register_operand for operand 1.
4459         (ssse3_pmaddubsw): Ditto.
4460
4461         * config/i386/i386.c (struct_builtin_description)
4462         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4463         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4464         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4465         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4466         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4467         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4468         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4469         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4470         (ix86_fixup_binary_operands): Assert that src1
4471         and src2 must have the same mode when swapped.
4472         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4473         and ix86_binary_operator_ok.  Do not force operands in registers
4474         when optimizing.
4475
4476 2008-05-07  Jan Hubicka  <jh@suse.cz>
4477
4478         * cgraph.c (dump_cgraph_node): Update.
4479         * cgraph.h (cgraph_local_info): Break out inline summary.
4480         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4481         hook.
4482         * ipa-inline (inline_summary): New accestor function.
4483         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4484         cgraph_decide_inlining, compute_inline_parameters): Update.
4485         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4486
4487 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4488
4489         Cleanup ColdFire scheduling support and add V4 pipeline model.
4490
4491         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
4492         (define_attr cpu): Add cfv4 value.
4493         (define_attr type, define_attr type1): Merge into a single 'type'
4494         attribute.  Update all uses.
4495         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
4496         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
4497         Update all uses.
4498         (define_attr opx_mem, define_attr opy_mem): Remove.
4499         (define_attr op_mem): Clean up, update comment.
4500         (define_attr size): Use specific values instead of general int.
4501         (define_attr guess, define_attr split): Remove.  Update all uses.
4502         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
4503         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
4504         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
4505         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
4506         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
4507         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
4508         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
4509         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
4510         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
4511         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
4512         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
4513         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
4514         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
4515         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
4516         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
4517         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
4518         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
4519         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
4520         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
4521         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
4522         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
4523         Update or set attributes.
4524         (stack_tie): New fake instruction.
4525
4526         * config/m68k/m68k.h (TUNE_CFV4): New macro.
4527         (m68k_sched_attr_size): Update declaration.
4528         (m68k_sched_attr_type2): Remove.
4529         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
4530         Declare new bypass predicates.
4531
4532         * config/m68k/m68k.c (m68k_sched_issue_rate,
4533         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
4534         implementations.
4535         (TARGET_SCHED_ISSUE_RATE,
4536         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
4537         (override_options): Handle scheduling for ColdFire V4 core.
4538         (m68k_expand_prologue): Emit stack_tie.
4539         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
4540         'OP_TYPE_FPN'.  Update all uses.
4541         (sched_guess_p): Remove.
4542         (sched_address_type): Handle symbolic addresses.
4543         (sched_get_operand): New static function.
4544         (sched_operand_type): Merge into sched_attr_op_type.
4545         (sched_attr_op_type): Handle FP registers, handle quick constants,
4546         update.
4547         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
4548         (m68k_sched_attr_size): Update.  Move logic to ...
4549         (sched_get_attr_size_int): New static function.
4550         (sched_get_opxy_mem_type): New static function.
4551         (m68k_sched_attr_op_mem): Update.
4552         (m68k_sched_attr_type2): Remove.
4553         (sched_cfv4_bypass_data): New static variable.
4554         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
4555         (m68k_sched_issue_rate): Implement scheduler hook.
4556         (struct _sched_ib: enabled_p): New field.
4557         (m68k_sched_variable_issue): Update.  Handle V4.
4558         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
4559         sched_dump_class_func_t, sched_dump_split_class,
4560         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
4561         sched_dump_dfa_class, m68k_sched_dump): Remove.
4562         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
4563         hook.
4564         (m68k_sched_init_global): Remove statisctics dumping, introduce
4565         sanity check that all instructions have pipeline reservations.  Handle
4566         ColdFire V4 core.
4567         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4568         Handle ColdFire V4 core.
4569         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
4570         New static functions.
4571         (m68k_sched_address_bypass_p): New bypass predicate.
4572         (sched_get_indexed_address_scale): New static function.
4573         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
4574
4575         * cf.md: Update comments.
4576         (define_attr type2): Remove.  Use 'type' attribute instead.
4577         Update all uses.
4578         (cf_ib): Rename to cfv123_ib.  Update all uses.
4579         (cf_oep): Rename to cfv123_oep.  Update all uses.
4580         (cf_chr): Rename to cfv123_chr.  Update all uses.
4581         (cf_mem): Rename to cfv123_mem.  Update all uses.
4582         (cf_mac): Move to more appropriate place.
4583         (cfv123_guess): New automaton and cpu_unit.
4584         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
4585         Update uses of 'size' attribute.  Handle before reload scheduling.
4586         (cfv123_guess): New dummy reservation for unhandled instructions.
4587         (cfv4_*): Pipeline description of ColdFire V4 core.
4588         (ignore): New reservation to handle 'ignore' type.
4589
4590 2008-05-07  Ian Lance Taylor  <iant@google.com>
4591
4592         PR middle-end/36013
4593         * gimplify.c (find_single_pointer_decl_1): Don't look through
4594         indirections.
4595         (find_single_pointer_decl): Adjust comments.
4596
4597 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4598
4599         PR middle-end/36137
4600         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
4601         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
4602
4603         PR middle-end/36106
4604         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
4605         integral type rather than floating point, then VIEW_CONVERT_EXPR
4606         to the floating point type.
4607
4608 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4609
4610         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
4611         TFmode op0 to register.
4612
4613 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
4614
4615         * c-decl.c (grokdeclarator): Comment typo.
4616
4617 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
4618
4619         * tree-flow.h: Remove prototype for computed_goto_p.
4620         * tree-cfg.c (computed_goto_p): Make static.
4621
4622 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4623
4624         PR target/35657
4625         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4626         (contains_aligned_value_p): This.  Handle _Decimal128.
4627         (ix86_function_arg_boundary): Only align _Decimal128 to its
4628         natural boundary and handle it properly.
4629
4630 2008-05-06  Martin Jambor  <mjambor@suse.cz>
4631
4632         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
4633         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
4634         (ipcp_method_set_orig_node): Removed.
4635         (ipcp_cval_get_cvalue_type): Removed.
4636         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
4637         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
4638         (ipcp_cval_set_cvalue_type): Removed.
4639         (ipcp_cval_get_cvalue): Removed.
4640         (ipcp_cval_set_cvalue): Removed.
4641         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
4642         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
4643         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
4644         (ipcp_cval_meet): Renamed to ipa_lattice_meet
4645         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
4646         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
4647         (ipcp_get_ith_lattice): Changed parameters.
4648         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
4649         (ipcp_lattice_from_jfunc): Changed parameters.
4650         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
4651         (ipcp_method_cval_print): Added temporary variable info.
4652         (ipcp_redirect): Removed already unused local variable caller.
4653         (ipcp_redirect): New temporary variable orig_callee_info
4654         (ipcp_redirect): Removed newly unused local variable callee.
4655         (ipcp_redirect): Removed (a bit confusing) local variable type.
4656         (ipcp_insert_stage): Added local variable info.
4657         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
4658         renamed too
4659         (ipcp_formal_create): Removed.
4660         (ipcp_method_cval_set): Removed.
4661         (ipcp_propagate_stage): Renamed lattice variables.
4662         (ipcp_method_cval_set_cvalue_type): Removed.
4663         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
4664         (ipcp_print_all_lattices): Changed printed strings to refer to 
4665         lattices rather than cvals.
4666         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
4667         (ipcp_propagate_const): Changed formal parameters.
4668         (build_const_val): Changed formal parameters.
4669         (ipcp_insert_stage): Removed useless variable cvalue
4670         (build_const_val): Changed formal parameters.
4671         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
4672         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
4673         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
4674         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
4675         (ipcp_print_func_profile_counts): Changed string from "method" to 
4676         "function"
4677         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
4678         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
4679         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
4680         (ipcp_structures_print): Renamed to ipcp_print_all_structures
4681         (ipcp_profile_print): Renamed to ipcp_print_profile_data
4682         (ipcp_lat_is_const): Changed parameters and made inline.
4683         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
4684         (ipcp_redirect): Renamed to ipcp_need_redirect_p
4685         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
4686         the predicate condition directly
4687         (ipcp_propagate_stage): Added local variable args. Removed local
4688         variable callee.  (Both are mere code simplifications.)
4689         (ipcp_method_dont_insert_const): Renamed to
4690         ipcp_node_not_modifiable_p.
4691         (ipcp_node_not_modifiable_p): Made inline.
4692         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
4693         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
4694         (ipcp_print_all_lattices): Removed variable cvalue
4695         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
4696         Updated comments.
4697
4698 2008-05-06  Olivier Hainque  <hainque@adacore.com>
4699
4700         * tree-sra.c (try_instantiate_multiple_fields): Early return
4701         if field has POINTER_TYPE.
4702
4703 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
4704
4705         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
4706         by using 'q' specifier for instruction.
4707         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
4708
4709 2008-05-06  Anatoly Sokolov <aesok@post.ru>
4710
4711         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4712         Change mode of zero_extract from QImode to HImode.
4713         (sign bit tests peepholes): (Ditto.).
4714
4715 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
4716
4717         * config/i386/mmx.md: Remove double backslashes from asm templates.
4718         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
4719         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4720         to handle nonimmediate operands.
4721         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
4722         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4723         to handle nonimmediate operands.
4724         (*mmx_<code>v2sf3_finite): New insn pattern.
4725         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
4726         (mmx_<code>v2sf3): New expander.  Use
4727         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4728         (mmx_<plusminus_insn><mode>3): New expander.  Use
4729         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4730         (*mmx_<plusminus_insn><mode>3): New insn pattern.
4731         (mmx_add<mode>3): Removed.
4732         (mmx_ssadd<mode>3): Ditto.
4733         (mmx_usadd<mode>3): Ditto.
4734         (mmx_sub<mode>3): Ditto.
4735         (mmx_sssub<mode>3): Ditto.
4736         (mmx_ussub<mode>3): Ditto.
4737         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
4738         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
4739         to handle nonimmediate operands.
4740         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
4741         insn pattern.
4742         (mmx_smulv4hi3_highpart): New expander.  Use
4743         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4744         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
4745         insn pattern.
4746         (mmx_umulv4hi3_highpart): New expander.  Use
4747         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4748         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
4749         (mmx_<code>v4hi3): New expander.  Use
4750         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4751         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
4752         (mmx_<code>v8qi3): New expander.  Use
4753         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4754         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
4755         (mmx_<code><mode>3): New expander.  Use
4756         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4757
4758 2008-05-05  Jan Hubicka  <jh@suse.cz>
4759
4760         PR tree-optimization/36118
4761         * passes.c (pass_init_dump_file): Fix dump header.
4762
4763 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4764
4765         PR middle-end/36141
4766         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
4767         VCE for function decls.
4768
4769 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4770
4771         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
4772
4773 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4774
4775         * config/i386/i386.md (sat_plusminus): New.
4776         (plusminus_insn): Likewise.
4777         (plusminus_mnemonic): Likewise.
4778         (addsub): Removed.
4779         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
4780         (*<addsub><mode>3_cc_overflow): Renamed to ...
4781         (*<plusminus_insn><mode>3_cc_overflow): This.
4782         (*<addsub>si3_zext_cc_overflow): Renamed to ...
4783         (*<plusminus_insn>si3_zext_cc_overflow): This.
4784
4785         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
4786         (<plusminus_insn><mode>3): This.
4787         (*<addsub><mode>3): Renamed to ...
4788         (*<plusminus_insn><mode>3): This.
4789         (<sse>_vm<addsub><mode>3): Renamed to ...
4790         (<sse>_vm<plusminus_insn><mode>3): This.
4791         (sse3_h<addsub>v4sf3): Renamed to ...
4792         (sse3_h<plusminus_insn>v4sf3): This.
4793         (sse3_h<addsub>v2df3): Renamed to ...
4794         (sse3_h<plusminus_insn>v2df3): This.
4795         (<plusminus_insn><mode>3): New.
4796         (*<plusminus_insn><mode>3): Likewise.
4797         (sse2_<plusminus_insn><mode>3): Likewise.
4798         (add<mode>): Removed.
4799         (*add<mode>3): Likewise.
4800         (sse2_ssadd<mode>3): Likewise.
4801         (sse2_usadd<mode>3): Likewise.
4802         (sub<mode>3): Likewise.
4803         (*sub<mode>3): Likewise.
4804         (sse2_sssub<mode>3): Likewise.
4805         (sse2_ussub<mode>3): Likewise.
4806
4807 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
4808
4809         * gthr-single.h: Add in required interface elements as per gthr.h.
4810         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4811         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4812         Generalize UNUSED macro. 
4813         (__gthread_once): Add.
4814         (__gthread_key_create): Add.
4815         (__gthread_key_delete): Add.
4816         (__gthread_getspecific): Add.
4817         (__gthread_setspecific): Add.
4818         
4819 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
4820
4821         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4822         the same size types for the indirect reference on the rhs, then
4823         create a VCE.
4824
4825 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
4826
4827         * config/i386/i386.md
4828         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4829         one insn template instead of template series.
4830         (*xordi_1_rex64): Ditto.
4831         (*xordi_2_rex64): Ditto.
4832
4833 2008-05-05  Ira Rosen  <irar@il.ibm.com>
4834
4835         PR tree-optimization/36119
4836         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4837         in case of SLP.
4838
4839 2008-06-04  Jan Hubicka  <jh@suse.cz>
4840
4841         tree-optimization/36100
4842         * tree-pass.h (pass_O0_always_inline): Declare.
4843         * ipa-inline.c (inline_transform): Remove dead code.
4844         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4845         pass_O0_always_inline): New.
4846         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4847
4848 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
4849
4850         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4851         mnemonic in this_param move for TARGET_64BIT.
4852
4853 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
4854
4855         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4856         (*strmovsi_rex_1): Ditto.
4857         (*strsetsi_1): Ditto.
4858         (*strsetsi_rex_1): Ditto.
4859
4860         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4861         adddicc expanders using SWI mode iterator.
4862
4863 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4864
4865         PR target/36121
4866         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4867         argument handling.
4868
4869 2008-05-04  David S. Miller  <davem@davemloft.net>
4870
4871         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4872         (sparc*-*-linux*): Use linux.h in tm_file.
4873         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4874         compiler defaulting to 32-bit.
4875         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4876         no longer needed.
4877         * config/sparc/linux.h: Remove definitions now obtained
4878         properly from linux.h
4879         * config/sparc/linux64.h: Likewise.
4880         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4881         don't want this setting for 32-bit builds in a biarch compiler.
4882         * doc/install.texi: Add sparc-linux to list of targets
4883         supporting --enable-targets=all.
4884
4885 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
4886
4887         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4888
4889 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
4890
4891         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4892         after V4SI_FTYPE_V8HI.
4893         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4894         case V4SI_FTYPE_V2DF.
4895
4896 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
4897
4898         * doc/invoke.texi (max-flow-memory-locations): Removed.
4899         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4900         
4901 2008-05-03  Richard Guenther  <rguenther@suse.de>
4902
4903         PR middle-end/34973
4904         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4905
4906 2008-05-02  David S. Miller  <davem@davemloft.net>
4907
4908         * config.gcc (need_64bit_hwint): Document libcpp dependency.
4909
4910 2008-05-02  Simon Baldwin <simonb@google.com>
4911
4912         PR bootstrap/36108
4913         * c-common.h (warn_array_subscript_range): Removed.
4914         * c-common.c (warn_array_subscript_range): Ditto.
4915         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
4916         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
4917
4918 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4919
4920         * config/i386/i386.c (ix86_special_builtin_type): New.
4921         (bdesc_special_args): Likewise.
4922         (ix86_expand_special_args_builtin): Likewise.
4923         (ix86_init_mmx_sse_builtins): Updated.
4924         (ix86_expand_builtin): Updated.
4925         (ix86_expand_store_builtin): Removed.
4926         (ix86_expand_unop_builtin): Likewise.
4927
4928         * config/i386/mm3dnow.h (__v2sf): Moved to ...
4929         * config/i386/mmintrin.h (__v2sf): Here.
4930
4931         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4932         const __v2sf.
4933         (_mm_loadl_pi): Likewise.
4934         (_mm_storeh_pi): Replace __v2si with __v2sf.
4935         (_mm_storel_pi): Likewise.
4936
4937         * doc/extend.texi: Correct __builtin_ia32_loadhps,
4938         __builtin_ia32_loadlps, __builtin_ia32_storehps,
4939         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4940         __builtin_ia32_loadlpd.
4941
4942 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4943
4944         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4945         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4946         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
4947         (ix86_init_mmx_sse_builtins): Updated.
4948         (ix86_expand_args_builtin): Likewise.
4949         (ix86_expand_builtin): Likewise.
4950         (ix86_expand_unop1_builtin): Renamed to ...
4951         (ix86_expand_unop_vec_merge_builtin): This.
4952
4953 2008-05-01  Jan Hubicka  <jh@suse.cz>
4954
4955         PR bootstrap/36100
4956         * ipa-inline.c (inline_generate_summary): Make static.
4957         (inline_transform): Do not call inlining at -O0; make static.
4958         * passes.c (execute_todo): Add sanity check.
4959         (execute_one_ipa_transform_pass): Execute proper flags.
4960
4961 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4962
4963         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4964         (DECL_NONADDRESSABLE_P): Likewise.
4965         * alias.c (record_component_aliases): Fix comment.
4966
4967 2008-05-01  Simon Baldwin <simonb@google.com>
4968
4969         * c-common.h (warn_array_subscript_range): New function.
4970         * c-common.c (warn_array_subscript_range): Ditto.
4971         * tree-vrp.c (check_array_ref): Corrected code to agree with
4972         comment, ignoring only arrays of size 0 or size 1.
4973         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4974
4975 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4976
4977         * config/i386/i386.c (ix86_builtin_type): Replace
4978         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4979         (bdesc_args): Updated.
4980         (ix86_init_mmx_sse_builtins): Likewise.
4981         (ix86_expand_args_builtin): Likewise.
4982
4983         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4984         with __v1di.
4985
4986         * doc/extend.texi: Correct __builtin_ia32_palignr.
4987
4988 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4989
4990         PR target/36095
4991         * config/i386/i386.c (bdesc_crc32): Removed.
4992         (ix86_expand_crc32): Likewise.
4993         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4994         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4995         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
4996         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4997         UINT_FTYPE_UINT_UCHAR.
4998         (bdesc_args): Updated. Add crc32 builtins.
4999         (ix86_init_mmx_sse_builtins): Updated.
5000         (ix86_expand_args_builtin): Updated to support subreg.
5001
5002         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5003
5004 2008-05-01  Jan Hubicka  <jh@suse.cz>
5005
5006         * tree-pass.h (opt_pass): Add IPA_PASS.
5007         (varpool_node, cgraph_node): Forward declare.
5008         (ipa_opt_pass): Define.
5009         (pass_ipa_inline): Turn into ipa_opt_pass.
5010         (pass_apply_inline): Remove.
5011         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5012         (apply_inline): Turn into ....
5013         (inline_transform): ... this one.
5014         (inline_generate_summary): New function.
5015         (pass_apply_inline): Remove.
5016         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5017         vector.
5018         (struct function): Add ipa_transforms_to_apply.
5019         * passes.c (register_one_dump_file): Work on IPA_PASS.
5020         (init_optimization_passes): Remove pass_inline_parameters and
5021         pass_apply_inline.
5022         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5023         (execute_one_pass) ... here; apply transforms when possible.
5024         (add_ipa_transform_pass, execute_ipa_summary_asses,
5025         execute_one_ipa_transform_pass): New.
5026         (execute_ipa_pass_list): Update for IPA_PASS type.
5027
5028 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5029
5030         * config/i386/i386.c (ix86_builtin_type): Add
5031         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5032         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5033         (bdesc_args): Add SSE4a builtins.
5034         (ix86_init_mmx_sse_builtins): Updated.
5035         (ix86_expand_args_builtin): Likewise.
5036         (ix86_expand_builtin): Likewise.
5037
5038 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5039
5040         * config/i386/i386.c (ix86_builtin_type): Add
5041         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5042         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5043         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5044         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5045         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5046         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5047         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5048         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5049         and DI_FTYPE_DI_DI_INT.
5050         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5051         (ix86_init_mmx_sse_builtins): Updated.
5052         (ix86_expand_args_builtin): Likewise.
5053         (ix86_expand_builtin): Likewise.
5054         (ix86_expand_binop_imm_builtin): Removed.
5055
5056         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5057
5058 2008-04-30  Richard Guenther  <rguenther@suse.de>
5059
5060         PR tree-optimization/32921
5061         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5062
5063 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5064
5065         * config/arm/arm.c (arm_unwind_emit): Use
5066         crtl->all_throwers_are_sibcalls instead of
5067         cfun->all_throwers_are_sibcalls.
5068         (arm_output_fn_unwind): Likewise.
5069         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5070         instead of cfun->uses_pic_offset_table.
5071         (frv_expand_prologue): Likewise.
5072         (frv_frame_pointer_required): Likewise.
5073         (frv_expand_fdpic_call): Likewise.
5074         (frv_emit_movsi): Likewise.
5075         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5076         cfun->returns_pcc_struct instead of
5077         current_function_returns_pcc_struct.
5078         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5079         instead of cfun->calls_eh_return.
5080         (m32c_pushm_popm): Likewise.
5081         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5082         "extern" declaration.
5083
5084 2008-04-30  Richard Guenther  <rguenther@suse.de>
5085
5086         PR tree-optimization/21636
5087         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5088         constant address.
5089         (evaluate_stmt): Print the likely value.
5090         (ccp_visit_stmt): Avoid excessive vertical spacing.
5091
5092 2008-04-30  Rafael Espindola  <espindola@google.com>
5093
5094         * builtins.c (fold_call_expr): Return realret.
5095         * tree-ssa-threadedge.c
5096         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5097         __builtin_object_size.
5098
5099 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5100
5101         * gcc.c (wrapper_string): New variable.
5102         (insert_wrapper): New function.
5103         (execute): New option -wrapper.
5104         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5105
5106 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5107
5108         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5109         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5110         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5111         from...
5112         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5113         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5114         config/rs6000/e500crtres64gprctr.asm,
5115         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5116         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5117         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5118         config/rs6000/e500crtsav64gprctr.asm,
5119         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5120         config/rs6000/e500crtsavg64gprctr.asm: New files.
5121         * config/rs6000/t-ppccomm: Add build rules for new files.
5122         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5123         * config/rs6000/t-netbsd: Add build rules for new files.
5124         (LIB2FUNCS_STATIC_EXTRA): New variable.
5125         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5126         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5127         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5128
5129 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5130
5131         * config/i386/i386.c (ix86_builtin_type): Add
5132         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5133         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5134         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5135         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5136         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5137         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5138         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5139         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5140         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5141         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5142         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5143         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5144         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5145         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5146         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5147         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5148         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5149         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5150         V1DI_FTYPE_V2SI_V2SI.
5151         (bdesc_2arg): Moved to ...
5152         (bdesc_args): Here.
5153         (ix86_init_mmx_sse_builtins): Updated.
5154         (ix86_expand_args_builtin): Updated.  Take a pointer
5155         to const struct builtin_description.  Handle comparison
5156         builtin functions.
5157         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5158         (ix86_expand_builtin): Updated.
5159
5160         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5161         (ssse3_pmaddubsw128): This.
5162         (ssse3_pmaddubswv4hi3): Renamed to ...
5163         (ssse3_pmaddubsw): This.
5164
5165         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5166         (__builtin_ia32_packssdw128): Likewise.
5167         (__builtin_ia32_packuswb128): Likewise.
5168         (__builtin_ia32_pmaddubsw): Likewise.
5169         (__builtin_ia32_pmaddubsw128): Likewise.
5170
5171 2008-04-30  Richard Guenther  <rguenther@suse.de>
5172
5173         PR tree-optimization/14847
5174         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5175         (recognize_bits_test): Use it.
5176         (recognize_single_bit_test): Likewise.
5177
5178 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5179
5180         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5181         instead of setting number of formal parameters to zero.
5182         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5183         either.
5184         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5185         which are called with variable number of arguments.
5186         (ipcp_insert_stage): Explicitely skipping all nodes which are
5187         called with variable number of arguments.
5188         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5189         number of parameters.
5190
5191         * ipa-prop.h (struct ipa_node_params): Added flag
5192         called_with_var_arguments
5193         (ipa_set_param_count): Added.  Changed sole setter to use it.
5194         (ipa_get_param_count): Added.  All readers of param_count
5195         converted to use it instead.
5196         (ipa_set_called_with_variable_arg): Added.
5197         (ipa_is_called_with_var_arguments): Added.
5198         (ipa_get_ith_param): Added.  All readers of param_decls converted
5199         to use it instead.
5200         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5201         changed to use it. 
5202         (ipa_get_cs_argument_count): Added, all readers of argument_count
5203         changed to cal it.
5204         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5205         to use it.
5206         
5207         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5208         (struct ipcp_lattice): Renamed cval_type to type
5209         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5210
5211         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5212         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5213         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5214         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5215         (build_const_val): Changed the type of parameter cvalue to tree
5216         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5217         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5218         
5219         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5220         constant 
5221
5222         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5223         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5224         (ipa_add_method): Renamed to ipa_push_func_to_list
5225         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5226         (ipa_callsite_param_count): Removed.
5227         (ipa_callsite_param_count_set): Removed.
5228         (ipa_callsite_param): Removed.
5229         (ipa_callsite_callee): Removed.
5230         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5231         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5232         (ipa_method_formal_count): Removed.
5233         (ipa_method_formal_count_set): Removed.
5234         (ipa_method_get_tree): Removed.
5235         (ipa_method_tree_map_create): Removed.
5236         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5237         (ipa_create_param_decls_array): Creates the array itself
5238         (ipa_create_param_decls_array): Temporary variable info instead of 
5239         a few dereferences.
5240         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5241         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5242         (get_type): Removed.
5243         (ipa_jf_get_info_type): Removed.
5244         (ipa_node_create): Renamed to ipa_create_node_params
5245         (ipa_free): Renamed to ipa_free_all_node_params
5246         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5247         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5248         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5249         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5250         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5251         ipa_free_all_edge_args
5252         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5253         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5254         (ipa_create_methodlist_node): Removed.
5255         (ipa_methodlist_method): Removed.
5256         (ipa_methodlist_method_set): Removed.
5257         (ipa_methodlist_next_method): Removed.
5258         (ipa_methodlist_next_method_set): Removed.
5259         (ipa_method_is_modified): Removed.
5260         (ipa_method_modify_create): Removed.
5261         (ipa_method_modify_init): Temporary variable info instead of a few 
5262         dereferences.
5263         (ipa_detect_param_modifications): Temporary variable info instead of 
5264         a few dereferences.
5265         (ipa_compute_jump_functions): Temporary variable info instead of 
5266         a few dereferences.
5267         (ipa_method_modify_set): Removed.
5268         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5269         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5270         than craph_node as the first parameter.
5271         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5272         (ipa_method_modify_init): Removed.
5273         (ipa_compute_jump_functions): Added a temp variable instead of 
5274         repeatadly dereferencing the cgraph_edge.aux pointer
5275         (ipa_callsite_param_set_type): Removed.
5276         (ipa_compute_jump_functions): i renamed to index and moved to 
5277         an inner block
5278         (ipa_callsite_param_set_info_type_formal): Removed.
5279         (ipa_callsite_param_set_info_type): Removed.
5280         (ipa_callsite_param_map_create): Removed.
5281         (ipa_callsite_tree): Removed.
5282         (ipa_callsite_caller): Removed.
5283         (ipa_pop_func_from_list): return_method removed to return_func
5284
5285         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5286         prefixed all values with IPA_. Changed all users.
5287         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5288         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5289         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5290         (union parameter_info): Renamed to jump_func_value.
5291         (union jump_func_value): Renamed value to constant
5292         (struct ipa_jump_func): Renamed info_type to value
5293         (struct ipa_node): Renamed to ipa_node_params
5294         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5295         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
5296         (struct ipa_node_params): Renamed ipa_mod to modified_flags
5297         (struct ipa_edge): Renamed to ipa_edge_args
5298         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
5299         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
5300         (struct ipa_methodlist): Renamed to ipa_func_list
5301         (struct ipa_func_list): method_p renamed to node, next_method
5302         renamed to next
5303         (ipa_methodlist_p): Removed, switched all users to struct pointer
5304         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5305
5306 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5307
5308         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5309         (rs6000_emit_epilogue): Use backchain to restore only when we
5310         have a large frame.  Make use of frame pointer to restore if we
5311         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5312
5313 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5314
5315         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5316         Add mode to zero_extract.
5317         (sign bit tests peepholes): (Ditto.).
5318
5319 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5320
5321         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5322         Instructions in comments with SSE3.
5323         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5324         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5325         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5326         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5327         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5328         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5329         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5330         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5331         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5332         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5333         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5334         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5335         (bdesc_sse_args): Renamed to ...
5336         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5337         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5338         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5339         IX86_BUILTIN_FABSQ.
5340         (bdesc_1arg): Moved to ...
5341         (bdesc_args): Here.
5342         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5343         Instructions in comments with SSE3.
5344         (ix86_expand_sse_operands_builtin): Renamed to ...
5345         (ix86_expand_args_builtin): This.  Updated.
5346         (ix86_expand_unop1_builtin): Update comments.
5347         (ix86_expand_builtin): Updated.
5348
5349 2008-04-29  Richard Guenther  <rguenther@suse.de>
5350
5351         PR tree-optimization/36078
5352         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5353         Update virtual SSA form after cleaning up the CFG.
5354
5355 2008-04-29  Richard Guenther  <rguenther@suse.de>
5356
5357         PR middle-end/15255
5358         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5359
5360 2008-04-29  Richard Guenther  <rguenther@suse.de>
5361
5362         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5363         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5364         (compute_flow_insensitive_aliasing): Do not treat
5365         PTR_IS_REF_ALL pointers special.
5366         (get_smt_for): Likewise.
5367         (may_alias_p): Re-structure.
5368         (is_escape_site): A ref-all pointer conversion is not an escape site.
5369         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5370         PTR_IS_REF_ALL pointers special.
5371         * tree-ssa-structalias.h (struct alias_info): Remove
5372         ref_all_symbol_mem_tag field.
5373         (PTR_IS_REF_ALL): Remove.
5374
5375 2008-04-29  Richard Guenther  <rguenther@suse.de>
5376
5377         PR middle-end/36077
5378         * fold-const.c (extract_muldiv_1): In combining division constants
5379         make sure to never overflow.
5380
5381 2008-04-29  Nick Clifton  <nickc@redhat.com>
5382
5383         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5384
5385 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5386
5387         PR bootstrap/35169
5388         * optc-gen.awk: Work around HP-UX/IA awk bug.
5389
5390 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
5391
5392         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5393         2008-04-25 commit.
5394
5395 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5396
5397         PR target/36073
5398         * config/i386/i386.md
5399         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5400         Change operand 1 predicate to nonimmediate_operand.
5401
5402 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
5403
5404         PR debug/36060
5405         * dwarf2out.c (struct die_struct): Mark as chain_circular through
5406         die_sub field.
5407         * gengtype.c (walk_type, write_func_for_structure): Handle
5408         chain_circular.
5409         * doc/gty.texi: Document chain_circular.
5410
5411 2008-04-28  Richard Guenther  <rguenther@suse.de>
5412
5413         PR tree-optimization/36066
5414         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5415         SCEV and loop.
5416
5417 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5418
5419         PR target/36064
5420         * config/i386/i386.md
5421         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
5422         Use match_scratch instead of match_operand for operands 3 and 4.
5423
5424 2008-04-27  Richard Guenther  <rguenther@suse.de>
5425
5426         PR tree-optimization/18754
5427         PR tree-optimization/34223
5428         * tree-pass.h (pass_complete_unrolli): Declare.
5429         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5430         loop size before and after unconditionally of UL_NO_GROWTH in effect.
5431         Rewrite loop into loop closed SSA form if it is not already.
5432         (tree_unroll_loops_completely): Re-structure to iterate over
5433         innermost loops with intermediate CFG cleanups.
5434         Unroll outermost loops only if requested or the code does not grow
5435         doing so.
5436         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5437         loops are available.
5438         (tree_vectorize): Instead do so here.
5439         (tree_complete_unroll): Also unroll outermost loops.
5440         (tree_complete_unroll_inner): New function.
5441         (gate_tree_complete_unroll_inner): Likewise.
5442         (pass_complete_unrolli): New pass.
5443         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5444         uses outside of the loop.
5445         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5446         form if it is available.  
5447         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5448         * passes.c (init_optimization_passes): Schedule complete inner
5449         loop unrolling pass before the first CCP pass after final inlining.
5450
5451 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
5452
5453         * targhooks.h (default_emutls_var_fields,
5454         default_emutls_var_init): Declare.
5455         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5456         * target.h (struct gcc_target): Add struct emutls member.
5457         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5458         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5459         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5460         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5461         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5462         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5463         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5464         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5465         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5466         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5467         emit debug information.
5468         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5469         * varasm.c: Include targhooks.h.
5470         (emutls_object_section, emutls_tmpl_section): New.
5471         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5472         (EMUTLS_SEPARATOR): New.
5473         (prefix_name): New.
5474         (get_emutls_object_name): New.
5475         (default_emutls_var_fields): New, broken out of ...
5476         (get_emutls_object_type): ... here.  Adjust to use target hooks.
5477         (get_emutls_init_templ_addr): Adjust to use target hooks.
5478         (emutls_decl): Adjust to use target hooks.
5479         (emutls_finish): Likewise.
5480         (default_emutls_var_init): New, broken out of ...
5481         (assemble_variable): ... here.  Adjust to use target hooks.
5482         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5483         SECCAT_EMUTLS_TMPL.
5484         * c-common.c (handle_section_attribute): Prevent overriding
5485         sections for emulated tls with special sections.
5486         * config/i386/i386.c (x86_64_elf_select_section): Add
5487         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5488         (x86_64_elf_unique_section): Likewise.
5489         * config/vxworks.c: Include tree.h.
5490         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
5491         (vxworks_override_options): Set TLS scheme.
5492         * doc/tm.texi (Emulated TLS): New node.
5493
5494 2008-04-26  Simon Baldwin <simonb@google.com>
5495
5496         PR c/35652
5497         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5498         with propagated string constants.
5499
5500 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
5501
5502         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
5503         constraint for operand 2 when operand 0 is memory operand.
5504         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
5505         operand 0 is memory operand.
5506         (fix_trunc<mode>_i387_with_temp): Ditto.
5507         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
5508         operand 2 when operand 1 is memory operand.
5509         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
5510         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
5511         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
5512         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5513         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
5514         operands 2,3 and 4 when operand 1 is memory operand.
5515         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
5516         is memory operand.
5517         (fistdi2_floor_with_temp): Ditto.
5518         (fist<mode>2_floor_with_temp): Ditto.
5519         (fistdi2_ceil_with_temp): Ditto.
5520         (fist<mode>2_ceil_with_temp): Ditto.
5521         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
5522
5523 2008-04-26  David Daney  <ddaney@avtrex.com>
5524
5525         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
5526         unspec_volitile.
5527         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
5528         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5529         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5530         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
5531         (compare_and_swap_12): New insn.
5532         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
5533         * config/mips/mips.c (mips_force_binary): New function.
5534         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
5535         (mips_expand_compare_and_swap_12): New function.
5536         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
5537
5538 2008-04-25  Jan Hubicka  <jh@suse.cz>
5539
5540         PR testsuite/35843
5541         * cfgexpand.c (pass_expand): Turn into RTL pass.
5542         * passes.c (execute_one_pass): Do pass typechecking after execution.
5543         * tree-pass.h (pass_expand): Turn into RTL pass.
5544
5545         * function.h (struct rtl_data): Move here fields
5546         accesses_prior_frames, calls_eh_return, saves_all_registers,
5547         has_nonlocal_goto, has_asm_statement, is_thunk,
5548         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
5549         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
5550         arg_pointer_save_area_init from struct function; turn into bool.
5551         (struct function): Move
5552         calls_eh_return, saves_all_registers, has_nonlocal_goto,
5553         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
5554         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
5555         tail_call_emit, arg_pointer_save_area_init
5556         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
5557         (current_function_returns_struct, current_function_returns_pcc_struct,
5558         current_function_calls_setjmp, current_function_calls_alloca,
5559         current_function_accesses_prior_frames,
5560         current_function_calls_eh_return, current_function_is_thunk,
5561         current_function_stdarg, current_function_profile,
5562         current_function_limit_stack, current_function_uses_pic_offset_table,
5563         current_function_uses_const_pool, current_function_has_nonlocal_label,
5564         current_function_saves_all_registers,
5565         current_function_has_nonlocal_goto,
5566         current_function_has_asm_statement): Remove accesor macros.
5567         * ra-conflict.c (global_conflicts): Update.
5568         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
5569         (suitable_for_tail_call_opt_p): Update.
5570         * builtins.c (expand_builtin_return_addr): Update.
5571         (expand_builtin_setjmp_setup): Update.
5572         (expand_builtin_nonlocal_goto): Update.
5573         * final.c (final_start_function): Update.
5574         (profile_function): Update.
5575         (leaf_function_p): Update.
5576         (only_leaf_regs_used): Update.
5577         * df-scan.c (df_get_exit_block_use_set): Update.
5578         * dojump.c (clear_pending_stack_adjust): Update.
5579         * tree-stdarg.c (gate_optimize_stdarg): Update.
5580         * gimple-low.c (lower_function_body): Update.
5581         * global.c (compute_regsets): Update.
5582         (global_alloc): Update.
5583         * dwarf2out.c (dwarf2out_begin_prologue): Update.
5584         * expr.c (expand_assignment): Update.
5585         * dse.c (dse_step0): Update.
5586         (dse_step1): Update.
5587         * c-decl.c (store_parm_decls): Update.
5588         * local-alloc.c (combine_regs): Update.
5589         (find_free_reg): Update.
5590         * function.c (assign_parms_augmented_arg_list): Update.
5591         (assign_parm_find_data_types): Update.
5592         (assign_parms): Update.
5593         (allocate_struct_function): Update.
5594         (expand_function_start): Update.
5595         (expand_function_end): Update.
5596         (get_arg_pointer_save_area): Update.
5597         (thread_prologue_and_epilogue_insns): Update.
5598         (rest_of_match_asm_constraints): Update.
5599         * stor-layout.c (variable_size): Update.
5600         * gcse.c (gcse_main): Update.
5601         (bypass_jumps): Update.
5602         * gimplify.c (gimplify_function_tree): Update.
5603         * calls.c (emit_call_1): Update.
5604         (expand_call): Update.
5605         * bt-load.c (compute_defs_uses_and_gen): Update.
5606         * except.c (sjlj_assign_call_site_values): Update.
5607         (sjlj_emit_function_enter): Update.
5608         (can_throw_external): Update.
5609         (set_nothrow_function_flags): Update.
5610         (expand_builtin_unwind_init): Update.
5611         (expand_eh_return): Update.
5612         (convert_to_eh_region_ranges): Update.
5613         (output_function_exception_table): Update.
5614         * emit-rtl.c (gen_tmp_stack_mem): Update.
5615         * cfgexpand.c (expand_used_vars): Update.
5616         (tree_expand_cfg): Update.
5617         * cfgcleanup.c (rest_of_handle_jump): Update.
5618         * explow.c (allocate_dynamic_stack_space): Update.
5619         * varasm.c (assemble_start_function): Update.
5620         (force_const_mem): Update.
5621         (mark_constant_pool): Update.
5622         * tree-optimize.c (tree_rest_of_compilation): Update.
5623         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
5624         * tree-cfg.c (notice_special_calls): Update.
5625         (is_ctrl_altering_stmt): Update.
5626         (tree_can_make_abnormal_goto): Update.
5627         (tree_purge_dead_abnormal_call_edges): Update.
5628         * config/alpha/predicates.md: Update.
5629         * config/alpha/alpha.c (alpha_sa_mask): Update.
5630         (alpha_sa_size): Update.
5631         (alpha_does_function_need_gp): Update.
5632         (alpha_expand_prologue): Update.
5633         (alpha_start_function): Update.
5634         (alpha_output_function_end_prologue): Update.
5635         (alpha_expand_epilogue): Update.
5636         * config/frv/frv.c (frv_stack_info): Update.
5637         (frv_expand_epilogue): Update.
5638         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
5639         (s390_register_info): Update.
5640         (s390_frame_info): Update.
5641         (s390_init_frame_layout): Update.
5642         (s390_can_eliminate): Update.
5643         (save_gprs): Update.
5644         * config/spu/spu.c (spu_split_immediate): Update.
5645         (need_to_save_reg): Update.
5646         (spu_expand_prologue): Update.
5647         (spu_expand_epilogue): Update.
5648         * config/sparc/sparc.md: Update.
5649         * config/sparc/sparc.c (eligible_for_return_delay): Update.
5650         (sparc_tls_got): Update.
5651         (legitimize_pic_address): Update.
5652         (sparc_emit_call_insn): Update.
5653         (sparc_expand_prologue): Update.
5654         (output_return): Update.
5655         (print_operand): Update.
5656         (sparc_function_ok_for_sibcall): Update.
5657         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
5658         * config/m32r/m32r.md: Update.
5659         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
5660         (m32r_compute_frame_size): Update.
5661         (m32r_expand_prologue): Update.
5662         (m32r_expand_epilogue): Update.
5663         (m32r_legitimize_pic_address): Update.
5664         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
5665         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5666         * config/i386/i386.c (ix86_frame_pointer_required): Update.
5667         (gen_push): Update.
5668         (ix86_save_reg): Update.
5669         (ix86_compute_frame_layout): Update.
5670         (ix86_expand_prologue): Update.
5671         (ix86_expand_epilogue): Update.
5672         * config/sh/sh.c (output_stack_adjust): Update.
5673         (calc_live_regs): Update.
5674         (sh5_schedule_saves): Update.
5675         (sh_expand_prologue): Update.
5676         (sh_expand_epilogue): Update.
5677         (sh_setup_incoming_varargs): Update.
5678         (sh_allocate_initial_value): Update.
5679         (sh_get_pr_initial_val): Update.
5680         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
5681         * config/sh/sh.md (label:): Update.
5682         * config/avr/avr.c (out_movhi_mr_r): Update.
5683         * config/crx/crx.h (enum): Update.
5684         * config/xtensa/xtensa.h (along): Update.
5685         * config/stormy16/stormy16.c Update.
5686         (xstormy16_compute_stack_layout): Update.
5687         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
5688         (fr30_expand_prologue): Update.
5689         * config/cris/cris.c (cris_conditional_register_usage): Update.
5690         (cris_reg_saved_in_regsave_area): Update.
5691         (cris_initial_frame_pointer_offset): Update.
5692         (cris_simple_epilogue): Update.
5693         (cris_expand_prologue): Update.
5694         (cris_expand_epilogue): Update.
5695         (cris_expand_pic_call_address): Update.
5696         (cris_asm_output_symbol_ref): Update.
5697         (cris_asm_output_label_ref): Update.
5698         * config/cris/cris.md Update.
5699         * config/iq2000/iq2000.c (compute_frame_size): Update.
5700         (iq2000_expand_epilogue): Update.
5701         * config/mt/mt.h (save_direction): Update.
5702         * config/mn10300/mn10300.c (mn10300_function_value): Update.
5703         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5704         (ia64_secondary_reload_class): Update.
5705         * config/m68k/m68k.c (m68k_save_reg): Update.
5706         (m68k_expand_prologue): Update.
5707         (m68k_expand_epilogue): Update.
5708         (legitimize_pic_address): Update.
5709         * config/rs6000/rs6000.c (rs6000_got_register): Update.
5710         (first_reg_to_save): Update.
5711         (first_altivec_reg_to_save): Update.
5712         (compute_vrsave_mask): Update.
5713         (compute_save_world_info): Update.
5714         (rs6000_stack_info): Update.
5715         (spe_func_has_64bit_regs_p): Update.
5716         (rs6000_ra_ever_killed): Update.
5717         (rs6000_emit_eh_reg_restore): Update.
5718         (rs6000_emit_allocate_stack): Update.
5719         (rs6000_emit_prologue): Update.
5720         (rs6000_emit_epilogue): Update.
5721         (rs6000_output_function_epilogue): Update.
5722         (output_profile_hook): Update.
5723         (rs6000_elf_declare_function_name): Update.
5724         * config/rs6000/rs6000.h (rs6000_args): Update.
5725         * config/rs6000/rs6000.md: Update.
5726         * config/mcore/mcore.c (mcore_expand_prolog): Update.
5727         * config/arc/arc.c (arc_output_function_epilogue): Update.
5728         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5729         * config/darwin.c (machopic_function_base_name): Update.
5730         * config/score/score3.c (score3_compute_frame_size): Update.
5731         (rpush): Update.
5732         (rpop): Update.
5733         (score3_epilogue): Update.
5734         * config/score/score7.c (score7_compute_frame_size): Update.
5735         (score7_prologue): Update.
5736         (score7_epilogue): Update.
5737         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
5738         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5739         * config/arm/arm.c (use_return_insn): Update.
5740         (require_pic_register): Update.
5741         (arm_load_pic_register): Update.
5742         (arm_compute_save_reg0_reg12_mask): Update.
5743         (arm_compute_save_reg_mask): Update.
5744         (thumb1_compute_save_reg_mask): Update.
5745         (output_return_instruction): Update.
5746         (arm_output_function_prologue): Update.
5747         (arm_output_epilogue): Update.
5748         (arm_get_frame_offsets): Update.
5749         (arm_expand_prologue): Update.
5750         (thumb_pushpop): Update.
5751         (thumb_exit): Update.
5752         (thumb1_expand_prologue): Update.
5753         (thumb1_expand_epilogue): Update.
5754         (arm_unwind_emit): Update.
5755         (arm_output_fn_unwind): Update.
5756         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
5757         * config/arm/arm.md: Update.
5758         * config/pa/pa.md: Update.
5759         * config/pa/pa.c (legitimize_pic_address): Update.
5760         (compute_frame_size): Update.
5761         (hppa_expand_prologue): Update.
5762         (hppa_expand_epilogue): Update.
5763         (borx_reg_operand): Update.
5764         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
5765         (HARD_REGNO_RENAME_OK): Update.
5766         * config/mips/mips.c (mips_global_pointer): Update.
5767         (mips_save_reg_p): Update.
5768         (mips_compute_frame_info): Update.
5769         (mips_frame_pointer_required): Update.
5770         (mips_expand_prologue): Update.
5771         (mips_expand_epilogue): Update.
5772         (mips_can_use_return_insn): Update.
5773         (mips_reorg_process_insns): Update.
5774         * config/v850/v850.c (compute_register_save_size): Update.
5775         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
5776         * config/mmix/mmix.c (along): Update.
5777         (mmix_expand_epilogue): Update.
5778         * config/bfin/bfin.c (legitimize_pic_address): Update.
5779         (must_save_p): Update.
5780         (stack_frame_needed_p): Update.
5781         (add_to_reg): Update.
5782         (bfin_expand_prologue): Update.
5783         * stmt.c (expand_asm_operands): Update.
5784         * reload1.c (reload): Update.
5785         (init_elim_table): Update.
5786
5787 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
5788         
5789         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
5790         
5791 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
5792
5793         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
5794         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
5795         (mov<mode>): Removed.
5796         (*movv4sf_internal): Likewise.
5797         (*movv2df_internal): Likewise.
5798
5799 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5800
5801         * config.gcc (crx-*-elf): Remove deprecation.
5802
5803 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
5804
5805         * config/i386/cygming-crtend.c (register_frame_ctor): Register
5806         __gcc_deregister_frame with atexit.
5807         (deregister_frame_dtor): Remove.
5808
5809 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
5810             Nathan Sidwell  <nathan@codesourcery.com>
5811
5812         * config/rs6000/rs6000.opt (mspe): Remove Var property.
5813         (misel): Likewise.
5814         * config/rs6000/rs6000.h (rs6000_spe): Declare.
5815         (rs6000_isel): Likewise.
5816         * config/rs6000/rs6000.c (rs6000_spe): New variable.
5817         (rs6000_isel): New variable.
5818         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
5819
5820 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5821
5822         PR c++/35758
5823         * c-common.c (handle_vector_size_attribute): Call
5824         lang_hooks.types.reconstruct_complex_type instead of
5825         reconstruct_complex_type.
5826         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5827         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5828         * langhooks.h (struct lang_hooks_for_types): Add
5829         reconstruct_complex_type hook.
5830         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5831         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5832
5833 2008-04-24  Richard Guenther  <rguenther@suse.de>
5834
5835         * c-common.h (check_builtin_function_arguments): Declare.
5836         * c-common.c (validate_nargs): New function.
5837         (check_builtin_function_arguments): Likewise.
5838         * c-typeck.c (build_function_call): Call
5839         check_builtin_function_arguments.
5840         * builtins.c (fold_builtin_classify): Remove error reporting code.
5841         (fold_builtin_unordered_cmp): Likewise.
5842         (fold_builtin_1): Likewise.
5843         (fold_builtin_n): Likewise.
5844
5845 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5846
5847         PR tree-optimization/36008
5848         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5849         the original op1, rather than delta by step.
5850
5851 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
5852             Sebastian Pop  <sebastian.pop@amd.com>
5853
5854         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5855         eliminate_local_variables_stmt, eliminate_local_variables,
5856         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5857         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5858         of code delimited by two edges in the CFG.
5859         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5860         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5861         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
5862         the case of parallelisation of reductions.
5863         (expr_invariant_in_region_p): New.
5864
5865         * tree-flow.h (gather_blocks_in_sese_region): Declared.
5866         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5867
5868 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5869             Richard Guenther  <rguenther@suse.de>
5870
5871         PR tree-optimization/36034
5872         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5873         incapable of dealing with loads with gaps.
5874
5875 2008-04-24  Rafael Espindola  <espindola@google.com>
5876
5877         * tree-flow.h (vrp_evaluate_conditional): Change signature.
5878         * tree-ssa-propagate.c (fold_predicate_in): Update call to
5879         vrp_evaluate_conditional.
5880         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
5881         (vrp_evaluate_conditional): Split the cond argument.
5882         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5883         (simplify_stmt_for_jump_threading): Update call to
5884         vrp_evaluate_conditional.
5885
5886 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5887
5888         PR tree-optimization/35982
5889         * tree-vect-analyze.c (vect_check_interleaving): Check that the
5890         interleaved data-refs are of the same type.
5891
5892 2008-04-24  Danny Smith  <dannysmith@users.net>
5893
5894         * c-format.c (check_format_info_main): Use strncmp rather than a
5895         magic prefix to handle multichar length specs.
5896         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5897         Don't prefix "I64" and "I32" with '\0'.
5898
5899 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5900
5901         PR target/36015
5902         * config/i386/i386.c (init_cumulative_args): Don't pass anything
5903         in registers for -m32 only if stdarg_p (fntype).
5904
5905 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
5906
5907         PR rtl-optimization/36006
5908         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
5909         temp to op0 in order to avoid invalid rtx sharing.
5910
5911 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
5912
5913         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
5914         check TREE_INVARIANT.
5915         * tree-gimple.c (is_gimple_address): New.
5916         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
5917         * tree-gimple.h (is_gimple_address): New.
5918         * tree.h (decl_address_invariant_p): New.
5919         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
5920         (build_string): Likewise.
5921         (decl_address_invariant_p): New, from is_gimple_invariant_address.
5922         (tree_invariant_p_1): Likewise.
5923         (save_expr): Use it.
5924         (tree_invariant_p): New.
5925         (skip_simple_arithmetic): Use it.
5926         (stabilize_reference_1): Use it.
5927         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
5928         simplify.
5929         (build1_stat): Drop code to compute TREE_INVARIANT.
5930         (build2_stat): Drop code to compute TREE_INVARIANT.
5931         (build3_stat): Drop code to compute TREE_INVARIANT.
5932         (build4_stat): Drop code to compute TREE_INVARIANT.
5933         (build5_stat): Drop code to compute TREE_INVARIANT.
5934         (build7_stat): Drop code to compute TREE_INVARIANT.
5935         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5936         * tree.h (struct tree_base): Remove invariant_flag.
5937         (TREE_INVARIANT): Remove.
5938         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5939         (fold_builtin_expect): Check TREE_CONSTANT.
5940         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5941         * c-tree.h (c_expr_to_decl): Drop third parameter.
5942         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5943         (build_c_cast): Don't set TREE_INVARIANT.
5944         (pop_init_level): Don't set TREE_INVARIANT.
5945         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5946         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5947         TREE_CONSTANT.
5948         (gimplify_init_constructor): Don't set TREE_INVARIANT.
5949         (gimplify_addr_expr): Adjust comment.
5950         * tree-mudflap.c (mf_build_string):
5951         * print-tree.c (print_node): Don't print TREE_INVARIANT.
5952         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5953         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5954         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5955         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5956         * langhooks.h (struct lang_hooks): Drop third parameter from
5957         expr_to_decl.
5958
5959 2008-04-23  Richard Guenther  <rguenther@suse.de>
5960
5961         PR tree-optimization/27799
5962         PR tree-optimization/32921
5963         PR tree-optimization/32624
5964         * tree-ssa-structalias.c (merge_smts_into): Only merge the
5965         SMTs aliases and the tag itself into the solution.
5966         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5967         merge the points-to solution back into the SMT aliases.
5968         (may_alias_p): Use alias_set_subset_of instead of
5969         aliases_conflict_p.  A pointer which points to
5970         memory with alias set zero may access any variable.
5971
5972 2008-04-23  Richard Guenther  <rguenther@suse.de>
5973
5974         * alias.c (alias_set_subset_of): Correctly handle asking
5975         if zero is a subset of an alias set with zero child.
5976         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5977         (compute_flow_insensitive_aliasing): Correctly walk all
5978         pointers.  Do not unnecessarily union sets.
5979
5980 2008-04-23  Richard Guenther  <rguenther@suse.de>
5981
5982         PR middle-end/36021
5983         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5984
5985 2008-04-22  Tomas Bily  <tbily@suse.cz>
5986
5987         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5988         unreachable case.
5989         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5990         NON_LVALUE_EXPR.
5991         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5992         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5993         * tree-inline.c (estimate_num_insns_1): Likewise.
5994         * varasm.c (const_hash_1, compare_constant, copy_constant)
5995         (compute_reloc_for_constant, output_addressed_constants): Likewise.
5996         * emit-rtl.c (component_ref_for_mem_expr)
5997         (set_mem_attributes_minus_bitpos): Likewise.
5998         * expr.c (highest_pow2_factor, expand_expr_real_1, )
5999         (is_aligning_offset): Likewise.
6000         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6001         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6002         * dojump.c (do_jump): Likewise.
6003         * builtins.c (get_pointer_alignment, get_memory_rtx)
6004         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6005         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6006
6007 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6008
6009         PR rtl-optimization/36017
6010         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6011         expanding the library call.
6012
6013 2008-04-22  Ian Lance Taylor  <iant@google.com>
6014
6015         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6016         than size_in_bytes.
6017
6018 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6019
6020         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6021         of LR/CTR moves for Power6.
6022
6023 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6024
6025         PR middle-end/36003
6026         * passes.c (init_optimization_passes): Remove
6027         pass_fast_rtl_byte_dce.
6028         
6029 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6030
6031         PR target/29096
6032         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6033         builtin functions to generate faster code.
6034         (_mm_cvtpu16_ps): Ditto.
6035         (_mm_cvtpi32x2_ps): Ditto.
6036
6037 2008-04-22  Nick Clifton  <nickc@redhat.com>
6038
6039         * common.opt (ftree-loop-distribution): Add Optimization
6040         attribute.
6041
6042         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6043         (frv_expand_builtin_va_start): Likewise.
6044
6045         * config/arm/arm.c (thumb_find_work_register): Fix location of
6046         argument register count.
6047
6048 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6049
6050         Support scheduling for ColdFire V1 and V3 microarchitecture.
6051         Improve scheduling of multiplication instructions.
6052
6053         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6054         (mac): New instruction attribute.
6055         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6056         (m68k_sched_mac): New variable.
6057         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6058         Handle cfv1 and cfv3.
6059         (max_insn_size): New static variable.
6060         (struct _sched_ib): New type.
6061         (sched_ib): New static variable.
6062         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6063         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6064         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6065         Update.
6066         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6067         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6068         new variables.  Update.
6069         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6070         Add modeling of cfv3 instruction buffer.  Update.
6071         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6072         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6073         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6074         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6075         a particular reservation applies to.
6076         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6077         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6078         to mul_l and mul_w.
6079         (cf_ib_*): Simplify description of instruction buffer.
6080         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6081         (cf_mem): Split into cf_mem1 and cf_mem2.
6082         (cf_v2_move_??): Rename to cfv12_alu_??.
6083         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6084         (cf_v2_mul_??): Remove reservations.
6085         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6086         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6087         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6088         appropriate place.
6089         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6090         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6091         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6092         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6093         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6094         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6095         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6096         expansions of the above reservations for instructions of sizes
6097         1, 2 and 3 words.
6098
6099 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6100
6101         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6102
6103 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6104
6105         * coverage.c: Include tree-pass.h.
6106         (coverage_counter_alloc): Print da_file_name to the dump file.
6107
6108 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6109
6110         * sbitmap.c (sbitmap_range_empty_p): New function.
6111         * sbitmap.h (sbitmap_range_empty_p): New function.
6112         * bitmap.h: Now includes obstack.h.
6113
6114 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6115             Kenneth Zadeck  <zadeck@naturalbridge.com>
6116
6117         * dbgcnt.def (ra_byte_scan): Added.
6118         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6119         when the last hit happens for a counter.  
6120         * timevar.def (TV_DF_BYTE_LR): New variable.
6121         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6122         * passes.c (pass_fast_rtl_byte_dce): New pass.
6123         * fwprop.c (update_df): Added mode to call df_ref_create.
6124         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6125         DF_REF_EXTRACT_OFFSET.
6126         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6127         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6128         (df_mm): New enum.
6129         (df_ref_extract): Added mode field.
6130         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6131         DF_REF_EXTRACT_OFFSET.
6132         (DF_REF_EXTRACT_MODE): New macro.
6133         (df_byte_lr_bb_info): New structure.
6134         (df_print_byte_regset, df_compute_accessed_bytes, 
6135         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6136         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6137         df_byte_lr_simulate_uses,
6138         df_byte_lr_simulate_artificial_refs_at_top,
6139         df_byte_lr_simulate_artificial_refs_at_end,
6140         df_compute_accessed_bytes): New function.
6141         (df_ref_create): Add parameter.
6142         (df_byte_lr_get_bb_info): New inline function.
6143         * df-scan.c (df_ref_record, df_uses_record,
6144         df_ref_create_structure): Added mode parameter.
6145         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6146         df_defs_record, df_uses_record, df_get_conditional_uses,
6147         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6148         df_entry_block_defs_collect, df_exit_block_uses_collect):
6149         Added mode parameter to calls to df_ref_record, df_uses_record,
6150         df_ref_create_structure.
6151         (df_ref_equal_p, df_ref_compare): Added test for modes.
6152         (df_ref_create_structure): Added code to set mode.  Renamed
6153         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6154         DF_REF_EXTRACT_OFFSET.
6155         * df-core.c (df_print_byte_regset): New function.
6156         * df-byte-scan.c: New file.
6157         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6158         calls to BITMAP_FREE.  
6159         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6160         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6161         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6162         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6163         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6164         df_byte_lr_local_compute, df_byte_lr_init,
6165         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6166         df_byte_lr_transfer_function, df_byte_lr_free, 
6167         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6168         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6169         df_byte_lr_simulate_uses,
6170         df_byte_lr_simulate_artificial_refs_at_top,
6171         df_byte_lr_simulate_artificial_refs_at_end): New function.
6172         * dce.c (byte_dce_process_block): New function.
6173         (dce_process_block): au is now passed in rather than computed
6174         locally.  Changed loops that look at artificial defs to not look
6175         for conditional or partial ones, because there never are any.  
6176         (fast_dce): Now is able to drive byte_dce_process_block or 
6177         dce_process_block depending on the kind of dce being done.
6178         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6179         (rest_of_handle_fast_byte_dce): New function.
6180         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6181         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6182
6183 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6184
6185         PR fortran/35019
6186         * gcc.h: Added fortran options that take arguments to
6187         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6188         macros.
6189
6190 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6191
6192         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6193         scalarization if on the LHS and not a full access.
6194
6195 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6196
6197         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6198
6199 2008-04-18  Rafael Espindola  <espindola@google.com>
6200
6201         * tree-vrp.c (find_case_label_index): Fix the binary search.
6202         (find_case_label_range): New.
6203         (vrp_visit_switch_stmt): Use find_case_label_range.
6204         (simplify_switch_using_ranges): Use find_case_label_range.
6205
6206 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6207
6208         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6209         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6210
6211 2008-04-18  Tom Tromey  <tromey@redhat.com>
6212
6213         PR libcpp/15500:
6214         * doc/cpp.texi (Implementation-defined behavior): Mention
6215         -finput-charset.
6216
6217 2008-04-18  Ian Lance Taylor  <iant@google.com>
6218
6219         * fold-const.c (pointer_may_wrap_p): New static function.
6220         (fold_comparison): Add another test for pointer overflow.  Use
6221         pointer_may_wrap_p to disable some false positives.
6222
6223 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6224           
6225         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6226         (fname_as_string): Match updated cpp_interpret_string prototype.
6227         (fix_string_type): Support char16_t* and char32_t*.
6228         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6229         derivative) nodes.  Register as builtin if C++0x.
6230         (c_parse_error): Support CPP_CHAR{16,32}.
6231         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6232         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6233         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6234         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6235         CTI_CHAR32_ARRAY_TYPE>: New elements.
6236         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6237         char32_type_node, signed_char32_type_node, char16_array_type_node,
6238         char32_array_type_node): New defines.
6239         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6240         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6241         (lex_string): Support CPP_STRING{16,32}, match updated
6242         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6243         (lex_charconst): Support CPP_CHAR{16,32}.
6244         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6245         and CPP_STRING{16,32}.
6246
6247 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6248
6249         PR bootstrap/35457
6250         * aclocal.m4: Regenerate.
6251         * configure: Regenerate.
6252
6253 2008-04-18  Jan Hubicka  <jh@suse.cz>
6254
6255         * except.c (dw2_size_of_call_site_table,
6256         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6257
6258         * cgraphbuild.c (build_cgraph_edges): Update.
6259         * tree-pass.h: Update comment.
6260         * final.c (leaf_function_p): Update.
6261         (leaf_renumber_regs): Update.
6262         (rest_of_clean_state): Update.
6263         * omp-low.c (expand_omp_parallel): Update.
6264         * ipa-reference.c (analyze_function): Update.
6265         * reorg.c (find_end_label): Update.
6266         (optimize_skip): Update.
6267         (fill_simple_delay_slots): Update.
6268         (fill_simple_delay_slots): Update.
6269         (make_return_insns): Update.
6270         (dbr_schedule): Update.
6271         * gimple-low.c (record_vars_into): Update.
6272         * cfgbuild.c (make_edges): Update.
6273         * function.c (assign_stack_local): Update.
6274         (assign_parm_adjust_stack_rtl): Update.
6275         (locate_and_pad_parm): Update.
6276         (allocate_struct_function): Do not initialize stack_alignment_needed
6277         and preferred_stack_boundary here.
6278         (stack_protect_prologue): Update.
6279         (stack_protect_epilogue): Update.
6280         (expand_function_start): Initialize stack_alignment_needed,
6281         preferred_stack_boundary and max_jumptable_ents.
6282         (expand_function_end): Update.
6283         (free_after_compilation): Do not NULLify epilogue_delay_list.
6284         * function.h (struct rtl_data): Add stack_protect_guard,
6285         stack_alignment_needed,
6286         preferred_stack_boundary, epilogue_delay_list.
6287         (struct function): Remove value_histograms, stack_alignment_needed,
6288         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6289         last_label_uid,
6290         unexpanded_var_list, stack_protect_guard.
6291         (current_function_epilogue_delay_list): Remove.
6292         * ipa-type-escape.c (analyze_function): Update.
6293         * gimplify.c (pop_gimplify_context): Update comment.
6294         * calls.c (expand_call): Update.
6295         (emit_library_call_value_1): Update.
6296         * except.c (set_nothrow_function_flags): Update.
6297         * cfgexpand.c (get_decl_align_unit): Update.
6298         (create_stack_guard): Update.
6299         (estimated_stack_frame_size): Update.
6300         (expand_used_vars): Update.
6301         (tree_expand_cfg): Free histogram earliers, init expansion variables.
6302         * explow.c (allocate_dynamic_stack_space): Update.
6303         * tree-ssa-live.c (remove_unused_locals): Update.
6304         * varasm.c (mark_constant_pool): Update.
6305         * tree-inline.c (remap_decls): Update.
6306         (initialize_cfun): Update.
6307         (declare_return_variable): Update.
6308         (inline_forbidden_p): Update.
6309         (expand_call_inline): Update.
6310         (declare_inline_vars): Update.
6311         (tree_function_versioning): Update.
6312         * tree-flow.h (value_histograms): New.
6313         (VALUE_HISTOGRAMS): New macro.
6314         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6315         last_label_uid.
6316         * tree-cfg.c (set_bb_for_stmt): Update.
6317         (replace_by_duplicate_decl): Update.
6318         (move_block_to_fn): Update.
6319         (new_label_mapper): Update.
6320         (dump_function_to_file): Update.
6321         * ipa-struct-reorg.c (build_data_structure): Update.
6322         * cfgrtl.c (print_rtl_with_bb): Update.
6323         * reload1.c (reload): Update.
6324         (reload): Update.
6325         * config/i386/i386.c (setup_incoming_varargs_64,
6326         ix86_compute_frame_layout): Update.
6327         * config/arc/arc.c (arc_output_function_epilogue): Update.
6328
6329 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6330
6331         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6332         for FreeBSD as well.
6333         * gthr-posix95.h: Likewise.
6334
6335 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6336
6337         PR rtl-optimization/35838
6338         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6339         out the byte offset of the first subreg.
6340
6341 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6342
6343         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6344         to split_ti instead of three separate calls with single member arrays.
6345         (subti3 splitter): Ditto.
6346         (adddi3 splitter): Ditto with split_di.
6347         (subdi3 splitter): Ditto.
6348         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6349         two separate calls with single member arrays.  Swap match_dup
6350         operands 1 and 2 to better fit into the array.
6351         (negdi2 splitter): Ditto with split_di.
6352         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6353         two separate calls with single member arrays.  Swap match_dup operands
6354         6 and 7 to better fit into the array.
6355
6356 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6357
6358         * config/i386/i386.c (sse_builtin_type): New.
6359         (bdesc_sse_args): Likewise.
6360         (bdesc_sse_3arg): Removed.
6361         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6362         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6363         IX86_BUILTIN_ROUNDPS.
6364         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6365         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6366         IX86_BUILTIN_ROUNDPS.
6367         (ix86_expand_sse_4_operands_builtin): Removed.
6368         (ix86_expand_sse_operands_builtin): New.
6369         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6370         and CODE_FOR_sse4_1_roundps.
6371         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6372         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6373
6374 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6375
6376         PR target/35907
6377         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6378         regs before frame pop when needed.  If use_backchain_to_restore_sp
6379         then load backchain into a temp reg to restore vr and vrsave.  Add
6380         code to restore vr after frame pop if possible.
6381
6382 2008-04-17  Richard Guenther  <rguenther@suse.de>
6383
6384         * tree-vn.c (expressions_equal_p): Do not check type
6385         equality or compatibility before calling operand_equal_p.
6386         * fold-const.c (operand_equal_p): Check equivalence of
6387         integer constants before bailing out due to signedness or
6388         precision differences.
6389         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6390         spurious differences in type qualification.  Ignore types
6391         for COMPONENT_REFs at all.
6392
6393 2008-04-17  Christian Bruel  <christian.bruel@st.com>
6394
6395         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6396         msw_skip comparison.
6397         
6398 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
6399
6400         PR c/35739
6401         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6402         reg type.
6403
6404         PR tree-optimization/35899
6405         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6406         rather than TREE_OPERAND.
6407
6408 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
6409
6410         PR target/35944
6411         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6412         temporary registers.  Change operand predicate to general_operand.
6413         (remainderxf3): Ditto.
6414
6415 2008-04-16  Richard Guenther  <rguenther@suse.de>
6416
6417         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6418         * tree-affine.c (aff_combination_expand): Look through some
6419         conversions.
6420
6421 2008-04-15  Doug Kwan  <dougkwan@google.com>
6422
6423         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6424         for hex printing.
6425         * tree-pretty-print.c (dump_generic_node): Ditto.
6426         * final.c (output_addr_const): Ditto.
6427         * dwarf2out.c (output_cfi): Ditto.
6428         * c-pretty-print.c (pp_c_integer_constant): Ditto.
6429         * print-rtl.c (print_rtx): Ditto.
6430         * print-tree.c (print_node_brief, print_node): Ditto.
6431         * c-common.c (match_case_to_enum_1): Ditto.
6432         * sched-vis.c (print_value): Ditto.
6433         * config/i386/i386.c (print_operand): Cast to long unsigned int
6434         for hex printing.
6435
6436 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
6437         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
6438         MS Windows VirtualProtect function.
6439
6440 2008-04-15  Jan Hubicka  <jh@suse.cz>
6441
6442         * gengtype.c (write_root): Param_is argument is OK.
6443         * expr.c (expand_expr_real_1): Update call of get_exception_*.
6444         * function.h: Include varray.h
6445         (rtl_eh): New stucture based on except.c one.
6446         (call_site_record): New forward declaration and vector type.
6447         * calls.c (emit_call_1): Do not call
6448         note_current_region_may_contain_throw.
6449         * except.c (eh_status): Remove cur_region, try_region since they are
6450         unused.
6451         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6452         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6453         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
6454         Remove call_site_data_used, call_site_data_size.
6455         Turn call_site_record into vector in function.h.
6456         (note_current_region_may_contain_throw): Remove.
6457         (get_exception_pointer, get_exception_filter): Do not take struct
6458         function argument; update.
6459         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6460         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6461         build_post_landing_pads, dw2_build_landing_pads,
6462         sjlj_assign_call_site_values, sjlj_mark_call_sites,
6463         sjlj_emit_function_enter, sjlj_emit_function_enter, 
6464         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6465         sjlj_build_landing_pads, finish_eh_generation,
6466         remove_exception_handler_label, remove_eh_handler,
6467         maybe_remove_eh_handler, add_reachable_handler,
6468         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6469         add_action_record, collect_one_action_chain, add_call_site,
6470         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
6471         sjlj_output_call_site_table, output_function_exception_table,
6472         * except.h (note_current_region_may_contain_throw): Remove
6473         (get_exception_pointer, get_exception_filter): Do not take struct
6474         function argument.
6475         * Makefile.in (GTFILES): Put varargs before struct function.
6476
6477 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6478
6479         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6480         punt for STRING_CST.
6481         (get_constraint_for): Deal with STRING_CST here instead.
6482
6483 2008-04-15  Richard Guenther  <rguenther@suse.de>
6484
6485         * tree-ssa-propagate.c (substitute_and_fold): Substitute
6486         statements in a basic-block with a backward walk.  Do not
6487         substitute into dead statements but instead remove those.
6488
6489 2008-04-15  Richard Guenther  <rguenther@suse.de>
6490
6491         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
6492         to zero, thus disable creation of SFTs.
6493
6494 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6495
6496         * tree-predcom.c (suitable_reference_p): Return false if the
6497         reference can throw.
6498
6499 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
6500
6501         PR c/35751
6502         * c-decl.c (finish_decl): If extern or static var has variable
6503         size, set TREE_TYPE (decl) to error_mark_node.
6504
6505 2008-04-15  Rafael Espindola  <espindola@google.com>
6506
6507         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
6508         variable arg1.
6509
6510 2008-04-15  Richard Guenther  <rguenther@suse.de>
6511
6512         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6513         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
6514         (visit_reference_op_load): Do walk vuse-vdef chains on
6515         vn_reference_lookup.
6516         (visit_reference_op_store): But do not here.
6517         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
6518         vn_reference_lookup.
6519         (vn_lookup_with_vuses): But do so here.
6520
6521 2008-04-14  Ian Lance Taylor  <iant@google.com>
6522
6523         * fold-const.c (fold_overflow_warning): Remove assertion.
6524
6525 2008-04-15  Ben Elliston  <bje@au.ibm.com>
6526
6527         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
6528         temp1 local variables.
6529
6530 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
6531
6532         PR target/35661
6533         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
6534         ".text.unlikely" section as executable.
6535
6536 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
6537
6538         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6539         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
6540         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
6541         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
6542         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
6543         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
6544         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
6545
6546 2008-04-14  Ian Lance Taylor  <iant@google.com>
6547
6548         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
6549         * fold-const.c (fold_comparison): If appropriate, test
6550         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
6551         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
6552         reassociating a pointer type.
6553         * doc/invoke.texi (Optimize Options): Document that
6554         -fstrict-overflow applies to pointer wraparound.
6555
6556 2008-04-13  Jan Hubicka  <jh@suse.cz>
6557
6558         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
6559
6560 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
6561
6562         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
6563         we are going to "save the world".
6564
6565 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
6566
6567         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
6568         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
6569         operand 0 constraint, not "=".
6570
6571 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
6572
6573         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
6574
6575 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6576
6577         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
6578         of size of positions_needed * CHAR_BIT.
6579
6580 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6581
6582         PR middle-end/35897
6583         * dse.c (store_info): Change positions_needed to unsigned
6584         HOST_WIDE_INT.
6585         (lowpart_bitmask): New.
6586         (record_store): Cast to unsigned HOST_WIDE_INT for
6587         positions_needed.  Assert width <= size of positions_needed *
6588         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
6589         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
6590         lowpart_bitmask to set mask.
6591
6592 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
6593
6594         * config/bfin/constraints.md: New file.
6595         * config/bfin/bfin.md: Include it.
6596         (adddi3): Use satisfies_constraint functions instead of the old macros.
6597         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
6598         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
6599         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
6600         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
6601         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
6602         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
6603         EXTRA_CONSTRAINT): Delete.
6604         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
6605         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
6606         of the old macros.
6607         * config/bfin/bfin.c: Include "tm-constrs.h".
6608         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
6609         Use satisfies_constraint functions instead of the old macros.
6610         * doc/md.texi (Blackfin Constraints): Update file name reference.
6611
6612 2008-04-11  Richard Guenther  <rguenther@suse.de>
6613
6614         PR tree-optimization/35869
6615         * tree-vrp.c (execute_vrp): Move switch statement update after
6616         jump threading.  Schedule another cfg cleanup run.
6617
6618 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
6619
6620         PR c/35744
6621         * attribs.c (decl_attributes): Return early on errorneous node.
6622
6623 2008-04-10  Oleg Ryjkov  <olegr@google.com>
6624
6625         * tree.h (struct tree_base): Added a new flag default_def_flag.
6626         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
6627
6628 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6629
6630         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
6631
6632 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6633
6634         PR target/35768
6635         * pa.md: Define mode iterator P.  Define mode attribute dwc.
6636         (dcacheflush): Update pattern to use iterator P and attribute dwc.
6637         (icacheflush): Likewise.
6638         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
6639         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
6640
6641 2008-04-11  Ben Elliston  <bje@au.ibm.com>
6642
6643         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
6644
6645 2008-04-10  Rafael Espindola  <espindola@google.com>
6646
6647         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
6648         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
6649         (extract_range_from_expr): The same.
6650
6651 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6652
6653         * config/mips/mips.md (GPR2): New mode iterator.
6654         (seq): Add comment.
6655         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
6656         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
6657         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
6658         Rewrite these to take two modes, the mode of comparison and the
6659         mode of the destination.
6660         * config/mips/mips.c (mips_expand_scc): Instead of having
6661         paradoxical subreg as destination, expand "narrowing" scc if mode
6662         of comparison is SI and target is requested in DI mode.
6663         (mips_emit_int_order_test): Update comment.  Make mode of
6664         comparison match CMP0 rather than TARGET.  When creating inverse
6665         target use mode of TARGET.
6666
6667 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6668
6669         * gcov-dump.c (tag_summary): Only print summaries for the first
6670         GCOV_COUNTERS_SUMMABLE counters.
6671
6672 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
6673
6674         * config/i386/i386.md (absneg): New code iterator.
6675         (absnegprefix): New code attribute.
6676         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
6677         patterns using absneg code iterator.
6678         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
6679         using absneg code iterator.
6680         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
6681         *neg<mode>2 patterns using absneg code iterator.
6682         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6683         *negextendsfdf2 patterns using absneg code iterator.
6684         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
6685         *negextendsfxf2 patterns using absneg code iterator.
6686         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6687         *negextendsfdf2 patterns using absneg code iterator.
6688         * config/i386/sse.md (<code><mode>2): Macroize expander from
6689         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
6690
6691 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6692
6693         * config/s390/s390.h: Remove the remains of the recent search
6694         & replace action of current_function_outgoing_args_size.
6695
6696 2008-04-10  Ira Rosen  <irar@il.ibm.com>
6697
6698         PR tree-optimization/35821
6699         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
6700         NEW_STMT_LIST is not NULL.
6701
6702 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
6703
6704         PR libstdc++/35597
6705         * toplev.c (process_options): Remove -ffunction-sections debugging
6706         warning.
6707
6708 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
6709
6710         PR middle-end/PR28690
6711         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
6712         than gen_rtx_fmt_ee to perform more canonicalizations.
6713
6714 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6715
6716         PR driver/35665
6717         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6718
6719 2008-04-09  Richard Guenther  <rguenther@suse.de>
6720
6721         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6722         (dump_function_to_file): Dump function arguments with types.
6723
6724 2008-04-08  Richard Guenther  <rguenther@suse.de>
6725
6726         * fold-const.c (fold_widened_comparison): Do not allow
6727         sign-changes that change the result.
6728
6729 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
6730
6731         PR target/35839
6732         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
6733         kinds of indirect references.
6734
6735 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
6736
6737         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
6738         GNU Fortran language string.
6739
6740 2008-04-08  Rafael Espindola  <espindola@google.com>
6741
6742         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
6743         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
6744         * tree.h (tree_call_nonnegative_warnv_p): New.
6745
6746 2008-04-08  Jan Hubicka  <jh@suse.cz>
6747
6748         * function.c (free_after_compilation): Clear out regno_reg_rtx
6749         pointer.
6750
6751 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
6752
6753         Revert
6754         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6755
6756         PR middle-end/PR28690
6757         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
6758         same precedence as REG_POINTER and MEM_POINTER operands.
6759
6760 2008-04-08  Richard Guenther  <rguenther@suse.de>
6761
6762         PR middle-end/35834
6763         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
6764         for adding index to base.
6765
6766 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
6767
6768         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
6769         (MINGW_ENABLE_EXECUTE_STACK): New.
6770         (IN_LIBGCC2): For libgcc include windows.h file for
6771         function declarations.
6772
6773 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
6774
6775         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
6776         and tem2 if tem1 is not a REG or MULT.
6777
6778 2008-04-08  Jan Hubicka  <jh@suse.cz>
6779
6780         * function.h (incomming_args): Break out of struct function.
6781         (function_subsections): Break out of struct function.
6782         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
6783         return_rtx and hard_reg_initial_vals from struct function.
6784         Kill inl_max_label_num.
6785         (current_function_pops_args, current_function_args_info,
6786         current_function_args_size, current_function_args_size,
6787         current_function_pretend_args_size,
6788         current_function_outgoing_args_size,
6789         current_function_internal_arg_pointer, current_function_return_rtx):
6790         Kill compatibility accestor macros.
6791         * builtins.c (expand_builtin_apply_args_1): Update.
6792         (expand_builtin_next_arg): Update.
6793         * df-scan.c (df_get_call_refs): Update.
6794         * dbxout.c (dbxout_function_end): Update.
6795         * dwarf2out.c (dwarf2out_switch_text_section): Update.
6796         (output_line_info): Update.
6797         (secname_for_decl): Update.
6798         (dwarf2out_var_location): Update.
6799         * function.c (free_after_compilation): Update.
6800         (assign_parm_find_stack_rtl): Update.
6801         (assign_parms): Update.
6802         (expand_dummy_function_end): Update.
6803         (expand_function_end): Update.
6804         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6805         (expand_call): Update.
6806         (emit_library_call_value_1): Update.
6807         (store_one_arg): Update.
6808         * varasm.c (initialize_cold_section_name): Update.
6809         (unlikely_text_section): Update.
6810         (unlikely_text_section_p): Update.
6811         (assemble_start_function): Update.
6812         (assemble_end_function): Update.
6813         (default_section_type_flags): Update.
6814         (switch_to_section): Update.
6815         * integrate.c (set_decl_abstract_flags): Update.
6816         (get_hard_reg_initial_val): Update.
6817         (has_hard_reg_initial_val): Update.
6818         (allocate_initial_values): Update.
6819         * resource.c (init_resource_info): Update.
6820         * config/alpha/alpha.c (NUM_ARGS): Update.
6821         (direct_return): Update.
6822         (alpha_va_start): Update.
6823         (alpha_sa_size): Update.
6824         (alpha_initial_elimination_offset): Update.
6825         (alpha_expand_prologue): Update.
6826         (alpha_start_function): Update.
6827         (alpha_expand_epilogue): Update.
6828         (unicosmk_initial_elimination_offset):
6829         * config/alpha/alpha.md (call expander): Update.
6830         * config/s390/s390.c (s390_register_info): Update.
6831         (s390_register_info): Update.
6832         (s390_frame_info): Update.
6833         (s390_initial_elimination_offset): Update.
6834         (s390_build_builtin_va_list): Update.
6835         (s390_va_start): Update.
6836         * config/spu/spu.c (direct_return): Update.
6837         (spu_expand_prologue): Update.
6838         (spu_initial_elimination_offset): Update.
6839         (spu_build_builtin_va_list): Update.
6840         (spu_va_start): Update.
6841         * config/sparc/sparc.c (sparc_init_modes): Update.
6842         (sparc_compute_frame_size): Update.
6843         (function_value): Update.
6844         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6845         * config/i386/i386.md (return expander): Update.
6846         * config/i386/i386.c (ix86_va_start): Update.
6847         (ix86_can_use_return_insn_p): Update.
6848         (ix86_compute_frame_layout): Update.
6849         (ix86_expand_epilogue): Update.
6850         * config/sh/sh.c (output_stack_adjust): Update.
6851         (calc_live_regs): Update.
6852         (sh_expand_prologue): Update.
6853         (sh_builtin_saveregs): Update.
6854         (sh_va_start): Update.
6855         (initial_elimination_offset): Update.
6856         (sh_allocate_initial_value): Update.
6857         (sh_function_ok_for_sibcall): Update.
6858         (sh_get_pr_initial_val): Update.
6859         * config/sh/sh.md (return expander): Update.
6860         * config/avr/avr.c (frame_pointer_required_p): UPdate.
6861         * config/crx/crx.c (crx_compute_frame): UPdate.
6862         (crx_initial_elimination_offset): UPdate.
6863         * config/xtensa/xtensa.c (compute_frame_size): Update
6864         (xtensa_builtin_saveregs): Update.
6865         (xtensa_va_start): Update.
6866         (order_regs_for_local_alloc): Update.
6867         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6868         (xstormy16_expand_builtin_va_start): Update.
6869         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6870         * config/m68hc11/m68hc11.md (return expanders): Update.
6871         * config/m68hc11/m68hc11.c (expand_prologue): Update.
6872         (expand_epilogue): Update.
6873         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6874         (cris_simple_epilogue): Update.
6875         (cris_expand_prologue): Update.
6876         (cris_expand_epilogue): Update.
6877         * config/iq2000/iq2000.c (iq2000_va_start): Update.
6878         (compute_frame_size): Update.
6879         * config/mt/mt.c (mt_compute_frame_size): Update.
6880         * config/mn10300/mn10300.c (expand_prologue): Update.
6881         (expand_epilogue): Update.
6882         (initial_offset): Update.
6883         (mn10300_builtin_saveregs):
6884         * config/mn10300/mn10300.md (return expander): Update.
6885         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6886         (ia64_initial_elimination_offset): Update.
6887         (ia64_initial_elimination_offset): Update.
6888         (ia64_expand_prologue): Update.
6889         * config/m68k/m68k.md (return expander): Update.
6890         * config/rs6000/rs6000.c (rs6000_va_start): Update.
6891         (rs6000_stack_info): Update.
6892         * config/mcore/mcore.c (layout_mcore_frame): Update.
6893         (mcore_expand_prolog): Update.
6894         * config/arc/arc.c (arc_compute_frame_size): Update.
6895         * config/score/score3.c (score3_compute_frame_size): Update.
6896         * config/score/score7.c (score7_compute_frame_size): Update.
6897         * config/arm/arm.c (use_return_insn): Update.
6898         (thumb_find_work_register): Update.
6899         (arm_compute_save_reg_mask): Update.
6900         (arm_output_function_prologue): Update.
6901         (arm_output_epilogue): Update.
6902         (arm_size_return_regs): Update.
6903         (arm_get_frame_offsets): Update.
6904         (arm_expand_prologue): Update.
6905         (thumb_exit): Update.
6906         (thumb_unexpanded_epilogue): Update.
6907         (thumb1_output_function_prologue): Update.
6908         * config/pa/pa.md (return expander): Update.
6909         * config/pa/pa.c (compute_frame_size): Update.
6910         (hppa_builtin_saveregs): Update.
6911         * config/mips/mips.c (mips_va_start): Update.
6912         (mips16_build_function_stub): Update.
6913         (mips_compute_frame_info): Update.
6914         (mips_restore_gp): Update.
6915         (mips_output_function_prologue): Update.
6916         (mips_expand_prologue): Update.
6917         * config/v850/v850.c (compute_frame_size): Update.
6918         (expand_prologue): * config/mmix/mmix.c (along): update.
6919         (mmix_initial_elimination_offset): update.
6920         (mmix_reorg): update.
6921         (mmix_use_simple_return): update.
6922         (mmix_expand_prologue): update.
6923         (mmix_expand_epilogue): Update.
6924         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
6925         (emit_link_insn): Update.
6926
6927 2008-04-08  Anatoly Sokolov <aesok@post.ru>
6928
6929         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
6930         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
6931         instructions.
6932         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
6933         atmega103 device.
6934
6935 2008-04-07  Jan Hubicka  <jh@suse.cz>
6936
6937         * function.h (rtl): Rename to x_rtl.
6938         (crtl): New define.
6939         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6940         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6941         used_temp_slots avail_temp_slots, temp_slot_level,
6942         nonlocal_goto_handler_labels): Update accesstors.
6943         (rtl): New global variable.
6944         (struct function): Move some fileds to rtl_data.
6945         (get_arg_pointer_save_area): Update prototype.
6946         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6947         get_arg_pointer_save_area.
6948         * expr.c (init_expr): Update
6949         * function.c (get_frame_size): Update
6950         (assign_stack_local): Update
6951         (expand_function_end): Update.
6952         (get_art_pointer_save_area): Update
6953         * function.h 
6954         * emit-rtl.c (rtl): Declare.
6955         (regno_reg_rtx): Declare.
6956         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6957         Update.
6958         (gen_reg_rtx): Update.
6959         * varasm.c (n_deferred_constatns): Update accestor.
6960         (init_varasm_status): Do not allocate varasm_status.
6961         (force_const_mem, get_pool_size, output_constant_pool): Update.
6962         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6963         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6964         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6965         * sparc/sparc.h (INIT_EXPANDERS): Update.
6966         * ia64/ia64.h (INIT_EXPANDERS): Update.
6967
6968 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
6969
6970         * reload.c (push_secondary_reload): Add missing break to for loop.
6971
6972 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6973
6974         PR middle-end/PR28690
6975         * rtlanal.c: Update copyright years.
6976         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6977         as REG_POINTER and MEM_POINTER operands.
6978         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6979         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6980         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6981         * gcse.c: Update copyright years.
6982         (pre_delete): Call gen_reg_rtx_and_attrs.
6983         (hoist_code): Likewise.
6984         (build_store_vectors): Likewise.
6985         (delete_store): Likewise.
6986         * loop-invariant.c (move_invariant_reg): Likewise.
6987         Update copyright years.
6988
6989 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
6990
6991         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6992         control string instead of quoted.
6993
6994 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6995
6996         * doc/rtl.texi: Rewrite of subreg section.
6997
6998 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
6999
7000         PR/35842
7001         * config/i386/i386.c (legitimize_pic_address): Add treating
7002         of dllimport SYM_REF's.
7003         (legitimize_dllimport_symbol): Add prototype.
7004
7005 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7006
7007         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7008         reference in constructor with non self-referential type.
7009
7010 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7011
7012         Removal of Return with Depressed Stack Pointer support
7013         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7014         (ECF_SP_DEPRESSED): Likewise.
7015         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7016         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7017         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7018         (expand_call): Do not test ECF_SP_DEPRESSED.
7019         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7020         * function.c (keep_stack_depressed): Delete.
7021         (handle_epilogue_set): Likewise.
7022         (update_epilogue_consts): Likewise.
7023         (emit_equiv_load): Likewise.
7024         (thread_prologue_and_epilogue_insns): Remove support for Return with
7025         Depressed Stack Pointer.
7026         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7027
7028 2008-04-06  Richard Guenther  <rguenther@suse.de>
7029
7030         PR tree-optimization/35400
7031         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7032         information from SSA_NAMEs.
7033
7034 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7035
7036         * config/avr/avr.h (avr_mega_p): Remove declaration.
7037         (AVR_MEGA): Remove macro.
7038         * config/avr/avr.c (avr_mega_p): Remove variable.
7039         (avr_override_options): Remove inicializion of avr_mega_p.
7040         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7041         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7042         (avr_jump_mode): (Ditto.).
7043         (avr_output_progmem_section_asm_op): (Ditto.).
7044         (avr_asm_init_sections): (Ditto.).
7045         (avr_asm_init_sections): (Ditto.).
7046         (avr_rtx_costs): (Ditto.).
7047         * config/avr/avr.md: (Ditto.).
7048         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7049         '__AVR_MEGA__'.
7050
7051 2008-04-06  Richard Guenther  <rguenther@suse.de>
7052
7053         PR tree-optimization/35842
7054         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7055         is_gimple_invariant_address.
7056
7057 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7058
7059         * gcc.c (default_compilers): Sync Fortran extensions list with
7060         that in fortran/lang-specs.h.
7061         * doc/invoke.texi: Likewise.
7062         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7063         * dwarf2out.c (gen_compile_unit_die): Likewise.
7064
7065 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7066
7067         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7068
7069 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7070
7071         PR target/12329
7072         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7073         attribute is used for nested functions.
7074
7075 2008-04-05  Jan Hubicka  <jh@suse.cz>
7076
7077         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7078
7079         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7080         letter argument.
7081         (dump_files): Update.
7082         (enable_rtl_dump_file): Do not accept letter argument.
7083         * tree-pass.h (dump_file_info): Remove letter argument.
7084         * toplev.c (decode_d_option): Update -da handling.
7085         * toplev.h (enable_rtl_dump_file): Update prototype.
7086         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7087         it out based on pass type.
7088         (register_dump_files_1): Likewise.
7089         (init_optimization_passes): Update register_one_dump_file calls.
7090         (execute_one_pass): Sanity check that IPA passes are called at IPA
7091         level and RTL passes at RTL level.
7092         (execute_pass_list): IPA pass can not be after or subpass of
7093         GIMPLE/RTL pass.
7094         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7095         disallov RTL subpasses of IPA subpasses.
7096
7097 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7098
7099         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7100         builtins that return exactly once and do not throw. Cache call to
7101         call_expr_flags.
7102
7103 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7104
7105         PR rtl-optimization/34916
7106         PR middle-end/35519
7107         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7108         between instruction pairs.
7109
7110 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7111
7112         * doc/invoke.texi: Document -mbitops for SH.
7113         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7114         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7115         * config/sh/sh.c (print_operand): Add %t operand code.
7116         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7117         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7118         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7119         (extendqihi2): Likewise.
7120         (movqi_i): Likewise.
7121         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7122         (extv): Use bld instruction for SH2A if possible.
7123         (extzv): Likewise.
7124         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7125         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7126         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7127         (bset.b, bclr.b): Define peepholes.
7128         * config/sh/sh.opt (mbitops): New option.
7129
7130 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7131
7132         PR target/35620
7133         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7134         and view convert expression.
7135
7136 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7137
7138         PR target/35364
7139         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7140
7141 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7142
7143         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7144
7145         * config/i386/cpuid.h (bit_AES): New.
7146         (bit_PCLMUL): Likewise.
7147
7148         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7149         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7150         SSE2 if AES or PCLMUL is enabled.
7151         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7152         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7153         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7154         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7155         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7156         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7157         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7158         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7159         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7160         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7161         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7162         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7163         __builtin_ia32_aeskeygenassist128 and
7164         __builtin_ia32_pclmulqdq128.
7165         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7166         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7167         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7168
7169         * config/i386/i386.h (TARGET_AES): New.
7170         (TARGET_PCLMUL): Likewise.
7171         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7172
7173         * config/i386/i386.md (UNSPEC_AESENC): New.
7174         (UNSPEC_AESENCLAST): Likewise.
7175         (UNSPEC_AESDEC): Likewise.
7176         (UNSPEC_AESDECLAST): Likewise.
7177         (UNSPEC_AESIMC): Likewise.
7178         (UNSPEC_AESKEYGENASSIST): Likewise.
7179         (UNSPEC_PCLMUL): Likewise.
7180
7181         * config/i386/i386.opt (maes): New.
7182         (mpclmul): Likewise.
7183
7184         * config/i386/sse.md (aesenc): New pattern.
7185         (aesenclast): Likewise.
7186         (aesdec): Likewise.
7187         (aesdeclast): Likewise.
7188         (aesimc): Likewise.
7189         (aeskeygenassist): Likewise.
7190         (pclmulqdq): Likewise.
7191
7192         * config/i386/wmmintrin.h: New.
7193
7194         * doc/extend.texi: Document AES and PCLMUL built-in function.
7195
7196         * doc/invoke.texi: Document -maes and -mpclmul.
7197
7198 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7199
7200         * function.c (free_after_parsing): Replace with
7201         cxx_push_function_context from C++ front-end.
7202         (allocate_struct_function): Don't call langhook.
7203         * langhooks.h (struct lang_hooks_for_functions): Delete.
7204         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7205         member "function".
7206         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7207         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7208         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7209         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7210         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7211         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7212         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7213
7214         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7215         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7216         
7217 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7218
7219         PR c/35440
7220         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7221         for all types.
7222
7223 2008-04-04  Richard Guenther  <rguenther@suse.de>
7224
7225         PR middle-end/35823
7226         * fold-const.c (optimize_minmax_comparison): Use the correct
7227         type for the constant in the simplified comparison.
7228
7229 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7230
7231         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7232         Pass L2 size as "--param l2-cache-size" to the compiler.
7233         (decode_l2_cache): New function to decode L2 cache parameters using
7234         0x8000006 extended cpuid function.
7235         (detect_caches_amd): Determine parameters of L2 cache using
7236         decode_l2_caches function.
7237         (decode_caches_intel): Decode L2 cache parameters.
7238         (detect_caches_intel): Determine L2 cache parameters using
7239         decode_caches_intel and decode_l2_caches functions.
7240
7241 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7242
7243         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7244         secondary input reload for subword loads from the constant pool.
7245
7246 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7247
7248         PR target/35713
7249         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7250           constants of the appropriate size for runtime calculations.
7251
7252         PR c/35712
7253         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7254           decimal-float literal constant zero.
7255
7256 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7257
7258         PR c/35738
7259         * c-parser.c (c_parser_omp_atomic): Call
7260         default_function_array_conversion on the RHS.
7261
7262         PR middle-end/35818
7263         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7264         call is_variable_sized if decl has incomplete type.
7265
7266 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7267
7268         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7269
7270 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7271
7272         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7273         iterators.
7274         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7275         (sgt<u>): Merge sgt and sgtu into new expander.
7276         (sgt, sgtu): Remove expanders.
7277         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7278         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7279         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7280         *sgtu_<mode>_mips16 into new pattern.
7281         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7282         (sge<u>): Merge sge and sgeu into new expander.
7283         (sge, sgeu): Remove expanders.
7284         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7285         new pattern.
7286         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7287         (slt<u>): Merge slt and sltu into new expander.
7288         (slt, sltu): Remove expanders.
7289         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7290         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7291         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7292         *sltu_<mode>_mips16 into new pattern.
7293         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7294         (sle<u>): Merge sle and sleu into new expander.
7295         (sle, sleu): Remove expanders.
7296         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
7297         (*sle_<mode>, *sleu_<mode>): Remove patterns.
7298         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
7299         *sleu_<mode>_mips16 into new pattern.
7300         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
7301
7302 2008-04-03  Jan Hubicka  <jh@suse.cz>
7303
7304         PR tree-optimization/35795
7305         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7306         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7307         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7308         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7309         * score/score3.c (score3_output_mi_thunk): Likewise.
7310         * score/score7.c (score7_output_mi_thunk): Likewise.
7311         * mips/mips.c (mips_output_mi_thunk): Likewise.
7312
7313 2008-04-03  Richard Guenther  <rguenther@suse.de>
7314
7315         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7316         conversions.  Simplify code.
7317
7318 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7319
7320         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7321
7322 2008-04-03  Tom Tromey  <tromey@redhat.com>
7323             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7324
7325         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7326         * config/bfin/t-bfin-linux (generated_files): Add
7327         linux-sysroot-suffix.h.
7328         * doc/install.texi (Prerequisites): Require make 3.80.
7329         * doc/sourcebuild.texi (Front End Directory): Document new
7330         variable.
7331         * Makefile.in (generated_files): New variable.
7332         (ALL_HOST_OBJS): New variable.
7333         ($(ALL_HOST_OBJS)): New target.
7334
7335 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7336
7337         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7338         (remap_block): Call id->transform_lang_insert_block instead
7339         of langhook.
7340         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7341         Set id.transform_lang_insert_block to NULL.
7342         (clone_body): Move to cp/optimize.c
7343         * tree-inline.h (struct copy_body_data): Change
7344         transform_lang_insert_block to function pointer.
7345         (copy_generic_body, copy_decl_no_change): Export.
7346         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7347         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7348         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7349
7350         * c-tree.h (insert_block): Kill.
7351         * c-decl.c (insert_block): Kill.
7352
7353 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7354
7355         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7356         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7357         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7358         argument.
7359         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7360         argument, call {push,pop}_function_context from here.
7361         * c-parser.c: Use c_{push,pop}_function_context.
7362
7363         * function.c (push_function_context_to): Move meat ...
7364         (push_function_context): ... here.  Simplify.
7365         * function.c (pop_function_context_from): Move meat ...
7366         (pop_function_context): ... here.  Simplify.
7367         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7368         leave_nested).
7369         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7370         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7371         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7372         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7373
7374 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7375
7376         * expmed.c (extract_force_align_mem_bit_field): Remove.
7377
7378 2008-04-03  Richard Guenther  <rguenther@suse.de>
7379
7380         PR middle-end/35800
7381         * expr.h (try_casesi): Adjust prototype.
7382         * expr.c (try_casesi): Take fallback label as extra parameter.
7383         Use that for gen_casesi if default_label is NULL.
7384         * stmt.c (expand_case): Pass fallback label to try_casesi,
7385         make sure to fill gaps with a fallback label if default_label
7386         is not present.
7387
7388 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7389
7390         PR target/35801
7391         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7392
7393 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7394
7395         * expmed.c (extract_split_bit_field): Remove if (0) code.
7396         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7397         (do_ds_constraint): Likewise.
7398
7399 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
7400
7401         * doc/cppopts.texi (-dU): Document.
7402         * c-common.h (flag_dump_macros): Update comment.
7403         * c-opts.c (handle_OPT_d): Handle -dU.
7404         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7405         dump_queued_macros, cb_used_define, cb_used_undef): New.
7406         (init_pp_output): Handle -dU.
7407         (cb_line_change): Call dump_queued_macros.
7408         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7409
7410 2008-04-02  Anatoly Sokolov <aesok@post.ru>
7411
7412         * config/avr/predicates.md (io_address_operand): New predicate. 
7413         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7414         * config/avr/avr.c (avr_io_address_p): Remove function.
7415         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
7416         'avr_io_address_p' function.
7417         (out_movhi_r_mr): (Ditto.).
7418         (out_movqi_mr_r): (Ditto.).
7419         (out_movhi_mr_r): (Ditto.).
7420         (avr_address_cost): (Ditto.).
7421
7422 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
7423
7424         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7425         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7426         in 32bit mode when XMM registers are available to avoid store
7427         forwarding stalls.
7428         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7429         corresponding post-reload splitters.
7430
7431 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7432
7433         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7434         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
7435         __builtin_ia32_roundss.
7436         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7437         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7438         __builtin_ia32_roundss.
7439         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7440         IX86_BUILTIN_SHUFPD here.
7441
7442 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7443
7444         * config/i386/i386.md (plogic): New.
7445         (plogicprefix): Likewise.
7446
7447         * config/i386/mmx.md (mmx_<code><mode>3): New.
7448         (mmx_and<mode>3): Removed.
7449         (mmx_ior<mode>3): Likewise.
7450         (mmx_xor<mode>3): Likewise.
7451
7452         * config/i386/sse.md (<code><mode>3): New.
7453         (*<code><mode>3): Likewise.
7454         (*<code><mode>3): Likewise.
7455         (<code><mode>3): Likewise.
7456         (*sse_<code><mode>3): Likewise.
7457         (*sse2_<code><mode>3): Likewise.
7458         (<code>tf3): Likewise.
7459         (*<code>tf3): Likewise.
7460         (and<mode>3): Likewise.
7461         (*and<mode>3): Likewise.
7462         (ior<mode>3): Removed.
7463         (*ior<mode>3): Likewise.
7464         (xor<mode>3): Likewise.
7465         (*xor<mode>3): Likewise.
7466         (*and<mode>3): Likewise.
7467         (*ior<mode>3): Likewise.
7468         (*xor<mode>3): Likewise.
7469         (and<mode>3): Likewise.
7470         (*sse_and<mode>3): Likewise.
7471         (*sse2_and<mode>3): Likewise.
7472         (andtf3): Likewise.
7473         (*andtf3): Likewise.
7474         (ior<mode>3): Likewise.
7475         (*sse_ior<mode>3): Likewise.
7476         (*sse2_ior<mode>3): Likewise.
7477         (iortf3): Likewise.
7478         (*iortf3): Likewise.
7479         (xor<mode>3): Likewise.
7480         (*sse_xor<mode>3): Likewise.
7481         (*sse2_xor<mode>3): Likewise.
7482         (xortf3): Likewise.
7483         (*xortf3): Likewise.
7484
7485 2008-04-02  Richard Guenther  <rguenther@suse.de>
7486
7487         PR tree-optimization/14495
7488         PR tree-optimization/34793
7489         * tree-vrp.c (struct switch_update): New structure.
7490         (to_remove_edges, to_update_switch_stmts): New VECs.
7491         (simplify_switch_using_ranges): New function.  Remove not taken
7492         case labels and edges.
7493         (simplify_stmt_using_ranges): Call it.
7494         (identify_jump_threads): Mark edges we have queued for removal
7495         so we don't thread them.
7496         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
7497         case label vector.
7498         * tree-cfg.c (group_case_labels): Deal with missing default label.
7499         (tree_verify_flow_info): Allow missing default label.
7500         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
7501         (emit_case_nodes): Likewise.
7502         (expand_case): Do not rely on the default label to be present.
7503         * expr.c (try_casesi): Deal with NULL default_label.
7504         (do_tablejump): Likewise.
7505
7506 2008-04-02  Richard Guenther  <rguenther@suse.de>
7507
7508         PR tree-optimization/14495
7509         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
7510         SWITCH_EXPR here ...
7511         (vrp_visit_switch_stmt): ... but here (new function).
7512         (find_case_label_index): New helper function.
7513         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
7514
7515 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7516
7517         * fwprop.c: Fix ISO-C99ism.
7518
7519 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7520
7521         PR bootstrap/35752
7522         * Makefile.in (objdir): Set it here.
7523         * configure.ac: Not here.  Find dynamic linker characteristics.
7524         * exec-tool.in: Use them.
7525         * aclocal.m4: Regenerate.
7526         * configure: Regenerate.
7527
7528 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7529
7530         * expr.c (expand_var): Delete it.
7531         * expr.h (expand_var): Delete prototype.
7532         * function.c (expand_function_start): Use expand_decl instead.
7533         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
7534         langhook.
7535
7536 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
7537
7538         PR rtl-optimization/35542
7539         * fwprop.c (forward_propagate_and_simplify): Replace
7540         loc_reg_mentioned_in_p with reg_mentioned_p.
7541
7542 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7543
7544         PR rtl-optimization/35281
7545         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
7546         (propagate_rtx_1): Handle PR_HANDLE_MEM.
7547         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
7548         (varying_mem_p): Move above propagate_rtx.
7549         (all_uses_available_at): Do not check MEMs.
7550
7551 2008-04-02  Rafael Espindola  <espindola@google.com>
7552
7553         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
7554         (register_edge_assert_for_2): Split the cond argument.
7555         (register_edge_assert_for_1): Adjust for the change in
7556         register_edge_assert_for_2.
7557         (register_edge_assert_for): Split the cond argument.
7558         (find_switch_asserts): Adjust for the change in
7559         register_edge_assert_for.
7560
7561 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
7562
7563         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
7564         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
7565         offsets for 64-bit mingw.
7566         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
7567         abi for x86_64-pc-mingw.
7568
7569 2008-04-02  Richard Guenther  <rguenther@suse.de>
7570
7571         * tree-vrp.c (extract_range_from_assert): Make sure to not
7572         produce range min/max with TREE_OVERFOW set.
7573         If merging a anti-range and a range keep the anti-range if
7574         the range covers all values of the type.
7575         (register_edge_assert_for_2): Only allow sign-changing
7576         conversions in detecting canonical range checks.  Also
7577         register an assert for the unsigned name if useful.
7578
7579         PR tree-optimization/35787
7580         * tree-vrp.c (vrp_val_max): New function.
7581         (vrp_val_min): Likewise.
7582         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
7583         (vrp_val_is_min): Likewise.
7584         (supports_overflow_infinity): Use vrp_val_{min,max}.
7585         (negative_overflow_infinity): Likewise.
7586         (positive_overflow_infinity): Likewise.
7587         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
7588         (is_positive_overflow_infinity): Likewise.
7589         (is_overflow_infinity): Likewise.
7590         (avoid_overflow_infinity): Use vrp_val_{min,max} and
7591         vrp_val_is_{min,max}.
7592         (set_and_canonicalize_value_range): Canonicalize anti-ranges
7593         to ranges if possible.  Avoid empty ranges.
7594
7595 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7596
7597         PR middle-end/35705
7598         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
7599         the expression is a function address.
7600
7601 2008-04-01  George Helffrich  <george@gcc.gnu.org>
7602
7603         PR fortran/35154, fortran/23057
7604         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
7605         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
7606         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
7607         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
7608         in common.
7609         (dbxout_syms): Check for COMMON-based symbol and wrap in
7610         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
7611         in bracket for efficiency.
7612
7613         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
7614         using DW_TAG_common_block + member offset.
7615         (add_pubname_string): New function.
7616         (dw_expand_expr): New function to find block name and offset for
7617         COMMON var.
7618         (common_check): New function to check whether symbol in Fortran COMMON.
7619         (gen_variable_die): If COMMON, use DW_TAG_common_block.
7620
7621 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
7622
7623         PR c/35436
7624         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
7625
7626 2008-04-02  Ben Elliston  <bje@au.ibm.com>
7627
7628         * config/v850/v850.md (casesi): Remove if (0) code.
7629         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7630         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7631
7632 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
7633
7634         * config/i386/i386.md (rex64suffix): New mode attribute.
7635         (floathi<mode>2): Disable expander for SSE math.
7636         (*floathi<mode>2_1): New insn insn_and_split pattern.
7637         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
7638         corresponding post-reload splitters.
7639         (*floathi<mode>2_i387): New macroized insn pattern.
7640         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
7641         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
7642         insn_and_split pattern.
7643         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
7644         New macroized instruction patterns and corresponding post-reload
7645         splitters.
7646         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
7647         and corresponding post-reload splitters.
7648         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
7649         New macroized instruction patterns.
7650         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
7651         macroized instruction patterns and corresponding post-reload splitters.
7652         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
7653         corresponding post-reload splitters.
7654         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
7655         New macroized instruction patterns.
7656         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
7657         corresponding post-reload splitters.
7658         (*floatsi<mode>2_i387): New macroized instruction patterns.
7659
7660 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
7661
7662         * config/i386/i386.md (smaxmin): New.
7663         (umaxmin): Likewise.
7664         (maxminiprefix): Likewise.
7665         (maxminfprefix): Likewise.
7666         (<code><mode>3): Likewise.
7667         (smin<mode>3): Removed.
7668         (smax<mode>3): Likewise.
7669
7670         * config/i386/mmx.md (mmx_<code>v2sf3): New.
7671         (mmx_<code>v4hi3): Likewise.
7672         (mmx_<code>v8qi3): Likewise.
7673         (mmx_smaxv2sf3): Removed.
7674         (mmx_sminv2sf3): Likewise.
7675         (mmx_umaxv8qi3): Likewise.
7676         (mmx_smaxv4hi3): Likewise.
7677         (mmx_uminv8qi3): Likewise.
7678         (mmx_sminv4hi3): Likewise.
7679
7680         * config/i386/sse.md (<addsub><mode>3): New.
7681         (*<addsub><mode>3): Likewise.
7682         (<sse>_vm<addsub><mode>3): Likewise.
7683         (<maxmin><mode>3): Likewise.
7684         (*<maxmin><mode>3_finite): Likewise.
7685         (*<maxmin><mode>3): Likewise.
7686         (<sse>_vm<maxmin><mode>3): Likewise.
7687         (sse3_h<addsub>v4sf3): Likewise.
7688         (sse3_h<addsub>v2df3): Likewise.
7689         (<maxmin>v16qi3): Likewise.
7690         (*<maxmin>v16qi3): Likewise.
7691         (<maxmin>v8hi3): Likewise.
7692         (*<maxmin>v8hi3): Likewise.
7693         (*sse4_1_<maxmin><mode>3): Likewise.
7694         (*sse4_1_<maxmin><mode>3): Likewise.
7695         (add<mode>3): Removed.
7696         (*add<mode>3): Likewise.
7697         (<sse>_vmadd<mode>3): Likewise.
7698         (sub<mode>3): Likewise.
7699         (*sub<mode>3): Likewise.
7700         (<sse>_vmsub<mode>3): Likewise.
7701         (smin<mode>3): Likewise.
7702         (*smin<mode>3_finite): Likewise.
7703         (*smin<mode>3): Likewise.
7704         (<sse>_vmsmin<mode>3): Likewise.
7705         (smax<mode>3): Likewise.
7706         (*smax<mode>3_finite): Likewise.
7707         (*smax<mode>3): Likewise.
7708         (<sse>_vmsmax<mode>3): Likewise.
7709         (sse3_haddv4sf3): Likewise.
7710         (sse3_haddv2df3): Likewise.
7711         (sse3_hsubv4sf3): Likewise.
7712         (sse3_hsubv2df3): Likewise.
7713         (umaxv16qi3): Likewise.
7714         (*umaxv16qi3): Likewise.
7715         (smaxv8hi3): Likewise.
7716         (*smaxv8hi3): Likewise.
7717         (*sse4_1_smax<mode>3): Likewise.
7718         (*sse4_1_umax<mode>3): Likewise.
7719         (uminv16qi3): Likewise.
7720         (*uminv16qi3): Likewise.
7721         (sminv8hi3): Likewise.
7722         (*sminv8hi3): Likewise.
7723         (*sse4_1_smin<mode>3): Likewise.
7724         (*sse4_1_umin<mode>3): Likewise.
7725
7726 2008-04-01  Rafael Espindola  <espindola@google.com>
7727
7728         * tree-cfg.c (verify_expr): remove in_phi.
7729         (verify_stmt): Don't call walk_tree with verify_expr. Use
7730         is_gimple_min_invariant instead of is_gimple_val.
7731
7732 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
7733
7734         * doc/include/gpl_v3.texi: Update for manpage generation.
7735         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
7736         gpl.texi.
7737         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
7738         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
7739         gpl_v3.texi instead of gpl.texi.
7740         (gpl.pod): New.
7741
7742 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
7743
7744         PR pch/13675
7745         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
7746
7747 2008-04-01  Rafael Espindola  <espindola@google.com>
7748
7749         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
7750         (extract_code_and_val_from_cond): Use
7751         extract_code_and_val_from_cond_with_ops.
7752
7753 2008-04-01  Jan Hubicka  <jh@suse.cz>
7754
7755         * function.c (free_after_compilation): Free epilogue_delay_list.
7756         (prepare_function_start): Assert that previous compilation was freed.
7757
7758 2008-04-01  Jan Hubicka  <jh@suse.cz>
7759             Jim Wilson  <wilson@tuliptree.org>
7760             Andreas Tobler <andreast@gcc.gnu.org>
7761
7762         PR middle-end/35781
7763         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
7764         rtl.emit instead cfun->emit.
7765         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
7766         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
7767
7768 2008-04-01  Ben Elliston  <bje@au.ibm.com>
7769
7770         * doc/c-tree.texi (Function Basics): Fix grammatical error.
7771
7772 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
7773
7774         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
7775         New options
7776         (fprofile-use): Add var flag_profile_use
7777         * coverage.c (coverage_begin_output): Do not open a gcno file for
7778         output only if -ftest-coverage is set.
7779         Do not add getpwd() to gcda file path.
7780         (build_gcov_info): Check the new flag
7781         flag_profile_datafile_relative_path.
7782         (coverage_init): Use profile_data_prefix.
7783         Read profile counter only if flag_profile_use is set.
7784         * opts.c (common_handle_option): New option fprofile-use=,
7785         fprofile-dir=, fprofile-generate=.
7786         * toplev.c (profile_data_prefix): New variable definition.
7787         * toplev.h (profile_data_prefix): New declaration.
7788         * doc/invoke.tex (Option Summary, Optimization Options):
7789         Add new options.
7790
7791 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
7792
7793         * varasm.c (output_constant_pool_1): In LABEL_REF check,
7794         use tmp consistently.
7795
7796         PR target/35695
7797         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7798         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7799         UNSPEC_FR_RECIP_APPROX_RES.
7800         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7801
7802 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
7803
7804         PR c/35750
7805         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7806
7807 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7808
7809         PR middle-end/30186
7810         * fold-const.c (fold_indirect_ref_1): Support accessing non first
7811         element of the vector via a pointer.
7812
7813 2008-03-31  Ian Lance Taylor  <iant@google.com>
7814
7815         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
7816
7817 2008-03-31  Jan Hubicka  <jh@suse.cz>
7818
7819         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7820         get_arg_pointer_save_area.
7821         * expr.c (init_expr): Just clear out rtl.expr.
7822         * function.c (free_after_compilation): Clear out whole RTL structure.
7823         (get_func_frame_size): Merge into ...
7824         (get_frame_size): ... this one.
7825         (assign_stack_local_1): Merge into ...
7826         (assign_stack_local): ... this one.
7827         (expand_function_end): Update call of get_arg_pointer_save_area.
7828         (get_art_pointer_save_area): Remove cfun argument.
7829         * function.h (emit_status): regno_pointer_align does not need length
7830         attribute. Move x_regno_reg_rtx to ...
7831         (regno_reg_rtx): ... new global array.
7832         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7833         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
7834         apply_args_value, forced_labels, stack_pointer_delta):
7835         Update accestors.
7836         (struct varasm_status): Move here from varasm.c
7837         (struct rtl_data): New. Move here some fields from struct function.
7838         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7839         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7840         used_temp_slots avail_temp_slots, temp_slot_level,
7841         nonlocal_goto_handler_labels): Update accesstors.
7842         (rtl): New global variable.
7843         (struct function): Move some fileds to rtl_data.
7844         (get_arg_pointer_save_area): Update prototype.
7845         * emit-rtl.c (rtl): Declare.
7846         (regno_reg_rtx): Declare.
7847         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7848         Update.
7849         (gen_reg_rtx): Update.
7850         (init_virtual_regs): Do not tate emit_status argument.
7851         (init_emit): Do not allocate emit.
7852         * varasm.c (varasm_statuc): Move to function.h.
7853         (n_deferred_constatns): Update accestor.
7854         (init_varasm_status): Do not allocate varasm_status.
7855         (force_const_mem, get_pool_size, output_constant_pool): Update.
7856         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7857         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7858
7859 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
7860
7861         PR rtl-optimization/35729
7862         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7863         references.
7864
7865 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7866
7867         PR target/32000
7868         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7869         load/store if memory is unaligned.
7870         (*movti_rex64): Likewise.
7871
7872         * config/i386/predicates.md (misaligned_operand): New.
7873
7874 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
7875
7876         PR tree-opt/35431
7877         * tree-ssa-phiopt.c (conditional_replacement): Return early for
7878         complex types.
7879
7880 2008-03-31  Jan Beulich  <jbeulich@novell.com>
7881
7882         * config/ia64/constraints.md: Add 'j' constraint.
7883         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7884         (movdi_internal): Likewise.
7885
7886 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
7887
7888         PR c/35748
7889         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7890
7891 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7892
7893         PR target/35757
7894         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7895         proper error message for the third argument on blendpd and
7896         blendps.
7897
7898         * config/i386/sse.md (blendbits): New.
7899         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7900
7901 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7902
7903         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7904
7905 2008-03-30  Richard Guenther  <rguenther@suse.de>
7906
7907         PR middle-end/31023
7908         * fold-const.c (fold_sign_changed_comparison): Do leave
7909         conversions to base-types alone.
7910
7911 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7912
7913         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
7914         the link register if one altivec register is be saved.
7915
7916 2008-03-30  Ben Elliston  <bje@au.ibm.com>
7917
7918         * final.c (final_scan_insn): Remove if (0) code.
7919
7920 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
7921
7922         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
7923
7924 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7925
7926         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
7927         of V4SFmode to ix86_binary_operator_ok.
7928
7929 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
7930
7931         * config/i386/i386.c (override_options): Initialize
7932         ix86_veclib_handler to ix86_veclibabi_svml when
7933         -mveclibabi=svml is used.
7934         (ix86_veclibabi_svml): New function for SVML ABI style
7935         vectorization support.
7936         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7937
7938 2008-03-28  Rafael Espindola  <espindola@google.com>
7939
7940         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7941         (tree_binary_nonnegative_warnv_p): Make it public.
7942         (tree_single_nonnegative_warnv_p): Make it public.
7943         (tree_invalid_nonnegative_warnv_p): Make it public.
7944         (tree_unary_nonzero_warnv_p): Make it public.
7945         (tree_binary_nonzero_warnv_p): Make it public
7946         (tree_single_nonzero_warnv_p): Make it public.
7947         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7948         (extract_range_from_binary_expr): Split the expr argument.
7949         (extract_range_from_unary_expr): Split the expr argument.
7950         (extract_range_from_comparison): Split the expr argument.
7951         (extract_range_from_expr): Use the new aux functions.
7952         (vrp_evaluate_conditional_warnv): Use
7953         vrp_evaluate_conditional_warnv_with_ops.
7954         * tree.h (tree_unary_nonzero_warnv_p): Declare.
7955         (tree_binary_nonzero_warnv_p): Declare.
7956         (tree_single_nonzero_warnv_p): Declare.
7957         (tree_expr_nonzero_warnv_p): Declare.
7958         (tree_unary_nonnegative_warnv_p): Declare.
7959         (tree_binary_nonnegative_warnv_p): Declare.
7960         (tree_single_nonnegative_warnv_p): Declare.
7961         (tree_invalid_nonnegative_warnv_p): Declare.
7962
7963 2008-03-28  Richard Guenther  <rguenther@suse.de>
7964
7965         PR tree-optimization/30317
7966         PR tree-optimization/30911
7967         PR tree-optimization/34793
7968         * tree-vrp.c (set_and_canonicalize_value_range): New function.
7969         (struct assert_locus_d): New member EXPR.
7970         (register_new_assert_for): Add EXPR parameter to support
7971         ASSERT_EXPR <name, expr OP limit>.
7972         (register_edge_assert_for_1): Adjust callers.
7973         (find_assert_locations): Likewise.
7974         (process_assert_insertions_for): Build condition from expression.
7975         (extract_range_from_assert): Handle ASSERT_EXPRs
7976         of the form ASSERT_EXPR <name, expr OP limit>.
7977         (register_edge_assert_for_2): New helper registering
7978         asserts for comparisons.  Recognize range tests of the form
7979         (unsigned)i - CST1 OP CST2.
7980         (register_edge_assert_for_1): Use it.
7981         (register_edge_assert_for): Likewise.
7982         (needs_overflow_infinity): Integer sub-types
7983         do not need overflow infinities.
7984         (vrp_val_is_max): The extreme values of integer sub-types
7985         are those of the base type.
7986         (vrp_val_is_min): Likewise.
7987         * tree.def (ASSERT_EXPR): Document extra allowed conditional
7988         expressions.
7989
7990 2008-03-28  Nick Clifton  <nickc@redhat.com>
7991
7992         PR target/31110
7993         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
7994         Return GENERAL_REGS for stack adjustment reloads.
7995
7996 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7997
7998         PR target/31334
7999         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8000         const_vector when all the vectors are constant.
8001
8002 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8003
8004         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8005         comparisons.
8006         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8007         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8008         (scc_sf): New.
8009         (s<code>_sf): Use new scc_sf attribute for opcode names.
8010
8011 2008-03-27  Tom Tromey  <tromey@redhat.com>
8012
8013         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8014         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8015         config/spu/t-spu-elf, config/i386/t-interix,
8016         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8017         config/i386/x-darwin, config/i386/x-mingw32,
8018         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8019         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8020         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8021         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8022         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8023         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8024         config/score/t-score-elf, config/arm/t-strongarm-pe,
8025         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8026         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8027         Revert automatic dependency patch.
8028
8029 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8030
8031         PR target/35657
8032         * config/i386/i386.c (ix86_function_arg_boundary): Align
8033         decimal floating point to its natural boundary.
8034
8035 2008-03-27  Richard Guenther  <rguenther@suse.de>
8036
8037         PR middle-end/35716
8038         * fold-const.c (fold_comparison): Restrict distinct decl
8039         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8040         solely rely on operand_equal_p.
8041
8042 2008-03-27  Richard Guenther  <rguenther@suse.de>
8043
8044         PR c/32511
8045         * c-common.c (handle_weak_attribute): Reject combination of
8046         weak and inline.
8047
8048 2008-03-27  Richard Guenther  <rguenther@suse.de>
8049
8050         PR tree-optimization/32810
8051         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8052         conversions from DECL_INITIAL.
8053         (fold_const_aggregate_ref): Likewise from constructor elements.
8054
8055 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8056
8057         * tree-affine.h (aff_combination_expand): Declare.
8058         (get_inner_reference_aff): Likewise.
8059         * tree-affine.c (aff_combination_expand): Split out from
8060         tree_to_aff_combination_expand.
8061         (get_inner_reference_aff): New function.
8062         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8063         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8064         (struct lim_aux_data): sm_done field removed.
8065         (mem_ref_loc_p, mem_ref_locs_p): New types.
8066         (struct mem_ref): Added id, stored, accesses_in_loop,
8067         indep_loop, dep_loop, indep_ref, dep_ref fields.
8068         Removed is_stored, locs and next fields.
8069         (memory_accesses): New variable.
8070         (movement_possibility): Do not allow moving statements
8071         that store to memory.
8072         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8073         New functions.
8074         (determine_max_movement): For statements with memory references,
8075         find the outermost loop in that the reference is independent.
8076         (move_computations_stmt): Mark the virtual operands for renaming.
8077         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8078         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8079         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8080         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8081         create_vop_ref_mapping, analyze_memory_references,
8082         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8083         get_all_locs_in_loop, ref_always_accessed_p,
8084         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8085         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8086         store_motion_loop, store_motion): New functions.
8087         (struct vop_to_refs_elt): New type.
8088         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8089         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8090         (schedule_sm): Replaced by...
8091         (execute_sm): ... this.
8092         (determine_lsm_ref, hoist_memory_references,
8093         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8094         find_more_ref_vops, free_mem_ref, free_mem_refs,
8095         determine_lsm_loop, determine_lsm): Removed.
8096         (tree_ssa_lim_finalize): Free data structures used by store motion.
8097         (tree_ssa_lim): Call analyze_memory_references.  Use
8098         store_motion instead of determine_lsm.
8099
8100 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8101
8102         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8103         rename tmake_file to m68hc11/t-m68hc11.
8104         (mcore): Set inhibit_libc to true.
8105         * config.host (alpha*-dec-*vms*): Set extra_programs.
8106         (interix3*): Don't use host_xmake_file.
8107         * configure.ac: Let config.gcc override inhibit_libc.
8108         * configure: Regenerate.
8109
8110         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8111         * config/t-openbsd-thread: Remove commented out lines.
8112         
8113         * config/x-interix: Remove.
8114
8115         * config/m68hc11/t-m68hc11-gas: Rename to...
8116         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8117
8118         * config/mcore/t-mcore: Remove T_CFLAGS.
8119         * config/mcore/t-mcore-pe: Likewise.
8120
8121 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8122
8123         * configure.ac: Replace custom __GNU_SOURCE test with
8124         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8125         * aclocal.m4: Regenerate.
8126         * configure: Regenerate.
8127         * config.in: Regenerate.
8128
8129 2008-03-27  Richard Guenther  <rguenther@suse.de>
8130
8131         * fold-const.c (target.h): Include.
8132         (fold_comparison): Fold comparison of addresses of decls
8133         that bind locally or of constants.  Consolidate address folding code.
8134         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8135         results from fold_binary_to_constant.
8136         (compare_values_warnv): Likewise.
8137
8138 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8139
8140         PR middle-end/35429
8141         * fold-const.c (fold_truthop): Check for integeral types when folding
8142         a == 0 && b == 0 and a != 0 || b != 0 .
8143
8144 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8145
8146         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8147
8148 2008-03-26  Andreas Schwab  <schwab@suse.de>
8149
8150         * doc/invoke.texi: Fix use of @item vs. @itemx.
8151
8152 2008-03-26  Tom Tromey  <tromey@redhat.com>
8153
8154         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8155         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8156         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8157         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8158         build/genconstants.o, build/genemit.o, build/genextract.o,
8159         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8160         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8161         options.h.
8162
8163 2008-03-26  Richard Guenther  <rguenther@suse.de>
8164
8165         Revert
8166         2008-03-26  Richard Guenther  <rguenther@suse.de>
8167
8168         * fold-const.c (target.h): Include.
8169         (fold_comparison): Fold comparison of addresses of two decls
8170         that bind locally.  Consolidate address folding code.
8171
8172 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8173
8174         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8175         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8176         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8177         dconstsqrt2, dconstthird, dconste and/or dconst10.
8178         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8179         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8180         dconstsqrt2, dconste): Delete.
8181         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8182         Constify variable.
8183         * real.c (get_real_const): New.
8184         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8185         dconstsqrt2, dconste): Delete.
8186         (real_value_const, get_real_const): New.
8187
8188 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8189
8190         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8191
8192         * config/i386/i386.c (ix86_function_arg_boundary): Check
8193         BIGGEST_ALIGNMENT instead of 128.
8194         (setup_incoming_varargs_64): Likewise.
8195
8196 2008-03-26  Tom Tromey  <tromey@redhat.com>
8197
8198         * Makefile.in (DEPFILES): Add missing '/'.
8199
8200 2008-03-26  Richard Guenther  <rguenther@suse.de>
8201
8202         * fold-const.c (target.h): Include.
8203         (fold_comparison): Fold comparison of addresses of two decls
8204         that bind locally.  Consolidate address folding code.
8205
8206 2008-03-26  Nick Clifton  <nickc@redhat.com>
8207
8208         PR target/31232
8209         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8210         not allow INT+INT as a legitimate addressing mode.
8211
8212 2008-03-26  Richard Guenther  <rguenther@suse.de>
8213
8214         * tree-flow.h (widen_bitfield): Remove declaration.
8215         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8216         (widen_bitfield): Remove function.
8217         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8218         code.
8219
8220 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8221
8222         PR target/31558
8223         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8224         error_mark_node's.
8225
8226 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8227
8228         PR rtl-optimization/35232
8229         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8230         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8231         reg_reloaded_call_part_clobbered here.
8232         (reload_regs_reach_end_p): New function.
8233         (reload_reg_rtx_for_input): New variable.
8234         (reload_reg_rtx_for_output): Likewise.
8235         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8236         when reassigning a pseudo register.  Load reloadreg from 
8237         reload_reg_rtx_for_input, moving the mode and register
8238         calculation to...
8239         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8240         instead of the original when deciding whether an input reload
8241         would be a no-op or whether an output reload can be deleted.
8242         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8243         when setting up new_spill_reg_store.  Load it from
8244         reload_reg_rtx_for_output, moving the mode and register
8245         calculation to...
8246         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8247         instead of the original when deciding whether an output reload
8248         would be a no-op.  Do the same when modifying insn notes.
8249         Use rtx_equal_p instead of == to compare the registers.
8250         (inherit_piecemeal_p): Take a mode and two register numbers
8251         as argument.
8252         (emit_reload_insns): Clear new_spill_reg_store for every hard
8253         register in the reload register.  Remove spill registers
8254         from reg_reloaded_valid before considering whether to record
8255         inheritance information for them.  Use reload_reg_rtx_for_output
8256         instead of reg_rtx when recording output reloads.  Use
8257         reload_reg_rtx_for_input instead of reg_rtx when recording
8258         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8259         at the same time as setting reg_reloaded_valid.
8260         (delete_output_reload): Add a new_reload_reg parameter and use it
8261         instead of rld[j].reg_rtx.
8262         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8263         calls accordingly.
8264
8265 2008-03-25  Tom Tromey  <tromey@redhat.com>
8266
8267         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8268         (build/genattr.o): Likewise.
8269         (build/genattrtab.o): Likewise.
8270         (build/gencodes.o): Likewise.
8271         (build/genconfig.o): Likewise.
8272         (build/genconstants.o): Likewise.
8273         (build/genemit.o): Likewise.
8274         (build/genextract.o): Likewise.
8275         (build/genflags.o): Likewise.
8276
8277 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8278         
8279         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8280         instead of size_int for integer types.
8281         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8282         to match type of MINUS_EXPR.
8283         
8284 2008-03-25  Tom Tromey  <tromey@redhat.com>
8285
8286         * configure: Rebuilt.
8287         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8288         Makefile.
8289
8290 2008-03-25  Tom Tromey  <tromey@redhat.com>
8291
8292         * config/x-solaris (host-solaris.o): Update.
8293         * config/x-linux (host-linux.o): Update.
8294         * config/x-hpux (host-hpux.o): Update.
8295         * config/x-darwin (host-darwin.o): Update.
8296         * config/v850/t-v850e (v850-c.o): Update.
8297         * config/v850/t-v850 (v850-c.o): Update.
8298         * config/t-vxworks (vxworks.o): Update.
8299         * config/t-sol2 (sol2-c.o, sol2.o): Update.
8300         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
8301         * config/spu/t-spu-elf (spu-c.o): Update.
8302         (spu.o): Remove.
8303         * config/sh/t-symbian (sh-c.o): Update.
8304         (symbian.o): Update.
8305         * config/sh/t-sh (sh-c.o): Update.
8306         * config/score/t-score-elf (score7.o, score3.o): Update.
8307         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8308         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8309         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8310         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8311         (rs6000.o): Remove.
8312         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8313         * config/m32c/t-m32c (m32c-pragma.o): Update.
8314         * config/ia64/t-ia64 (ia64-c.o): Update.
8315         * config/i386/x-mingw32 (host-mingw32.o): Update.
8316         * config/i386/x-i386 (driver-i386.o): Update.
8317         * config/i386/x-darwin (host-i386-darwin.o): Update.
8318         * config/i386/x-cygwin (host-cygwin.o): Update.
8319         * config/i386/t-nwld (nwld.o): Update.
8320         * config/i386/t-netware (netware.o): Update.
8321         * config/i386/t-interix (winnt.o): Update.
8322         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8323         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8324         msformat-c.o): Update.
8325         * config/bfin/t-bfin-linux (generated_files): Add
8326         linux-sysroot-suffix.h.
8327         * config/arm/t-wince-pe (pe.o): Update.
8328         * config/arm/t-strongarm-pe (pe.o): Update.
8329         * config/arm/t-pe (pe.o): Update.
8330         * config/arm/t-arm (arm-c.o): Update.
8331         * doc/install.texi (Prerequisites): Require make 3.80.
8332         * Makefile.in: Remove .o targets.
8333         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8334         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8335         (simple_generated_h, simple_generated_c): Move earlier.
8336         (generated_files): New variable.
8337         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8338         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8339         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8340         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8341         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8342         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8343         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8344         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8345         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8346         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8347         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8348         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8349         (.c.o): Remove.
8350         (COMPILE.base, COMPILE): New variables.
8351         (%.o): New pattern rule.
8352         (ALL_HOST_OBJS): New variable.
8353         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8354         (dummy-checksum.o, cc1-checksum.o): Remove.
8355         (DRIVER_SHLIB): New variable.
8356         (DRIVER_DEFINES): Use it.
8357         (gencondmd.c): Move out of build/.
8358         (s-conditions): Update.
8359         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8360         (ALL_BUILD_OBJS): Likewise.
8361         (build/%.o): Use BUILDCOMPILE.
8362         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8363         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8364         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8365         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8366         build/genconfig.o, build/genconstants.o, build/genemit.o,
8367         build/genextract.o, build/genflags.o, build/genmddeps.o,
8368         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8369         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8370         build/gen-protos.o, build/scan.o, build/fix-header.o,
8371         build/scan-decls.o): Simplify.
8372         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8373         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8374         prefix.o, toplev.o): Reduce to variable setting.
8375         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8376         ($(out_object_file), gcc-options.o): New targets.
8377         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8378         * configure: Rebuilt.
8379         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8380         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8381
8382 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8383
8384         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8385         complain when we hit an error, return ERROR_MARK_NODE.
8386
8387 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8388
8389         * config/sh/constraints.md (Pso, Psz): New constraints.
8390         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8391         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8392
8393 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8394
8395         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
8396         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8397
8398 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8399
8400         * config/sh/sh.md (prefetch): Add condition for SH2A target.
8401         (prefetch_sh2a): New.   
8402
8403 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8404             Naveen.H.S  <naveen.hs@kpitcummins.com>
8405
8406         * config/sh/constraints.md (I28): New constraint.
8407         * config/sh/sh.c (broken_move): Add support for movi20s.
8408         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
8409
8410 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
8411             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8412             Naveen.H.S  <naveen.hs@kpitcummins.com>
8413
8414         * config/sh/sh.c (SH_ATTRIBUTES): Define.
8415         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8416         (print_operand): Handle resbank in %@ operand code.
8417         (sh_encode_section_info): New.
8418         (push_regs): Add conditions for resbank.
8419         (sh_expand_epilogue): Likewise.
8420         (sh_insert_attributes): Likewise.
8421         (sh_attribute_table): Likewise.
8422         (sh_handle_resbank_handler_attribute): New.
8423         (sh2a_handle_function_vector_handler_attribute): New.
8424         (sh2a_is_function_vector_call): New.
8425         (sh2a_get_function_vector_number): New.
8426         (sh2a_function_vector_p): New.
8427         (sh_cfun_resbank_handler_p): New.
8428         * config/sh/sh.md (calli): Emit jsr/n if possible.
8429         (calli_tbr_rel): New.
8430         (calli_pcrel): Emit jsr/n if possible.
8431         (return_i): Emit rts/n if possible.
8432         (call_valuei_tbr_rel): New.
8433         (call_valuei_pcrel): Add condition for SH2A target.
8434         (call_value): Likewise.
8435         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8436         (sh2a_get_function_vector_number): Likewise.
8437         (sh2a_is_function_vector_call): Likewise.
8438         * doc/extend.texi: Document TBR relative addressing of SH2A.
8439         (resbank): Add description for SH2A.
8440
8441 2008-03-24  Richard Guenther  <rguenther@suse.de>
8442
8443         PR c/22371
8444         * gimplify.c (gimplify_modify_expr): For frontend type-correct
8445         pointer assignments change conversions according to middle-end rules.
8446         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8447         * configure.ac: Include type checking in yes.
8448         * configure: Regenerate.
8449
8450 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8451
8452         * diagnostic.c (diagnostic_count_diagnostic): Delete.
8453         (diagnostic_report_diagnostic): Update. Handle ICEs here.
8454         
8455 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8456
8457         * gthr-vxworks.h (UNUSED): Define.
8458
8459 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
8460
8461         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
8462
8463 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
8464
8465         * doc/extend.texi (Function Attributes): Add missing comma in the
8466         example of the "alloc_size" attribute.
8467         
8468 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
8469
8470         Revert:
8471         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8472
8473         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8474         32bit host.
8475
8476         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8477
8478         PR target/35496
8479         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8480         of the underlying type of a MS bitfield layout to the natural
8481         alignment of the type.
8482
8483         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8484
8485         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8486         to their natural alignment to avoid store forwarding stalls.
8487
8488 2008-03-22  Richard Guenther  <rguenther@suse.de>
8489
8490         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
8491         For PHI nodes verify the address is invariant.
8492         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
8493         (get_symbol_constant_value): Use is_gimple_min_invariant.
8494         (maybe_fold_stmt_indirect): Likewise.
8495
8496 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
8497
8498         PR rtl-optimization/33927
8499         * Makefile.in (dse.o): Depend on $(TM_P_H).
8500         * expr.h (extract_low_bits): Declare.
8501         * expmed.c (extract_low_bits): New function.
8502         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
8503         * dse.c: Include tm_p.h.
8504         (find_shift_sequence): Remove the read_reg argument and return the
8505         read value.  Emit the instructions instead of returning them.
8506         Iterate on new_mode rather than calculating it each time.
8507         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
8508         source to NEW_MODE and extract_low_bits to convert the shifted
8509         value to READ_MODE.
8510         (replace_read): Allow the load and store to have different mode
8511         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
8512         or extraction instructions before trying the replacement.  Update
8513         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
8514
8515 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8516
8517         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8518         to their natural alignment to avoid store forwarding stalls.
8519
8520 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8521
8522         PR target/27946
8523         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
8524         encouraging but not allowing gprs for input;
8525         change the input constraint to !f#r.
8526         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
8527         gprs for output;
8528         change the output constraint to !f#r.
8529
8530 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
8531
8532         PR target/13958
8533         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
8534         corresponding post-reload splitters.
8535         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
8536         when x87 FP math is selected.
8537         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
8538         New function prototype.
8539         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
8540         unreachable function to ease macroization of insn patterns.
8541
8542 2008-03-21  Martin Jambor  <mjambor@suse.cz>
8543
8544         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
8545         reference dumps if ddr is NULL or dependence is unknown.
8546
8547 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8548
8549         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
8550         unsigned extension into account.
8551         (ATOMIC_COMPARE_AND_SWAP): Likewise.
8552         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
8553         Do computations on a scratch register.
8554
8555 2008-03-21  Richard Guenther  <rguenther@suse.de>
8556
8557         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8558         Use is_gimple_min_invariant instead of TREE_INVARIANT.
8559         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8560         * tree-ssa-dom.c (record_equality): Likewise.
8561         * tree-inline.c (copy_body_r): Likewise.
8562         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
8563         TREE_INVARIANT.
8564
8565 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8566
8567         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
8568         as 'delete_unused' argument.
8569
8570 2008-03-20  Richard Guenther  <rguenther@suse.de>
8571
8572         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
8573         special casing of constant qualifiers.
8574         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
8575         care about them in general.
8576         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
8577         regardless of their type.
8578         (fold_stmt_r): Forcefully fold *& if we end up with that.
8579
8580 2008-03-20  Paul Brook  <paul@codesourcery.com>
8581
8582         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
8583         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
8584         linker flags.
8585         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
8586         definition.
8587         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
8588         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
8589
8590 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
8591
8592         * common.opt (Wmudflap): New option.
8593         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
8594         (mx_register_decls): Likewise.
8595         (mudflap_finish_file): Likewise.
8596         * doc/invoke.texi: Document -Wno-mudflap.
8597
8598 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
8599
8600         * c-format.c (replace_format_name_to_system_name): New.
8601         (cmp_attribs): New.
8602         (convert_format_name_to_system_name): New.
8603         (decode_format_attr): Add use of convert_format_name_to_system_name.
8604         (format_types_orig): Add gnu_ prefix to names.
8605         (check_format_info_main): Special treating of \0 escaped names for
8606         supporting multi-character format specifiers as I32, I64.
8607         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
8608         (gnu_target_overrides_format_attributes): New.
8609         * c-format.h: Add structure target_ovr_attr to hold
8610         system specific formatter names.
8611         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
8612         msformat-c.o file to c_target_objs and cxx_target_objs.
8613         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8614         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
8615         (TARGET_N_FORMAT_TYPES): New.
8616         * config/i386/msformat-c.c: New.
8617         * config/i386/t-cygming: Add build rule for msformat-c.o.
8618         * doc/extend.texi: Add new format names gnu_* and ms_* and
8619         further details.
8620         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8621
8622 2008-03-20  Ira Rosen  <irar@il.ibm.com>
8623
8624         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
8625         optimizations turned on under -O3.
8626         (ftree-vectorize): Add that the flag is turned on with -O3.
8627
8628 2008-03-20  Ben Elliston  <bje@au.ibm.com>
8629
8630         * regmove.c (try_auto_increment): Fix spelling error in comment.
8631         * final.c (final_scan_insn): Likewise.
8632
8633 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
8634
8635         PR target/14552
8636         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
8637         allocator preferences for "y" and "r" class registers.
8638         ("*mov<mode>_internal"): Ditto.
8639         ("*movv2sf_internal_rex64"): Ditto.
8640         ("*movv2sf_internal"): Ditto.
8641
8642 2008-03-19  Michael Matz  <matz@suse.de>
8643
8644         PR middle-end/35616
8645         * calls.c (expand_call): Check overlap of arguments with call
8646         address for sibcalls.
8647
8648 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8649
8650         PR target/35496
8651         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8652         of the underlying type of a MS bitfield layout to the natural
8653         alignment of the type.
8654
8655 2008-03-19  Jan Hubicka  <jh@suse.cz>
8656
8657         PR other/35094
8658         * toplev.c (decode_d_option): Handle all CPP flags.
8659         * tree-vrp.c: Update tree_pass descriptors.
8660         * regrename.c: Update tree_pass descriptors.
8661         * fwprop.c: Update tree_pass descriptors.
8662         * doc/invoke.texi: Remove documentation of dropped -d? flags.
8663         * tree-into-ssa.c: Update tree_pass descriptors.
8664         * tree-dump.c: Update tree_pass descriptors.
8665         * tree-complex.c: Update tree_pass descriptors.
8666         * tree-dump.h: Update tree_pass descriptors.
8667         * see.c: Update tree_pass descriptors.
8668         * cgraphbuild.c: Update tree_pass descriptors.
8669         * tracer.c: Update tree_pass descriptors.
8670         * tree-loop-distribution.c: Update tree_pass descriptors.
8671         * cgraph.c: Update tree_pass descriptors.
8672         * postreload-gcse.c: Update tree_pass descriptors.
8673         * postreload.c: Update tree_pass descriptors.
8674         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
8675         * tree-tailcall.c: Update tree_pass descriptors.
8676         * tree-pass.h (tree_opt_pass): Rename to ...
8677         (opt_pass) ... this one; add "type" field and remove letter field.
8678         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
8679         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
8680         all_lowering_passes): Update declaration.
8681         * ipa-cp.c: Update tree_pass descriptors.
8682         * final.c: Update tree_pass descriptors.
8683         * omp-low.c: Update tree_pass descriptors.
8684         * tree-ssa-dse.c: Update tree_pass descriptors.
8685         * ipa-reference.c: Update tree_pass descriptors.
8686         * tree-ssa-uncprop.c: Update tree_pass descriptors.
8687         * auto-inc-dec.c: Update tree_pass descriptors.
8688         * reorg.c: Update tree_pass descriptors.
8689         * cgraphunit.c: Update tree_pass descriptors.
8690         * tree-ssa-copyrename.c: Update tree_pass descriptors.
8691         * tree-ssa-ccp.c: Update tree_pass descriptors.
8692         * df-core.c: Update tree_pass descriptors.
8693         * mode-switching.c: Update tree_pass descriptors.
8694         * tree-nomudflap.c: Update tree_pass descriptors.
8695         * modulo-sched.c: Update tree_pass descriptors.
8696         * ipa-pure-const.c: Update tree_pass descriptors.
8697         * cse.c: Update tree_pass descriptors.
8698         * web.c: Update tree_pass descriptors.
8699         * tree-stdarg.c: Update tree_pass descriptors.
8700         * tree-ssa-math-opts.c: Update tree_pass descriptors.
8701         * tree-ssa-dom.c: Update tree_pass descriptors.
8702         * tree-nrv.c: Update tree_pass descriptors.
8703         * tree-ssa-alias.c: Update tree_pass descriptors.
8704         * loop-init.c: Update tree_pass descriptors.
8705         * gimple-low.c: Update tree_pass descriptors.
8706         * ipa-inline.c: Update tree_pass descriptors.
8707         * tree-ssa-sink.c: Update tree_pass descriptors.
8708         * global.c: Update tree_pass descriptors.
8709         * ifcvt.c: Update tree_pass descriptors.
8710         * jump.c: Update tree_pass descriptors.
8711         * predict.c: Update tree_pass descriptors.
8712         * tree-ssa-loop.c: Update tree_pass descriptors.
8713         * recog.c: Update tree_pass descriptors.
8714         * dse.c: Update tree_pass descriptors.
8715         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8716         * tree-eh.c: Update tree_pass descriptors.
8717         * regmove.c: Update tree_pass descriptors.
8718         * local-alloc.c
8719         * function.c: Update tree_pass descriptors.
8720         * tree-vectorizer.c: Update tree_pass descriptors.
8721         * gcse.c: Update tree_pass descriptors.
8722         * ipa-type-escape.c: Update tree_pass descriptors.
8723         * tree-if-conv.c: Update tree_pass descriptors.
8724         * init-regs.c: Update tree_pass descriptors.
8725         * ipa.c: Update tree_pass descriptors.
8726         * tree-ssa-phiopt.c: Update tree_pass descriptors.
8727         * rtl-factoring.c: Update tree_pass descriptors.
8728         * lower-subreg.c: Update tree_pass descriptors.
8729         * bt-load.c: Update tree_pass descriptors.
8730         * tree-dfa.c: Update tree_pass descriptors.
8731         * except.c: Update tree_pass descriptors.
8732         * emit-rtl.c: Update tree_pass descriptors.
8733         * cfgexpand.c: Update tree_pass descriptors.
8734         * tree-cfgcleanup.c: Update tree_pass descriptors.
8735         * cfgcleanup.c: Update tree_pass descriptors.
8736         * tree-ssa-pre.c: Update tree_pass descriptors.
8737         * tree-sra.c: Update tree_pass descriptors.
8738         * tree-mudflap.c: Update tree_pass descriptors.
8739         * tree-ssa-copy.c: Update tree_pass descriptors.
8740         * cfglayout.c: Update tree_pass descriptors.
8741         * tree-ssa-forwprop.c: Update tree_pass descriptors.
8742         * tree-ssa-dce.c: Update tree_pass descriptors.
8743         * tree-ssa.c: Update tree_pass descriptors.
8744         * regclass.c: Update tree_pass descriptors.
8745         * integrate.c: Update tree_pass descriptors.
8746         * tree-optimize.c: Update tree_pass descriptors.
8747         * tree-ssa-phiprop.c: Update tree_pass descriptors.
8748         * tree-object-size.c: Update tree_pass descriptors.
8749         * combine.c: Update tree_pass descriptors.
8750         * tree-outof-ssa.c: Update tree_pass descriptors.
8751         * bb-reorder.c: Update tree_pass descriptors.
8752         * stack-ptr-mod.c: Update tree_pass descriptors.
8753         * var-tracking.c: Update tree_pass descriptors.
8754         * tree-profile.c: Update tree_pass descriptors.
8755         * tree-vect-generic.c: Update tree_pass descriptors.
8756         * reg-stack.c: Update tree_pass descriptors.
8757         * sched-rgn.c: Update tree_pass descriptors.
8758         * tree-ssa-structalias.c: Update tree_pass descriptors.
8759         * tree-cfg.c: Update tree_pass descriptors.
8760         * passes.c (current_pass): Update declaration.
8761         (finish_optimization_passes): Update.
8762         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
8763         (register_one_dump_file, register_dump_files_1, next_pass_1):
8764         Update arguments.
8765         (init_optimization_passes): Update handling of new types.
8766         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
8767         * ipa-struct-reorg.c: Update tree_pass descriptors.
8768         * tree-ssa-reassoc.c: Update tree_pass descriptors.
8769         * combine-stack-adj.c: Update tree_pass descriptors.
8770         * cfgrtl.c: Update tree_pass descriptors.
8771         * dce.c: Update tree_pass descriptors.
8772         * tree-ssanames.c: Update tree_pass descriptors.
8773
8774 2008-03-19  Richard Guenther  <rguenther@suse.de>
8775
8776         PR middle-end/35609
8777         * tree-ssa.c (walk_data): New structure.
8778         (warn_uninitialized_var): If not always_executed warn with "maybe"
8779         instead of "is".
8780         (execute_early_warn_uninitialized): Compute post-dominators.
8781         Initialize always_executed before processing each basic block.
8782
8783 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
8784
8785         PR target/35504
8786         * config/i386/i386.c (x86_this_parameter): Calculate correct location
8787         of "this" pointer when "regparm = N" or "fastcall" is in effect.
8788
8789 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8790
8791         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
8792
8793 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
8794
8795         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8796         is true.
8797         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8798         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8799         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
8800         target after ignore has been set, and move there also the commputation
8801         of subtarget and original_target.
8802         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8803         (LANG_HOOKS_INITIALIZER): Remove it.
8804         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
8805
8806 2008-03-18  Richard Guenther  <rguenther@suse.de>
8807
8808         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8809         found an expression with constants, note that in the VN for the lhs.
8810         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8811         fold them to constants if possible.  Run cleanup_cfg if done so.
8812         (execute_pre): Return todo.
8813         (do_pre): Likewise.
8814         (execute_fre): Likewise.
8815         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8816         of constants.
8817         (get_prop_source_stmt): Look through pointer conversions.
8818
8819 2008-03-18  Jan Hubicka  <jh@suse.cz>
8820
8821         * tree-pretty-print.c: Include predict.h.
8822         (dump_generic_node): Dump predictor.
8823         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8824         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8825         * gimple-low.c (lower_stmt): Likewise.
8826         * expr.c (expand_expr_real): Likewise.
8827         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8828         them.
8829         (build_predict_expr, build_predict_expr): New.
8830         * predict.h (predictor_name, build_predict_expr): Update.
8831         * c-typeck.c (c_finish_bc_stmt): Add prediction.
8832         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8833         * predict.def (PRED_CONTINUE): Update hitrate.
8834         * tree.def (PREDICT_EXPR): Define.
8835         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8836         do not handle BIND_EXPR.
8837         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8838         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8839         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8840         operands.
8841
8842 2008-03-18  Michael Matz  <matz@suse.de>
8843
8844         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8845
8846 2008-03-18  Richard Guenther  <rguenther@suse.de>
8847
8848         * tree-gimple.h (is_gimple_invariant_address): Declare.
8849         (is_gimple_constant): Likewise.
8850         * tree-gimple.c (is_gimple_constant): New function.
8851         (is_gimple_invariant_address): Likewise.
8852         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8853         and is_gimple_invariant_address.
8854         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8855         previous change.
8856         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8857         an addressable base.
8858
8859 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8860
8861         PR middle-end/35611
8862         * gimplify.c (gimplify_expr): Gimplify second operand of
8863         OMP_ATOMIC_LOAD.
8864
8865 2008-03-17  Richard Guenther  <rguenther@suse.de>
8866
8867         PR tree-optimization/19637
8868         * fold-const.c (fold_unary): Remove restrictions of removing
8869         intermediate pointer-conversions (P2)(P1)P0.
8870         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8871         conversion to void pointer.
8872         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8873
8874 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
8875
8876         PR debug/31510
8877         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8878         emulated thread local variables.
8879
8880 2008-03-16  Richard Guenther  <rguenther@suse.de>
8881
8882         PR middle-end/35607
8883         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8884         expand TREE_INVARIANT operations that are not gimple invariant.
8885
8886 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
8887
8888         * doc/extend.texi (Alignment): Say that the ABI controls
8889         the __alignof__ for non-strict-alignment targets rather
8890         than being a recommendation.
8891
8892 2008-03-15  Paul Brook  <paul@codesourcery.com>
8893
8894         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8895         annotations.
8896         (arm_output_fn_unwind): Mark functions that can not be unwound.
8897
8898 2008-03-15  Paul Brook  <paul@codesourcery.com>
8899
8900         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8901         extension instructions.
8902
8903 2008-03-15  Richard Guenther  <rguenther@suse.de>
8904
8905         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
8906         and fold constant aggregate refs.
8907         (fold_const_aggregate_ref): Handle string constants
8908         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
8909         (evaluate_stmt): Simplify now that ccp_fold folds constant
8910         aggregate refs.
8911
8912 2008-03-15  Paul Brook  <paul@codesourcery.com>
8913
8914         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
8915         (extzv): Use gen_extzv_t2.
8916         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
8917
8918 2008-03-15  Richard Guenther  <rguenther@suse.de>
8919
8920         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
8921         (fold_const_aggregate_ref): Likewise.
8922         (get_value): Return NULL if we don't have any values.
8923         (ccp_finalize): Set const_val to NULL after freeing it.
8924         * tree-flow.h (get_symbol_constant_value): Declare.
8925         (fold_const_aggregate_ref): Likewise.
8926         * tree-ssa-sccvn.c (try_to_simplify): Use them.
8927
8928 2008-03-15  Richard Guenther  <rguenther@suse.de>
8929
8930         PR middle-end/35593
8931         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8932         to not produce negative array indices if not allowed.  Add
8933         parameter to indicate that.
8934         (maybe_fold_offset_to_component_ref): Allow negative array
8935         indices only for the first member of a structure.
8936         (maybe_fold_offset_to_reference): Allow negative array indices.
8937         (maybe_fold_stmt_addition): Likewise.
8938
8939 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
8940             Anatoly Sokolov <aesok@post.ru>
8941
8942         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
8943         (avr_arch): Add ARCH_AVR6.
8944         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8945         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
8946         instead of fixed value 2.
8947         (print_operand_address): Use gs() asm specifier instead of pm().
8948         (avr_assemble_integer): (Ditto.).
8949         (avr_output_addr_vec_elt): (Ditto.).
8950         (print_operand): Handle "!" code.
8951         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
8952         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8953         (AVR_HAVE_EIJMP_EICALL): Define.
8954         (AVR_3_BYTE_PC): Redefine.
8955         (AVR_2_BYTE_PC): (Ditto.).
8956         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8957         (LINK_SPEC): Add atmega2560 and atmega2561.
8958         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
8959         (crtm2561.o).
8960         * config/avr/avr.md (call_insn): Use eicall instead of icall 
8961         for 3 byte PC devices.
8962         (call_value_insn): (Ditto.).
8963         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8964         (indirect_jump): Use only for for 2 byte PC devices.
8965         (*tablejump): (Ditto.).
8966         (*indirect_jump_avr6): Add insn.
8967         (*tablejump_rjmp): Don't use for 3 byte PC devices.
8968         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
8969         instead of ijmp for 3 byte PC devices.
8970         (__tablejump2__): (Ditto.).
8971         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
8972         (MULITLIB_DIRNAMES): (Ditto.). 
8973         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8974
8975 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
8976
8977         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8978         "sse2_umulsidi3".  Use V1DI mode for operand 0.
8979         ("mmx_psadbw"): Use V1DI mode for operand 0.
8980         * config/i386/i386-modes.def (V1SI): New vector mode.
8981         * config/i386/i386.c (struct builtin_description)
8982         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8983         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8984         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8985         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8986         v1di_ftype_v8qi_v8qi type.
8987         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8988
8989         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8990         __builtin_ia32_pmuludq]: Fix the mode of return value.
8991
8992 2008-03-15  Richard Guenther  <rguenther@suse.de>
8993
8994         PR middle-end/35595
8995         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8996         being a PHI_NODE.
8997
8998 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
8999         
9000         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9001         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9002         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9003         unless TARGET_SERIALIZE_VOLATILE is enabled.
9004         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9005         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9006         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9007
9008 2008-03-14  Richard Guenther  <rguenther@suse.de>
9009
9010         PR tree-optimization/34172
9011         * tree-flow.h (refs_may_alias_p): Declare.
9012         (get_single_def_stmt): Likewise.
9013         (get_single_def_stmt_from_phi): Likewise.
9014         (get_single_def_stmt_with_phi): Likewise.
9015         * tree-dfa.c (refs_may_alias_p): New function.
9016         (get_single_def_stmt): Likewise.
9017         (get_single_def_stmt_from_phi): Likewise.
9018         (get_single_def_stmt_with_phi): Likewise.
9019         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9020         (vn_reference_lookup_1): New helper function.
9021         (vn_reference_lookup): Walk the virtual use-def chain to
9022         continue searching for a match if the def does not alias the
9023         reference we are looking for.
9024
9025 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9026
9027         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9028         archive and Perzl.  Update The Written Word listing.
9029
9030 2008-03-14  Richard Guenther  <rguenther@suse.de>
9031
9032         PR tree-optimization/34043
9033         PR tree-optimization/33989
9034         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9035         when doing FRE.
9036         (bitmap_find_leader): Use extra argument to verify dominance
9037         relationship inside a basic-block.
9038         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9039         (find_leader_in_sets): Adjust.
9040         (create_component_ref_by_pieces): Take extra argument for
9041         dominance check, handle lookup failures.
9042         (find_or_generate_expression): Likewise.
9043         (create_expression_by_pieces): Likewise.
9044         (insert_into_preds_of_block): Adjust.
9045         (create_value_expr_from): If asked for, verify all operands
9046         are in the blocks AVAIL_OUT set.
9047         (make_values_for_stmt): Check for SSA_NAMEs that are life
9048         over an abnormal edge.
9049         (compute_avail): Remove such check.
9050         (do_SCCVN_insertion): New function.
9051         (eliminate): If we do not find a leader suitable for replacement
9052         insert a replacement expression from SCCVN if available.
9053         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9054         (struct vn_ssa_aux): Add needs_insertion flag.
9055         * tree-ssa-sccvn.c (may_insert): New global flag.
9056         (copy_reference_ops_from_ref): Value-number union member access
9057         based on its size, not type and member if insertion is allowed.
9058         (visit_reference_op_load): For a weak match from union type
9059         punning lookup a view-converted value and insert a SSA_NAME
9060         for that value if that is not found.
9061         (visit_use): Make dumps shorter.  Do not disallow value numbering
9062         SSA_NAMEs that are life over an abnormal edge to constants.
9063         (free_scc_vn): Release inserted SSA_NAMEs.
9064         (run_scc_vn): New flag to specify whether insertion is allowed.
9065         Process SSA_NAMEs in forward order.
9066         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9067         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9068         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9069         pointer type to/from integral types that do not change the
9070         precision to regular conversions.
9071
9072 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9073
9074         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9075         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9076         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9077         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9078         input arguments and the mode of return value.  Built-in functions
9079         that operate on whole 64-bit MMX register now use V1DI mode.
9080
9081 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9082             Olga Golovanevsky  <olga@il.ibm.com>
9083
9084         PR tree-optimization/35041
9085         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9086         to locate the right position in a statement.
9087
9088 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9089
9090         PR target/34000
9091         PR target/35553
9092         * config/i386/xmmintrin.h:  Change all static inline functions to
9093         extern inline and add __gnu_inline__ attribute.
9094         * config/i386/bmintrin.h: Ditto.
9095         * config/i386/smmintrin.h: Ditto.
9096         * config/i386/tmmintrin.h: Ditto.
9097         * config/i386/mmintrin-common.h: Ditto.
9098         * config/i386/ammintrin.h: Ditto.
9099         * config/i386/emmintrin.h: Ditto.
9100         * config/i386/pmmintrin.h: Ditto.
9101         * config/i386/mmintrin.h: Ditto.
9102         * config/i386/mm3dnow.h: Ditto.
9103
9104 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9105
9106         PR middle-end/35185
9107         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9108         (lower_omp_2): New function.
9109         (lower_omp_1, lower_omp): Rewritten.
9110
9111 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9112
9113         PR 35054
9114         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9115         with the phrase "Microsoft Windows compilers".
9116         (Push/Pop Macro Pragmas): New subsection. Document
9117         #pragma push_macro and pragma pop_macro.
9118
9119 2008-03-12  Paul Brook  <paul@codesourcery.com>
9120
9121         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9122
9123 2008-03-12  Paul Brook  <paul@codesourcery.com>
9124
9125         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9126         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9127         (thumb2_addsi_shortim): Rename ...
9128         (thumb2_addsi_short): ... to this.  Allow register operands.
9129         (thumb2_subsi_short): New pattern.
9130         (thumb2_one_cmplsi2_short,
9131         thumb2_negsi2_short): New patterns and peepholes.
9132
9133 2008-03-12  Paul Brook  <paul@codesourcery.com>
9134
9135         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9136
9137 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9138
9139         * config/i386/i386.md (int_cond): New code iterator.
9140         (fp_cond): Ditto.
9141         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9142         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9143         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9144         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9145         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9146         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9147         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9148         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9149
9150 2008-03-12  Paul Brook  <paul@codesourcery.com>
9151
9152         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9153         instead of {arm,thumb}_compute_save_reg_mask.
9154         (output_return_instruction): Ditto.
9155         (thumb_unexpanded_epilogue): Ditto.
9156         (thumb1_expand_prologue): Ditto.
9157         (thumb1_output_function_prologue): Ditto.
9158         (arm_set_return_address): Ditto.
9159         (thumb_set_return_address): Ditto.
9160         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9161         regs to achieve stack alignment.
9162         (thumb1_compute_save_reg_mask): Fix compiler warning.
9163         (arm_output_epilogue): Use offsets->saved_regs_mask.
9164         Adjust stack pointer by poping call clobered registers.
9165         (arm_expand_prologue): Use offsets->saved_regs_mask.
9166         Adjust stack pointer by pushing extra registers.
9167         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9168
9169 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9170
9171         PR tree-opt/35422
9172         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9173         conversion to the operands of a multiplication.
9174
9175 2008-03-12  Richard Guenther  <rguenther@suse.de>
9176
9177         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9178         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9179         * timevar.def (TV_TREE_PHIPROP): Add.
9180         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9181         pass description.  Use TV_TREE_PHIPROP.
9182         * tree-ssa-forwprop.c: Remove phiprop code.
9183
9184 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9185
9186         PR middle-end/35549
9187         * omp-low.c (maybe_lookup_decl): Constify first argument.
9188         (use_pointer_for_field): Change last argument from bool to
9189         omp_context *.  Disallow shared copy-in/out in nested
9190         parallel if decl is shared in outer parallel too.
9191         (build_outer_var_ref, scan_sharing_clauses,
9192         lower_rec_input_clauses, lower_copyprivate_clauses,
9193         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9194
9195 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9196             Ira Rosen  <irar@il.ibm.com>
9197
9198         * tree-vectorizer.c (free_stmt_vec_info): New function.
9199         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9200         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9201         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9202         * tree-vect-transform.c (vectorizable_conversion): Free
9203         vec_oprnds0 if it was allocated.
9204         (vect_permute_store_chain): Remove unused VECs.
9205         (vectorizable_store): Free VECs that are allocated in the..
9206         function.
9207         (vect_transform_strided_load, vectorizable_load): Likewise.
9208         (vect_remove_stores): Simplify the code.
9209         (vect_transform_loop): Move code to vect_remove_stores().
9210         Call vect_remove_stores() and free_stmt_vec_info().
9211
9212 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9213
9214         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9215         TARGET_HPUX.  Revise comment.
9216         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9217         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9218         Use sr4 variant of `be' instruction when not generating PIC code.
9219         (attr_length_call): Adjust for above change.
9220
9221 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9222
9223         * ipa-reference.c (static_execute): Remove module_statics_const and
9224         associated setting code.
9225
9226 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9227
9228         PR target/35540
9229         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9230         predicate for operand 1.
9231         (paritysi2_cmp): Use register_operand predicate for operand 2.
9232         Use earlyclobber modifier for operand 1.  Remove support for
9233         memory operands.
9234         (paritydi2_cmp): Use register_operand predicate for operand 3.
9235         Use earlyclobber modifier for operand 1.  Remove support for
9236         memory operands.
9237
9238 2008-03-11  Paul Brook  <paul@codesourcery.com>
9239             Vladimir Prus  <vladimir@codesourcery.com>
9240
9241         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9242         (arm_compute_save_reg0_reg12_mask): Always
9243         check if register 11 must be saved.  Always safe hard frame pointer
9244         when frame_pointer_needeed.
9245         (arm_compute_save_reg_mask): Save IP and PC
9246         only with apcs frames.
9247         (arm_output_epilogue): Adjust Thumb2 codepath to
9248         be also invoked and work for ARM non-apcs frames.
9249         (arm_expand_prologue): Don't bother saving IP
9250         for non-apcs frame, since it's not clobbered by
9251         prologue code.  Implement non-apcs frame
9252         layout.
9253
9254 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9255
9256         PR rtl-optimization/35281
9257         * expr.c (convert_move): Use a new pseudo for the intermediate
9258         from_mode->word_mode result.
9259
9260 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9261
9262         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9263         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9264         * toplev.c (compile_file): Don't call it.
9265
9266 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9267
9268         PR middle-end/35526
9269         * expr.c (store_expr): Call emit_block_move if the mode
9270         of "temp" RTX is BLKmode.
9271
9272 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9273             Richard Guenther  <rguenther@suse.de>
9274
9275         PR tree-optimization/31358
9276         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9277         the step with a NULL_TREE.
9278         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9279         to sizetype if type is a pointer type.
9280         (add_candidate_1): Don't convert the base and step to
9281         the generic type if the orginal type is a pointer type.
9282         (add_iv_value_candidates): Use sizetype for the step
9283         if type is a pointer type.
9284         (cand_value_at): Likewise.
9285         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9286         for pointer types.
9287         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9288         Don't convert the tem affine to the type.
9289         (add_elt_to_tree): Use sizetype for the step if a pointer.
9290         Use POINTER_PLUS_EXPR for pointers.
9291         (aff_combination_to_tree): Use sizetype for the step if a
9292         pointer.
9293
9294 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9295
9296         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
9297         Remove commutativity hint.
9298
9299 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
9300
9301         PR c/35438
9302         PR c/35439
9303         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
9304         errorneous type.  Check that v is a VAR_DECL.
9305
9306         PR middle-end/35099
9307         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9308
9309 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9310
9311         PR tree-optimization/35494
9312         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9313         may be overriden at link and run time.
9314
9315 2008-03-10  Richard Guenther  <rguenther@suse.de>
9316
9317         PR tree-optimization/34677
9318         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9319         (poolify_tree): Likewise.
9320         (modify_expr_template): Likewise.
9321         (poolify_modify_stmt): Likewise.
9322         (insert_fake_stores): Handle all component-ref style stores
9323         in addition to INDIRECT_REF.  Also handle complex types.
9324         Do not poolify the inserted load.
9325         (realify_fake_stores): Do not rebuild the tree but only
9326         make it a SSA_NAME copy.
9327         (init_pre): Remove initialzation of modify_expr_template.
9328         Do not allocate modify_expr_node_pool.
9329         (fini_pre): Do not free modify_expr_node_pool.
9330
9331 2008-03-10  Paul Brook  <paul@codesourcery.com>
9332
9333         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9334         to avoid conflicts.
9335
9336 2008-03-10  Paul Brook  <paul@codesourcery.com>
9337             Mark Shinwell  <shinwell@codesourcery.com>
9338
9339         * config/arm/cortex-r4.md: New.
9340         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9341         insn attributes.
9342         * config/arm/arm.md: Include cortex-r4.md.
9343         (insn): Add smmls, sdiv and udiv values.
9344         (generic_sched): Don't use generic scheduling for Cortex-R4.
9345         (arm_issue_rate): New function.
9346         (TARGET_SCHED_ISSUE_RATE): Define.
9347
9348 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9349
9350         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9351
9352 2008-03-10  Richard Guenther  <rguenther@suse.de>
9353
9354         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9355         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9356
9357 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9358
9359         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9360         Set default to true.
9361
9362 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9363
9364         * c.opt (Wsynth): Deprecate.
9365         * doc/invoke.texi (Option Summary, Warning Options): Document
9366         -Wno-format-contains-nul.
9367
9368 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         PR target/35496
9371         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9372         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9373
9374 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9375
9376         * config/rs6000/rs6000.c (builtin_description): Rename vector
9377         left shift operations.
9378         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9379         (altivec_vsl<VI_char>): Rename to ...
9380         (ashl<mode>3): ... new name.
9381         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9382         gen_ashlv4si3.
9383         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9384
9385 2008-03-08  Richard Guenther  <rguenther@suse.de>
9386
9387         * coverage.h (tree_coverage_counter_addr): Declare.
9388         * coverage.c (tree_coverage_counter_addr): New function.
9389         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9390         before using again.
9391         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9392         (tree_gen_one_value_profiler): Likewise.
9393         (tree_gen_ic_profiler): Likewise.
9394         (tree_gen_average_profiler): Likewise.
9395         (tree_gen_ior_profiler): Likewise.
9396
9397 2008-03-08  Richard Guenther  <rguenther@suse.de>
9398
9399         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9400         (vn_binary_op_insert): Likewise.
9401         (vn_unary_op_lookup): Likewise.
9402         (vn_unary_op_insert): Likewise.
9403         (vn_nary_op_lookup): Declare.
9404         (vn_nary_op_insert): Likewise.
9405         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9406         and binary hashes, use a single obstack for unary_op_pool
9407         and binary_op_pool.
9408         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9409         a single struct vn_nary_op_s.  Store tree code length and
9410         a variable number of operands.
9411         (struct vn_reference_op_struct): Remove unused op2.
9412         (vn_reference_op_eq): Do not compare op2.
9413         (vn_reference_op_compute_hash): Do not compute hash of op2.
9414         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9415         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9416         with vn_nary_op_compute_hash.
9417         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9418         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9419         vn_nary_op_lookup.
9420         (vn_unary_op_insert, vn_binary_op_insert): Replace with
9421         vn_nary_op_insert.
9422         (visit_unary_op): Call nary functions.
9423         (visit_binary_op): Likewise.
9424         (process_scc): Adjust for struct vn_tables_s changes.
9425         (allocate_vn_table): Likewise.
9426         (free_vn_table): Likewise.
9427         * tree-vn.c (vn_add): Call nary functions.
9428         (vn_lookup): Likewise.
9429
9430 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
9431
9432         PR target/35498
9433         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9434         wdst back after sync_compare_and_swapqhi_internal.
9435
9436 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
9437
9438         PR target/22152
9439         * config/i386/i386-modes.def (V1DI): New vector mode.
9440         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9441         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9442         (MMXMODE248): Ditto.
9443         (MMXMODE): Add V1DI mode.
9444         (mmxvecsize): Change DI mode to V1DI mode.
9445         ("mov<mode>): Use MMXMODEI8 mode iterator.
9446         ("*mov<mode>_internal_rex64"): Ditto.
9447         ("*mov<mode>_internal"): Ditto.
9448         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
9449         ("mmx_sub<mode>3"): Ditto.
9450         ("mmx_adddi3"): Remove insn pattern.
9451         ("mmx_subdi3"): Ditto.
9452         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9453         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9454         ("mmx_ashl<mode>3"): Ditto.
9455         ("mmx_lshrdi3"): Remove insn pattern.
9456         ("mmx_ashldi3"): Ditto.
9457         * config/i386/i386.c (classify_argument): Handle V1DImode.
9458         (function_arg_advance_32): Ditto.
9459         (function_arg_32): Ditto.
9460         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9461         mmx_addv1di3 insn pattern.
9462         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9463         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9464         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9465         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9466         Remove definitions of built-in functions.
9467         (V1DI_type_node): New node.
9468         (v1di_ftype_v1di_int): Ditto.
9469         (v1di_ftype_v1di_v1di): Ditto.
9470         (v2si_ftype_v2si_si): Ditto.
9471         (v4hi_ftype_v4hi_di): Remove node.
9472         (v2si_ftype_v2si_di): Ditto.
9473         (ix86_init_mmx_sse_builtins): Handle V1DImode.
9474         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9475         Redefine builtins using def_builtin_const with *_ftype_*_int node.
9476         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9477         Add new builtins using def_builtin_const.
9478         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9479         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9480         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9481         * config/i386/mmintrin.h (__v1di): New typedef.
9482         (_mm_add_si64): Cast arguments to __v1di type.
9483         (_mm_sub_si64): Ditto.
9484         (_mm_sll_pi16): Cast __count to __v4hi type.
9485         (_mm_sll_pi32): Cast __count to __v2si type.
9486         (_mm_sll_si64): Cast arguments to __v1di type.
9487         (_mm_srl_pi16): Cast __count to __v4hi type.
9488         (_mm_srl_pi32): Cast __count to __v2si type.
9489         (_mm_srl_si64): Cast arguments to __v1di type.
9490         (_mm_sra_pi16): Cast __count to __v4hi type.
9491         (_mm_sra_pi32): Cast __count to __v2si type.
9492         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
9493         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
9494         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
9495         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
9496         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
9497         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
9498         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
9499         (_mm_srai_pi32): Use __builtin_ia32_psradi.
9500         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
9501         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9502         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9503         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
9504
9505 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
9506
9507         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
9508
9509 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
9510
9511         PR target/35373
9512         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
9513         reg+const addressing for Altivec modes.  Don't generate reg+reg
9514         addressing for TFmode or TDmode quantities.
9515
9516 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
9517
9518         * c-common.c (vector_types_convertible_p): Call langhook
9519         instead of comptypes.
9520
9521 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9522
9523         PR tree-opt/35402
9524         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
9525         integral and scalar float variables which have a
9526         NULL DECL_INITIAL.
9527
9528 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
9529
9530         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
9531         dwarf_register_span hook when emitting unwind information for
9532         register-to-memory saves.
9533         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
9534         (rs6000_frame_related): Remove call to spe_synthesize_frame.
9535
9536 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9537
9538         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
9539         for the same VAR_DECL.
9540
9541 2008-03-06  Tom Tromey  <tromey@redhat.com>
9542
9543         * treelang: Delete.
9544         * doc/standards.texi (Standards): Don't mention treelang.
9545         * doc/invoke.texi (Overall Options): Don't mention treelang.
9546         * doc/install.texi (Prerequisites): Don't mention bison or
9547         treelang.
9548         (Configuration): Don't mention treelang.
9549         (Building): Likewise.
9550         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
9551
9552 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
9553
9554         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
9555         word-extractions out of a multi-word object.
9556
9557 2008-03-06  Richard Guenther  <rguenther@suse.de>
9558
9559         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
9560         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
9561         result type and precision.
9562         * expr.c (get_inner_reference): Set unsignedp based on the result
9563         type of BIT_FIELD_REF.
9564         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
9565         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
9566         (try_instantiate_multiple_fields): Likewise.  Use the correct type
9567         for BIT_FIELD_REF.
9568         (sra_build_assignment): Likewise.
9569         (sra_build_elt_assignment): Likewise.
9570         (sra_explode_bitfield_assignment): Likewise.
9571         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
9572         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
9573         set BIT_FIELD_REF_UNSIGNED.
9574         (vectorizable_load): Likewise.
9575
9576 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
9577
9578         * cse.c (cse_extended_basic_block): Invalidate artificial defs
9579         at bb start.
9580
9581 2008-03-06  Richard Guenther  <rguenther@suse.de>
9582
9583         * alias.c (struct alias_set_entry): Move has_zero_child field
9584         to pack with alias_set.
9585
9586 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9587
9588         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9589         32bit host.
9590
9591 2008-03-05  Ian Lance Taylor  <iant@google.com>
9592
9593         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
9594
9595 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
9596
9597         * fwprop.c (update_df): Support width and offset parameters of
9598         df_ref_create.
9599         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
9600         global_conflicts): Change DF_REF_EXTRACT to either
9601         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9602         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9603         * df-scan.c (df_ref_record, df_defs_record,
9604         df_ref_create_structure, df_def_record_1, df_uses_record,
9605         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
9606         df_bb_refs_collect, df_entry_block_defs_collect,
9607         df_exit_block_uses_collect): Support new width and offset fields.
9608         (ref_extract_pool): New storage pool.
9609         (df_free_ref): New function.
9610         (df_reg_chain_unlink, df_free_collection_rec,
9611         df_sort_and_compress_refs): Call df_free_ref.
9612         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
9613         of df_ref_extract.
9614         (df_ref_create_structure): Allocate df_ref_extract if offset and
9615         width fields are used.
9616         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
9617         (df_uses_record): Get offset and width from ZERO_EXTRACT 
9618         and SIGN_EXTRACT.
9619         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
9620         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9621         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9622         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
9623         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9624         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9625         (df_ref_extract): New structure.
9626         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
9627         (df_ref_create): Add width and offset parameters.
9628         
9629 2008-03-05  Richard Guenther  <rguenther@suse.de>
9630
9631         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9632         Use ranges_overlap_p.
9633         (offset_overlaps_with_access): Rename
9634         to ranges_overlap_p and move ...
9635         * tree-flow-inline.h (ranges_overlap_p): ... here.
9636
9637         * tree.h (get_inner_reference, handled_component_p): Update
9638         comments.
9639
9640         * tree.h (record_component_aliases, get_alias_set,
9641         alias_sets_conflict_p, alias_sets_must_conflict_p,
9642         objects_must_conflict_p): Move declarations ...
9643         * alias.h (record_component_aliases, get_alias_set,
9644         alias_sets_conflict_p, alias_sets_must_conflict_p,
9645         objects_must_conflict_p): ... here.
9646         Include coretypes.h.
9647         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
9648
9649 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
9650
9651         * cfg.c: Include tree-flow.h.
9652         (remove_edge_raw): Call redirect_edge_var_map_clear.
9653         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
9654         * tree-flow-inline.h (redirect_edge_var_map_def): New.
9655         (redirect_edge_var_map_result): New.
9656         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
9657         PENDING_STMT use with redirect_edge_var_map_*.
9658         * tree-ssa.c (edge_var_maps): New definition.
9659         (redirect_edge_var_map_add): New.
9660         (redirect_edge_var_map_clear): New.
9661         (redirect_edge_var_map_dup): New.
9662         (redirect_edge_var_map_vector): New.
9663         (redirect_edge_var_map_destroy): New.
9664         (ssa_redirect_edge): Replace PENDING_STMT use with
9665         redirect_edge_var_map_*.
9666         (flush_pending_stmts): Same.
9667         (delete_tree_ssa): Destroy edge var map.
9668         * tree-flow.h (struct _edge_var_map): New.
9669         Define edge_var_map vector type.
9670         Declare redirect_edge_var_map_* prototypes.
9671         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
9672         * tree-cfg.c (reinstall_phi_args): Replace
9673         PENDING_STMT use with redirect_edge_var_map_*.
9674
9675 2008-03-05  Richard Guenther  <rguenther@suse.de>
9676
9677         PR tree-optimization/35472
9678         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
9679         whose single use_stmt has a overlapping set of loaded and
9680         stored symbols as that use_stmt might be a noop assignment then.
9681
9682 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
9683
9684         * gthr-rtems.h: Implement __gthread_mutex_destroy.
9685
9686 2008-03-05  Richard Guenther  <rguenther@suse.de>
9687
9688         PR c++/35336
9689         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
9690         should be constants.
9691         * tree-cfg.c (verify_expr): Verify it.
9692         * fold-const.c (fold_truthop): Remove code generating
9693         BIT_FIELD_REFs of structure bases.
9694         (fold_binary): Likewise.
9695         (fold_ternary): Position and size of BIT_FIELD_REFs are
9696         always host integers.
9697         (make_bit_field_ref): Remove.
9698         (optimize_bit_field_compare): Remove.
9699         (all_ones_mask_p): Remove.
9700
9701 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
9702
9703         PR gcc/33009
9704         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
9705         (split_block_and_df_analyze): New. Split basic block and rebuild
9706         dataflow.
9707         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
9708         SPLIT_BLOCK.
9709         (split_pattern_seq): Likewise.
9710         (erase_matching_seqs): Likewise.
9711         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
9712
9713 2008-03-04  Geoff Keating  <geoffk@apple.com>
9714
9715         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9716         declaration and code.
9717         (tree_invalid_nonnegative_warnv_p): Likewise.
9718
9719 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9720
9721         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9722         examples.  Truncate option-names then causing overfull hbox.
9723
9724 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9725
9726         PR target/35222
9727         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9728         on hpux10.
9729         * configure: Rebuilt.
9730
9731 2008-03-04  Rafael Espindola  <espindola@google.com>
9732
9733         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
9734         (tree_unary_nonnegative_warnv_p): New.
9735         (tree_binary_nonnegative_warnv_p): New.
9736         (tree_single_nonnegative_warnv_p): New.
9737         (tree_invalid_nonnegative_warnv_p): New.
9738         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
9739
9740 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9741
9742         PR 28322
9743         * opts.c (handle_option): Postpone 'unknown option' errors only for
9744         warning options.
9745
9746 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9747
9748         PR target/35453
9749         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
9750         (_SIDD_XXX): This.
9751
9752 2008-03-04  Rafael Espindola  <espindola@google.com>
9753
9754         * fold-const.c (tree_unary_nonzero_warnv_p): New.
9755         (tree_binary_nonzero_warnv_p): New.
9756         (tree_single_nonzero_warnv_p): New.
9757         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
9758
9759 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
9760
9761         PR middle-end/35456
9762         * fold-const.c (fold_cond_expr_with_comparison): Prevent
9763         transformations for modes that have signed zeros.
9764         * ifcvt.c (noce_try_abs): Ditto.
9765
9766 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
9767
9768         * config/i386/i386.c (override_options): Force
9769         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
9770
9771 2008-03-04  Jan Hubicka  <jh@suse.cz>
9772
9773         PR c++/35262
9774         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
9775         in last commit.
9776
9777 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9778
9779         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
9780         label to probe the stack.
9781
9782 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9783
9784         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
9785         (__gthr_win32_mutex_destroy): Declare.
9786         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
9787         __gthr_win32_mutex_destroy.
9788         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
9789
9790 2008-03-03  Jan Hubicka  <jh@suse.cz>
9791
9792         PR c++/35262
9793         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9794         aggressive on inlining cold calls.
9795
9796 2008-03-03  Richard Guenther  <rguenther@suse.de>
9797
9798         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9799         struct copies into the expression table.
9800         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9801         (try_to_simplify): Likewise.
9802         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9803         integral and pointer arguments which do not change the
9804         precision to NOP_EXPRs.
9805         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9806         VIEW_CONVERT_EXPR case.
9807
9808 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9809
9810         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9811         defined in a loop at depth 0 is invariant.
9812         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9813         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9814         be called at loop depth 0.
9815
9816 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
9817
9818         PR driver/35420
9819         * gcc.c (process_command): Update copyright notice dates.
9820         * gcov.c (print_version): Likewise.
9821         * gcov-dump.c (print_version): Likewise.
9822         * mips-tfile.c (main): Likewise.
9823         * mips-tdump.c (main): Likewise.
9824
9825 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9826
9827         PR 24924
9828         * c-common.c (flag_permissive): Delete.
9829         (constant_expression_warnings): Check flags first.
9830         (constant_expression_error): New.
9831         * c-common.h (flag_permissive): Delete.
9832         (constant_expression_error): Declare.
9833         * flags.h (flag_permissive): Declare. Update description.
9834         * diagnostic.c (pedwarn): Update.
9835         (permerror): New.
9836         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9837         (permissive_error_kind): New.
9838         * toplev.c (flag_permissive): Define. Update description.
9839         * toplev.h (permissive_error_kind): Declare.
9840         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9841         (pedwarn_c90): Use pedantic_warning_kind.
9842         * c-opts.c (c_common_post_options): flag_permissive does not affect
9843         flag_pedantic_errors.
9844
9845 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
9846
9847         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9848         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9849         __absvsi2, __absvDI2): Use unsigned arithmetic.
9850
9851 2008-03-02  Andi Kleen  <ak@suse.de>
9852             Richard Guenther  <rguenther@suse.de>
9853
9854         * struct-equiv.c: Remove file.
9855         * cfg_cleanup.c (condjump_equiv_p): Remove.
9856         * Makefile.in (OBJS-common): Remove struct-equiv.o.
9857         (struct-equiv.o): Remove rule.
9858         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9859         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
9860         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9861
9862 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9863
9864         * ifcvt.c (noce_process_if_block): Try to handle only the then
9865         block if the else block exists but isn't suitable.
9866
9867 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9868
9869         PR gcc/35063
9870         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9871         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9872         regression from previous patch.
9873
9874 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9875
9876         PR gcc/35063
9877         * gthr.h: Add __gthread_mutex_destroy as a function that must be
9878         implemented.
9879         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9880         * gthr-single.h (__gthread_mutex_destroy): Likewise.
9881         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9882         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9883         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9884         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9885         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9886         (__gthread_mutex_destroy_function): Rename to
9887         __gthread_mutex_destroy.
9888         * gthr-dce.h (__gthread_mutex_destroy): Call
9889         pthread_mutex_destroy.
9890         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9891         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9892         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9893
9894 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9895
9896         * df-scan.c (df_ref_chain_change_bb): Simplify.
9897         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
9898         set_block_for_insn if there's any change.
9899         * df.h ((df_insn_change_bb): Fix prototype.
9900         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9901         df_insn_change_bb, don't call set_block_for_insn.
9902         * emit-rtl.c (reorder_insns): Likewise.
9903         * haifa-sched.c (move_insn): Likewise.
9904
9905 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9906
9907         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
9908
9909 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9910
9911         * tree-flow-inline.h (next_readonly_imm_use): Return
9912         NULL_USE_OPERAND_P after the end.
9913
9914 2008-03-01  Richard Guenther  <rguenther@suse.de>
9915
9916         PR tree-optimization/35411
9917         * tree-sra.c (sra_build_assignment): Split conversion to
9918         final type to a separate statement if we are not assigning
9919         to a register.
9920
9921 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9922
9923         * fold-const.c (fold_convertible_p): Correct the logic to follow
9924         that in fold_convert().
9925
9926 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
9927
9928         PR c++/35315
9929         * tree-inline.c (build_duplicate_type): When we make a
9930         duplicate type, make it unique in the canonical types system.
9931
9932 2008-02-29  Tom Tromey  <tromey@redhat.com>
9933
9934         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9935         input_file_stack_history, input_file_stack_restored): Remove.
9936         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9937         * input.h (struct file_stack): Remove.
9938         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9939         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9940         Likewise.
9941         * diagnostic.h (struct diagnostic_context) <last_module>: Change
9942         type.
9943         (diagnostic_last_module_changed): Add 'map' argument.
9944         (diagnostic_set_last_function): Likewise.
9945         * diagnostic.c (undiagnostic_report_current_module): Iterate using
9946         line map, not input_file_stack.
9947         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9948
9949 2008-02-29  Paul Brook  <paul@codesourcery.com>
9950
9951         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9952
9953 2008-02-29  Paul Brook  <paul@codesourcery.com>
9954
9955         * config/arm/ieee754-df.S (muldf3): Use RET macros.
9956
9957 2008-02-29  Richard Guenther  <rguenther@suse.de>
9958
9959         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9960         vn_lookup_or_add.
9961         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9962         value for comparing for a store match.
9963         (simplify_unary_expression): Do nothing for SSA_NAMEs.
9964         (try_to_simplify): Do not do a full-blown reference lookup.
9965
9966 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9967
9968         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9969         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9970
9971         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9972
9973 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
9974
9975         * tree-loop-linear.c (try_interchange_loops): Compare memory access
9976         strides against cache sizes.
9977
9978 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9979
9980         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9981         constant to fpul.
9982
9983 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
9984
9985         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9986         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9987         is smaller than the original promoted value.
9988         (simplify_subreg): If OP is a SUBREG, try to preserve its
9989         SUBREG_PROMOTED_VAR_P information.
9990
9991 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9992
9993         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9994         (VN_INFO_GET): Allocate new objects on the obstack.
9995         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
9996         for rpo_numbers_temp, for consistency.
9997         (free_scc_vn): Free the obstack.
9998
9999 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10000
10001         * doc/invoke.texi: Document -ftree-loop-distribution.
10002         * tree-loop-distribution.c: New.
10003         * tree-pass.h (pass_loop_distribution): New.
10004         * graphds.h (struct graph): Add htab_t indices.
10005         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10006         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10007         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10008         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10009         * tree-data-ref.c (debug_data_dependence_relations): New.
10010         (dump_data_dependence_relation): Also print data references.
10011         (free_data_ref): Extern.
10012         (same_access_functions): Moved...
10013         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10014         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10015         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10016         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10017         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10018         (stmts_from_loop): Skip LABEL_EXPR.
10019         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10020         New.
10021         (build_rdg): Initialize rdg->indices htab.
10022         (free_rdg, stores_from_loop, ref_base_address,
10023         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10024         have_similar_memory_accesses_1, ref_base_address_1,
10025         remove_similar_memory_refs): New.
10026         * tree-data-ref.h: Depend on tree-chrec.h.
10027         (debug_data_dependence_relations, free_data_ref): Declared.
10028         (same_access_functions): ... here.
10029         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10030         New.
10031         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10032         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10033         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10034         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10035         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10036         rdg_vertex_for_stmt): Declared.
10037         (struct rdg_edge): Add level.
10038         (RDGE_LEVEL): New.
10039         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10040         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10041         Declared.
10042         (rdg_has_similar_memory_accesses): New.
10043         * tree-vect-analyze.c: Remove unused static decls.
10044         * lambda.h (dependence_level): New.
10045         * common.opt (ftree-loop-distribution): New.
10046         * tree-flow.h (mark_virtual_ops_in_bb, 
10047         slpeel_tree_duplicate_loop_to_edge_cfg,
10048         rename_variables_in_loop): Declared.
10049         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10050         (OBJS-common): Add tree-loop-distribution.o.
10051         (tree-loop-distribution.o): New rule.
10052         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10053         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10054         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10055
10056 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10057
10058         PR target/33963
10059         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10060         other than structures and unions.
10061
10062 2008-02-28  Richard Guenther  <rguenther@suse.de>
10063
10064         Revert:
10065         2008-02-26  Richard Guenther  <rguenther@suse.de>
10066
10067         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10068         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10069         (lookup_decl_from_uid): Declare.
10070         (remove_decl_from_map): Likewise.
10071         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10072         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10073         (decl_for_uid_map): New global hashtable mapping DECL_UID
10074         to the decl tree.
10075         (init_ttree): Allocate it.
10076         (insert_decl_to_uid_decl_map): New helper function.
10077         (make_node_stat): Insert new decls into the map.
10078         (copy_node_stat): Likewise.
10079         (lookup_decl_from_uid): New function.
10080         (remove_decl_from_map): Likewise.
10081         (print_decl_for_uid_map_statistics): New helper.
10082         (dump_tree_statistics): Call it.
10083
10084         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10085         (referenced_var_iterator): Adjust.
10086         (FOR_EACH_REFERENCED_VAR): Adjust.
10087         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10088         (num_referenced_vars): Adjust.
10089         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10090         (first_referenced_var): Remove.
10091         (end_referenced_vars_p): Likewise.
10092         (next_referenced_var): Likewise.
10093         (referenced_var_iterator_set): New helper function.
10094         * tree-dfa.c (referenced_var_lookup): Adjust.
10095         (referenced_var_check_and_insert): Likewise.
10096         (remove_referenced_var): Likewise.
10097         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10098         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10099         (verify_call_clobbering): Likewise.
10100         (verify_memory_partitions): Likewise.
10101         (init_tree_ssa): Allocate bitmap instead of hashtable for
10102         referenced_vars.
10103         (delete_tree_ssa): Adjust.
10104         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10105         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10106         (compute_tag_properties): Likewise.
10107         (set_initial_properties): Likewise.
10108         (find_partition_for): Likewise.
10109         (update_reference_counts): Likewise.
10110         (dump_may_aliases_for): Likewise.
10111         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10112         (add_call_clobber_ops): Likewise.
10113         (add_call_read_ops): Likewise.
10114         (get_asm_expr_operands): Likewise.
10115         * tree-into-ssa.c (dump_decl_set): Likewise.
10116         (update_ssa): Likewise.
10117         * tree-sra.c (scan_function): Likewise.
10118         (decide_instantiations): Likewise.
10119         (scalarize_parms): Likewise.
10120         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10121         (dsa_named_for): Likewise.
10122         * tree-ssa-structalias.c (update_alias_info): Likewise.
10123         (merge_smts_into): Likewise.
10124
10125 2008-02-27  David Daney  <ddaney@avtrex.com>
10126
10127         PR target/34409
10128         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10129         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10130         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10131         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10132         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10133
10134 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10135
10136         PR target/25477
10137         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10138         (BUILT_IN_NEXTTOWARD): Remove.
10139         (BUILT_IN_NEXTTOWARDF): Ditto.
10140         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10141         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10142
10143 2008-02-27  Tom Tromey  <tromey@redhat.com>
10144
10145         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10146         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10147
10148 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10149
10150         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10151         update the respective field on newdecl.
10152
10153 2008-02-27  Revital Eres  <eres@il.ibm.com>
10154
10155         PR rtl-optimization/34999
10156         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10157         crossing edges that ends with a call insn.
10158         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10159         call insn and clear the EDGE_CROSSING flag of the crossing edge
10160         when fixing fallthru edges.
10161
10162 2008-02-27  Richard Guenther  <rguenther@suse.de>
10163
10164         PR middle-end/35390
10165         * fold-const.c (fold_unary): Return the correct argument,
10166         converted to the result type.
10167
10168 2008-02-27  Richard Guenther  <rguenther@suse.de>
10169
10170         PR middle-end/34971
10171         * expr.c (expand_expr_real_1): Assert on rotates that operate
10172         on partial modes.
10173         * fold-const.c (fold_binary): Use the types precision, not the
10174         bitsize of the mode if folding rotate expressions.  Build rotates
10175         only for full modes.
10176
10177 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10178
10179         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10180         and CPP_PRAGMA_EOL.
10181         * c-pragma.c (pragma_ns_name): New typedef.
10182         (registered_pp_pragmas): New variable.
10183         (c_pp_lookup_pragma): New function.
10184         (c_register_pragma_1): If flag_preprocess_only, do nothing
10185         for non-expanded pragmas, for expanded ones push pragma's
10186         namespace and name into registered_pp_pragmas vector.
10187         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10188         flag_preprocess_only, don't register GCC pch_preprocess
10189         pragma if flag_preprocess_only.
10190         * c-opts.c (c_common_init): Call init_pragma even if
10191         flag_preprocess_only.
10192         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10193         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10194         cpp_register_pragma if flag_preprocess_only.
10195
10196 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10197
10198         PR c/28800
10199         * c-parser.c (c_parser_translation_unit): Warn for empty
10200         translation unit, not empty source file.
10201
10202 2008-02-26  Paul Brook  <paul@codesourcery.com>
10203
10204         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10205         operand for Thumb-2.
10206         * config/arm/arm.h (reg_class): Add CORE_REGS.
10207         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10208         (BASE_REG_CLASS): Use CORE_REGS.
10209         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10210         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10211         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10212         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10213         ARM_REGNO_OK_FOR_INDEX_P.
10214         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10215         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10216         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10217         (ldm/stm peepholes): Ditto.
10218         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10219         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10220         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10221         * config/arm/constraints.md: Enable "k" constraint on ARM.
10222
10223 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10224
10225         * config/rs6000/rs6000.c: Annotate cache line size field in all
10226         instances of struct processor_costs.
10227
10228 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10229
10230         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10231         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10232         jump_bypass): New counters.
10233         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10234         * dce.c (gate_ud_dce): Same.
10235         (gate_fast_dce): Same.
10236         * dse.c (gate_dse1): New function.
10237         (gate_dse2): New function.
10238         (gate_dse): Merge results of new gate functions.
10239         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10240         (gate_handle_jump_bypass): Add dbg_cnt.
10241         (gate_handle_gcse): Add dbg_cnt.
10242         * ifcvt.c (gate_handle_if_conversion): Same.
10243         (gate_handle_if_after_combine): Same.
10244         (gate_handle_if_after_reload): Same.
10245         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10246
10247 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10248
10249         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10250         line sizes.
10251         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10252
10253 2008-02-26  Jason Merrill  <jason@redhat.com>
10254
10255         PR c++/35315
10256         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10257         alone if it's the naming decl for the type's main variant.
10258
10259 2008-02-26  Tom Tromey  <tromey@redhat.com>
10260
10261         * system.h (USE_MAPPED_LOCATION): Poison.
10262         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10263         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10264         (make_goto_expr_edges): Likewise.
10265         (remove_bb): Likewise.
10266         (execute_warn_function_return): Likewise.
10267         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10268         location_t.
10269         * c-common.c (fname_decl): Remove old location code.
10270         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10271         location code.
10272         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10273         variant.
10274         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10275         (gen_rtx_ASM_INPUT): Likewise.
10276         (gen_rtx_ASM_INPUT_loc): Likewise.
10277         (get_rtx_asm_OPERANDS): Remove.
10278         * cfglayout.c (insn_locators_alloc): Remove old location code.
10279         (set_curr_insn_source_location): Likewise.
10280         (curr_insn_locator): Likewise.
10281         * print-tree.c (print_node): Remove old location code.
10282         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10283         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10284         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10285         location_from_locus.
10286         (construct_exit_block): Remove old location code.
10287         * emit-rtl.c (force_next_line_note): Remove old location code.
10288         * profile.c (branch_prob): Remove old location code.
10289         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10290         LOC_LINE): Remove old-location variants.
10291         * langhooks.c (lhd_print_error_function): Remove old location
10292         code.
10293         * configure, config.in: Rebuilt.
10294         * configure.ac (--enable-mapped-location): Remove.
10295         * c-decl.c (c_init_decl_processing): Remove old location code.
10296         (finish_function): Likewise.
10297         * recog.c (decode_asm_operands): Remove old location code.
10298         * c-pch.c (c_common_read_pch): Remove old location code.
10299         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
10300         variants.
10301         * gimple-low.c (lower_function_body): Remove old location code.
10302         * toplev.c (unknown_location): Remove.
10303         (push_srcloc): Remove old-location variant.
10304         (process_options): Remove old location code.
10305         (lang_dependent_init): Likewise.
10306         * input.h (UNKNOWN_LOCATION): Move definition.
10307         (location_t): Undeprecate.
10308         (source_locus): Remove.
10309         (location_from_locus): Remove.
10310         (struct location_s): Remove.
10311         Remove all old-location code.
10312         (input_line, input_filename): Remove.
10313         * final.c (final_scan_insn): Remove old location code.
10314         * diagnostic.c (diagnostic_build_prefix): Remove
10315         USE_MAPPED_LOCATION test.
10316         * tree.h (gimple_stmt) <locus>: Now a location_t.
10317         (tree_exp) <locus>: Likewise.
10318         (DECL_IS_BUILTIN): Remove old-location variant.
10319         (annotate_with_file_line, annotate_with_locus): Likewise.
10320         (expr_locus, set_expr_locus): Update.
10321         * tree.c (build1_stat): Remove old location code.
10322         (last_annotated_node): Remove.
10323         (annotate_with_file_line): Remove old-location variant.
10324         (annotate_with_locus): Likewise.
10325         (expr_location): Remove old location code.
10326         (set_expr_location): Likewise.
10327         (expr_has_location): Likewise.
10328         (expr_locus): Likewise.
10329         (set_expr_locus): Likewise.
10330         (expr_filename): Don't use location_from_locus.
10331         (expr_lineno): Likewise.
10332         * rtl-error.c (location_for_asm): Remove old location code.
10333         * c-lex.c (cb_line_change): Remove old location code.
10334         (fe_file_change): Likewise.
10335         (cb_def_pragma): Likewise.
10336         (c_lex_with_flags): Likewise.
10337         * gengtype.c (do_typedef): Don't special-case location types.
10338         (define_location_structures): Remove.
10339         (main): Don't call define_location_structures.
10340         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10341         code.
10342
10343 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10344
10345         PR 26264
10346         * builtins.def (BUILT_IN_STDARG_START): Remove.
10347         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10348         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10349         * tree-inline.c (inline_forbidden_p_1): Likewise.
10350         
10351 2008-02-26  Richard Guenther  <rguenther@suse.de>
10352
10353         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10354         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10355         (lookup_decl_from_uid): Declare.
10356         (remove_decl_from_map): Likewise.
10357         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10358         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10359         (decl_for_uid_map): New global hashtable mapping DECL_UID
10360         to the decl tree.
10361         (init_ttree): Allocate it.
10362         (insert_decl_to_uid_decl_map): New helper function.
10363         (make_node_stat): Insert new decls into the map.
10364         (copy_node_stat): Likewise.
10365         (lookup_decl_from_uid): New function.
10366         (remove_decl_from_map): Likewise.
10367         (print_decl_for_uid_map_statistics): New helper.
10368         (dump_tree_statistics): Call it.
10369
10370         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10371         (referenced_var_iterator): Adjust.
10372         (FOR_EACH_REFERENCED_VAR): Adjust.
10373         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10374         (num_referenced_vars): Adjust.
10375         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10376         (first_referenced_var): Remove.
10377         (end_referenced_vars_p): Likewise.
10378         (next_referenced_var): Likewise.
10379         (referenced_var_iterator_set): New helper function.
10380         * tree-dfa.c (referenced_var_lookup): Adjust.
10381         (referenced_var_check_and_insert): Likewise.
10382         (remove_referenced_var): Likewise.
10383         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10384         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10385         (verify_call_clobbering): Likewise.
10386         (verify_memory_partitions): Likewise.
10387         (init_tree_ssa): Allocate bitmap instead of hashtable for
10388         referenced_vars.
10389         (delete_tree_ssa): Adjust.
10390         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10391         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10392         (compute_tag_properties): Likewise.
10393         (set_initial_properties): Likewise.
10394         (find_partition_for): Likewise.
10395         (update_reference_counts): Likewise.
10396         (dump_may_aliases_for): Likewise.
10397         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10398         (add_call_clobber_ops): Likewise.
10399         (add_call_read_ops): Likewise.
10400         (get_asm_expr_operands): Likewise.
10401         * tree-into-ssa.c (dump_decl_set): Likewise.
10402         (update_ssa): Likewise.
10403         * tree-sra.c (scan_function): Likewise.
10404         (decide_instantiations): Likewise.
10405         (scalarize_parms): Likewise.
10406         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10407         (dsa_named_for): Likewise.
10408         * tree-ssa-structalias.c (update_alias_info): Likewise.
10409         (merge_smts_into): Likewise.
10410
10411 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10412
10413         PR 34351
10414         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10415         * c-opts.c (c_common_handle_option): Wall enables
10416         Wvolatile-register-var.
10417         * common.opt: Move Wvolatile-register-var to...
10418         * c.opt: ...here.
10419         
10420 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10421
10422         * common.opt (Wlarger-than=): New.
10423         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10424         -Wlarger-than=.
10425         * opts.c (common_handle_option): Handle -Wlarger-than=.
10426         * optc-gen.awk: Likewise.
10427         * opth-gen.awk: Likewise.
10428         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10429         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10430         
10431 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10432
10433         * c-common.c (match_case_to_enum_1): Add appropriate
10434         OPT_W* parameter to warning.
10435         (c_do_switch_warnings): Likewise.
10436         * c-typeck.c (warning_init): Add one more parameter following
10437         'warning' function.
10438         (push_init_level): Update call to warning_init.
10439         (pop_init_level): Likewise.
10440         (add_pending_init): Likewise.
10441         (output_init_element: Likewise.
10442
10443 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10444
10445         PR 28322
10446         * toplev.c (toplev_main): If there are warnings or error, print
10447         errors for ignored options.
10448         * opts.c (ignored_options): New static variable.
10449         (postpone_unknown_option_error): New.
10450         (print_ignored_options): New.
10451         (handle_option): Postpone errors for unknown -Wno-* options.
10452         * opts.h (print_ignored_options): Declare.
10453         
10454 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10455
10456         * config/mips/mips.md (loadgp_blockage, blockage): Change type
10457         to "ghost".
10458
10459 2008-02-25  Richard Guenther  <rguenther@suse.de>
10460
10461         Revert:
10462         2008-02-25  Richard Guenther  <rguenther@suse.de>
10463
10464         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10465         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10466         (lookup_decl_from_uid): Declare.
10467         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10468         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10469         (decl_for_uid_map): New global hashtable mapping DECL_UID
10470         to the decl tree.
10471         (init_ttree): Allocate it.
10472         (insert_decl_to_uid_decl_map): New helper function.
10473         (make_node_stat): Insert new decls into the map.
10474         (copy_node_stat): Likewise.
10475         (lookup_decl_from_uid): New function.
10476         (print_decl_for_uid_map_statistics): New helper.
10477         (dump_tree_statistics): Call it.
10478
10479         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10480         (referenced_var_iterator): Adjust.
10481         (FOR_EACH_REFERENCED_VAR): Adjust.
10482         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10483         (num_referenced_vars): Adjust.
10484         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10485         (first_referenced_var): Remove.
10486         (end_referenced_vars_p): Likewise.
10487         (next_referenced_var): Likewise.
10488         (referenced_var_iterator_set): New helper function.
10489         * tree-dfa.c (referenced_var_lookup): Adjust.
10490         (referenced_var_check_and_insert): Likewise.
10491         (remove_referenced_var): Likewise.
10492         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10493         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10494         (verify_call_clobbering): Likewise.
10495         (verify_memory_partitions): Likewise.
10496         (init_tree_ssa): Allocate bitmap instead of hashtable for
10497         referenced_vars.
10498         (delete_tree_ssa): Adjust.
10499         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10500         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10501         (compute_tag_properties): Likewise.
10502         (set_initial_properties): Likewise.
10503         (find_partition_for): Likewise.
10504         (update_reference_counts): Likewise.
10505         (dump_may_aliases_for): Likewise.
10506         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10507         (add_call_clobber_ops): Likewise.
10508         (add_call_read_ops): Likewise.
10509         (get_asm_expr_operands): Likewise.
10510         * tree-into-ssa.c (dump_decl_set): Likewise.
10511         (update_ssa): Likewise.
10512         * tree-sra.c (scan_function): Likewise.
10513         (decide_instantiations): Likewise.
10514         (scalarize_parms): Likewise.
10515         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10516         (dsa_named_for): Likewise.
10517         * tree-ssa-structalias.c (update_alias_info): Likewise.
10518         (merge_smts_into): Likewise.
10519
10520 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10521
10522         PR fortran/29549
10523         * doc/invoke.texi (-fcx-limited-range): Document new option.
10524         * toplev.c (process_options): Handle -fcx-fortran-rules.
10525         * common.opt: Add documentation for -fcx-fortran-rules.
10526
10527 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10528
10529         PR c/35162
10530         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
10531         actual behaviour and C99.
10532         
10533 2008-02-26  Ben Elliston  <bje@au.ibm.com>
10534
10535         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
10536         (ASM_CPU_POWER6_SPEC): Likewise.
10537         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
10538         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
10539         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
10540
10541 2008-02-25  Richard Guenther  <rguenther@suse.de>
10542
10543         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10544         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10545         (lookup_decl_from_uid): Declare.
10546         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10547         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10548         (decl_for_uid_map): New global hashtable mapping DECL_UID
10549         to the decl tree.
10550         (init_ttree): Allocate it.
10551         (insert_decl_to_uid_decl_map): New helper function.
10552         (make_node_stat): Insert new decls into the map.
10553         (copy_node_stat): Likewise.
10554         (lookup_decl_from_uid): New function.
10555         (print_decl_for_uid_map_statistics): New helper.
10556         (dump_tree_statistics): Call it.
10557
10558         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10559         (referenced_var_iterator): Adjust.
10560         (FOR_EACH_REFERENCED_VAR): Adjust.
10561         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10562         (num_referenced_vars): Adjust.
10563         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10564         (first_referenced_var): Remove.
10565         (end_referenced_vars_p): Likewise.
10566         (next_referenced_var): Likewise.
10567         (referenced_var_iterator_set): New helper function.
10568         * tree-dfa.c (referenced_var_lookup): Adjust.
10569         (referenced_var_check_and_insert): Likewise.
10570         (remove_referenced_var): Likewise.
10571         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10572         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10573         (verify_call_clobbering): Likewise.
10574         (verify_memory_partitions): Likewise.
10575         (init_tree_ssa): Allocate bitmap instead of hashtable for
10576         referenced_vars.
10577         (delete_tree_ssa): Adjust.
10578         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10579         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10580         (compute_tag_properties): Likewise.
10581         (set_initial_properties): Likewise.
10582         (find_partition_for): Likewise.
10583         (update_reference_counts): Likewise.
10584         (dump_may_aliases_for): Likewise.
10585         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10586         (add_call_clobber_ops): Likewise.
10587         (add_call_read_ops): Likewise.
10588         (get_asm_expr_operands): Likewise.
10589         * tree-into-ssa.c (dump_decl_set): Likewise.
10590         (update_ssa): Likewise.
10591         * tree-sra.c (scan_function): Likewise.
10592         (decide_instantiations): Likewise.
10593         (scalarize_parms): Likewise.
10594         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10595         (dsa_named_for): Likewise.
10596         * tree-ssa-structalias.c (update_alias_info): Likewise.
10597         (merge_smts_into): Likewise.
10598
10599 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
10600
10601         PR target/35258
10602         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
10603         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
10604         * alias.h (nonoverlapping_memrefs_p): Likewise.
10605
10606 2008-02-25  Jan Beulich  <jbeulich@novell.com>
10607
10608         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
10609         * config/i386/netware-libgcc.exp: Add __bswap?i2,
10610         __emultls_get_address, __emultls_register_common,
10611         __floatundi?f, and _Unwind_GetIPInfo.
10612         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
10613         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
10614         (gen_regparm_prefix): Likewise.
10615         (i386_nlm_encode_section_info): Sync with
10616         config/i386/winnt.c:i386_pe_encode_section_info().
10617         (i386_nlm_maybe_mangle_decl_assembler_name): New.
10618         i386_nlm_mangle_decl_assembler_name): New.
10619         (netware_override_options): New.
10620         * config/i386/netware.h (netware_override_options): Declare.
10621         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
10622         (i386_nlm_mangle_decl_assembler_name): Declare.
10623         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
10624
10625 2008-02-25  Ben Elliston  <bje@au.ibm.com>
10626
10627         PR other/32948
10628         * c-decl.c (grokdeclarator): Remove unused local variables
10629         `typedef_type' and `type_as_written'.
10630         * bb-reorder.c
10631         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
10632         unused local variable `has_hot_blocks'.
10633         (fix_crossing_conditional_branches): Remove unused local variable
10634         `prev_bb'.
10635         
10636 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
10637
10638         PR middle-end/19984
10639         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
10640         using DEF_C99_BUILTIN.
10641         (BUILT_IN_NANF): Ditto.
10642         (BUILT_IN_NANL): Ditto.
10643
10644 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
10645             Revital Eres  <eres@il.ibm.com>
10646
10647         * modulo-sched.c (calculate_must_precede_follow): Address TODO
10648         regarding the order of two dependent insns in the same row.
10649
10650 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10651
10652         * stor-layout.c (layout_decl): Do not bump the alignment of a
10653         bit-field to more than byte alignment if it is packed.
10654
10655 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
10656
10657         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
10658         e300c2 and e300c3.
10659
10660 2008-02-24  Diego Novillo  <dnovillo@google.com>
10661
10662         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
10663
10664         PR 33738
10665         * tree-vrp.c (vrp_evaluate_conditional): With
10666         -Wtype-limits, emit a warning when comparing against a
10667         constant outside the natural range of OP0's type.
10668         * c.opt (Wtype-limits): Move ...
10669         * common.opt (Wtype-limits): ... here.
10670
10671 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
10672
10673         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
10674         * config/rs6000/e300c2c3.md: New file.
10675         * config/rs6000/rs6000.c (processor_costs): Add new costs for
10676         e300c2 and e300c3.
10677         (rs6000_override_options): Add e300c2 and e300c3 cases to
10678         processor_target_table. Do not allow usage of Altivec or Spe
10679         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
10680         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
10681         * config/rs6000/rs6000.h (processor_type): Add
10682         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
10683         (ASM_CPU_SPEC): Add e300c2 and e300c3.
10684         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
10685         and ppce300c3. Include e300c2c3.md.
10686
10687 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
10688
10689         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
10690         instead of TARGET_STRICT_ALIGN.
10691
10692 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
10693
10694         * explow.c (memory_address): Assert that the generated address is
10695         valid.
10696
10697 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10698
10699         PR target/25477
10700         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
10701         * config/darwin-ppc-ldouble-patch.def: New file.
10702         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
10703         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
10704         SUBTARGET_INIT_BUILTINS if defined.
10705         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
10706         New functions.
10707
10708 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10709
10710         PR rtl-opt/33512
10711         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
10712         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
10713
10714 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10715
10716         PR pch/35027
10717         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10718         file" warning condtional on -Winvalid-PCH.
10719
10720 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
10721
10722         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10723
10724 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
10725
10726         PR target/22076
10727         PR target/34256 
10728         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10729         prevent reload from using MMX registers.
10730         (*mov<mode>_internal): Ditto.
10731         (*movv2sf_internal_rex64): Ditto.
10732         (*movv2sf_internal): Ditto.
10733
10734 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10735
10736         PR documentation/31569
10737         * doc/install.texi2html: Use makeinfo --no-number-sections.
10738
10739 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10740
10741         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
10742         ensure that we can address an entire entity > 8 bytes.  Don't
10743         generate reg+reg addressing for such data.
10744
10745 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10746
10747         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
10748         strings when optimizing for size, unless the target cares about
10749         alignment.
10750
10751 2008-02-22  Tom Tromey  <tromey@redhat.com>
10752
10753         * regclass.c (current_pass): Remove declaration.
10754
10755 2008-02-22  Anatoly Sokolov <aesok@post.ru>
10756
10757         * config/avr/libgcc.S (__RAMPZ__): Define.
10758         (__do_copy_data): Add for devices with 128KB code memory.
10759
10760 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10761
10762         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10763         Use spe_abi.
10764         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10765
10766 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
10767
10768         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
10769         GENNONACR_REGS.
10770
10771 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10772
10773         PR c/19999
10774         * c-typeck.c (build_binary_op): Warn about floating point
10775         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
10776
10777 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
10778
10779         PR target/34526
10780         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
10781         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
10782         add vrsave.
10783         (rs6000_override_options): Set altivec_abi as default, not override,
10784         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
10785         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
10786         is used; use new member spe_abi.
10787         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
10788         spe_abi and altivec_abi.
10789
10790 2008-02-22  Tomas Bily  <tbily@suse.cz>
10791
10792         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
10793
10794 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10795
10796         PR bootstrap/35273
10797         * config.build (build_file_translate): Set to `CMD //c' only if
10798         it works.
10799         * Makefile.in (build_file_translate): Improve comment.
10800
10801 2008-02-21  Jan Hubicka  <jh@suse.cz>
10802
10803         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10804         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10805         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10806
10807 2008-02-21  Michael Matz  <matz@suse.de>
10808
10809         PR target/35264
10810         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10811
10812 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
10813
10814         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10815         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10816         as insn constraint.
10817         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10818         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10819         SSE_VEC_FLOAT_MODE_P as insn constraint.
10820         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10821         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10822         sse4a_movntdf using MODEF mode iterator.
10823         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10824         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10825         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10826         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10827         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10828         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10829         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10830
10831 2008-02-21  Richard Guenther  <rguenther@suse.de>
10832
10833         * tree.def (PAREN_EXPR): New tree code.
10834         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10835         and PAREN_EXPR.
10836         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10837         * expr.c (expand_expr_real_1): Likewise.
10838         * tree-inline.c (estimate_num_insns_1): Likewise.
10839         * tree-complex.c (expand_complex_move): Likewise.
10840         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10841         as plain x.
10842
10843 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10844
10845         PR target/35225
10846         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10847
10848 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10849
10850         PR target/35190
10851         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10852
10853         * config/sh/sh.c (find_barrier): Don't go past
10854         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10855
10856 2008-02-20  DJ Delorie  <dj@redhat.com>
10857
10858         * config/h8300/h8300.md (insv): Force source operand to be a register.
10859
10860         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10861         as a jump, not as a plain insn.
10862         
10863 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
10864
10865         * doc/invoke.texi (Warning Options): Add new option
10866         -Wframe-larger-than=.
10867         (-Wframe-larger-than): Document.
10868
10869         * flags.h (warn_frame_larger_than, frame_larger_than_size):
10870         Add declarations for new option variables.
10871
10872         * final.c (final_start_function): Check the frame size
10873         before emission and issue a Wframe-larger-than warning.
10874
10875         * opts.c (warn_frame_larger_than, frame_larger_than_size):
10876         Add definitions for new option variables.
10877         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10878
10879         * common.opt (Wframe-larger-than=): New option.
10880
10881 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10882
10883         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10884         (<sse>_div<mode>3): Ditto.
10885         (<sse>_vmdiv<mode>3): Ditto.
10886         (<sse>_vmsqrt<mode>2): Ditto.
10887         (*smax<mode>3): Ditto.
10888         (sse5_frcz<mode>2): Ditto.
10889         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
10890         as insn constraint.
10891
10892 2008-02-20  Richard Guenther  <rguenther@suse.de>
10893
10894         PR middle-end/35265
10895         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10896         be happy with INTEGRAL_TYPE_P.
10897
10898 2008-02-20  Richard Guenther  <rguenther@suse.de>
10899
10900         * fold-const.c (split_tree): Associate floatig-point expressions
10901         if flag_associative_math is set.
10902
10903 2008-02-20  Richard Guenther  <rguenther@suse.de>
10904
10905         * tree.h (fold_real_zero_addition_p): Declare.
10906         * fold-const.c (fold_real_zero_addition_p): Export.
10907         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
10908         floating-point operations with zero and one.
10909
10910 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
10911
10912         * doc/install.texi: Correct references to CFLAGS, replacing them
10913         with BOOT_CFLAGS.  Document flags used during bootstrap for
10914         target libraries.
10915                                 
10916 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10917
10918         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
10919         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
10920         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
10921         insn constraint.
10922         (smin<mode>3): Ditto from similar patterns.
10923         (smax<mode>3): Ditto.
10924         (*ieee_smin<mode>3): Ditto.
10925         (*ieee_smax<mode>3): Ditto.
10926         * config/i386/sse.md (sse): New mode attribute.
10927         (mov<mode>): Macroize expander from movv4sf and movv2df using
10928         SSEMODEF2P mode iterator.
10929         (<sse>_movnt<mode>): Ditto from similar patterns. Use
10930         SSE_VEC_FLOAT_MODE_P as insn constraint.
10931         (storent<mode>): Ditto.
10932         (storent<mode>): Macroize expander from storentsf and storentdf using
10933         MODEF mode iterator.
10934         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10935         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10936         (abs<mode>2): Ditto from similar patterns.
10937         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10938         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10939         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10940         (<sse>_vmsqrt<mode>2): Ditto.
10941         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10942         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10943         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10944         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10945         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10946         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10947         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10948         insn constraint.
10949         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10950         iterator and SSE_FLOAT_MODE_P as insn constraint.
10951         (<sse>_ucomi): Ditto from similar patterns.
10952         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10953         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10954         SSE_VEC_FLOAT_MODE_P as insn constraint.
10955         (vcond<mode>): Ditto from similar patterns.
10956         (and<mode>3, *and<mode>3): Ditto.
10957         (<sse>_nand<mode>3): Ditto.
10958         (ior<mode>3, *ior<mode>3): Ditto.
10959         (xor<mode>3, *xor<mode>3): Ditto.
10960         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10961         iterator and SSE_FLOAT_MODE_P as insn constraint.
10962         (*nand<mode>3): Ditto from similar patterns.
10963         (*ior<mode>3): Ditto.
10964         (*xor<mode>3): Ditto.
10965
10966 2008-02-20  Ira Rosen  <irar@il.ibm.com>
10967
10968         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10969         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10970         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10971
10972 2008-02-19  Jan Hubicka  <jh@suse.cz>
10973
10974         * predict.c (tree_bb_level_predictions): Remove variable next
10975         mistakely introduced by previous commit.
10976
10977 2008-02-19  Jan Hubicka  <jh@suse.cz>
10978
10979         * predict.c (predict_paths_leading_to): Rewrite.
10980         (predict_paths_for_bb): New.
10981         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10982
10983 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10984
10985         PR bootstrap/35218
10986         * Makefile.in (build_file_translate): New.
10987         (gcc-vers.texi): Use it for translating $(abs_srcdir).
10988         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10989         * configure.ac (build_file_translate): Substitute it.
10990         * configure: Regenerate.
10991
10992 2008-02-19  Jan Hubicka  <jh@suse.cz>
10993
10994         PR rtl-optimization/34408
10995         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10996         invalid sharing.
10997
10998 2008-02-19  Jan Hubicka  <jh@suse.cz>
10999
11000         PR middle-end/28779
11001         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11002         call_expr.
11003
11004 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11005
11006         PR Ada/35186
11007         * config/i386/i386-modes.def: Revert the last DI alignment
11008         change until Ada people can look into it.
11009
11010 2008-02-19  Nick Clifton  <nickc@redhat.com>
11011
11012         * opts.c (print_specific_help): Fix typo in --help text.
11013
11014 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11015
11016         PR target/35239
11017         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11018         32-bit inline asm without asm alternatives for host GCC < 3.0.
11019
11020 2008-02-19  Richard Guenther  <rguenther@suse.de>
11021
11022         PR tree-optimization/34989
11023         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11024         Allow propagation to INDIRECT_REF if we can simplify only.
11025
11026 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11027
11028         * c-common.c (warn_for_collisions_1): Use appropriate option when
11029         warning.
11030
11031 2008-02-19  Nick Clifton  <nickc@redhat.com>
11032
11033         PR other/31349
11034         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11035         (handle_options): Fix indentation.
11036         (print_filtered_help): If no language-specific options were
11037         displayed tell the user how to list all the options supported by
11038         the language's front-end.
11039         (print_specific_help): Fix indentation and remove duplicate line.
11040         (common_handle_option): Handle the -v option.
11041         For --help enable the display of undocumented options if the -v
11042         switch has been included on the command line.
11043         For --help= check for overlaps in the arguments between the option
11044         classes and the language names and issue a warning when they
11045         cannot be disambiguated.
11046         * c.opt (v): Pass on to the common option handler.
11047
11048 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11049
11050         * modulo-sched.c (sms_schedule): Change dump message when
11051         create_ddg function fails.
11052         (try_scheduling_node_in_cycle): Rename row to cycle.
11053         (print_partial_schedule): Rename CYCLE to ROW.
11054
11055 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11056             Zdenek Dvorak  <ook@ucw.cz>
11057
11058         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11059
11060 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11061
11062         PR target/33555
11063         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11064         (*x86_movdicc_0_m1_se): Ditto.
11065
11066 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11067
11068         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11069         (CMPtype): Define as __gcc_CMPtype.
11070         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11071         (CMPtype): Define as __gcc_CMPtype.
11072
11073 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11074
11075         Support valgrind 3.3 for --enable-checking=valgrind.
11076         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11077         here.
11078         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11079         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11080         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11081         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11082         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11083         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11084         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11085         respectively.
11086         * ggc-zone.c: Similar.
11087         * ggc-page.c: Similar.
11088
11089 2008-02-19  Paul Brook  <paul@codesourcery.com>
11090
11091         PR target/35071
11092         * config/arm/ieee754-df.S: Fix do_it typo.
11093         * config/arm/ieee754-sf.S: Fix do_it typo.
11094
11095 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11096
11097         PR target/35189
11098         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11099         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11100         (OPTION_MASK_ISA_SSE_SET): Likewise.
11101         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11102         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11103         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11104         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11105         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11106         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11107         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11108         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11109         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11110         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11111         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11112         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11113         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11114         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11115         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11116         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11117         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11118         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11119         (OPTION_MASK_ISA_SSE4): Removed.
11120         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11121         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11122         (override_options): Don't turn on implied SSE/MMX bits in
11123         ix86_isa_flags.
11124
11125 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11126
11127         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11128         32bit host.
11129
11130 2008-02-18  Joey Ye  <joey.ye@intel.com>
11131
11132         PR middle-end/34921
11133         * tree-nested.c (insert_field_into_struct): Set type alignment
11134         to field alignment if the former is less than the latter.
11135
11136 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11137
11138         * BASE-VER: Set to 4.4.0.
11139
11140 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11141
11142         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11143         * doc/cfg.texi: Likewise.
11144         * doc/extend.texi: Likewise.
11145         * doc/gty.texi: Likewise.
11146         * doc/invoke.texi: Likewise.
11147         * doc/loop.texi: Likewise.
11148         * doc/md.texi: Likewise.
11149         * doc/passes.texi: Likewise.
11150         * doc/rtl.texi: Likewise.
11151         * doc/sourcebuild.texi: Likewise.
11152         * doc/tm.texi: Likewise.
11153         * doc/tree-ssa.texi: Likewise.
11154
11155 2008-02-17  Richard Guenther  <rguenther@suse.de>
11156
11157         PR middle-end/35227
11158         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11159         without default definition.
11160
11161 2008-02-17  Richard Guenther  <rguenther@suse.de>
11162
11163         PR tree-optimization/35231
11164         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11165         if A | B != 1.
11166
11167 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11168
11169         Revert:
11170         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11171         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11172         libgcc_cmp_return mode.
11173
11174 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11175
11176         PR c/28368
11177         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11178
11179 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11180
11181         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11182         multilibs.
11183
11184 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11185
11186         * doc/c-tree.texi: Use `@.' where appropriate.
11187         * doc/extend.texi: Likewise.
11188         * doc/install.texi: Likewise.
11189         * doc/invoke.texi: Likewise.
11190         * doc/loop.texi: Likewise.
11191         * doc/makefile.texi: Likewise.
11192         * doc/md.texi: Likewise.
11193         * doc/passes.texi: Likewise.
11194         * doc/standards.texi: Likewise.
11195         * doc/tm.texi: Likewise.
11196
11197 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11198
11199         PR middle-end/35196
11200         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11201         in entry_bb.
11202         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11203         rather than in entry_bb.
11204
11205 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11206
11207         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11208         libgcc_cmp_return mode.
11209
11210 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11211
11212         PR middle-end/35130
11213         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11214         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11215
11216 2008-02-15  Richard Guenther  <rguenther@suse.de>
11217             Zdenek Dvorak  <ook@ucw.cz>
11218
11219         PR tree-optimization/35164
11220         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11221         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11222         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11223         Only propagate addresses which do not have abnormal SSA_NAMEs
11224         in their operands.
11225
11226 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11227
11228         PR target/35088
11229         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11230
11231 2008-02-15  Jan Hubicka  <jh@suse.cz>
11232
11233         PR middle-end/35149
11234         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11235
11236 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11237
11238         PR middle-end/34621
11239         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11240         when calculating alignment_pad.
11241
11242 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11243
11244         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11245         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11246         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11247         and STACK_BOUNDARY define.
11248
11249 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11250
11251         PR preprocessor/35061
11252         * c-pragma.c (handle_pragma_pop_macro): Check that
11253         pushed_macro_table has been allocated.
11254
11255 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11256
11257         PR middle-end/35136
11258         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11259         (force_gimple_operand): Likewise.
11260         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11261         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11262         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11263         (find_interesting_uses_address): Check addressability and alignment
11264         of the base expression only after substituting bases of IVs into it.
11265
11266 2008-02-14  Michael Matz  <matz@suse.de>
11267
11268         PR target/34930
11269         * function.c (instantiate_virtual_regs_in_insn): Reload address
11270         before falling back to reloading the whole operand.
11271
11272 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11273
11274         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11275         before the first section switch note.
11276
11277 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11278
11279         * doc/bugreport.texi: Update copyright years.
11280         * doc/c-tree.texi: Likewise.
11281         * doc/cfg.texi: Likewise.
11282         * doc/cpp.texi: Likewise.
11283         * doc/cppinternals.texi: Likewise.
11284         * doc/fragments.texi: Likewise.
11285         * doc/frontends.texi: Likewise.
11286         * doc/gcc.texi: Likewise.
11287         * doc/gty.texi: Likewise.
11288         * doc/hostconfig.texi: Likewise.
11289         * doc/implement-c.texi: Likewise.
11290         * doc/libgcc.texi: Likewise.
11291         * doc/loop.texi: Likewise.
11292         * doc/makefile.texi: Likewise.
11293         * doc/options.texi: Likewise.
11294         * doc/passes.texi: Likewise.
11295         * doc/rtl.texi: Likewise.
11296         * doc/sourcebuild.texi: Likewise.
11297         * doc/standards.texi: Likewise.
11298         * doc/tree-ssa.texi: Likewise.
11299         * doc/trouble.texi: Likewise.
11300
11301         * doc/extend.texi: Use @: or add comma where appropriate.
11302         * doc/invoke.texi: Likewise.
11303         * doc/tm.texi: Likewise.
11304
11305 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11306
11307         PR target/34393
11308         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11309         to a reg.
11310
11311 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11312
11313         * doc/md.texi (clz, ctz): Add reference.
11314         * doc/rtl.texi (clz, ctz): Likewise.
11315
11316 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11317
11318         PR other/35148
11319         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11320         srcdir.
11321
11322 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11323
11324         * config/s390/s390.c (struct constant_pool): New field
11325         emit_pool_after added.
11326         (s390_mainpool_start): Set the emit_pool_after flag according
11327         to the section switch notes.
11328         (s390_mainpool_finish): Consider emit_pool_after when emitting
11329         the literal pool at the end of the function.
11330         (s390_chunkify_start): Force literal pool splits at section
11331         switch notes.
11332
11333 2008-02-13  Michael Matz  <matz@suse.de>
11334
11335         PR debug/35065
11336         * var-tracking.c (clobber_variable_part): Correctly traverse the
11337         list.
11338
11339 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11340
11341         PR 29673
11342         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11343         Add -fdump-ipa-inline.
11344         * tree-dump.c (dump_files): Remove tree-inlined dump.
11345         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11346         
11347 2008-02-12  Richard Guenther  <rguenther@suse.de>
11348
11349         PR tree-optimization/35171
11350         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11351         default defs.
11352
11353 2008-02-12  Richard Guenther  <rguenther@suse.de>
11354
11355         PR middle-end/35163
11356         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11357         value-preserving mode.  Disallow final truncation.
11358
11359 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11360
11361         PR middle-end/35136
11362         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11363         code from here to...
11364         (force_gimple_operand): ...here.
11365
11366 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11367
11368         PR c++/35144
11369         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11370         non-compatible pointers.
11371         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11372         different FIELD_DECLs, try harder by comparing field offsets, sizes
11373         and types.
11374
11375         PR inline-asm/35160
11376         * function.c (match_asm_constraints_1): Don't replace the same input
11377         multiple times.
11378
11379 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11380
11381         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11382         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11383         (expand_epilogue): Restore RAMPZ register.
11384         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11385
11386 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11387
11388         * config/i386/cygwin.asm: (__alloca): Correct calling
11389         convention and alignment.
11390         (__chkstk): Force 8 byte stack alignment.
11391
11392 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
11393             Richard Guenther  <rguenther@suse.de>
11394
11395         PR tree-optimization/33992
11396         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11397         the zero we compare against.
11398
11399 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11400
11401         PR libfortran/35063
11402         * gthr-win32.h (__gthread_mutex_destroy_function): New function
11403         to CloseHandle after unlocking to prevent accumulation of handle
11404         count.
11405
11406 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11407
11408         PR middle_end/34150
11409         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11410         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
11411         and update LABEL_NUSES during and after reload.
11412
11413 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
11414
11415         PR middle-end/34627
11416         * combine.c (simplify_if_then_else): Make sure the comparison is
11417         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11418
11419 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11420
11421         PR bootstrap/35051
11422         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11423         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11424         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11425         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11426         * tree.h (get_type_static_bounds): Likewise.
11427
11428 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11429
11430         * doc/invoke.texi (Option Summary, C++ Dialect Options)
11431         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11432         Make -Wfoo language annotations match what the compiler outputs.
11433
11434 2008-02-08  Sa Liu  <saliu@de.ibm.com>
11435
11436         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
11437         intrinsics spu_convts, spu_convtu, spu_convtf.
11438
11439 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
11440
11441         * doc/extend.texi (Function Attributes) <noinline>: Mention
11442         asm ("") as method to keep calls.
11443
11444 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11445
11446         PR other/32754
11447         * doc/options.texi (Options): Replace references to opts.sh with
11448         optc-gen.awk.
11449         * opts-common.c: Likewise.
11450         * optc-gen.awk: Likewise.
11451         
11452 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11453
11454         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11455
11456 2008-02-07  Richard Henderson  <rth@redhat.com>
11457
11458         PR rtl-opt/33410
11459         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11460         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
11461         funny mode.
11462
11463 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
11464
11465         PR tree-optimization/35085
11466         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11467         for operand entry oe2 in addition to operand entry oe3 in order to
11468         expose more opportunities for vectorizer sum reduction.
11469
11470 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11471
11472         PR other/35107
11473         * Makefile.in (LIBS): Remove $(GMPLIBS).
11474         (cc1-dummy, cc1): Add $(GMPLIBS).
11475
11476 2008-02-06  Jan Hubicka  <jh@suse.cz>
11477
11478         PR target/23322
11479         * i386.md (moddf_integer): Do not produce partial memory stalls for
11480         targets where it hurts.
11481
11482 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
11483
11484         PR target/35083
11485         * optabs.c (expand_float): Do not check for decimal modes when
11486         expanding unsigned integer through signed conversion.
11487
11488 2008-02-06  Nick Clifton  <nickc@redhat.com>
11489
11490         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
11491         inside the clobber with a match_operand and duplicated operand
11492         number in the constraint.
11493         (ineqbranchsi): Delete redundant comment.
11494
11495 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11496
11497         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
11498         builtin_define ("__USE_INIT_FINI__").
11499         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
11500         -msx multilibs.
11501         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
11502
11503 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11504
11505         PR documentation/30330
11506         * doc/invoke.texi (C++ Dialect Options)
11507         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11508         For each warning option -Wfoo that allows -Wno-foo, ensure both
11509         -Wfoo and -Wno-foo are listed in the option index.  Fix index
11510         entry of -Wswitch-default, index -Wnormalized= including the
11511         `=', and -Wlarger-than-@var{len} including @var{len}.
11512
11513 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11514
11515         * config/i386/i386.md (floatunssisf2): Use
11516         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
11517         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
11518         Macroize expander using MODEF mode iterator.
11519
11520 2008-02-05  Diego Novillo  <dnovillo@google.com>
11521
11522         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
11523
11524         PR 33738
11525         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
11526
11527 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11528
11529         PR other/35070
11530         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
11531
11532 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
11533
11534         PR target/35084
11535         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
11536         to indicate if a message should be generated.
11537         (init_cumulative_args): Updated.
11538         (function_value_32): Likewise.
11539
11540 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
11541
11542         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
11543
11544 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11545
11546         PR target/35083
11547         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
11548         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
11549
11550 2008-02-04  Diego Novillo  <dnovillo@google.com>
11551
11552         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
11553
11554         PR 33738
11555         * tree-vrp.c (vrp_evaluate_conditional): With
11556         -Wtype-limits, emit a warning when comparing against a
11557         constant outside the natural range of OP0's type.
11558
11559 2008-02-04  Richard Guenther  <rguenther@suse.de>
11560
11561         PR middle-end/33631
11562         * expr.c (count_type_elements): Give for unions instead of
11563         guessing.
11564
11565 2008-02-04  Richard Guenther  <rguenther@suse.de>
11566
11567         PR middle-end/35043
11568         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
11569         to TYPE_DOMAINs base type instead of using bitsizetype here.
11570
11571 2008-02-03  Jason Merrill  <jason@redhat.com>
11572
11573         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
11574
11575 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11576
11577         PR other/29972
11578         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
11579         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
11580         (RS/6000 and PowerPC Options): Fix typos and markup.
11581         * doc/passes.texi (Tree-SSA passes): Likewise.
11582
11583 2008-02-02  Michael Matz  <matz@suse.de>
11584
11585         PR target/35045
11586         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
11587         from record_last_reg_set_info.
11588         (record_last_reg_set_info): Take an RTX argument, iterate over all
11589         constituent hardregs.
11590         (record_last_set_info, record_opr_changes): Change calls to
11591         new signature or to record_last_reg_set_info_regno.
11592
11593 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11594
11595         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
11596
11597 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
11598
11599         PR rtl-optimization/34773
11600         * reg-notes.def (EQUAL): Mention significance of combination of
11601         REG_EQUAL and REG_RETVAL.
11602         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
11603         insn that has a REG_RETVAL.
11604
11605 2008-02-01  Roger Sayle  <roger@eyesopen.com>
11606
11607         PR bootstrap/33781
11608         * configure.ac (--enable-fixed-point): Disable unless explicitly
11609         requested on IRIX.
11610         * configure: Regenerate.
11611
11612 2008-02-01  Richard Guenther  <rguenther@suse.de>
11613
11614         PR other/35042
11615         * invoke.texi (-finline-limit): Remove no longer true parts
11616         of the documentation.  Note that there is no default value.
11617
11618 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
11619             Mark Mitchell  <mark@codesourcery.com>
11620             Ben Elliston  <bje@au.ibm.com>
11621
11622         PR c/29326
11623         * doc/extend.texi (Other Builtins): Document.
11624
11625 2008-01-31  Tom Browder <tom.browder@gmail.com>
11626
11627         * doc/c-tree.texi (Types): Fix grammar.
11628         (Expression trees): Ditto.
11629         * doc/passes.texi (Tree-SSA passes): Ditto.
11630         
11631         * doc/configterms.texi (Configure Terms): Fix typo.
11632         * doc/cpp.texi (Common Predefined Macros): Ditto.
11633         * doc/md.texi (Machine Constraints): Ditto.
11634         
11635         * doc/makefile.texi (Makefile): Add comma.
11636
11637 2008-01-31  Tom Browder  <tom.browder@gmail.com>
11638             Gerald Pfeifer  <gerald@pfeifer.com>
11639         
11640         * doc/sourcebuild.texi (Front End): Remove references to CVS
11641         and CVSROOT/modules.
11642         (Texinfo Manuals): Replace reference to CVS by one to SVN.
11643         (Back End): Remove reference to CVS.
11644
11645 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11646
11647         PR target/34900
11648         * config/mips/mips.c (gen_load_const_gp): New function, taking a
11649         comment from...
11650         (mips16_gp_pseudo_reg): ...here.
11651         * config/mips/mips.md (load_const_gp): Replace with...
11652         (load_const_gp_<mode>): ...this :P-based insn.
11653
11654 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11655
11656         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
11657         options. Minor fixes.
11658         (-std): Move reference to standards closer to where language
11659         standards are first mentioned.
11660         
11661 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11662
11663         PR rtl-optimization/34995
11664         * reload.c (alternative_allows_const_pool_ref): Take an rtx
11665         parameter and return a bool.  If the rtx parameter is nonnull,
11666         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
11667         (find_reloads): Update call accordingly.  Pass the new operand
11668         if it needed no address reloads, otherwise pass null.
11669
11670 2008-01-30  Richard Henderson  <rth@redhat.com>
11671
11672         PR c/34993
11673         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
11674         for unbounded arrays.
11675
11676 2008-01-30  Silvius Rus  <rus@google.com>
11677
11678         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11679
11680 2008-01-30  Jan Hubicka  <jh@suse.cz>
11681
11682         PR target/34982
11683         * i386.c (init_cumulative_args): Use real function declaration when
11684         calling locally.
11685
11686 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
11687
11688         PR rtl-optimization/34998
11689         * global.c (build_insn_chain): Treat non-subreg_lowpart
11690         SUBREGs of pseudos as clobbering all the words covered by the
11691         SUBREG, not just all the bytes.
11692         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
11693         original df_ref rather than an extract parameter.
11694         (global_conflicts): Update call accordingly.
11695
11696 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
11697
11698         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
11699         the overflow check to make it easier to read.
11700         (__fixtfdi): Change the type of the ll member in union
11701         long_double to UDItype_x.
11702
11703 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
11704
11705         PR middle-end/34969
11706         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
11707         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
11708         * tree-inline.c (fold_marked_statements): Call
11709         cgraph_update_edges_for_call_stmt if folding a call statement.
11710         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
11711         debug_generic_stmt calls, reset it back afterwards.
11712
11713         PR c/35017
11714         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
11715         static decls.
11716         * c-typeck.c (build_external_ref): Don't pedwarn about
11717         static vars in current function's scope.
11718
11719 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
11720
11721         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11722
11723 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
11724
11725         PR c/35002
11726         * ipa-struct-reorg.c: Fix spelling.
11727         * params.def: Ditto.
11728
11729 2008-01-29  Richard Guenther  <rguenther@suse.de>
11730
11731         PR middle-end/35006
11732         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
11733         field.
11734         * tree-inline.c (remap_type): Increment remapping_type_depth
11735         around remapping types.
11736         (copy_body_r): Only add referenced variables if they are referenced
11737         from code, not types.
11738
11739 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
11740
11741         PR c++/34055
11742         PR c++/34103
11743         PR c++/34219
11744         PR c++/34606
11745         PR c++/34753
11746         PR c++/34754
11747         PR c++/34755
11748         PR c++/34919
11749         PR c++/34961
11750         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
11751         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
11752
11753 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
11754
11755         PR target/34412
11756         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
11757         pointer for tiny stack.
11758
11759 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11760
11761         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
11762
11763 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11764
11765         * config/vx-common.h: Fix typo in comment.
11766
11767 2008-01-28  Ian Lance Taylor  <iant@google.com>
11768
11769         PR c++/34862
11770         PR c++/33407
11771         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11772         coalesce pointers if they have different DECL_NO_TBAA_P values.
11773         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
11774         between variables with different DECL_NO_TBAA_P values.
11775
11776 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
11777
11778         PR 31535
11779         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
11780         are not legitimate small data references on SPE targets.
11781
11782 2008-01-28  David Daney  <ddaney@avtrex.com>
11783
11784         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
11785
11786 2008-01-28  David Daney  <ddaney@avtrex.com>
11787
11788         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
11789
11790 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
11791
11792         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
11793         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11794         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11795         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11796         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11797         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11798         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11799         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11800
11801 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11802
11803         * basic-block.h (condjump_equiv_p): Fix comment.
11804
11805 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11806
11807         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11808         print_generic_stmt_indented): Fix comment.
11809
11810 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11811
11812         * configure.ac (__stack_chk_fail): Add detecion for availability
11813         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11814         * configure: Regenerate.
11815
11816 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
11817
11818         PR middle-end/34688
11819         * final.c (output_addr_const): Handle TRUNCATE.
11820
11821 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
11822
11823         PR target/34711
11824         * tree-ssa-loop-ivopts.c (comp_cost): New type.
11825         (zero_cost, infinite_cost): New constants.
11826         (struct cost_pair): Change type of cost to comp_cost.
11827         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11828         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11829         New functions.
11830         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11831         split_address_cost, ptr_difference_cost, difference_cost,
11832         get_computation_cost_at, get_computation_cost,
11833         determine_use_iv_cost_generic, determine_use_iv_cost_address,
11834         determine_use_iv_cost_condition, determine_use_iv_costs,
11835         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11836         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11837         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11838         Change type of cost to comp_cost.
11839         (determine_iv_cost): Increase cost of non-original ivs, instead
11840         of decreasing the cost of original ones.
11841         (get_address_cost): Indicate the complexity of the addressing mode 
11842         in comp_cost.
11843         (try_add_cand_for): Prefer using ivs not specific to some object.
11844         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11845
11846 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
11847             Janis Johnson  <janis187@us.ibm.com>
11848
11849         PR target/34814
11850         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11851         (TARGET_INSTANTIATE_DECLS): Likewise.
11852         * target.h (expand_to_rtl_hook): New target hook.
11853         (instantiate_decls): Likewise.
11854         * function.c (instantiate_decl): Make non-static.  Rename to...
11855         (instantiate_decl_rtl): ... this.
11856         (instantiate_expr): Use instantiate_decl_rtl.
11857         (instantiate_decls_1): Likewise.
11858         (instantiate_decls): Likewise.
11859         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11860         * function.h (instantiate_decl_rtl): Add prototype.
11861         * cfgexpand.c (target.h): New include.
11862         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11863         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11864         (TARGET_INSTANTIATE_DECLS): Likewise.
11865         (TARGET_INITIALIZER): New target hooks added.
11866         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11867         New prototype.
11868         * config/rs6000/rs6000.c (tree-flow.h): New include.
11869         (machine_function): Add sdmode_stack_slot field.
11870         (rs6000_alloc_sdmode_stack_slot): New function.
11871         (rs6000_instantiate_decls): Likewise.
11872         (rs6000_secondary_memory_needed_rtx): Likewise.
11873         (rs6000_check_sdmode): Likewise.
11874         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11875         (TARGET_INSTANTIATE_DECLS): Likewise.
11876         (rs6000_hard_regno_mode_ok): Allow SDmode.
11877         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
11878         (rs6000_emit_move): Handle SDmode.
11879         (function_arg_advance): Likewise.
11880         (function_arg): Likewise.
11881         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
11882         SDmode var args for 32-bit compiles.
11883         (rs6000_secondary_reload_class): Handle SDmode.
11884         (rs6000_output_function_epilogue): Likewise.
11885         (rs6000_function_value): Simplify if statement.
11886         (rs6000_libcall_value): Likewise.
11887         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11888         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11889         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11890         (movsd_hardfloat): New define_insn.
11891         (movsd_softfloat): Likewise.
11892         (movsd_store): Likewise.
11893         (movsd_load): Likewise.
11894         (extendsddd2): Likewise.
11895         (extendsdtd2): Likewise.
11896         (truncddsd2): Likewise.
11897         (movdd_hardfloat64): Fixup comment.
11898         (UNSPEC_MOVSD_LOAD): New constant.
11899         (UNSPEC_MOVSD_STORE): Likewise.
11900
11901 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
11902
11903         PR c++/34965
11904         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11905         TRUTH_XOR_EXPR.
11906         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
11907         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
11908         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
11909         and TRUTH_XOR_EXPR.
11910
11911 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
11912
11913         PR target/34794
11914         * config.gcc: Separate AIX 5.3 from AIX 6.1.
11915         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11916         __LONGDOUBLE128 too.
11917         * config/rs6000/aix61.h: New file.
11918
11919 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11920
11921         PR rtl-optimization/34959
11922         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
11923         popcount and parity rtxes the same mode as their operand.
11924         Truncate or extend the result to the return value's mode
11925         if necessary.
11926
11927 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11928
11929         PR target/34981
11930         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11931         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11932         to GOT_VERSION_REGNUM.
11933         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11934         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11935         * config/mips/mips.c (mips_emit_call_insn): New function.
11936         (mips_call_tls_get_addr): Call mips_expand_call directly.
11937         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11938         emit_call_insn.
11939         (mips16_build_call_stub): Likewise.  Return the call insn or null.
11940         (mips_expand_call): Update the call to mips16_build_call_stub
11941         accordingly and a remove redundant condition.  Assert that MIPS16
11942         stubs do not use lazy binding.  Use mips_emit_call_insn and return
11943         the call insn.
11944         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11945         TARGET_USE_GOT.
11946         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11947         (mips_avoid_hazard): Remove hazard_set handling.
11948         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11949         (UNSPEC_RESTORE_GP): ...this.
11950         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11951         (FAKE_CALL_REGNO): Rename to...
11952         (GOT_VERSION_REGNUM): ...this.
11953         (type): Add "ghost" value.  Add an associated insn reservation.
11954         (hazard_set): Remove.
11955         (exception_receiver): Rename to...
11956         (restore_gp): ...this and update the unspec identifier accordingly.
11957         (exception_receiver, nonlocal_got_receiver): New expanders.
11958         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
11959         FAKE_CALL_REGNO.  Remove hazard_set attribute.
11960         (set_got_version, update_got_version): New patterns.
11961
11962 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
11963
11964         PR target/34970
11965         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11966
11967 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11968
11969         PR other/31955
11970         * doc/install.texi2html: Generate gcc-vers.texi.
11971
11972 2008-01-25  DJ Delorie  <dj@redhat.com>
11973
11974         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11975
11976 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11977
11978         * config/c4x: Remove directory.
11979         * config.gcc (crx-*, mt-*): Mark obsolete.
11980         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11981         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11982         sh-*-rtemscoff*): Remove cases.
11983         * defaults.h (C4X_FLOAT_FORMAT): Remove.
11984         * real.c (encode_c4x_single, decode_c4x_single,
11985         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11986         c4x_extended_format): Remove.
11987         * real.h (c4x_single_format, c4x_extended_format): Remove.
11988         * doc/extend.texi (interrupt, naked): Remove mention of attributes
11989         on C4x.
11990         (Pragmas): Remove comment about c4x pragmas.
11991         * doc/install.texi (c4x): Remove target-specific instructions.
11992         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11993         * doc/md.texi (Machine Constraints): Remove C4x documentation.
11994         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11995         refer to C4x source files as examples.
11996         (C4X_FLOAT_FORMAT): Remove documentation.
11997
11998 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
11999
12000         * config/bfin/bfin.c (override_options): Reorder tests so that
12001         flag_pic gets enabled for -msep-data.
12002
12003 2008-01-25  Richard Guenther  <rguenther@suse.de>
12004
12005         PR middle-end/32244
12006         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12007         to its bitfield precision if required.
12008
12009 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12010
12011         PR middle-end/33880
12012         * tree-nested.c (walk_omp_for): New function.
12013         (convert_nonlocal_reference, convert_local_reference): Call
12014         walk_omp_for on OMP_FOR.
12015         (convert_call_expr): Call walk_body on OMP_FOR's
12016         OMP_FOR_PRE_INIT_BODY.
12017
12018 2008-01-25  Richard Guenther  <rguenther@suse.de>
12019
12020         PR tree-optimization/34966
12021         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12022         default defs and PHI_NODEs we have to insert after the
12023         defining statement.
12024
12025 2008-01-24  Nick Clifton  <nickc@redhat.com>
12026
12027         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12028         Provide a default definition.
12029         (LIBGCC2_UNITS_PER_WORD): Likewise.
12030
12031         * config/stormy16/stormy16.c: Include df.h for the prototype
12032         for df_regs_ever_live_p.
12033         (xstormy16_expand_builtin_va_start): Convert the stack offset
12034         into a component_ref and then use POINTER_PLUS_EXPR to add it
12035         to the incoming_virtual_args_rtx.
12036         (xstormy16_gimplify_va_arg_expr): Rename to
12037         xstormy16_gimplify_va_arg_expr.
12038         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12039         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12040         xstormy16_gimplify_va_arg_expr.
12041         Fix up some formatting issues.
12042
12043         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12044         Move to predicates.md.
12045         (xs_hi_general_operand): Likewise.
12046         (xs_hi_nonmemory_operand): Likewise.
12047         * config/stormy16/predicates.md:
12048         (xstormy16_carry_plus_operand): New predicate.
12049         (xs_hi_general_operand): New predicate.
12050         (xs_hi_nonmemory_operand): New predicate.
12051         * config/stormy16/stormy16-protos.h:
12052         (xstormy16_carry_plus_operand): Delete prototype.
12053         (xs_hi_general_operand): Likewise.
12054         (xs_hi_nonmemory_operand): Likewise.
12055
12056         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12057         modifiers as they are no longer needed and they can trigger
12058         reload spill failures.
12059
12060         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12061         with a match_operand in order to help reload.
12062
12063         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12064         constraint with 'e' for the 8th alternative as this version of
12065         the mov.w instruction only accepts the lower 8 registers.
12066
12067 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12068
12069         PR target/34856
12070         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12071         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12072         vector elements.
12073
12074 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12075
12076         PR middle-end/33333
12077         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12078
12079 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12080
12081         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12082         New functions.
12083         (remove_structure): Update allocations list before removing structure.
12084         
12085 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12086
12087         * ipa-struct-reorg.c (is_safe_cond_expr, 
12088         create_new_stmts_for_cond_expr): Use integer_zerop function,
12089         that recognize not only zero-pointer, but zero-integer too.
12090
12091 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12092
12093         PR other/22232
12094         * fixproto: Escape "." in sed expression that strips leading "./".
12095
12096 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12097
12098         PR driver/34904
12099         * gcc.c (SWITCH_OK): Removed.
12100         (SWITCH_LIVE): Changed to bit.
12101         (SWITCH_FALSE): Likewise.
12102         (SWITCH_IGNORE): Likewise.
12103         (switchstr): Change live_cond to unsigned int.
12104         (process_command): Replace SWITCH_OK with 0.
12105         (do_self_spec): Likewise.
12106         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12107         (give_switch): Likewise.
12108         (used_arg): Likewise.
12109         (do_spec_1): Set the SWITCH_IGNORE bit.
12110         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12111         bits.  Set the SWITCH_LIVE bit.
12112
12113 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12114
12115         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12116
12117 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12118
12119         PR tree-optimization/34472
12120         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12121         parameter to a "bool *" and set *DATA to false if there is
12122         an unsafe access.  Do not delete the structure here.
12123         (check_cond_exprs): Delete it here instead.
12124         (check_cond_exprs, exclude_cold_structs): Do not increase
12125         I when removing a structure.
12126
12127 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12128
12129         PR target/34856
12130         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12131         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12132
12133 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12134
12135         PR middle-end/34934
12136         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12137         a fixed vector for stack.
12138
12139 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12140
12141         PR c++/25701
12142         * doc/gcc.texi (Software development): Add a direntry for g++.
12143         
12144 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12145
12146         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12147         stale and straggling -fforce-addr comments above.
12148
12149         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12150         define.
12151         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12152         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12153
12154 2008-01-23  Michael Matz  <matz@suse.de>
12155
12156         PR debug/34895
12157         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12158         gen_type_die.
12159
12160 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12161
12162         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12163         malloc result type.
12164
12165 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12166
12167         * config/avr/avr.c (avr_current_arch): New variable.
12168         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12169         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12170         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12171         (avr_override_options): Init 'avr_current_arch'. 
12172         (base_arch_s): Move from here...
12173         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12174         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12175         'mega' to 'have_jmp_call'.
12176         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12177         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12178         macros.
12179         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12180         architectures.
12181         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12182         MULTILIB_MATCHES): (Ditto.).
12183
12184 2008-01-23  Richard Guenther  <rguenther@suse.de>
12185
12186         PR middle-end/31529
12187         * cgraphunit.c (cgraph_reset_node): Always mark the node
12188         not reachable if it is not queued already.
12189
12190 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12191
12192         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12193         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12194         (cputype_selected): New static variable.
12195         (bfin_handle_option): Set it if -mcpu is used.
12196         (override_option): Select default set of workarounds if no cpu type
12197         selected on the command line.
12198         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12199
12200         From  Michael Frysinger  <michael.frysinger@analog.com>
12201         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12202         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12203
12204         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12205         for bf547, bf523, bf524, and bf526.
12206         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12207         bf526.
12208         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12209         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12210         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12211         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12212         * doc/invoke.texi (Blackfin Options): Document that
12213         -mcpu now accept bf547, bf523, bf524, and bf526.
12214
12215 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12216
12217         PR rtl-optimization/34628
12218         * combine.c (try_combine): Stop and undo after the first combination
12219         if an autoincrement side-effect on the first insn has effectively
12220         been lost.
12221
12222 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12223
12224         PR target/34529
12225         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12226         Offset addresses are not valid for Altivec or paired float modes.
12227
12228 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12229
12230         PR c++/34607
12231         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12232         if DECL_INITIAL (decl) is error_mark_node.
12233
12234         PR c++/34914
12235         * c-common.c (handle_vector_size_attribute): Only allow
12236         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12237         the same way as pointer, array etc. types.
12238         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12239
12240         PR c++/34917
12241         * tree.c (build_type_attribute_qual_variant): Call
12242         build_qualified_type if attributes are equal, but quals are not.
12243
12244 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12245
12246         PR 32102
12247         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12248         * flags.h (warn_strict_aliasing): Remove.
12249         (warn_strict_overflow): Remove.
12250         * opts.c (warn_strict_aliasing): Remove.
12251         (warn_strict_overflow): Remove.
12252         * c-opts.c (c_common_handle_option): -Wall only sets
12253         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12254         (c_common_post_options): Give default values to -Wstrict-aliasing
12255         and -Wstrict-overflow if they are uninitialized.
12256         * common.opt (Wstrict-aliasing): Specify Var and Init.
12257         (Wstrict-overflow): Likewise.
12258
12259 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12260
12261         PR rtl-optimization/26854
12262         PR rtl-optimization/34400
12263         PR rtl-optimization/34884
12264         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12265         DF_RD->gen.
12266         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12267         (df_rd_bb_info.expanded_lr_out): Deleted
12268         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12269         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12270         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12271         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12272         Removed code to allocate, initialize or free expanded_lr_out.
12273         (df_rd_bb_local_compute_process_def): Restructured to make more
12274         understandable.
12275         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12276         sets if the sets are being trimmed.
12277
12278 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12279
12280         PR bootstrap/32287
12281         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12282         (as_vers): Likewise.
12283         * configure: Regenerated.
12284
12285 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12286
12287         PR middle-end/33092
12288         * tree-pass.h (pass_build_alias): New pass.
12289         * tree-ssa-alias.c (gate_build_alias): New.
12290         (pass_build_alias): New.
12291         * passes.c (init_optimization_passes): Add pass_build_alias after
12292         pass_create_structure_vars.
12293
12294 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12295
12296         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
12297         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
12298         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
12299         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
12300         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
12301         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
12302         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
12303         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
12304         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12305         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12306         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12307         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12308         * config/s390/s390.md (FP_ALL): New mode iterator.
12309         (_d): New mode attribute.
12310         ("*signbit<mode>2>"): Changed mode of first operand.
12311         ("isinf<mode>2"): Changed mode of first operand.
12312         ("*TDC_insn"): Adaptation for DFP modes.
12313
12314 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12315
12316         * tree.c (check_qualified_type): Improve function description.
12317
12318 2008-01-21  Jason Merrill  <jason@redhat.com>
12319
12320         PR c++/34196
12321         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12322         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12323         if it is set.
12324
12325 2008-01-21  DJ Delorie  <dj@redhat.com>
12326
12327         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12328         return zero.
12329
12330 2008-01-21  Richard Guenther  <rguenther@suse.de>
12331
12332         PR middle-end/34856
12333         * tree-cfg.c (verify_expr): Allow all invariant expressions
12334         instead of just constant class ones as reference argument.
12335         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12336         like any other constant.
12337         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12338
12339 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12340
12341         * regmove.c (fixup_match_1): Update call crossed frequencies.
12342
12343 2008-01-21  Richard Guenther  <rguenther@suse.de>
12344
12345         PR c/34885
12346         * tree-inline.c (setup_one_parameter): Deal with mismatched
12347         types using a VIEW_CONVERT_EXPR.
12348
12349 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12350             Olga Golovanevsky  <olga@il.ibm.com>
12351         
12352         PR tree-optimization/34701
12353         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12354         when the structure size is not a power of 2.
12355
12356 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12357
12358         * doc/install.texi: Add doc for --enable-checking=df.
12359         
12360 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12361
12362         PR rtl-optimization/34808
12363         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12364
12365 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12366
12367         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12368         input.
12369
12370 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12371
12372         PR rtl-optimization/26854
12373         PR rtl-optimization/34400
12374         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12375         DF_RD->gen.
12376         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12377         (df_rd_bb_info.expanded_lr_out): New.
12378         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12379         * loop_iv.c (iv_analysis_loop_init): Ditto.
12380         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12381         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12382         Added code to allocate, initialize or free expanded_lr_out.
12383         (df_rd_bb_local_compute_process_def): Restructured to make
12384         more understandable.
12385         (df_rd_confluence_n): Add code to do nothing with fake edges and
12386         code to no apply invalidate_by_call sets if the sets are being trimmed.
12387         (df_lr_local_finalize): Renamed to df_lr_finalize.
12388         (df_live_local_finalize): Renamed to df_live_finalize.
12389
12390 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12391
12392         PR target/34831
12393         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12394         deciding whether to use reciprocal instructions.
12395
12396 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
12397
12398         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12399         dwarf2out_note_section_used if cold_text_section is NULL.
12400
12401 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
12402
12403         PR gcov-profile/34610
12404         * tree-cfg.c (make_edges): Mark both outgoing edges from
12405         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12406         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12407         from OMP_FOR and OMP_CONTINUE outgoing edges.
12408
12409         * tree-profile.c (tree_profiling): Return early if
12410         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
12411         at the end.
12412         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12413         from cfun to child_cfun.
12414         * function.h (struct function): Add after_tree_profile bit.
12415
12416 2008-01-19 Anatoly Sokolov <aesok@post.ru>
12417
12418         * config/avr/avr.S (_exit): Disable interrupt.
12419
12420 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
12421             Steven Bosscher  <stevenb.gcc@gmail.com>
12422
12423         PR rtl-optimization/26854
12424         PR rtl-optimization/34400
12425         * df-problems.c (df_live_scratch): New scratch bitmap.
12426         (df_live_alloc): Allocate df_live_scratch when doing df_live.
12427         (df_live_reset): Clear the proper bitmaps.
12428         (df_live_bb_local_compute): Only process the artificial defs once
12429         since the order is not important.
12430         (df_live_init): Init the df_live sets only with the variables
12431         found live by df_lr.
12432         (df_live_transfer_function): Use the df_lr sets to prune the
12433         df_live sets as they are being computed.  
12434         (df_live_free): Free df_live_scratch.
12435
12436 2008-01-18  Ian Lance Taylor  <iant@google.com>
12437
12438         * common.opt: Add fmerge-debug-strings.
12439         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12440         flag_merge_debug_strings rather than flag_merge_constants.
12441         * doc/invoke.texi (Option Summary): Mention
12442         -fmerge-debug-strings.
12443         (Debugging Options): Document -fmerge-debug-strings.
12444
12445 2008-01-18  Ian Lance Taylor  <iant@google.com>
12446
12447         PR c++/33407
12448         * tree.h (DECL_IS_OPERATOR_NEW): Define.
12449         (struct tree_function_decl): Add new field operator_new_flag.
12450         * tree-inline.c (expand_call_inline): When inlining a call to
12451         operator new, force the return value to go into a variable, and
12452         set DECL_NO_TBAA_P on that variable.
12453         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12454
12455 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
12456
12457         PR debug/34484
12458         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12459         DWARF2_DEBUGGING_INFO.
12460         (dwarf2out_note_section_used): Ditto.  Add prototype.
12461         (have_multiple_function_sections, text_section_used,
12462         cold_text_section_used, *cold_text_sections): Move declarations
12463         before their uses.
12464
12465 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
12466
12467         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12468         field and add signal_ra.
12469         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12470         assignments to frame state pc.  Move end of stack check after
12471         MD_FALLBACK_FRAME_STATE_FOR.
12472         (uw_update_context_1): Use frame state signal_regs if set, instead
12473         of checking signal_frame flag.
12474         (uw_update_context): Use frame state signal_ra if set.
12475         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12476         * config/xtensa/linux-unwind.h: New file.
12477
12478 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12479
12480         * modulo-sched.c (get_sched_window): Fix comment typo.
12481
12482 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
12483
12484         PR tree-optimization/34648
12485         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12486
12487 2008-01-17  Anatoly Sokolov <aesok@post.ru>
12488
12489         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
12490         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
12491
12492 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
12493
12494         PR rtl-optimization/34400
12495         * df-core.c (df_worklist_dataflow_overeager,
12496         df_worklist_dataflow_doublequeue): New functions.
12497         (df_worklist_dataflow): Two different worklist solvers.
12498         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
12499         New param.
12500
12501 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12502
12503         PR testsuite/34821
12504         * doc/invoke.texi: Document the dependence on pthread for fopenmp
12505         and ftree-parallelize-loops.
12506
12507 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
12508
12509         PR rtl-optimization/34826
12510         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
12511
12512 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12513
12514         * global.c (find_reg): Mark the eh regs as used if necessary.
12515         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
12516         * ra.h (struct allocno): no_eh_reg field added.  Changed
12517         no_stack_reg type to bitfield.
12518
12519 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
12520
12521         * tree.c (substitute_in_expr): Add missing 'break'.
12522
12523 2008-01-17  Richard Guenther  <rguenther@suse.de>
12524
12525         PR tree-optimization/34825
12526         * tree-ssa-math-opts.c (is_division_by): Do not recognize
12527         x / x as division to handle.
12528
12529 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12530
12531         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
12532         "-pthread" is specified.
12533         * pa-hpux11.h (LIB_SPEC): Likewise.
12534
12535 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
12536             Peter Bergner  <bergner@vnet.ibm.com>
12537
12538         PR rtl-optimization/33796
12539         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
12540
12541 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12542
12543         PR libgfortran/34699
12544         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
12545         static links.
12546         * pa-hpux10.h (LINK_SPEC): Likewise.
12547         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
12548
12549 2008-01-16  Richard Guenther  <rguenther@suse.de>
12550
12551         PR middle-end/32628
12552         * fold-const.c (fold_convert_const_int_from_int): Do not
12553         set overflow if that occured only because of a sign extension
12554         change when converting from/to a sizetype with the same
12555         precision and signedness.
12556
12557 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12558
12559         PR debug/34249
12560         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
12561         location address to the correct place.  Update copyright year.
12562
12563 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12564
12565         * lambda-code.c (lambda_transform_legal_p): Handle the case of
12566         no dependences in the dependence_relations vector.
12567
12568 2008-01-16  Jan Hubicka  <jh@suse.cz>
12569
12570         PR rtl-optimization/31396
12571         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
12572         * cfg.c (dump_reg_info): Print it.
12573         * regs.h (struct reg_info_t): add freq_calls_crossed.
12574         (REG_FREQ_CALLS_CROSSED): New macro.
12575         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
12576         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
12577         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12578         regmove_optimize): Update call crossed frequencies.
12579         * local-alloc.c (struct qty): Add freq_calls_crossed.
12580         (alloc_qty): Copute freq_calls_crossed.
12581         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
12582         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
12583         * ra.h (struct allocno): Add freq_calls_crossed.
12584
12585 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12586
12587         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
12588         libgomp when compiling with ftree-parallelize-loops.
12589         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
12590
12591 2008-01-16  Richard Guenther  <rguenther@suse.de>
12592
12593         PR tree-optimization/34769
12594         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
12595         * tree.c (int_cst_value): Instead make this function more
12596         permissive in what it accepts as valid input.  Document this
12597         function always sign-extends the value.
12598
12599 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
12600             Richard Guenther  <rguenther@suse.de>
12601
12602         PR c/34668
12603         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
12604         (gimple_fold_indirect_ref_rhs): ... this.
12605         (gimple_fold_indirect_ref): New function with foldings
12606         that preserve lvalueness.
12607         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
12608         * tree-flow.h (gimple_fold_indirect_ref): Declare.
12609         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
12610         to fold an INDIRECT_REF, fall back to the old use of
12611         fold_indirect_ref_1.
12612
12613 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12614
12615         * tree-data-ref.c (subscript_dependence_tester_1): Call 
12616         free_conflict_function.
12617         (compute_self_dependence): Same.
12618
12619 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12620
12621         PR debug/34249
12622         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
12623         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
12624         function global.
12625         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
12626         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
12627         for DWARF2_UNWIND_INFO targets.
12628
12629 2008-01-16  Richard Guenther  <rguenther@suse.de>
12630
12631         PR c/34768
12632         * c-typeck.c (common_pointer_type): Do not merge inconsistent
12633         type qualifiers for function types.
12634
12635 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
12636
12637         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
12638         loop_iterator li from previous commit.
12639
12640 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
12641
12642         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
12643
12644 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12645
12646         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
12647         (parallelize_loops): Don't parallelize irreducible components.
12648
12649 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12650
12651         PR c++/24924
12652         * c-opts (c_common_post_options): Do not enable CPP
12653         flag_pedantic_errors by default.
12654         
12655 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
12656
12657         PR rtl-optimization/31944
12658         * cse.c (remove_pseudo_from_table): New function.
12659         (merge_equiv_classes): Use above function to remove pseudo-registers.
12660         (invalidate): Likewise.
12661
12662 2008-01-13  Richard Guenther  <rguenther@suse.de>
12663
12664         PR middle-end/34601
12665         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
12666         instead of TYPE_MODE to deal with calls from expand_one_error_var.
12667
12668 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
12669
12670         * gcse.c (cprop_jump): Call validate_unshare_change instead of
12671         validate_change to unshare the source of the PC set.
12672
12673 2008-01-12  Jan Hubicka  <jh@suse.cz>
12674
12675         PR middle-end/32135
12676         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
12677         references above array bounds.  This might trigger bounds checks for
12678         pointers to arrays.
12679
12680 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12681
12682         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
12683         new_replaceable_dependencies.
12684
12685 2008-01-12  Doug Kwan  <dougkwan@google.com>
12686
12687         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
12688         instead of OPT_Wreturn_type in warning due to ignored return type
12689         qualifiers.
12690         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
12691         options included in -Wextra.
12692         * c.opt: New option -Wignored_qualifiers.
12693         * doc/invoke.texi (Warning Options, -Wextra): Add new option
12694         -Wignore_qualifiers.
12695         (-Wignored-qualifiers): Document.
12696         (-Wreturn-type): Remove description of functionality now handled
12697         by -Wignored-qualifiers.
12698
12699 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12700
12701         PR ada/33788
12702         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
12703         NOP_EXPR if it is between integral types with the same precision.
12704
12705 2008-01-12  Jan Hubicka  <jh@suse.cz>
12706
12707         PR other/28023
12708         * invoke.texi (max-inline-recursive-depth): Fix default value.
12709
12710 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
12711
12712         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
12713         correct type.
12714
12715 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
12716         
12717         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12718         
12719 2008-01-11  James E. Wilson  <wilson@specifix.com>
12720
12721         PR target/26015
12722         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12723
12724 2008-01-11  Anatoly Sokolov <aesok@post.ru>
12725
12726         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
12727         save/restore frame pointer register and don't use 'call-prologues' 
12728         optimization in function with "OS_task" attribute.
12729
12730 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12731
12732         PR middle-end/31309
12733         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
12734         when copying to memory.
12735
12736 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
12737
12738         PR rtl-optimization/30905
12739         * cfgcleanup.c: Include dce.h
12740         (crossjumps_occured): New global variable.
12741         (try_crossjump_bb): Exit loop after finding a fallthru edge.
12742         If something changed, set crossjumps_occured to true.
12743         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
12744         Don't add/remove fake edges to exit here...
12745         (cleanup_cfg): ...but do it here, when crossjumping.
12746         Run a fast DCE when successful crossjumps occured in the latest
12747         iteration of try_optimize_cfg.
12748
12749 2008-01-11  Richard Guenther  <rguenther@suse.de>
12750
12751         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
12752         (struct vn_unary_op_s): Likewise.
12753         (vn_reference_insert): Free old reference on hash collision.
12754
12755 2008-01-10  Raksit Ashok  <raksit@google.com>
12756
12757         PR rtl-optimization/27971
12758         * combine.c (find_split_point): Split PLUS expressions which are
12759         inside a MEM rtx, and whose first operand is complex.
12760
12761 2008-01-10  DJ Delorie  <dj@redhat.com>
12762
12763         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
12764         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
12765         (m32c_hard_regno_ok): Call the underlying function.
12766
12767 2008-01-10  Richard Guenther  <rguenther@suse.de>
12768
12769         PR middle-end/34683
12770         * tree-cfg.c (tree_merge_blocks): Do not go through the
12771         full-blown folding and stmt updating path if we just deal
12772         with virtual operands.
12773         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
12774         test for abnormal SSA_NAMEs.
12775
12776 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12777
12778         PR middle-end/34641
12779         * reload.c (push_reload): Add assertions.  All constants from
12780         reg_equiv_constant should have been used for replacing the respective
12781         pseudo earlier.
12782         (find_reloads_address): Invoke find_reloads_address_part for
12783         constant taken from the reg_equiv_constant array.
12784
12785 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
12786
12787         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
12788         field (valnum) the first in the struct.  Replace bools with
12789         unit bit fields.
12790
12791 2008-01-10  Richard Guenther  <rguenther@suse.de>
12792
12793         PR tree-optimization/34651
12794         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
12795         types and ordering for masking and converting.
12796
12797 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
12798
12799         PR tree-optimization/34017
12800         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12801         also for PHI_NODE expressions.
12802
12803 2008-01-09  Jan Hubicka  <jh@suse.cz>
12804
12805         PR tree-optimization/34708
12806         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12807         based on number of case labels.
12808         (init_inline_once): Remove switch_cost.
12809         * tree-inline.h (eni_weights_d): Remove switch_cost.
12810
12811 2008-01-09  Richard Guenther  <rguenther@suse.de>
12812         Andrew Pinski  <andrew_pinski@playstation.sony.com>
12813
12814         PR middle-end/30132
12815         * gimplify.c (gimplify_cond_expr): Do not create an addressable
12816         temporary if an rvalue is ok or an lvalue is not required.
12817
12818 2008-01-09  Richard Guenther  <rguenther@suse.de>
12819
12820         PR middle-end/34458
12821         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12822         adjust return type.
12823
12824 2008-01-09  Richard Guenther  <rguenther@suse.de>
12825
12826         PR middle-end/34679
12827         * tree.c (host_integerp): Check for sizetype only if the
12828         type is an integer type.
12829
12830 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
12831
12832         PR debug/26364
12833         * opts.c (decode_options): Disable inlining of functions called
12834         once if not in unit-at-a-time mode.
12835
12836 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
12837
12838         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12839
12840 2008-01-08  Richard Guenther  <rguenther@suse.de>
12841
12842         PR middle-end/31863
12843         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12844         out early if the result will be unused.
12845
12846 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12847
12848         PR target/34709
12849         Revert:
12850
12851         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12852         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12853         for TARGET_RECIP.       
12854         
12855 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
12856         
12857         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12858         for vectorization tuned.
12859         
12860 2008-01-08  Richard Guenther  <rguenther@suse.de>
12861
12862         PR tree-optimization/34683
12863         * tree-ssa-operands.c (operand_build_cmp): Export.
12864         * tree-ssa-operands.h (operand_build_cmp): Declare.
12865         * tree-vn.c (vuses_compare): Remove.
12866         (sort_vuses): Use operand_build_cmp.
12867         (sort_vuses_heap): Likewise.
12868         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12869         to re-use old VEC if available.  Do not sort already sorted VUSEs.
12870         (vdefs_to_vec): Do not sort already sorted VDEFs.
12871
12872 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
12873
12874         PR middle-end/34694
12875         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12876
12877 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12878
12879         PR target/34702
12880         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12881         limitations of reciprocal sequences on x86 targets.
12882
12883 2008-01-08  Richard Guenther  <rguenther@suse.de>
12884
12885         PR tree-optimization/34683
12886         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12887
12888 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
12889
12890         PR target/34622
12891         * config/darwin.c (darwin_mergeable_string_section): Don't use
12892         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12893
12894 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
12895
12896         PR target/34682
12897         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12898         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
12899         predicates of op0 and op1 to register_operand.
12900         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
12901         expander using X87MODEF mode iterator.  Change predicates of
12902         op0 and op1 to register_operand.
12903         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12904         corresponding patterns and macroize using MODEF macro.  Change
12905         predicates of op0 and op1 to register_operand and remove
12906         "m" constraint. Disparage "r" alternative with "!".
12907         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
12908         macroize using X87MODEF macro.  Change predicates of op0 and op1
12909         to register_operand and remove "m" constraint.  Disparage "r"
12910         alternative with "!".
12911         (absneg splitter with memory operands): Remove.
12912         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
12913         patterns and macroize using X87MODEF mode iterator.
12914         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
12915         Change predicate of op1 to register_operand.
12916         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
12917         for memory operands.
12918
12919 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
12920
12921         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
12922
12923 2008-01-07  Richard Guenther  <rguenther@suse.de>
12924
12925         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
12926         fields.
12927
12928 2008-01-07  Richard Guenther  <rguenther@suse.de>
12929
12930         PR tree-optimization/34683
12931         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12932         VOPs of the needed size to save memory.  Use VEC_quick_push
12933         to save compile-time.
12934         (vdefs_to_vec): Likewise.
12935
12936 2008-01-07  Sa Liu  <saliu@de.ibm.com>
12937
12938         * config/spu/spu.md (divdf3): Genetate inline code for double
12939         division.  The implementation doesn't handle INF or NAN, therefore it
12940         only applies when -ffinite-math-only is given.
12941
12942 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
12943
12944         PR libstdc++/34680
12945         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12946         * doc/cpp.texi ([Common Predefined Macros]): Document.
12947
12948 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
12949
12950         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12951         order to use commutative addition instead of subtraction.
12952
12953 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12954             Mircea Namolaru  <namolaru@il.ibm.com>
12955             Vladimir Yanovsky  <yanov@il.ibm.com>
12956             Revital Eres  <eres@il.ibm.com>
12957
12958         PR tree-optimization/34263
12959         * tree-outof-ssa.c (process_single_block_loop_latch,
12960         contains_tree_r): New functions.
12961         (analyze_edges_for_bb): Call process_single_block_loop_latch
12962         function to empty single-basic-block latch block if possible.
12963
12964 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12965
12966         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12967         for TARGET_RECIP.
12968         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12969
12970 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12971
12972         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12973
12974 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12975
12976         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12977
12978 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
12979
12980         PR tree-optimization/34618
12981         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12982         flag from T.
12983
12984 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12985
12986         PR target/34673
12987         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12988         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
12989         Update copyright year.
12990
12991         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12992         Update copyright year.
12993         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12994         using NR fixup.
12995
12996 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
12997
12998         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12999         edge does not point to current bb before changing need_assert.
13000
13001 2008-01-04  Richard Guenther  <rguenther@suse.de>
13002
13003         PR middle-end/34029
13004         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13005         for verifying purposes if they are is_gimple_min_invariant.
13006
13007 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13008
13009         PR tree-optimization/34448
13010         PR tree-optimization/34465
13011         * gimplify.c (gimplify_init_constructor): Add new parameter
13012         notify_temp_creation.  Use it.
13013         (gimplify_modify_expr_rhs): Take volatiles into account when
13014         optimizing constructors.
13015         Do not optimize constructors if gimplify_init_constructor will dump to
13016         memory.
13017         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13018         * gcc.c-torture/compile/pr34448.c: New.
13019
13020 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13021
13022         PR gcov-profile/34609
13023         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13024         return_slot if result is TREE_ADDRESSABLE.
13025
13026 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13027
13028         * config/mips/mips.md (sqrt_condition): Tweak comment.
13029         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13030
13031 2008-01-03  Tom Tromey  <tromey@redhat.com>
13032
13033         PR c/34457
13034         * c-common.c (c_type_hash): Handle VLAs.
13035
13036 2008-01-03  Jan Hubicka  <jh@suse.cz>
13037
13038         PR tree-optimization/31081
13039         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13040         0 when inlining and not inlining to first basic block.
13041         (remap_decl): When var is initialized to 0, don't set default_def.
13042         (expand_call_inline): Set entry_bb.
13043         * tree-inline.h (copy_body_data): Add entry_bb.
13044
13045 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13046
13047         PR c++/34619
13048         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13049         before returning.
13050
13051         PR tree-optimization/29484
13052         * tree-inline.c (inline_forbidden_p_2): New function.
13053         (inline_forbidden_p): Disallow inlining if some static var
13054         has an address of a local LABEL_DECL in its initializer.
13055         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13056         vs. inlining.
13057
13058 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13059
13060         PR tree-optimization/34635
13061         * tree-data-ref.c (add_other_self_distances): Make sure that the
13062         evolution step is constant.
13063
13064 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13065
13066         PR middle-end/34608
13067         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13068
13069 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13070
13071         * tree-sra.c (scalarize_init): Insert the generate_element_init
13072         statements after the generate_element_zero statements.
13073
13074 2008-01-02  Richard Guenther  <rguenther@suse.de>
13075
13076         PR middle-end/34093
13077         PR middle-end/31976
13078         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13079         for very large number of operands instead of ICEing.
13080
13081 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13082
13083         PR target/34013
13084         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13085         while stack probing.
13086
13087 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13088
13089         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13090         in C++0x mode.
13091
13092 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13093
13094         PR libmudflap/26442
13095         * tree-mudflap.c (mx_register_decls): Guard warning by
13096         !DECL_ARTIFICIAL check.
13097
13098 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13099
13100         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13101         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13102         sse5_perm<mode>): Fix constraints.