OSDN Git Service

* config/i386/i386.md (fmodxf3): Change sequence of move instructions.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
4         (fmod<mode>3): Ditto.
5         (remainderxf3): Ditto.
6         (remainder<mode>3): Ditto.
7
8 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
9
10         PR target/36533
11         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
12         REG is a hard register.
13
14         PR tree-optimization/36508
15         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
16         499, don't check it at all in release compilers.
17
18 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
19
20         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
21         together with SSE_TARGET_MATH to disable insn pattern.
22         (*fop_<MODEF:mode>_2_i387): Ditto.
23         (*fop_<MODEF:mode>_3_i387): Ditto.
24
25 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
26
27         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
28         
29 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30
31         PR middle-end/34906
32         * gimplify.c (gimplify_asm_expr): Check the return code of
33         parse_output_constraint call, set function return and is_inout
34         value if it failed.
35
36 2008-06-22  Ian Lance Taylor  <iant@google.com>
37
38         * c-lex.c (narrowest_unsigned_type): Change itk to int.
39         (narrowest_signed_type): Likewise.
40         * c-typeck.c (c_common_type): Change local variable mclass to enum
41         mode_class, twice.
42         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
43         tcc_comparison, not the tree code itself.
44         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
45         (c_expand_expr): Cast modifier to enum expand_modifier.
46         * c-common.h (C_RID_CODE): Add casts.
47         (C_SET_RID_CODE): Define.
48         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
49         (c_lex_one_token): Add cast to avoid warning.
50         (c_parser_objc_type_name): Rename local typename to type_name.
51         (check_no_duplicate_clause): Change code parameter to enum
52         omp_clause_code.
53         (c_parser_omp_var_list_parens): Change kind parameter to enum
54         omp_clause_code.
55         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
56         c_parser_omp_list_var_parens.
57         (c_parser_omp_threadprivate): Likewise.
58         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
59         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
60         * c-format.c (NO_FMT): Define.
61         (printf_length_specs): Use NO_FMT.
62         (asm_fprintf_length_specs): Likewise.
63         (gcc_diag_length_specs): Likewise.
64         (scanf_length_specs): Likewise.
65         (strfmon_length_specs): Likewise.
66         (gcc_gfc_length_specs): Likewise.
67         (printf_flag_specs): Change 0 to STD_C89.
68         (asm_fprintf_flag_specs): Likewise.
69         (gcc_diag_flag_specs): Likewise.
70         (gcc_cxxdiag_flag_specs): Likewise.
71         (scanf_flag_specs): Likewise.
72         (strftime_flag_specs): Likewise.
73         (strfmon_flag_specs): Likewise.
74         (print_char_table): Likewise.
75         (asm_fprintf_char_table): Likewise.
76         (gcc_diag_char_table): Likewise.
77         (gcc_tdiag_char_table): Likewise.
78         (gcc_cdiag_char_table): Likewise.
79         (gcc_cxxdiag_char_table): Likewise.
80         (gcc_gfc_char_table): Likewise.
81         (scan_char_table): Likewise.
82         (time_char_table): Likewis.
83         (monetary_char_table): Likewise.
84         * c-format.h (BADLEN): Likewise.
85
86 2008-06-21  Ian Lance Taylor  <iant@google.com>
87
88         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
89         Define END_OF_BASE_TREE_CODES around inclusion.
90         * tree.c (tree_code_type): New global array.
91         (tree_code_length, tree_code_name): Likewise.
92         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
93         $(lang_tree_files).
94         (all-tree.def, s-alltree): New targets.
95         (gencheck.h, s-gencheck): Remove.
96         (tree.o): Depend upon all-tree.def.
97         (build/gencheck.o): Remove gencheck.h dependency.
98         (mostlyclean): Don't remove gencheck.h.
99         * c-common.h (enum c_tree_code): Remove.
100         * c-lang.c (tree_code_type): Remove.
101         (tree_code_length, tree_code_name): Remove.
102         * gencheck.c (tree_codes): Include all-tree.def, rather than
103         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
104         after it is used.
105         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
106         than tree.def.
107         * cp/cp-tree.h (enum cplus_tree_code): Remove.
108         (operator_name_info): Size to MAX_TREE_CODES.
109         (assignment_operator_name_info): Likewise.
110         * cp/cp-lang.c (tree_code_type): Remove.
111         (tree_code_length, tree_code_name): Remove.
112         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
113         (assignment_operator_name_info): Likewise.
114         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
115         MAX_TREE_CODES.
116         * cp/mangle.c (write_expression): Likewise.
117         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
118         * fortran/f95-lang.c (tree_code_type): Remove.
119         (tree_code_length, tree_code_name): Remove.
120         * java/java-tree.h (enum java_tree_code): Remove.
121         * java/lang.c (tree_code_type): Remove.
122         (tree_code_length, tree_code_name): Remove.
123         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
124         * objc/objc-act.h (enum objc_tree_code): Remove.
125         * objc/objc-lang.c (tree_code_type): Remove.
126         (tree_code_length, tree_code_name): Remove.
127         * objcp/objcp-lang.c (tree_code_type): Remove.
128         (tree_code_length, tree_code_name): Remove.
129         * ada/ada-tree.h (enum gnat_tree_code): Remove.
130         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
131         * ada/misc.c (tree_code_type): Remove.
132         (tree_code_length, tree_code_name): Remove.
133
134 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
135
136         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
137         the grand_bitmap_obstack.
138
139 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
140
141         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
142         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
143         * tree-affine.c (aff_combination_expand, free_name_expansion):
144         Likewise.
145         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
146         move_stmt_r, new_label_mapper): Likewise.
147         * tree-complex.c (cvc_lookup): Likewise.
148         * tree-dfa.c (create_function_ann): Likewise.
149         * tree-dump.c (dump_register): Likewise.
150         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
151         find_phi_replacement_condition): Likewise.
152         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
153         tree_function_versioning): Likewise.
154         * tree-into-ssa.c (cmp_dfsnum): Likewise.
155         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
156         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
157         get_nonlocal_debug_decl, convert_nonlocal_reference,
158         convert_nonlocal_omp_clauses, get_local_debug_decl,
159         convert_local_reference, convert_local_omp_clauses,
160         convert_nl_goto_reference, convert_nl_goto_receiver,
161         convert_tramp_reference, convert_call_expr): Likewise.
162         * tree-outof-ssa.c (contains_tree_r): Likewise.
163         * tree-parloops.c (reduction_phi, initialize_reductions,
164         eliminate_local_variables_1, add_field_for_reduction,
165         add_field_for_name, create_phi_for_local_result,
166         create_call_for_reduction_1, create_loads_for_reductions,
167         create_stores_for_reduction, create_loads_and_stores_for_name):
168         Likewise.
169         * tree-phinodes.c (allocate_phi_node): Likewise.
170         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
171         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
172         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
173         * tree-ssa-coalesce.c (compare_pairs): Likewise.
174         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
175         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
176         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
177         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
178         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
179         vn_nary_op_insert): Likewise.
180         * tree-ssa.c (redirect_edge_var_map_add,
181         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
182         * tree-vectorizer.c (vectorize_loops): Likewise.
183         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
184         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
185         tree_cons_stat, build1_stat, build_variant_type_copy,
186         decl_init_priority_lookup, decl_fini_priority_lookup,
187         decl_priority_info, decl_restrict_base_lookup,
188         decl_restrict_base_insert, decl_debug_expr_lookup,
189         decl_debug_expr_insert, decl_value_expr_lookup,
190         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
191         type_hash_add, get_file_function_name, tree_check_failed,
192         tree_not_check_failed, tree_range_check_failed,
193         omp_clause_range_check_failed, build_omp_clause,
194         build_vl_exp_stat): Likewise.
195         * value-prof.c (gimple_histogram_value,
196         gimple_duplicate_stmt_histograms): Likewise.
197         * var-tracking.c (attrs_list_insert, attrs_list_copy,
198         unshare_variable, variable_union_info_cmp_pos, variable_union,
199         dataflow_set_different_1, dataflow_set_different_2,
200         vt_find_locations, variable_was_changed, set_variable_part,
201         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
202         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
203         section_entry_hash, object_block_entry_eq,
204         object_block_entry_hash, create_block_symbol,
205         initialize_cold_section_name, default_function_rodata_section,
206         strip_reg_name, set_user_assembler_name, const_desc_eq,
207         build_constant_desc, output_constant_def, lookup_constant_def,
208         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
209         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
210         default_internal_label): Likewise.
211         * varray.c (varray_init, varray_grow): Likewise.
212         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
213
214 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
215
216         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
217         operators for "test" insn.  Macroize insn using SWI mode macro.
218         (*jcc_fused_2): Ditto.
219         (*jcc_fused_3): Macroize insn using SWI mode macro.
220         (*jcc_fused_4): Ditto.
221
222 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
223
224         * tree-ssa-pre.c: Fix typo in comment.
225         (init_antic, fini_antic): Add explicit funtions for
226         initializing and deinitializing ANTIC and AVAIL sets.
227         (create_expression_by_pieces): Fix typo in comment.
228         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
229         (execute_pre): Eventually dump details about ANTIC_IN.
230
231 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
232
233         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
234         * gcc.c (translate_options, init_spec, store_arg, read_specs,
235         add_to_obstack, file_at_path, find_a_file, execute,
236         add_preprocessor_option, add_assembler_option, add_linker_option,
237         process_command, insert_wrapper, do_option_spec, do_self_spec,
238         spec_path, do_spec_1, is_directory, main, used_arg,
239         getenv_spec_function): Likewise.
240         * tlink.c (symbol_hash_lookup, file_hash_lookup,
241         demangled_hash_lookup, symbol_push, file_push, frob_extension):
242         Likewise.
243
244 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
245
246         * doc/rtl.texi: Updated subreg section.
247
248 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
249
250         PR c++/36523
251         * cgraphunit.c (cgraph_process_new_functions): Don't clear
252         node->needed and node->reachable.
253         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
254         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
255         (expand_task_call): Don't call expand_task_copyfn.
256         (expand_task_copyfn): Renamed to...
257         (finalize_task_copyfn): ... this.
258
259 2008-06-19  Jan Hubicka  <jh@suse.cz>
260
261         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
262         clobbering framepointer.
263
264 2008-06-19  Jan Hubicka  <jh@suse.cz>
265
266         * tree-optimize.c (execute_early_local_optimizations): Set
267         cgraph_state only at first invocation.
268
269 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
270
271         * system.h (-Wc++-compat): Activate as a warning, no an error.
272
273 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
274
275         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
276         instead of "#" in insn asm template.
277         (*jcc_fused_2): Ditto.
278
279 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
280
281         * config/i386/i386.h (ix86_tune_indices)
282         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
283         (TARGET_FUSE_CMP_AND_BRANCH): New define.
284         * config/i386/i386.md (*jcc_fused_1): New insn pattern
285         (*jcc_fused_2): Ditto.
286         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
287         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
288         (print operand): Handle 'E' and 'e' code.
289
290 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
291
292         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
293         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
294         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
295
296 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
297
298         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
299         node->decl.
300         (cgraph_expand_function): Use local copy of decl.
301         (cgraph_expand_all_functions): Remove redundant initialization of
302         order_pos.
303         (cgraph_optimize): Reword internal_error message.
304
305 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
306
307         * arm-protos.h (arm_return_in_memory): Remove public
308         arm_return_in_memory() prototype.
309         * arm.c (arm_return_in_memory): Add static prototype, add target
310         hook macro, change definition and comments.
311         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
312
313 2008-06-19  Ben Elliston  <bje@au.ibm.com>
314
315         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
316         real.c: Remove references to IEEE 754R.
317         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
318         * doc/libgcc.texi (Decimal float library routines): Likewise.
319
320 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
321
322         * targhooks.h (struct gcc_target): New member unwind_word_mode.
323         (default_unwind_word_mode): Add prototype.
324         * targhooks.c (default_unwind_word_mode): New function.
325         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
326         instead of word_mode.
327         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
328         (TARGET_INITIALIZER): Use it.
329
330         * c-common.c (handle_mode_attribute): Support "unwind_word"
331         mode attribute.
332         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
333
334         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
335         word_mode to access SjLj_Function_Context member "data".
336         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
337         conversion from targetm.eh_return_filter_mode () to
338         targetm.unwind_word_mode () if they differ.
339
340         * builtin-types.def (BT_UNWINDWORD): New primitive type.
341         (BT_FN_UNWINDWORD_PTR): New function type.
342         (BT_FN_WORD_PTR): Remove.
343         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
344         * except.c (expand_builtin_extend_pointer): Convert pointer to
345         targetm.unwind_word_mode () instead of word_mode.
346
347         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
348         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
349         (spu_unwind_word_mode): New function.
350         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
351         (TARGET_UNWIND_WORD_MODE): Define.
352         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
353
354 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
355
356         * config/spu/spu.c (reg_align): Remove.
357         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
358         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
359         (spu_split_store): Likewise.
360
361 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
362
363         * gcc/tree-vn.c: Fix typo in comment.
364
365 2008-06-18  Jan Hubicka  <jh@suse.cz>
366
367         * cgraphunit.c (cgraph_optimize): Output debug info when doing
368         toplevel reorder too.
369
370 2008-06-18  Jan Hubicka  <jh@suse.cz>
371
372         * c-opts.c (c_common_post_options): PCH is not compatible with
373         no-unit-at-a-time.
374         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
375         -fno-toplevel-reorder by default now.
376
377 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
378
379         PR documentation/30739
380         * doc/install.texi (Prerequisites): Document dependency on awk.
381
382 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
383             Ian Lance Taylor  <iant@google.com>
384
385         PR rtl-optimization/35604
386         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
387         only want to change jump destinations, not eventual label comparisons.
388
389 2008-06-16  Jan Hubicka  <jh@suse.cz>
390
391         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
392         syntax errors.
393         (cgraph_analyze_function): Likewise.
394
395 2008-06-16  Jan Hubicka  <jh@suse.cz>
396
397         * cgraph.h (cgraph_mark_if_needed): New function.
398         * cgraphunit.c (cgraph_mark_if_needed): New function.
399         * c-decl.c (duplicate_decl): Use it.
400
401 2008-06-16  Jan Hubicka  <jh@suse.cz>
402
403         * cgraph.c (cgraph_add_new_function): When in expansion state, do
404         lowering.
405
406 2008-06-16  Jan Hubicka  <jh@suse.cz>
407
408         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
409
410 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
411             Kazu Hirata  <kazu@codesourcery.com>
412             Maxim Kuvyrkov  <maxim@codesourcery.com
413
414         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
415         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
416         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
417         EXTRA_SPEC_FUNCTIONS.
418         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
419         (DRIVER_SELF_SPECS): Adjust.
420         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
421         * config/mips/st.h, config/mips/t-st: New.
422         * config/mips/driver-native.c, config/mips/x-native: New.
423         * doc/invoke.texi (MIPS): Document 'native' value for -march and
424         -mtune options.
425
426 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
427
428         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
429         from it.
430         (ISA_HAS_FP_CONDMOVE): New macro.
431         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
432         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
433         (ISA_HAS_NMADD3_NMSUB3): New macro.
434         * config/mips/mips.c (mips_rtx_costs): Update.
435         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
436         compiling for ST Loongson 2E/2F.
437         (madd<mode>): Rename to madd4<mode>.  Update.
438         (madd3<mode>): New pattern.
439         (msub<mode>): Rename to msub4<mode>.  Update.
440         (msub3<mode>): New pattern.
441         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
442         (nmadd3<mode>): New pattern.
443         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
444         (nmadd3<mode>_fastmath): New pattern.
445         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
446         (nmsub3<mode>): New pattern.
447         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
448         (nmsub3<mode>_fastmath): New pattern.
449         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
450
451 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
452
453         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
454         (DF_REF_INSN_INFO): New.
455         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
456         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
457         with a NULL DF_REF_INSN_INFO.
458         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
459         DF_INSN_SET.
460         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
461         DF_INSN_INFO_EQ_USES): New.
462         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
463         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
464         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
465         * df-core.c: Update comment for above changes.
466         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
467         DF_INSN_UID_* macros.
468         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
469         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
470         insn rtx.  Update all callers.
471         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
472         df_ref_create_structure, df_insn_refs_collect): Likewise.
473         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
474         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
475         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
476         macros to access the insn refs.
477         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
478         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
479         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
480         for accessing the refs.
481         (try_fwprop_subst): Likewise.
482         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
483         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
484         for accessing the refs.
485         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
486         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
487         to look at the insn refs.
488         (record_uses): Likewise.
489         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
490         function anymore.
491         (mark_artificial_uses): Don't mark_insn for artificial refs.
492         (mark_reg_rependencies): Likewise.
493
494         * doc/rtl.texi: Remove documentation of ADDRESSOF.
495
496 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
497
498         * configure: Regenerate.
499
500 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
501
502         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
503         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
504         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
505
506 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
507
508         * config/avr/avr.c (avr_mcu_t): Add attiny167.
509         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
510         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
511
512 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
513
514         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
515         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
516         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
517
518 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
519
520         * tree-ssa-sccvn.c: Fix format of comments.
521
522 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
523
524         * cgraph.c: Remove unneeded forward declarations of eq_node()
525         and hash_node().
526
527 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
528
529         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
530         REG_RETVAL notes.
531         (see_update_relevancy): Likewise.
532         * fwprop.c (try_fwprop_subst): Likewise.
533         * rtlanal.c (noop_move_p): Likewise.
534         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
535         notes to non-existing libcall blocks.
536         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
537         Remove orig_set.
538         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
539         (dead_libcall_p): Remove.
540         (delete_trivially_dead_insns): Don't use it.
541         * web.c (union_defs): Remove comment about keeping nops.
542         * gcse.c (hash_scan_insn): Don't take libcall pointers.
543         (compute_hash_table_work): Don't track libcall notes.
544         (do_local_cprop): Don't take libcall pointers.  Don't update
545         libcall notes.
546         (adjust_libcall_notes): Deleted.
547         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
548         ever have existed in the first place).
549         (replace_store_insn): Don't try to remove libcall notes.
550         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
551         (resolve_reg_notes): Don't call them.
552         (resolve_simple_move): Likewise.
553         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
554         Don't remove REG_RETVAL notes.
555         * emit-rtl.c (try_split): Don't update libcall notes.
556         (emit_copy_of_insn_after): Dito.
557         * cselib.c (cselib_current_insn_in_libcall): Remove.
558         (cselib_process_insn): Don't set/clear it.
559         (new_elt_loc_list): Don't record it.
560         (cselib_init): Don't initialize it.
561         * cselib.c (struct elt_loc_list): Remove in_libcall field.
562         * loop-invariant.c (find_invariant_insn): Don't look for libcall
563         notes.
564         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
565         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
566         (init_deps): Don't initialize it.
567         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
568         * combine.c (delete_noop_moves): Don't update libcall notes.
569         (can_combine_p): Remove now pointless #if 0 block.
570         (try_combine): Remove another obsolete #if 0 block.
571         (distribute_notes): Don't distribute libcall notes.
572         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
573         * dce.c (libcall_dead_p): Remove.
574         (delete_unmarked_insns): Don't handle libcall blocks.
575         (preserve_libcall_for_dce): Remove.
576         (prescan_insns_for_dce): Don't special-case libcall block insns.
577         * reload1 (reload): Don't handle libcall notes. 
578         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
579         documentation.
580
581 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
582
583         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
584         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
585         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
586
587 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
588
589         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
590         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
591         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
592
593 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
594
595         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
596
597 2008-06-16  Ira Rosen  <irar@il.ibm.com>
598
599         PR tree-optimization/36493
600         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
601         the arguments list. Use VECTYPE to create vector pointer.
602         (vectorizable_store): Fail if accesses through a pointer to vectype
603         do not alias the original memory reference operands.
604         Call vect_create_data_ref_ptr without the removed argument.
605         (vectorizable_load): Likewise.
606         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
607         removed argument.
608
609 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
610
611         PR target/36336
612         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
613         reg_equiv_constant.
614
615 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
616
617         * config/mips/loongson2ef.md: New file.
618         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
619         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
620         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
621         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
622         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
623         and loongson_2f.
624         (loongson2ef.md): New include.
625         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
626         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
627         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
628         (loongson_gt_<mode>, loongson_extract_halfword)
629         (loongson_insert_halfword_0, loongson_insert_halfword_2)
630         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
631         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
632         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
633         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
634         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
635         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
636         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
637         (vec_interleave_low<mode>): Define type attribute.
638         * config/mips/mips.c (mips_ls2): New static variable.
639         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
640         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
641         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
642         Implement target scheduling hooks.
643         (mips_multipass_dfa_lookahead): Update to handle tuning for
644         Loongson 2E/2F.
645         (mips_sched_init): Initialize data for Loongson scheduling.
646         (mips_ls2_variable_issue): New static function.
647         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
648         Add sanity check.
649         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
650         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
651         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
652         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
653         Handle ST Loongson 2E/2F cores.
654         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
655
656 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
657
658         * omp-low.c (extract_omp_for_data): Fix comment typo.
659         * c.opt: Fix typo.
660
661 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
662
663         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
664         FIXME note about gcc/config.guess.
665         * doc/options.texi (Option file format): Remove non-ASCII bytes.
666         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
667         * doc/cppopts.texi: Likewise.
668         * doc/extend.texi: Likewise.
669         * doc/gcc.texi: Likewise.
670         * doc/gccint.texi: Likewise.
671         * doc/gcov.texi: Likewise.
672         * doc/gty.texi: Likewise.
673         * doc/hostconfig.texi: Likewise.
674         * doc/install.texi: Likewise.
675         * doc/invoke.texi: Likewise.
676         * doc/loop.texi: Likewise.
677         * doc/makefile.texi: Likewise.
678         * doc/md.texi: Likewise.
679         * doc/passes.texi: Likewise.
680         * doc/tm.texi: Likewise.
681         * doc/tree-ssa.texi: Likewise.
682         * doc/trouble.texi: Likewise.
683
684 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
685             Nathan Sidwell  <nathan@codesourcery.com>
686             Maxim Kuvyrkov  <maxim@codesourcery.com>
687             Richard Sandiford  <rdsandiford@googlemail.com>
688         
689         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
690         * config/mips/mips-protos.h (mips_expand_vector_init): New.
691         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
692         builtins.
693         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
694         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
695         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
696         V8QImode cases.
697         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
698         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
699         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
700         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
701         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
702         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
703         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
704         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
705         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
706         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
707         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
708         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
709         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
710         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
711         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
712         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
713         (mips_builtins): Add Loongson builtins.
714         (mips_loongson_2ef_bdesc): New.
715         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
716         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
717         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
718         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
719         New.
720         (mips_expand_vector_init): New.
721         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
722         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
723         if appropriate.
724         * config/mips/mips.md: Add unspec numbers for Loongson
725         builtins.  Include loongson.md.
726         (MOVE64): Include Loongson vector modes.
727         (SPLITF): Include Loongson vector modes.
728         (HALFMODE): Handle Loongson vector modes.
729         * config/mips/loongson.md: New.
730         * config/mips/loongson.h: New.
731         * config.gcc: Add loongson.h header for mips*-*-* targets.
732         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
733
734 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
735
736         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
737         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
738         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
739         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
740         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
741         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
742         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
743         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
744         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
745         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
746         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
747         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
748         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
749         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
750         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
751         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
752         Remove use_fixproto=yes.
753         (ia64*-*-hpux*): Remove comment about using fixproto.
754         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
755
756 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
757
758         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
759         library rebuilds.
760         * configure: Regenerate.
761
762 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
763
764         PR middle-end/36520
765         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
766         before evaluating it.
767
768 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
769
770         PR c/36507
771         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
772         nested inline functions.
773         (start_decl, start_function): Don't invert DECL_EXTERNAL
774         for nested inline functions.
775
776 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
777
778         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
779         splits that must be made for correctness.
780
781 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
782
783         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
784         (AVAIL_NON_MIPS16): Likewise.
785         (mips_builtin_description): Replace target_flags with a predicate.
786         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
787         (dspr2_32): New availability predicates.
788         (MIPS_BUILTIN): New macro.
789         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
790         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
791         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
792         Replace the TARGET_FLAGS parameters with AVAIL parameters.
793         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
794         (mips_dsp_32only_bdesc): Merge into...
795         (mips_builtins): ...this new array.
796         (mips_bdesc_map, mips_bdesc_arrays): Delete.
797         (mips_init_builtins): Update after above changes.
798         (mips_expand_builtin_1): Merge into...
799         (mips_expand_builtin): ...here and update after above changes.
800
801 2008-06-12  Paul Brook  <paul@codesourcery.com>
802
803         * longlong.h (__arm__): Define count_leading_zeros.
804         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
805         (clzsi2, clzdi2): New functions.
806         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
807         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
808         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
809         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
810         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
811         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
812         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
813         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
814         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
815         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
816
817 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
818
819         * config/m68k/m68k.c (m68k_tune_flags): New.
820         (override_options): Compute m68k_tune_flags.
821         (MULL_COST, MULW_COST): Update for various variants of CFV2.
822         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
823
824 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
825
826         PR middle-end/36506
827         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
828
829 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
830
831         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
832         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
833
834 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
835
836         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
837         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
838
839 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
840
841         PR middle-end/36506
842         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
843         reductions.
844
845 2008-06-12  Richard Guenther  <rguenther@suse.de>
846
847         PR tree-optimization/36345
848         * tree-flow.h (struct ptr_info_def): Align escape_mask,
849         add memory_tag_needed flag.
850         (may_alias_p): Declare.
851         * tree-ssa-alias.c (may_alias_p): Export.
852         (set_initial_properties): Use memory_tag_needed flag.
853         (update_reference_counts): Likewise.
854         (reset_alias_info): Reset memory_tag_needed flag.
855         (create_name_tags): Check memory_tag_needed flag.
856         (dump_points_to_info_for): Dump it.
857         * tree-ssa-structalias.c (struct variable_info): Remove
858         directly_dereferenced flag.
859         (new_var_info): Do not initialize it.
860         (process_constraint_1): Do not set it.
861         (update_alias_info): Set is_dereferenced flag.
862         (set_uids_in_ptset): Use may_alias_p.
863         (set_used_smts): Check memory_tag_needed flag.
864         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
865         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
866         memory_tag_needed flag.
867         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
868         from broken design.
869
870 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
871
872         * config/i386/i386.c (ix86_compute_frame_layout): Disable
873         red zone for w64 abi.
874         (ix86_expand_prologue): Likewise.
875         (ix86_force_to_memory): Likewise.
876         (ix86_free_from_memory): Likewise.
877
878 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
879
880         PR target/36425
881         * config/rs6000/rs6000.c (rs6000_override_options): Set
882         rs6000_isel conditionally to the absence of comand line override.
883         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
884         Remove duplicate rs6000_isel setting.
885         * config/rs6000/eabispe.h: Ditto.
886
887 2008-06-11  Richard Guenther  <rguenther@suse.de>
888
889         * alias.c (get_alias_set): Use the element alias-set for arrays.
890         (record_component_aliases): For arrays and vectors do nothing.
891         * c-common.c (strict_aliasing_warning): Handle the cases
892         of alias set zero explicitly.
893         * Makefile.in (dfp.o-warn): Add -Wno-error.
894
895 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
896
897         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
898         tune_32 tune_64.
899         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
900         tune_32 tune_64 to supported_defaults.  Allow values not
901         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
902         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
903         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
904         with_cpu_64 to generic for 64-bit-supporting configurations, not
905         with_cpu.  Remove FIXMEs.
906         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
907         --with-arch-64, --with-tune-32, --with-tune-64): Document.
908         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
909         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
910         arch_32 and arch_64.
911
912 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
913             Olivier Hainque  <hainque@adacore.com>
914
915         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
916         Use DECL_SIZE_UNIT to retrieve the size of the field.
917
918 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
919
920         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
921         with function calls after declarations.  Lay out
922         neon_float_type_node before further use.
923
924 2008-06-11  Richard Guenther  <rguenther@suse.de>
925
926         * tree-flow.h (may_point_to_global_var): Declare.
927         * tree-ssa-alias.c (may_point_to_global_var): New function.
928         * tree-ssa-sink.c (is_hidden_global_store): Use it.
929
930 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
931
932         * configure.ac: Teach that fido supports .debug_line.
933         * configure: Regenerate.
934
935 2008-06-10  Tom Tromey  <tromey@redhat.com>
936
937         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
938         debug hook.
939
940 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
941
942         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
943         (encode_decimal64, decode_decimal64, encode_decimal128,
944         decode_decimal128): Reverse order of 32-bit parts of value if host
945         and target endianness differ.
946
947 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
948
949         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
950         Avoid division by 0.
951         (tree_mod_pow2_value_transform): Likewise.
952         (tree_ic_transform): Likewise.
953         (tree_stringops_transform): Likewise.
954         (tree_mod_subtract_transform): Likewise.
955         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
956         (copy_edges_for_bb): Likewise.
957         (initialize_cfun): Likewise.
958
959 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
960
961         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
962         nonmemory_operand. Add "N" operand constraint.
963         (*btsi): Ditto.
964         (*jcc_btdi_mask_rex64): New instruction and split pattern.
965         (*jcc_btsi_mask): Ditto.
966         (*jcc_btsi_mask_1): Ditto.
967
968 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
969
970         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
971         TYPE_CANONICAL for copied element type.
972
973 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
974
975         PR target/36473
976         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
977         Add m_CORE2 and m_GENERIC.
978         * config/i386/predicates.md (bt_comparison_operator): New predicate.
979         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
980         (*btsi): Ditto.
981         (*jcc_btdi_rex64): New instruction and split pattern.
982         (*jcc_btsi): Ditto.
983         (*jcc_btsi_1): Ditto.
984         (*btsq): Fix Intel asm dialect operand order.
985         (*btrq): Ditto.
986         (*btcq): Ditto.
987
988 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
989
990         PR middle-end/36447
991         * simplify-rtx.c (simplify_subreg): Add check for shift count 
992         greater than size.
993
994 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
995
996         * doc/md.texi: Synchronize with later constraints.md change.
997         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
998         with a C implementation.
999         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1000         MFLO handling.
1001         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1002         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1003         when moving to and from MD_REGNUM.
1004         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1005         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1006         Handle byte and halfword moves.
1007         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1008         separately.
1009         * config/mips/constraints.md (h): Turn into NO_REGS.
1010         (l, x): Update documentation.
1011         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1012         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1013         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1014         (HILO): New mode iterator.
1015         (MOVE128): Add TI.
1016         (any_div): New code iterator.
1017         (u): Extend code attribute to div and udiv.
1018         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1019         d_operand in the splitters.  Remove redundant CONST_INT checks.
1020         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1021         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1022         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1023         accordingly, using normal moves instead of unspecs to move LO into
1024         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1025         (<u>mulsidi3): Handle expansion in C code.
1026         (<u>mulsidi3_32bit_internal): Rename to...
1027         (<u>mulsidi3_32bit): ...this.
1028         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1029         (*<u>mulsidi3_64bit): Rename to...
1030         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1031         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1032         to set LO and HI to the multiplication result.  Use a normal move
1033         for MFLO and an unspec for MFHI.
1034         (*<u>mulsidi3_64bit_parts): Replace with...
1035         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1036         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1037         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1038         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1039         instead of HI.  Split the instruction into a separate multiplication
1040         and MFHI if !TARGET_FIX_R4000.
1041         (<su>muldi3_highpart): Likewise.
1042         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1043         and the "=h" clobber.
1044         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1045         (<u>mulditi3): New expander.
1046         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1047         (madsi): Remove "=h" clobber.
1048         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1049         Force the modulus result to be a GPR and split the instruction into
1050         a division followed by an MFHI after reload.
1051         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1052         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1053         the MIPS16 HIGH define_split.
1054         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1055         of acc<->gpr moves to "multi".
1056         (*movdi_64bit): Replace the single "x" alternative with
1057         alternatives for moving into and out of "a".
1058         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1059         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1060         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1061         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1062         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1063         (movti): New expander.
1064         (*movti, *movti_mips16): New insns.
1065         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1066         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1067         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1068         * config/mips/predicates.md (fpr_operand): Delete.
1069         (d_operand): New predicate.
1070
1071 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1072
1073         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1074         failure on some Bourne shells.
1075         (x86_64-*-*): Ditto.
1076
1077 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1078
1079         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1080
1081 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1082
1083         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1084         (sparc-sun-solaris2*): Likewise.
1085
1086 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1087
1088         * doc/install.texi: Update requirements to build the Ada compiler.
1089
1090 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1091
1092         * df-scan.c (struct df_scan_problem_data): Remove the
1093         mw_link_pool alloc pool.
1094         (df_scan_free_internal): Don't free it.
1095         (df_scan_alloc): Don't allocate it.
1096         * df.h (struct df_link): Update comment.
1097
1098 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1099
1100         * except.h: Correct checks for when SJLJ exceptions must be used.
1101
1102 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1103
1104         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1105         default.
1106         
1107 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1108
1109         PR tree-optimization/36218
1110         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1111         configure for the build system.
1112         (BUILD_LDFLAGS): Define.
1113         * configure: Regenerate.
1114         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1115
1116 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1117
1118         PR target/36424
1119         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1120         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1121         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1122
1123 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1124
1125         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1126
1127 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1128
1129         * config.gcc (Obsolete configurations): Remove list of
1130         configurations.
1131         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1132         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1133         targets matched by those patterns.
1134         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1135         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1136         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1137         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1138         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1139         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1140         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1141         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1142         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1143         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1144         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1145         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1146         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1147         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1148         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1149         Make code for Solaris 7 and greater unconditional for Solaris.
1150         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1151         Remove --with-* handling.
1152         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1153         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1154         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1155         LINK_OS_WINDISS_SPEC): Remove.
1156         * config/rs6000/sysv4.opt (mwindiss): Remove.
1157         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1158         * configure: Regenerate.
1159         * doc/cpp.texi: Don't mention BeOS.
1160         * doc/extend.texi (interrupt): Don't mention MS1.
1161         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1162         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1163         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1164         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1165         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1166         Remove.
1167         * doc/invoke.texi (MT Options): Remove.
1168         (-mwindiss): Remove.
1169         (CRIS Options): Remove cris-axis-aout references.
1170         (HPPA Options): Don't mention hppa1.1-*-pro.
1171         * doc/md.texi: (MorphoTech family): Remove.
1172         * libgcc2.c: Don't handle UWIN.
1173         * config/alpha/t-unicosmk: Remove.
1174         * config/alpha/unicosmk.h: Remove.
1175         * config/arm/kaos-arm.h: Remove.
1176         * config/arm/kaos-strongarm.h: Remove.
1177         * config/arm/strongarm-coff.h: Remove.
1178         * config/arm/strongarm-elf.h: Remove.
1179         * config/arm/strongarm-pe.h: Remove.
1180         * config/arm/t-strongarm-pe: Remove.
1181         * config/arm/t-xscale-coff: Remove.
1182         * config/arm/t-xscale-elf: Remove.
1183         * config/arm/xscale-coff.h: Remove.
1184         * config/arm/xscale-elf.h: Remove.
1185         * config/chorus.h: Remove.
1186         * config/cris/aout.h: Remove.
1187         * config/cris/aout.opt: Remove.
1188         * config/cris/t-aout: Remove.
1189         * config/i386/beos-elf.h: Remove.
1190         * config/i386/kaos-i386.h: Remove.
1191         * config/i386/ptx4-i.h: Remove.
1192         * config/i386/sco5.h: Remove.
1193         * config/i386/sco5.opt: Remove.
1194         * config/i386/sysv4-cpp.h: Remove.
1195         * config/i386/sysv5.h: Remove.
1196         * config/i386/t-beos: Remove.
1197         * config/i386/t-sco5: Remove.
1198         * config/i386/t-uwin: Remove.
1199         * config/i386/uwin.asm: Remove.
1200         * config/i386/uwin.h: Remove.
1201         * config/kaos.h: Remove.
1202         * config/mips/windiss.h: Remove.
1203         * config/mt: Remove directory.
1204         * config/pa/pa-osf.h: Remove.
1205         * config/pa/pa-pro-end.h: Remove.
1206         * config/pa/t-pro: Remove.
1207         * config/ptx4.h: Remove.
1208         * config/rs6000/beos.h: Remove.
1209         * config/rs6000/kaos-ppc.h: Remove.
1210         * config/rs6000/t-beos: Remove.
1211         * config/rs6000/windiss.h: Remove.
1212         * config/sh/kaos-sh.h: Remove.
1213         * config/sol2-6.h: Remove.
1214         * config/sparc/sol26-sld.h: Remove.
1215         * config/sparc/sysv4-only.h: Remove.
1216         * config/vax/bsd.h: Remove.
1217         * config/vax/t-memfuncs: Remove.
1218         * config/vax/ultrix.h: Remove.
1219         * config/vax/vaxv.h: Remove.
1220         * config/windiss.h: Remove.
1221
1222 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1223
1224         PR rtl-optimization/36438
1225         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1226         for vector shifts with constant scalar shift operands.
1227
1228 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1229
1230         * doc/invoke.texi: Document -march=xlr.
1231         * config/mips/xlr.md: New file.
1232         * config/mips/mips.md: Include it.
1233         (cpu): Add "xlr".
1234         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1235         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1236         (mips_rtx_cost_data): Likewise.
1237
1238 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1239
1240         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1241         PRE_INC and PRE_DEC cases.
1242
1243 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1244
1245         PR rtl-optimization/36419
1246         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1247         the emitting jump insn.
1248
1249         PR target/36362
1250         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1251         is not bool, boolify the whole *expr_p and convert to the desired type.
1252
1253 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1254
1255         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1256         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1257         Add omp_private_outer_ref hook, add another argument to
1258         omp_clause_default_ctor hook.
1259         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1260         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1261         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1262         hook_tree_tree_tree_tree_null.
1263         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1264         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1265         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1266         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1267         * tree.def (OMP_TASK): New tree code.
1268         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1269         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1270         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1271         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1272         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1273         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1274         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1275         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1276         (OMP_DIRECTIVE_P): Add OMP_TASK.
1277         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1278         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1279         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1280         and OMP_CLAUSE_UNTIED entries.
1281         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1282         num_ops to 2.
1283         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1284         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1285         * tree-pretty-print.c (dump_omp_clause): Handle
1286         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1287         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1288         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1289         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1290         warning about unsigned iterators.  Change decl/init/cond/incr
1291         arguments to TREE_VECs, check arguments for all collapsed loops.
1292         (c_finish_omp_taskwait): New function.
1293         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1294         ws_clauses.
1295         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1296         default_function_array_conversion on init.  Add par_clauses argument.
1297         If decl is present in parallel's lastprivate clause, change it to
1298         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1299         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1300         collapse count in clauses.
1301         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1302         c_parser_omp_for_loop callers.
1303         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1304         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1305         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1306         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1307         functions.
1308         (c_parser_omp_clause_schedule): Handle schedule(auto).
1309         Include correct location in the error message.
1310         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1311         and PRAGMA_OMP_CLAUSE_UNTIED.
1312         (OMP_TASK_CLAUSE_MASK): Define.
1313         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1314         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1315         * tree-nested.c (convert_nonlocal_omp_clauses,
1316         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1317         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1318         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1319         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1320         OMP_CLAUSE_DECL.
1321         (conver_nonlocal_reference, convert_local_reference,
1322         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1323         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1324         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1325         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1326         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1327         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1328         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1329         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1330         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1331         OMP_CLAUSE_UNTIED.
1332         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1333         * c-common.h (c_finish_omp_taskwait): New prototype.
1334         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1335         * tree-parloops.c (create_parallel_loop): Create 1 entry
1336         vectors for OMP_FOR_{INIT,COND,INCR}.
1337         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1338         (make_edges): Handle OMP_TASK.
1339         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1340         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1341         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1342         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1343         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1344         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1345         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1346         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1347         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1348         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1349         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1350         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1351         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1352         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1353         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1354         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1355         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1356         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1357         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1358         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1359         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1360         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1361         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1362         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1363         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1364         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1365         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1366         original iterator is present in lastprivate clause or if
1367         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1368         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1369         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1370         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1371         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1372         if it is set, lookup var in outer contexts too.  Handle
1373         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1374         to be implicitly determined firstprivate for task regions.
1375         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1376         if it is set, lookup var in outer contexts too.  Set
1377         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1378         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1379         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1380         instead of in_parallel and in_combined_parallel.
1381         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1382         Adjust callers.
1383         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1384         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1385         (new_omp_context): Set default_kind to
1386         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1387         (omp_region_type): New enum.
1388         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1389         fields, add region_type.
1390         (new_omp_context): Take region_type as argument instead of is_parallel
1391         and is_combined_parallel.
1392         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1393         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1394         ctx->is_combined_parallel checks.
1395         (gimplify_omp_task): New function.
1396         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1397         OMP_CLAUSE_UNTIED.
1398         * omp-low.c (extract_omp_for_data): Use schedule(static)
1399         for schedule(auto).  Handle pointer and unsigned iterators.
1400         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1401         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1402         (expand_parallel_call): Assert sched_kind isn't auto,
1403         map runtime schedule to index 3.
1404         (struct omp_for_data_loop): New type.
1405         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1406         Add loop, loops, collapse and iter_type fields.
1407         (workshare_safe_to_combine_p): Disallow combined for if
1408         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1409         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1410         caller.
1411         (expand_omp_for_generic): Handle pointer, unsigned and long long
1412         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1413         for struct omp_for_data changes.  If libgomp function doesn't return
1414         boolean_type_node, add comparison of the return value with 0.
1415         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1416         pointer, unsigned and long long iterators.  Adjust for struct
1417         omp_for_data changes.
1418         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1419         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1420         unsigned long long.  Allocate loops array, pass it to
1421         extract_omp_for_data.  For collapse > 1 loops use always
1422         expand_omp_for_generic.
1423         (omp_context): Add sfield_map and srecord_type fields.
1424         (is_task_ctx, lookup_sfield): New functions.
1425         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1426         argument's type from const_tree to tree.  Clarify comment.
1427         In OMP_TASK disallow copy-in/out sharing.
1428         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1429         (install_var_field): Add mask argument.  Populate both record_type
1430         and srecord_type if needed.
1431         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1432         in srecord_type.
1433         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1434         and DECL_FIELD_OFFSET.
1435         (scan_sharing_clauses): Adjust install_var_field callers.  For
1436         firstprivate clauses on explicit tasks allocate the var by value in
1437         record_type unconditionally, rather than by reference.
1438         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1439         Use is_taskreg_ctx instead of is_parallel_ctx.
1440         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1441         (create_omp_child_function_name): Add task_copy argument, use
1442         *_omp_cpyfn* names if it is true.
1443         (create_omp_child_function): Add task_copy argument, if true create
1444         *_omp_cpyfn* helper function.
1445         (scan_omp_parallel): Adjust create_omp_child_function callers.
1446         Rename parallel_nesting_level to taskreg_nesting_level.
1447         (scan_omp_task): New function.
1448         (lower_rec_input_clauses): Don't run constructors for firstprivate
1449         explicit task vars which are initialized by *_omp_cpyfn*.  
1450         Pass outer var ref to omp_clause_default_ctor hook if
1451         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1452         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1453         OMP_CLAUSE_REDUCTION_INIT.
1454         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1455         avoid duplicate setting of fields.  Handle
1456         OMP_CLAUSE_PRIVATE_OUTER_REF.
1457         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1458         copy-out if TREE_READONLY, only copy-in.
1459         (expand_task_copyfn): New function.
1460         (expand_task_call): New function.
1461         (struct omp_taskcopy_context): New type.
1462         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1463         New functions.
1464         (lower_omp_parallel): Rename to...
1465         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1466         Call create_task_copyfn if srecord_type is needed.  Adjust
1467         sender_decl type.
1468         (task_shared_vars): New variable.
1469         (check_omp_nesting_restrictions): Warn if work-sharing,
1470         barrier, master or ordered region is closely nested inside OMP_TASK.
1471         Add warnings for barrier if closely nested inside of work-sharing,
1472         ordered, or master region.
1473         (scan_omp_1): Call check_omp_nesting_restrictions even for
1474         GOMP_barrier calls.  Rename parallel_nesting_level to
1475         taskreg_nesting_level.  Handle OMP_TASK.
1476         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1477         work-sharing construct, continue looking for them on parent parallel
1478         construct.
1479         (lower_omp_for_lastprivate): Add lastprivate clauses
1480         to the beginning of dlist rather than end.  Adjust for struct
1481         omp_for_data changes.
1482         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1483         not after it.  Handle collapsed OMP_FOR loops, adjust for
1484         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1485         (get_ws_args_for): Adjust extract_omp_for_data caller.
1486         (scan_omp_for): Handle collapsed OMP_FOR
1487         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1488         (lower_omp_single_simple): If libgomp function doesn't return
1489         boolean_type_node, add comparison of the return value with 0.
1490         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1491         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1492         (parallel_nesting_level): Rename to...
1493         (taskreg_nesting_level): ... this.
1494         (is_taskreg_ctx): New function.
1495         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1496         of is_parallel_ctx.
1497         (execute_lower_omp): Rename parallel_nesting_level to
1498         taskreg_nesting_level.
1499         (expand_omp_parallel): Rename to...
1500         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1501         Call omp_task_call for OMP_TASK regions.
1502         (expand_omp): Adjust caller, handle OMP_TASK.
1503         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1504
1505         * bitmap.c (bitmap_default_obstack_depth): New variable.
1506         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1507         if argument is NULL and bitmap_default_obstack is already initialized.
1508         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1509         at the end.
1510         * matrix-reorg.c (matrix_reorg): Likewise.
1511
1512 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1513
1514         * config/i386/i386.md (*indirect_jump): Macroize using P
1515         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1516         (*tablejump_1): Ditto.
1517         (*indirect_jump_rex64): Remove insn pattern.
1518         (*tablejump_1_rex64): Ditto.
1519         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1520         and eh_return_si insn patterns.
1521
1522 2008-06-06  Richard Guenther  <rguenther@suse.de>
1523
1524         * tree-ssa-structalias.c (merge_smts_into): Remove.
1525         (find_what_p_points_to): Do not bother to compute the
1526         points-to set for pt_anything pointers.
1527         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1528         for pt_anything pointers is ok.
1529
1530 2008-06-06  Jan Hubicka  <jh@suse.cz>
1531
1532         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1533
1534 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1535
1536         * cgraph.c: Fix typos in comments.
1537         (cgraph_availability_names): Fix string typo.
1538         * fold-const.c: Fix typos in comments.
1539         (fold_binary): Fix typo in warning.
1540         * genautomata.c: Fix typos in comments.
1541         (check_presence_pattern_sets): Fix typo in local variable.
1542         (output_description): Fix typo in output.
1543         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1544         * hwint.h: Likewise.
1545         * matrix-reorg.c (check_allocation_function): Likewise.
1546         * omega.c (smooth_weird_equations): Likewise.
1547         * auto-inc-dec.c: Fix typos in comments.
1548         * bb-reorder.c: Likewise.
1549         * builtins.c: Likewise.
1550         * c-common.c: Likewise.
1551         * c-cppbuiltin.c: Likewise.
1552         * c-parser.c: Likewise.
1553         * c-pretty-print.c: Likewise.
1554         * cfgcleanup.c: Likewise.
1555         * cfgexpand.c: Likewise.
1556         * cfghooks.c: Likewise.
1557         * cfglayout.c: Likewise.
1558         * cfgloopmanip.c: Likewise.
1559         * cgraphunit.c: Likewise.
1560         * coverage.c: Likewise.
1561         * dbxout.c: Likewise.
1562         * df-byte-scan.c: Likewise.
1563         * df-core.c: Likewise.
1564         * df-problems.c: Likewise.
1565         * df-scan.c: Likewise.
1566         * dfp.c: Likewise.
1567         * dominance.c: Likewise.
1568         * domwalk.c: Likewise.
1569         * dse.c: Likewise.
1570         * dwarf2out.c: Likewise.
1571         * emit-rtl.c: Likewise.
1572         * et-forest.c: Likewise.
1573         * function.c: Likewise.
1574         * function.h: Likewise.
1575         * gcc.c: Likewise.
1576         * gcov-io.c: Likewise.
1577         * gcov.c: Likewise.
1578         * gcse.c: Likewise.
1579         * genattrtab.c: Likewise.
1580         * ggc-page.c: Likewise.
1581         * gimplify.c: Likewise.
1582         * gthr-lynx.h: Likewise.
1583         * haifa-sched.c: Likewise.
1584         * ipa-cp.c: Likewise.
1585         * ipa-inline.c: Likewise.
1586         * ipa-prop.h: Likewise.
1587         * ipa-pure-const.c: Likewise.
1588         * ipa-struct-reorg.c: Likewise.
1589         * ipa-struct-reorg.h: Likewise.
1590         * ipa-type-escape.c: Likewise.
1591         * ipa.c: Likewise.
1592         * loop-doloop.c: Likewise.
1593         * mips-tfile.c: Likewise.
1594         * mkmap-flat.awk: Likewise.
1595         * mkmap-symver.awk: Likewise.
1596         * modulo-sched.c: Likewise.
1597         * omp-low.c: Likewise.
1598         * optabs.c: Likewise.
1599         * optabs.h: Likewise.
1600         * opts.c: Likewise.
1601         * passes.c: Likewise.
1602         * postreload-gcse.c: Likewise.
1603         * postreload.c: Likewise.
1604         * predict.c: Likewise.
1605         * pretty-print.h: Likewise.
1606         * profile.c: Likewise.
1607         * protoize.c: Likewise.
1608         * ra-conflict.c: Likewise.
1609         * real.c: Likewise.
1610         * recog.c: Likewise.
1611         * regclass.c: Likewise.
1612         * regs.h: Likewise.
1613         * reload.c: Likewise.
1614         * rtl-error.c: Likewise.
1615         * rtlanal.c: Likewise.
1616         * scan.h: Likewise.
1617         * sched-rgn.c: Likewise.
1618         * see.c: Likewise.
1619         * stmt.c: Likewise.
1620         * target.h: Likewise.
1621         * tree-dfa.c: Likewise.
1622         * tree-eh.c: Likewise.
1623         * tree-flow-inline.h: Likewise.
1624         * tree-inline.c: Likewise.
1625         * tree-into-ssa.c: Likewise.
1626         * tree-loop-distribution.c: Likewise.
1627         * tree-nested.c: Likewise.
1628         * tree-parloops.c: Likewise.
1629         * tree-pass.h: Likewise.
1630         * tree-pretty-print.c: Likewise.
1631         * tree-profile.c: Likewise.
1632         * tree-scalar-evolution.c: Likewise.
1633         * tree-sra.c: Likewise.
1634         * tree-ssa-alias-warnings.c: Likewise.
1635         * tree-ssa-ccp.c: Likewise.
1636         * tree-ssa-coalesce.c: Likewise.
1637         * tree-ssa-dom.c: Likewise.
1638         * tree-ssa-dse.c: Likewise.
1639         * tree-ssa-forwprop.c: Likewise.
1640         * tree-ssa-live.c: Likewise.
1641         * tree-ssa-live.h: Likewise.
1642         * tree-ssa-loop-im.c: Likewise.
1643         * tree-ssa-loop-ivopts.c: Likewise.
1644         * tree-ssa-loop-niter.c: Likewise.
1645         * tree-ssa-loop-prefetch.c: Likewise.
1646         * tree-ssa-phiopt.c: Likewise.
1647         * tree-ssa-phiprop.c: Likewise.
1648         * tree-ssa-sccvn.c: Likewise.
1649         * tree-ssa-ter.c: Likewise.
1650         * tree-ssa-threadupdate.c: Likewise.
1651         * tree-ssa.c: Likewise.
1652         * tree-vect-analyze.c: Likewise.
1653         * tree-vect-transform.c: Likewise.
1654         * tree-vectorizer.c: Likewise.
1655         * tree-vn.c: Likewise.
1656         * tree-vrp.c: Likewise.
1657         * tree.c: Likewise.
1658         * tree.def: Likewise.
1659         * tree.h: Likewise.
1660         * unwind-dw2-fde.c: Likewise.
1661         * unwind.inc: Likewise.
1662         * value-prof.c: Likewise.
1663         * vmsdbgout.c: Likewise.
1664
1665 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1666
1667         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1668         always place FP constants in the TOC for TARGET_POWERPC64.
1669         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1670
1671 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1672
1673         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1674         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1675         enable for TARGET_E500_DOUBLE.
1676         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1677         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1678         floating-point modes like integer modes for E500 double.
1679         (rs6000_legitimate_offset_address_p): Likewise.
1680         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1681         addressing for DDmode for E500 double.
1682         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1683         modes as using 64-bits of registers for E500 double.
1684         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1685         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1686         specially for E500 double.
1687         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1688         TDmode for E500 double.
1689         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1690         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1691         (rs6000_split_multireg_move): Do not handle TDmode specially for
1692         E500 double.
1693         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1694         using 64-bit registers for E500 double.
1695         (emit_frame_save): Do not handle DDmode specially for E500 double.
1696         (gen_frame_mem_offset): Likewise.
1697         (rs6000_function_value): Do not call spe_build_register_parallel
1698         for DDmode or TDmode.
1699         (rs6000_libcall_value): Likewise.
1700         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1701         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1702         for E500 double.
1703
1704 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1705
1706         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1707         in comments.
1708
1709 2008-06-04  Junjie Gu <jgu@tensilica.com>
1710
1711         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1712         comparison for frame pointers.
1713
1714 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1715
1716         PR target/27386
1717         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1718
1719 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1720
1721         PR target/30243
1722         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1723         register is already smaller or equal to required mode. 
1724
1725 2008-06-04  Xinliang David Li  <davidxl@google.com>
1726
1727         * tree-call-cdce.c: New file. 
1728         (cond_dead_built_in_calls): New static variable.
1729         (input_domain): New struct.
1730         (check_pow): New function.
1731         (check_builtin_call): Ditto.
1732         (check_target_format): Ditto.
1733         (is_call_dce_candidate): Ditto.
1734         (gen_one_condition): Ditto.
1735         (gen_conditions_for_domain): Ditto.
1736         (get_domain): Ditto.
1737         (gen_conditions_for_pow_cst_base): Ditto.
1738         (gen_conditions_for_pow_int_base): Ditto.
1739         (gen_conditions_for_pow): Ditto.
1740         (get_no_error_domain): Ditto.
1741         (gen_shrink_wrap_conditions): Ditto.
1742         (shrink_wrap_one_built_in_call): Ditto.
1743         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1744         (tree_call_cdce): Ditto.
1745         (gate_call_cdce): Ditto.
1746         (pass_call_cdce): New gimple pass.
1747         * passes.c: (init_optimization_passes): New pass.
1748         * tree-pass.h: New pass declaration.
1749         * opts.c (decode_options): New flag setting.
1750         * common.opt: Add -ftree-builtin-call-dce flag.
1751         * Makefile.in: Add new source file.
1752         * tempvar.def: New tv_id.
1753         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1754
1755 2008-06-04  Richard Guenther  <rguenther@suse.de>
1756
1757         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1758         (is_call_clobbered): Always check var_ann->call_clobbered.
1759         (mark_call_clobbered): Always set var_ann->call_clobbered.
1760         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1761         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1762         (reset_alias_info): Clear call clobbering info on MTAGs and
1763         globals as well.
1764         (set_pt_anything): Set pt_global_mem.
1765         (create_tag_raw): Adjust comment.
1766         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1767
1768 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1769             Maxim Kuvyrkov  <maxim@codesourcery.com>
1770
1771         * config/m68k/m68k.opt (mxgot): New option.
1772         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1773         (m68k_output_addr_const_extra): New.
1774         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1775         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1776         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1777         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1778
1779 2008-06-04  Richard Guenther  <rguenther@suse.de>
1780
1781         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1782         negative or non-representable offsets.
1783
1784 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1785
1786         * config/i386/i386.c (ix86_gen_leave): New.
1787         (ix86_gen_pop1): Likewise.
1788         (ix86_gen_add3): Likewise.
1789         (ix86_gen_sub3): Likewise.
1790         (ix86_gen_sub3_carry): Likewise.
1791         (ix86_gen_one_cmpl2): Likewise.
1792         (ix86_gen_monitor): Likewise.
1793         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1794         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1795         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1796         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1797         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1798         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1799         (ix86_expand_epilogue): Updated.
1800         (print_operand): Handle integer register operand for 'z'.
1801         (ix86_expand_strlensi_unroll_1): Likewise.
1802         (ix86_expand_strlen): Likewise.
1803         (ix86_expand_builtin): Likewise.
1804         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1805         mov{q}/mov{l} and add{q}/add{l}.
1806
1807 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1808
1809         * config/i386/i386.md (P): New mode iterator.
1810         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1811         using P mode iterator.
1812         (DFmode push_operand splitter): Ditto.
1813         (XFmode push_operand splitter): Ditto.
1814         (DFmode float_extend SFmode push_operand splitter): Ditto.
1815         (XFmode float_extend SFmode push_operand splitter): Do not generate
1816         SImode pushes for 64bit target.  Macroize Dimode and SImode
1817         pushes using P mode iterator.
1818         (XFmode float_extend DFmode push_operand splitter): Ditto.
1819
1820 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1821
1822         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1823         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1824         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1825         return type to int.
1826         (ix86_call_abi_override): Remove check for call_used_regs.
1827
1828 2008-06-03  Richard Guenther  <rguenther@suse.de>
1829
1830         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1831         for the lhs of calls if the return type contains pointers.
1832
1833 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1834
1835         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1836         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1837         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1838         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1839         of cfun and DEFAULT_ABI to deceide abi mode.
1840         (DEFAULT_ABI): New.
1841         (REG_PARM_STACK_SPACE): Removed.
1842         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1843         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1844         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1845         (ix86_function_abi): Likewise.
1846         (ix86_function_type_abi): Likewise.
1847         (ix86_call_abi_override): Likewise.
1848         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1849         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1850         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1851         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1852         specific defines.
1853         (X86_64_REGPARM_MAX): New.
1854         (X86_64_SSE_REGPARM_MAX): New.
1855         (X64_REGPARM_MAX): New.
1856         (X64_SSE_REGPARM_MAX): New.
1857         (X86_32_REGPARM_MAX): New.
1858         (X86_32_SSE_REGPARM_MAX): New.
1859         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1860         (ix86_function_regparm): Handle user calling abi.
1861         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1862         by DEFAULT_ABI versus SYSV_ABI check.
1863         (ix86_reg_parm_stack_space): New.
1864         (ix86_function_type_abi): New.
1865         (ix86_call_abi_override): New.
1866         (ix86_function_abi): New.
1867         (ix86_cfun_abi): New.
1868         (init_cumulative_args): Call abi specific initialization.
1869         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1870         (function_arg_64): Extend SSE_REGPARM_MAX check.
1871         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1872         (ix86_pass_by_reference): Likewise.
1873         (ix86_function_value_regno_p): Likewise.
1874         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1875         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1876         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1877         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1878         (setup_incoming_varargs_64): Adjust regparm for call abi.
1879         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1880         (ix86_va_start): Likewise.
1881         (ix86_gimplify_va_arg): Likewise.
1882         (ix86_expand_prologue): Likewise.
1883         (output_pic_addr_const): Likewise.
1884         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1885         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1886         (x86_output_mi_thunk): Likewise.
1887         (x86_function_profiler): Likewise.
1888         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1889         (SYSV_ABI, MS_ABI): New constants.
1890         (DEFAULT_ABI): New.
1891         (init_regs): Add prototype of function in regclass.c file.
1892         (OVERRIDE_ABI_FORMAT): New.
1893         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1894         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1895         (OUTGOING_REG_PARM_STACK_SPACE): New.
1896         (ix86_reg_parm_stack_space): New prototype.
1897         (CUMULATIVE_ARGS): Add call_abi member.
1898         (machine_function): Add call_abi member.
1899         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1900         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1901
1902 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1903
1904         PR target/34879
1905         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1906         (avr_builtin_setjmp_frame_value): New function.
1907         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1908         (nonlocal_goto): Define.
1909
1910 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1911
1912         * config/mips/mips.c (mips_emit_loadgp): Return early if
1913         there is nothing do to, otherwise emit a blockage if
1914         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1915         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1916
1917 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1918
1919         * configure.ac: Drop unneeded backslash ending up in config.in.
1920         * acinclude.m4: Likewise.
1921         * config.in: Regenerate.
1922
1923 2008-05-26  Jan Hubicka  <jh@suse.cz>
1924
1925         * predict.c (maybe_hot_frequency_p): Break out of...
1926         (maybe_hot_bb_p): ... here.
1927         (maybe_hot_edge_p): New.
1928         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1929         * basic-block.h (maybe_hot_edge_p): Declare.
1930
1931 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1932
1933         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1934         (*cmpfp_<mode>_cc): Ditto.
1935         (*fp_jcc_8<mode>_387): Ditto.
1936         (*fop_<MODEF:mode>_2_i387): Ditto.
1937         (*fop_<MODEF:mode>_3_i387): Ditto.
1938         (*fop_xf_2_i387): Ditto.
1939         (*fop_xf_3_i387): Ditto.
1940
1941 2008-06-02  Tomas Bily  <tbily@suse.cz>
1942
1943         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1944
1945 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1946
1947         * config/mips/mips.c (mips_valid_offset_p): New function.
1948         (mips_valid_lo_sum_p): Likewise.
1949         (mips_classify_address): Use them.
1950         (mips_force_address): New function.
1951         (mips_legitimize_address): Use it.
1952         * config/mips/mips.md (MOVE128): New mode iterator.
1953         (movtf): Require TARGET_64BIT.  Remove empty strings.
1954         (*movtf_internal): Rename to...
1955         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1956         of "R" and use {,fp}{load,store} attributes instead of "multi".
1957         Use a separate define_split.
1958         (*movtf_mips16): New pattern.
1959
1960 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1961
1962         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1963         * config/mips/mips.c (mips_expand_before_return): New function.
1964         (mips_expand_epilogue): Call it.
1965         * config/mips/mips.md (return): Turn into a define_expand.
1966         (*return): New insn.
1967
1968 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1969
1970         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1971         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1972         functions.  Do not emit uses and clobbers of CONCATs; individually
1973         use and clobber their operands.
1974         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1975         gen_clobber, emit_use and gen_use.
1976         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1977         (expand_builtin_return): Likewise.
1978         * cfgbuild.c (count_basic_blocks): Likewise.
1979         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1980         * explow.c (emit_stack_restore): Likewise.
1981         * expmed.c (extract_bit_field_1): Likewise.
1982         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1983         (emit_move_multi_word, store_constructor): Likewise.
1984         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1985         (thread_prologue_and_epilogue_insns): Likewise.
1986         * lower-subreg.c (resolve_simple_move): Likewise.
1987         * optabs.c (widen_operand, expand_binop): Likewise.
1988         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1989         * reload.c (find_reloads): Likewise.
1990         * reload1.c (eliminate_regs_in_insn): Likewise.
1991         * stmt.c (expand_nl_goto_receiver): Likewise.
1992         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1993         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1994         * config/arm/arm.c (arm_load_pic_register): Likewise.
1995         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1996         * config/arm/arm.md (untyped_return): Likewise.
1997         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1998         * config/avr/avr.c (expand_prologue): Likewise.
1999         * config/bfin/bfin.c (do_unlink): Likewise.
2000         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2001         * config/cris/cris.c (cris_expand_prologue): Likewise.
2002         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2003         (machopic_legitimize_pic_address): Likewise.
2004         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2005         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2006         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2007         (ix86_expand_convert_uns_didf_sse): Likewise.
2008         (ix86_expand_vector_init_general): Likewise.
2009         * config/ia64/ia64.md (eh_epilogue): Likewise.
2010         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2011         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2012         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2013         (config/iq2000/iq2000.c): Likewise.
2014         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2015         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2016         (builtin_longjmp): Likewise.
2017         * config/mn10300/mn10300.md (call, call_value): Likewise.
2018         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2019         * config/pdp11/pdp11.md (abshi2): Likewise.
2020         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2021         * config/s390/s390.c (s390_emit_prologue): Likewise.
2022         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2023         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2024         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2025         * config/sh/sh.c (prepare_move_operands): Likewise.
2026         (output_stack_adjust, sh_expand_epilogue): Likewise.
2027         (sh_set_return_address, sh_expand_t_scc): Likewise.
2028         * config/sparc/sparc.c (load_pic_register): Likewise.
2029         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2030         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2031         * config/v850/v850.c (expand_epilogue): Likewise.
2032
2033 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2034
2035         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2036         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2037         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2038         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2039         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2040         stack pointer register.
2041         (output_movhi): Remove code for interrupt specific writing to the 
2042         stack pointer register.
2043
2044 2008-05-31  Richard Guenther  <rguenther@suse.de>
2045
2046         PR tree-optimization/34244
2047         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2048         (tree_expr_nonzero_warnv_p): Likewise.
2049         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2050         ssa_name_nonnegative_p.
2051         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2052         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2053         not tree_expr_nonzero_warnv_p.
2054
2055         PR tree-optimization/36262
2056         Revert
2057         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2058
2059         PR tree-optimization/34244
2060         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2061         (record_numbers_of_iterations): New function.
2062         (execute_vrp): Cache the numbers of iterations of loops.
2063         * tree-scalar-evolution.c (scev_reset_except_niters):
2064         New function.
2065         (scev_reset): Use scev_reset_except_niters.
2066         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2067
2068 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2069
2070         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2071         __WORKAROUND_RETS when appropriate.
2072
2073 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2074
2075         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2076         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2077         mode iterator.
2078         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2079         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2080         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2081         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2082         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2083         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2084         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2085         *fop_df_1_sse insn patterns using MODEF mode iterator.
2086         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2087         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2088         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2089         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2090         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2091         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2092         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2093         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2094         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2095         (*fop_xf_5_i387): Ditto.
2096         (*fop_xf_6_i387): Ditto.
2097
2098 2008-05-30  Richard Guenther  <rguenther@suse.de>
2099
2100         * builtins.c (build_string_literal): Avoid generating
2101         a non-gimple_val result.
2102
2103 2008-05-30  DJ Delorie  <dj@redhat.com>
2104
2105         * exec-tool.in: Use an environment variable (private) instead of a
2106         file (shared) as a semaphore, so as to not break parallel builds.
2107
2108 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2109
2110         * optabs.c (maybe_encapsulate_block): Remove.
2111         (emit_libcall_block): Adjust accordingly.
2112         * optabs.h (maybe_encapsulate_block): Remove prototype.
2113
2114         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2115         Don't use maybe_encapsulate_block.
2116
2117 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2118
2119         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2120         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2121         rtx is a SYMBOL_REF before calling get_pool_constant.
2122
2123 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2124
2125         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2126
2127 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2128
2129         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2130         rather than OS names to choose INO_T_EQ definition.
2131         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2132         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2133
2134 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2135
2136         PR target/36348
2137         * config/darwin-f.c: New.
2138         * config/t-darwin: Added rule to build darwin-f.o.
2139         * config.gcc: Defined new variable, fortran_target_objs.
2140         (*-*-darwin*): Set fortran_target_objs.
2141         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2142         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2143         * configure: Regenerated.
2144
2145 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2146
2147         PR target/35771
2148         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2149         canonical type if needed.
2150
2151 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2152
2153         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2154
2155 2008-05-29  Richard Guenther  <rguenther@suse.de>
2156
2157         PR tree-optimization/36343
2158         PR tree-optimization/36346
2159         PR tree-optimization/36347
2160         * tree-flow.h (clobber_what_p_points_to): Declare.
2161         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2162         pointed-to variable is dereferenced is irrelevant to whether
2163         the pointer can access the pointed-to variable.
2164         (clobber_what_p_points_to): New function.
2165         * tree-ssa-alias.c (set_initial_properties): Use it.
2166         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2167         call clobber check for NMTs.
2168
2169 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2170         
2171         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2172         for printing gcov_type.
2173
2174 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2175
2176         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2177         and the eh region information.
2178         * value-prof.c (gimple_move_stmt_histograms): New function.
2179         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2180
2181 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2182
2183         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2184
2185 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2186
2187         * value-prof.c (tree_ic_transform): Print counts.
2188         * tree-profile.c (tree_gen_ic_func_profiler):
2189         Clear __gcov_indreict_call_callee variable to avoid misattribution
2190         of the profile.
2191
2192 2008-05-28  Rafael Espindola  <espindola@google.com>
2193
2194         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2195         invalid sharing.
2196
2197 2008-05-28  Richard Guenther  <rguenther@suse.de>
2198
2199         PR tree-optimization/36339
2200         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2201         and clobbering code out of the loop.
2202
2203 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2204
2205         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2206         letters defined.
2207
2208         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2209         s390_contiguous_bitmask_p, s390_symref_operand_p,
2210         s390_check_symref_alignment, s390_reload_larl_operand,
2211         s390_reload_symref_address): New functions.
2212         (s390_branch_condition_mnemonic): Support compare and branch
2213         instructions.
2214         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2215         and 'W' constraints.
2216         (s390_secondary_reload): Add secondary reloads for unaligned
2217         symbol refs or symbol refs to floating point or QI/TI mode
2218         integer values.
2219         (legitimate_address_p): Accept symbol references as addresses.
2220         (s390_expand_insv): Use rotate and insert selected bits
2221         instruction for insv when building for z10.
2222         (print_operand_address): Handle symbol ref addresses.
2223         (print_operand): Output modifier 'c' added for signed byte values.
2224         (s390_encode_section_info): Mark symbol refs with
2225         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2226
2227         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2228         (length attribute): RRF, RRR have 4 byte length.
2229         (FPALL, INTALL): New mode iterators added.
2230         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2231         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2232         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2233         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2234         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2235         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2236         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2237         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2238         instructions.
2239         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2240         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2241         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2242         reload<INTALL:mode><P:mode>_toreg_z10,
2243         reload<FPALL:mode><P:mode>_tomem_z10,
2244         reload<FPALL:mode><P:mode>_toreg_z10,
2245         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2246         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2247         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2248         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2249         definition.
2250         (movmem, clrmem, cmpmem): New splitters added.
2251
2252         * config/s390/predicates.md (larl_operand): Use
2253         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2254         SYMBOL_REF_ALIGN1_P.
2255         (s390_signed_integer_comparison,
2256         s390_unsigned_integer_comparison): New predicates.
2257
2258         * config/s390/s390-protos.h (s390_check_symref_alignment,
2259         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2260         s390_reload_symref_address,
2261         s390_compare_and_branch_condition_mask): Prototypes added.
2262
2263         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2264         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2265         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2266
2267 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2268
2269         * config/s390/s390.c (z10_cost): New cost function for z10.
2270         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2271         (s390_issue_rate): Adjust issue rate for z10.
2272         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2273         (processor_flags): Add PF_Z10.
2274         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2275         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2276         * gcc/config.gcc: Add z10.
2277
2278 2008-05-28  Richard Guenther  <rguenther@suse.de>
2279
2280         PR tree-optimization/36291
2281         * tree-flow. h (struct gimple_df): Remove var_anns member.
2282         * tree-flow-inline.h (gimple_var_anns): Remove.
2283         (var_ann): Simplify.
2284         * tree-dfa.c (create_var_ann): Simplify.
2285         (remove_referenced_var): Clear alias info from var_anns of globals.
2286         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2287         (delete_tree_ssa): Clear alias info from var_anns of globals.
2288         Do not free var_anns.
2289         (var_ann_eq): Remove.
2290         (var_ann_hash): Likewise.
2291
2292 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2293
2294         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2295         and loongson2f entries.
2296         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2297         * config/mips/mips.h (processor_type): Add Loongson-2E
2298         and Loongson-2F entries.
2299         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2300         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2301         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2302         * doc/invoke.texi (MIPS Options): Document loongson2e
2303         and loongson2f processor names.
2304
2305 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2306
2307         PR target/35767
2308         PR target/35771
2309         * config/i386/i386.c (ix86_function_arg_boundary): Use
2310         alignment of canonical type.
2311         (ix86_expand_vector_move): Check unaligned memory access for
2312         all SSE modes.
2313
2314 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2315
2316         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2317         Moved to the front of file.
2318
2319 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2320             H.J. Lu  <hongjiu.lu@intel.com>
2321
2322         * dwarf2out.c (current_fde): New.
2323         (add_cfi): Use it.
2324         (lookup_cfa:): Likewise.
2325         (dwarf2out_end_epilogue): Likewise.
2326         (dwarf2out_note_section_used): Likewise.
2327
2328 2008-05-27  Michael Matz  <matz@suse.de>
2329
2330         PR c++/27975
2331         * c.opt (Wenum-compare): New warning option.
2332         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2333
2334 2008-05-27  Michael Matz  <matz@suse.de>
2335
2336         PR middle-end/36326
2337         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2338         non-BLKmode types.
2339         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2340         into memory as tail calls.
2341
2342 2008-05-27  Richard Guenther  <rguenther@suse.de>
2343
2344         PR tree-optimization/36339
2345         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2346         pointers cause all addressable variables to be call clobbered.
2347
2348 2008-05-27  Richard Guenther  <rguenther@suse.de>
2349
2350         PR tree-optimization/36245
2351         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2352
2353 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2354
2355         * config/s390/s390.md: Replace all occurences of the 'm'
2356         constraint with 'RT'.
2357
2358 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2359
2360         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2361         definitions added.
2362         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2363         "*movdi_64".
2364         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2365         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2366         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2367
2368 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2369
2370         * reload.c: (find_reloads): Skip alternatives according to the
2371         "enabled" attribute. Constify the constraint variable.
2372         * recog.c (get_attr_enabled): Add default implementation.
2373         (extract_insn): Set the alternative_enabled_p array
2374         in the recog_data struct.
2375         (preprocess_constraints, constrain_operands): Skip
2376         alternatives according to the "enabled" attribute
2377         * recog.h (struct recog_data): New field alternative_enabled_p.
2378         (skip_alternative): New inline function.
2379         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2380         (record_reg_classes): Skip alternative according to the
2381         "enabled" attribute.
2382
2383         * doc/md.texi: Add documention for the "enabled" attribute.
2384
2385 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2386
2387         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2388         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2389         constraint with TARGET_MEM_CONSTRAINT.
2390         * recog.c (asm_operand_ok, preprocess_constraints,
2391         constrain_operands): Likewise.
2392         * regclass.c (record_reg_classes): Likewise.
2393         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2394         * reload1.c (maybe_fix_stack_asms): Likewise.
2395         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2396         * recog.h: Adjust comment.
2397         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2398         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2399         * doc/md.texi: Add a note to description of 'm' constraint.
2400         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2401
2402 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2403
2404         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2405         that the bitfield is of integral type before testing its precision.
2406
2407 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2408             Sa Liu  <saliu@de.ibm.com> 
2409
2410         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2411         __modti3, __udivti3, __umodti3 and __udivmodti4.
2412         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2413         that implement TImode mul and div functions.
2414         * config/spu/multi3.c: New. Implement __multi3.
2415         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2416         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2417         functions on SPU.
2418
2419 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2420
2421         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2422         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2423         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2424         tls_sysv_suffix): New mode and mode attribute iterators.
2425         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2426         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2427         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2428         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2429         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2430         iterators.
2431
2432 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2433
2434         PR tree-optimization/36329
2435         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2436         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2437         * cgraphbuild.c (initialize_inline_failed): Use the latter
2438         macro in lieu of the former.
2439         * ipa-inline.c (cgraph_mark_inline): Likewise.
2440         (cgraph_decide_inlining_of_small_function): Likewise.
2441         (cgraph_decide_inlining): Likewise.
2442         (cgraph_decide_inlining_incrementally): Likewise.
2443
2444 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2445             Anatoly Sokolov  <aesok@post.ru>
2446
2447         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2448         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2449         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2450         optimization for 'avr6' architecture.
2451
2452 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2453
2454         PR target/34932
2455         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2456
2457 2008-05-26  Richard Guenther  <rguenther@suse.de>
2458
2459         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2460         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2461
2462 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2463
2464         PR middle-end/36253
2465         * caller-save.c (insert_restore): Verify alignment of spill space.
2466         (insert_save): Likewise.
2467         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2468         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2469         (STACK_SLOT_ALIGNMENT): Likewise.
2470         * function.c (LOCAL_ALIGNMENT): Removed.
2471         (get_stack_local_alignment): New.
2472         (assign_stack_local): Use it.  Set alignment on stack slot.
2473         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2474         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2475         (STACK_SLOT_ALIGNMENT): New.
2476         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2477         stack slot in XFmode.
2478
2479         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2480
2481 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2482
2483         PR/36321
2484         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2485         argument operand in rax isn't removed.
2486
2487 2008-05-26  Richard Guenther  <rguenther@suse.de>
2488
2489         PR middle-end/36300
2490         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2491         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2492
2493 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2494
2495         PR bootstrap/36331
2496         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2497
2498 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2499
2500         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2501         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2502
2503 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2504
2505         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2506         build a trampoline if we don't want one.
2507         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2508         return zero for nested functions if we don't want a trampoline.
2509
2510 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2511
2512         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2513
2514 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2515
2516         PR fortran/18428
2517         * c.opt: Removed undocumented option '-lang-fortran'.
2518         * c-common.h: Removed global variable 'lang_fortran'.
2519         * c-opts.c (c_common_handle_option): Removed code to handle
2520         option '-lang-fortran'. Updated includes.
2521         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2522         definition of '__GFORTRAN__'.
2523         (define__GNUC__): Reimplemented to use BASEVER and
2524         cpp_define_formatted.
2525         (builtin_define_with_value_n): Removed.
2526         * c-incpath.h: Renamed to ...
2527         * incpath.h: ... this.
2528         * c-incpath.c: Renamed to ...
2529         * incpath.c: ... this. Updated includes.
2530         * fix-header.c: Updated includes.
2531         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2532         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2533         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2534
2535 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2536
2537         * tree.h: Update the table of flags used on tree nodes.
2538         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2539         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2540         (FORCED_LABEL): Add access check.
2541         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2542         (ASM_INPUT_P): Likewise.
2543         (ASM_VOLATILE_P): Likewise.
2544         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2545         (OMP_SECTION_LAST): Access private_flag directly.
2546         (OMP_RETURN_NOWAIT): Likewise.
2547         (OMP_PARALLEL_COMBINED): Likewise.
2548         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2549         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2550         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2551         deprecated_flag directly.
2552
2553 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2554
2555         * final.c (frame_pointer_needed): Removed.
2556         * flags.h (frame_pointer_needed): Likewise.
2557
2558         * function.h (rtl_data): Add frame_pointer_needed.
2559         (frame_pointer_needed): New.
2560
2561 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2562
2563         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2564
2565 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2566
2567         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2568         SRC is a REG.
2569
2570 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2571
2572         * c-common.c (strip_array_types): Move function to..
2573         * tree.c: ..here.
2574         (get_inner_array_type): Delete.
2575         * c-common.h (strip_array_types): Move declaration to..
2576         * tree.h: ..here.
2577         (get_inner_array_type): Delete.
2578         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2579         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2580         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2581         * config/pa/pa.c (emit_move_sequence): Likewise.
2582
2583 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2584
2585         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2586         attribute to 34.
2587
2588 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2589
2590         * function.c: Include target hook for nonlocal_goto frame value.
2591
2592 2008-05-24  Richard Guenther  <rguenther@suse.de>
2593
2594         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2595         variable can be only accessed through a pointer or a union.
2596
2597 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2598
2599         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2600         * doc/extend.texi: Likewise.
2601
2602 2008-05-23  DJ Delorie  <dj@redhat.com>
2603
2604         * config/m32c/jump.md (untyped_call): Add.
2605
2606         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2607         for A24 to PSImode.
2608         (m32c_address_cost): Detail costs for indirect offsets.
2609
2610 2008-05-23  Rafael Espindola  <espindola@google.com>
2611
2612         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2613         if a node is a SUBREG.
2614         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2615         is a SUBREG.
2616
2617 2008-05-23  Paul Brook  <paul@codesourcery.com>
2618             Carlos O'Donell  <carlos@codesourcery.com>
2619
2620         * doc/extend.texi: Clarify use of __attribute__((naked)).
2621         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2622         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2623         * function.c (use_register_for_decl): Use
2624         targetm.calls.allocate_stack_slots_for_args.
2625         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2626         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2627         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2628
2629 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2630
2631         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2632
2633 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2634
2635         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2636         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2637         is only rounded once.
2638
2639 2008-05-23  Richard Guenther  <rguenther@suse.de>
2640
2641         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2642
2643 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2644             Jakub Jelinek  <jakub@redhat.com>
2645
2646         PR target/36079
2647         * configure.ac: Handle --enable-cld.
2648         * configure: Regenerated.
2649         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2650         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2651         (ix86_current_function_needs_cld): New define.
2652         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2653         (cld): New isns pattern.
2654         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2655         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2656         * config/i386/i386.opt (mcld): New option.
2657         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2658         TARGET_CLD and ix86_current_function_needs_cld.
2659         (override_options): Use -mcld by default for 32-bit code if
2660         USE_IX86_CLD.
2661
2662         * doc/install.texi (Options specification): Document --enable-cld.
2663         * doc/invoke.texi (Machine Dependent Options)
2664         [i386 and x86-64 Options]: Add -mcld option.
2665         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2666
2667 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2668         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2669         (return_in_memory_64): Likewise.
2670         (return_in_memory_ms_64): Likewise.
2671
2672 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2673
2674         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2675         * builtins.c (fold_builtin_fpclassify): New.
2676         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2677         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2678         * c-common.c (handle_type_generic_attribute): Adjust to accept
2679         fixed arguments before an elipsis.
2680         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2681         * doc/extend.texi: Document __builtin_fpclassify.
2682
2683 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2684
2685         * omp-low.c (gate_expand_omp_ssa): Remove.
2686         (pass_expand_omp_ssa): Remove.
2687         (gate_expand_omp): Do not check for flag_openmp_ssa.
2688         * common.opt (-fopenmp-ssa): Remove.
2689         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2690
2691 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2692
2693         * config/sh/sh.opt (mfixed-range): New option.
2694         * config/sh/sh-protos.h (sh_fix_range): Declare.
2695         * config/sh/sh.c (sh_fix_range): New function.
2696         * config/sh/sh.h (sh_fixed_range_str): Declare.
2697         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2698         is not empty.
2699         * doc/invoke.texi (SH Options): Document -mfixed-range.
2700
2701 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2702
2703         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2704         it before the redeclaration.
2705
2706 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2707
2708         * config/avr/avr.c (get_sequence_length): Add new function.
2709         (expand_prologue, expand_epilogue): Remove duplicate code.
2710
2711 2008-05-22  Rafael Espindola  <espindola@google.com>
2712
2713         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2714         sharing.
2715
2716 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2717
2718         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2719         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2720
2721         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2722         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2723         (vect_update_misalignment_for_peel): Likewise.
2724         (vector_alignment_reachable_p): Likewise.
2725         * tree-vect-transform.c (vectorizable_load): Likewise.
2726         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2727         (get_vectype_for_scalar_type): Pass mode of scalar_type
2728         to UNITS_PER_SIMD_WORD.
2729
2730         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2731         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2732         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2733         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2734         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2735
2736 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2737
2738         PR tree-optimization/36293
2739         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2740         if the first load must be skipped because of a gap.
2741
2742 2008-05-22  Richard Guenther  <rguenther@suse.de>
2743
2744         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2745         more cases of offset disambiguation that is possible if
2746         strict-aliasing rules apply.
2747         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2748         for basic offset and type-based disambiguation.
2749
2750 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2751
2752         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2753         ix86_expand_vector_set on V16QImode for SSE4.1.
2754
2755 2008-05-21  Tom Tromey  <tromey@redhat.com>
2756
2757         * c.opt (Wimport): Mark as undocumented.
2758         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2759         -Wno-import.
2760         (Warning Options): Likewise.
2761         * doc/cppopts.texi: Don't mention -Wimport.
2762
2763 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2764
2765         PR tree-optimization/36287
2766         PR tree-optimization/36286
2767         * lambda-code.c (build_access_matrix): Do not use the loop->num
2768         for computing the number of induction variables: use the loop depth
2769         instead.
2770
2771 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2772
2773         PR/36280
2774         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2775         option -f(no-)leading-underscore.
2776
2777 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2778
2779         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2780         GET_MODE_NUNITS (mode).
2781
2782 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2783
2784         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2785         (-mmulhw): Add 464 to description.
2786         (-mdlmzb): Likewise.
2787         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2788         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2789         464fp entries.
2790         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2791         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2792         * config/rs6000/rs6000.md: Update comments for 464.
2793
2794 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2795
2796         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2797
2798 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2799
2800         * config/i386/sse.md (vec_extractv4sf): Removed.
2801         (vec_extractv2df): Likewise.
2802         (vec_extractv2di): Likewise.
2803         (vec_extractv4si): Likewise.
2804         (vec_extractv8hi): Likewise.
2805         (vec_extractv16qi): Likewise.
2806         (vec_extract<mode>): New.
2807
2808 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2809
2810         * config/i386/sse.md (vec_setv4sf): Removed.
2811         (vec_setv2df): Likewise.
2812         (vec_setv2di): Likewise.
2813         (vec_setv4si): Likewise.
2814         (vec_setv8hi): Likewise.
2815         (vec_setv16qi): Likewise.
2816         (vec_set<mode>): New.
2817
2818 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2819
2820         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2821         goto for vec_concat and vec_interleave.
2822
2823 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2824
2825         * config/i386/sse.md (vec_initv4sf): Removed.
2826         (vec_initv2df): Likewise.
2827         (vec_initv2di): Likewise.
2828         (vec_initv4si): Likewise.
2829         (vec_initv8hi): Likewise.
2830         (vec_initv16qi): Likewise.
2831         (vec_init<mode>): New.
2832
2833 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2834
2835         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2836
2837 2008-05-21  Tom Tromey  <tromey@redhat.com>
2838
2839         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2840         (zone_find_object_offset): Likewise.
2841         (gt_ggc_m_S): Likewise.
2842         (highest_bit): Likewise.
2843         * ggc-page.c (gt_ggc_m_S): New function.
2844         * stringpool.c (string_stack): Remove.
2845         (init_stringpool): Update.
2846         (ggc_alloc_string): Use ggc_alloc.
2847         (maybe_delete_ident): New function.
2848         (ggc_purge_stringpool): Likewise.
2849         (gt_ggc_m_S): Remove.
2850         * ggc-common.c (ggc_protect_identifiers): New global.
2851         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2852         ggc_protect_identifiers.
2853         * ggc.h (ggc_protect_identifiers): Declare.
2854         (gt_ggc_m_S): Update.
2855         (ggc_purge_stringpool): Declare.
2856         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2857         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2858         special case.
2859         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2860
2861 2008-05-21  David S. Miller  <davem@davemloft.net>
2862
2863         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2864         tmake_file.
2865
2866 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2867
2868         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2869         once finished.
2870
2871 2008-05-20  David Daney  <ddaney@avtrex.com>
2872
2873         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2874         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2875         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2876         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2877         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2878         (atomic_hiqi_op): New define_code_iterator.
2879         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2880         mips_expand_compare_and_swap_12.
2881         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2882         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2883         (sync_<optab><mode>, sync_old_<optab><mode>,
2884         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2885         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2886         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2887         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2888         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2889         (test_and_set_12): New insn.
2890         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2891         sync_new_<optab><mode>, sync_old_nand<mode>,
2892         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2893         clobber to operand 0 for SI and DI mode insns.
2894         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2895         mips_gen_fn_4): New typedefs.
2896         (mips_gen_fn_ptrs): Define new union type.
2897         (mips_expand_compare_and_swap_12): Remove declaration.
2898         (mips_expand_atomic_qihi): Declare function.
2899         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2900         (mips_expand_atomic_qihi): ... this.  Use new generator function
2901         parameter.
2902         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2903         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2904         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2905         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2906         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2907         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2908         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2909         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2910         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2911         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2912         New macros.
2913
2914 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2915
2916         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2917         the missing break.
2918
2919 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2920
2921         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2922         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2923         (avr_attribute_table): Add 'OS_main' function attribute.
2924         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2925         functions with 'OS_main' attribute.
2926
2927 2008-05-20  Richard Guenther  <rguenther@suse.de>
2928
2929         PR tree-optimization/35204
2930         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2931         helper, split out from ...
2932         (DFS): ... here.  Make the DFS walk non-recursive.
2933
2934 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2935             Jan Sjodin  <jan.sjodin@amd.com>
2936
2937         PR tree-optimization/36181
2938         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2939         (parallelize_loops): Don't parallelize when the loop has vector
2940         phi nodes.
2941
2942 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2943             Sebastian Pop  <sebastian.pop@amd.com>
2944
2945         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2946         matrix, and never look at the tree representation of the memory
2947         accesses.
2948         (linear_transform_loops): Computes parameters and access matrices.
2949         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2950         when fails.
2951         (access_matrix_get_index_for_parameter): New.
2952         * tree-data-ref.h (struct access_matrix): New.
2953         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2954         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2955         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2956         am_vector_index_for_loop): New.
2957         (struct data_reference): Add field access_matrix.
2958         (DR_ACCESS_MATRIX): New.
2959         (compute_data_dependences_for_loop): Update declaration.
2960         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2961         * lambda.h (lambda_vector_vec_p): Declared.
2962         * lambda-code.c: Depend on pointer-set.h.
2963         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2964         av_for_af_base, av_for_af, build_access_matrix,
2965         lambda_compute_access_matrices): New.
2966         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2967
2968 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2969
2970         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2971         $SOURCEDIR/include.
2972
2973 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2974             Sebastian Pop  <sebastian.pop@amd.com>
2975
2976         PR tree-optimization/36206
2977         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2978         FOLD_CONVERSIONS.
2979         (instantiate_scev_1): Rename flags to fold_conversions.
2980         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2981         outeside instantiation_loop.
2982         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2983         (evolution_function_is_affine_or_constant_p): Removed.
2984         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2985         instantiate_scev.
2986         (analyze_siv_subscript): Pass in the loop nest number.
2987         Call evolution_function_is_affine_in_loop instead of 
2988         evolution_function_is_affine_p.
2989         (analyze_overlapping_iterations): Pass in the loop nest number.
2990
2991 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2992             Sebastian Pop  <sebastian.pop@amd.com>
2993
2994         PR tree-optimization/36206
2995         * tree-chrec.h (chrec_fold_op): New.
2996         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2997         and other trees.
2998
2999 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3000
3001         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3002         (DIRS_EQ): New.
3003         (remove_duplicates): Do not set inode on non-inode systems.
3004         Use DIRS_EQ.
3005
3006 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3007
3008         * config.gcc (tm_file): Update comments about relative pathnames.
3009
3010 2008-05-20  Richard Guenther  <rguenther@suse.de>
3011
3012         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3013         * tree-ssa-sccvn.c (process_scc): Likewise.
3014         * tree-ssa-sink.c (execute_sink_code): Likewise.
3015         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3016         * tree-vrp.c (process_assert_insertions): Likewise.
3017         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3018         (perform_tree_ssa_dce): Likewise.
3019         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3020         (dump_dominator_optimization_stats): Likewise.
3021         * tree-vectorizer.c (vectorize_loops): Likewise.
3022
3023 2008-05-20  Richard Guenther  <rguenther@suse.de>
3024
3025         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3026
3027 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3028
3029         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3030         (ix86_i386elf_return_in_memory): Likewise.
3031         (ix86_i386interix_return_in_memory): Likewise.
3032         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3033         (SUBTARGET_RETURN_IN_MEMORY): New.
3034         * config/i386/i386elf.h: Likewise.
3035         * config/i386/ptx4-i.h: Likewise.
3036         * config/i386/sol2-10.h: Likewise.
3037         * config/i386/sysv4.h: Likewise.
3038         * config/i386/vx-common.h: Likewise.
3039         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3040         * config/i386/i386.c (ix86_return_in_memory): Made static and
3041         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3042         (ix86_i386elf_return_in_memory): Removed.
3043         (ix86_i386interix_return_in_memory): Removed.
3044         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3045         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3046
3047 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3048
3049         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3050
3051 2008-05-19  Xinliang David Li  <davidxl@google.com>
3052
3053         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3054         * opts.c: Ditto.
3055         * common.opt: Ditto.
3056         * doc/invoke.texi: Ditto.
3057
3058 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3059
3060         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3061         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3062
3063 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3064
3065         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3066         sizes of operand array from 8/4 to 4/2.
3067         (ix86_expand_vector_init_general): Change size of operand array
3068         from 32 to 16.  Remove op0, op1 and half_mode.
3069
3070 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3071
3072         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3073         (ix86_expand_vector_init_interleave): Likewise.
3074         (ix86_expand_vector_init_general): Use them.  Assert
3075         word_mode == SImode when n_words == 4.
3076
3077 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3078
3079         * config/i386/i386.c (ix86_secondary_reload): New static function.
3080         (TARGET_SECONDARY_RELOAD): New define.
3081         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3082         * config/i386/i386.md (reload_outqi): Remove.
3083
3084 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3085
3086         PR middle-end/35509
3087         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3088         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3089         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3090         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3091         (fold_builtin_1): Likewise.
3092         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3093         c-common.c (check_builtin_function_arguments): Handle
3094         BUILT_IN_ISINF_SIGN.
3095         * doc/extend.texi: Document __builtin_isinf_sign.
3096         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3097
3098 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3099
3100         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3101         EH cleanup at the end of the pass, search for those that have been
3102         turned into forwarder blocks and do the cleanup on their successor.
3103
3104 2008-05-18  Richard Guenther  <rguenther@suse.de>
3105
3106         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3107         pointers to sizetype and vice versa.
3108
3109 2008-05-18 Xinliang David Li   <davidxl@google.com>
3110
3111         * gcc/tree-ssa-dce.c: Coding style fix.
3112         (check_pow): Documentation comment. 
3113         (check_log): Documenation comment. Coding style fix.
3114         (is_unnecessary_except_errno_call): Ditto.
3115         (gen_conditions_for_pow): Ditto.
3116         (gen_conditions_for_log): Ditto.
3117         (gen_shrink_wrap_conditions): Ditto.
3118         (shrink_wrap_one_built_in_calls): Ditto.
3119         * gcc/doc/invoke.texi: Better documentation string.
3120         * ChangeLog: Fix wrong change log entries from 
3121         May 17 checkin on function call DCE.
3122
3123 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3124
3125         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3126
3127 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3128
3129         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3130         * df-problems.c (simulation routines): Fixed block comment to
3131         properly say how to add forwards scanning functions.
3132         
3133 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3134
3135         * tree-inline.c (setup_one_parameter): Remove dead code.
3136
3137 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3138
3139         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3140         a BIT_AND_EXPR only for an INTEGER_TYPE.
3141
3142 2008-05-17 Xinliang David Li   <davidxl@google.com>
3143
3144         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3145         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3146         functions to check for eliminating math functions that are pure 
3147         except for setting errno.
3148         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3149         general condition expressions for shrink-wrapping pow/log calls.
3150         (gen_shrink_wrap_conditions): Ditto.
3151         (shrink_wrap_one_built_in_call): Ditto.
3152         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3153         (mark_operand_necessary): If debugging, output if OP is necessary.
3154         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3155         unnecessary.
3156         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3157         opt level >= 2.
3158         * gcc/common.opt: New user flag -ftree-builtin-dce.
3159         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3160
3161 2008-05-16  David S. Miller  <davem@davemloft.net>
3162
3163         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3164         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3165
3166 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3167
3168         PR target/36246
3169         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3170
3171 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3172
3173         * ifcvt.c (dead_or_predicable): Rename
3174         df_simulate_one_insn_backwards to df_simulate_one_insn.
3175         * recog.c (peephole2_optimize): Ditto.
3176         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3177         Ditto.
3178         * df.h: Rename df_simulate_one_insn_backwards to
3179         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3180         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3181         scanning of defs and uses.
3182         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3183         (df_simulate_one_insn_forwards): Removed.
3184
3185 2008-05-16  Doug Kwan  <dougkwan@google.com>
3186
3187         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3188         QNaN & SNaN.
3189         (real_from_string): Handle NaNs and Inf as approriate.
3190
3191 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3192
3193         * doc/gty.texi (Source Files Containing Type Information): Note
3194         that headers should appear first in the gtfiles list.
3195
3196 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3197
3198         * tree.def (COND_EXEC): Properly documented this code.
3199
3200 2008-05-16  Diego Novillo  <dnovillo@google.com>
3201
3202         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3203         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3204         the new field.
3205
3206 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3207
3208         * tree-ssa-dse (max_stmt_uid): Removed.
3209         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3210         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3211         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3212         * function.h (cfun.last_stmt_uid): New field.
3213         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3214         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3215         New functions.
3216         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3217         (create_stmt_ann): Initialize the ann->uid field.
3218         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3219         with new calls.
3220         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3221
3222 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3223
3224         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3225         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3226         (init_empty_tree_cfg): Call it.
3227
3228 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3229
3230         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3231         Update all users.
3232
3233 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3234
3235         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3236         * tree-dump.c (dump_options): New verbose option.
3237         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3238         Add verbose dump.
3239         * tree-pass.h (TDF_VERBOSE): New dump flag.
3240         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3241         (tree-flow.h): Added include.
3242         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3243
3244 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3245
3246         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3247
3248         From Jie Zhang  <jie.zhang@analog.com>
3249         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3250         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3251         mcpu=bf561-none and mcpu=bf561-0.2.
3252         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3253         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3254         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3255         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3256         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3257         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3258         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3259         option.
3260         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3261         (cputype_selected): Remove.
3262         (bfin_handle_option): Don't use cputype_selected.
3263         (override_options): When no mcpu option, enable all workarounds.
3264         Don't use bfin_workarounds.
3265         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3266         processor type.
3267         (DEFAULT_CPU_TYPE): Don't define.
3268
3269 2008-05-16  Richard Guenther  <rguenther@suse.de>
3270
3271         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3272         on deletion of the last stmt.
3273
3274 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3275
3276         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3277         V8HImode for SSE2 and V16QImode for SSE4.1.
3278
3279 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3280
3281         * cgraph.h (compute_inline_parameters): Made public.
3282         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3283         variable_generate_summary, function_write_summary,
3284         variable_write_summary, variable_read_summary.  Added generate_summary,
3285         write_summary, read_summary.
3286         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3287         pass_ipa_inline.function_generate_summary, to
3288         compute_inline_parameters. 
3289         * ipa-inline.c (compute_inline_parameters): Made public and added
3290         node parameter.
3291         (compute_inline_parameters_for_current): New function.
3292         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3293         (inline_generate_summary): Removed parameter and made to loop over
3294         all cgraph nodes.
3295         (pass_ipa_inline): Updated for new IPA_PASS structure.
3296         * passes.c (execute_ipa_summary_passes): Now is called once per
3297         pass rather than once per node*pass.
3298         
3299 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3300
3301         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3302         avr_have_mul_p, avr_asm_only_p): Remove variables.
3303         (avr_override_options): Remove initialization of removed variables.
3304         (avr_file_start):  Convert removed variables to fields of 
3305         'struct base_arch_s *avr_current_arch'. 
3306         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3307         (AVR_HAVE_MUL): (Ditto.).
3308         (AVR_HAVE_MOVW): (Ditto.).
3309         (AVR_HAVE_LPMX): (Ditto.). 
3310         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3311         avr_asm_only_p): Remove declaration.
3312
3313 2008-05-15  Diego Novillo  <dnovillo@google.com>
3314
3315         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3316         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3317
3318 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3319
3320         PR middle-end/36194
3321         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3322         Don't call record_truncated_value from here.
3323         (record_truncated_value): Turn it into a for_each_rtx callback.
3324         (record_truncated_values): New function.
3325         (combine_instructions): Call note_uses with record_truncated_values.
3326         Change name of check_conversion to check_promoted_subreg. 
3327
3328 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3329
3330         * doc/sourcebuild.texi: Document support for torture tests.
3331
3332 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3333
3334         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3335         to alternative 4 of operand 2.
3336
3337 2008-05-15  Richard Guenther  <rguenther@suse.de>
3338
3339         * tree-pass.h (current_pass): Declare.
3340         (get_pass_for_id): Likewise.
3341         * passes.c (passes_by_id, passes_by_id_size): New globals.
3342         (set_pass_for_id): New function.
3343         (get_pass_for_id): Likewise.
3344         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3345         (execute_function_todo): Flush per function statistics.
3346         * toplev.c (compile_file): Init statistics.
3347         (general_init): Do early statistics initialization.
3348         (finalize): Finish statistics.
3349         * statistics.h (statistics_early_init): Declare.
3350         (statistics_init): Likewise.
3351         (statistics_fini): Likewise.
3352         (statistics_fini_pass): Likewise.
3353         (statistics_counter_event): Likewise.
3354         (statistics_histogram_event): Likewise.
3355         * statistics.c: New file.
3356         * Makefile.in (OBJS-common): Add statistics.o.
3357         (statistics.o): Add dependencies.
3358         * doc/invoke.texi (-fdump-statistics): Document.
3359
3360         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3361         (insert): Likewise.
3362         (execute_pre): Use statistics_counter_event.
3363         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3364         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3365
3366 2008-05-15  Diego Novillo  <dnovillo@google.com>
3367
3368         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3369
3370         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3371         * tree-ssa-alias.c (new_type_alias): Remove references to
3372         sub-variables from comment.
3373         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3374
3375 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3376
3377         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3378         attribute to 1 only for insertps alternative.
3379
3380 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>