1 2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
3 * libfuncs.h (LTI_synchronize): New libfunc_index.
4 (synchronize_libfunc): Declare.
5 * builtins.c (expand_builtin_synchronize): Consider using
6 synchronize_libfunc before falling back on an asm blockage.
7 * config/mips/mips.c: Include libfuncs.h
8 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
10 2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
12 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
13 parameter. Copy stack_reg to r11 where appropriate.
14 (no_global_regs_above): Add gpr parameter.
15 (rs6000_stack_info): Only add padding for SPE save area if we
16 are saving SPE GPRs and CR.
17 (saveres_routine_syms): New variable.
18 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
20 (rs6000_savres_routine_sym): New function.
21 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
23 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
24 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
25 Tweak FPR out-of-line saving.
26 (rs6000_make_savres_rtx): New function.
27 (rs6000_use_multiple_p): New function.
28 (rs6000_savres_strategy): New function.
29 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
30 out-of-line if appropriate.
31 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
32 if we are optimizing for size.
33 (GP_SAVE_INLINE): Define.
34 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
35 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
36 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
37 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
38 (*save_fpregs_<mode>): Add use of r11.
39 (*restore_gpregs_<mode>): New insn.
40 (*return_and_restore_gpregs_<mode>): New insn.
41 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
43 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
44 (*restore_gpregs_spe): New insn.
45 (*return_and_restore_gpregs_spe): New insn.
46 * config/rs6000/predicates.md (save_world_operation): Fix check.
48 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
50 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
51 this point, so assert that.
53 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
55 * cfganal.c: Include vec.h and vecprim.h.
56 (compute_idf): Import from...
57 * tree-into-ssa (compute_idf): ...here.
58 * basic-block.h (compute_idf): Export.
60 2008-06-26 Joseph Myers <joseph@codesourcery.com>
62 * c-decl.c (merge_decls): Use !current_function_decl to check for
63 extern declaration of C99 inline function being at file scope.
65 2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
67 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
69 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
71 * alias.c (record_alias_subset, init_alias_analysis): Fix
72 -Wc++-compat and/or -Wcast-qual warnings.
73 * attribs.c (lookup_attribute_spec): Likewise.
74 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
75 copy_bb, connect_traces,
76 find_rarely_executed_basic_blocks_and_cr): Likewise.
77 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
78 note_btr_set, migrate_btr_defs): Likewise.
79 * builtins.c (result_vector, expand_builtin_memcpy,
80 expand_builtin_mempcpy_args, expand_builtin_strncpy,
81 builtin_memset_read_str, expand_builtin_printf,
82 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
84 * caller-save.c (mark_set_regs): Likewise.
85 * calls.c (expand_call, emit_library_call_value_1): Likewise.
86 * cgraph.c (cgraph_edge): Likewise.
87 * combine.c (likely_spilled_retval_1): Likewise.
88 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
89 htab_counts_entry_del, get_coverage_counts): Likewise.
90 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
91 new_cselib_val): Likewise.
92 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
93 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
95 * df-core.c (df_compact_blocks): Likewise.
96 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
97 * df-scan.c (df_grow_reg_info, df_ref_create,
98 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
99 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
100 df_record_entry_block_defs, df_record_exit_block_uses,
101 df_bb_verify): Likewise.
102 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
103 DF_REF_EXTRACT_MODE_CONST): New.
104 * dominance.c (get_immediate_dominator, get_dominated_by,
105 nearest_common_dominator, root_of_dom_tree,
106 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
107 -Wc++-compat and/or -Wcast-qual warnings.
108 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
109 record_store, replace_read, check_mem_read_rtx, scan_insn,
110 dse_step1, dse_record_singleton_alias_set): Likewise.
111 * dwarf2asm.c (dw2_force_const_mem): Likewise.
113 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
115 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
116 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
117 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
118 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
119 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
120 add_ranges_num, add_ranges_by_labels, file_info_cmp,
121 file_name_acquire, output_file_names, add_const_value_attribute,
122 premark_used_types_helper, file_table_eq, file_table_hash,
123 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
124 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
125 -Wcast-qual warnings.
126 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
127 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
128 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
129 gen_reg_rtx, start_sequence, init_emit): Likewise.
130 * et-forest.c (et_new_occ, et_new_tree): Likewise.
131 * except.c (init_eh_for_function, gen_eh_region,
132 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
133 arh_to_landing_pad, arh_to_label, add_action_record,
134 add_call_site, switch_to_exception_section): Likewise.
135 * expmed.c (synth_mult): Likewise.
136 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
137 store_expr): Likewise.
138 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
140 * function.c (assign_stack_temp_for_type,
141 allocate_struct_function, match_asm_constraints_1): Likewise.
142 * gcov-io.c (gcov_allocate): Likewise.
143 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
144 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
145 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
146 record_one_set, insert_expr_in_table, insert_set_in_table,
147 dump_hash_table, compute_hash_table_work, alloc_hash_table,
148 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
149 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
150 -Wcast-qual warnings.
152 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
154 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
155 -Wcast-qual warnings.
156 * gcc.c (process_command): Likewise.
157 * genattrtab.c (oballoc): Use XOBNEW.
158 (oballocvec): Define.
159 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
160 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
161 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
162 -Wc++-compat and/or -Wcast-qual warnings.
163 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
164 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
165 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
166 gen_presence_absence_set, gen_automaton, gen_regexp_el,
167 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
168 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
169 add_excls, process_presence_absence_names,
170 process_presence_absence_patterns, add_presence_absence,
171 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
172 get_free_state, add_arc, get_free_automata_list_el,
173 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
174 transform_3, cache_presence, create_ainsns, create_automata,
175 create_state_ainsn_table, dfa_insn_code_enlarge,
176 output_trans_func, output_min_issue_delay_func,
177 output_dead_lock_func, output_reset_func,
178 output_get_cpu_unit_code_func, output_dfa_start_func,
179 expand_automata): Likewise.
180 * genextract.c (gen_insn): Likewise.
181 * gengtype-lex.l: Likewise.
182 * gengtype.c (read_input_list, adjust_field_type,
183 process_gc_options): Likewise.
184 * genoutput.c (note_constraint): Likewise.
185 * genpreds.c (mangle, add_constraint): Likewise.
186 * genrecog.c (process_define_predicate, new_decision,
187 add_to_sequence): Likewise.
188 * gensupport.c (record_insn_name): Likewise.
190 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
192 * config/i386/driver-i386.c (detect_caches_amd,
193 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
194 and/or -Wcast-qual warnings.
195 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
196 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
197 gt_pch_save): Likewise.
198 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
199 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
200 * global.c (compute_regsets): Likewise.
201 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
202 finish_graph_dump_file): Likewise.
203 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
204 unlink_bb_notes): Likewise.
205 * integrate.c (get_hard_reg_initial_val): Likewise.
206 * ipa-prop.c (ipa_push_func_to_list): Likewise.
207 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
208 * local-alloc.c (update_equiv_regs): Likewise.
209 * loop-invariant.c (check_invariant_table_size,
210 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
212 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
213 altered_reg_used, mark_altered): Likewise.
214 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
215 insert_var_expansion_initialization,
216 combine_var_copies_in_loop_exit, apply_opt_in_copies,
217 release_var_copies): Likewise.
218 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
219 analyze_matrix_decl, add_allocation_site, analyze_transpose,
220 analyze_accesses_for_phi_node, check_var_notmodified_p,
221 check_allocation_function, find_sites_in_func,
222 record_all_accesses_in_func, transform_access_sites,
223 transform_allocation_sites): Likewise.
224 * omp-low.c (new_omp_region, create_omp_child_function_name,
225 check_omp_nesting_restrictions, check_combined_parallel,
226 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
227 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
228 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
229 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
231 * opts-common.c (prune_options): Likewise.
232 * opts.c (add_input_filename, print_filtered_help,
233 get_option_state): Likewise.
234 * params.c (add_params): Likewise.
235 * passes.c (set_pass_for_id, next_pass_1,
236 do_per_function_toporder, pass_fini_dump_file): Likewise.
237 * postreload.c (reload_cse_simplify_operands): Likewise.
238 * predict.c (tree_predicted_by_p, tree_predict_edge,
239 clear_bb_predictions, combine_predictions_for_bb): Likewise.
241 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
243 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
245 * recog.c (check_asm_operands, validate_change_1): Likewise.
246 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
247 subst_asm_stack_regs): Likewise.
248 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
249 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
250 * regmove.c (reg_is_remote_constant_p): Likewise.
251 * regrename.c (regrename_optimize, scan_rtx_reg,
252 kill_clobbered_value, kill_set_value, kill_autoinc_value):
254 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
255 regstat_compute_calls_crossed): Likewise.
256 * reload1.c (init_reload, new_insn_chain,
257 has_nonexceptional_receiver, reload, copy_reloads,
258 calculate_needs_all_insns, init_elim_table): Likewise.
259 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
260 * rtl.c (shallow_copy_rtx_stat): Likewise.
261 * rtlanal.c (parms_set): Likewise.
262 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
263 sbitmap_resize, sbitmap_vector_alloc): Likewise.
264 * sched-ebb.c (earliest_block_with_similiar_load,
265 add_deps_for_risky_insns): Likewise.
266 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
267 schedule_region): Likewise.
268 * see.c (eq_descriptor_pre_extension,
269 hash_descriptor_pre_extension, hash_del_pre_extension,
270 eq_descriptor_properties, hash_descriptor_properties,
271 hash_del_properties, see_seek_pre_extension_expr,
272 see_initialize_data_structures, see_print_register_properties,
273 see_print_pre_extension_expr, see_delete_merged_def_extension,
274 see_delete_unmerged_def_extension, see_emit_use_extension,
275 see_pre_delete_extension, see_map_extension, see_commit_changes,
276 see_analyze_merged_def_local_prop,
277 see_analyze_merged_def_local_prop,
278 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
279 see_set_prop_merged_def, see_set_prop_unmerged_def,
280 see_set_prop_unmerged_use, see_print_one_extension,
281 see_merge_one_use_extension, see_merge_one_def_extension,
282 see_store_reference_and_extension, see_update_uses_relevancy,
283 see_update_defs_relevancy): Likewise.
284 * statistics.c (hash_statistics_hash, hash_statistics_eq,
285 hash_statistics_free, curr_statistics_hash): Likewise.
286 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
287 expand_asm_operands, expand_return, case_bit_test_cmp,
288 expand_case): Likewise.
289 * stor-layout.c (start_record_layout): Likewise.
290 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
291 gt_pch_save_stringpool): Likewise.
292 * tree-data-ref.c (hash_stmt_vertex_info,
293 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
294 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
296 2008-06-25 Uros Bizjak <ubizjak@gmail.com>
299 * config/i386/i386.md : Change constraints of HImode and QImode
300 immediate operands from "i" to "n". Change SImode "ni" constraint to
301 "i" and SImode "rmi" constraint to "g". Remove all constraints
302 from const0_operand and const1_operand predicated operands.
303 (i): Change QImode and HImode attribute from "i" to "n".
304 (*subqi_2): Change HImode operands to QImode.
307 2008-06-25 Olivier Hainque <hainque@adacore.com>
309 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
312 2008-06-25 Richard Guenther <rguenther@suse.de>
314 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
315 not overflow the result type.
317 2008-06-25 Richard Guenther <rguenther@suse.de>
319 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
320 (vn_lookup): Likewise.
322 2008-06-25 Richard Guenther <rguenther@suse.de>
324 PR tree-optimization/35518
325 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
326 * tree-sra.c (instantiate_element): Use fold_build3 to build
328 (try_instantiate_multiple_fields): Likewise.
330 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
332 * config/rs6000/rs6000.md: Change all string instruction's clobber to
335 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
337 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
338 use_backchain_to_restore_sp to true
339 if the offset of the link register save area would go over the 32k - 1
340 offset limit of the load
343 2008-06-25 Hans-Peter Nilsson <hp@axis.com>
345 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
346 anchor for the type-punning blurb. Cross-reference "Structures
347 unions enumerations and bit-fields implementation". Provide a
348 cast-through-pointer example. Make final sentence self-contained.
349 * doc/implement-c.texi (Structures unions enumerations and
350 bit-fields implementation): Cross-reference the type-punning blurb
351 in the -fstrict-aliasing documentation.
353 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
356 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
357 the memory instead of the memory itself for the save area.
359 2008-06-24 Olivier Hainque <hainque@adacore.com>
360 Nicolas Roche <roche@adacore.com>
362 * gengtype.c (srcdir_len): size_t instead of int.
363 (get_file_realbasename): New function. For F a filename, the real
364 basename of F, with all the path components stripped.
365 (get_file_srcdir_relative_path): New function. For F a filename, the
366 relative path to F from $(srcdir).
367 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
368 get_file_realbasename. Adjust the head comment.
369 (get_prefix_langdir_index): New function. For F a filename, return the
370 lang_dir_names[] relative index of the language directory that is
372 (get_file_langdir): For F a filename, return the name of the language
373 directory where F is located.
374 (get_file_gtfilename): New function. The gt- output file name for an
376 (get_output_file_with_visibility): Replace in-line computations with
377 uses of get_file_gtfilename and get_prefix_langdir_index.
378 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
380 2008-06-24 Jakub Jelinek <jakub@redhat.com>
382 PR tree-optimization/36504
383 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
384 references without base address.
386 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
389 * calls.c (expand_call): Increase alignment for recursive functions.
391 2008-06-23 Anatoly Sokolov <aesok@post.ru>
393 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
394 (TARGET_FUNCTION_VALUE): New define.
395 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
396 * config/avr/avr.h (FUNCTION_VALUE): Remove.
398 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
400 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
401 (fmod<mode>3): Ditto.
402 (remainderxf3): Ditto.
403 (remainder<mode>3): Ditto.
405 2008-06-23 Jakub Jelinek <jakub@redhat.com>
408 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
409 REG is a hard register.
411 PR tree-optimization/36508
412 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
413 499, don't check it at all in release compilers.
415 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
417 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
418 together with SSE_TARGET_MATH to disable insn pattern.
419 (*fop_<MODEF:mode>_2_i387): Ditto.
420 (*fop_<MODEF:mode>_3_i387): Ditto.
422 2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
424 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
426 2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
429 * gimplify.c (gimplify_asm_expr): Check the return code of
430 parse_output_constraint call, set function return and is_inout
433 2008-06-22 Ian Lance Taylor <iant@google.com>
435 * c-lex.c (narrowest_unsigned_type): Change itk to int.
436 (narrowest_signed_type): Likewise.
437 * c-typeck.c (c_common_type): Change local variable mclass to enum
439 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
440 tcc_comparison, not the tree code itself.
441 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
442 (c_expand_expr): Cast modifier to enum expand_modifier.
443 * c-common.h (C_RID_CODE): Add casts.
444 (C_SET_RID_CODE): Define.
445 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
446 (c_lex_one_token): Add cast to avoid warning.
447 (c_parser_objc_type_name): Rename local typename to type_name.
448 (check_no_duplicate_clause): Change code parameter to enum
450 (c_parser_omp_var_list_parens): Change kind parameter to enum
452 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
453 c_parser_omp_list_var_parens.
454 (c_parser_omp_threadprivate): Likewise.
455 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
456 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
457 * c-format.c (NO_FMT): Define.
458 (printf_length_specs): Use NO_FMT.
459 (asm_fprintf_length_specs): Likewise.
460 (gcc_diag_length_specs): Likewise.
461 (scanf_length_specs): Likewise.
462 (strfmon_length_specs): Likewise.
463 (gcc_gfc_length_specs): Likewise.
464 (printf_flag_specs): Change 0 to STD_C89.
465 (asm_fprintf_flag_specs): Likewise.
466 (gcc_diag_flag_specs): Likewise.
467 (gcc_cxxdiag_flag_specs): Likewise.
468 (scanf_flag_specs): Likewise.
469 (strftime_flag_specs): Likewise.
470 (strfmon_flag_specs): Likewise.
471 (print_char_table): Likewise.
472 (asm_fprintf_char_table): Likewise.
473 (gcc_diag_char_table): Likewise.
474 (gcc_tdiag_char_table): Likewise.
475 (gcc_cdiag_char_table): Likewise.
476 (gcc_cxxdiag_char_table): Likewise.
477 (gcc_gfc_char_table): Likewise.
478 (scan_char_table): Likewise.
479 (time_char_table): Likewis.
480 (monetary_char_table): Likewise.
481 * c-format.h (BADLEN): Likewise.
483 2008-06-21 Ian Lance Taylor <iant@google.com>
485 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
486 Define END_OF_BASE_TREE_CODES around inclusion.
487 * tree.c (tree_code_type): New global array.
488 (tree_code_length, tree_code_name): Likewise.
489 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
491 (all-tree.def, s-alltree): New targets.
492 (gencheck.h, s-gencheck): Remove.
493 (tree.o): Depend upon all-tree.def.
494 (build/gencheck.o): Remove gencheck.h dependency.
495 (mostlyclean): Don't remove gencheck.h.
496 * c-common.h (enum c_tree_code): Remove.
497 * c-lang.c (tree_code_type): Remove.
498 (tree_code_length, tree_code_name): Remove.
499 * gencheck.c (tree_codes): Include all-tree.def, rather than
500 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
502 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
504 * cp/cp-tree.h (enum cplus_tree_code): Remove.
505 (operator_name_info): Size to MAX_TREE_CODES.
506 (assignment_operator_name_info): Likewise.
507 * cp/cp-lang.c (tree_code_type): Remove.
508 (tree_code_length, tree_code_name): Remove.
509 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
510 (assignment_operator_name_info): Likewise.
511 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
513 * cp/mangle.c (write_expression): Likewise.
514 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
515 * fortran/f95-lang.c (tree_code_type): Remove.
516 (tree_code_length, tree_code_name): Remove.
517 * java/java-tree.h (enum java_tree_code): Remove.
518 * java/lang.c (tree_code_type): Remove.
519 (tree_code_length, tree_code_name): Remove.
520 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
521 * objc/objc-act.h (enum objc_tree_code): Remove.
522 * objc/objc-lang.c (tree_code_type): Remove.
523 (tree_code_length, tree_code_name): Remove.
524 * objcp/objcp-lang.c (tree_code_type): Remove.
525 (tree_code_length, tree_code_name): Remove.
526 * ada/ada-tree.h (enum gnat_tree_code): Remove.
527 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
528 * ada/misc.c (tree_code_type): Remove.
529 (tree_code_length, tree_code_name): Remove.
531 2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
533 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
534 the grand_bitmap_obstack.
536 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
538 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
539 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
540 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
541 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
542 move_stmt_r, new_label_mapper): Likewise.
543 * tree-complex.c (cvc_lookup): Likewise.
544 * tree-dfa.c (create_function_ann): Likewise.
545 * tree-dump.c (dump_register): Likewise.
546 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
547 find_phi_replacement_condition): Likewise.
548 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
549 tree_function_versioning): Likewise.
550 * tree-into-ssa.c (cmp_dfsnum): Likewise.
551 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
552 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
553 get_nonlocal_debug_decl, convert_nonlocal_reference,
554 convert_nonlocal_omp_clauses, get_local_debug_decl,
555 convert_local_reference, convert_local_omp_clauses,
556 convert_nl_goto_reference, convert_nl_goto_receiver,
557 convert_tramp_reference, convert_call_expr): Likewise.
558 * tree-outof-ssa.c (contains_tree_r): Likewise.
559 * tree-parloops.c (reduction_phi, initialize_reductions,
560 eliminate_local_variables_1, add_field_for_reduction,
561 add_field_for_name, create_phi_for_local_result,
562 create_call_for_reduction_1, create_loads_for_reductions,
563 create_stores_for_reduction, create_loads_and_stores_for_name):
565 * tree-phinodes.c (allocate_phi_node): Likewise.
566 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
567 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
568 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
569 * tree-ssa-coalesce.c (compare_pairs): Likewise.
570 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
571 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
572 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
573 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
574 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
575 vn_nary_op_insert): Likewise.
576 * tree-ssa.c (redirect_edge_var_map_add,
577 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
578 * tree-vectorizer.c (vectorize_loops): Likewise.
579 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
580 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
581 tree_cons_stat, build1_stat, build_variant_type_copy,
582 decl_init_priority_lookup, decl_fini_priority_lookup,
583 decl_priority_info, decl_restrict_base_lookup,
584 decl_restrict_base_insert, decl_debug_expr_lookup,
585 decl_debug_expr_insert, decl_value_expr_lookup,
586 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
587 type_hash_add, get_file_function_name, tree_check_failed,
588 tree_not_check_failed, tree_range_check_failed,
589 omp_clause_range_check_failed, build_omp_clause,
590 build_vl_exp_stat): Likewise.
591 * value-prof.c (gimple_histogram_value,
592 gimple_duplicate_stmt_histograms): Likewise.
593 * var-tracking.c (attrs_list_insert, attrs_list_copy,
594 unshare_variable, variable_union_info_cmp_pos, variable_union,
595 dataflow_set_different_1, dataflow_set_different_2,
596 vt_find_locations, variable_was_changed, set_variable_part,
597 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
598 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
599 section_entry_hash, object_block_entry_eq,
600 object_block_entry_hash, create_block_symbol,
601 initialize_cold_section_name, default_function_rodata_section,
602 strip_reg_name, set_user_assembler_name, const_desc_eq,
603 build_constant_desc, output_constant_def, lookup_constant_def,
604 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
605 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
606 default_internal_label): Likewise.
607 * varray.c (varray_init, varray_grow): Likewise.
608 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
610 2008-06-20 Uros Bizjak <ubizjak@gmail.com>
612 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
613 operators for "test" insn. Macroize insn using SWI mode macro.
614 (*jcc_fused_2): Ditto.
615 (*jcc_fused_3): Macroize insn using SWI mode macro.
616 (*jcc_fused_4): Ditto.
618 2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
620 * tree-ssa-pre.c: Fix typo in comment.
621 (init_antic, fini_antic): Add explicit funtions for
622 initializing and deinitializing ANTIC and AVAIL sets.
623 (create_expression_by_pieces): Fix typo in comment.
624 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
625 (execute_pre): Eventually dump details about ANTIC_IN.
627 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
629 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
630 * gcc.c (translate_options, init_spec, store_arg, read_specs,
631 add_to_obstack, file_at_path, find_a_file, execute,
632 add_preprocessor_option, add_assembler_option, add_linker_option,
633 process_command, insert_wrapper, do_option_spec, do_self_spec,
634 spec_path, do_spec_1, is_directory, main, used_arg,
635 getenv_spec_function): Likewise.
636 * tlink.c (symbol_hash_lookup, file_hash_lookup,
637 demangled_hash_lookup, symbol_push, file_push, frob_extension):
640 2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
642 * doc/rtl.texi: Updated subreg section.
644 2008-06-19 Jakub Jelinek <jakub@redhat.com>
647 * cgraphunit.c (cgraph_process_new_functions): Don't clear
648 node->needed and node->reachable.
649 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
650 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
651 (expand_task_call): Don't call expand_task_copyfn.
652 (expand_task_copyfn): Renamed to...
653 (finalize_task_copyfn): ... this.
655 2008-06-19 Jan Hubicka <jh@suse.cz>
657 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
658 clobbering framepointer.
660 2008-06-19 Jan Hubicka <jh@suse.cz>
662 * tree-optimize.c (execute_early_local_optimizations): Set
663 cgraph_state only at first invocation.
665 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
667 * system.h (-Wc++-compat): Activate as a warning, no an error.
669 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
671 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
672 instead of "#" in insn asm template.
673 (*jcc_fused_2): Ditto.
675 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
677 * config/i386/i386.h (ix86_tune_indices)
678 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
679 (TARGET_FUSE_CMP_AND_BRANCH): New define.
680 * config/i386/i386.md (*jcc_fused_1): New insn pattern
681 (*jcc_fused_2): Ditto.
682 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
683 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
684 (print operand): Handle 'E' and 'e' code.
686 2008-06-19 Anatoly Sokolov <aesok@post.ru>
688 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
689 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
690 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
692 2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
694 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
696 (cgraph_expand_function): Use local copy of decl.
697 (cgraph_expand_all_functions): Remove redundant initialization of
699 (cgraph_optimize): Reword internal_error message.
701 2008-06-19 Chung-Lin Tang <ctang@marvell.com>
703 * arm-protos.h (arm_return_in_memory): Remove public
704 arm_return_in_memory() prototype.
705 * arm.c (arm_return_in_memory): Add static prototype, add target
706 hook macro, change definition and comments.
707 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
709 2008-06-19 Ben Elliston <bje@au.ibm.com>
711 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
712 real.c: Remove references to IEEE 754R.
713 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
714 * doc/libgcc.texi (Decimal float library routines): Likewise.
716 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
718 * targhooks.h (struct gcc_target): New member unwind_word_mode.
719 (default_unwind_word_mode): Add prototype.
720 * targhooks.c (default_unwind_word_mode): New function.
721 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
722 instead of word_mode.
723 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
724 (TARGET_INITIALIZER): Use it.
726 * c-common.c (handle_mode_attribute): Support "unwind_word"
728 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
730 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
731 word_mode to access SjLj_Function_Context member "data".
732 (sjlj_emit_dispatch_table): Likewise. Also, perform type
733 conversion from targetm.eh_return_filter_mode () to
734 targetm.unwind_word_mode () if they differ.
736 * builtin-types.def (BT_UNWINDWORD): New primitive type.
737 (BT_FN_UNWINDWORD_PTR): New function type.
738 (BT_FN_WORD_PTR): Remove.
739 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
740 * except.c (expand_builtin_extend_pointer): Convert pointer to
741 targetm.unwind_word_mode () instead of word_mode.
743 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
744 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
745 (spu_unwind_word_mode): New function.
746 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
747 (TARGET_UNWIND_WORD_MODE): Define.
748 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
750 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
752 * config/spu/spu.c (reg_align): Remove.
753 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
754 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
755 (spu_split_store): Likewise.
757 2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
759 * gcc/tree-vn.c: Fix typo in comment.
761 2008-06-18 Jan Hubicka <jh@suse.cz>
763 * cgraphunit.c (cgraph_optimize): Output debug info when doing
764 toplevel reorder too.
766 2008-06-18 Jan Hubicka <jh@suse.cz>
768 * c-opts.c (c_common_post_options): PCH is not compatible with
770 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
771 -fno-toplevel-reorder by default now.
773 2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
775 PR documentation/30739
776 * doc/install.texi (Prerequisites): Document dependency on awk.
778 2008-06-18 Uros Bizjak <ubizjak@gmail.com>
779 Ian Lance Taylor <iant@google.com>
781 PR rtl-optimization/35604
782 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
783 only want to change jump destinations, not eventual label comparisons.
785 2008-06-16 Jan Hubicka <jh@suse.cz>
787 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
789 (cgraph_analyze_function): Likewise.
791 2008-06-16 Jan Hubicka <jh@suse.cz>
793 * cgraph.h (cgraph_mark_if_needed): New function.
794 * cgraphunit.c (cgraph_mark_if_needed): New function.
795 * c-decl.c (duplicate_decl): Use it.
797 2008-06-16 Jan Hubicka <jh@suse.cz>
799 * cgraph.c (cgraph_add_new_function): When in expansion state, do
802 2008-06-16 Jan Hubicka <jh@suse.cz>
804 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
806 2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
807 Kazu Hirata <kazu@codesourcery.com>
808 Maxim Kuvyrkov <maxim@codesourcery.com
810 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
811 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
812 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
813 EXTRA_SPEC_FUNCTIONS.
814 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
815 (DRIVER_SELF_SPECS): Adjust.
816 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
817 * config/mips/st.h, config/mips/t-st: New.
818 * config/mips/driver-native.c, config/mips/x-native: New.
819 * doc/invoke.texi (MIPS): Document 'native' value for -march and
822 2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
824 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
826 (ISA_HAS_FP_CONDMOVE): New macro.
827 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
828 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
829 (ISA_HAS_NMADD3_NMSUB3): New macro.
830 * config/mips/mips.c (mips_rtx_costs): Update.
831 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
832 compiling for ST Loongson 2E/2F.
833 (madd<mode>): Rename to madd4<mode>. Update.
834 (madd3<mode>): New pattern.
835 (msub<mode>): Rename to msub4<mode>. Update.
836 (msub3<mode>): New pattern.
837 (nmadd<mode>): Rename to nmadd4<mode>. Update.
838 (nmadd3<mode>): New pattern.
839 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
840 (nmadd3<mode>_fastmath): New pattern.
841 (nmsub<mode>): Rename to nmsub4<mode>. Update.
842 (nmsub3<mode>): New pattern.
843 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
844 (nmsub3<mode>_fastmath): New pattern.
845 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
847 2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
849 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
850 (DF_REF_INSN_INFO): New.
851 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
852 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
853 with a NULL DF_REF_INSN_INFO.
854 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
856 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
857 DF_INSN_INFO_EQ_USES): New.
858 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
859 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
860 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
861 * df-core.c: Update comment for above changes.
862 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
863 DF_INSN_UID_* macros.
864 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
865 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
866 insn rtx. Update all callers.
867 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
868 df_ref_create_structure, df_insn_refs_collect): Likewise.
869 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
870 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
871 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
872 macros to access the insn refs.
873 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
874 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
875 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
876 for accessing the refs.
877 (try_fwprop_subst): Likewise.
878 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
879 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
880 for accessing the refs.
881 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
882 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
883 to look at the insn refs.
884 (record_uses): Likewise.
885 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
887 (mark_artificial_uses): Don't mark_insn for artificial refs.
888 (mark_reg_rependencies): Likewise.
890 * doc/rtl.texi: Remove documentation of ADDRESSOF.
892 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
894 * configure: Regenerate.
896 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
898 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
899 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
900 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
902 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
904 * config/avr/avr.c (avr_mcu_t): Add attiny167.
905 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
906 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
908 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
910 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
911 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
912 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
914 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
916 * tree-ssa-sccvn.c: Fix format of comments.
918 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
920 * cgraph.c: Remove unneeded forward declarations of eq_node()
923 2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
925 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
927 (see_update_relevancy): Likewise.
928 * fwprop.c (try_fwprop_subst): Likewise.
929 * rtlanal.c (noop_move_p): Likewise.
930 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
931 notes to non-existing libcall blocks.
932 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
934 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
935 (dead_libcall_p): Remove.
936 (delete_trivially_dead_insns): Don't use it.
937 * web.c (union_defs): Remove comment about keeping nops.
938 * gcse.c (hash_scan_insn): Don't take libcall pointers.
939 (compute_hash_table_work): Don't track libcall notes.
940 (do_local_cprop): Don't take libcall pointers. Don't update
942 (adjust_libcall_notes): Deleted.
943 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
944 ever have existed in the first place).
945 (replace_store_insn): Don't try to remove libcall notes.
946 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
947 (resolve_reg_notes): Don't call them.
948 (resolve_simple_move): Likewise.
949 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
950 Don't remove REG_RETVAL notes.
951 * emit-rtl.c (try_split): Don't update libcall notes.
952 (emit_copy_of_insn_after): Dito.
953 * cselib.c (cselib_current_insn_in_libcall): Remove.
954 (cselib_process_insn): Don't set/clear it.
955 (new_elt_loc_list): Don't record it.
956 (cselib_init): Don't initialize it.
957 * cselib.c (struct elt_loc_list): Remove in_libcall field.
958 * loop-invariant.c (find_invariant_insn): Don't look for libcall
960 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
961 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
962 (init_deps): Don't initialize it.
963 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
964 * combine.c (delete_noop_moves): Don't update libcall notes.
965 (can_combine_p): Remove now pointless #if 0 block.
966 (try_combine): Remove another obsolete #if 0 block.
967 (distribute_notes): Don't distribute libcall notes.
968 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
969 * dce.c (libcall_dead_p): Remove.
970 (delete_unmarked_insns): Don't handle libcall blocks.
971 (preserve_libcall_for_dce): Remove.
972 (prescan_insns_for_dce): Don't special-case libcall block insns.
973 * reload1 (reload): Don't handle libcall notes.
974 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
977 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
979 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
980 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
981 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
983 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
985 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
986 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
987 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
989 2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
991 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
993 2008-06-16 Ira Rosen <irar@il.ibm.com>
995 PR tree-optimization/36493
996 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
997 the arguments list. Use VECTYPE to create vector pointer.
998 (vectorizable_store): Fail if accesses through a pointer to vectype
999 do not alias the original memory reference operands.
1000 Call vect_create_data_ref_ptr without the removed argument.
1001 (vectorizable_load): Likewise.
1002 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1005 2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
1008 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
1011 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1013 * config/mips/loongson2ef.md: New file.
1014 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1015 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1016 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1017 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1018 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1020 (loongson2ef.md): New include.
1021 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1022 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1023 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1024 (loongson_gt_<mode>, loongson_extract_halfword)
1025 (loongson_insert_halfword_0, loongson_insert_halfword_2)
1026 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1027 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1028 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1029 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1030 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1031 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1032 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1033 (vec_interleave_low<mode>): Define type attribute.
1034 * config/mips/mips.c (mips_ls2): New static variable.
1035 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1036 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1037 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1038 Implement target scheduling hooks.
1039 (mips_multipass_dfa_lookahead): Update to handle tuning for
1041 (mips_sched_init): Initialize data for Loongson scheduling.
1042 (mips_ls2_variable_issue): New static function.
1043 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1045 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1046 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1047 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1048 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1049 Handle ST Loongson 2E/2F cores.
1050 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1052 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1054 * omp-low.c (extract_omp_for_data): Fix comment typo.
1057 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1059 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1060 FIXME note about gcc/config.guess.
1061 * doc/options.texi (Option file format): Remove non-ASCII bytes.
1062 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1063 * doc/cppopts.texi: Likewise.
1064 * doc/extend.texi: Likewise.
1065 * doc/gcc.texi: Likewise.
1066 * doc/gccint.texi: Likewise.
1067 * doc/gcov.texi: Likewise.
1068 * doc/gty.texi: Likewise.
1069 * doc/hostconfig.texi: Likewise.
1070 * doc/install.texi: Likewise.
1071 * doc/invoke.texi: Likewise.
1072 * doc/loop.texi: Likewise.
1073 * doc/makefile.texi: Likewise.
1074 * doc/md.texi: Likewise.
1075 * doc/passes.texi: Likewise.
1076 * doc/tm.texi: Likewise.
1077 * doc/tree-ssa.texi: Likewise.
1078 * doc/trouble.texi: Likewise.
1080 2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
1081 Nathan Sidwell <nathan@codesourcery.com>
1082 Maxim Kuvyrkov <maxim@codesourcery.com>
1083 Richard Sandiford <rdsandiford@googlemail.com>
1085 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1086 * config/mips/mips-protos.h (mips_expand_vector_init): New.
1087 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1089 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1090 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1091 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1093 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1094 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1095 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1096 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1097 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1098 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1099 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1100 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1101 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1102 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1103 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1104 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1105 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1106 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1107 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1108 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1109 (mips_builtins): Add Loongson builtins.
1110 (mips_loongson_2ef_bdesc): New.
1111 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1112 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1113 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1114 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1116 (mips_expand_vector_init): New.
1117 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1118 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1120 * config/mips/mips.md: Add unspec numbers for Loongson
1121 builtins. Include loongson.md.
1122 (MOVE64): Include Loongson vector modes.
1123 (SPLITF): Include Loongson vector modes.
1124 (HALFMODE): Handle Loongson vector modes.
1125 * config/mips/loongson.md: New.
1126 * config/mips/loongson.h: New.
1127 * config.gcc: Add loongson.h header for mips*-*-* targets.
1128 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1130 2008-06-14 Joseph Myers <joseph@codesourcery.com>
1132 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1133 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1134 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1135 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1136 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1137 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1138 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1139 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1140 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1141 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1142 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1143 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1144 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1145 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1146 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1147 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1148 Remove use_fixproto=yes.
1149 (ia64*-*-hpux*): Remove comment about using fixproto.
1150 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1152 2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1154 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1156 * configure: Regenerate.
1158 2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
1161 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1162 before evaluating it.
1164 2008-06-13 Jakub Jelinek <jakub@redhat.com>
1167 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1168 nested inline functions.
1169 (start_decl, start_function): Don't invert DECL_EXTERNAL
1170 for nested inline functions.
1172 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
1174 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1175 splits that must be made for correctness.
1177 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
1179 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1180 (AVAIL_NON_MIPS16): Likewise.
1181 (mips_builtin_description): Replace target_flags with a predicate.
1182 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1183 (dspr2_32): New availability predicates.
1184 (MIPS_BUILTIN): New macro.
1185 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1186 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1187 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1188 Replace the TARGET_FLAGS parameters with AVAIL parameters.
1189 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1190 (mips_dsp_32only_bdesc): Merge into...
1191 (mips_builtins): ...this new array.
1192 (mips_bdesc_map, mips_bdesc_arrays): Delete.
1193 (mips_init_builtins): Update after above changes.
1194 (mips_expand_builtin_1): Merge into...
1195 (mips_expand_builtin): ...here and update after above changes.
1197 2008-06-12 Paul Brook <paul@codesourcery.com>
1199 * longlong.h (__arm__): Define count_leading_zeros.
1200 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1201 (clzsi2, clzdi2): New functions.
1202 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1203 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1204 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1205 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1206 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1207 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1208 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1209 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1210 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1211 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1213 2008-06-12 Kazu Hirata <kazu@codesourcery.com>
1215 * config/m68k/m68k.c (m68k_tune_flags): New.
1216 (override_options): Compute m68k_tune_flags.
1217 (MULL_COST, MULW_COST): Update for various variants of CFV2.
1218 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1220 2008-06-12 Jakub Jelinek <jakub@redhat.com>
1223 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1225 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
1227 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1228 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1230 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
1232 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1233 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1235 2008-06-12 Jakub Jelinek <jakub@redhat.com>
1238 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1241 2008-06-12 Richard Guenther <rguenther@suse.de>
1243 PR tree-optimization/36345
1244 * tree-flow.h (struct ptr_info_def): Align escape_mask,
1245 add memory_tag_needed flag.
1246 (may_alias_p): Declare.
1247 * tree-ssa-alias.c (may_alias_p): Export.
1248 (set_initial_properties): Use memory_tag_needed flag.
1249 (update_reference_counts): Likewise.
1250 (reset_alias_info): Reset memory_tag_needed flag.
1251 (create_name_tags): Check memory_tag_needed flag.
1252 (dump_points_to_info_for): Dump it.
1253 * tree-ssa-structalias.c (struct variable_info): Remove
1254 directly_dereferenced flag.
1255 (new_var_info): Do not initialize it.
1256 (process_constraint_1): Do not set it.
1257 (update_alias_info): Set is_dereferenced flag.
1258 (set_uids_in_ptset): Use may_alias_p.
1259 (set_used_smts): Check memory_tag_needed flag.
1260 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
1261 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1262 memory_tag_needed flag.
1263 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1266 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
1268 * config/i386/i386.c (ix86_compute_frame_layout): Disable
1269 red zone for w64 abi.
1270 (ix86_expand_prologue): Likewise.
1271 (ix86_force_to_memory): Likewise.
1272 (ix86_free_from_memory): Likewise.
1274 2008-06-11 Edmar Wienskoski <edmar@freescale.com>
1277 * config/rs6000/rs6000.c (rs6000_override_options): Set
1278 rs6000_isel conditionally to the absence of comand line override.
1279 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1280 Remove duplicate rs6000_isel setting.
1281 * config/rs6000/eabispe.h: Ditto.
1283 2008-06-11 Richard Guenther <rguenther@suse.de>
1285 * alias.c (get_alias_set): Use the element alias-set for arrays.
1286 (record_component_aliases): For arrays and vectors do nothing.
1287 * c-common.c (strict_aliasing_warning): Handle the cases
1288 of alias set zero explicitly.
1289 * Makefile.in (dfp.o-warn): Add -Wno-error.
1291 2008-06-11 Joseph Myers <joseph@codesourcery.com>
1293 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1295 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1296 tune_32 tune_64 to supported_defaults. Allow values not
1297 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1298 x86_64. Do not override cpu_32 or cpu_64 values from target name.
1299 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1300 with_cpu_64 to generic for 64-bit-supporting configurations, not
1301 with_cpu. Remove FIXMEs.
1302 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1303 --with-arch-64, --with-tune-32, --with-tune-64): Document.
1304 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1305 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1306 arch_32 and arch_64.
1308 2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
1309 Olivier Hainque <hainque@adacore.com>
1311 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1312 Use DECL_SIZE_UNIT to retrieve the size of the field.
1314 2008-06-11 Joseph Myers <joseph@codesourcery.com>
1316 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1317 with function calls after declarations. Lay out
1318 neon_float_type_node before further use.
1320 2008-06-11 Richard Guenther <rguenther@suse.de>
1322 * tree-flow.h (may_point_to_global_var): Declare.
1323 * tree-ssa-alias.c (may_point_to_global_var): New function.
1324 * tree-ssa-sink.c (is_hidden_global_store): Use it.
1326 2008-06-10 Kazu Hirata <kazu@codesourcery.com>
1328 * configure.ac: Teach that fido supports .debug_line.
1329 * configure: Regenerate.
1331 2008-06-10 Tom Tromey <tromey@redhat.com>
1333 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1336 2008-06-10 Joseph Myers <joseph@codesourcery.com>
1338 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1339 (encode_decimal64, decode_decimal64, encode_decimal128,
1340 decode_decimal128): Reverse order of 32-bit parts of value if host
1341 and target endianness differ.
1343 2008-06-10 Vinodha Ramasamy <vinodha@google.com>
1345 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1346 Avoid division by 0.
1347 (tree_mod_pow2_value_transform): Likewise.
1348 (tree_ic_transform): Likewise.
1349 (tree_stringops_transform): Likewise.
1350 (tree_mod_subtract_transform): Likewise.
1351 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1352 (copy_edges_for_bb): Likewise.
1353 (initialize_cfun): Likewise.
1355 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
1357 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1358 nonmemory_operand. Add "N" operand constraint.
1360 (*jcc_btdi_mask_rex64): New instruction and split pattern.
1361 (*jcc_btsi_mask): Ditto.
1362 (*jcc_btsi_mask_1): Ditto.
1364 2008-06-10 Joseph Myers <joseph@codesourcery.com>
1366 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1367 TYPE_CANONICAL for copied element type.
1369 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
1372 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1373 Add m_CORE2 and m_GENERIC.
1374 * config/i386/predicates.md (bt_comparison_operator): New predicate.
1375 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1377 (*jcc_btdi_rex64): New instruction and split pattern.
1379 (*jcc_btsi_1): Ditto.
1380 (*btsq): Fix Intel asm dialect operand order.
1384 2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
1387 * simplify-rtx.c (simplify_subreg): Add check for shift count
1390 2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
1392 * doc/md.texi: Synchronize with later constraints.md change.
1393 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1394 with a C implementation.
1395 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1397 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1398 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1399 when moving to and from MD_REGNUM.
1400 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1401 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1402 Handle byte and halfword moves.
1403 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1405 * config/mips/constraints.md (h): Turn into NO_REGS.
1406 (l, x): Update documentation.
1407 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1408 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1409 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1410 (HILO): New mode iterator.
1412 (any_div): New code iterator.
1413 (u): Extend code attribute to div and udiv.
1414 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1415 d_operand in the splitters. Remove redundant CONST_INT checks.
1416 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1417 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1418 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
1419 accordingly, using normal moves instead of unspecs to move LO into
1420 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
1421 (<u>mulsidi3): Handle expansion in C code.
1422 (<u>mulsidi3_32bit_internal): Rename to...
1423 (<u>mulsidi3_32bit): ...this.
1424 (<u>mulsidi3_32bit_r4000): Fix insn separator.
1425 (*<u>mulsidi3_64bit): Rename to...
1426 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
1427 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
1428 to set LO and HI to the multiplication result. Use a normal move
1429 for MFLO and an unspec for MFHI.
1430 (*<u>mulsidi3_64bit_parts): Replace with...
1431 (<u>mulsidi3_64bit_hilo): ...this new instruction.
1432 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1433 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1434 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
1435 instead of HI. Split the instruction into a separate multiplication
1436 and MFHI if !TARGET_FIX_R4000.
1437 (<su>muldi3_highpart): Likewise.
1438 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1439 and the "=h" clobber.
1440 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1441 (<u>mulditi3): New expander.
1442 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1443 (madsi): Remove "=h" clobber.
1444 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1445 Force the modulus result to be a GPR and split the instruction into
1446 a division followed by an MFHI after reload.
1447 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1448 (*lea_high64): Use d_operand in the define_peephole2. Likewise
1449 the MIPS16 HIGH define_split.
1450 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1451 of acc<->gpr moves to "multi".
1452 (*movdi_64bit): Replace the single "x" alternative with
1453 alternatives for moving into and out of "a".
1454 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
1455 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1456 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1457 Use d_operand in the splitters. Remove redundant CONST_INT checks.
1458 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
1459 (movti): New expander.
1460 (*movti, *movti_mips16): New insns.
1461 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1462 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1463 (mthi<GPR:mode>_<HILO:mode>): Likewise.
1464 * config/mips/predicates.md (fpr_operand): Delete.
1465 (d_operand): New predicate.
1467 2008-06-09 Michael Meissner <michael.meissner@amd.com>
1469 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1470 failure on some Bourne shells.
1471 (x86_64-*-*): Ditto.
1473 2008-06-09 Kai Tietz <kai.tietz@onevision.com>
1475 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1477 2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
1479 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1480 (sparc-sun-solaris2*): Likewise.
1482 2008-06-09 Arnaud Charlet <charlet@adacore.com
1484 * doc/install.texi: Update requirements to build the Ada compiler.
1486 2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
1488 * df-scan.c (struct df_scan_problem_data): Remove the
1489 mw_link_pool alloc pool.
1490 (df_scan_free_internal): Don't free it.
1491 (df_scan_alloc): Don't allocate it.
1492 * df.h (struct df_link): Update comment.
1494 2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
1496 * except.h: Correct checks for when SJLJ exceptions must be used.
1498 2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1500 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1503 2008-06-08 Joseph Myers <joseph@codesourcery.com>
1505 PR tree-optimization/36218
1506 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1507 configure for the build system.
1508 (BUILD_LDFLAGS): Define.
1509 * configure: Regenerate.
1510 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1512 2008-07-08 Anatoly Sokolov <aesok@post.ru>
1515 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1516 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
1517 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
1519 2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
1521 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1523 2008-06-07 Joseph Myers <joseph@codesourcery.com>
1525 * config.gcc (Obsolete configurations): Remove list of
1527 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1528 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
1529 targets matched by those patterns.
1530 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1531 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1532 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1533 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1534 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1535 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1536 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1537 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1538 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1539 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1540 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1541 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1542 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1543 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1544 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1545 Make code for Solaris 7 and greater unconditional for Solaris.
1546 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1547 Remove --with-* handling.
1548 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1549 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1550 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1551 LINK_OS_WINDISS_SPEC): Remove.
1552 * config/rs6000/sysv4.opt (mwindiss): Remove.
1553 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1554 * configure: Regenerate.
1555 * doc/cpp.texi: Don't mention BeOS.
1556 * doc/extend.texi (interrupt): Don't mention MS1.
1557 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1558 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1559 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1560 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1561 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1563 * doc/invoke.texi (MT Options): Remove.
1564 (-mwindiss): Remove.
1565 (CRIS Options): Remove cris-axis-aout references.
1566 (HPPA Options): Don't mention hppa1.1-*-pro.
1567 * doc/md.texi: (MorphoTech family): Remove.
1568 * libgcc2.c: Don't handle UWIN.
1569 * config/alpha/t-unicosmk: Remove.
1570 * config/alpha/unicosmk.h: Remove.
1571 * config/arm/kaos-arm.h: Remove.
1572 * config/arm/kaos-strongarm.h: Remove.
1573 * config/arm/strongarm-coff.h: Remove.
1574 * config/arm/strongarm-elf.h: Remove.
1575 * config/arm/strongarm-pe.h: Remove.
1576 * config/arm/t-strongarm-pe: Remove.
1577 * config/arm/t-xscale-coff: Remove.
1578 * config/arm/t-xscale-elf: Remove.
1579 * config/arm/xscale-coff.h: Remove.
1580 * config/arm/xscale-elf.h: Remove.
1581 * config/chorus.h: Remove.
1582 * config/cris/aout.h: Remove.
1583 * config/cris/aout.opt: Remove.
1584 * config/cris/t-aout: Remove.
1585 * config/i386/beos-elf.h: Remove.
1586 * config/i386/kaos-i386.h: Remove.
1587 * config/i386/ptx4-i.h: Remove.
1588 * config/i386/sco5.h: Remove.
1589 * config/i386/sco5.opt: Remove.
1590 * config/i386/sysv4-cpp.h: Remove.
1591 * config/i386/sysv5.h: Remove.
1592 * config/i386/t-beos: Remove.
1593 * config/i386/t-sco5: Remove.
1594 * config/i386/t-uwin: Remove.
1595 * config/i386/uwin.asm: Remove.
1596 * config/i386/uwin.h: Remove.
1597 * config/kaos.h: Remove.
1598 * config/mips/windiss.h: Remove.
1599 * config/mt: Remove directory.
1600 * config/pa/pa-osf.h: Remove.
1601 * config/pa/pa-pro-end.h: Remove.
1602 * config/pa/t-pro: Remove.
1603 * config/ptx4.h: Remove.
1604 * config/rs6000/beos.h: Remove.
1605 * config/rs6000/kaos-ppc.h: Remove.
1606 * config/rs6000/t-beos: Remove.
1607 * config/rs6000/windiss.h: Remove.
1608 * config/sh/kaos-sh.h: Remove.
1609 * config/sol2-6.h: Remove.
1610 * config/sparc/sol26-sld.h: Remove.
1611 * config/sparc/sysv4-only.h: Remove.
1612 * config/vax/bsd.h: Remove.
1613 * config/vax/t-memfuncs: Remove.
1614 * config/vax/ultrix.h: Remove.
1615 * config/vax/vaxv.h: Remove.
1616 * config/windiss.h: Remove.
1618 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1620 PR rtl-optimization/36438
1621 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1622 for vector shifts with constant scalar shift operands.
1624 2008-06-06 Sandip Matte <sandip@rmicorp.com>
1626 * doc/invoke.texi: Document -march=xlr.
1627 * config/mips/xlr.md: New file.
1628 * config/mips/mips.md: Include it.
1630 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1631 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1632 (mips_rtx_cost_data): Likewise.
1634 2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
1636 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1637 PRE_INC and PRE_DEC cases.
1639 2008-06-06 Jakub Jelinek <jakub@redhat.com>
1641 PR rtl-optimization/36419
1642 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1643 the emitting jump insn.
1646 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1647 is not bool, boolify the whole *expr_p and convert to the desired type.
1649 2008-06-06 Jakub Jelinek <jakub@redhat.com>
1651 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1652 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1653 Add omp_private_outer_ref hook, add another argument to
1654 omp_clause_default_ctor hook.
1655 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1656 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1657 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1658 hook_tree_tree_tree_tree_null.
1659 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1660 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1661 * hooks.c (hook_tree_tree_tree_tree_null): New function.
1662 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1663 * tree.def (OMP_TASK): New tree code.
1664 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1665 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1666 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1667 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1668 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1669 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1670 OMP_CLAUSE_COLLAPSE_EXPR): Define.
1671 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1672 (OMP_DIRECTIVE_P): Add OMP_TASK.
1673 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1674 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1675 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1676 and OMP_CLAUSE_UNTIED entries.
1677 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
1679 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1680 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1681 * tree-pretty-print.c (dump_omp_clause): Handle
1682 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1683 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1684 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1685 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
1686 warning about unsigned iterators. Change decl/init/cond/incr
1687 arguments to TREE_VECs, check arguments for all collapsed loops.
1688 (c_finish_omp_taskwait): New function.
1689 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1691 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
1692 default_function_array_conversion on init. Add par_clauses argument.
1693 If decl is present in parallel's lastprivate clause, change it to
1694 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1695 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
1696 collapse count in clauses.
1697 (c_parser_omp_for, c_parser_omp_parallel): Adjust
1698 c_parser_omp_for_loop callers.
1699 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1700 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1701 (c_parser_omp_clause_name): Handle collapse and untied clauses.
1702 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1704 (c_parser_omp_clause_schedule): Handle schedule(auto).
1705 Include correct location in the error message.
1706 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1707 and PRAGMA_OMP_CLAUSE_UNTIED.
1708 (OMP_TASK_CLAUSE_MASK): Define.
1709 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1710 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1711 * tree-nested.c (convert_nonlocal_omp_clauses,
1712 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1713 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1714 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1715 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1717 (conver_nonlocal_reference, convert_local_reference,
1718 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
1719 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1720 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1721 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1722 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1723 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1724 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1725 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1726 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1728 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1729 * c-common.h (c_finish_omp_taskwait): New prototype.
1730 * gimple-low.c (lower_stmt): Handle OMP_TASK.
1731 * tree-parloops.c (create_parallel_loop): Create 1 entry
1732 vectors for OMP_FOR_{INIT,COND,INCR}.
1733 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1734 (make_edges): Handle OMP_TASK.
1735 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1736 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1737 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1738 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1739 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1740 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1741 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1742 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1743 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1744 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1745 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1746 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1747 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1748 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1749 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1750 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1751 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1752 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1753 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1754 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1755 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1756 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1757 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1758 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1759 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1760 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1761 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
1762 original iterator is present in lastprivate clause or if
1763 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
1764 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1765 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1766 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1767 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1768 if it is set, lookup var in outer contexts too. Handle
1769 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
1770 to be implicitly determined firstprivate for task regions.
1771 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1772 if it is set, lookup var in outer contexts too. Set
1773 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1774 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1775 OMP_CLAUSE_UNTIED. Take region_type as last argument
1776 instead of in_parallel and in_combined_parallel.
1777 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1779 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1780 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
1781 (new_omp_context): Set default_kind to
1782 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1783 (omp_region_type): New enum.
1784 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1785 fields, add region_type.
1786 (new_omp_context): Take region_type as argument instead of is_parallel
1787 and is_combined_parallel.
1788 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1789 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1790 ctx->is_combined_parallel checks.
1791 (gimplify_omp_task): New function.
1792 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1794 * omp-low.c (extract_omp_for_data): Use schedule(static)
1795 for schedule(auto). Handle pointer and unsigned iterators.
1796 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
1797 Add loops argument. Extract data for collapsed OMP_FOR loops.
1798 (expand_parallel_call): Assert sched_kind isn't auto,
1799 map runtime schedule to index 3.
1800 (struct omp_for_data_loop): New type.
1801 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1802 Add loop, loops, collapse and iter_type fields.
1803 (workshare_safe_to_combine_p): Disallow combined for if
1804 iter_type is unsigned long long. Don't combine collapse > 1 loops
1805 unless all bounds and steps are constant. Adjust extract_omp_for_data
1807 (expand_omp_for_generic): Handle pointer, unsigned and long long
1808 iterators. Handle collapsed OMP_FOR loops. Adjust
1809 for struct omp_for_data changes. If libgomp function doesn't return
1810 boolean_type_node, add comparison of the return value with 0.
1811 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1812 pointer, unsigned and long long iterators. Adjust for struct
1813 omp_for_data changes.
1814 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1815 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
1816 unsigned long long. Allocate loops array, pass it to
1817 extract_omp_for_data. For collapse > 1 loops use always
1818 expand_omp_for_generic.
1819 (omp_context): Add sfield_map and srecord_type fields.
1820 (is_task_ctx, lookup_sfield): New functions.
1821 (use_pointer_for_field): Use is_task_ctx helper. Change first
1822 argument's type from const_tree to tree. Clarify comment.
1823 In OMP_TASK disallow copy-in/out sharing.
1824 (build_sender_ref): Call lookup_sfield instead of lookup_field.
1825 (install_var_field): Add mask argument. Populate both record_type
1826 and srecord_type if needed.
1827 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1829 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1830 and DECL_FIELD_OFFSET.
1831 (scan_sharing_clauses): Adjust install_var_field callers. For
1832 firstprivate clauses on explicit tasks allocate the var by value in
1833 record_type unconditionally, rather than by reference.
1834 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1835 Use is_taskreg_ctx instead of is_parallel_ctx.
1836 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1837 (create_omp_child_function_name): Add task_copy argument, use
1838 *_omp_cpyfn* names if it is true.
1839 (create_omp_child_function): Add task_copy argument, if true create
1840 *_omp_cpyfn* helper function.
1841 (scan_omp_parallel): Adjust create_omp_child_function callers.
1842 Rename parallel_nesting_level to taskreg_nesting_level.
1843 (scan_omp_task): New function.
1844 (lower_rec_input_clauses): Don't run constructors for firstprivate
1845 explicit task vars which are initialized by *_omp_cpyfn*.
1846 Pass outer var ref to omp_clause_default_ctor hook if
1847 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1848 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1849 OMP_CLAUSE_REDUCTION_INIT.
1850 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1851 avoid duplicate setting of fields. Handle
1852 OMP_CLAUSE_PRIVATE_OUTER_REF.
1853 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
1854 copy-out if TREE_READONLY, only copy-in.
1855 (expand_task_copyfn): New function.
1856 (expand_task_call): New function.
1857 (struct omp_taskcopy_context): New type.
1858 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1860 (lower_omp_parallel): Rename to...
1861 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
1862 Call create_task_copyfn if srecord_type is needed. Adjust
1864 (task_shared_vars): New variable.
1865 (check_omp_nesting_restrictions): Warn if work-sharing,
1866 barrier, master or ordered region is closely nested inside OMP_TASK.
1867 Add warnings for barrier if closely nested inside of work-sharing,
1868 ordered, or master region.
1869 (scan_omp_1): Call check_omp_nesting_restrictions even for
1870 GOMP_barrier calls. Rename parallel_nesting_level to
1871 taskreg_nesting_level. Handle OMP_TASK.
1872 (lower_lastprivate_clauses): Even if some lastprivate is found on a
1873 work-sharing construct, continue looking for them on parent parallel
1875 (lower_omp_for_lastprivate): Add lastprivate clauses
1876 to the beginning of dlist rather than end. Adjust for struct
1877 omp_for_data changes.
1878 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1879 not after it. Handle collapsed OMP_FOR loops, adjust for
1880 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1881 (get_ws_args_for): Adjust extract_omp_for_data caller.
1882 (scan_omp_for): Handle collapsed OMP_FOR
1883 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1884 (lower_omp_single_simple): If libgomp function doesn't return
1885 boolean_type_node, add comparison of the return value with 0.
1886 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1887 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
1888 (parallel_nesting_level): Rename to...
1889 (taskreg_nesting_level): ... this.
1890 (is_taskreg_ctx): New function.
1891 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1893 (execute_lower_omp): Rename parallel_nesting_level to
1894 taskreg_nesting_level.
1895 (expand_omp_parallel): Rename to...
1896 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
1897 Call omp_task_call for OMP_TASK regions.
1898 (expand_omp): Adjust caller, handle OMP_TASK.
1899 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1901 * bitmap.c (bitmap_default_obstack_depth): New variable.
1902 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1903 if argument is NULL and bitmap_default_obstack is already initialized.
1904 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1906 * matrix-reorg.c (matrix_reorg): Likewise.
1908 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1910 * config/i386/i386.md (*indirect_jump): Macroize using P
1911 mode iterator. Remove !TARGET_64BIT from insn constraints.
1912 (*tablejump_1): Ditto.
1913 (*indirect_jump_rex64): Remove insn pattern.
1914 (*tablejump_1_rex64): Ditto.
1915 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1916 and eh_return_si insn patterns.
1918 2008-06-06 Richard Guenther <rguenther@suse.de>
1920 * tree-ssa-structalias.c (merge_smts_into): Remove.
1921 (find_what_p_points_to): Do not bother to compute the
1922 points-to set for pt_anything pointers.
1923 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1924 for pt_anything pointers is ok.
1926 2008-06-06 Jan Hubicka <jh@suse.cz>
1928 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1930 2008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1932 * cgraph.c: Fix typos in comments.
1933 (cgraph_availability_names): Fix string typo.
1934 * fold-const.c: Fix typos in comments.
1935 (fold_binary): Fix typo in warning.
1936 * genautomata.c: Fix typos in comments.
1937 (check_presence_pattern_sets): Fix typo in local variable.
1938 (output_description): Fix typo in output.
1939 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1940 * hwint.h: Likewise.
1941 * matrix-reorg.c (check_allocation_function): Likewise.
1942 * omega.c (smooth_weird_equations): Likewise.
1943 * auto-inc-dec.c: Fix typos in comments.
1944 * bb-reorder.c: Likewise.
1945 * builtins.c: Likewise.
1946 * c-common.c: Likewise.
1947 * c-cppbuiltin.c: Likewise.
1948 * c-parser.c: Likewise.
1949 * c-pretty-print.c: Likewise.
1950 * cfgcleanup.c: Likewise.
1951 * cfgexpand.c: Likewise.
1952 * cfghooks.c: Likewise.
1953 * cfglayout.c: Likewise.
1954 * cfgloopmanip.c: Likewise.
1955 * cgraphunit.c: Likewise.
1956 * coverage.c: Likewise.
1957 * dbxout.c: Likewise.
1958 * df-byte-scan.c: Likewise.
1959 * df-core.c: Likewise.
1960 * df-problems.c: Likewise.
1961 * df-scan.c: Likewise.
1963 * dominance.c: Likewise.
1964 * domwalk.c: Likewise.
1966 * dwarf2out.c: Likewise.
1967 * emit-rtl.c: Likewise.
1968 * et-forest.c: Likewise.
1969 * function.c: Likewise.
1970 * function.h: Likewise.
1972 * gcov-io.c: Likewise.
1975 * genattrtab.c: Likewise.
1976 * ggc-page.c: Likewise.
1977 * gimplify.c: Likewise.
1978 * gthr-lynx.h: Likewise.
1979 * haifa-sched.c: Likewise.
1980 * ipa-cp.c: Likewise.
1981 * ipa-inline.c: Likewise.
1982 * ipa-prop.h: Likewise.
1983 * ipa-pure-const.c: Likewise.
1984 * ipa-struct-reorg.c: Likewise.
1985 * ipa-struct-reorg.h: Likewise.
1986 * ipa-type-escape.c: Likewise.
1988 * loop-doloop.c: Likewise.
1989 * mips-tfile.c: Likewise.
1990 * mkmap-flat.awk: Likewise.
1991 * mkmap-symver.awk: Likewise.
1992 * modulo-sched.c: Likewise.
1993 * omp-low.c: Likewise.
1994 * optabs.c: Likewise.
1995 * optabs.h: Likewise.
1997 * passes.c: Likewise.
1998 * postreload-gcse.c: Likewise.
1999 * postreload.c: Likewise.
2000 * predict.c: Likewise.
2001 * pretty-print.h: Likewise.
2002 * profile.c: Likewise.
2003 * protoize.c: Likewise.
2004 * ra-conflict.c: Likewise.
2006 * recog.c: Likewise.
2007 * regclass.c: Likewise.
2009 * reload.c: Likewise.
2010 * rtl-error.c: Likewise.
2011 * rtlanal.c: Likewise.
2013 * sched-rgn.c: Likewise.
2016 * target.h: Likewise.
2017 * tree-dfa.c: Likewise.
2018 * tree-eh.c: Likewise.
2019 * tree-flow-inline.h: Likewise.
2020 * tree-inline.c: Likewise.
2021 * tree-into-ssa.c: Likewise.
2022 * tree-loop-distribution.c: Likewise.
2023 * tree-nested.c: Likewise.
2024 * tree-parloops.c: Likewise.
2025 * tree-pass.h: Likewise.
2026 * tree-pretty-print.c: Likewise.
2027 * tree-profile.c: Likewise.
2028 * tree-scalar-evolution.c: Likewise.
2029 * tree-sra.c: Likewise.
2030 * tree-ssa-alias-warnings.c: Likewise.
2031 * tree-ssa-ccp.c: Likewise.
2032 * tree-ssa-coalesce.c: Likewise.
2033 * tree-ssa-dom.c: Likewise.
2034 * tree-ssa-dse.c: Likewise.
2035 * tree-ssa-forwprop.c: Likewise.
2036 * tree-ssa-live.c: Likewise.
2037 * tree-ssa-live.h: Likewise.
2038 * tree-ssa-loop-im.c: Likewise.
2039 * tree-ssa-loop-ivopts.c: Likewise.
2040 * tree-ssa-loop-niter.c: Likewise.
2041 * tree-ssa-loop-prefetch.c: Likewise.
2042 * tree-ssa-phiopt.c: Likewise.
2043 * tree-ssa-phiprop.c: Likewise.
2044 * tree-ssa-sccvn.c: Likewise.
2045 * tree-ssa-ter.c: Likewise.
2046 * tree-ssa-threadupdate.c: Likewise.
2047 * tree-ssa.c: Likewise.
2048 * tree-vect-analyze.c: Likewise.
2049 * tree-vect-transform.c: Likewise.
2050 * tree-vectorizer.c: Likewise.
2051 * tree-vn.c: Likewise.
2052 * tree-vrp.c: Likewise.
2054 * tree.def: Likewise.
2056 * unwind-dw2-fde.c: Likewise.
2057 * unwind.inc: Likewise.
2058 * value-prof.c: Likewise.
2059 * vmsdbgout.c: Likewise.
2061 2008-06-05 David Edelsohn <edelsohn@gnu.org>
2063 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2064 always place FP constants in the TOC for TARGET_POWERPC64.
2065 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2067 2008-06-05 Joseph Myers <joseph@codesourcery.com>
2069 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2070 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2071 enable for TARGET_E500_DOUBLE.
2072 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2073 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2074 floating-point modes like integer modes for E500 double.
2075 (rs6000_legitimate_offset_address_p): Likewise.
2076 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
2077 addressing for DDmode for E500 double.
2078 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2079 modes as using 64-bits of registers for E500 double.
2080 (spe_build_register_parallel): Do not handle DDmode or TDmode.
2081 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2082 specially for E500 double.
2083 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2084 TDmode for E500 double.
2085 (rs6000_gimplify_va_arg): Only handle SDmode in registers
2086 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2087 (rs6000_split_multireg_move): Do not handle TDmode specially for
2089 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2090 using 64-bit registers for E500 double.
2091 (emit_frame_save): Do not handle DDmode specially for E500 double.
2092 (gen_frame_mem_offset): Likewise.
2093 (rs6000_function_value): Do not call spe_build_register_parallel
2094 for DDmode or TDmode.
2095 (rs6000_libcall_value): Likewise.
2096 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2097 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2100 2008-06-04 H.J. Lu <hongjiu.lu@intel.com>
2102 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2105 2008-06-04 Junjie Gu <jgu@tensilica.com>
2107 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2108 comparison for frame pointers.
2110 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
2113 * config/avr/avr.h (PUSH_ROUNDING): Remove.
2115 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
2118 * builtins.c (expand_builtin_signbit): Don't take lowpart when
2119 register is already smaller or equal to required mode.
2121 2008-06-04 Xinliang David Li <davidxl@google.com>
2123 * tree-call-cdce.c: New file.
2124 (cond_dead_built_in_calls): New static variable.
2125 (input_domain): New struct.
2126 (check_pow): New function.
2127 (check_builtin_call): Ditto.
2128 (check_target_format): Ditto.
2129 (is_call_dce_candidate): Ditto.
2130 (gen_one_condition): Ditto.
2131 (gen_conditions_for_domain): Ditto.
2132 (get_domain): Ditto.
2133 (gen_conditions_for_pow_cst_base): Ditto.
2134 (gen_conditions_for_pow_int_base): Ditto.
2135 (gen_conditions_for_pow): Ditto.
2136 (get_no_error_domain): Ditto.
2137 (gen_shrink_wrap_conditions): Ditto.
2138 (shrink_wrap_one_built_in_call): Ditto.
2139 (shink_wrap_conditional_dead_built_in_calls): Ditto.
2140 (tree_call_cdce): Ditto.
2141 (gate_call_cdce): Ditto.
2142 (pass_call_cdce): New gimple pass.
2143 * passes.c: (init_optimization_passes): New pass.
2144 * tree-pass.h: New pass declaration.
2145 * opts.c (decode_options): New flag setting.
2146 * common.opt: Add -ftree-builtin-call-dce flag.
2147 * Makefile.in: Add new source file.
2148 * tempvar.def: New tv_id.
2149 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2151 2008-06-04 Richard Guenther <rguenther@suse.de>
2153 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2154 (is_call_clobbered): Always check var_ann->call_clobbered.
2155 (mark_call_clobbered): Always set var_ann->call_clobbered.
2156 (clear_call_clobbered): Always clear var_ann->call_clobbered.
2157 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2158 (reset_alias_info): Clear call clobbering info on MTAGs and
2160 (set_pt_anything): Set pt_global_mem.
2161 (create_tag_raw): Adjust comment.
2162 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2164 2008-06-04 Joseph Myers <joseph@codesourcery.com>
2165 Maxim Kuvyrkov <maxim@codesourcery.com>
2167 * config/m68k/m68k.opt (mxgot): New option.
2168 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2169 (m68k_output_addr_const_extra): New.
2170 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2171 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2172 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2173 * doc/invoke.texi (M680x0 Options): Document -mxgot.
2175 2008-06-04 Richard Guenther <rguenther@suse.de>
2177 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2178 negative or non-representable offsets.
2180 2008-06-03 H.J. Lu <hongjiu.lu@intel.com>
2182 * config/i386/i386.c (ix86_gen_leave): New.
2183 (ix86_gen_pop1): Likewise.
2184 (ix86_gen_add3): Likewise.
2185 (ix86_gen_sub3): Likewise.
2186 (ix86_gen_sub3_carry): Likewise.
2187 (ix86_gen_one_cmpl2): Likewise.
2188 (ix86_gen_monitor): Likewise.
2189 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2190 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2191 ix86_gen_one_cmpl2 and ix86_gen_monitor.
2192 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2193 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2194 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2195 (ix86_expand_epilogue): Updated.
2196 (print_operand): Handle integer register operand for 'z'.
2197 (ix86_expand_strlensi_unroll_1): Likewise.
2198 (ix86_expand_strlen): Likewise.
2199 (ix86_expand_builtin): Likewise.
2200 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2201 mov{q}/mov{l} and add{q}/add{l}.
2203 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
2205 * config/i386/i386.md (P): New mode iterator.
2206 (SFmode push_operand splitter): Macroize DImode and SImode pushes
2207 using P mode iterator.
2208 (DFmode push_operand splitter): Ditto.
2209 (XFmode push_operand splitter): Ditto.
2210 (DFmode float_extend SFmode push_operand splitter): Ditto.
2211 (XFmode float_extend SFmode push_operand splitter): Do not generate
2212 SImode pushes for 64bit target. Macroize Dimode and SImode
2213 pushes using P mode iterator.
2214 (XFmode float_extend DFmode push_operand splitter): Ditto.
2216 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
2218 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2219 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2220 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2222 (ix86_call_abi_override): Remove check for call_used_regs.
2224 2008-06-03 Richard Guenther <rguenther@suse.de>
2226 * tree-ssa-structalias.c (find_func_aliases): Add constraints
2227 for the lhs of calls if the return type contains pointers.
2229 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
2231 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2232 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2233 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2234 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2235 of cfun and DEFAULT_ABI to deceide abi mode.
2237 (REG_PARM_STACK_SPACE): Removed.
2238 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2239 (STACK_BOUNDARY): Use default target to deceide stack boundary.
2240 * config/i386/i386-protos.h (ix86_cfun_abi): New.
2241 (ix86_function_abi): Likewise.
2242 (ix86_function_type_abi): Likewise.
2243 (ix86_call_abi_override): Likewise.
2244 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2245 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2246 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2247 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2249 (X86_64_REGPARM_MAX): New.
2250 (X86_64_SSE_REGPARM_MAX): New.
2251 (X64_REGPARM_MAX): New.
2252 (X64_SSE_REGPARM_MAX): New.
2253 (X86_32_REGPARM_MAX): New.
2254 (X86_32_SSE_REGPARM_MAX): New.
2255 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2256 (ix86_function_regparm): Handle user calling abi.
2257 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2258 by DEFAULT_ABI versus SYSV_ABI check.
2259 (ix86_reg_parm_stack_space): New.
2260 (ix86_function_type_abi): New.
2261 (ix86_call_abi_override): New.
2262 (ix86_function_abi): New.
2263 (ix86_cfun_abi): New.
2264 (init_cumulative_args): Call abi specific initialization.
2265 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2266 (function_arg_64): Extend SSE_REGPARM_MAX check.
2267 (function_arg (): Remove TARGET_64BIT_MS_ABI.
2268 (ix86_pass_by_reference): Likewise.
2269 (ix86_function_value_regno_p): Likewise.
2270 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2271 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2272 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2273 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2274 (setup_incoming_varargs_64): Adjust regparm for call abi.
2275 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2276 (ix86_va_start): Likewise.
2277 (ix86_gimplify_va_arg): Likewise.
2278 (ix86_expand_prologue): Likewise.
2279 (output_pic_addr_const): Likewise.
2280 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2281 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2282 (x86_output_mi_thunk): Likewise.
2283 (x86_function_profiler): Likewise.
2284 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2285 (SYSV_ABI, MS_ABI): New constants.
2287 (init_regs): Add prototype of function in regclass.c file.
2288 (OVERRIDE_ABI_FORMAT): New.
2289 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2290 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2291 (OUTGOING_REG_PARM_STACK_SPACE): New.
2292 (ix86_reg_parm_stack_space): New prototype.
2293 (CUMULATIVE_ARGS): Add call_abi member.
2294 (machine_function): Add call_abi member.
2295 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2296 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2298 2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
2301 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2302 (avr_builtin_setjmp_frame_value): New function.
2303 * config/avr/avr.md (nonlocal_goto_receiver): Define.
2304 (nonlocal_goto): Define.
2306 2008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
2308 * config/mips/mips.c (mips_emit_loadgp): Return early if
2309 there is nothing do to, otherwise emit a blockage if
2310 !TARGET_EXPLICIT_RELOCS || crtl->profile.
2311 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2313 2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2315 * configure.ac: Drop unneeded backslash ending up in config.in.
2316 * acinclude.m4: Likewise.
2317 * config.in: Regenerate.
2319 2008-05-26 Jan Hubicka <jh@suse.cz>
2321 * predict.c (maybe_hot_frequency_p): Break out of...
2322 (maybe_hot_bb_p): ... here.
2323 (maybe_hot_edge_p): New.
2324 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2325 * basic-block.h (maybe_hot_edge_p): Declare.
2327 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
2329 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2330 (*cmpfp_<mode>_cc): Ditto.
2331 (*fp_jcc_8<mode>_387): Ditto.
2332 (*fop_<MODEF:mode>_2_i387): Ditto.
2333 (*fop_<MODEF:mode>_3_i387): Ditto.
2334 (*fop_xf_2_i387): Ditto.
2335 (*fop_xf_3_i387): Ditto.
2337 2008-06-02 Tomas Bily <tbily@suse.cz>
2339 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2341 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2343 * config/mips/mips.c (mips_valid_offset_p): New function.
2344 (mips_valid_lo_sum_p): Likewise.
2345 (mips_classify_address): Use them.
2346 (mips_force_address): New function.
2347 (mips_legitimize_address): Use it.
2348 * config/mips/mips.md (MOVE128): New mode iterator.
2349 (movtf): Require TARGET_64BIT. Remove empty strings.
2350 (*movtf_internal): Rename to...
2351 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
2352 of "R" and use {,fp}{load,store} attributes instead of "multi".
2353 Use a separate define_split.
2354 (*movtf_mips16): New pattern.
2356 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2358 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2359 * config/mips/mips.c (mips_expand_before_return): New function.
2360 (mips_expand_epilogue): Call it.
2361 * config/mips/mips.md (return): Turn into a define_expand.
2362 (*return): New insn.
2364 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2366 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2367 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2368 functions. Do not emit uses and clobbers of CONCATs; individually
2369 use and clobber their operands.
2370 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2371 gen_clobber, emit_use and gen_use.
2372 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2373 (expand_builtin_return): Likewise.
2374 * cfgbuild.c (count_basic_blocks): Likewise.
2375 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2376 * explow.c (emit_stack_restore): Likewise.
2377 * expmed.c (extract_bit_field_1): Likewise.
2378 * expr.c (convert_move, emit_move_complex_parts): Likewise.
2379 (emit_move_multi_word, store_constructor): Likewise.
2380 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2381 (thread_prologue_and_epilogue_insns): Likewise.
2382 * lower-subreg.c (resolve_simple_move): Likewise.
2383 * optabs.c (widen_operand, expand_binop): Likewise.
2384 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2385 * reload.c (find_reloads): Likewise.
2386 * reload1.c (eliminate_regs_in_insn): Likewise.
2387 * stmt.c (expand_nl_goto_receiver): Likewise.
2388 * config/alpha/alpha.md (builtin_longjmp): Likewise.
2389 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2390 * config/arm/arm.c (arm_load_pic_register): Likewise.
2391 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2392 * config/arm/arm.md (untyped_return): Likewise.
2393 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2394 * config/avr/avr.c (expand_prologue): Likewise.
2395 * config/bfin/bfin.c (do_unlink): Likewise.
2396 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2397 * config/cris/cris.c (cris_expand_prologue): Likewise.
2398 * config/darwin.c (machopic_indirect_data_reference): Likewise.
2399 (machopic_legitimize_pic_address): Likewise.
2400 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2401 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2402 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2403 (ix86_expand_convert_uns_didf_sse): Likewise.
2404 (ix86_expand_vector_init_general): Likewise.
2405 * config/ia64/ia64.md (eh_epilogue): Likewise.
2406 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2407 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2408 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2409 (config/iq2000/iq2000.c): Likewise.
2410 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2411 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2412 (builtin_longjmp): Likewise.
2413 * config/mn10300/mn10300.md (call, call_value): Likewise.
2414 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2415 * config/pdp11/pdp11.md (abshi2): Likewise.
2416 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2417 * config/s390/s390.c (s390_emit_prologue): Likewise.
2418 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2419 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2420 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2421 * config/sh/sh.c (prepare_move_operands): Likewise.
2422 (output_stack_adjust, sh_expand_epilogue): Likewise.
2423 (sh_set_return_address, sh_expand_t_scc): Likewise.
2424 * config/sparc/sparc.c (load_pic_register): Likewise.
2425 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2426 * config/spu/spu.c (spu_expand_epilogue): Likewise.
2427 * config/v850/v850.c (expand_epilogue): Likewise.
2429 2008-05-31 Anatoly Sokolov <aesok@post.ru>
2431 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2432 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2433 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2434 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
2435 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
2436 stack pointer register.
2437 (output_movhi): Remove code for interrupt specific writing to the
2438 stack pointer register.
2440 2008-05-31 Richard Guenther <rguenther@suse.de>
2442 PR tree-optimization/34244
2443 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2444 (tree_expr_nonzero_warnv_p): Likewise.
2445 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2446 ssa_name_nonnegative_p.
2447 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2448 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2449 not tree_expr_nonzero_warnv_p.
2451 PR tree-optimization/36262
2453 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
2455 PR tree-optimization/34244
2456 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2457 (record_numbers_of_iterations): New function.
2458 (execute_vrp): Cache the numbers of iterations of loops.
2459 * tree-scalar-evolution.c (scev_reset_except_niters):
2461 (scev_reset): Use scev_reset_except_niters.
2462 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2464 2008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
2466 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2467 __WORKAROUND_RETS when appropriate.
2469 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
2471 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2472 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2474 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2475 *fop_df_comm_sse insn patterns using MODEF mode iterator.
2476 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2477 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2478 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2479 *fop_df_1_mixed insn patterns using MODEF mode iterator.
2480 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2481 *fop_df_1_sse insn patterns using MODEF mode iterator.
2482 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2483 *fop_df_1_i387 insn patterns using MODEF mode iterator.
2484 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2485 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2486 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2487 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2488 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2489 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2490 (*fop_xf_4_i387): Use <MODE> for mode attribute.
2491 (*fop_xf_5_i387): Ditto.
2492 (*fop_xf_6_i387): Ditto.
2494 2008-05-30 Richard Guenther <rguenther@suse.de>
2496 * builtins.c (build_string_literal): Avoid generating
2497 a non-gimple_val result.
2499 2008-05-30 DJ Delorie <dj@redhat.com>
2501 * exec-tool.in: Use an environment variable (private) instead of a
2502 file (shared) as a semaphore, so as to not break parallel builds.
2504 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
2506 * optabs.c (maybe_encapsulate_block): Remove.
2507 (emit_libcall_block): Adjust accordingly.
2508 * optabs.h (maybe_encapsulate_block): Remove prototype.
2510 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2511 Don't use maybe_encapsulate_block.
2513 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
2515 * config/rs6000/rs6000.c (rs6000_legitimize_address,
2516 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2517 rtx is a SYMBOL_REF before calling get_pool_constant.
2519 2008-05-30 Eric Botcazou <ebotcazou@adacore.com>
2521 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2523 2008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
2525 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2526 rather than OS names to choose INO_T_EQ definition.
2527 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2528 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2530 2008-05-29 Daniel Franke <franke.daniel@gmail.com>
2533 * config/darwin-f.c: New.
2534 * config/t-darwin: Added rule to build darwin-f.o.
2535 * config.gcc: Defined new variable, fortran_target_objs.
2536 (*-*-darwin*): Set fortran_target_objs.
2537 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2538 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2539 * configure: Regenerated.
2541 2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
2544 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2545 canonical type if needed.
2547 2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
2549 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2551 2008-05-29 Richard Guenther <rguenther@suse.de>
2553 PR tree-optimization/36343
2554 PR tree-optimization/36346
2555 PR tree-optimization/36347
2556 * tree-flow.h (clobber_what_p_points_to): Declare.
2557 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2558 pointed-to variable is dereferenced is irrelevant to whether
2559 the pointer can access the pointed-to variable.
2560 (clobber_what_p_points_to): New function.
2561 * tree-ssa-alias.c (set_initial_properties): Use it.
2562 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2563 call clobber check for NMTs.
2565 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
2567 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2568 for printing gcov_type.
2570 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
2572 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2573 and the eh region information.
2574 * value-prof.c (gimple_move_stmt_histograms): New function.
2575 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2577 2008-05-28 Andreas Tobler <a.tobler@schweiz.org>
2579 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2581 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
2583 * value-prof.c (tree_ic_transform): Print counts.
2584 * tree-profile.c (tree_gen_ic_func_profiler):
2585 Clear __gcov_indreict_call_callee variable to avoid misattribution
2588 2008-05-28 Rafael Espindola <espindola@google.com>
2590 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2593 2008-05-28 Richard Guenther <rguenther@suse.de>
2595 PR tree-optimization/36339
2596 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2597 and clobbering code out of the loop.
2599 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
2601 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2604 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2605 s390_contiguous_bitmask_p, s390_symref_operand_p,
2606 s390_check_symref_alignment, s390_reload_larl_operand,
2607 s390_reload_symref_address): New functions.
2608 (s390_branch_condition_mnemonic): Support compare and branch
2610 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2611 and 'W' constraints.
2612 (s390_secondary_reload): Add secondary reloads for unaligned
2613 symbol refs or symbol refs to floating point or QI/TI mode
2615 (legitimate_address_p): Accept symbol references as addresses.
2616 (s390_expand_insv): Use rotate and insert selected bits
2617 instruction for insv when building for z10.
2618 (print_operand_address): Handle symbol ref addresses.
2619 (print_operand): Output modifier 'c' added for signed byte values.
2620 (s390_encode_section_info): Mark symbol refs with
2621 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2623 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2624 (length attribute): RRF, RRR have 4 byte length.
2625 (FPALL, INTALL): New mode iterators added.
2626 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2627 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2628 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2629 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2630 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2631 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2632 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2633 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2635 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2636 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2637 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2638 reload<INTALL:mode><P:mode>_toreg_z10,
2639 reload<FPALL:mode><P:mode>_tomem_z10,
2640 reload<FPALL:mode><P:mode>_toreg_z10,
2641 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2642 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2643 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2644 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2646 (movmem, clrmem, cmpmem): New splitters added.
2648 * config/s390/predicates.md (larl_operand): Use
2649 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2650 SYMBOL_REF_ALIGN1_P.
2651 (s390_signed_integer_comparison,
2652 s390_unsigned_integer_comparison): New predicates.
2654 * config/s390/s390-protos.h (s390_check_symref_alignment,
2655 s390_contiguous_bitmask_p, s390_reload_larl_operand,
2656 s390_reload_symref_address,
2657 s390_compare_and_branch_condition_mask): Prototypes added.
2659 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2660 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2661 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2663 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
2665 * config/s390/s390.c (z10_cost): New cost function for z10.
2666 (s390_handle_arch_option, override_options): Support -march=z10 switch.
2667 (s390_issue_rate): Adjust issue rate for z10.
2668 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2669 (processor_flags): Add PF_Z10.
2670 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2671 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2672 * gcc/config.gcc: Add z10.
2674 2008-05-28 Richard Guenther <rguenther@suse.de>
2676 PR tree-optimization/36291
2677 * tree-flow. h (struct gimple_df): Remove var_anns member.
2678 * tree-flow-inline.h (gimple_var_anns): Remove.
2679 (var_ann): Simplify.
2680 * tree-dfa.c (create_var_ann): Simplify.
2681 (remove_referenced_var): Clear alias info from var_anns of globals.
2682 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2683 (delete_tree_ssa): Clear alias info from var_anns of globals.
2684 Do not free var_anns.
2685 (var_ann_eq): Remove.
2686 (var_ann_hash): Likewise.
2688 2008-05-28 Mark Shinwell <shinwell@codesourcery.com>
2690 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2691 and loongson2f entries.
2692 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2693 * config/mips/mips.h (processor_type): Add Loongson-2E
2694 and Loongson-2F entries.
2695 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2696 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2697 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2698 * doc/invoke.texi (MIPS Options): Document loongson2e
2699 and loongson2f processor names.
2701 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
2705 * config/i386/i386.c (ix86_function_arg_boundary): Use
2706 alignment of canonical type.
2707 (ix86_expand_vector_move): Check unaligned memory access for
2710 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
2712 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2713 Moved to the front of file.
2715 2008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
2716 H.J. Lu <hongjiu.lu@intel.com>
2718 * dwarf2out.c (current_fde): New.
2720 (lookup_cfa:): Likewise.
2721 (dwarf2out_end_epilogue): Likewise.
2722 (dwarf2out_note_section_used): Likewise.
2724 2008-05-27 Michael Matz <matz@suse.de>
2727 * c.opt (Wenum-compare): New warning option.
2728 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
2730 2008-05-27 Michael Matz <matz@suse.de>
2733 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2735 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2736 into memory as tail calls.
2738 2008-05-27 Richard Guenther <rguenther@suse.de>
2740 PR tree-optimization/36339
2741 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2742 pointers cause all addressable variables to be call clobbered.
2744 2008-05-27 Richard Guenther <rguenther@suse.de>
2746 PR tree-optimization/36245
2747 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2749 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2751 * config/s390/s390.md: Replace all occurences of the 'm'
2752 constraint with 'RT'.
2754 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2756 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2758 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2760 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2761 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2762 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2764 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2766 * reload.c: (find_reloads): Skip alternatives according to the
2767 "enabled" attribute. Constify the constraint variable.
2768 * recog.c (get_attr_enabled): Add default implementation.
2769 (extract_insn): Set the alternative_enabled_p array
2770 in the recog_data struct.
2771 (preprocess_constraints, constrain_operands): Skip
2772 alternatives according to the "enabled" attribute
2773 * recog.h (struct recog_data): New field alternative_enabled_p.
2774 (skip_alternative): New inline function.
2775 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2776 (record_reg_classes): Skip alternative according to the
2777 "enabled" attribute.
2779 * doc/md.texi: Add documention for the "enabled" attribute.
2781 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2783 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2784 * postreload.c (reload_cse_simplify_operands): Replace 'm'
2785 constraint with TARGET_MEM_CONSTRAINT.
2786 * recog.c (asm_operand_ok, preprocess_constraints,
2787 constrain_operands): Likewise.
2788 * regclass.c (record_reg_classes): Likewise.
2789 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2790 * reload1.c (maybe_fix_stack_asms): Likewise.
2791 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2792 * recog.h: Adjust comment.
2793 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2794 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2795 * doc/md.texi: Add a note to description of 'm' constraint.
2796 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2798 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
2800 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2801 that the bitfield is of integral type before testing its precision.
2803 2008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2804 Sa Liu <saliu@de.ibm.com>
2806 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
2807 __modti3, __udivti3, __umodti3 and __udivmodti4.
2808 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2809 that implement TImode mul and div functions.
2810 * config/spu/multi3.c: New. Implement __multi3.
2811 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2812 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2815 2008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
2817 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2818 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2819 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2820 tls_sysv_suffix): New mode and mode attribute iterators.
2821 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2822 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2823 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2824 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2825 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2828 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
2830 PR tree-optimization/36329
2831 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2832 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2833 * cgraphbuild.c (initialize_inline_failed): Use the latter
2834 macro in lieu of the former.
2835 * ipa-inline.c (cgraph_mark_inline): Likewise.
2836 (cgraph_decide_inlining_of_small_function): Likewise.
2837 (cgraph_decide_inlining): Likewise.
2838 (cgraph_decide_inlining_incrementally): Likewise.
2840 2008-05-26 Tristan Gingold <gingold@adacore.com>
2841 Anatoly Sokolov <aesok@post.ru>
2843 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2844 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2845 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
2846 optimization for 'avr6' architecture.
2848 2008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
2851 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2853 2008-05-26 Richard Guenther <rguenther@suse.de>
2855 * tree-ssa-sccvn.c (expr_has_constants): Declare.
2856 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2858 2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
2861 * caller-save.c (insert_restore): Verify alignment of spill space.
2862 (insert_save): Likewise.
2863 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2864 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2865 (STACK_SLOT_ALIGNMENT): Likewise.
2866 * function.c (LOCAL_ALIGNMENT): Removed.
2867 (get_stack_local_alignment): New.
2868 (assign_stack_local): Use it. Set alignment on stack slot.
2869 (assign_stack_temp_for_type): Use get_stack_local_alignment.
2870 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2871 (STACK_SLOT_ALIGNMENT): New.
2872 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2873 stack slot in XFmode.
2875 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2877 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
2880 * config/i386/i386.md (allocate_stack_worker_64): Make sure
2881 argument operand in rax isn't removed.
2883 2008-05-26 Richard Guenther <rguenther@suse.de>
2886 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2887 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
2889 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
2892 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2894 2008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
2896 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2897 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2899 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
2901 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2902 build a trampoline if we don't want one.
2903 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2904 return zero for nested functions if we don't want a trampoline.
2906 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
2908 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2910 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
2913 * c.opt: Removed undocumented option '-lang-fortran'.
2914 * c-common.h: Removed global variable 'lang_fortran'.
2915 * c-opts.c (c_common_handle_option): Removed code to handle
2916 option '-lang-fortran'. Updated includes.
2917 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2918 definition of '__GFORTRAN__'.
2919 (define__GNUC__): Reimplemented to use BASEVER and
2920 cpp_define_formatted.
2921 (builtin_define_with_value_n): Removed.
2922 * c-incpath.h: Renamed to ...
2923 * incpath.h: ... this.
2924 * c-incpath.c: Renamed to ...
2925 * incpath.c: ... this. Updated includes.
2926 * fix-header.c: Updated includes.
2927 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2928 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2929 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2931 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
2933 * tree.h: Update the table of flags used on tree nodes.
2934 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2935 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2936 (FORCED_LABEL): Add access check.
2937 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2938 (ASM_INPUT_P): Likewise.
2939 (ASM_VOLATILE_P): Likewise.
2940 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2941 (OMP_SECTION_LAST): Access private_flag directly.
2942 (OMP_RETURN_NOWAIT): Likewise.
2943 (OMP_PARALLEL_COMBINED): Likewise.
2944 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2945 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2946 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2947 deprecated_flag directly.
2949 2008-05-25 H.J. Lu <hongjiu.lu@intel.com>
2951 * final.c (frame_pointer_needed): Removed.
2952 * flags.h (frame_pointer_needed): Likewise.
2954 * function.h (rtl_data): Add frame_pointer_needed.
2955 (frame_pointer_needed): New.
2957 2008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
2959 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2961 2008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
2963 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2966 2008-05-25 Alan Modra <amodra@bigpond.net.au>
2968 * c-common.c (strip_array_types): Move function to..
2970 (get_inner_array_type): Delete.
2971 * c-common.h (strip_array_types): Move declaration to..
2973 (get_inner_array_type): Delete.
2974 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2975 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2976 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2977 * config/pa/pa.c (emit_move_sequence): Likewise.
2979 2008-05-24 H.J. Lu <hongjiu.lu@intel.com>
2981 * config/i386/i386.md (*sse_prologue_save_insn): Set length
2984 2008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
2986 * function.c: Include target hook for nonlocal_goto frame value.
2988 2008-05-24 Richard Guenther <rguenther@suse.de>
2990 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2991 variable can be only accessed through a pointer or a union.
2993 2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2995 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2996 * doc/extend.texi: Likewise.
2998 2008-05-23 DJ Delorie <dj@redhat.com>
3000 * config/m32c/jump.md (untyped_call): Add.
3002 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
3004 (m32c_address_cost): Detail costs for indirect offsets.
3006 2008-05-23 Rafael Espindola <espindola@google.com>
3008 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
3009 if a node is a SUBREG.
3010 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
3013 2008-05-23 Paul Brook <paul@codesourcery.com>
3014 Carlos O'Donell <carlos@codesourcery.com>
3016 * doc/extend.texi: Clarify use of __attribute__((naked)).
3017 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3018 * target.h (gcc_target): Add allocate_stack_slots_for_args.
3019 * function.c (use_register_for_decl): Use
3020 targetm.calls.allocate_stack_slots_for_args.
3021 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3022 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
3023 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3025 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3027 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
3029 2008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
3031 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
3032 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
3033 is only rounded once.
3035 2008-05-23 Richard Guenther <rguenther@suse.de>
3037 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
3039 2008-05-23 Uros Bizjak <ubizjak@gmail.com>
3040 Jakub Jelinek <jakub@redhat.com>
3043 * configure.ac: Handle --enable-cld.
3044 * configure: Regenerated.
3045 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
3046 * config/i386/i386.h (struct machine_function): Add needs_cld field.
3047 (ix86_current_function_needs_cld): New define.
3048 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3049 (cld): New isns pattern.
3050 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3051 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3052 * config/i386/i386.opt (mcld): New option.
3053 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3054 TARGET_CLD and ix86_current_function_needs_cld.
3055 (override_options): Use -mcld by default for 32-bit code if
3058 * doc/install.texi (Options specification): Document --enable-cld.
3059 * doc/invoke.texi (Machine Dependent Options)
3060 [i386 and x86-64 Options]: Add -mcld option.
3061 (Intel 386 and AMD x86-64 Options): Document -mcld option.
3063 2008-05-23 Kai Tietz <kai.tietz@onevison.com>
3064 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3065 (return_in_memory_64): Likewise.
3066 (return_in_memory_ms_64): Likewise.
3068 2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3070 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3071 * builtins.c (fold_builtin_fpclassify): New.
3072 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3073 * builtins.def (BUILT_IN_FPCLASSIFY): New.
3074 * c-common.c (handle_type_generic_attribute): Adjust to accept
3075 fixed arguments before an elipsis.
3076 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3077 * doc/extend.texi: Document __builtin_fpclassify.
3079 2008-05-22 Aldy Hernandez <aldyh@redhat.com>
3081 * omp-low.c (gate_expand_omp_ssa): Remove.
3082 (pass_expand_omp_ssa): Remove.
3083 (gate_expand_omp): Do not check for flag_openmp_ssa.
3084 * common.opt (-fopenmp-ssa): Remove.
3085 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3087 2008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
3089 * config/sh/sh.opt (mfixed-range): New option.
3090 * config/sh/sh-protos.h (sh_fix_range): Declare.
3091 * config/sh/sh.c (sh_fix_range): New function.
3092 * config/sh/sh.h (sh_fixed_range_str): Declare.
3093 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3095 * doc/invoke.texi (SH Options): Document -mfixed-range.
3097 2008-05-22 Kai Tietz <kai.tietz@onevision.com>
3099 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3100 it before the redeclaration.
3102 2008-05-22 Anatoly Sokolov <aesok@post.ru>
3104 * config/avr/avr.c (get_sequence_length): Add new function.
3105 (expand_prologue, expand_epilogue): Remove duplicate code.
3107 2008-05-22 Rafael Espindola <espindola@google.com>
3109 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3112 2008-05-22 H.J. Lu <hongjiu.lu@intel.com>
3114 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3115 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3117 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3118 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3119 (vect_update_misalignment_for_peel): Likewise.
3120 (vector_alignment_reachable_p): Likewise.
3121 * tree-vect-transform.c (vectorizable_load): Likewise.
3122 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3123 (get_vectype_for_scalar_type): Pass mode of scalar_type
3124 to UNITS_PER_SIMD_WORD.
3126 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3127 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3128 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3129 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3130 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3132 2008-05-22 Ira Rosen <irar@il.ibm.com>
3134 PR tree-optimization/36293
3135 * tree-vect-transform.c (vect_transform_strided_load): Don't check
3136 if the first load must be skipped because of a gap.
3138 2008-05-22 Richard Guenther <rguenther@suse.de>
3140 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
3141 more cases of offset disambiguation that is possible if
3142 strict-aliasing rules apply.
3143 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3144 for basic offset and type-based disambiguation.
3146 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3148 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3149 ix86_expand_vector_set on V16QImode for SSE4.1.
3151 2008-05-21 Tom Tromey <tromey@redhat.com>
3153 * c.opt (Wimport): Mark as undocumented.
3154 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3156 (Warning Options): Likewise.
3157 * doc/cppopts.texi: Don't mention -Wimport.
3159 2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
3161 PR tree-optimization/36287
3162 PR tree-optimization/36286
3163 * lambda-code.c (build_access_matrix): Do not use the loop->num
3164 for computing the number of induction variables: use the loop depth
3167 2008-05-21 Kai Tietz <kai.tietz@onevision.com>
3170 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3171 option -f(no-)leading-underscore.
3173 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3175 * config/i386/i386.c (ix86_expand_vector_init_general): Use
3176 GET_MODE_NUNITS (mode).
3178 2008-05-21 Peter Bergner <bergner@vnet.ibm.com>
3180 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3181 (-mmulhw): Add 464 to description.
3182 (-mdlmzb): Likewise.
3183 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3184 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3186 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3187 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3188 * config/rs6000/rs6000.md: Update comments for 464.
3190 2008-05-21 Janis Johnson <janis187@us.ibm.com>
3192 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3194 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3196 * config/i386/sse.md (vec_extractv4sf): Removed.
3197 (vec_extractv2df): Likewise.
3198 (vec_extractv2di): Likewise.
3199 (vec_extractv4si): Likewise.
3200 (vec_extractv8hi): Likewise.
3201 (vec_extractv16qi): Likewise.
3202 (vec_extract<mode>): New.
3204 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3206 * config/i386/sse.md (vec_setv4sf): Removed.
3207 (vec_setv2df): Likewise.
3208 (vec_setv2di): Likewise.
3209 (vec_setv4si): Likewise.
3210 (vec_setv8hi): Likewise.
3211 (vec_setv16qi): Likewise.
3212 (vec_set<mode>): New.
3214 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3216 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3217 goto for vec_concat and vec_interleave.
3219 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3221 * config/i386/sse.md (vec_initv4sf): Removed.
3222 (vec_initv2df): Likewise.
3223 (vec_initv2di): Likewise.
3224 (vec_initv4si): Likewise.
3225 (vec_initv8hi): Likewise.
3226 (vec_initv16qi): Likewise.
3227 (vec_init<mode>): New.
3229 2008-05-21 Joseph Myers <joseph@codesourcery.com>
3231 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3233 2008-05-21 Tom Tromey <tromey@redhat.com>
3235 * ggc-zone.c (lookup_page_table_if_allocated): New function.
3236 (zone_find_object_offset): Likewise.
3237 (gt_ggc_m_S): Likewise.
3238 (highest_bit): Likewise.
3239 * ggc-page.c (gt_ggc_m_S): New function.
3240 * stringpool.c (string_stack): Remove.
3241 (init_stringpool): Update.
3242 (ggc_alloc_string): Use ggc_alloc.
3243 (maybe_delete_ident): New function.
3244 (ggc_purge_stringpool): Likewise.
3245 (gt_ggc_m_S): Remove.
3246 * ggc-common.c (ggc_protect_identifiers): New global.
3247 (ggc_mark_roots): Call ggc_purge_stringpool. Use
3248 ggc_protect_identifiers.
3249 * ggc.h (ggc_protect_identifiers): Declare.
3250 (gt_ggc_m_S): Update.
3251 (ggc_purge_stringpool): Declare.
3252 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3253 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3255 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3257 2008-05-21 David S. Miller <davem@davemloft.net>
3259 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3262 2008-05-21 Eric Botcazou <ebotcazou@adacore.com>
3264 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3267 2008-05-20 David Daney <ddaney@avtrex.com>
3269 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3270 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3271 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3272 UNSPEC_UPDATE_GOT_VERSION): Renumber.
3273 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3274 (atomic_hiqi_op): New define_code_iterator.
3275 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3276 mips_expand_compare_and_swap_12.
3277 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3278 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
3279 (sync_<optab><mode>, sync_old_<optab><mode>,
3280 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3281 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3282 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3283 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3284 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3285 (test_and_set_12): New insn.
3286 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3287 sync_new_<optab><mode>, sync_old_nand<mode>,
3288 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
3289 clobber to operand 0 for SI and DI mode insns.
3290 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3291 mips_gen_fn_4): New typedefs.
3292 (mips_gen_fn_ptrs): Define new union type.
3293 (mips_expand_compare_and_swap_12): Remove declaration.
3294 (mips_expand_atomic_qihi): Declare function.
3295 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3296 (mips_expand_atomic_qihi): ... this. Use new generator function
3298 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3299 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3300 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3301 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3302 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3303 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3304 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3305 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3306 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3307 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3310 2008-05-20 H.J. Lu <hongjiu.lu@intel.com>
3312 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3315 2008-05-20 Anatoly Sokolov <aesok@post.ru>
3317 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3318 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3319 (avr_attribute_table): Add 'OS_main' function attribute.
3320 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3321 functions with 'OS_main' attribute.
3323 2008-05-20 Richard Guenther <rguenther@suse.de>
3325 PR tree-optimization/35204
3326 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3327 helper, split out from ...
3328 (DFS): ... here. Make the DFS walk non-recursive.
3330 2008-05-20 Sebastian Pop <sebastian.pop@amd.com>
3331 Jan Sjodin <jan.sjodin@amd.com>
3333 PR tree-optimization/36181
3334 * tree-parloops.c (loop_has_vector_phi_nodes): New.
3335 (parallelize_loops): Don't parallelize when the loop has vector
3338 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
3339 Sebastian Pop <sebastian.pop@amd.com>
3341 * tree-loop-linear.c (gather_interchange_stats): Look in the access
3342 matrix, and never look at the tree representation of the memory
3344 (linear_transform_loops): Computes parameters and access matrices.
3345 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3347 (access_matrix_get_index_for_parameter): New.
3348 * tree-data-ref.h (struct access_matrix): New.
3349 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3350 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3351 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3352 am_vector_index_for_loop): New.
3353 (struct data_reference): Add field access_matrix.
3354 (DR_ACCESS_MATRIX): New.
3355 (compute_data_dependences_for_loop): Update declaration.
3356 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3357 * lambda.h (lambda_vector_vec_p): Declared.
3358 * lambda-code.c: Depend on pointer-set.h.
3359 (lambda_collect_parameters_from_af, lambda_collect_parameters,
3360 av_for_af_base, av_for_af, build_access_matrix,
3361 lambda_compute_access_matrices): New.
3362 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3364 2008-05-20 Joseph Myers <joseph@codesourcery.com>
3366 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3369 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
3370 Sebastian Pop <sebastian.pop@amd.com>
3372 PR tree-optimization/36206
3373 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3375 (instantiate_scev_1): Rename flags to fold_conversions.
3376 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3377 outeside instantiation_loop.
3378 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3379 (evolution_function_is_affine_or_constant_p): Removed.
3380 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3382 (analyze_siv_subscript): Pass in the loop nest number.
3383 Call evolution_function_is_affine_in_loop instead of
3384 evolution_function_is_affine_p.
3385 (analyze_overlapping_iterations): Pass in the loop nest number.
3387 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
3388 Sebastian Pop <sebastian.pop@amd.com>
3390 PR tree-optimization/36206
3391 * tree-chrec.h (chrec_fold_op): New.
3392 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3395 2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
3397 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3399 (remove_duplicates): Do not set inode on non-inode systems.
3402 2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
3404 * config.gcc (tm_file): Update comments about relative pathnames.
3406 2008-05-20 Richard Guenther <rguenther@suse.de>
3408 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3409 * tree-ssa-sccvn.c (process_scc): Likewise.
3410 * tree-ssa-sink.c (execute_sink_code): Likewise.
3411 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3412 * tree-vrp.c (process_assert_insertions): Likewise.
3413 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3414 (perform_tree_ssa_dce): Likewise.
3415 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3416 (dump_dominator_optimization_stats): Likewise.
3417 * tree-vectorizer.c (vectorize_loops): Likewise.
3419 2008-05-20 Richard Guenther <rguenther@suse.de>
3421 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3423 2008-05-20 Kai Tietz <kai.tietz@onevision.com>
3425 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3426 (ix86_i386elf_return_in_memory): Likewise.
3427 (ix86_i386interix_return_in_memory): Likewise.
3428 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3429 (SUBTARGET_RETURN_IN_MEMORY): New.
3430 * config/i386/i386elf.h: Likewise.
3431 * config/i386/ptx4-i.h: Likewise.
3432 * config/i386/sol2-10.h: Likewise.
3433 * config/i386/sysv4.h: Likewise.
3434 * config/i386/vx-common.h: Likewise.
3435 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3436 * config/i386/i386.c (ix86_return_in_memory): Made static and
3437 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3438 (ix86_i386elf_return_in_memory): Removed.
3439 (ix86_i386interix_return_in_memory): Removed.
3440 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3441 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3443 2008-05-20 Alexandre Oliva <aoliva@redhat.com>
3445 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3447 2008-05-19 Xinliang David Li <davidxl@google.com>
3449 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
3451 * common.opt: Ditto.
3452 * doc/invoke.texi: Ditto.
3454 2008-05-19 Eric Botcazou <ebotcazou@adacore.com>
3456 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3457 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3459 2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
3461 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3462 sizes of operand array from 8/4 to 4/2.
3463 (ix86_expand_vector_init_general): Change size of operand array
3464 from 32 to 16. Remove op0, op1 and half_mode.
3466 2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
3468 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3469 (ix86_expand_vector_init_interleave): Likewise.
3470 (ix86_expand_vector_init_general): Use them. Assert
3471 word_mode == SImode when n_words == 4.
3473 2008-05-19 Uros Bizjak <ubizjak@gmail.com>
3475 * config/i386/i386.c (ix86_secondary_reload): New static function.
3476 (TARGET_SECONDARY_RELOAD): New define.
3477 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3478 * config/i386/i386.md (reload_outqi): Remove.
3480 2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3483 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3484 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
3485 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3486 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3487 (fold_builtin_1): Likewise.
3488 * builtins.def (BUILT_IN_ISINF_SIGN): New.
3489 c-common.c (check_builtin_function_arguments): Handle
3490 BUILT_IN_ISINF_SIGN.
3491 * doc/extend.texi: Document __builtin_isinf_sign.
3492 * fold-const.c (operand_equal_p): Handle COND_EXPR.
3494 2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
3496 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3497 EH cleanup at the end of the pass, search for those that have been
3498 turned into forwarder blocks and do the cleanup on their successor.
3500 2008-05-18 Richard Guenther <rguenther@suse.de>
3502 * tree-cfg.c (verify_gimple_expr): Allow conversions from
3503 pointers to sizetype and vice versa.
3505 2008-05-18 Xinliang David Li <davidxl@google.com>
3507 * gcc/tree-ssa-dce.c: Coding style fix.
3508 (check_pow): Documentation comment.
3509 (check_log): Documenation comment. Coding style fix.
3510 (is_unnecessary_except_errno_call): Ditto.
3511 (gen_conditions_for_pow): Ditto.
3512 (gen_conditions_for_log): Ditto.
3513 (gen_shrink_wrap_conditions): Ditto.
3514 (shrink_wrap_one_built_in_calls): Ditto.
3515 * gcc/doc/invoke.texi: Better documentation string.
3516 * ChangeLog: Fix wrong change log entries from
3517 May 17 checkin on function call DCE.
3519 2008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
3521 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3523 2008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
3525 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3526 * df-problems.c (simulation routines): Fixed block comment to
3527 properly say how to add forwards scanning functions.
3529 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
3531 * tree-inline.c (setup_one_parameter): Remove dead code.
3533 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
3535 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3536 a BIT_AND_EXPR only for an INTEGER_TYPE.
3538 2008-05-17 Xinliang David Li <davidxl@google.com>
3540 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3541 (check_pow, check_log, is_unnecessary_except_errno_call): New
3542 functions to check for eliminating math functions that are pure
3543 except for setting errno.
3544 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3545 general condition expressions for shrink-wrapping pow/log calls.
3546 (gen_shrink_wrap_conditions): Ditto.
3547 (shrink_wrap_one_built_in_call): Ditto.
3548 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3549 (mark_operand_necessary): If debugging, output if OP is necessary.
3550 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3552 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3554 * gcc/common.opt: New user flag -ftree-builtin-dce.
3555 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3557 2008-05-16 David S. Miller <davem@davemloft.net>
3559 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3560 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3562 2008-05-16 Uros Bizjak <ubizjak@gmail.com>
3565 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3567 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3569 * ifcvt.c (dead_or_predicable): Rename
3570 df_simulate_one_insn_backwards to df_simulate_one_insn.
3571 * recog.c (peephole2_optimize): Ditto.
3572 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3574 * df.h: Rename df_simulate_one_insn_backwards to
3575 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
3576 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3577 scanning of defs and uses.
3578 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3579 (df_simulate_one_insn_forwards): Removed.
3581 2008-05-16 Doug Kwan <dougkwan@google.com>
3583 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3585 (real_from_string): Handle NaNs and Inf as approriate.
3587 2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
3589 * doc/gty.texi (Source Files Containing Type Information): Note
3590 that headers should appear first in the gtfiles list.
3592 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3594 * tree.def (COND_EXEC): Properly documented this code.
3596 2008-05-16 Diego Novillo <dnovillo@google.com>
3598 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3599 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3602 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3604 * tree-ssa-dse (max_stmt_uid): Removed.
3605 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
3606 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3607 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3608 * function.h (cfun.last_stmt_uid): New field.
3609 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3610 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3612 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3613 (create_stmt_ann): Initialize the ann->uid field.
3614 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3616 * tree-flow.h (renumber_gimple_stmt_uids): New function.
3618 2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
3620 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3621 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3622 (init_empty_tree_cfg): Call it.
3624 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3626 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
3629 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3631 * doc/invoke.text (-fdump-tree-*-verbose): New option.
3632 * tree-dump.c (dump_options): New verbose option.
3633 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3635 * tree-pass.h (TDF_VERBOSE): New dump flag.
3636 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3637 (tree-flow.h): Added include.
3638 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3640 2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
3642 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3644 From Jie Zhang <jie.zhang@analog.com>
3645 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3646 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3647 mcpu=bf561-none and mcpu=bf561-0.2.
3648 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3649 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3650 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3651 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3652 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3653 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3654 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
3656 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3657 (cputype_selected): Remove.
3658 (bfin_handle_option): Don't use cputype_selected.
3659 (override_options): When no mcpu option, enable all workarounds.
3660 Don't use bfin_workarounds.
3661 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3663 (DEFAULT_CPU_TYPE): Don't define.
3665 2008-05-16 Richard Guenther <rguenther@suse.de>
3667 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3668 on deletion of the last stmt.
3670 2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
3672 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3673 V8HImode for SSE2 and V16QImode for SSE4.1.
3675 2008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
3677 * cgraph.h (compute_inline_parameters): Made public.
3678 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3679 variable_generate_summary, function_write_summary,
3680 variable_write_summary, variable_read_summary. Added generate_summary,
3681 write_summary, read_summary.
3682 * cgraphunit.c (cgraph_process_new_functions): Changed call from
3683 pass_ipa_inline.function_generate_summary, to
3684 compute_inline_parameters.
3685 * ipa-inline.c (compute_inline_parameters): Made public and added
3687 (compute_inline_parameters_for_current): New function.
3688 (pass_inline_param): Now calls compute_inline_parameters_for_current.
3689 (inline_generate_summary): Removed parameter and made to loop over
3691 (pass_ipa_inline): Updated for new IPA_PASS structure.
3692 * passes.c (execute_ipa_summary_passes): Now is called once per
3693 pass rather than once per node*pass.
3695 2008-05-15 Anatoly Sokolov <aesok@post.ru>
3697 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
3698 avr_have_mul_p, avr_asm_only_p): Remove variables.
3699 (avr_override_options): Remove initialization of removed variables.
3700 (avr_file_start): Convert removed variables to fields of
3701 'struct base_arch_s *avr_current_arch'.
3702 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3703 (AVR_HAVE_MUL): (Ditto.).
3704 (AVR_HAVE_MOVW): (Ditto.).
3705 (AVR_HAVE_LPMX): (Ditto.).
3706 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
3707 avr_asm_only_p): Remove declaration.
3709 2008-05-15 Diego Novillo <dnovillo@google.com>
3711 * config/arm/arm.c (arm_return_in_memory): Fix return type.
3712 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3714 2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
3717 * combine.c (check_conversion): Rename back to check_promoted_subreg.
3718 Don't call record_truncated_value from here.
3719 (record_truncated_value): Turn it into a for_each_rtx callback.
3720 (record_truncated_values): New function.
3721 (combine_instructions): Call note_uses with record_truncated_values.
3722 Change name of check_conversion to check_promoted_subreg.
3724 2008-05-15 Janis Johnson <janis187@us.ibm.com>
3726 * doc/sourcebuild.texi: Document support for torture tests.
3728 2008-05-15 Uros Bizjak <ubizjak@gmail.com>
3730 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3731 to alternative 4 of operand 2.
3733 2008-05-15 Richard Guenther <rguenther@suse.de>
3735 * tree-pass.h (current_pass): Declare.
3736 (get_pass_for_id): Likewise.
3737 * passes.c (passes_by_id, passes_by_id_size): New globals.
3738 (set_pass_for_id): New function.
3739 (get_pass_for_id): Likewise.
3740 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3741 (execute_function_todo): Flush per function statistics.
3742 * toplev.c (compile_file): Init statistics.
3743 (general_init): Do early statistics initialization.
3744 (finalize): Finish statistics.
3745 * statistics.h (statistics_early_init): Declare.
3746 (statistics_init): Likewise.
3747 (statistics_fini): Likewise.
3748 (statistics_fini_pass): Likewise.
3749 (statistics_counter_event): Likewise.
3750 (statistics_histogram_event): Likewise.
3751 * statistics.c: New file.
3752 * Makefile.in (OBJS-common): Add statistics.o.
3753 (statistics.o): Add dependencies.
3754 * doc/invoke.texi (-fdump-statistics): Document.
3756 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3758 (execute_pre): Use statistics_counter_event.
3759 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3760 (substitute_and_fold): Increment it. Use statistics_counter_event.
3762 2008-05-15 Diego Novillo <dnovillo@google.com>
3764 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3766 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3767 * tree-ssa-alias.c (new_type_alias): Remove references to
3768 sub-variables from comment.
3769 * tree-ssa-operands.c (swap_tree_operands): Likewise.
3771 2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
3773 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3774 attribute to 1 only for insertps alternative.
3776 2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
3778 * config/bfin/bfin.md (loadbytes): New pattern.
3779 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3780 (bfin_init_builtins): Initialize it.
3781 (bdesc_1arg): Add it.
3783 2008-05-15 Sa Liu <saliu@de.ibm.com>
3785 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3786 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3787 * testsuite/lib/target-supports.exp: Add
3788 check_effective_target_fortran_integer_16.
3790 2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
3792 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3793 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3794 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
3795 (TARGET_RETURN_IN_MEMORY): Define.
3797 2008-05-15 Richard Guenther <rguenther@suse.de>
3800 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3801 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3802 represent unmodifiable vars.
3804 2008-05-15 Richard Guenther <rguenther@suse.de>
3806 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3807 INDIRECT_REF and TARGET_MEM_REF.
3808 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3811 2008-05-15 Uros Bizjak <ubizjak@gmail.com>
3812 H.J. Lu <hongjiu.lu@intel.com>
3814 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3815 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3816 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
3817 insn alternatives. Add missing alternatives.
3818 (*vec_concatv2di_rex64_sse4_1): Likewise.
3819 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3820 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3823 2008-05-15 Richard Guenther <rguenther@suse.de>
3825 PR tree-optimization/36009
3826 PR tree-optimization/36204
3827 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3828 (determine_invariantness_stmt): Record the loop a store is
3830 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3833 2008-05-15 Richard Guenther <rguenther@suse.de>
3835 PR tree-optimization/34330
3836 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3837 through the pointer will alias the SMT.
3839 2008-05-14 Andreas Tobler <a.tobler@schweiz.org>
3841 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3843 2008-05-14 H.J. Lu <hongjiu.lu@intel.com>
3845 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3847 2008-05-14 Michael Meissner <michael.meissner@amd.com>
3848 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3850 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3851 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3852 (vashl_optab): New optab for vector/vector shifts.
3853 (vashr_optab): Ditto.
3854 (vlshr_optab): Ditto.
3855 (vrotl_optab): Ditto.
3856 (vrotr_optab): Ditto.
3857 (optab_subtype): New enum for optab_for_tree_code call.
3858 (optab_for_tree_code): Add enum optab_subtype argument.
3860 * optabs.c (optab_for_tree_code): Take an additional argument to
3861 distinguish between a vector shift by a scalar and vector shift by
3862 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
3863 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
3864 vector shift by a vector.
3865 (expand_widen_pattern_expr): Pass additional argument to
3866 optab_for_tree_code.
3868 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3869 vrotl_optab, vrotr_optab.
3871 * expr.c (expand_expr_real_1): Update calls to
3872 optab_for_tree_code to distinguish between vector shifted by a
3873 scalar and vector shifted by a vector.
3874 * tree-vectorizer.c (supportable_widening_operation): Ditto.
3875 (supportable_narrowing_operation): Ditto.
3876 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3877 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3878 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3879 (vect_create_epilog_for_reduction): Ditto.
3880 (vectorizable_reduction): Ditto.
3881 (vectorizable_operation): Ditto.
3882 (vect_strided_store_supported): Ditto.
3883 (vect_strided_load_supported): Ditto.
3884 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3885 * expmed.c (expand_shift): Ditto.
3887 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3889 (ashr@var{m}3): Ditto.
3890 (vashl@var{m}3): Document new vector/vector shift standard name.
3891 (vashr@var{m}3): Ditto.
3892 (vlshr@var{m}3): Ditto.
3893 (vrotl@var{m}3): Ditto.
3894 (vrotr@var{m}3): Ditto.
3896 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3897 (PPERM_INVERT): Ditto.
3898 (PPERM_REVERSE): Ditto.
3899 (PPERM_REV_INV): Ditto.
3900 (PPERM_ZERO): Ditto.
3901 (PPERM_ONES): Ditto.
3902 (PPERM_SIGN): Ditto.
3903 (PPERM_INV_SIGN): Ditto.
3904 (PPERM_SRC1): Ditto.
3905 (PPERM_SRC2): Ditto.
3907 * config/i386/sse.md (mulv2di3): Add SSE5 support.
3908 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3909 allows a memory operand to be the value being added, and split it
3910 to improve vectorization.
3911 (sse5_pmacsdqh_mem): Ditto.
3912 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3913 (sse5_mulv2div2di3_high): Ditto.
3914 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3915 (vec_pack_trunc_v4si): Ditto.
3916 (vec_pack_trunc_v2di): Ditto.
3917 (sse5_pcmov_<mode>): Remove code that tried to use use
3918 andps/andnps instead of pcmov.
3919 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3920 pmacsdqh instructions.
3921 (vec_widen_smult_lo_v4si): Ditto.
3923 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3924 (PPERM_INVERT): Ditto.
3925 (PPERM_REVERSE): Ditto.
3926 (PPERM_REV_INV): Ditto.
3927 (PPERM_ZERO): Ditto.
3928 (PPERM_ONES): Ditto.
3929 (PPERM_SIGN): Ditto.
3930 (PPERM_INV_SIGN): Ditto.
3931 (PPERM_SRC1): Ditto.
3932 (PPERM_SRC2): Ditto.
3933 (ix86_expand_sse_movcc): Move the SSE5 test after the if
3935 (ix86_expand_int_vcond): If SSE5 generate all possible integer
3937 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3938 says ignore whether the last reference is a memory operand.