1 2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
3 * dwarf2out.c: Remove trailing white spaces. Break long line
6 2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
8 * libfuncs.h (LTI_synchronize): New libfunc_index.
9 (synchronize_libfunc): Declare.
10 * builtins.c (expand_builtin_synchronize): Consider using
11 synchronize_libfunc before falling back on an asm blockage.
12 * config/mips/mips.c: Include libfuncs.h
13 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
15 2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
17 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
18 parameter. Copy stack_reg to r11 where appropriate.
19 (no_global_regs_above): Add gpr parameter.
20 (rs6000_stack_info): Only add padding for SPE save area if we
21 are saving SPE GPRs and CR.
22 (saveres_routine_syms): New variable.
23 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
25 (rs6000_savres_routine_sym): New function.
26 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
28 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
29 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
30 Tweak FPR out-of-line saving.
31 (rs6000_make_savres_rtx): New function.
32 (rs6000_use_multiple_p): New function.
33 (rs6000_savres_strategy): New function.
34 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
35 out-of-line if appropriate.
36 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
37 if we are optimizing for size.
38 (GP_SAVE_INLINE): Define.
39 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
40 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
41 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
42 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
43 (*save_fpregs_<mode>): Add use of r11.
44 (*restore_gpregs_<mode>): New insn.
45 (*return_and_restore_gpregs_<mode>): New insn.
46 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
48 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
49 (*restore_gpregs_spe): New insn.
50 (*return_and_restore_gpregs_spe): New insn.
51 * config/rs6000/predicates.md (save_world_operation): Fix check.
53 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
55 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
56 this point, so assert that.
58 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
60 * cfganal.c: Include vec.h and vecprim.h.
61 (compute_idf): Import from...
62 * tree-into-ssa (compute_idf): ...here.
63 * basic-block.h (compute_idf): Export.
65 2008-06-26 Joseph Myers <joseph@codesourcery.com>
67 * c-decl.c (merge_decls): Use !current_function_decl to check for
68 extern declaration of C99 inline function being at file scope.
70 2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
72 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
74 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
76 * alias.c (record_alias_subset, init_alias_analysis): Fix
77 -Wc++-compat and/or -Wcast-qual warnings.
78 * attribs.c (lookup_attribute_spec): Likewise.
79 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
80 copy_bb, connect_traces,
81 find_rarely_executed_basic_blocks_and_cr): Likewise.
82 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
83 note_btr_set, migrate_btr_defs): Likewise.
84 * builtins.c (result_vector, expand_builtin_memcpy,
85 expand_builtin_mempcpy_args, expand_builtin_strncpy,
86 builtin_memset_read_str, expand_builtin_printf,
87 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
89 * caller-save.c (mark_set_regs): Likewise.
90 * calls.c (expand_call, emit_library_call_value_1): Likewise.
91 * cgraph.c (cgraph_edge): Likewise.
92 * combine.c (likely_spilled_retval_1): Likewise.
93 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
94 htab_counts_entry_del, get_coverage_counts): Likewise.
95 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
96 new_cselib_val): Likewise.
97 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
98 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
100 * df-core.c (df_compact_blocks): Likewise.
101 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
102 * df-scan.c (df_grow_reg_info, df_ref_create,
103 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
104 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
105 df_record_entry_block_defs, df_record_exit_block_uses,
106 df_bb_verify): Likewise.
107 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
108 DF_REF_EXTRACT_MODE_CONST): New.
109 * dominance.c (get_immediate_dominator, get_dominated_by,
110 nearest_common_dominator, root_of_dom_tree,
111 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
112 -Wc++-compat and/or -Wcast-qual warnings.
113 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
114 record_store, replace_read, check_mem_read_rtx, scan_insn,
115 dse_step1, dse_record_singleton_alias_set): Likewise.
116 * dwarf2asm.c (dw2_force_const_mem): Likewise.
118 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
120 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
121 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
122 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
123 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
124 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
125 add_ranges_num, add_ranges_by_labels, file_info_cmp,
126 file_name_acquire, output_file_names, add_const_value_attribute,
127 premark_used_types_helper, file_table_eq, file_table_hash,
128 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
129 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
130 -Wcast-qual warnings.
131 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
132 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
133 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
134 gen_reg_rtx, start_sequence, init_emit): Likewise.
135 * et-forest.c (et_new_occ, et_new_tree): Likewise.
136 * except.c (init_eh_for_function, gen_eh_region,
137 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
138 arh_to_landing_pad, arh_to_label, add_action_record,
139 add_call_site, switch_to_exception_section): Likewise.
140 * expmed.c (synth_mult): Likewise.
141 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
142 store_expr): Likewise.
143 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
145 * function.c (assign_stack_temp_for_type,
146 allocate_struct_function, match_asm_constraints_1): Likewise.
147 * gcov-io.c (gcov_allocate): Likewise.
148 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
149 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
150 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
151 record_one_set, insert_expr_in_table, insert_set_in_table,
152 dump_hash_table, compute_hash_table_work, alloc_hash_table,
153 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
154 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
155 -Wcast-qual warnings.
157 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
159 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
160 -Wcast-qual warnings.
161 * gcc.c (process_command): Likewise.
162 * genattrtab.c (oballoc): Use XOBNEW.
163 (oballocvec): Define.
164 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
165 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
166 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
167 -Wc++-compat and/or -Wcast-qual warnings.
168 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
169 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
170 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
171 gen_presence_absence_set, gen_automaton, gen_regexp_el,
172 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
173 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
174 add_excls, process_presence_absence_names,
175 process_presence_absence_patterns, add_presence_absence,
176 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
177 get_free_state, add_arc, get_free_automata_list_el,
178 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
179 transform_3, cache_presence, create_ainsns, create_automata,
180 create_state_ainsn_table, dfa_insn_code_enlarge,
181 output_trans_func, output_min_issue_delay_func,
182 output_dead_lock_func, output_reset_func,
183 output_get_cpu_unit_code_func, output_dfa_start_func,
184 expand_automata): Likewise.
185 * genextract.c (gen_insn): Likewise.
186 * gengtype-lex.l: Likewise.
187 * gengtype.c (read_input_list, adjust_field_type,
188 process_gc_options): Likewise.
189 * genoutput.c (note_constraint): Likewise.
190 * genpreds.c (mangle, add_constraint): Likewise.
191 * genrecog.c (process_define_predicate, new_decision,
192 add_to_sequence): Likewise.
193 * gensupport.c (record_insn_name): Likewise.
195 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
197 * config/i386/driver-i386.c (detect_caches_amd,
198 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
199 and/or -Wcast-qual warnings.
200 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
201 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
202 gt_pch_save): Likewise.
203 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
204 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
205 * global.c (compute_regsets): Likewise.
206 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
207 finish_graph_dump_file): Likewise.
208 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
209 unlink_bb_notes): Likewise.
210 * integrate.c (get_hard_reg_initial_val): Likewise.
211 * ipa-prop.c (ipa_push_func_to_list): Likewise.
212 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
213 * local-alloc.c (update_equiv_regs): Likewise.
214 * loop-invariant.c (check_invariant_table_size,
215 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
217 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
218 altered_reg_used, mark_altered): Likewise.
219 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
220 insert_var_expansion_initialization,
221 combine_var_copies_in_loop_exit, apply_opt_in_copies,
222 release_var_copies): Likewise.
223 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
224 analyze_matrix_decl, add_allocation_site, analyze_transpose,
225 analyze_accesses_for_phi_node, check_var_notmodified_p,
226 check_allocation_function, find_sites_in_func,
227 record_all_accesses_in_func, transform_access_sites,
228 transform_allocation_sites): Likewise.
229 * omp-low.c (new_omp_region, create_omp_child_function_name,
230 check_omp_nesting_restrictions, check_combined_parallel,
231 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
232 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
233 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
234 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
236 * opts-common.c (prune_options): Likewise.
237 * opts.c (add_input_filename, print_filtered_help,
238 get_option_state): Likewise.
239 * params.c (add_params): Likewise.
240 * passes.c (set_pass_for_id, next_pass_1,
241 do_per_function_toporder, pass_fini_dump_file): Likewise.
242 * postreload.c (reload_cse_simplify_operands): Likewise.
243 * predict.c (tree_predicted_by_p, tree_predict_edge,
244 clear_bb_predictions, combine_predictions_for_bb): Likewise.
246 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
248 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
250 * recog.c (check_asm_operands, validate_change_1): Likewise.
251 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
252 subst_asm_stack_regs): Likewise.
253 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
254 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
255 * regmove.c (reg_is_remote_constant_p): Likewise.
256 * regrename.c (regrename_optimize, scan_rtx_reg,
257 kill_clobbered_value, kill_set_value, kill_autoinc_value):
259 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
260 regstat_compute_calls_crossed): Likewise.
261 * reload1.c (init_reload, new_insn_chain,
262 has_nonexceptional_receiver, reload, copy_reloads,
263 calculate_needs_all_insns, init_elim_table): Likewise.
264 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
265 * rtl.c (shallow_copy_rtx_stat): Likewise.
266 * rtlanal.c (parms_set): Likewise.
267 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
268 sbitmap_resize, sbitmap_vector_alloc): Likewise.
269 * sched-ebb.c (earliest_block_with_similiar_load,
270 add_deps_for_risky_insns): Likewise.
271 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
272 schedule_region): Likewise.
273 * see.c (eq_descriptor_pre_extension,
274 hash_descriptor_pre_extension, hash_del_pre_extension,
275 eq_descriptor_properties, hash_descriptor_properties,
276 hash_del_properties, see_seek_pre_extension_expr,
277 see_initialize_data_structures, see_print_register_properties,
278 see_print_pre_extension_expr, see_delete_merged_def_extension,
279 see_delete_unmerged_def_extension, see_emit_use_extension,
280 see_pre_delete_extension, see_map_extension, see_commit_changes,
281 see_analyze_merged_def_local_prop,
282 see_analyze_merged_def_local_prop,
283 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
284 see_set_prop_merged_def, see_set_prop_unmerged_def,
285 see_set_prop_unmerged_use, see_print_one_extension,
286 see_merge_one_use_extension, see_merge_one_def_extension,
287 see_store_reference_and_extension, see_update_uses_relevancy,
288 see_update_defs_relevancy): Likewise.
289 * statistics.c (hash_statistics_hash, hash_statistics_eq,
290 hash_statistics_free, curr_statistics_hash): Likewise.
291 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
292 expand_asm_operands, expand_return, case_bit_test_cmp,
293 expand_case): Likewise.
294 * stor-layout.c (start_record_layout): Likewise.
295 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
296 gt_pch_save_stringpool): Likewise.
297 * tree-data-ref.c (hash_stmt_vertex_info,
298 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
299 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
301 2008-06-25 Uros Bizjak <ubizjak@gmail.com>
304 * config/i386/i386.md : Change constraints of HImode and QImode
305 immediate operands from "i" to "n". Change SImode "ni" constraint to
306 "i" and SImode "rmi" constraint to "g". Remove all constraints
307 from const0_operand and const1_operand predicated operands.
308 (i): Change QImode and HImode attribute from "i" to "n".
309 (*subqi_2): Change HImode operands to QImode.
312 2008-06-25 Olivier Hainque <hainque@adacore.com>
314 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
317 2008-06-25 Richard Guenther <rguenther@suse.de>
319 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
320 not overflow the result type.
322 2008-06-25 Richard Guenther <rguenther@suse.de>
324 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
325 (vn_lookup): Likewise.
327 2008-06-25 Richard Guenther <rguenther@suse.de>
329 PR tree-optimization/35518
330 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
331 * tree-sra.c (instantiate_element): Use fold_build3 to build
333 (try_instantiate_multiple_fields): Likewise.
335 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
337 * config/rs6000/rs6000.md: Change all string instruction's clobber to
340 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
342 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
343 use_backchain_to_restore_sp to true
344 if the offset of the link register save area would go over the 32k - 1
345 offset limit of the load
348 2008-06-25 Hans-Peter Nilsson <hp@axis.com>
350 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
351 anchor for the type-punning blurb. Cross-reference "Structures
352 unions enumerations and bit-fields implementation". Provide a
353 cast-through-pointer example. Make final sentence self-contained.
354 * doc/implement-c.texi (Structures unions enumerations and
355 bit-fields implementation): Cross-reference the type-punning blurb
356 in the -fstrict-aliasing documentation.
358 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
361 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
362 the memory instead of the memory itself for the save area.
364 2008-06-24 Olivier Hainque <hainque@adacore.com>
365 Nicolas Roche <roche@adacore.com>
367 * gengtype.c (srcdir_len): size_t instead of int.
368 (get_file_realbasename): New function. For F a filename, the real
369 basename of F, with all the path components stripped.
370 (get_file_srcdir_relative_path): New function. For F a filename, the
371 relative path to F from $(srcdir).
372 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
373 get_file_realbasename. Adjust the head comment.
374 (get_prefix_langdir_index): New function. For F a filename, return the
375 lang_dir_names[] relative index of the language directory that is
377 (get_file_langdir): For F a filename, return the name of the language
378 directory where F is located.
379 (get_file_gtfilename): New function. The gt- output file name for an
381 (get_output_file_with_visibility): Replace in-line computations with
382 uses of get_file_gtfilename and get_prefix_langdir_index.
383 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
385 2008-06-24 Jakub Jelinek <jakub@redhat.com>
387 PR tree-optimization/36504
388 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
389 references without base address.
391 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
394 * calls.c (expand_call): Increase alignment for recursive functions.
396 2008-06-23 Anatoly Sokolov <aesok@post.ru>
398 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
399 (TARGET_FUNCTION_VALUE): New define.
400 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
401 * config/avr/avr.h (FUNCTION_VALUE): Remove.
403 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
405 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
406 (fmod<mode>3): Ditto.
407 (remainderxf3): Ditto.
408 (remainder<mode>3): Ditto.
410 2008-06-23 Jakub Jelinek <jakub@redhat.com>
413 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
414 REG is a hard register.
416 PR tree-optimization/36508
417 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
418 499, don't check it at all in release compilers.
420 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
422 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
423 together with SSE_TARGET_MATH to disable insn pattern.
424 (*fop_<MODEF:mode>_2_i387): Ditto.
425 (*fop_<MODEF:mode>_3_i387): Ditto.
427 2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
429 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
431 2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
434 * gimplify.c (gimplify_asm_expr): Check the return code of
435 parse_output_constraint call, set function return and is_inout
438 2008-06-22 Ian Lance Taylor <iant@google.com>
440 * c-lex.c (narrowest_unsigned_type): Change itk to int.
441 (narrowest_signed_type): Likewise.
442 * c-typeck.c (c_common_type): Change local variable mclass to enum
444 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
445 tcc_comparison, not the tree code itself.
446 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
447 (c_expand_expr): Cast modifier to enum expand_modifier.
448 * c-common.h (C_RID_CODE): Add casts.
449 (C_SET_RID_CODE): Define.
450 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
451 (c_lex_one_token): Add cast to avoid warning.
452 (c_parser_objc_type_name): Rename local typename to type_name.
453 (check_no_duplicate_clause): Change code parameter to enum
455 (c_parser_omp_var_list_parens): Change kind parameter to enum
457 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
458 c_parser_omp_list_var_parens.
459 (c_parser_omp_threadprivate): Likewise.
460 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
461 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
462 * c-format.c (NO_FMT): Define.
463 (printf_length_specs): Use NO_FMT.
464 (asm_fprintf_length_specs): Likewise.
465 (gcc_diag_length_specs): Likewise.
466 (scanf_length_specs): Likewise.
467 (strfmon_length_specs): Likewise.
468 (gcc_gfc_length_specs): Likewise.
469 (printf_flag_specs): Change 0 to STD_C89.
470 (asm_fprintf_flag_specs): Likewise.
471 (gcc_diag_flag_specs): Likewise.
472 (gcc_cxxdiag_flag_specs): Likewise.
473 (scanf_flag_specs): Likewise.
474 (strftime_flag_specs): Likewise.
475 (strfmon_flag_specs): Likewise.
476 (print_char_table): Likewise.
477 (asm_fprintf_char_table): Likewise.
478 (gcc_diag_char_table): Likewise.
479 (gcc_tdiag_char_table): Likewise.
480 (gcc_cdiag_char_table): Likewise.
481 (gcc_cxxdiag_char_table): Likewise.
482 (gcc_gfc_char_table): Likewise.
483 (scan_char_table): Likewise.
484 (time_char_table): Likewis.
485 (monetary_char_table): Likewise.
486 * c-format.h (BADLEN): Likewise.
488 2008-06-21 Ian Lance Taylor <iant@google.com>
490 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
491 Define END_OF_BASE_TREE_CODES around inclusion.
492 * tree.c (tree_code_type): New global array.
493 (tree_code_length, tree_code_name): Likewise.
494 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
496 (all-tree.def, s-alltree): New targets.
497 (gencheck.h, s-gencheck): Remove.
498 (tree.o): Depend upon all-tree.def.
499 (build/gencheck.o): Remove gencheck.h dependency.
500 (mostlyclean): Don't remove gencheck.h.
501 * c-common.h (enum c_tree_code): Remove.
502 * c-lang.c (tree_code_type): Remove.
503 (tree_code_length, tree_code_name): Remove.
504 * gencheck.c (tree_codes): Include all-tree.def, rather than
505 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
507 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
509 * cp/cp-tree.h (enum cplus_tree_code): Remove.
510 (operator_name_info): Size to MAX_TREE_CODES.
511 (assignment_operator_name_info): Likewise.
512 * cp/cp-lang.c (tree_code_type): Remove.
513 (tree_code_length, tree_code_name): Remove.
514 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
515 (assignment_operator_name_info): Likewise.
516 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
518 * cp/mangle.c (write_expression): Likewise.
519 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
520 * fortran/f95-lang.c (tree_code_type): Remove.
521 (tree_code_length, tree_code_name): Remove.
522 * java/java-tree.h (enum java_tree_code): Remove.
523 * java/lang.c (tree_code_type): Remove.
524 (tree_code_length, tree_code_name): Remove.
525 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
526 * objc/objc-act.h (enum objc_tree_code): Remove.
527 * objc/objc-lang.c (tree_code_type): Remove.
528 (tree_code_length, tree_code_name): Remove.
529 * objcp/objcp-lang.c (tree_code_type): Remove.
530 (tree_code_length, tree_code_name): Remove.
531 * ada/ada-tree.h (enum gnat_tree_code): Remove.
532 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
533 * ada/misc.c (tree_code_type): Remove.
534 (tree_code_length, tree_code_name): Remove.
536 2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
538 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
539 the grand_bitmap_obstack.
541 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
543 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
544 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
545 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
546 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
547 move_stmt_r, new_label_mapper): Likewise.
548 * tree-complex.c (cvc_lookup): Likewise.
549 * tree-dfa.c (create_function_ann): Likewise.
550 * tree-dump.c (dump_register): Likewise.
551 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
552 find_phi_replacement_condition): Likewise.
553 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
554 tree_function_versioning): Likewise.
555 * tree-into-ssa.c (cmp_dfsnum): Likewise.
556 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
557 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
558 get_nonlocal_debug_decl, convert_nonlocal_reference,
559 convert_nonlocal_omp_clauses, get_local_debug_decl,
560 convert_local_reference, convert_local_omp_clauses,
561 convert_nl_goto_reference, convert_nl_goto_receiver,
562 convert_tramp_reference, convert_call_expr): Likewise.
563 * tree-outof-ssa.c (contains_tree_r): Likewise.
564 * tree-parloops.c (reduction_phi, initialize_reductions,
565 eliminate_local_variables_1, add_field_for_reduction,
566 add_field_for_name, create_phi_for_local_result,
567 create_call_for_reduction_1, create_loads_for_reductions,
568 create_stores_for_reduction, create_loads_and_stores_for_name):
570 * tree-phinodes.c (allocate_phi_node): Likewise.
571 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
572 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
573 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
574 * tree-ssa-coalesce.c (compare_pairs): Likewise.
575 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
576 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
577 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
578 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
579 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
580 vn_nary_op_insert): Likewise.
581 * tree-ssa.c (redirect_edge_var_map_add,
582 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
583 * tree-vectorizer.c (vectorize_loops): Likewise.
584 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
585 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
586 tree_cons_stat, build1_stat, build_variant_type_copy,
587 decl_init_priority_lookup, decl_fini_priority_lookup,
588 decl_priority_info, decl_restrict_base_lookup,
589 decl_restrict_base_insert, decl_debug_expr_lookup,
590 decl_debug_expr_insert, decl_value_expr_lookup,
591 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
592 type_hash_add, get_file_function_name, tree_check_failed,
593 tree_not_check_failed, tree_range_check_failed,
594 omp_clause_range_check_failed, build_omp_clause,
595 build_vl_exp_stat): Likewise.
596 * value-prof.c (gimple_histogram_value,
597 gimple_duplicate_stmt_histograms): Likewise.
598 * var-tracking.c (attrs_list_insert, attrs_list_copy,
599 unshare_variable, variable_union_info_cmp_pos, variable_union,
600 dataflow_set_different_1, dataflow_set_different_2,
601 vt_find_locations, variable_was_changed, set_variable_part,
602 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
603 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
604 section_entry_hash, object_block_entry_eq,
605 object_block_entry_hash, create_block_symbol,
606 initialize_cold_section_name, default_function_rodata_section,
607 strip_reg_name, set_user_assembler_name, const_desc_eq,
608 build_constant_desc, output_constant_def, lookup_constant_def,
609 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
610 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
611 default_internal_label): Likewise.
612 * varray.c (varray_init, varray_grow): Likewise.
613 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
615 2008-06-20 Uros Bizjak <ubizjak@gmail.com>
617 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
618 operators for "test" insn. Macroize insn using SWI mode macro.
619 (*jcc_fused_2): Ditto.
620 (*jcc_fused_3): Macroize insn using SWI mode macro.
621 (*jcc_fused_4): Ditto.
623 2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
625 * tree-ssa-pre.c: Fix typo in comment.
626 (init_antic, fini_antic): Add explicit funtions for
627 initializing and deinitializing ANTIC and AVAIL sets.
628 (create_expression_by_pieces): Fix typo in comment.
629 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
630 (execute_pre): Eventually dump details about ANTIC_IN.
632 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
634 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
635 * gcc.c (translate_options, init_spec, store_arg, read_specs,
636 add_to_obstack, file_at_path, find_a_file, execute,
637 add_preprocessor_option, add_assembler_option, add_linker_option,
638 process_command, insert_wrapper, do_option_spec, do_self_spec,
639 spec_path, do_spec_1, is_directory, main, used_arg,
640 getenv_spec_function): Likewise.
641 * tlink.c (symbol_hash_lookup, file_hash_lookup,
642 demangled_hash_lookup, symbol_push, file_push, frob_extension):
645 2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
647 * doc/rtl.texi: Updated subreg section.
649 2008-06-19 Jakub Jelinek <jakub@redhat.com>
652 * cgraphunit.c (cgraph_process_new_functions): Don't clear
653 node->needed and node->reachable.
654 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
655 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
656 (expand_task_call): Don't call expand_task_copyfn.
657 (expand_task_copyfn): Renamed to...
658 (finalize_task_copyfn): ... this.
660 2008-06-19 Jan Hubicka <jh@suse.cz>
662 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
663 clobbering framepointer.
665 2008-06-19 Jan Hubicka <jh@suse.cz>
667 * tree-optimize.c (execute_early_local_optimizations): Set
668 cgraph_state only at first invocation.
670 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
672 * system.h (-Wc++-compat): Activate as a warning, no an error.
674 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
676 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
677 instead of "#" in insn asm template.
678 (*jcc_fused_2): Ditto.
680 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
682 * config/i386/i386.h (ix86_tune_indices)
683 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
684 (TARGET_FUSE_CMP_AND_BRANCH): New define.
685 * config/i386/i386.md (*jcc_fused_1): New insn pattern
686 (*jcc_fused_2): Ditto.
687 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
688 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
689 (print operand): Handle 'E' and 'e' code.
691 2008-06-19 Anatoly Sokolov <aesok@post.ru>
693 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
694 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
695 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
697 2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
699 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
701 (cgraph_expand_function): Use local copy of decl.
702 (cgraph_expand_all_functions): Remove redundant initialization of
704 (cgraph_optimize): Reword internal_error message.
706 2008-06-19 Chung-Lin Tang <ctang@marvell.com>
708 * arm-protos.h (arm_return_in_memory): Remove public
709 arm_return_in_memory() prototype.
710 * arm.c (arm_return_in_memory): Add static prototype, add target
711 hook macro, change definition and comments.
712 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
714 2008-06-19 Ben Elliston <bje@au.ibm.com>
716 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
717 real.c: Remove references to IEEE 754R.
718 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
719 * doc/libgcc.texi (Decimal float library routines): Likewise.
721 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
723 * targhooks.h (struct gcc_target): New member unwind_word_mode.
724 (default_unwind_word_mode): Add prototype.
725 * targhooks.c (default_unwind_word_mode): New function.
726 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
727 instead of word_mode.
728 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
729 (TARGET_INITIALIZER): Use it.
731 * c-common.c (handle_mode_attribute): Support "unwind_word"
733 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
735 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
736 word_mode to access SjLj_Function_Context member "data".
737 (sjlj_emit_dispatch_table): Likewise. Also, perform type
738 conversion from targetm.eh_return_filter_mode () to
739 targetm.unwind_word_mode () if they differ.
741 * builtin-types.def (BT_UNWINDWORD): New primitive type.
742 (BT_FN_UNWINDWORD_PTR): New function type.
743 (BT_FN_WORD_PTR): Remove.
744 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
745 * except.c (expand_builtin_extend_pointer): Convert pointer to
746 targetm.unwind_word_mode () instead of word_mode.
748 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
749 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
750 (spu_unwind_word_mode): New function.
751 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
752 (TARGET_UNWIND_WORD_MODE): Define.
753 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
755 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
757 * config/spu/spu.c (reg_align): Remove.
758 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
759 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
760 (spu_split_store): Likewise.
762 2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
764 * gcc/tree-vn.c: Fix typo in comment.
766 2008-06-18 Jan Hubicka <jh@suse.cz>
768 * cgraphunit.c (cgraph_optimize): Output debug info when doing
769 toplevel reorder too.
771 2008-06-18 Jan Hubicka <jh@suse.cz>
773 * c-opts.c (c_common_post_options): PCH is not compatible with
775 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
776 -fno-toplevel-reorder by default now.
778 2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
780 PR documentation/30739
781 * doc/install.texi (Prerequisites): Document dependency on awk.
783 2008-06-18 Uros Bizjak <ubizjak@gmail.com>
784 Ian Lance Taylor <iant@google.com>
786 PR rtl-optimization/35604
787 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
788 only want to change jump destinations, not eventual label comparisons.
790 2008-06-16 Jan Hubicka <jh@suse.cz>
792 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
794 (cgraph_analyze_function): Likewise.
796 2008-06-16 Jan Hubicka <jh@suse.cz>
798 * cgraph.h (cgraph_mark_if_needed): New function.
799 * cgraphunit.c (cgraph_mark_if_needed): New function.
800 * c-decl.c (duplicate_decl): Use it.
802 2008-06-16 Jan Hubicka <jh@suse.cz>
804 * cgraph.c (cgraph_add_new_function): When in expansion state, do
807 2008-06-16 Jan Hubicka <jh@suse.cz>
809 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
811 2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
812 Kazu Hirata <kazu@codesourcery.com>
813 Maxim Kuvyrkov <maxim@codesourcery.com
815 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
816 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
817 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
818 EXTRA_SPEC_FUNCTIONS.
819 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
820 (DRIVER_SELF_SPECS): Adjust.
821 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
822 * config/mips/st.h, config/mips/t-st: New.
823 * config/mips/driver-native.c, config/mips/x-native: New.
824 * doc/invoke.texi (MIPS): Document 'native' value for -march and
827 2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
829 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
831 (ISA_HAS_FP_CONDMOVE): New macro.
832 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
833 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
834 (ISA_HAS_NMADD3_NMSUB3): New macro.
835 * config/mips/mips.c (mips_rtx_costs): Update.
836 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
837 compiling for ST Loongson 2E/2F.
838 (madd<mode>): Rename to madd4<mode>. Update.
839 (madd3<mode>): New pattern.
840 (msub<mode>): Rename to msub4<mode>. Update.
841 (msub3<mode>): New pattern.
842 (nmadd<mode>): Rename to nmadd4<mode>. Update.
843 (nmadd3<mode>): New pattern.
844 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
845 (nmadd3<mode>_fastmath): New pattern.
846 (nmsub<mode>): Rename to nmsub4<mode>. Update.
847 (nmsub3<mode>): New pattern.
848 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
849 (nmsub3<mode>_fastmath): New pattern.
850 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
852 2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
854 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
855 (DF_REF_INSN_INFO): New.
856 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
857 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
858 with a NULL DF_REF_INSN_INFO.
859 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
861 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
862 DF_INSN_INFO_EQ_USES): New.
863 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
864 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
865 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
866 * df-core.c: Update comment for above changes.
867 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
868 DF_INSN_UID_* macros.
869 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
870 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
871 insn rtx. Update all callers.
872 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
873 df_ref_create_structure, df_insn_refs_collect): Likewise.
874 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
875 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
876 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
877 macros to access the insn refs.
878 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
879 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
880 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
881 for accessing the refs.
882 (try_fwprop_subst): Likewise.
883 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
884 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
885 for accessing the refs.
886 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
887 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
888 to look at the insn refs.
889 (record_uses): Likewise.
890 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
892 (mark_artificial_uses): Don't mark_insn for artificial refs.
893 (mark_reg_rependencies): Likewise.
895 * doc/rtl.texi: Remove documentation of ADDRESSOF.
897 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
899 * configure: Regenerate.
901 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
903 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
904 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
905 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
907 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
909 * config/avr/avr.c (avr_mcu_t): Add attiny167.
910 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
911 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
913 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
915 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
916 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
917 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
919 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
921 * tree-ssa-sccvn.c: Fix format of comments.
923 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
925 * cgraph.c: Remove unneeded forward declarations of eq_node()
928 2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
930 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
932 (see_update_relevancy): Likewise.
933 * fwprop.c (try_fwprop_subst): Likewise.
934 * rtlanal.c (noop_move_p): Likewise.
935 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
936 notes to non-existing libcall blocks.
937 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
939 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
940 (dead_libcall_p): Remove.
941 (delete_trivially_dead_insns): Don't use it.
942 * web.c (union_defs): Remove comment about keeping nops.
943 * gcse.c (hash_scan_insn): Don't take libcall pointers.
944 (compute_hash_table_work): Don't track libcall notes.
945 (do_local_cprop): Don't take libcall pointers. Don't update
947 (adjust_libcall_notes): Deleted.
948 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
949 ever have existed in the first place).
950 (replace_store_insn): Don't try to remove libcall notes.
951 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
952 (resolve_reg_notes): Don't call them.
953 (resolve_simple_move): Likewise.
954 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
955 Don't remove REG_RETVAL notes.
956 * emit-rtl.c (try_split): Don't update libcall notes.
957 (emit_copy_of_insn_after): Dito.
958 * cselib.c (cselib_current_insn_in_libcall): Remove.
959 (cselib_process_insn): Don't set/clear it.
960 (new_elt_loc_list): Don't record it.
961 (cselib_init): Don't initialize it.
962 * cselib.c (struct elt_loc_list): Remove in_libcall field.
963 * loop-invariant.c (find_invariant_insn): Don't look for libcall
965 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
966 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
967 (init_deps): Don't initialize it.
968 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
969 * combine.c (delete_noop_moves): Don't update libcall notes.
970 (can_combine_p): Remove now pointless #if 0 block.
971 (try_combine): Remove another obsolete #if 0 block.
972 (distribute_notes): Don't distribute libcall notes.
973 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
974 * dce.c (libcall_dead_p): Remove.
975 (delete_unmarked_insns): Don't handle libcall blocks.
976 (preserve_libcall_for_dce): Remove.
977 (prescan_insns_for_dce): Don't special-case libcall block insns.
978 * reload1 (reload): Don't handle libcall notes.
979 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
982 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
984 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
985 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
986 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
988 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
990 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
991 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
992 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
994 2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
996 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
998 2008-06-16 Ira Rosen <irar@il.ibm.com>
1000 PR tree-optimization/36493
1001 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
1002 the arguments list. Use VECTYPE to create vector pointer.
1003 (vectorizable_store): Fail if accesses through a pointer to vectype
1004 do not alias the original memory reference operands.
1005 Call vect_create_data_ref_ptr without the removed argument.
1006 (vectorizable_load): Likewise.
1007 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1010 2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
1013 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
1016 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1018 * config/mips/loongson2ef.md: New file.
1019 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1020 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1021 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1022 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1023 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1025 (loongson2ef.md): New include.
1026 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1027 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1028 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1029 (loongson_gt_<mode>, loongson_extract_halfword)
1030 (loongson_insert_halfword_0, loongson_insert_halfword_2)
1031 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1032 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1033 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1034 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1035 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1036 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1037 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1038 (vec_interleave_low<mode>): Define type attribute.
1039 * config/mips/mips.c (mips_ls2): New static variable.
1040 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1041 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1042 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1043 Implement target scheduling hooks.
1044 (mips_multipass_dfa_lookahead): Update to handle tuning for
1046 (mips_sched_init): Initialize data for Loongson scheduling.
1047 (mips_ls2_variable_issue): New static function.
1048 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1050 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1051 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1052 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1053 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1054 Handle ST Loongson 2E/2F cores.
1055 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1057 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1059 * omp-low.c (extract_omp_for_data): Fix comment typo.
1062 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1064 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1065 FIXME note about gcc/config.guess.
1066 * doc/options.texi (Option file format): Remove non-ASCII bytes.
1067 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1068 * doc/cppopts.texi: Likewise.
1069 * doc/extend.texi: Likewise.
1070 * doc/gcc.texi: Likewise.
1071 * doc/gccint.texi: Likewise.
1072 * doc/gcov.texi: Likewise.
1073 * doc/gty.texi: Likewise.
1074 * doc/hostconfig.texi: Likewise.
1075 * doc/install.texi: Likewise.
1076 * doc/invoke.texi: Likewise.
1077 * doc/loop.texi: Likewise.
1078 * doc/makefile.texi: Likewise.
1079 * doc/md.texi: Likewise.
1080 * doc/passes.texi: Likewise.
1081 * doc/tm.texi: Likewise.
1082 * doc/tree-ssa.texi: Likewise.
1083 * doc/trouble.texi: Likewise.
1085 2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
1086 Nathan Sidwell <nathan@codesourcery.com>
1087 Maxim Kuvyrkov <maxim@codesourcery.com>
1088 Richard Sandiford <rdsandiford@googlemail.com>
1090 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1091 * config/mips/mips-protos.h (mips_expand_vector_init): New.
1092 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1094 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1095 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1096 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1098 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1099 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1100 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1101 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1102 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1103 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1104 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1105 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1106 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1107 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1108 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1109 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1110 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1111 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1112 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1113 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1114 (mips_builtins): Add Loongson builtins.
1115 (mips_loongson_2ef_bdesc): New.
1116 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1117 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1118 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1119 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1121 (mips_expand_vector_init): New.
1122 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1123 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1125 * config/mips/mips.md: Add unspec numbers for Loongson
1126 builtins. Include loongson.md.
1127 (MOVE64): Include Loongson vector modes.
1128 (SPLITF): Include Loongson vector modes.
1129 (HALFMODE): Handle Loongson vector modes.
1130 * config/mips/loongson.md: New.
1131 * config/mips/loongson.h: New.
1132 * config.gcc: Add loongson.h header for mips*-*-* targets.
1133 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1135 2008-06-14 Joseph Myers <joseph@codesourcery.com>
1137 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1138 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1139 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1140 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1141 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1142 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1143 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1144 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1145 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1146 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1147 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1148 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1149 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1150 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1151 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1152 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1153 Remove use_fixproto=yes.
1154 (ia64*-*-hpux*): Remove comment about using fixproto.
1155 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1157 2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1159 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1161 * configure: Regenerate.
1163 2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
1166 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1167 before evaluating it.
1169 2008-06-13 Jakub Jelinek <jakub@redhat.com>
1172 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1173 nested inline functions.
1174 (start_decl, start_function): Don't invert DECL_EXTERNAL
1175 for nested inline functions.
1177 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
1179 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1180 splits that must be made for correctness.
1182 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
1184 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1185 (AVAIL_NON_MIPS16): Likewise.
1186 (mips_builtin_description): Replace target_flags with a predicate.
1187 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1188 (dspr2_32): New availability predicates.
1189 (MIPS_BUILTIN): New macro.
1190 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1191 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1192 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1193 Replace the TARGET_FLAGS parameters with AVAIL parameters.
1194 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1195 (mips_dsp_32only_bdesc): Merge into...
1196 (mips_builtins): ...this new array.
1197 (mips_bdesc_map, mips_bdesc_arrays): Delete.
1198 (mips_init_builtins): Update after above changes.
1199 (mips_expand_builtin_1): Merge into...
1200 (mips_expand_builtin): ...here and update after above changes.
1202 2008-06-12 Paul Brook <paul@codesourcery.com>
1204 * longlong.h (__arm__): Define count_leading_zeros.
1205 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1206 (clzsi2, clzdi2): New functions.
1207 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1208 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1209 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1210 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1211 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1212 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1213 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1214 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1215 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1216 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1218 2008-06-12 Kazu Hirata <kazu@codesourcery.com>
1220 * config/m68k/m68k.c (m68k_tune_flags): New.
1221 (override_options): Compute m68k_tune_flags.
1222 (MULL_COST, MULW_COST): Update for various variants of CFV2.
1223 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1225 2008-06-12 Jakub Jelinek <jakub@redhat.com>
1228 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1230 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
1232 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1233 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1235 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
1237 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1238 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1240 2008-06-12 Jakub Jelinek <jakub@redhat.com>
1243 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1246 2008-06-12 Richard Guenther <rguenther@suse.de>
1248 PR tree-optimization/36345
1249 * tree-flow.h (struct ptr_info_def): Align escape_mask,
1250 add memory_tag_needed flag.
1251 (may_alias_p): Declare.
1252 * tree-ssa-alias.c (may_alias_p): Export.
1253 (set_initial_properties): Use memory_tag_needed flag.
1254 (update_reference_counts): Likewise.
1255 (reset_alias_info): Reset memory_tag_needed flag.
1256 (create_name_tags): Check memory_tag_needed flag.
1257 (dump_points_to_info_for): Dump it.
1258 * tree-ssa-structalias.c (struct variable_info): Remove
1259 directly_dereferenced flag.
1260 (new_var_info): Do not initialize it.
1261 (process_constraint_1): Do not set it.
1262 (update_alias_info): Set is_dereferenced flag.
1263 (set_uids_in_ptset): Use may_alias_p.
1264 (set_used_smts): Check memory_tag_needed flag.
1265 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
1266 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1267 memory_tag_needed flag.
1268 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1271 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
1273 * config/i386/i386.c (ix86_compute_frame_layout): Disable
1274 red zone for w64 abi.
1275 (ix86_expand_prologue): Likewise.
1276 (ix86_force_to_memory): Likewise.
1277 (ix86_free_from_memory): Likewise.
1279 2008-06-11 Edmar Wienskoski <edmar@freescale.com>
1282 * config/rs6000/rs6000.c (rs6000_override_options): Set
1283 rs6000_isel conditionally to the absence of comand line override.
1284 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1285 Remove duplicate rs6000_isel setting.
1286 * config/rs6000/eabispe.h: Ditto.
1288 2008-06-11 Richard Guenther <rguenther@suse.de>
1290 * alias.c (get_alias_set): Use the element alias-set for arrays.
1291 (record_component_aliases): For arrays and vectors do nothing.
1292 * c-common.c (strict_aliasing_warning): Handle the cases
1293 of alias set zero explicitly.
1294 * Makefile.in (dfp.o-warn): Add -Wno-error.
1296 2008-06-11 Joseph Myers <joseph@codesourcery.com>
1298 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1300 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1301 tune_32 tune_64 to supported_defaults. Allow values not
1302 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1303 x86_64. Do not override cpu_32 or cpu_64 values from target name.
1304 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1305 with_cpu_64 to generic for 64-bit-supporting configurations, not
1306 with_cpu. Remove FIXMEs.
1307 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1308 --with-arch-64, --with-tune-32, --with-tune-64): Document.
1309 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1310 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1311 arch_32 and arch_64.
1313 2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
1314 Olivier Hainque <hainque@adacore.com>
1316 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1317 Use DECL_SIZE_UNIT to retrieve the size of the field.
1319 2008-06-11 Joseph Myers <joseph@codesourcery.com>
1321 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1322 with function calls after declarations. Lay out
1323 neon_float_type_node before further use.
1325 2008-06-11 Richard Guenther <rguenther@suse.de>
1327 * tree-flow.h (may_point_to_global_var): Declare.
1328 * tree-ssa-alias.c (may_point_to_global_var): New function.
1329 * tree-ssa-sink.c (is_hidden_global_store): Use it.
1331 2008-06-10 Kazu Hirata <kazu@codesourcery.com>
1333 * configure.ac: Teach that fido supports .debug_line.
1334 * configure: Regenerate.
1336 2008-06-10 Tom Tromey <tromey@redhat.com>
1338 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1341 2008-06-10 Joseph Myers <joseph@codesourcery.com>
1343 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1344 (encode_decimal64, decode_decimal64, encode_decimal128,
1345 decode_decimal128): Reverse order of 32-bit parts of value if host
1346 and target endianness differ.
1348 2008-06-10 Vinodha Ramasamy <vinodha@google.com>
1350 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1351 Avoid division by 0.
1352 (tree_mod_pow2_value_transform): Likewise.
1353 (tree_ic_transform): Likewise.
1354 (tree_stringops_transform): Likewise.
1355 (tree_mod_subtract_transform): Likewise.
1356 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1357 (copy_edges_for_bb): Likewise.
1358 (initialize_cfun): Likewise.
1360 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
1362 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1363 nonmemory_operand. Add "N" operand constraint.
1365 (*jcc_btdi_mask_rex64): New instruction and split pattern.
1366 (*jcc_btsi_mask): Ditto.
1367 (*jcc_btsi_mask_1): Ditto.
1369 2008-06-10 Joseph Myers <joseph@codesourcery.com>
1371 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1372 TYPE_CANONICAL for copied element type.
1374 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
1377 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1378 Add m_CORE2 and m_GENERIC.
1379 * config/i386/predicates.md (bt_comparison_operator): New predicate.
1380 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1382 (*jcc_btdi_rex64): New instruction and split pattern.
1384 (*jcc_btsi_1): Ditto.
1385 (*btsq): Fix Intel asm dialect operand order.
1389 2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
1392 * simplify-rtx.c (simplify_subreg): Add check for shift count
1395 2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
1397 * doc/md.texi: Synchronize with later constraints.md change.
1398 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1399 with a C implementation.
1400 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1402 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1403 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1404 when moving to and from MD_REGNUM.
1405 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1406 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1407 Handle byte and halfword moves.
1408 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1410 * config/mips/constraints.md (h): Turn into NO_REGS.
1411 (l, x): Update documentation.
1412 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1413 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1414 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1415 (HILO): New mode iterator.
1417 (any_div): New code iterator.
1418 (u): Extend code attribute to div and udiv.
1419 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1420 d_operand in the splitters. Remove redundant CONST_INT checks.
1421 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1422 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1423 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
1424 accordingly, using normal moves instead of unspecs to move LO into
1425 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
1426 (<u>mulsidi3): Handle expansion in C code.
1427 (<u>mulsidi3_32bit_internal): Rename to...
1428 (<u>mulsidi3_32bit): ...this.
1429 (<u>mulsidi3_32bit_r4000): Fix insn separator.
1430 (*<u>mulsidi3_64bit): Rename to...
1431 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
1432 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
1433 to set LO and HI to the multiplication result. Use a normal move
1434 for MFLO and an unspec for MFHI.
1435 (*<u>mulsidi3_64bit_parts): Replace with...
1436 (<u>mulsidi3_64bit_hilo): ...this new instruction.
1437 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1438 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1439 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
1440 instead of HI. Split the instruction into a separate multiplication
1441 and MFHI if !TARGET_FIX_R4000.
1442 (<su>muldi3_highpart): Likewise.
1443 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1444 and the "=h" clobber.
1445 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1446 (<u>mulditi3): New expander.
1447 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1448 (madsi): Remove "=h" clobber.
1449 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1450 Force the modulus result to be a GPR and split the instruction into
1451 a division followed by an MFHI after reload.
1452 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1453 (*lea_high64): Use d_operand in the define_peephole2. Likewise
1454 the MIPS16 HIGH define_split.
1455 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1456 of acc<->gpr moves to "multi".
1457 (*movdi_64bit): Replace the single "x" alternative with
1458 alternatives for moving into and out of "a".
1459 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
1460 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1461 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1462 Use d_operand in the splitters. Remove redundant CONST_INT checks.
1463 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
1464 (movti): New expander.
1465 (*movti, *movti_mips16): New insns.
1466 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1467 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1468 (mthi<GPR:mode>_<HILO:mode>): Likewise.
1469 * config/mips/predicates.md (fpr_operand): Delete.
1470 (d_operand): New predicate.
1472 2008-06-09 Michael Meissner <michael.meissner@amd.com>
1474 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1475 failure on some Bourne shells.
1476 (x86_64-*-*): Ditto.
1478 2008-06-09 Kai Tietz <kai.tietz@onevision.com>
1480 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1482 2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
1484 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1485 (sparc-sun-solaris2*): Likewise.
1487 2008-06-09 Arnaud Charlet <charlet@adacore.com
1489 * doc/install.texi: Update requirements to build the Ada compiler.
1491 2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
1493 * df-scan.c (struct df_scan_problem_data): Remove the
1494 mw_link_pool alloc pool.
1495 (df_scan_free_internal): Don't free it.
1496 (df_scan_alloc): Don't allocate it.
1497 * df.h (struct df_link): Update comment.
1499 2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
1501 * except.h: Correct checks for when SJLJ exceptions must be used.
1503 2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1505 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1508 2008-06-08 Joseph Myers <joseph@codesourcery.com>
1510 PR tree-optimization/36218
1511 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1512 configure for the build system.
1513 (BUILD_LDFLAGS): Define.
1514 * configure: Regenerate.
1515 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1517 2008-07-08 Anatoly Sokolov <aesok@post.ru>
1520 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1521 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
1522 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
1524 2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
1526 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1528 2008-06-07 Joseph Myers <joseph@codesourcery.com>
1530 * config.gcc (Obsolete configurations): Remove list of
1532 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1533 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
1534 targets matched by those patterns.
1535 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1536 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1537 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1538 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1539 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1540 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1541 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1542 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1543 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1544 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1545 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1546 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1547 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1548 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1549 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1550 Make code for Solaris 7 and greater unconditional for Solaris.
1551 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1552 Remove --with-* handling.
1553 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1554 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1555 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1556 LINK_OS_WINDISS_SPEC): Remove.
1557 * config/rs6000/sysv4.opt (mwindiss): Remove.
1558 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1559 * configure: Regenerate.
1560 * doc/cpp.texi: Don't mention BeOS.
1561 * doc/extend.texi (interrupt): Don't mention MS1.
1562 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1563 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1564 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1565 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1566 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1568 * doc/invoke.texi (MT Options): Remove.
1569 (-mwindiss): Remove.
1570 (CRIS Options): Remove cris-axis-aout references.
1571 (HPPA Options): Don't mention hppa1.1-*-pro.
1572 * doc/md.texi: (MorphoTech family): Remove.
1573 * libgcc2.c: Don't handle UWIN.
1574 * config/alpha/t-unicosmk: Remove.
1575 * config/alpha/unicosmk.h: Remove.
1576 * config/arm/kaos-arm.h: Remove.
1577 * config/arm/kaos-strongarm.h: Remove.
1578 * config/arm/strongarm-coff.h: Remove.
1579 * config/arm/strongarm-elf.h: Remove.
1580 * config/arm/strongarm-pe.h: Remove.
1581 * config/arm/t-strongarm-pe: Remove.
1582 * config/arm/t-xscale-coff: Remove.
1583 * config/arm/t-xscale-elf: Remove.
1584 * config/arm/xscale-coff.h: Remove.
1585 * config/arm/xscale-elf.h: Remove.
1586 * config/chorus.h: Remove.
1587 * config/cris/aout.h: Remove.
1588 * config/cris/aout.opt: Remove.
1589 * config/cris/t-aout: Remove.
1590 * config/i386/beos-elf.h: Remove.
1591 * config/i386/kaos-i386.h: Remove.
1592 * config/i386/ptx4-i.h: Remove.
1593 * config/i386/sco5.h: Remove.
1594 * config/i386/sco5.opt: Remove.
1595 * config/i386/sysv4-cpp.h: Remove.
1596 * config/i386/sysv5.h: Remove.
1597 * config/i386/t-beos: Remove.
1598 * config/i386/t-sco5: Remove.
1599 * config/i386/t-uwin: Remove.
1600 * config/i386/uwin.asm: Remove.
1601 * config/i386/uwin.h: Remove.
1602 * config/kaos.h: Remove.
1603 * config/mips/windiss.h: Remove.
1604 * config/mt: Remove directory.
1605 * config/pa/pa-osf.h: Remove.
1606 * config/pa/pa-pro-end.h: Remove.
1607 * config/pa/t-pro: Remove.
1608 * config/ptx4.h: Remove.
1609 * config/rs6000/beos.h: Remove.
1610 * config/rs6000/kaos-ppc.h: Remove.
1611 * config/rs6000/t-beos: Remove.
1612 * config/rs6000/windiss.h: Remove.
1613 * config/sh/kaos-sh.h: Remove.
1614 * config/sol2-6.h: Remove.
1615 * config/sparc/sol26-sld.h: Remove.
1616 * config/sparc/sysv4-only.h: Remove.
1617 * config/vax/bsd.h: Remove.
1618 * config/vax/t-memfuncs: Remove.
1619 * config/vax/ultrix.h: Remove.
1620 * config/vax/vaxv.h: Remove.
1621 * config/windiss.h: Remove.
1623 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1625 PR rtl-optimization/36438
1626 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1627 for vector shifts with constant scalar shift operands.
1629 2008-06-06 Sandip Matte <sandip@rmicorp.com>
1631 * doc/invoke.texi: Document -march=xlr.
1632 * config/mips/xlr.md: New file.
1633 * config/mips/mips.md: Include it.
1635 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1636 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1637 (mips_rtx_cost_data): Likewise.
1639 2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
1641 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1642 PRE_INC and PRE_DEC cases.
1644 2008-06-06 Jakub Jelinek <jakub@redhat.com>
1646 PR rtl-optimization/36419
1647 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1648 the emitting jump insn.
1651 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1652 is not bool, boolify the whole *expr_p and convert to the desired type.
1654 2008-06-06 Jakub Jelinek <jakub@redhat.com>
1656 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1657 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1658 Add omp_private_outer_ref hook, add another argument to
1659 omp_clause_default_ctor hook.
1660 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1661 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1662 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1663 hook_tree_tree_tree_tree_null.
1664 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1665 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1666 * hooks.c (hook_tree_tree_tree_tree_null): New function.
1667 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1668 * tree.def (OMP_TASK): New tree code.
1669 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1670 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1671 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1672 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1673 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1674 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1675 OMP_CLAUSE_COLLAPSE_EXPR): Define.
1676 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1677 (OMP_DIRECTIVE_P): Add OMP_TASK.
1678 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1679 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1680 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1681 and OMP_CLAUSE_UNTIED entries.
1682 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
1684 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1685 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1686 * tree-pretty-print.c (dump_omp_clause): Handle
1687 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1688 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1689 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1690 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
1691 warning about unsigned iterators. Change decl/init/cond/incr
1692 arguments to TREE_VECs, check arguments for all collapsed loops.
1693 (c_finish_omp_taskwait): New function.
1694 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1696 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
1697 default_function_array_conversion on init. Add par_clauses argument.
1698 If decl is present in parallel's lastprivate clause, change it to
1699 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1700 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
1701 collapse count in clauses.
1702 (c_parser_omp_for, c_parser_omp_parallel): Adjust
1703 c_parser_omp_for_loop callers.
1704 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1705 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1706 (c_parser_omp_clause_name): Handle collapse and untied clauses.
1707 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1709 (c_parser_omp_clause_schedule): Handle schedule(auto).
1710 Include correct location in the error message.
1711 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1712 and PRAGMA_OMP_CLAUSE_UNTIED.
1713 (OMP_TASK_CLAUSE_MASK): Define.
1714 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1715 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1716 * tree-nested.c (convert_nonlocal_omp_clauses,
1717 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1718 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1719 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1720 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1722 (conver_nonlocal_reference, convert_local_reference,
1723 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
1724 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1725 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1726 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1727 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1728 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1729 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1730 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1731 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1733 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1734 * c-common.h (c_finish_omp_taskwait): New prototype.
1735 * gimple-low.c (lower_stmt): Handle OMP_TASK.
1736 * tree-parloops.c (create_parallel_loop): Create 1 entry
1737 vectors for OMP_FOR_{INIT,COND,INCR}.
1738 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1739 (make_edges): Handle OMP_TASK.
1740 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1741 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1742 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1743 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1744 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1745 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1746 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1747 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1748 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1749 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1750 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1751 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1752 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1753 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1754 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1755 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1756 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1757 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1758 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1759 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1760 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1761 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1762 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1763 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1764 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1765 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1766 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
1767 original iterator is present in lastprivate clause or if
1768 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
1769 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1770 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1771 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1772 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1773 if it is set, lookup var in outer contexts too. Handle
1774 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
1775 to be implicitly determined firstprivate for task regions.
1776 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1777 if it is set, lookup var in outer contexts too. Set
1778 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1779 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1780 OMP_CLAUSE_UNTIED. Take region_type as last argument
1781 instead of in_parallel and in_combined_parallel.
1782 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1784 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1785 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
1786 (new_omp_context): Set default_kind to
1787 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1788 (omp_region_type): New enum.
1789 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1790 fields, add region_type.
1791 (new_omp_context): Take region_type as argument instead of is_parallel
1792 and is_combined_parallel.
1793 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1794 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1795 ctx->is_combined_parallel checks.
1796 (gimplify_omp_task): New function.
1797 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1799 * omp-low.c (extract_omp_for_data): Use schedule(static)
1800 for schedule(auto). Handle pointer and unsigned iterators.
1801 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
1802 Add loops argument. Extract data for collapsed OMP_FOR loops.
1803 (expand_parallel_call): Assert sched_kind isn't auto,
1804 map runtime schedule to index 3.
1805 (struct omp_for_data_loop): New type.
1806 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1807 Add loop, loops, collapse and iter_type fields.
1808 (workshare_safe_to_combine_p): Disallow combined for if
1809 iter_type is unsigned long long. Don't combine collapse > 1 loops
1810 unless all bounds and steps are constant. Adjust extract_omp_for_data
1812 (expand_omp_for_generic): Handle pointer, unsigned and long long
1813 iterators. Handle collapsed OMP_FOR loops. Adjust
1814 for struct omp_for_data changes. If libgomp function doesn't return
1815 boolean_type_node, add comparison of the return value with 0.
1816 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1817 pointer, unsigned and long long iterators. Adjust for struct
1818 omp_for_data changes.
1819 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1820 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
1821 unsigned long long. Allocate loops array, pass it to
1822 extract_omp_for_data. For collapse > 1 loops use always
1823 expand_omp_for_generic.
1824 (omp_context): Add sfield_map and srecord_type fields.
1825 (is_task_ctx, lookup_sfield): New functions.
1826 (use_pointer_for_field): Use is_task_ctx helper. Change first
1827 argument's type from const_tree to tree. Clarify comment.
1828 In OMP_TASK disallow copy-in/out sharing.
1829 (build_sender_ref): Call lookup_sfield instead of lookup_field.
1830 (install_var_field): Add mask argument. Populate both record_type
1831 and srecord_type if needed.
1832 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1834 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1835 and DECL_FIELD_OFFSET.
1836 (scan_sharing_clauses): Adjust install_var_field callers. For
1837 firstprivate clauses on explicit tasks allocate the var by value in
1838 record_type unconditionally, rather than by reference.
1839 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1840 Use is_taskreg_ctx instead of is_parallel_ctx.
1841 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1842 (create_omp_child_function_name): Add task_copy argument, use
1843 *_omp_cpyfn* names if it is true.
1844 (create_omp_child_function): Add task_copy argument, if true create
1845 *_omp_cpyfn* helper function.
1846 (scan_omp_parallel): Adjust create_omp_child_function callers.
1847 Rename parallel_nesting_level to taskreg_nesting_level.
1848 (scan_omp_task): New function.
1849 (lower_rec_input_clauses): Don't run constructors for firstprivate
1850 explicit task vars which are initialized by *_omp_cpyfn*.
1851 Pass outer var ref to omp_clause_default_ctor hook if
1852 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1853 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1854 OMP_CLAUSE_REDUCTION_INIT.
1855 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1856 avoid duplicate setting of fields. Handle
1857 OMP_CLAUSE_PRIVATE_OUTER_REF.
1858 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
1859 copy-out if TREE_READONLY, only copy-in.
1860 (expand_task_copyfn): New function.
1861 (expand_task_call): New function.
1862 (struct omp_taskcopy_context): New type.
1863 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1865 (lower_omp_parallel): Rename to...
1866 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
1867 Call create_task_copyfn if srecord_type is needed. Adjust
1869 (task_shared_vars): New variable.
1870 (check_omp_nesting_restrictions): Warn if work-sharing,
1871 barrier, master or ordered region is closely nested inside OMP_TASK.
1872 Add warnings for barrier if closely nested inside of work-sharing,
1873 ordered, or master region.
1874 (scan_omp_1): Call check_omp_nesting_restrictions even for
1875 GOMP_barrier calls. Rename parallel_nesting_level to
1876 taskreg_nesting_level. Handle OMP_TASK.
1877 (lower_lastprivate_clauses): Even if some lastprivate is found on a
1878 work-sharing construct, continue looking for them on parent parallel
1880 (lower_omp_for_lastprivate): Add lastprivate clauses
1881 to the beginning of dlist rather than end. Adjust for struct
1882 omp_for_data changes.
1883 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1884 not after it. Handle collapsed OMP_FOR loops, adjust for
1885 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1886 (get_ws_args_for): Adjust extract_omp_for_data caller.
1887 (scan_omp_for): Handle collapsed OMP_FOR
1888 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1889 (lower_omp_single_simple): If libgomp function doesn't return
1890 boolean_type_node, add comparison of the return value with 0.
1891 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1892 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
1893 (parallel_nesting_level): Rename to...
1894 (taskreg_nesting_level): ... this.
1895 (is_taskreg_ctx): New function.
1896 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1898 (execute_lower_omp): Rename parallel_nesting_level to
1899 taskreg_nesting_level.
1900 (expand_omp_parallel): Rename to...
1901 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
1902 Call omp_task_call for OMP_TASK regions.
1903 (expand_omp): Adjust caller, handle OMP_TASK.
1904 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1906 * bitmap.c (bitmap_default_obstack_depth): New variable.
1907 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1908 if argument is NULL and bitmap_default_obstack is already initialized.
1909 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1911 * matrix-reorg.c (matrix_reorg): Likewise.
1913 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1915 * config/i386/i386.md (*indirect_jump): Macroize using P
1916 mode iterator. Remove !TARGET_64BIT from insn constraints.
1917 (*tablejump_1): Ditto.
1918 (*indirect_jump_rex64): Remove insn pattern.
1919 (*tablejump_1_rex64): Ditto.
1920 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1921 and eh_return_si insn patterns.
1923 2008-06-06 Richard Guenther <rguenther@suse.de>
1925 * tree-ssa-structalias.c (merge_smts_into): Remove.
1926 (find_what_p_points_to): Do not bother to compute the
1927 points-to set for pt_anything pointers.
1928 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1929 for pt_anything pointers is ok.
1931 2008-06-06 Jan Hubicka <jh@suse.cz>
1933 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1935 2008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1937 * cgraph.c: Fix typos in comments.
1938 (cgraph_availability_names): Fix string typo.
1939 * fold-const.c: Fix typos in comments.
1940 (fold_binary): Fix typo in warning.
1941 * genautomata.c: Fix typos in comments.
1942 (check_presence_pattern_sets): Fix typo in local variable.
1943 (output_description): Fix typo in output.
1944 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1945 * hwint.h: Likewise.
1946 * matrix-reorg.c (check_allocation_function): Likewise.
1947 * omega.c (smooth_weird_equations): Likewise.
1948 * auto-inc-dec.c: Fix typos in comments.
1949 * bb-reorder.c: Likewise.
1950 * builtins.c: Likewise.
1951 * c-common.c: Likewise.
1952 * c-cppbuiltin.c: Likewise.
1953 * c-parser.c: Likewise.
1954 * c-pretty-print.c: Likewise.
1955 * cfgcleanup.c: Likewise.
1956 * cfgexpand.c: Likewise.
1957 * cfghooks.c: Likewise.
1958 * cfglayout.c: Likewise.
1959 * cfgloopmanip.c: Likewise.
1960 * cgraphunit.c: Likewise.
1961 * coverage.c: Likewise.
1962 * dbxout.c: Likewise.
1963 * df-byte-scan.c: Likewise.
1964 * df-core.c: Likewise.
1965 * df-problems.c: Likewise.
1966 * df-scan.c: Likewise.
1968 * dominance.c: Likewise.
1969 * domwalk.c: Likewise.
1971 * dwarf2out.c: Likewise.
1972 * emit-rtl.c: Likewise.
1973 * et-forest.c: Likewise.
1974 * function.c: Likewise.
1975 * function.h: Likewise.
1977 * gcov-io.c: Likewise.
1980 * genattrtab.c: Likewise.
1981 * ggc-page.c: Likewise.
1982 * gimplify.c: Likewise.
1983 * gthr-lynx.h: Likewise.
1984 * haifa-sched.c: Likewise.
1985 * ipa-cp.c: Likewise.
1986 * ipa-inline.c: Likewise.
1987 * ipa-prop.h: Likewise.
1988 * ipa-pure-const.c: Likewise.
1989 * ipa-struct-reorg.c: Likewise.
1990 * ipa-struct-reorg.h: Likewise.
1991 * ipa-type-escape.c: Likewise.
1993 * loop-doloop.c: Likewise.
1994 * mips-tfile.c: Likewise.
1995 * mkmap-flat.awk: Likewise.
1996 * mkmap-symver.awk: Likewise.
1997 * modulo-sched.c: Likewise.
1998 * omp-low.c: Likewise.
1999 * optabs.c: Likewise.
2000 * optabs.h: Likewise.
2002 * passes.c: Likewise.
2003 * postreload-gcse.c: Likewise.
2004 * postreload.c: Likewise.
2005 * predict.c: Likewise.
2006 * pretty-print.h: Likewise.
2007 * profile.c: Likewise.
2008 * protoize.c: Likewise.
2009 * ra-conflict.c: Likewise.
2011 * recog.c: Likewise.
2012 * regclass.c: Likewise.
2014 * reload.c: Likewise.
2015 * rtl-error.c: Likewise.
2016 * rtlanal.c: Likewise.
2018 * sched-rgn.c: Likewise.
2021 * target.h: Likewise.
2022 * tree-dfa.c: Likewise.
2023 * tree-eh.c: Likewise.
2024 * tree-flow-inline.h: Likewise.
2025 * tree-inline.c: Likewise.
2026 * tree-into-ssa.c: Likewise.
2027 * tree-loop-distribution.c: Likewise.
2028 * tree-nested.c: Likewise.
2029 * tree-parloops.c: Likewise.
2030 * tree-pass.h: Likewise.
2031 * tree-pretty-print.c: Likewise.
2032 * tree-profile.c: Likewise.
2033 * tree-scalar-evolution.c: Likewise.
2034 * tree-sra.c: Likewise.
2035 * tree-ssa-alias-warnings.c: Likewise.
2036 * tree-ssa-ccp.c: Likewise.
2037 * tree-ssa-coalesce.c: Likewise.
2038 * tree-ssa-dom.c: Likewise.
2039 * tree-ssa-dse.c: Likewise.
2040 * tree-ssa-forwprop.c: Likewise.
2041 * tree-ssa-live.c: Likewise.
2042 * tree-ssa-live.h: Likewise.
2043 * tree-ssa-loop-im.c: Likewise.
2044 * tree-ssa-loop-ivopts.c: Likewise.
2045 * tree-ssa-loop-niter.c: Likewise.
2046 * tree-ssa-loop-prefetch.c: Likewise.
2047 * tree-ssa-phiopt.c: Likewise.
2048 * tree-ssa-phiprop.c: Likewise.
2049 * tree-ssa-sccvn.c: Likewise.
2050 * tree-ssa-ter.c: Likewise.
2051 * tree-ssa-threadupdate.c: Likewise.
2052 * tree-ssa.c: Likewise.
2053 * tree-vect-analyze.c: Likewise.
2054 * tree-vect-transform.c: Likewise.
2055 * tree-vectorizer.c: Likewise.
2056 * tree-vn.c: Likewise.
2057 * tree-vrp.c: Likewise.
2059 * tree.def: Likewise.
2061 * unwind-dw2-fde.c: Likewise.
2062 * unwind.inc: Likewise.
2063 * value-prof.c: Likewise.
2064 * vmsdbgout.c: Likewise.
2066 2008-06-05 David Edelsohn <edelsohn@gnu.org>
2068 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2069 always place FP constants in the TOC for TARGET_POWERPC64.
2070 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2072 2008-06-05 Joseph Myers <joseph@codesourcery.com>
2074 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2075 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2076 enable for TARGET_E500_DOUBLE.
2077 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2078 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2079 floating-point modes like integer modes for E500 double.
2080 (rs6000_legitimate_offset_address_p): Likewise.
2081 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
2082 addressing for DDmode for E500 double.
2083 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2084 modes as using 64-bits of registers for E500 double.
2085 (spe_build_register_parallel): Do not handle DDmode or TDmode.
2086 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2087 specially for E500 double.
2088 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2089 TDmode for E500 double.
2090 (rs6000_gimplify_va_arg): Only handle SDmode in registers
2091 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2092 (rs6000_split_multireg_move): Do not handle TDmode specially for
2094 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2095 using 64-bit registers for E500 double.
2096 (emit_frame_save): Do not handle DDmode specially for E500 double.
2097 (gen_frame_mem_offset): Likewise.
2098 (rs6000_function_value): Do not call spe_build_register_parallel
2099 for DDmode or TDmode.
2100 (rs6000_libcall_value): Likewise.
2101 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2102 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2105 2008-06-04 H.J. Lu <hongjiu.lu@intel.com>
2107 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2110 2008-06-04 Junjie Gu <jgu@tensilica.com>
2112 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2113 comparison for frame pointers.
2115 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
2118 * config/avr/avr.h (PUSH_ROUNDING): Remove.
2120 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
2123 * builtins.c (expand_builtin_signbit): Don't take lowpart when
2124 register is already smaller or equal to required mode.
2126 2008-06-04 Xinliang David Li <davidxl@google.com>
2128 * tree-call-cdce.c: New file.
2129 (cond_dead_built_in_calls): New static variable.
2130 (input_domain): New struct.
2131 (check_pow): New function.
2132 (check_builtin_call): Ditto.
2133 (check_target_format): Ditto.
2134 (is_call_dce_candidate): Ditto.
2135 (gen_one_condition): Ditto.
2136 (gen_conditions_for_domain): Ditto.
2137 (get_domain): Ditto.
2138 (gen_conditions_for_pow_cst_base): Ditto.
2139 (gen_conditions_for_pow_int_base): Ditto.
2140 (gen_conditions_for_pow): Ditto.
2141 (get_no_error_domain): Ditto.
2142 (gen_shrink_wrap_conditions): Ditto.
2143 (shrink_wrap_one_built_in_call): Ditto.
2144 (shink_wrap_conditional_dead_built_in_calls): Ditto.
2145 (tree_call_cdce): Ditto.
2146 (gate_call_cdce): Ditto.
2147 (pass_call_cdce): New gimple pass.
2148 * passes.c: (init_optimization_passes): New pass.
2149 * tree-pass.h: New pass declaration.
2150 * opts.c (decode_options): New flag setting.
2151 * common.opt: Add -ftree-builtin-call-dce flag.
2152 * Makefile.in: Add new source file.
2153 * tempvar.def: New tv_id.
2154 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2156 2008-06-04 Richard Guenther <rguenther@suse.de>
2158 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2159 (is_call_clobbered): Always check var_ann->call_clobbered.
2160 (mark_call_clobbered): Always set var_ann->call_clobbered.
2161 (clear_call_clobbered): Always clear var_ann->call_clobbered.
2162 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2163 (reset_alias_info): Clear call clobbering info on MTAGs and
2165 (set_pt_anything): Set pt_global_mem.
2166 (create_tag_raw): Adjust comment.
2167 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2169 2008-06-04 Joseph Myers <joseph@codesourcery.com>
2170 Maxim Kuvyrkov <maxim@codesourcery.com>
2172 * config/m68k/m68k.opt (mxgot): New option.
2173 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2174 (m68k_output_addr_const_extra): New.
2175 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2176 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2177 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2178 * doc/invoke.texi (M680x0 Options): Document -mxgot.
2180 2008-06-04 Richard Guenther <rguenther@suse.de>
2182 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2183 negative or non-representable offsets.
2185 2008-06-03 H.J. Lu <hongjiu.lu@intel.com>
2187 * config/i386/i386.c (ix86_gen_leave): New.
2188 (ix86_gen_pop1): Likewise.
2189 (ix86_gen_add3): Likewise.
2190 (ix86_gen_sub3): Likewise.
2191 (ix86_gen_sub3_carry): Likewise.
2192 (ix86_gen_one_cmpl2): Likewise.
2193 (ix86_gen_monitor): Likewise.
2194 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2195 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2196 ix86_gen_one_cmpl2 and ix86_gen_monitor.
2197 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2198 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2199 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2200 (ix86_expand_epilogue): Updated.
2201 (print_operand): Handle integer register operand for 'z'.
2202 (ix86_expand_strlensi_unroll_1): Likewise.
2203 (ix86_expand_strlen): Likewise.
2204 (ix86_expand_builtin): Likewise.
2205 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2206 mov{q}/mov{l} and add{q}/add{l}.
2208 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
2210 * config/i386/i386.md (P): New mode iterator.
2211 (SFmode push_operand splitter): Macroize DImode and SImode pushes
2212 using P mode iterator.
2213 (DFmode push_operand splitter): Ditto.
2214 (XFmode push_operand splitter): Ditto.
2215 (DFmode float_extend SFmode push_operand splitter): Ditto.
2216 (XFmode float_extend SFmode push_operand splitter): Do not generate
2217 SImode pushes for 64bit target. Macroize Dimode and SImode
2218 pushes using P mode iterator.
2219 (XFmode float_extend DFmode push_operand splitter): Ditto.
2221 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
2223 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2224 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2225 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2227 (ix86_call_abi_override): Remove check for call_used_regs.
2229 2008-06-03 Richard Guenther <rguenther@suse.de>
2231 * tree-ssa-structalias.c (find_func_aliases): Add constraints
2232 for the lhs of calls if the return type contains pointers.
2234 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
2236 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2237 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2238 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2239 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2240 of cfun and DEFAULT_ABI to deceide abi mode.
2242 (REG_PARM_STACK_SPACE): Removed.
2243 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2244 (STACK_BOUNDARY): Use default target to deceide stack boundary.
2245 * config/i386/i386-protos.h (ix86_cfun_abi): New.
2246 (ix86_function_abi): Likewise.
2247 (ix86_function_type_abi): Likewise.
2248 (ix86_call_abi_override): Likewise.
2249 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2250 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2251 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2252 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2254 (X86_64_REGPARM_MAX): New.
2255 (X86_64_SSE_REGPARM_MAX): New.
2256 (X64_REGPARM_MAX): New.
2257 (X64_SSE_REGPARM_MAX): New.
2258 (X86_32_REGPARM_MAX): New.
2259 (X86_32_SSE_REGPARM_MAX): New.
2260 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2261 (ix86_function_regparm): Handle user calling abi.
2262 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2263 by DEFAULT_ABI versus SYSV_ABI check.
2264 (ix86_reg_parm_stack_space): New.
2265 (ix86_function_type_abi): New.
2266 (ix86_call_abi_override): New.
2267 (ix86_function_abi): New.
2268 (ix86_cfun_abi): New.
2269 (init_cumulative_args): Call abi specific initialization.
2270 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2271 (function_arg_64): Extend SSE_REGPARM_MAX check.
2272 (function_arg (): Remove TARGET_64BIT_MS_ABI.
2273 (ix86_pass_by_reference): Likewise.
2274 (ix86_function_value_regno_p): Likewise.
2275 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2276 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2277 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2278 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2279 (setup_incoming_varargs_64): Adjust regparm for call abi.
2280 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2281 (ix86_va_start): Likewise.
2282 (ix86_gimplify_va_arg): Likewise.
2283 (ix86_expand_prologue): Likewise.
2284 (output_pic_addr_const): Likewise.
2285 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2286 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2287 (x86_output_mi_thunk): Likewise.
2288 (x86_function_profiler): Likewise.
2289 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2290 (SYSV_ABI, MS_ABI): New constants.
2292 (init_regs): Add prototype of function in regclass.c file.
2293 (OVERRIDE_ABI_FORMAT): New.
2294 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2295 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2296 (OUTGOING_REG_PARM_STACK_SPACE): New.
2297 (ix86_reg_parm_stack_space): New prototype.
2298 (CUMULATIVE_ARGS): Add call_abi member.
2299 (machine_function): Add call_abi member.
2300 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2301 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2303 2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
2306 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2307 (avr_builtin_setjmp_frame_value): New function.
2308 * config/avr/avr.md (nonlocal_goto_receiver): Define.
2309 (nonlocal_goto): Define.
2311 2008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
2313 * config/mips/mips.c (mips_emit_loadgp): Return early if
2314 there is nothing do to, otherwise emit a blockage if
2315 !TARGET_EXPLICIT_RELOCS || crtl->profile.
2316 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2318 2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2320 * configure.ac: Drop unneeded backslash ending up in config.in.
2321 * acinclude.m4: Likewise.
2322 * config.in: Regenerate.
2324 2008-05-26 Jan Hubicka <jh@suse.cz>
2326 * predict.c (maybe_hot_frequency_p): Break out of...
2327 (maybe_hot_bb_p): ... here.
2328 (maybe_hot_edge_p): New.
2329 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2330 * basic-block.h (maybe_hot_edge_p): Declare.
2332 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
2334 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2335 (*cmpfp_<mode>_cc): Ditto.
2336 (*fp_jcc_8<mode>_387): Ditto.
2337 (*fop_<MODEF:mode>_2_i387): Ditto.
2338 (*fop_<MODEF:mode>_3_i387): Ditto.
2339 (*fop_xf_2_i387): Ditto.
2340 (*fop_xf_3_i387): Ditto.
2342 2008-06-02 Tomas Bily <tbily@suse.cz>
2344 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2346 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2348 * config/mips/mips.c (mips_valid_offset_p): New function.
2349 (mips_valid_lo_sum_p): Likewise.
2350 (mips_classify_address): Use them.
2351 (mips_force_address): New function.
2352 (mips_legitimize_address): Use it.
2353 * config/mips/mips.md (MOVE128): New mode iterator.
2354 (movtf): Require TARGET_64BIT. Remove empty strings.
2355 (*movtf_internal): Rename to...
2356 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
2357 of "R" and use {,fp}{load,store} attributes instead of "multi".
2358 Use a separate define_split.
2359 (*movtf_mips16): New pattern.
2361 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2363 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2364 * config/mips/mips.c (mips_expand_before_return): New function.
2365 (mips_expand_epilogue): Call it.
2366 * config/mips/mips.md (return): Turn into a define_expand.
2367 (*return): New insn.
2369 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2371 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2372 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2373 functions. Do not emit uses and clobbers of CONCATs; individually
2374 use and clobber their operands.
2375 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2376 gen_clobber, emit_use and gen_use.
2377 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2378 (expand_builtin_return): Likewise.
2379 * cfgbuild.c (count_basic_blocks): Likewise.
2380 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2381 * explow.c (emit_stack_restore): Likewise.
2382 * expmed.c (extract_bit_field_1): Likewise.
2383 * expr.c (convert_move, emit_move_complex_parts): Likewise.
2384 (emit_move_multi_word, store_constructor): Likewise.
2385 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2386 (thread_prologue_and_epilogue_insns): Likewise.
2387 * lower-subreg.c (resolve_simple_move): Likewise.
2388 * optabs.c (widen_operand, expand_binop): Likewise.
2389 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2390 * reload.c (find_reloads): Likewise.
2391 * reload1.c (eliminate_regs_in_insn): Likewise.
2392 * stmt.c (expand_nl_goto_receiver): Likewise.
2393 * config/alpha/alpha.md (builtin_longjmp): Likewise.
2394 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2395 * config/arm/arm.c (arm_load_pic_register): Likewise.
2396 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2397 * config/arm/arm.md (untyped_return): Likewise.
2398 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2399 * config/avr/avr.c (expand_prologue): Likewise.
2400 * config/bfin/bfin.c (do_unlink): Likewise.
2401 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2402 * config/cris/cris.c (cris_expand_prologue): Likewise.
2403 * config/darwin.c (machopic_indirect_data_reference): Likewise.
2404 (machopic_legitimize_pic_address): Likewise.
2405 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2406 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2407 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2408 (ix86_expand_convert_uns_didf_sse): Likewise.
2409 (ix86_expand_vector_init_general): Likewise.
2410 * config/ia64/ia64.md (eh_epilogue): Likewise.
2411 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2412 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2413 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2414 (config/iq2000/iq2000.c): Likewise.
2415 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2416 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2417 (builtin_longjmp): Likewise.
2418 * config/mn10300/mn10300.md (call, call_value): Likewise.
2419 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2420 * config/pdp11/pdp11.md (abshi2): Likewise.
2421 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2422 * config/s390/s390.c (s390_emit_prologue): Likewise.
2423 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2424 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2425 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2426 * config/sh/sh.c (prepare_move_operands): Likewise.
2427 (output_stack_adjust, sh_expand_epilogue): Likewise.
2428 (sh_set_return_address, sh_expand_t_scc): Likewise.
2429 * config/sparc/sparc.c (load_pic_register): Likewise.
2430 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2431 * config/spu/spu.c (spu_expand_epilogue): Likewise.
2432 * config/v850/v850.c (expand_epilogue): Likewise.
2434 2008-05-31 Anatoly Sokolov <aesok@post.ru>
2436 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2437 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2438 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2439 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
2440 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
2441 stack pointer register.
2442 (output_movhi): Remove code for interrupt specific writing to the
2443 stack pointer register.
2445 2008-05-31 Richard Guenther <rguenther@suse.de>
2447 PR tree-optimization/34244
2448 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2449 (tree_expr_nonzero_warnv_p): Likewise.
2450 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2451 ssa_name_nonnegative_p.
2452 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2453 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2454 not tree_expr_nonzero_warnv_p.
2456 PR tree-optimization/36262
2458 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
2460 PR tree-optimization/34244
2461 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2462 (record_numbers_of_iterations): New function.
2463 (execute_vrp): Cache the numbers of iterations of loops.
2464 * tree-scalar-evolution.c (scev_reset_except_niters):
2466 (scev_reset): Use scev_reset_except_niters.
2467 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2469 2008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
2471 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2472 __WORKAROUND_RETS when appropriate.
2474 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
2476 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2477 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2479 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2480 *fop_df_comm_sse insn patterns using MODEF mode iterator.
2481 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2482 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2483 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2484 *fop_df_1_mixed insn patterns using MODEF mode iterator.
2485 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2486 *fop_df_1_sse insn patterns using MODEF mode iterator.
2487 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2488 *fop_df_1_i387 insn patterns using MODEF mode iterator.
2489 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2490 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2491 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2492 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2493 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2494 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2495 (*fop_xf_4_i387): Use <MODE> for mode attribute.
2496 (*fop_xf_5_i387): Ditto.
2497 (*fop_xf_6_i387): Ditto.
2499 2008-05-30 Richard Guenther <rguenther@suse.de>
2501 * builtins.c (build_string_literal): Avoid generating
2502 a non-gimple_val result.
2504 2008-05-30 DJ Delorie <dj@redhat.com>
2506 * exec-tool.in: Use an environment variable (private) instead of a
2507 file (shared) as a semaphore, so as to not break parallel builds.
2509 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
2511 * optabs.c (maybe_encapsulate_block): Remove.
2512 (emit_libcall_block): Adjust accordingly.
2513 * optabs.h (maybe_encapsulate_block): Remove prototype.
2515 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2516 Don't use maybe_encapsulate_block.
2518 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
2520 * config/rs6000/rs6000.c (rs6000_legitimize_address,
2521 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2522 rtx is a SYMBOL_REF before calling get_pool_constant.
2524 2008-05-30 Eric Botcazou <ebotcazou@adacore.com>
2526 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2528 2008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
2530 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2531 rather than OS names to choose INO_T_EQ definition.
2532 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2533 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2535 2008-05-29 Daniel Franke <franke.daniel@gmail.com>
2538 * config/darwin-f.c: New.
2539 * config/t-darwin: Added rule to build darwin-f.o.
2540 * config.gcc: Defined new variable, fortran_target_objs.
2541 (*-*-darwin*): Set fortran_target_objs.
2542 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2543 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2544 * configure: Regenerated.
2546 2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
2549 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2550 canonical type if needed.
2552 2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
2554 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2556 2008-05-29 Richard Guenther <rguenther@suse.de>
2558 PR tree-optimization/36343
2559 PR tree-optimization/36346
2560 PR tree-optimization/36347
2561 * tree-flow.h (clobber_what_p_points_to): Declare.
2562 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2563 pointed-to variable is dereferenced is irrelevant to whether
2564 the pointer can access the pointed-to variable.
2565 (clobber_what_p_points_to): New function.
2566 * tree-ssa-alias.c (set_initial_properties): Use it.
2567 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2568 call clobber check for NMTs.
2570 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
2572 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2573 for printing gcov_type.
2575 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
2577 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2578 and the eh region information.
2579 * value-prof.c (gimple_move_stmt_histograms): New function.
2580 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2582 2008-05-28 Andreas Tobler <a.tobler@schweiz.org>
2584 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2586 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
2588 * value-prof.c (tree_ic_transform): Print counts.
2589 * tree-profile.c (tree_gen_ic_func_profiler):
2590 Clear __gcov_indreict_call_callee variable to avoid misattribution
2593 2008-05-28 Rafael Espindola <espindola@google.com>
2595 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2598 2008-05-28 Richard Guenther <rguenther@suse.de>
2600 PR tree-optimization/36339
2601 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2602 and clobbering code out of the loop.
2604 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
2606 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2609 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2610 s390_contiguous_bitmask_p, s390_symref_operand_p,
2611 s390_check_symref_alignment, s390_reload_larl_operand,
2612 s390_reload_symref_address): New functions.
2613 (s390_branch_condition_mnemonic): Support compare and branch
2615 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2616 and 'W' constraints.
2617 (s390_secondary_reload): Add secondary reloads for unaligned
2618 symbol refs or symbol refs to floating point or QI/TI mode
2620 (legitimate_address_p): Accept symbol references as addresses.
2621 (s390_expand_insv): Use rotate and insert selected bits
2622 instruction for insv when building for z10.
2623 (print_operand_address): Handle symbol ref addresses.
2624 (print_operand): Output modifier 'c' added for signed byte values.
2625 (s390_encode_section_info): Mark symbol refs with
2626 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2628 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2629 (length attribute): RRF, RRR have 4 byte length.
2630 (FPALL, INTALL): New mode iterators added.
2631 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2632 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2633 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2634 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2635 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2636 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2637 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2638 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2640 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2641 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2642 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2643 reload<INTALL:mode><P:mode>_toreg_z10,
2644 reload<FPALL:mode><P:mode>_tomem_z10,
2645 reload<FPALL:mode><P:mode>_toreg_z10,
2646 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2647 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2648 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2649 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2651 (movmem, clrmem, cmpmem): New splitters added.
2653 * config/s390/predicates.md (larl_operand): Use
2654 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2655 SYMBOL_REF_ALIGN1_P.
2656 (s390_signed_integer_comparison,
2657 s390_unsigned_integer_comparison): New predicates.
2659 * config/s390/s390-protos.h (s390_check_symref_alignment,
2660 s390_contiguous_bitmask_p, s390_reload_larl_operand,
2661 s390_reload_symref_address,
2662 s390_compare_and_branch_condition_mask): Prototypes added.
2664 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2665 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2666 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2668 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
2670 * config/s390/s390.c (z10_cost): New cost function for z10.
2671 (s390_handle_arch_option, override_options): Support -march=z10 switch.
2672 (s390_issue_rate): Adjust issue rate for z10.
2673 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2674 (processor_flags): Add PF_Z10.
2675 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2676 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2677 * gcc/config.gcc: Add z10.
2679 2008-05-28 Richard Guenther <rguenther@suse.de>
2681 PR tree-optimization/36291
2682 * tree-flow. h (struct gimple_df): Remove var_anns member.
2683 * tree-flow-inline.h (gimple_var_anns): Remove.
2684 (var_ann): Simplify.
2685 * tree-dfa.c (create_var_ann): Simplify.
2686 (remove_referenced_var): Clear alias info from var_anns of globals.
2687 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2688 (delete_tree_ssa): Clear alias info from var_anns of globals.
2689 Do not free var_anns.
2690 (var_ann_eq): Remove.
2691 (var_ann_hash): Likewise.
2693 2008-05-28 Mark Shinwell <shinwell@codesourcery.com>
2695 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2696 and loongson2f entries.
2697 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2698 * config/mips/mips.h (processor_type): Add Loongson-2E
2699 and Loongson-2F entries.
2700 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2701 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2702 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2703 * doc/invoke.texi (MIPS Options): Document loongson2e
2704 and loongson2f processor names.
2706 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
2710 * config/i386/i386.c (ix86_function_arg_boundary): Use
2711 alignment of canonical type.
2712 (ix86_expand_vector_move): Check unaligned memory access for
2715 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
2717 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2718 Moved to the front of file.
2720 2008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
2721 H.J. Lu <hongjiu.lu@intel.com>
2723 * dwarf2out.c (current_fde): New.
2725 (lookup_cfa:): Likewise.
2726 (dwarf2out_end_epilogue): Likewise.
2727 (dwarf2out_note_section_used): Likewise.
2729 2008-05-27 Michael Matz <matz@suse.de>
2732 * c.opt (Wenum-compare): New warning option.
2733 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
2735 2008-05-27 Michael Matz <matz@suse.de>
2738 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2740 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2741 into memory as tail calls.
2743 2008-05-27 Richard Guenther <rguenther@suse.de>
2745 PR tree-optimization/36339
2746 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2747 pointers cause all addressable variables to be call clobbered.
2749 2008-05-27 Richard Guenther <rguenther@suse.de>
2751 PR tree-optimization/36245
2752 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2754 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2756 * config/s390/s390.md: Replace all occurences of the 'm'
2757 constraint with 'RT'.
2759 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2761 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2763 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2765 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2766 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2767 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2769 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2771 * reload.c: (find_reloads): Skip alternatives according to the
2772 "enabled" attribute. Constify the constraint variable.
2773 * recog.c (get_attr_enabled): Add default implementation.
2774 (extract_insn): Set the alternative_enabled_p array
2775 in the recog_data struct.
2776 (preprocess_constraints, constrain_operands): Skip
2777 alternatives according to the "enabled" attribute
2778 * recog.h (struct recog_data): New field alternative_enabled_p.
2779 (skip_alternative): New inline function.
2780 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2781 (record_reg_classes): Skip alternative according to the
2782 "enabled" attribute.
2784 * doc/md.texi: Add documention for the "enabled" attribute.
2786 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
2788 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2789 * postreload.c (reload_cse_simplify_operands): Replace 'm'
2790 constraint with TARGET_MEM_CONSTRAINT.
2791 * recog.c (asm_operand_ok, preprocess_constraints,
2792 constrain_operands): Likewise.
2793 * regclass.c (record_reg_classes): Likewise.
2794 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2795 * reload1.c (maybe_fix_stack_asms): Likewise.
2796 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2797 * recog.h: Adjust comment.
2798 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2799 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2800 * doc/md.texi: Add a note to description of 'm' constraint.
2801 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2803 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
2805 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2806 that the bitfield is of integral type before testing its precision.
2808 2008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2809 Sa Liu <saliu@de.ibm.com>
2811 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
2812 __modti3, __udivti3, __umodti3 and __udivmodti4.
2813 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2814 that implement TImode mul and div functions.
2815 * config/spu/multi3.c: New. Implement __multi3.
2816 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2817 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2820 2008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
2822 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2823 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2824 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2825 tls_sysv_suffix): New mode and mode attribute iterators.
2826 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2827 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2828 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2829 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2830 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2833 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
2835 PR tree-optimization/36329
2836 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2837 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2838 * cgraphbuild.c (initialize_inline_failed): Use the latter
2839 macro in lieu of the former.
2840 * ipa-inline.c (cgraph_mark_inline): Likewise.
2841 (cgraph_decide_inlining_of_small_function): Likewise.
2842 (cgraph_decide_inlining): Likewise.
2843 (cgraph_decide_inlining_incrementally): Likewise.
2845 2008-05-26 Tristan Gingold <gingold@adacore.com>
2846 Anatoly Sokolov <aesok@post.ru>
2848 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2849 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2850 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
2851 optimization for 'avr6' architecture.
2853 2008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
2856 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2858 2008-05-26 Richard Guenther <rguenther@suse.de>
2860 * tree-ssa-sccvn.c (expr_has_constants): Declare.
2861 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2863 2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
2866 * caller-save.c (insert_restore): Verify alignment of spill space.
2867 (insert_save): Likewise.
2868 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2869 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2870 (STACK_SLOT_ALIGNMENT): Likewise.
2871 * function.c (LOCAL_ALIGNMENT): Removed.
2872 (get_stack_local_alignment): New.
2873 (assign_stack_local): Use it. Set alignment on stack slot.
2874 (assign_stack_temp_for_type): Use get_stack_local_alignment.
2875 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2876 (STACK_SLOT_ALIGNMENT): New.
2877 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2878 stack slot in XFmode.
2880 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2882 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
2885 * config/i386/i386.md (allocate_stack_worker_64): Make sure
2886 argument operand in rax isn't removed.
2888 2008-05-26 Richard Guenther <rguenther@suse.de>
2891 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2892 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
2894 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
2897 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2899 2008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
2901 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2902 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2904 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
2906 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2907 build a trampoline if we don't want one.
2908 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2909 return zero for nested functions if we don't want a trampoline.
2911 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
2913 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2915 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
2918 * c.opt: Removed undocumented option '-lang-fortran'.
2919 * c-common.h: Removed global variable 'lang_fortran'.
2920 * c-opts.c (c_common_handle_option): Removed code to handle
2921 option '-lang-fortran'. Updated includes.
2922 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2923 definition of '__GFORTRAN__'.
2924 (define__GNUC__): Reimplemented to use BASEVER and
2925 cpp_define_formatted.
2926 (builtin_define_with_value_n): Removed.
2927 * c-incpath.h: Renamed to ...
2928 * incpath.h: ... this.
2929 * c-incpath.c: Renamed to ...
2930 * incpath.c: ... this. Updated includes.
2931 * fix-header.c: Updated includes.
2932 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2933 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2934 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2936 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
2938 * tree.h: Update the table of flags used on tree nodes.
2939 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2940 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2941 (FORCED_LABEL): Add access check.
2942 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2943 (ASM_INPUT_P): Likewise.
2944 (ASM_VOLATILE_P): Likewise.
2945 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2946 (OMP_SECTION_LAST): Access private_flag directly.
2947 (OMP_RETURN_NOWAIT): Likewise.
2948 (OMP_PARALLEL_COMBINED): Likewise.
2949 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2950 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2951 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2952 deprecated_flag directly.
2954 2008-05-25 H.J. Lu <hongjiu.lu@intel.com>
2956 * final.c (frame_pointer_needed): Removed.
2957 * flags.h (frame_pointer_needed): Likewise.
2959 * function.h (rtl_data): Add frame_pointer_needed.
2960 (frame_pointer_needed): New.
2962 2008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
2964 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2966 2008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
2968 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2971 2008-05-25 Alan Modra <amodra@bigpond.net.au>
2973 * c-common.c (strip_array_types): Move function to..
2975 (get_inner_array_type): Delete.
2976 * c-common.h (strip_array_types): Move declaration to..
2978 (get_inner_array_type): Delete.
2979 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2980 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2981 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2982 * config/pa/pa.c (emit_move_sequence): Likewise.
2984 2008-05-24 H.J. Lu <hongjiu.lu@intel.com>
2986 * config/i386/i386.md (*sse_prologue_save_insn): Set length
2989 2008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
2991 * function.c: Include target hook for nonlocal_goto frame value.
2993 2008-05-24 Richard Guenther <rguenther@suse.de>
2995 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2996 variable can be only accessed through a pointer or a union.
2998 2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3000 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
3001 * doc/extend.texi: Likewise.
3003 2008-05-23 DJ Delorie <dj@redhat.com>
3005 * config/m32c/jump.md (untyped_call): Add.
3007 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
3009 (m32c_address_cost): Detail costs for indirect offsets.
3011 2008-05-23 Rafael Espindola <espindola@google.com>
3013 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
3014 if a node is a SUBREG.
3015 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
3018 2008-05-23 Paul Brook <paul@codesourcery.com>
3019 Carlos O'Donell <carlos@codesourcery.com>
3021 * doc/extend.texi: Clarify use of __attribute__((naked)).
3022 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3023 * target.h (gcc_target): Add allocate_stack_slots_for_args.
3024 * function.c (use_register_for_decl): Use
3025 targetm.calls.allocate_stack_slots_for_args.
3026 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3027 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
3028 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3030 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3032 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
3034 2008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
3036 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
3037 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
3038 is only rounded once.
3040 2008-05-23 Richard Guenther <rguenther@suse.de>
3042 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
3044 2008-05-23 Uros Bizjak <ubizjak@gmail.com>
3045 Jakub Jelinek <jakub@redhat.com>
3048 * configure.ac: Handle --enable-cld.
3049 * configure: Regenerated.
3050 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
3051 * config/i386/i386.h (struct machine_function): Add needs_cld field.
3052 (ix86_current_function_needs_cld): New define.
3053 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3054 (cld): New isns pattern.
3055 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3056 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3057 * config/i386/i386.opt (mcld): New option.
3058 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3059 TARGET_CLD and ix86_current_function_needs_cld.
3060 (override_options): Use -mcld by default for 32-bit code if
3063 * doc/install.texi (Options specification): Document --enable-cld.
3064 * doc/invoke.texi (Machine Dependent Options)
3065 [i386 and x86-64 Options]: Add -mcld option.
3066 (Intel 386 and AMD x86-64 Options): Document -mcld option.
3068 2008-05-23 Kai Tietz <kai.tietz@onevison.com>
3069 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3070 (return_in_memory_64): Likewise.
3071 (return_in_memory_ms_64): Likewise.
3073 2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3075 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3076 * builtins.c (fold_builtin_fpclassify): New.
3077 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3078 * builtins.def (BUILT_IN_FPCLASSIFY): New.
3079 * c-common.c (handle_type_generic_attribute): Adjust to accept
3080 fixed arguments before an elipsis.
3081 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3082 * doc/extend.texi: Document __builtin_fpclassify.
3084 2008-05-22 Aldy Hernandez <aldyh@redhat.com>
3086 * omp-low.c (gate_expand_omp_ssa): Remove.
3087 (pass_expand_omp_ssa): Remove.
3088 (gate_expand_omp): Do not check for flag_openmp_ssa.
3089 * common.opt (-fopenmp-ssa): Remove.
3090 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3092 2008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
3094 * config/sh/sh.opt (mfixed-range): New option.
3095 * config/sh/sh-protos.h (sh_fix_range): Declare.
3096 * config/sh/sh.c (sh_fix_range): New function.
3097 * config/sh/sh.h (sh_fixed_range_str): Declare.
3098 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3100 * doc/invoke.texi (SH Options): Document -mfixed-range.
3102 2008-05-22 Kai Tietz <kai.tietz@onevision.com>
3104 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3105 it before the redeclaration.
3107 2008-05-22 Anatoly Sokolov <aesok@post.ru>
3109 * config/avr/avr.c (get_sequence_length): Add new function.
3110 (expand_prologue, expand_epilogue): Remove duplicate code.
3112 2008-05-22 Rafael Espindola <espindola@google.com>
3114 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3117 2008-05-22 H.J. Lu <hongjiu.lu@intel.com>
3119 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3120 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3122 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3123 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3124 (vect_update_misalignment_for_peel): Likewise.
3125 (vector_alignment_reachable_p): Likewise.
3126 * tree-vect-transform.c (vectorizable_load): Likewise.
3127 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3128 (get_vectype_for_scalar_type): Pass mode of scalar_type
3129 to UNITS_PER_SIMD_WORD.
3131 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3132 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3133 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3134 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3135 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3137 2008-05-22 Ira Rosen <irar@il.ibm.com>
3139 PR tree-optimization/36293
3140 * tree-vect-transform.c (vect_transform_strided_load): Don't check
3141 if the first load must be skipped because of a gap.
3143 2008-05-22 Richard Guenther <rguenther@suse.de>
3145 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
3146 more cases of offset disambiguation that is possible if
3147 strict-aliasing rules apply.
3148 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3149 for basic offset and type-based disambiguation.
3151 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3153 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3154 ix86_expand_vector_set on V16QImode for SSE4.1.
3156 2008-05-21 Tom Tromey <tromey@redhat.com>
3158 * c.opt (Wimport): Mark as undocumented.
3159 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3161 (Warning Options): Likewise.
3162 * doc/cppopts.texi: Don't mention -Wimport.
3164 2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
3166 PR tree-optimization/36287
3167 PR tree-optimization/36286
3168 * lambda-code.c (build_access_matrix): Do not use the loop->num
3169 for computing the number of induction variables: use the loop depth
3172 2008-05-21 Kai Tietz <kai.tietz@onevision.com>
3175 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3176 option -f(no-)leading-underscore.
3178 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3180 * config/i386/i386.c (ix86_expand_vector_init_general): Use
3181 GET_MODE_NUNITS (mode).
3183 2008-05-21 Peter Bergner <bergner@vnet.ibm.com>
3185 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3186 (-mmulhw): Add 464 to description.
3187 (-mdlmzb): Likewise.
3188 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3189 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3191 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3192 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3193 * config/rs6000/rs6000.md: Update comments for 464.
3195 2008-05-21 Janis Johnson <janis187@us.ibm.com>
3197 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3199 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3201 * config/i386/sse.md (vec_extractv4sf): Removed.
3202 (vec_extractv2df): Likewise.
3203 (vec_extractv2di): Likewise.
3204 (vec_extractv4si): Likewise.
3205 (vec_extractv8hi): Likewise.
3206 (vec_extractv16qi): Likewise.
3207 (vec_extract<mode>): New.
3209 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3211 * config/i386/sse.md (vec_setv4sf): Removed.
3212 (vec_setv2df): Likewise.
3213 (vec_setv2di): Likewise.
3214 (vec_setv4si): Likewise.
3215 (vec_setv8hi): Likewise.
3216 (vec_setv16qi): Likewise.
3217 (vec_set<mode>): New.
3219 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3221 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3222 goto for vec_concat and vec_interleave.
3224 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
3226 * config/i386/sse.md (vec_initv4sf): Removed.
3227 (vec_initv2df): Likewise.
3228 (vec_initv2di): Likewise.
3229 (vec_initv4si): Likewise.
3230 (vec_initv8hi): Likewise.
3231 (vec_initv16qi): Likewise.
3232 (vec_init<mode>): New.
3234 2008-05-21 Joseph Myers <joseph@codesourcery.com>
3236 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3238 2008-05-21 Tom Tromey <tromey@redhat.com>
3240 * ggc-zone.c (lookup_page_table_if_allocated): New function.
3241 (zone_find_object_offset): Likewise.
3242 (gt_ggc_m_S): Likewise.
3243 (highest_bit): Likewise.
3244 * ggc-page.c (gt_ggc_m_S): New function.
3245 * stringpool.c (string_stack): Remove.
3246 (init_stringpool): Update.
3247 (ggc_alloc_string): Use ggc_alloc.
3248 (maybe_delete_ident): New function.
3249 (ggc_purge_stringpool): Likewise.
3250 (gt_ggc_m_S): Remove.
3251 * ggc-common.c (ggc_protect_identifiers): New global.
3252 (ggc_mark_roots): Call ggc_purge_stringpool. Use
3253 ggc_protect_identifiers.
3254 * ggc.h (ggc_protect_identifiers): Declare.
3255 (gt_ggc_m_S): Update.
3256 (ggc_purge_stringpool): Declare.
3257 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3258 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3260 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3262 2008-05-21 David S. Miller <davem@davemloft.net>
3264 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3267 2008-05-21 Eric Botcazou <ebotcazou@adacore.com>
3269 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3272 2008-05-20 David Daney <ddaney@avtrex.com>
3274 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3275 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3276 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3277 UNSPEC_UPDATE_GOT_VERSION): Renumber.
3278 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3279 (atomic_hiqi_op): New define_code_iterator.
3280 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3281 mips_expand_compare_and_swap_12.
3282 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3283 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
3284 (sync_<optab><mode>, sync_old_<optab><mode>,
3285 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3286 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3287 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3288 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3289 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3290 (test_and_set_12): New insn.
3291 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3292 sync_new_<optab><mode>, sync_old_nand<mode>,
3293 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
3294 clobber to operand 0 for SI and DI mode insns.
3295 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3296 mips_gen_fn_4): New typedefs.
3297 (mips_gen_fn_ptrs): Define new union type.
3298 (mips_expand_compare_and_swap_12): Remove declaration.
3299 (mips_expand_atomic_qihi): Declare function.
3300 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3301 (mips_expand_atomic_qihi): ... this. Use new generator function
3303 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3304 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3305 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3306 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3307 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3308 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3309 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3310 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3311 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3312 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3315 2008-05-20 H.J. Lu <hongjiu.lu@intel.com>
3317 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3320 2008-05-20 Anatoly Sokolov <aesok@post.ru>
3322 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3323 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3324 (avr_attribute_table): Add 'OS_main' function attribute.
3325 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3326 functions with 'OS_main' attribute.
3328 2008-05-20 Richard Guenther <rguenther@suse.de>
3330 PR tree-optimization/35204
3331 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3332 helper, split out from ...
3333 (DFS): ... here. Make the DFS walk non-recursive.
3335 2008-05-20 Sebastian Pop <sebastian.pop@amd.com>
3336 Jan Sjodin <jan.sjodin@amd.com>
3338 PR tree-optimization/36181
3339 * tree-parloops.c (loop_has_vector_phi_nodes): New.
3340 (parallelize_loops): Don't parallelize when the loop has vector
3343 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
3344 Sebastian Pop <sebastian.pop@amd.com>
3346 * tree-loop-linear.c (gather_interchange_stats): Look in the access
3347 matrix, and never look at the tree representation of the memory
3349 (linear_transform_loops): Computes parameters and access matrices.
3350 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3352 (access_matrix_get_index_for_parameter): New.
3353 * tree-data-ref.h (struct access_matrix): New.
3354 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3355 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3356 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3357 am_vector_index_for_loop): New.
3358 (struct data_reference): Add field access_matrix.
3359 (DR_ACCESS_MATRIX): New.
3360 (compute_data_dependences_for_loop): Update declaration.
3361 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3362 * lambda.h (lambda_vector_vec_p): Declared.
3363 * lambda-code.c: Depend on pointer-set.h.
3364 (lambda_collect_parameters_from_af, lambda_collect_parameters,