1 2008-07-09 Doug Kwan <dougkwan@google.com>
4 2008-07-08 Doug Kwan <dougkwan@google.com>
6 * config/arm/arm.opt (mandroid): New option.
7 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
8 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
12 (STARTFILE_SPEC): Same.
14 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
17 2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
20 * config/mips/mips.h (reg_class): Remove V1_REG.
21 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
22 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
24 (mips_get_tp): New function.
25 (mips_legitimize_tls_address): Use it.
26 * config/mips/constraints.md (v): Delete.
27 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
28 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
29 After reload, split into a move and ...
30 (*tls_get_tp_<mode>_split): ...this new instruction.
32 2008-07-09 David Daney <ddaney@avtrex.com>
34 * config/mips/driver-native.c: Include coretypes.h and tm.h.
36 2008-07-09 Jakub Jelinek <jakub@redhat.com>
38 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
39 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
41 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
42 htab_delete should be called. Don't free c.
43 (lookup_tmp_var): Create temp_htab lazily.
44 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
45 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
47 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
48 lower_omp_ordered, lower_omp_critical, lower_omp_for,
49 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
50 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
51 * tree-sra.c (generate_element_init): Likewise.
52 * tree-mudflap.c (execute_mudflap_function_ops,
53 execute_mudflap_function_decls): Likewise.
54 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
55 * tree-gimple.h (struct gimplify_ctx): New type.
56 (push_gimplify_context): Adjust prototype.
58 2008-07-09 Daniel Berlin <dberlin@dberlin.org>
60 * tree-ssa-pre.c (phi_translate_1): Update placement of
63 2008-07-09 Anatoly Sokolov <aesok@post.ru>
65 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
66 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
67 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
68 * targhooks.c (default_hard_regno_scratch_ok): New function.
69 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
70 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
71 * recog.c: Include "target.h".
72 (peep2_find_free_register): Add check for global regs. Add target
74 * Makefile.in (recog.o): Depend on target.h.
76 2008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
78 * config/sh/sh.c (sh_canonical_va_list_type): New.
79 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
81 2008-07-09 Raksit Ashok <raksit@google.com>
83 * doc/invoke.texi (Option Summary): Mention new option
84 -Wdisallowed-function-list=...
85 (Warning Options): Document -Wdisallowed-function-list=...
86 * common.opt (Wdisallowed-function-list=): New flag.
87 * flags.h (warn_disallowed_functions): External definition of new
89 (warn_if_disallowed_function_p): Declare new function.
90 * opts.c (warning_disallowed_functions): New static variable.
91 (warn_disallowed_functions): New boolean warning flag.
92 (warn_if_disallowed_function_p): New function.
93 (add_comma_separated_to_vector): Rename
94 add_instrument_functions_exclude_list to this.
95 (common_handle_option): Handle new option. Rename calls to
96 add_instrument_functions_exclude_list into calls to
97 add_comma_separated_to_vector.
98 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
99 based on flag warn_disallowed_functions.
101 2008-07-09 Christian Bruel <christian.bruel@st.com>
103 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
104 instead of get_attr_length.
106 2008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
108 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
110 * genemit.c (gen_insn): Likewise.
111 * gengtype.c (note_def_vec): Likewise.
112 * gengtype.h (note_def_vec): Likewise.
113 * genoutput.c (struct data, output_insn_data, process_template,
114 gen_expand, gen_split, note_constraint): Likewise.
115 * genrecog.c (new_decision, add_to_sequence, factor_tests,
116 make_insn_sequence): Likewise.
117 * gensupport.c (record_insn_name): Likewise.
119 2008-07-08 Doug Kwan <dougkwan@google.com>
121 * config/arm/arm.opt (mandroid): New option.
122 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
123 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
125 (CC1PLUS_SPEC): Same.
127 (STARTFILE_SPEC): Same.
128 (ENDFILE_SPEC): Same.
129 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
132 2008-07-08 Raksit Ashok <raksit@google.com>
134 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
135 (set_storage_via_setmem): Fix expected_align parameter.
136 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
137 missing from the list.
138 * doc/md.texi (movmem): Explicitly state that expected alignment is
139 to be expressed in bytes.
140 (setmem): Explicitly state that expected alignment is to be expressed
143 2008-07-08 Joseph Myers <joseph@codesourcery.com>
145 * reload.c (find_reloads_subreg_address): Do not require validity
146 of address in original mode before reloading address.
148 2008-07-07 Tianwei Sheng <tianweis@google.com>
150 * df-core.c (df_remove_problem): Adjust the access to avoid out of
153 2008-07-08 Jakub Jelinek <jakub@redhat.com>
155 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P
158 2008-07-05 Daniel Berlin <dberlin@dberlin.org>
160 Fix PR tree-optimization/23455
161 Fix PR tree-optimization/35286
162 Fix PR tree-optimization/35287
163 * Makefile.in (OBJS-common): Remove tree-vn.o.
165 * dbgcnt.def: Add treepre_insert debug counter.
166 * gcc/tree-flow.h (add_to_value): Updated for other changes.
167 (debug_value_expressions): Ditto.
168 (print_value_expressions): Ditto.
169 * tree-pretty-print.c (dump_generic_node): Updated for
170 VALUE_HANDLE removal.
171 * tree-ssa-dom.c (record_equality): Ditto.
172 (cprop_operand): Ditto.
173 (lookup_avail_expr): Ditto.
174 * tree-ssa-threadedge.c
175 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
176 (simplify_control_stmt_condition): Ditto.
177 * tree.c (tree_code_size): Ditto.
178 (tree_node_structure): Ditto.
179 (iterative_hash_expr): Ditto.
181 * tree.h (VALUE_HANDLE_ID): Ditto.
182 (VALUE_HANDLE_EXPR_SET): Ditto.
183 (struct tree_value_handle): Ditto.
184 (union tree_node): Ditto.
185 * treestruct.def: Ditto.
186 * tree-vn.c: Removed.
187 * tree-ssa-pre.c: Rewritten entirely.
188 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
189 (constant_value_ids): Ditto.
190 (vn_nary_op_t): Moved to header.
192 (vn_reference_op_t): Ditto
193 (vn_reference_t): Ditto.
194 (next_value_id): New variable.
195 (VN_INFO): Add an assert.
196 (vn_constant_eq): New function.
197 (vn_constant_hash): Ditto.
198 (get_or_alloc_constant_value_id): Ditto.
199 (value_id_constant_p): Ditto.
200 (vn_reference_compute_hash): De-staticify.
201 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
202 Disable some code with a FIXME.
203 Remove VALUE_HANDLE use.
204 (valueize_refs): Update opcode if it changes from ssa name to
206 (vn_reference_lookup_1): Add new argument.
207 (vn_reference_lookup): Ditto.
208 (vn_reference_lookup_pieces): New function.
209 (vn_reference_insert): Add return type. Modify to deal with value
211 (vn_reference_insert_pieces): New function.
212 (vn_nary_op_compute_hash): De-staticify.
213 (vn_nary_op_eq): Ditto.
214 (vn_nary_op_lookup_pieces): New function.
215 (vn_nary_op_lookup): Add new argument.
216 (vn_nary_op_insert_pieces): New function.
217 (vn_nary_op_insert): Add return type. Modify to deal with value
219 (vn_phi_insert): Ditto.
220 (visit_unary_op): Update for callee changes.
221 (visit_binary_op): Ditto.
222 (visit_reference_op_load): Ditto.
223 (visit_reference_op_store): Ditto.
224 (init_scc_vn): Init next_value_id, constant_to_value_id and
226 (free_scc_vn): Free them.
227 (set_hashtable_value_ids): New function.
228 (run_scc_vn): Use it.
229 (get_max_value_id): New function.
230 (get_next_value_id): Ditto.
231 (expressions_equal_p): Moved from tree-vn.c
233 (sort_vuses_heap): Ditto.
234 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
236 * tree.c (iterative_hash_hashval_t): Made non-static
237 * tree.h (iterative_hash_hashval_t): Declare it.
239 2008-07-08 Martin Jambor <mjambor@suse.cz>
241 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
242 instead of ipa_create_node_params.
243 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
244 ipa_check_create_edge_args, free them with
245 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
247 * ipa-prop.c: Include flags.h and tree-inline.h.
248 (ipa_node_params_vector): New variable.
249 (ipa_edge_args_vector): New variable.
250 (edge_removal_hook_holder): New variable.
251 (node_removal_hook_holder): New variable.
252 (edge_duplication_hook_holder): New variable.
253 (node_duplication_hook_holder): New variable.
254 (ipa_detect_param_modifications): Check for presence of modified flags.
255 (ipa_compute_jump_functions): Check for presence of jump functions.
256 (ipa_free_edge_args_substructures): New function.
257 (ipa_create_node_params): Removed.
258 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
259 (ipa_free_node_params_substructures): New function.
260 (ipa_free_all_node_params): Changed to deallocate the on-the-side
262 (ipa_edge_removal_hook): New function.
263 (ipa_node_removal_hook): New function.
264 (duplicate_array): New function.
265 (ipa_edge_duplication_hook): New function.
266 (ipa_node_duplication_hook): New function.
267 (ipa_register_cgraph_hooks): New function.
268 (ipa_unregister_cgraph_hooks): New function.
269 (free_all_ipa_structures_after_ipa_cp): New function.
271 * ipa-prop.h: Include vec.h.
272 (ipa_node_params_t): New typedef with vector types for it.
273 (ipa_edge_args_t): New typedef with vector types for it.
274 (IPA_NODE_REF): Changed to access an on-the-side vector.
275 (IPA_EDGE_REF): Changed to access an on-the-side vector.
276 (ipa_check_create_node_params): New function.
277 (ipa_check_create_edge_args): New function.
279 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
282 2008-07-07 Tom Tromey <tromey@redhat.com>
284 * configure, config.in: Rebuilt.
285 * configure.ac: Don't check for scandir or alphasort.
287 2008-07-07 Joseph Myers <joseph@codesourcery.com>
289 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
290 types immediately after creating them.
292 2008-07-07 Joseph Myers <joseph@codesourcery.com>
294 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
296 2008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
298 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
299 dump_constraint_graph.
300 (dump_constraint_edge): New function.
301 (dump_constraint_graph): New function.
302 (debug_constraint_graph): New function.
303 (dump_constraint): Removed useless comparison.
304 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
305 (dump_constraint_graph): Declare.
306 (debug_constraint_graph): Declare.
307 * tree-dump.c (struct dump_option_value_info): Declare
310 2008-07-07 Kai Tietz <kai.tietz@onevision.com>
312 * config/i386/i386.c (is_va_list_char_pointer): New.
313 (ix86_va_start): Replace compare with ms_va_list_type_node
314 by is_va_list_char_pointer.
315 (ix86_gimplify_va_arg): Likewise.
317 2008-07-07 Martin Jambor <mjambor@suse.cz>
319 * cgraph.c (cgraph_edge_max_uid): New variable.
320 (struct cgraph_edge_hook_list): New type.
321 (struct cgraph_node_hook_list): New type.
322 (struct cgraph_2edge_hook_list): New type.
323 (struct cgraph_2node_hook_list): New type.
324 (first_cgraph_edge_removal_hook): New variable.
325 (first_cgraph_node_removal_hook): New variable.
326 (first_cgraph_edge_duplicated_hook): New variable.
327 (first_cgraph_node_duplicated_hook): New variable.
328 (cgraph_add_edge_removal_hook): New function.
329 (cgraph_remove_edge_removal_hook): New function.
330 (cgraph_call_edge_removal_hooks): New function.
331 (cgraph_add_node_removal_hook): New function.
332 (cgraph_remove_node_removal_hook): New function.
333 (cgraph_call_node_removal_hooks): New function.
334 (cgraph_add_edge_duplication_hook): New function.
335 (cgraph_remove_edge_duplication_hook): New function.
336 (cgraph_call_edge_duplication_hooks): New function.
337 (cgraph_add_node_duplication_hook): New function.
338 (cgraph_remove_node_duplication_hook): New function.
339 (cgraph_call_node_duplication_hooks): New function.
340 (cgraph_create_edge): Assign to edge uid.
341 (cgraph_remove_edge): Call edge removal hooks.
342 (cgraph_node_remove_callees): Call edge removal hooks.
343 (cgraph_node_remove_callers): Call edge removal hooks.
344 (cgraph_remove_node): Call node removal hooks.
345 (cgraph_clone_edge): Call edge duplication hooks.
346 (cgraph_clone_node): Call node duplication hooks.
348 * cgraph.h (cgraph_edge): New field uid.
349 (cgraph_edge_hook): New type.
350 (cgraph_node_hook): New type.
351 (cgraph_2edge_hook): New type.
352 (cgraph_2node_hook): New type.
354 2008-07-07 Andreas Tobler <a.tobler@schweiz.org>
356 * config.in: Regenerate.
358 2008-07-07 Vladimir Prus <vladimir@codesourcery.com>
360 * gcc.c (print_sysroot): New.
361 (option_map, display_help, process_command): Handle the
362 -print-sysroot option.
363 (main): Print the sysroot if requested.
364 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
366 2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
369 * unwind-pe.h (size_of_encoded_value): add attribute unused.
371 2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
373 * function.c (assign_parm_remove_parallels): Check mode of
375 (assign_parm_setup_block_p): Also check mode of entry_parm.
377 2008-07-07 Richard Guenther <rguenther@suse.de>
379 * tree-ssa-structalias.h (set_used_smts): Remove.
380 * tree-ssa-structalias.c (used_smts): Likewise.
381 (set_used_smts): Likewise.
382 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
383 call to set_used_smts.
385 2008-07-07 Richard Guenther <rguenther@suse.de>
387 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
388 (new_var_info): Set it to false.
389 (solution_set_add): Correctly handle pointers outside a var and
391 (type_safe): Treat variables with is_full_var properly.
392 (do_sd_constraint): Likewise.
393 (do_ds_constraint): Likewise.
394 (process_constraint): Remove zeroing offset for !use_field_sensitive.
395 (get_constraint_for_ptr_offset): New function.
396 (get_constraint_for_component_ref): For addresses at least include
397 the last field of the variable. Handle is_full_vars properly.
398 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
399 (handle_ptr_arith): Remove.
400 (find_func_aliases): Simplify assignment handling.
401 (create_function_info_for): For parameter and result varinfos set
403 (create_variable_info_for): Set is_full_var flag whenever we
404 just created a single varinfo for a decl.
405 (init_alias_vars): Initialize use_field_sensitive from
406 max-fields-for-field-sensitive parameter.
408 2008-07-07 Richard Guenther <rguenther@suse.de>
410 PR tree-optimization/36713
411 * tree-flow-inline.h (is_call_used): New function.
412 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
413 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
414 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
416 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
418 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
420 2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
422 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
424 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
425 Nathan Sidwell <nathan@codesourcery.com>
427 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
428 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
430 * config/m68k/t-linux: New.
431 * doc/install.texi: Document m68k-*-linux is now multilibbed by
434 2008-07-07 Nathan Sidwell <nathan@codesourcery.com>
436 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
437 * config/m68k/m68k-devices.def: Remove multilibs that only differ
440 2008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
442 * gcc.c (execute): Fix -Wc++-compat warning.
444 2008-07-06 H.J. Lu <hongjiu.lu@intel.com>
447 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
448 constant for little endian.
450 2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
452 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
453 mips_base_mips16 instead of TARGET_MIPS16.
454 (mips_base_mips16): Declare.
455 * config/mips/mips.c (mips_base_mips16): Make global.
456 (was_mips16_p): Remove GTY marker.
457 (was_mips16_pch_p): New variable.
458 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
459 (mips_override_options): Force to non-MIPS16 mode initially.
460 Do not complain about MIPS16 PIC incompatibilities here.
461 Only allow -mgpopt if -mexplicit-relocs is in force for
464 2008-07-06 Andreas Tobler <a.tobler@schweiz.org>
466 * configure.ac: Check for caddr_t, define to char * if not defined.
467 * configure: Regenerate.
468 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
469 (mmap_gt_pch_use_address): Likewise.
470 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
472 2008-07-06 Richard Guenther <rguenther@suse.de>
474 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
475 (new_var_info): Deal with it.
476 (solution_set_add): Likewise.
477 (bitpos_of_field): Make signed, fix.
478 (struct fieldoff): Remove type and decl fields. Make size field
479 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
481 (fieldoff_compare): Deal with it.
482 (push_fields_onto_fieldstack): Remove has_union argument, glob
483 adjacent non-pointer fields together.
484 (create_function_info_for): Do not set has_union.
485 (create_variable_info_for): Simplify.
487 2008-07-06 Kai Tietz <kai.tietz@onevision.com>
489 * config.gcc (extra_headers): Add cross-stdarg.h for target
490 x86_64-*-* and i?86-*-*.
491 * config/i386/cross-stdarg.h: New.
492 * builtins.c (std_fn_abi_va_list): New.
493 (std_canonical_va_list_type): New.
494 (stabilize_va_list): Replace va_list_type_node use by
495 mtarget.canonical_va_list_type.
496 (gimplify_va_arg_expr): Likewise.
497 (expand_builtin_va_copy): Replace va_list_type_node use by
498 mtarget.fn_abi_va_list.
499 * tree-sra.c (is_va_list_type): New helper.
500 (decl_can_be_decomposed_p): Replace
501 va_list_type_node use by is_va_list_type.
502 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
503 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
504 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
505 * config/i386/i386-protos.h (ix86_get_valist_type): New.
506 (ix86_enum_va_list): New.
507 * config/i386/i386.c (sysv_va_list_type_node): New.
508 (ms_va_list_type_node): New.
509 (ix86_function_type_abi): Remove sorry.
510 (ix86_build_builtin_va_list_abi): New.
511 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
513 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
514 (ix86_init_builtins_va_builtins_abi): New.
515 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
517 (ix86_handle_abi_attribute): New.
518 (attribute_spec): Add sysv_abi and ms_abi.
519 (ix86_fn_abi_va_list): New.
520 (ix86_canonical_va_list_type): New.
521 (ix86_enum_va_list): New.
522 (TARGET_FN_ABI_VA_LIST): New.
523 (TARGET_CANONICAL_VA_LIST_TYPE): New.
524 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
525 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
526 (TARGET_CANONICAL_VA_LIST_TYPE): New.
527 (TARGET_ENUM_VA_LIST): New.
528 * expr.h (std_fn_abi_va_list): New.
529 (std_canonical_va_list_type): New.
530 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
531 (TARGET_CANONICAL_VA_LIST_TYPE): New.
532 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
533 TARGET_CANONICAL_VA_LIST_TYPE.
534 * target.h (struct gcc_target): Add fn_abi_va_list hook
535 and canonical_va_list_type hook.
537 2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
539 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
540 integral and pointer types.
542 2008-07-04 Roger Sayle <roger@eyesopen.com>
544 * config/rs6000/host-darwin.c (darwin_rs6000_extra_siganls): Cast
545 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
547 2008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
550 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
553 2008-07-04 Jakub Jelinek <jakub@redhat.com>
555 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
556 build_gimple_modify_stmt.
557 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
558 gimple operand. Use fold_build* instead of build*.
560 2008-07-04 Richard Guenther <rguenther@suse.de>
562 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
563 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
564 properly to compute the reachability set if we do field-sensitive PTA.
565 * invoke.texi (max-fields-for-field-sensitive): Document default.
566 * opts.c (decode_options): Set max-fields-for-field-sensitive to
567 100 for optimize >= 2.
569 2008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
571 * ggc-zone.c (lookup_page_table_if_allocated,
572 set_page_table_entry, zone_find_object_size, alloc_small_page,
573 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
574 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
575 -Wc++-compat and/or -Wcast-qual warnings.
577 2008-07-04 Alan Modra <amodra@bigpond.net.au>
580 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
581 pic_offset_table_rtx to be marked as used here.
582 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
583 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
584 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
585 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
588 2008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
590 * alloc-pool.c (hash_descriptor, eq_descriptor,
591 alloc_pool_descriptor): Fix -Wc++-compat warnings.
592 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
594 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
595 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
596 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics):
598 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
601 2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
603 * tree-flow.h (loop_only_exit_p): Declare.
604 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
605 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
606 the number of iterations if it is constant. Otherwise, if this is the
607 only possible exit of the loop, use the conservative estimate on the
608 number of iterations of the entire loop if available.
610 2008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
612 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
613 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
614 Add synchronization functions.
615 * config/sync.c: New file.
616 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
617 (LIBGCC_SYNC_CFLAGS): Likewise.
619 2008-07-03 Uros Bizjak <ubizjak@gmail.com>
622 * config/i386/i386.md (mode): Add TF to "mode" attribute.
623 (*pushtf_sse): New insn pattern.
624 (pushtf splitters): New splitters.
626 2008-07-03 Michael Meissner <gnu@the-meissners.org>
629 * predict.c (build_predict_expr): Use void_type_node for the tree
630 type, instead of NULL_TREE.
632 2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
634 * config/i386/i386.c (contains_aligned_value_p): Return true
636 (ix86_data_alignment): Align TCmode to 128bits.
637 (ix86_local_alignment): Likewise.
639 2008-07-03 Andrew Haley <aph@redhat.com>
642 * vec.h (VEC_TA): New.
643 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
644 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
645 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
646 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
647 (C_COMMON_FIXED_TYPES): Remove first arg.
648 (C_COMMON_FIXED_MODE_TYPES): Likewise.
649 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
650 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
651 not to use empty macro arguments.
653 2008-07-02 Joseph Myers <joseph@codesourcery.com>
655 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
656 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
657 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
658 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
659 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
660 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
661 config/ia64/crtn.asm, config/m68hc11/larith.asm,
662 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
663 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
664 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
665 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
666 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
667 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
668 config/rs6000/e500crtres64gpr.asm,
669 config/rs6000/e500crtres64gprctr.asm,
670 config/rs6000/e500crtrest32gpr.asm,
671 config/rs6000/e500crtrest64gpr.asm,
672 config/rs6000/e500crtresx32gpr.asm,
673 config/rs6000/e500crtresx64gpr.asm,
674 config/rs6000/e500crtsav32gpr.asm,
675 config/rs6000/e500crtsav64gpr.asm,
676 config/rs6000/e500crtsav64gprctr.asm,
677 config/rs6000/e500crtsavg32gpr.asm,
678 config/rs6000/e500crtsavg64gpr.asm,
679 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
680 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
681 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
682 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
683 config/sparc/sol2-cn.asm: Remove .file directives.
685 2008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
687 * resource.c (mark_referenced_resources): Look inside
688 UNSPEC_VOLATILEs and ASM_INPUTs.
690 2008-07-02 Ian Lance Taylor <iant@google.com>
692 * rtlanal.c (add_reg_note): New function.
693 * rtl.h (add_reg_note): Declare.
694 * auto-inc-dec.c (attempt_change): Use add_reg_note.
695 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
696 * builtins.c (expand_builtin_longjmp): Likewise.
697 (expand_builtin_nonlocal_goto): Likewise.
698 * calls.c (emit_call_1, expand_call): Likewise.
699 * cfgexpand.c (add_reg_br_prob_note): Likewise.
700 * cfglayout.c (fixup_reorder_chain): Likewise.
701 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
702 (commit_one_edge_insertion): Likewise.
703 * combine.c (move_deaths, distribute_notes): Likewise.
704 * df-problems.c (df_set_note): Likewise.
705 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
706 (set_unique_reg_note): Likewise.
707 (emit_copy_of_insn_after): Likewise.
708 * expr.c (expand_expr_real): Likewise.
709 * gcse.c (add_label_notes): Likewise.
710 * haifa-sched.c (create_check_block_twin): Likewise.
711 * jump.c (mark_jump_label_1): Likewise.
712 * loop-doloop.c (add_test, doloop_modify): Likewise.
713 * loop-unswitch.c (compare_and_jump_seq): Likewise.
714 * lower-subreg.c (move_eh_region_note): Likewise.
715 * optabs.c (emit_libcall_block): Likewise.
716 * predict.c (predict_insn): Likewise.
717 (combine_predictions_for_insn): Likewise.
718 * recog.c (peephole2_optimize): Likewise.
719 * regmove.c (try_auto_increment): Likewise.
720 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
721 * reload.c (find_reloads): Likewise.
722 * reload1.c (fixup_eh_region_note): Likewise.
723 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
724 * reorg.c (delete_prior_computation): Likewise.
725 (delete_computation, dbr_schedule): Likewise.
726 * config/pa/pa.c (legitimize_pic_address): Likewise.
727 * config/sh/sh.c (sh_reorg): Likewise.
729 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
732 * config/libgcc-glibc.ver: Add %exclude.
733 * config/m32r/libgcc-glibc.ver: Likwise.
734 * config/s390/libgcc-glibc.ver: Likwise.
735 * config/sh/libgcc-glibc.ver: Likwise.
736 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
738 * config/i386/libgcc-glibc.ver: New.
740 * config/i386/libgcc-x86_64-glibc.ver: Removed.
742 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
744 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
745 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
746 i[34567]86-*-linux*, x86_64-*-linux*. Add
747 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
748 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
749 x86_64-*-linux*. Add i386/t-linux to tmake_file for
750 i[34567]86-*-linux*, x86_64-*-linux*.
752 * libgcc-std.ver: Add empty GCC_4.4.0.
754 * mkmap-symver.awk: Support multiple versions per symbol.
756 * config/i386/i386.c (ix86_init_builtins): Always define
757 __builtin_fabsq and __builtin_copysignq with fallbacks.
758 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
759 and __builtin_copysignq if SSE2 isn't available.
761 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
762 (LIBGCC2_TF_CEXT): Likwise.
765 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
767 * config/i386/sfp-machine.h: Moved to libgcc.
769 * config/i386/sfp-machine.h: New.
770 * config/i386/t-linux: Likwise.
772 * config/i386/t-darwin: Remove softfp_wrap_start and
774 * config/i386/t-darwin64: Likewise.
776 * config/i386/t-fprules-softfp64: Renamed to ...
777 * config/i386/t-fprules-softfp: This.
779 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
782 2008-07-02 Jason Merrill <jason@redhat.com>
784 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
786 * tree.c (ctor_to_list): New fn.
787 * tree.h: Declare it.
788 (CONSTRUCTOR_ELT): New macro.
789 (CONSTRUCTOR_NELTS): New macro.
791 2008-07-02 Richard Guenther <rguenther@suse.de>
793 * tree-ssa-structalias.c (struct variable_info): Reorder
794 to fill padding on 64bit hosts. Make collapsed_to an int.
795 (get_varinfo_fc): Deal with that.
796 (new_var_info): Likewise.
797 (collapse_rest_of_var): Likewise.
799 2008-07-02 Joshua Sumali <jsumali@redhat.com>
801 * doc/install.texi (--enable-java-home): Document.
802 (--enable-aot-compile-rpm): Likewise.
803 (--with-arch-directory): Likewise.
804 (--with-os-directory): Likewise.
805 (--with-origin-name): Likewise.
806 (--with-arch-suffix): Likewise.
807 (--with-jvm-root-dir): Likewise.
808 (--with-jvm-jar-dir): Likewise.
809 (--with-python-dir): Likewise.
811 2008-07-02 Richard Guenther <rguenther@suse.de>
813 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
814 from decls explicitly. Merge operand checking from tuples.
816 2008-07-02 Martin Jambor <mjambor@suse.cz>
818 * tree-switch-conversion.c: Included timevar.h which I forgot before.
820 2008-07-02 Martin Jambor <mjambor@suse.cz>
822 * tree-switch-conversion.c: Included timevar.h
823 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
825 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
827 2008-07-02 Martin Jambor <mjambor@suse.cz>
829 * tree-switch-conversion.c: Corrected various comments and
831 (build_constructors): Fixed minor formatting mistakes.
833 * invoke.texi (Optimize Options): Corrected the
834 switch-conversion-max-branch-ratio parameter.
836 2008-07-02 Mark Shinwell <shinwell@codesourcery.com>
838 * final.c (asm_insn_count): Return zero for an empty asm body.
840 2008-07-02 Richard Guenther <rguenther@suse.de>
842 * bitmap.h (bitmap_set_bit): Return bool.
843 (bitmap_clear_bit): Likewise.
844 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
845 write to the bitmap if it would.
846 (bitmap_clear_bit): Likewise.
847 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
848 bitmap_set_bit return value.
849 (add_pred_graph_edge): Likewise.
850 (add_graph_edge): Likewise.
851 (do_sd_constraint): Likewise.
852 (do_ds_constraint): Likewise.
854 2008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
856 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
857 Fix -Wc++-compat and/or -Wcast-qual warnings.
858 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
859 gen_regparm_prefix): Likewise.
860 * vmsdbgout.c (write_modbeg, lookup_filename,
861 vmsdbgout_source_line, vmsdbgout_init): Likewise.
863 2008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
865 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
866 defaults.h definition apply.
868 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
870 * function.c (assign_parm_remove_parallels): New.
871 (assign_parm_setup_block_p): Do not return true for non-BLKmode
873 (assign_parm_setup_block): Do not handle them.
874 (assign_parm_setup_reg, assign_parm_setup_stack): Call
875 assign_parm_remove_parallels.
877 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
879 * c-typeck.c (convert_for_assignment): Use
880 vector_targets_convertible_p.
881 * c-common.c (vector_targets_convertible_p): New.
882 * c-common.h (vector_targets_convertible_p): New prototype.
883 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
884 opaque_p_V2SI_type_node.
886 2008-07-01 Steve Ellcey <sje@cup.hp.com>
888 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
891 2008-07-01 Uros Bizjak <ubizjak@gmail.com>
893 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
894 TFmode constants via two element DImode vector for hosts with
895 HOST_BITS_PER_WIDE_INT < 64.
896 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
897 also for HOST_BITS_PER_WIDE_INT < 64.
899 2008-07-01 Richard Guenther <rguenther@suse.de>
901 PR tree-optimization/36666
902 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
903 (get_constraint_exp_from_ssa_var): Split into ...
904 (get_constraint_exp_for_temp): ... this ...
905 (get_constraint_for_ssa_var): ... and that.
906 Return constraint expressions for all touched sub-fields
907 if the results address is not taken.
908 (process_constraint): Remove assertion that aggregate
909 assignments do not happen at this place.
910 (get_constraint_for_component_ref): Add address_p argument.
911 Return constraint expressions for all touched sub-fields
912 if the results address is not taken.
913 (do_deref): Use get_constraint_exp_for_temp.
914 (get_constraint_for_1): Rename from ...
915 (get_constraint_for): ... this. Add the old function as wrapper.
916 (do_structure_copy): Use get_constraint_for_1.
918 2008-07-01 Martin Jambor <mjambor@suse.cz>
920 * Makefile.in (tree-switch-conversion.o): Add.
921 (OBJS-common): Add tree-swtch-conversion.o.
922 * passes.c (init_optimization_passes): Add pass_convert_switch.
923 * tree-pass.h: (pass_convert_switch): Add.
924 * tree-switch-conversion.c: New file.
925 * gcc.dg/tree-ssa/cswtch.c: New testcase.
926 * common.opt (ftree-cswtch): New option.
927 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
928 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
929 * opts.c (decode_options): Set flag_tree_switch_conversion when
930 optimization level is >= 2.
931 * doc/invoke.texi (Optimize Options): Added description of
932 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
934 2008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
936 * config/darwin-driver.c (darwin_default_min_version): Fix
937 -Wc++-compat warnings.
939 2008-06-30 Uros Bizjak <ubizjak@gmail.com>
941 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
944 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
946 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
948 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
950 PR rtl-optimization/34744
951 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
952 (df_scan_free_internal): Free data structures not
953 allocated in storage pools.
954 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
955 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
956 df_scan_free_mws_vec.
957 * dse.c (dse_step6): Free offset_map_p and offset_map_n
960 2008-06-30 H.J. Lu <hongjiu.lu@intel.com>
962 * config/i386/i386.c (contains_aligned_value_p): Return true
964 (ix86_function_arg_boundary): Return its natural boundary
966 (return_in_memory_32): Don't check TDmode.
967 (ix86_split_to_parts): Support splitting into 4 parts and
968 support TFmode for 32bit target.
969 (ix86_split_long_move): Support splitting into 4 parts.
970 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
972 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
973 (ix86_init_builtins): Here.
974 (ix86_scalar_mode_supported_p): Always return true for TFmode.
975 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
976 'q' and 'w', respectively.
978 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
980 (movtf_internal): Likewise.
981 (<code>tf2): Likewise.
982 (*absnegtf2_sse): Likewise.
983 (copysign<mode>3): Likewise.
984 (copysign<mode>3_const): Likewise.
985 (copysign<mode>3_var): Likewise.
986 (define_split UNSPEC_COPYSIGN): Likewise.
987 * config/i386/sse.md (*nandtf3): Likewise.
988 (<code>tf3): Likewise.
989 (*<code>tf3): Likewise.
991 2008-06-30 Joey Ye <joey.ye@intel.com>
992 H.J. Lu <hongjiu.lu@intel.com>
994 * global.c (compute_regsets): Set frame_pointer_needed here.
995 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
997 2008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
999 * doc/install.texi (specific): Expand Windows build notes.
1001 2008-06-30 Ira Rosen <irar@il.ibm.com>
1003 PR tree-optimization/36648
1004 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
1005 number of prolog iterations by step. Fix the comment.
1007 2008-06-30 Richard Guenther <rguenther@suse.de>
1010 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
1011 handle calls from ECF_MALLOC functions.
1012 (handle_pure_call): ECF_MALLOC functions do not return
1014 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
1016 2008-06-29 Andreas Schwab <schwab@suse.de>
1018 * config/m68k/m68k.c (print_operand): Always print a float
1020 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
1021 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
1024 * config/rs6000/x-linux64: Remove never used file.
1026 2008-06-29 Richard Guenther <rguenther@suse.de>
1028 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
1030 (struct alias_info): Move ...
1031 * tree-ssa-alias.c: ... here.
1032 (update_alias_info): Declare.
1033 (compute_may_aliases): Call it.
1034 (update_alias_info): New function.
1035 * tree-ssa-structalias.c (update_alias_info): Move ...
1036 * tree-ssa-alias.c (update_alias_info_1): ... here.
1037 * tree-ssa-structalias.c (process_constraint_1): Remove
1038 unused from_call argument. Rename to ...
1039 (process_constraint): ... this. Delete old wrapper.
1040 (make_constraint_to): Adjust callers.
1041 (handle_const_call): Likewise.
1042 (handle_pure_call): Likewise.
1043 (init_base_vars): Likewise.
1044 (handle_lhs_call): Likewise. Remove unnecessary constraint.
1045 (find_func_aliases): We don't need structure copies for
1047 (make_constraint_from_anything): Remove.
1048 (create_variable_info_for): For globals make constraints
1049 from escaped, not from anything.
1050 (compute_points_to_sets): Do not call update_alias_info.
1051 (ipa_pta_execute): Use make_constraint_from.
1053 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1055 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
1056 (bitmap.o-warn, dominance.o-warn): New.
1057 * configure.ac (cxx_compat_warn): Delete.
1058 (loose_warn): Add -Wcast-qual and -Wc++-compat.
1059 * system.h: Remove #pragma diagnostic for -Wcast-qual and
1061 * configure: Regenerate.
1063 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
1066 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1068 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
1069 * df-scan.c (df_notes_rescan): Likewise.
1070 * ggc-page.c (set_page_table_entry): Likewise.
1071 * intl.c (gcc_gettext_width): Likewise.
1072 * varasm.c (get_unnamed_section, get_noswitch_section,
1073 get_section): Likewise.
1075 2008-06-28 Andrew Jenner <andrew@codesourcery.com>
1077 * regrename.c (build_def_use): Don't copy RTX.
1079 2008-06-28 Sandra Loosemore <sandra@codesourcery.com>
1081 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
1082 (Type Attributes): Fix nesting of @table and @subsection. Adjust
1083 punctuation. Use @ref instead of @xref.
1084 (Function Names): Remove stray @display/@end display.
1085 (C++ Attributes): Use @ref instead of @xref.
1086 (Deprecated Features): Fix punctuation around @xref.
1087 (Backwards Compatibility): Likewise.
1088 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
1090 2008-06-28 Joseph Myers <joseph@codesourcery.com>
1092 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
1093 constants for E500 double.
1095 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1097 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
1098 element type of const_vector.
1100 2008-06-28 Uros Bizjak <ubizjak@gmail.com>
1102 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
1103 Remove FLAGS_REG clobber from expander pattern.
1104 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
1105 (anddi3, andsi3, andhi3, andqi3): Ditto.
1106 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
1107 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
1108 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
1109 (ashlsi3, ashlhi3, ashlqi3): Ditto.
1110 (ashrsi3, ashrhi3, ashrqi3): Ditto.
1111 (lshrsi3, lshrhi3, lshrqi3): Ditto.
1112 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
1113 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
1115 2008-06-28 Richard Guenther <rguenther@suse.de>
1117 * tree-ssa-structalias.c (callused_id, var_callused,
1118 callused_tree): Add.
1119 (handle_pure_call): New function.
1120 (find_func_aliases): Call it.
1121 (find_what_p_points_to): Handle the call-used set.
1122 (clobber_what_escaped): Likewise.
1123 (compute_call_used_vars): New function.
1124 (init_base_vars): Init the call-used variable.
1125 (do_sd_constraint): Do not propagate the solution from CALLUSED
1126 but use CALLUSED as a placeholder.
1127 (solve_graph): Likewise.
1128 * tree-flow-inline.h (gimple_call_used_vars): New function.
1129 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
1130 (compute_call_used_vars): Declare.
1131 * tree-ssa-alias.c (set_initial_properties): Call
1132 compute_call_used_vars.
1133 (reset_alias_info): Clear call-used variables.
1134 (add_call_clobber_ops): Assert we are not called for const/pure
1135 functions. Remove handling of them.
1136 (add_call_read_ops): Handle pure functions by adding the
1137 call-used set of variables as VUSEs.
1138 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
1139 (delete_tree_ssa): Free it.
1140 * tree-dfa.c (remove_referenced_var): Clear the var from the
1143 2008-06-28 Kai Tietz <kai.tietz@onevision.com>
1145 * tree.c (build_varargs_function_type_list): New.
1146 (build_function_type_list_1): New.
1147 (build_function_type_list): Use build_function_type_list_1.
1148 * tree.h (build_varargs_function_type_list): New.
1150 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1153 * config/spu/spu.c (spu_builtin_splats): Do not generate
1154 invalid CONST_VECTOR expressions.
1155 (spu_expand_vector_init): Likewise.
1157 2008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
1159 * optabs.c (libfunc_decls): New variable.
1160 (libfunc_decl_hash, libfunc_decl_eq): New functions.
1161 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
1162 for the same function twice.
1164 2008-06-27 Uros Bizjak <ubizjak@gmail.com>
1166 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
1167 ix86_expand_binary_operator directly.
1168 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
1170 (*ashrti3_1): Ditto.
1171 (*lshrti3_1): Ditto.
1172 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
1173 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
1174 using only one splitter. Conditionaly execute splitter before or
1175 after peephole2 pass.
1176 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
1177 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
1178 Use only one alternative in asm template.
1179 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
1181 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
1182 "J" operand constraint for operand 2.
1183 (*ashldi3_cconly_rex64): Ditto.
1184 (*ashrdi3_cmp_rex64): Ditto.
1185 (*ashrdi3_cconly_rex64): Ditto.
1186 (*lshrdi3_cmp_rex64): Ditto.
1187 (*lshrdi3_cconly_rex64): Ditto.
1188 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
1189 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
1190 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
1193 2008-06-27 Jakub Jelinek <jakub@redhat.com>
1195 * gimplify.c (omp_is_private): Don't return true if decl is not
1196 already private on #pragma omp for or #pragma omp parallel for.
1199 * tree-cfg.c (struct move_stmt_d): Replace block field with
1200 orig_block and new_block fields.
1201 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
1202 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
1203 (move_block_to_fn): Replace vars_map and new_label_map arguments
1204 with struct move_stmt_d pointer.
1205 (replace_block_vars_by_duplicates): New function.
1206 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
1207 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
1208 all subblocks of ORIG_BLOCK to the new function. Call
1209 replace_block_vars_by_duplicates.
1210 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
1211 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
1212 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
1213 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
1214 (expand_omp): Temporarily set input_location to the location of
1215 region's controlling stmt.
1216 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
1217 BIND_EXPR, push ctx->block_vars and gimplification vars into
1218 the BIND_EXPR and its block's BLOCK_VARS instead of directly
1220 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
1221 there are any BLOCK_VARS.
1222 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
1223 OMP_PARALLEL or OMP_TASK stmt.
1224 (lower_omp): Save and restore input_location around the lower_omp_1
1227 2008-06-27 Richard Guenther <rguenther@suse.de>
1229 PR tree-optimization/36400
1230 PR tree-optimization/36373
1231 PR tree-optimization/36344
1232 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
1233 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
1234 (update_alias_info): Remove call clobbering code.
1235 (make_constraint_to): New helper function.
1236 (make_escape_constraint): Likewise.
1237 (handle_rhs_call): Use it on all pointer containing arguments.
1238 Also mark the static chain escaped.
1239 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
1240 instead of ANYTHING.
1241 (make_constraint_from): New helper split out from ...
1242 (make_constraint_from_anything): ... here.
1243 (find_func_aliases): Add constraints for escape sites.
1244 (intra_create_variable_infos): Make constraints from NONLOCAL
1246 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
1248 (clobber_what_p_points_to): Remove.
1249 (clobber_what_escaped): New function.
1250 (init_base_vars): Init NONLOCAL and ESCAPED.
1251 (do_sd_constraint): Do not propagate the solution from ESCAPED
1252 but use ESCAPED as a placeholder.
1253 (solve_graph): Likewise.
1254 * tree-flow.h (clobber_what_p_points_to): Remove.
1255 (clobber_what_escaped): Declare.
1256 * tree-ssa-alias.c (set_initial_properties): Call it.
1257 Remove code clobbering escaped pointers.
1259 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1261 * function.c (allocate_struct_function): Only allocate a unique
1262 funcdef_no if the decl is nonzero.
1264 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1266 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
1267 * config/mips/mips.c (mips_split_const_insns): New function.
1268 * config/mips/mips.md (move_type): New attribute.
1269 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
1270 (dword_mode): New attribute.
1271 (type): Avoid long line. Map "move_type"s to "type"s,
1272 choosing "multi" for doubleword moves if appropriate.
1273 Swap MTC/MFC comments to match their declaration order.
1274 (extended_mips16): Default to "yes" if "move_type" is "sll0",
1275 "type" is "branch" or "jal" is "direct".
1276 (length): Handle "extended_mips16" first. Make the default
1277 "0" for "ghost" instructions. Set the length from "move_type".
1278 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
1279 of "type", with "sll0" for the register alternative. Remove the
1280 "extended_mips16" attribute.
1281 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
1282 of "type", with "shift_shift" for the register alternative.
1283 Remove the "length" attribute.
1284 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
1285 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
1286 of "type", with "andi" for the register alternative.
1287 (*zero_extendqihi2): Likewise.
1288 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
1289 of "andi" instead of a "type" of "arith".
1290 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
1292 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
1293 (mov_<store>r, *mov<mode>_ra): Likewise.
1294 (extendsidi2): Use "move_type" instead of "type", with "move"
1295 for the register alternative.
1296 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
1297 of "type", with "signext" for the register alternative.
1298 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
1299 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
1300 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
1301 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
1302 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
1303 (unnamed branch insn): Likewise.
1304 (*movdi_gp32_fp64): Fold into...
1305 (*movdi_32bit): ...here.
1306 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
1307 (*movdf_hardfloat): ...this new pattern.
1308 (*movdf_softfloat): Remove redundant FPR alternatives.
1309 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
1310 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
1311 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
1312 the "move" attribute.
1313 (*movdi_32bit): Use "move_type" instead of "type" and remove the
1314 "length" attribute. Use "fpload" and "fpstore" instead of "load"
1315 and "store" for COP loads and stores.
1316 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
1317 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
1318 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
1319 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
1320 (*movtf_mips16, *movv2sf): Likewise.
1321 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
1322 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1323 (mfhc1<mode>): Use "move_type" instead of "move".
1324 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
1325 (loadgp_blockage): Remove the "length" attribute.
1326 (blockage, set_got_version, update_got_version): Likewise.
1327 (call_internal): Remove the "extended_mips16" attribute.
1328 (call_value_internal, call_value_multiple_internal): Likewise.
1329 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
1331 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
1332 the "length" attribute.
1334 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1336 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
1337 -Wcast-qual warnings.
1338 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
1339 handle_pragma_pop_macro): Likewise.
1340 * collect2.c (resolve_lib_name): Likewise.
1341 * config/arc/arc.c (arc_init): Likewise.
1342 * config/arm/arm.c (neon_builtin_compare,
1343 locate_neon_builtin_icode): Likewise.
1344 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
1345 * config/bfin/bfin.c (bfin_init_machine_status,
1346 bfin_optimize_loop): Likewise.
1347 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1348 * config/cris/cris.c (cris_init_expanders): Likewise.
1349 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
1350 * config/darwin.c (machopic_indirection_eq,
1351 machopic_indirection_name, machopic_output_indirection): Likewise.
1352 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
1353 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
1354 frv_optimize_membar): Likewise.
1355 * config/i386/cygwin.h (mingw_scan,
1356 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
1357 * config/i386/cygwin1.c (mingw_scan): Likewise.
1358 * config/i386/i386.c (machopic_output_stub): Likewise.
1359 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
1360 i386_pe_unique_section): Likewise.
1361 * config/ia64/ia64.c (ia64_init_machine_status,
1362 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
1364 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
1365 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
1366 * config/m68k/m68k.c (m68k_handle_option,
1367 m68k_sched_md_init_global): Likewise.
1368 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
1369 mcore_unique_section): Likewise.
1370 * config/mips/mips.c (mips_block_move_straight,
1371 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
1373 * config/mmix/mmix.c (mmix_init_machine_status,
1374 mmix_encode_section_info): Likewise.
1375 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
1376 * config/rs6000/rs6000.c (rs6000_init_machine_status,
1377 print_operand_address, output_toc, redefine_groups,
1378 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
1379 * config/s390/s390.c (s390_init_machine_status): Likewise.
1380 * config/score/score.c (score_block_move_straight,
1381 score_block_move_loop_body): Likewise.
1382 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1383 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1384 * emit-rtl.c (find_auto_inc): Likewise.
1385 * gcc.c (translate_options, process_command): Likewise.
1386 * reorg.c (dbr_schedule): Likewise.
1387 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
1388 * xcoffout.c (xcoffout_declare_function): Likewise.
1390 2008-06-27 Daniel Berlin <dberlin@dberlin.org>
1392 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
1393 ipa-pta working again.
1395 2008-06-27 David Edelsohn <edelsohn@gnu.org>
1397 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
1400 2008-06-27 Edmar Wienskoski <edmar@freescale.com>
1402 * config.gcc (powerpc*-*-*): Add new core e500mc.
1403 * config/rs6000/e500mc.md: New file.
1404 * config/rs6000/rs6000.c (processor_costs): Add new costs for
1406 (rs6000_override_options): Add e500mc case to
1407 processor_target_table. Altivec and Spe options not allowed
1408 with e500mc. Add isel instruction to e500mc by
1409 default. Initialize rs6000_cost for e500mc.
1410 (rs6000_issue_rate): Set issue rate for e500mc.
1411 * config/rs6000/rs6000.h (processor_type): Add
1412 PROCESSOR_PPCE500MC.
1413 (ASM_CPU_SPEC): Add e500mc.
1414 Set TARGET_ISEL to rs6000_isel.
1415 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
1416 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
1417 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
1419 * doc/invoke.texi: Add e500mc to list of cpus.
1421 2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1424 * c-lex.c (lex_charconst): Initialize unsignedp.
1426 2008-06-27 Olivier Hainque <hainque@adacore.com>
1428 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
1429 documented assumptions.
1431 2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
1433 * dwarf2out.c: Remove trailing white spaces. Break long line
1436 2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
1438 * libfuncs.h (LTI_synchronize): New libfunc_index.
1439 (synchronize_libfunc): Declare.
1440 * builtins.c (expand_builtin_synchronize): Consider using
1441 synchronize_libfunc before falling back on an asm blockage.
1442 * config/mips/mips.c: Include libfuncs.h
1443 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
1445 2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
1447 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
1448 parameter. Copy stack_reg to r11 where appropriate.
1449 (no_global_regs_above): Add gpr parameter.
1450 (rs6000_stack_info): Only add padding for SPE save area if we
1451 are saving SPE GPRs and CR.
1452 (saveres_routine_syms): New variable.
1453 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
1455 (rs6000_savres_routine_sym): New function.
1456 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
1458 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
1459 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
1460 Tweak FPR out-of-line saving.
1461 (rs6000_make_savres_rtx): New function.
1462 (rs6000_use_multiple_p): New function.
1463 (rs6000_savres_strategy): New function.
1464 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
1465 out-of-line if appropriate.
1466 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
1467 if we are optimizing for size.
1468 (GP_SAVE_INLINE): Define.
1469 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
1470 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
1471 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
1472 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
1473 (*save_fpregs_<mode>): Add use of r11.
1474 (*restore_gpregs_<mode>): New insn.
1475 (*return_and_restore_gpregs_<mode>): New insn.
1476 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
1478 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
1479 (*restore_gpregs_spe): New insn.
1480 (*return_and_restore_gpregs_spe): New insn.
1481 * config/rs6000/predicates.md (save_world_operation): Fix check.
1483 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
1485 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
1486 this point, so assert that.
1488 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
1490 * cfganal.c: Include vec.h and vecprim.h.
1491 (compute_idf): Import from...
1492 * tree-into-ssa (compute_idf): ...here.
1493 * basic-block.h (compute_idf): Export.
1495 2008-06-26 Joseph Myers <joseph@codesourcery.com>
1497 * c-decl.c (merge_decls): Use !current_function_decl to check for
1498 extern declaration of C99 inline function being at file scope.
1500 2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
1502 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
1504 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1506 * alias.c (record_alias_subset, init_alias_analysis): Fix
1507 -Wc++-compat and/or -Wcast-qual warnings.
1508 * attribs.c (lookup_attribute_spec): Likewise.
1509 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
1510 copy_bb, connect_traces,
1511 find_rarely_executed_basic_blocks_and_cr): Likewise.
1512 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
1513 note_btr_set, migrate_btr_defs): Likewise.
1514 * builtins.c (result_vector, expand_builtin_memcpy,
1515 expand_builtin_mempcpy_args, expand_builtin_strncpy,
1516 builtin_memset_read_str, expand_builtin_printf,
1517 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
1519 * caller-save.c (mark_set_regs): Likewise.
1520 * calls.c (expand_call, emit_library_call_value_1): Likewise.
1521 * cgraph.c (cgraph_edge): Likewise.
1522 * combine.c (likely_spilled_retval_1): Likewise.
1523 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
1524 htab_counts_entry_del, get_coverage_counts): Likewise.
1525 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
1526 new_cselib_val): Likewise.
1527 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
1528 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
1530 * df-core.c (df_compact_blocks): Likewise.
1531 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
1532 * df-scan.c (df_grow_reg_info, df_ref_create,
1533 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
1534 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
1535 df_record_entry_block_defs, df_record_exit_block_uses,
1536 df_bb_verify): Likewise.
1537 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
1538 DF_REF_EXTRACT_MODE_CONST): New.
1539 * dominance.c (get_immediate_dominator, get_dominated_by,
1540 nearest_common_dominator, root_of_dom_tree,
1541 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
1542 -Wc++-compat and/or -Wcast-qual warnings.
1543 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
1544 record_store, replace_read, check_mem_read_rtx, scan_insn,
1545 dse_step1, dse_record_singleton_alias_set): Likewise.
1546 * dwarf2asm.c (dw2_force_const_mem): Likewise.
1548 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1550 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
1551 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
1552 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
1553 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
1554 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
1555 add_ranges_num, add_ranges_by_labels, file_info_cmp,
1556 file_name_acquire, output_file_names, add_const_value_attribute,
1557 premark_used_types_helper, file_table_eq, file_table_hash,
1558 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
1559 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
1560 -Wcast-qual warnings.
1561 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
1562 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
1563 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
1564 gen_reg_rtx, start_sequence, init_emit): Likewise.
1565 * et-forest.c (et_new_occ, et_new_tree): Likewise.
1566 * except.c (init_eh_for_function, gen_eh_region,
1567 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
1568 arh_to_landing_pad, arh_to_label, add_action_record,
1569 add_call_site, switch_to_exception_section): Likewise.
1570 * expmed.c (synth_mult): Likewise.
1571 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
1572 store_expr): Likewise.
1573 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
1575 * function.c (assign_stack_temp_for_type,
1576 allocate_struct_function, match_asm_constraints_1): Likewise.
1577 * gcov-io.c (gcov_allocate): Likewise.
1578 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
1579 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
1580 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
1581 record_one_set, insert_expr_in_table, insert_set_in_table,
1582 dump_hash_table, compute_hash_table_work, alloc_hash_table,
1583 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
1584 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
1585 -Wcast-qual warnings.
1587 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1589 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
1590 -Wcast-qual warnings.
1591 * gcc.c (process_command): Likewise.
1592 * genattrtab.c (oballoc): Use XOBNEW.
1593 (oballocvec): Define.
1594 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
1595 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
1596 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
1597 -Wc++-compat and/or -Wcast-qual warnings.
1598 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
1599 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
1600 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
1601 gen_presence_absence_set, gen_automaton, gen_regexp_el,
1602 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
1603 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
1604 add_excls, process_presence_absence_names,
1605 process_presence_absence_patterns, add_presence_absence,
1606 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
1607 get_free_state, add_arc, get_free_automata_list_el,
1608 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
1609 transform_3, cache_presence, create_ainsns, create_automata,
1610 create_state_ainsn_table, dfa_insn_code_enlarge,
1611 output_trans_func, output_min_issue_delay_func,
1612 output_dead_lock_func, output_reset_func,
1613 output_get_cpu_unit_code_func, output_dfa_start_func,
1614 expand_automata): Likewise.
1615 * genextract.c (gen_insn): Likewise.
1616 * gengtype-lex.l: Likewise.
1617 * gengtype.c (read_input_list, adjust_field_type,
1618 process_gc_options): Likewise.
1619 * genoutput.c (note_constraint): Likewise.
1620 * genpreds.c (mangle, add_constraint): Likewise.
1621 * genrecog.c (process_define_predicate, new_decision,
1622 add_to_sequence): Likewise.
1623 * gensupport.c (record_insn_name): Likewise.
1625 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1627 * config/i386/driver-i386.c (detect_caches_amd,
1628 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
1629 and/or -Wcast-qual warnings.
1630 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
1631 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
1632 gt_pch_save): Likewise.
1633 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
1634 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
1635 * global.c (compute_regsets): Likewise.
1636 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1637 finish_graph_dump_file): Likewise.
1638 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
1639 unlink_bb_notes): Likewise.
1640 * integrate.c (get_hard_reg_initial_val): Likewise.
1641 * ipa-prop.c (ipa_push_func_to_list): Likewise.
1642 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
1643 * local-alloc.c (update_equiv_regs): Likewise.
1644 * loop-invariant.c (check_invariant_table_size,
1645 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
1647 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
1648 altered_reg_used, mark_altered): Likewise.
1649 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
1650 insert_var_expansion_initialization,
1651 combine_var_copies_in_loop_exit, apply_opt_in_copies,
1652 release_var_copies): Likewise.
1653 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
1654 analyze_matrix_decl, add_allocation_site, analyze_transpose,
1655 analyze_accesses_for_phi_node, check_var_notmodified_p,
1656 check_allocation_function, find_sites_in_func,
1657 record_all_accesses_in_func, transform_access_sites,
1658 transform_allocation_sites): Likewise.
1659 * omp-low.c (new_omp_region, create_omp_child_function_name,
1660 check_omp_nesting_restrictions, check_combined_parallel,
1661 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
1662 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
1663 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
1664 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
1666 * opts-common.c (prune_options): Likewise.
1667 * opts.c (add_input_filename, print_filtered_help,
1668 get_option_state): Likewise.
1669 * params.c (add_params): Likewise.
1670 * passes.c (set_pass_for_id, next_pass_1,
1671 do_per_function_toporder, pass_fini_dump_file): Likewise.
1672 * postreload.c (reload_cse_simplify_operands): Likewise.
1673 * predict.c (tree_predicted_by_p, tree_predict_edge,
1674 clear_bb_predictions, combine_predictions_for_bb): Likewise.
1676 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1678 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
1680 * recog.c (check_asm_operands, validate_change_1): Likewise.
1681 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
1682 subst_asm_stack_regs): Likewise.
1683 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
1684 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
1685 * regmove.c (reg_is_remote_constant_p): Likewise.
1686 * regrename.c (regrename_optimize, scan_rtx_reg,
1687 kill_clobbered_value, kill_set_value, kill_autoinc_value):
1689 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
1690 regstat_compute_calls_crossed): Likewise.
1691 * reload1.c (init_reload, new_insn_chain,
1692 has_nonexceptional_receiver, reload, copy_reloads,
1693 calculate_needs_all_insns, init_elim_table): Likewise.
1694 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
1695 * rtl.c (shallow_copy_rtx_stat): Likewise.
1696 * rtlanal.c (parms_set): Likewise.
1697 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
1698 sbitmap_resize, sbitmap_vector_alloc): Likewise.
1699 * sched-ebb.c (earliest_block_with_similiar_load,
1700 add_deps_for_risky_insns): Likewise.
1701 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
1702 schedule_region): Likewise.
1703 * see.c (eq_descriptor_pre_extension,
1704 hash_descriptor_pre_extension, hash_del_pre_extension,
1705 eq_descriptor_properties, hash_descriptor_properties,
1706 hash_del_properties, see_seek_pre_extension_expr,
1707 see_initialize_data_structures, see_print_register_properties,
1708 see_print_pre_extension_expr, see_delete_merged_def_extension,
1709 see_delete_unmerged_def_extension, see_emit_use_extension,
1710 see_pre_delete_extension, see_map_extension, see_commit_changes,
1711 see_analyze_merged_def_local_prop,
1712 see_analyze_merged_def_local_prop,
1713 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
1714 see_set_prop_merged_def, see_set_prop_unmerged_def,
1715 see_set_prop_unmerged_use, see_print_one_extension,
1716 see_merge_one_use_extension, see_merge_one_def_extension,
1717 see_store_reference_and_extension, see_update_uses_relevancy,
1718 see_update_defs_relevancy): Likewise.
1719 * statistics.c (hash_statistics_hash, hash_statistics_eq,
1720 hash_statistics_free, curr_statistics_hash): Likewise.
1721 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
1722 expand_asm_operands, expand_return, case_bit_test_cmp,
1723 expand_case): Likewise.
1724 * stor-layout.c (start_record_layout): Likewise.
1725 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
1726 gt_pch_save_stringpool): Likewise.
1727 * tree-data-ref.c (hash_stmt_vertex_info,
1728 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
1729 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
1731 2008-06-25 Uros Bizjak <ubizjak@gmail.com>
1734 * config/i386/i386.md : Change constraints of HImode and QImode
1735 immediate operands from "i" to "n". Change SImode "ni" constraint to
1736 "i" and SImode "rmi" constraint to "g". Remove all constraints
1737 from const0_operand and const1_operand predicated operands.
1738 (i): Change QImode and HImode attribute from "i" to "n".
1739 (*subqi_2): Change HImode operands to QImode.
1742 2008-06-25 Olivier Hainque <hainque@adacore.com>
1744 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
1747 2008-06-25 Richard Guenther <rguenther@suse.de>
1749 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
1750 not overflow the result type.
1752 2008-06-25 Richard Guenther <rguenther@suse.de>
1754 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
1755 (vn_lookup): Likewise.
1757 2008-06-25 Richard Guenther <rguenther@suse.de>
1759 PR tree-optimization/35518
1760 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
1761 * tree-sra.c (instantiate_element): Use fold_build3 to build
1763 (try_instantiate_multiple_fields): Likewise.
1765 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1767 * config/rs6000/rs6000.md: Change all string instruction's clobber to
1770 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1772 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
1773 use_backchain_to_restore_sp to true
1774 if the offset of the link register save area would go over the 32k - 1
1775 offset limit of the load
1778 2008-06-25 Hans-Peter Nilsson <hp@axis.com>
1780 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
1781 anchor for the type-punning blurb. Cross-reference "Structures
1782 unions enumerations and bit-fields implementation". Provide a
1783 cast-through-pointer example. Make final sentence self-contained.
1784 * doc/implement-c.texi (Structures unions enumerations and
1785 bit-fields implementation): Cross-reference the type-punning blurb
1786 in the -fstrict-aliasing documentation.
1788 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1791 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
1792 the memory instead of the memory itself for the save area.
1794 2008-06-24 Olivier Hainque <hainque@adacore.com>
1795 Nicolas Roche <roche@adacore.com>
1797 * gengtype.c (srcdir_len): size_t instead of int.
1798 (get_file_realbasename): New function. For F a filename, the real
1799 basename of F, with all the path components stripped.
1800 (get_file_srcdir_relative_path): New function. For F a filename, the
1801 relative path to F from $(srcdir).
1802 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
1803 get_file_realbasename. Adjust the head comment.
1804 (get_prefix_langdir_index): New function. For F a filename, return the
1805 lang_dir_names[] relative index of the language directory that is
1807 (get_file_langdir): For F a filename, return the name of the language
1808 directory where F is located.
1809 (get_file_gtfilename): New function. The gt- output file name for an
1811 (get_output_file_with_visibility): Replace in-line computations with
1812 uses of get_file_gtfilename and get_prefix_langdir_index.
1813 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
1815 2008-06-24 Jakub Jelinek <jakub@redhat.com>
1817 PR tree-optimization/36504
1818 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
1819 references without base address.
1821 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
1824 * calls.c (expand_call): Increase alignment for recursive functions.
1826 2008-06-23 Anatoly Sokolov <aesok@post.ru>
1828 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
1829 (TARGET_FUNCTION_VALUE): New define.
1830 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
1831 * config/avr/avr.h (FUNCTION_VALUE): Remove.
1833 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
1835 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
1836 (fmod<mode>3): Ditto.
1837 (remainderxf3): Ditto.
1838 (remainder<mode>3): Ditto.
1840 2008-06-23 Jakub Jelinek <jakub@redhat.com>
1843 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
1844 REG is a hard register.
1846 PR tree-optimization/36508
1847 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
1848 499, don't check it at all in release compilers.
1850 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
1852 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
1853 together with SSE_TARGET_MATH to disable insn pattern.
1854 (*fop_<MODEF:mode>_2_i387): Ditto.
1855 (*fop_<MODEF:mode>_3_i387): Ditto.
1857 2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
1859 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
1861 2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1864 * gimplify.c (gimplify_asm_expr): Check the return code of
1865 parse_output_constraint call, set function return and is_inout
1868 2008-06-22 Ian Lance Taylor <iant@google.com>
1870 * c-lex.c (narrowest_unsigned_type): Change itk to int.
1871 (narrowest_signed_type): Likewise.
1872 * c-typeck.c (c_common_type): Change local variable mclass to enum
1874 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
1875 tcc_comparison, not the tree code itself.
1876 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
1877 (c_expand_expr): Cast modifier to enum expand_modifier.
1878 * c-common.h (C_RID_CODE): Add casts.
1879 (C_SET_RID_CODE): Define.
1880 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
1881 (c_lex_one_token): Add cast to avoid warning.
1882 (c_parser_objc_type_name): Rename local typename to type_name.
1883 (check_no_duplicate_clause): Change code parameter to enum
1885 (c_parser_omp_var_list_parens): Change kind parameter to enum
1887 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
1888 c_parser_omp_list_var_parens.
1889 (c_parser_omp_threadprivate): Likewise.
1890 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
1891 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
1892 * c-format.c (NO_FMT): Define.
1893 (printf_length_specs): Use NO_FMT.
1894 (asm_fprintf_length_specs): Likewise.
1895 (gcc_diag_length_specs): Likewise.
1896 (scanf_length_specs): Likewise.
1897 (strfmon_length_specs): Likewise.
1898 (gcc_gfc_length_specs): Likewise.
1899 (printf_flag_specs): Change 0 to STD_C89.
1900 (asm_fprintf_flag_specs): Likewise.
1901 (gcc_diag_flag_specs): Likewise.
1902 (gcc_cxxdiag_flag_specs): Likewise.
1903 (scanf_flag_specs): Likewise.
1904 (strftime_flag_specs): Likewise.
1905 (strfmon_flag_specs): Likewise.
1906 (print_char_table): Likewise.
1907 (asm_fprintf_char_table): Likewise.
1908 (gcc_diag_char_table): Likewise.
1909 (gcc_tdiag_char_table): Likewise.
1910 (gcc_cdiag_char_table): Likewise.
1911 (gcc_cxxdiag_char_table): Likewise.
1912 (gcc_gfc_char_table): Likewise.
1913 (scan_char_table): Likewise.
1914 (time_char_table): Likewis.
1915 (monetary_char_table): Likewise.
1916 * c-format.h (BADLEN): Likewise.
1918 2008-06-21 Ian Lance Taylor <iant@google.com>
1920 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
1921 Define END_OF_BASE_TREE_CODES around inclusion.
1922 * tree.c (tree_code_type): New global array.
1923 (tree_code_length, tree_code_name): Likewise.
1924 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
1926 (all-tree.def, s-alltree): New targets.
1927 (gencheck.h, s-gencheck): Remove.
1928 (tree.o): Depend upon all-tree.def.
1929 (build/gencheck.o): Remove gencheck.h dependency.
1930 (mostlyclean): Don't remove gencheck.h.
1931 * c-common.h (enum c_tree_code): Remove.
1932 * c-lang.c (tree_code_type): Remove.
1933 (tree_code_length, tree_code_name): Remove.
1934 * gencheck.c (tree_codes): Include all-tree.def, rather than
1935 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
1937 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
1939 * cp/cp-tree.h (enum cplus_tree_code): Remove.
1940 (operator_name_info): Size to MAX_TREE_CODES.
1941 (assignment_operator_name_info): Likewise.
1942 * cp/cp-lang.c (tree_code_type): Remove.
1943 (tree_code_length, tree_code_name): Remove.
1944 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
1945 (assignment_operator_name_info): Likewise.
1946 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
1948 * cp/mangle.c (write_expression): Likewise.
1949 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
1950 * fortran/f95-lang.c (tree_code_type): Remove.
1951 (tree_code_length, tree_code_name): Remove.
1952 * java/java-tree.h (enum java_tree_code): Remove.
1953 * java/lang.c (tree_code_type): Remove.
1954 (tree_code_length, tree_code_name): Remove.
1955 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
1956 * objc/objc-act.h (enum objc_tree_code): Remove.
1957 * objc/objc-lang.c (tree_code_type): Remove.
1958 (tree_code_length, tree_code_name): Remove.
1959 * objcp/objcp-lang.c (tree_code_type): Remove.
1960 (tree_code_length, tree_code_name): Remove.
1961 * ada/ada-tree.h (enum gnat_tree_code): Remove.
1962 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
1963 * ada/misc.c (tree_code_type): Remove.
1964 (tree_code_length, tree_code_name): Remove.
1966 2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
1968 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
1969 the grand_bitmap_obstack.
1971 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1973 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
1974 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
1975 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
1976 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
1977 move_stmt_r, new_label_mapper): Likewise.
1978 * tree-complex.c (cvc_lookup): Likewise.
1979 * tree-dfa.c (create_function_ann): Likewise.
1980 * tree-dump.c (dump_register): Likewise.
1981 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
1982 find_phi_replacement_condition): Likewise.
1983 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
1984 tree_function_versioning): Likewise.
1985 * tree-into-ssa.c (cmp_dfsnum): Likewise.
1986 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
1987 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
1988 get_nonlocal_debug_decl, convert_nonlocal_reference,
1989 convert_nonlocal_omp_clauses, get_local_debug_decl,
1990 convert_local_reference, convert_local_omp_clauses,
1991 convert_nl_goto_reference, convert_nl_goto_receiver,
1992 convert_tramp_reference, convert_call_expr): Likewise.
1993 * tree-outof-ssa.c (contains_tree_r): Likewise.
1994 * tree-parloops.c (reduction_phi, initialize_reductions,
1995 eliminate_local_variables_1, add_field_for_reduction,
1996 add_field_for_name, create_phi_for_local_result,
1997 create_call_for_reduction_1, create_loads_for_reductions,
1998 create_stores_for_reduction, create_loads_and_stores_for_name):
2000 * tree-phinodes.c (allocate_phi_node): Likewise.
2001 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
2002 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
2003 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
2004 * tree-ssa-coalesce.c (compare_pairs): Likewise.
2005 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
2006 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
2007 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
2008 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
2009 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
2010 vn_nary_op_insert): Likewise.
2011 * tree-ssa.c (redirect_edge_var_map_add,
2012 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
2013 * tree-vectorizer.c (vectorize_loops): Likewise.
2014 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
2015 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
2016 tree_cons_stat, build1_stat, build_variant_type_copy,
2017 decl_init_priority_lookup, decl_fini_priority_lookup,
2018 decl_priority_info, decl_restrict_base_lookup,
2019 decl_restrict_base_insert, decl_debug_expr_lookup,
2020 decl_debug_expr_insert, decl_value_expr_lookup,
2021 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
2022 type_hash_add, get_file_function_name, tree_check_failed,
2023 tree_not_check_failed, tree_range_check_failed,
2024 omp_clause_range_check_failed, build_omp_clause,
2025 build_vl_exp_stat): Likewise.
2026 * value-prof.c (gimple_histogram_value,
2027 gimple_duplicate_stmt_histograms): Likewise.
2028 * var-tracking.c (attrs_list_insert, attrs_list_copy,
2029 unshare_variable, variable_union_info_cmp_pos, variable_union,
2030 dataflow_set_different_1, dataflow_set_different_2,
2031 vt_find_locations, variable_was_changed, set_variable_part,
2032 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
2033 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
2034 section_entry_hash, object_block_entry_eq,
2035 object_block_entry_hash, create_block_symbol,
2036 initialize_cold_section_name, default_function_rodata_section,
2037 strip_reg_name, set_user_assembler_name, const_desc_eq,
2038 build_constant_desc, output_constant_def, lookup_constant_def,
2039 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
2040 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
2041 default_internal_label): Likewise.
2042 * varray.c (varray_init, varray_grow): Likewise.
2043 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
2045 2008-06-20 Uros Bizjak <ubizjak@gmail.com>
2047 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
2048 operators for "test" insn. Macroize insn using SWI mode macro.
2049 (*jcc_fused_2): Ditto.
2050 (*jcc_fused_3): Macroize insn using SWI mode macro.
2051 (*jcc_fused_4): Ditto.
2053 2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
2055 * tree-ssa-pre.c: Fix typo in comment.
2056 (init_antic, fini_antic): Add explicit funtions for
2057 initializing and deinitializing ANTIC and AVAIL sets.
2058 (create_expression_by_pieces): Fix typo in comment.
2059 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
2060 (execute_pre): Eventually dump details about ANTIC_IN.
2062 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2064 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
2065 * gcc.c (translate_options, init_spec, store_arg, read_specs,
2066 add_to_obstack, file_at_path, find_a_file, execute,
2067 add_preprocessor_option, add_assembler_option, add_linker_option,
2068 process_command, insert_wrapper, do_option_spec, do_self_spec,
2069 spec_path, do_spec_1, is_directory, main, used_arg,
2070 getenv_spec_function): Likewise.
2071 * tlink.c (symbol_hash_lookup, file_hash_lookup,
2072 demangled_hash_lookup, symbol_push, file_push, frob_extension):
2075 2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2077 * doc/rtl.texi: Updated subreg section.
2079 2008-06-19 Jakub Jelinek <jakub@redhat.com>
2082 * cgraphunit.c (cgraph_process_new_functions): Don't clear
2083 node->needed and node->reachable.
2084 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
2085 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
2086 (expand_task_call): Don't call expand_task_copyfn.
2087 (expand_task_copyfn): Renamed to...
2088 (finalize_task_copyfn): ... this.
2090 2008-06-19 Jan Hubicka <jh@suse.cz>
2092 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
2093 clobbering framepointer.
2095 2008-06-19 Jan Hubicka <jh@suse.cz>
2097 * tree-optimize.c (execute_early_local_optimizations): Set
2098 cgraph_state only at first invocation.
2100 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2102 * system.h (-Wc++-compat): Activate as a warning, no an error.
2104 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2106 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
2107 instead of "#" in insn asm template.
2108 (*jcc_fused_2): Ditto.
2110 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2112 * config/i386/i386.h (ix86_tune_indices)
2113 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
2114 (TARGET_FUSE_CMP_AND_BRANCH): New define.
2115 * config/i386/i386.md (*jcc_fused_1): New insn pattern
2116 (*jcc_fused_2): Ditto.
2117 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
2118 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
2119 (print operand): Handle 'E' and 'e' code.
2121 2008-06-19 Anatoly Sokolov <aesok@post.ru>
2123 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
2124 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2125 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2127 2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
2129 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
2131 (cgraph_expand_function): Use local copy of decl.
2132 (cgraph_expand_all_functions): Remove redundant initialization of
2134 (cgraph_optimize): Reword internal_error message.
2136 2008-06-19 Chung-Lin Tang <ctang@marvell.com>
2138 * arm-protos.h (arm_return_in_memory): Remove public
2139 arm_return_in_memory() prototype.
2140 * arm.c (arm_return_in_memory): Add static prototype, add target
2141 hook macro, change definition and comments.
2142 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
2144 2008-06-19 Ben Elliston <bje@au.ibm.com>
2146 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
2147 real.c: Remove references to IEEE 754R.
2148 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
2149 * doc/libgcc.texi (Decimal float library routines): Likewise.
2151 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2153 * targhooks.h (struct gcc_target): New member unwind_word_mode.
2154 (default_unwind_word_mode): Add prototype.
2155 * targhooks.c (default_unwind_word_mode): New function.
2156 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
2157 instead of word_mode.
2158 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
2159 (TARGET_INITIALIZER): Use it.
2161 * c-common.c (handle_mode_attribute): Support "unwind_word"
2163 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
2165 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
2166 word_mode to access SjLj_Function_Context member "data".
2167 (sjlj_emit_dispatch_table): Likewise. Also, perform type
2168 conversion from targetm.eh_return_filter_mode () to
2169 targetm.unwind_word_mode () if they differ.
2171 * builtin-types.def (BT_UNWINDWORD): New primitive type.
2172 (BT_FN_UNWINDWORD_PTR): New function type.
2173 (BT_FN_WORD_PTR): Remove.
2174 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
2175 * except.c (expand_builtin_extend_pointer): Convert pointer to
2176 targetm.unwind_word_mode () instead of word_mode.
2178 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
2179 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
2180 (spu_unwind_word_mode): New function.
2181 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
2182 (TARGET_UNWIND_WORD_MODE): Define.
2183 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
2185 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2187 * config/spu/spu.c (reg_align): Remove.
2188 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
2189 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
2190 (spu_split_store): Likewise.
2192 2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
2194 * gcc/tree-vn.c: Fix typo in comment.
2196 2008-06-18 Jan Hubicka <jh@suse.cz>
2198 * cgraphunit.c (cgraph_optimize): Output debug info when doing
2199 toplevel reorder too.
2201 2008-06-18 Jan Hubicka <jh@suse.cz>
2203 * c-opts.c (c_common_post_options): PCH is not compatible with
2205 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
2206 -fno-toplevel-reorder by default now.
2208 2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2210 PR documentation/30739
2211 * doc/install.texi (Prerequisites): Document dependency on awk.
2213 2008-06-18 Uros Bizjak <ubizjak@gmail.com>
2214 Ian Lance Taylor <iant@google.com>
2216 PR rtl-optimization/35604
2217 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
2218 only want to change jump destinations, not eventual label comparisons.
2220 2008-06-16 Jan Hubicka <jh@suse.cz>
2222 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
2224 (cgraph_analyze_function): Likewise.
2226 2008-06-16 Jan Hubicka <jh@suse.cz>
2228 * cgraph.h (cgraph_mark_if_needed): New function.
2229 * cgraphunit.c (cgraph_mark_if_needed): New function.
2230 * c-decl.c (duplicate_decl): Use it.
2232 2008-06-16 Jan Hubicka <jh@suse.cz>
2234 * cgraph.c (cgraph_add_new_function): When in expansion state, do
2237 2008-06-16 Jan Hubicka <jh@suse.cz>
2239 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
2241 2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
2242 Kazu Hirata <kazu@codesourcery.com>
2243 Maxim Kuvyrkov <maxim@codesourcery.com
2245 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
2246 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
2247 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
2248 EXTRA_SPEC_FUNCTIONS.
2249 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
2250 (DRIVER_SELF_SPECS): Adjust.
2251 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
2252 * config/mips/st.h, config/mips/t-st: New.
2253 * config/mips/driver-native.c, config/mips/x-native: New.
2254 * doc/invoke.texi (MIPS): Document 'native' value for -march and
2257 2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2259 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
2261 (ISA_HAS_FP_CONDMOVE): New macro.
2262 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
2263 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
2264 (ISA_HAS_NMADD3_NMSUB3): New macro.
2265 * config/mips/mips.c (mips_rtx_costs): Update.
2266 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
2267 compiling for ST Loongson 2E/2F.
2268 (madd<mode>): Rename to madd4<mode>. Update.
2269 (madd3<mode>): New pattern.
2270 (msub<mode>): Rename to msub4<mode>. Update.
2271 (msub3<mode>): New pattern.
2272 (nmadd<mode>): Rename to nmadd4<mode>. Update.
2273 (nmadd3<mode>): New pattern.
2274 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
2275 (nmadd3<mode>_fastmath): New pattern.
2276 (nmsub<mode>): Rename to nmsub4<mode>. Update.
2277 (nmsub3<mode>): New pattern.
2278 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
2279 (nmsub3<mode>_fastmath): New pattern.
2280 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
2282 2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
2284 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
2285 (DF_REF_INSN_INFO): New.
2286 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
2287 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
2288 with a NULL DF_REF_INSN_INFO.
2289 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
2291 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
2292 DF_INSN_INFO_EQ_USES): New.
2293 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
2294 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
2295 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
2296 * df-core.c: Update comment for above changes.
2297 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
2298 DF_INSN_UID_* macros.
2299 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
2300 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
2301 insn rtx. Update all callers.
2302 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
2303 df_ref_create_structure, df_insn_refs_collect): Likewise.
2304 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
2305 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
2306 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
2307 macros to access the insn refs.
2308 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
2309 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
2310 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
2311 for accessing the refs.
2312 (try_fwprop_subst): Likewise.
2313 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
2314 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
2315 for accessing the refs.
2316 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
2317 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
2318 to look at the insn refs.
2319 (record_uses): Likewise.
2320 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
2322 (mark_artificial_uses): Don't mark_insn for artificial refs.
2323 (mark_reg_rependencies): Likewise.
2325 * doc/rtl.texi: Remove documentation of ADDRESSOF.
2327 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2329 * configure: Regenerate.
2331 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2333 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
2334 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2335 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2337 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2339 * config/avr/avr.c (avr_mcu_t): Add attiny167.
2340 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2341 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2343 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2345 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
2346 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2347 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2349 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
2351 * tree-ssa-sccvn.c: Fix format of comments.
2353 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
2355 * cgraph.c: Remove unneeded forward declarations of eq_node()
2358 2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
2360 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
2362 (see_update_relevancy): Likewise.
2363 * fwprop.c (try_fwprop_subst): Likewise.
2364 * rtlanal.c (noop_move_p): Likewise.
2365 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
2366 notes to non-existing libcall blocks.
2367 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
2369 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
2370 (dead_libcall_p): Remove.
2371 (delete_trivially_dead_insns): Don't use it.
2372 * web.c (union_defs): Remove comment about keeping nops.
2373 * gcse.c (hash_scan_insn): Don't take libcall pointers.
2374 (compute_hash_table_work): Don't track libcall notes.
2375 (do_local_cprop): Don't take libcall pointers. Don't update
2377 (adjust_libcall_notes): Deleted.
2378 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
2379 ever have existed in the first place).
2380 (replace_store_insn): Don't try to remove libcall notes.
2381 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
2382 (resolve_reg_notes): Don't call them.
2383 (resolve_simple_move): Likewise.
2384 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
2385 Don't remove REG_RETVAL notes.
2386 * emit-rtl.c (try_split): Don't update libcall notes.
2387 (emit_copy_of_insn_after): Dito.
2388 * cselib.c (cselib_current_insn_in_libcall): Remove.
2389 (cselib_process_insn): Don't set/clear it.
2390 (new_elt_loc_list): Don't record it.
2391 (cselib_init): Don't initialize it.
2392 * cselib.c (struct elt_loc_list): Remove in_libcall field.
2393 * loop-invariant.c (find_invariant_insn): Don't look for libcall
2395 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
2396 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
2397 (init_deps): Don't initialize it.
2398 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
2399 * combine.c (delete_noop_moves): Don't update libcall notes.
2400 (can_combine_p): Remove now pointless #if 0 block.
2401 (try_combine): Remove another obsolete #if 0 block.
2402 (distribute_notes): Don't distribute libcall notes.
2403 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
2404 * dce.c (libcall_dead_p): Remove.
2405 (delete_unmarked_insns): Don't handle libcall blocks.
2406 (preserve_libcall_for_dce): Remove.
2407 (prescan_insns_for_dce): Don't special-case libcall block insns.
2408 * reload1 (reload): Don't handle libcall notes.
2409 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
2412 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
2414 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
2415 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2416 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2418 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
2420 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
2421 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2422 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2424 2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2426 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
2428 2008-06-16 Ira Rosen <irar@il.ibm.com>
2430 PR tree-optimization/36493
2431 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
2432 the arguments list. Use VECTYPE to create vector pointer.
2433 (vectorizable_store): Fail if accesses through a pointer to vectype
2434 do not alias the original memory reference operands.
2435 Call vect_create_data_ref_ptr without the removed argument.
2436 (vectorizable_load): Likewise.
2437 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
2440 2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
2443 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
2446 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2448 * config/mips/loongson2ef.md: New file.
2449 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
2450 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
2451 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
2452 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
2453 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
2455 (loongson2ef.md): New include.
2456 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
2457 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
2458 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
2459 (loongson_gt_<mode>, loongson_extract_halfword)
2460 (loongson_insert_halfword_0, loongson_insert_halfword_2)
2461 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
2462 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
2463 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
2464 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
2465 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
2466 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
2467 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
2468 (vec_interleave_low<mode>): Define type attribute.
2469 * config/mips/mips.c (mips_ls2): New static variable.
2470 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
2471 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
2472 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
2473 Implement target scheduling hooks.
2474 (mips_multipass_dfa_lookahead): Update to handle tuning for
2476 (mips_sched_init): Initialize data for Loongson scheduling.
2477 (mips_ls2_variable_issue): New static function.
2478 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
2480 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
2481 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
2482 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
2483 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
2484 Handle ST Loongson 2E/2F cores.
2485 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
2487 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2489 * omp-low.c (extract_omp_for_data): Fix comment typo.
2492 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2494 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
2495 FIXME note about gcc/config.guess.
2496 * doc/options.texi (Option file format): Remove non-ASCII bytes.
2497 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
2498 * doc/cppopts.texi: Likewise.
2499 * doc/extend.texi: Likewise.
2500 * doc/gcc.texi: Likewise.
2501 * doc/gccint.texi: Likewise.
2502 * doc/gcov.texi: Likewise.
2503 * doc/gty.texi: Likewise.
2504 * doc/hostconfig.texi: Likewise.
2505 * doc/install.texi: Likewise.
2506 * doc/invoke.texi: Likewise.
2507 * doc/loop.texi: Likewise.
2508 * doc/makefile.texi: Likewise.
2509 * doc/md.texi: Likewise.
2510 * doc/passes.texi: Likewise.
2511 * doc/tm.texi: Likewise.
2512 * doc/tree-ssa.texi: Likewise.
2513 * doc/trouble.texi: Likewise.
2515 2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
2516 Nathan Sidwell <nathan@codesourcery.com>
2517 Maxim Kuvyrkov <maxim@codesourcery.com>
2518 Richard Sandiford <rdsandiford@googlemail.com>
2520 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
2521 * config/mips/mips-protos.h (mips_expand_vector_init): New.
2522 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
2524 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
2525 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
2526 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
2528 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
2529 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
2530 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
2531 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
2532 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
2533 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
2534 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
2535 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
2536 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
2537 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
2538 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
2539 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
2540 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
2541 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
2542 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
2543 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
2544 (mips_builtins): Add Loongson builtins.
2545 (mips_loongson_2ef_bdesc): New.
2546 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
2547 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
2548 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
2549 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
2551 (mips_expand_vector_init): New.
2552 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
2553 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
2555 * config/mips/mips.md: Add unspec numbers for Loongson
2556 builtins. Include loongson.md.
2557 (MOVE64): Include Loongson vector modes.
2558 (SPLITF): Include Loongson vector modes.
2559 (HALFMODE): Handle Loongson vector modes.
2560 * config/mips/loongson.md: New.
2561 * config/mips/loongson.h: New.
2562 * config.gcc: Add loongson.h header for mips*-*-* targets.
2563 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
2565 2008-06-14 Joseph Myers <joseph@codesourcery.com>
2567 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
2568 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
2569 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
2570 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
2571 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
2572 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
2573 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
2574 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
2575 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
2576 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
2577 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
2578 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
2579 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
2580 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
2581 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
2582 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
2583 Remove use_fixproto=yes.
2584 (ia64*-*-hpux*): Remove comment about using fixproto.
2585 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
2587 2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2589 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
2591 * configure: Regenerate.
2593 2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
2596 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
2597 before evaluating it.
2599 2008-06-13 Jakub Jelinek <jakub@redhat.com>
2602 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
2603 nested inline functions.
2604 (start_decl, start_function): Don't invert DECL_EXTERNAL
2605 for nested inline functions.
2607 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
2609 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
2610 splits that must be made for correctness.
2612 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
2614 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
2615 (AVAIL_NON_MIPS16): Likewise.
2616 (mips_builtin_description): Replace target_flags with a predicate.
2617 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
2618 (dspr2_32): New availability predicates.
2619 (MIPS_BUILTIN): New macro.
2620 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
2621 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
2622 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
2623 Replace the TARGET_FLAGS parameters with AVAIL parameters.
2624 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
2625 (mips_dsp_32only_bdesc): Merge into...
2626 (mips_builtins): ...this new array.
2627 (mips_bdesc_map, mips_bdesc_arrays): Delete.
2628 (mips_init_builtins): Update after above changes.
2629 (mips_expand_builtin_1): Merge into...
2630 (mips_expand_builtin): ...here and update after above changes.
2632 2008-06-12 Paul Brook <paul@codesourcery.com>
2634 * longlong.h (__arm__): Define count_leading_zeros.
2635 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
2636 (clzsi2, clzdi2): New functions.
2637 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
2638 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
2639 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
2640 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
2641 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
2642 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
2643 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
2644 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
2645 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
2646 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
2648 2008-06-12 Kazu Hirata <kazu@codesourcery.com>
2650 * config/m68k/m68k.c (m68k_tune_flags): New.
2651 (override_options): Compute m68k_tune_flags.
2652 (MULL_COST, MULW_COST): Update for various variants of CFV2.
2653 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
2655 2008-06-12 Jakub Jelinek <jakub@redhat.com>
2658 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
2660 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
2662 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
2663 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
2665 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
2667 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
2668 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
2670 2008-06-12 Jakub Jelinek <jakub@redhat.com>
2673 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
2676 2008-06-12 Richard Guenther <rguenther@suse.de>
2678 PR tree-optimization/36345
2679 * tree-flow.h (struct ptr_info_def): Align escape_mask,
2680 add memory_tag_needed flag.
2681 (may_alias_p): Declare.
2682 * tree-ssa-alias.c (may_alias_p): Export.
2683 (set_initial_properties): Use memory_tag_needed flag.
2684 (update_reference_counts): Likewise.
2685 (reset_alias_info): Reset memory_tag_needed flag.
2686 (create_name_tags): Check memory_tag_needed flag.
2687 (dump_points_to_info_for): Dump it.
2688 * tree-ssa-structalias.c (struct variable_info): Remove
2689 directly_dereferenced flag.
2690 (new_var_info): Do not initialize it.
2691 (process_constraint_1): Do not set it.
2692 (update_alias_info): Set is_dereferenced flag.
2693 (set_uids_in_ptset): Use may_alias_p.
2694 (set_used_smts): Check memory_tag_needed flag.
2695 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
2696 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
2697 memory_tag_needed flag.
2698 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
2701 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
2703 * config/i386/i386.c (ix86_compute_frame_layout): Disable
2704 red zone for w64 abi.
2705 (ix86_expand_prologue): Likewise.
2706 (ix86_force_to_memory): Likewise.
2707 (ix86_free_from_memory): Likewise.
2709 2008-06-11 Edmar Wienskoski <edmar@freescale.com>
2712 * config/rs6000/rs6000.c (rs6000_override_options): Set
2713 rs6000_isel conditionally to the absence of comand line override.
2714 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2715 Remove duplicate rs6000_isel setting.
2716 * config/rs6000/eabispe.h: Ditto.
2718 2008-06-11 Richard Guenther <rguenther@suse.de>
2720 * alias.c (get_alias_set): Use the element alias-set for arrays.
2721 (record_component_aliases): For arrays and vectors do nothing.
2722 * c-common.c (strict_aliasing_warning): Handle the cases
2723 of alias set zero explicitly.
2724 * Makefile.in (dfp.o-warn): Add -Wno-error.
2726 2008-06-11 Joseph Myers <joseph@codesourcery.com>
2728 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
2730 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
2731 tune_32 tune_64 to supported_defaults. Allow values not
2732 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
2733 x86_64. Do not override cpu_32 or cpu_64 values from target name.
2734 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
2735 with_cpu_64 to generic for 64-bit-supporting configurations, not
2736 with_cpu. Remove FIXMEs.
2737 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
2738 --with-arch-64, --with-tune-32, --with-tune-64): Document.
2739 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
2740 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
2741 arch_32 and arch_64.
2743 2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
2744 Olivier Hainque <hainque@adacore.com>
2746 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
2747 Use DECL_SIZE_UNIT to retrieve the size of the field.
2749 2008-06-11 Joseph Myers <joseph@codesourcery.com>
2751 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
2752 with function calls after declarations. Lay out
2753 neon_float_type_node before further use.
2755 2008-06-11 Richard Guenther <rguenther@suse.de>
2757 * tree-flow.h (may_point_to_global_var): Declare.
2758 * tree-ssa-alias.c (may_point_to_global_var): New function.
2759 * tree-ssa-sink.c (is_hidden_global_store): Use it.
2761 2008-06-10 Kazu Hirata <kazu@codesourcery.com>
2763 * configure.ac: Teach that fido supports .debug_line.
2764 * configure: Regenerate.
2766 2008-06-10 Tom Tromey <tromey@redhat.com>
2768 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
2771 2008-06-10 Joseph Myers <joseph@codesourcery.com>
2773 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
2774 (encode_decimal64, decode_decimal64, encode_decimal128,
2775 decode_decimal128): Reverse order of 32-bit parts of value if host
2776 and target endianness differ.
2778 2008-06-10 Vinodha Ramasamy <vinodha@google.com>
2780 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
2781 Avoid division by 0.
2782 (tree_mod_pow2_value_transform): Likewise.
2783 (tree_ic_transform): Likewise.
2784 (tree_stringops_transform): Likewise.
2785 (tree_mod_subtract_transform): Likewise.
2786 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
2787 (copy_edges_for_bb): Likewise.
2788 (initialize_cfun): Likewise.
2790 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
2792 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
2793 nonmemory_operand. Add "N" operand constraint.
2795 (*jcc_btdi_mask_rex64): New instruction and split pattern.
2796 (*jcc_btsi_mask): Ditto.
2797 (*jcc_btsi_mask_1): Ditto.
2799 2008-06-10 Joseph Myers <joseph@codesourcery.com>
2801 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
2802 TYPE_CANONICAL for copied element type.
2804 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
2807 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
2808 Add m_CORE2 and m_GENERIC.
2809 * config/i386/predicates.md (bt_comparison_operator): New predicate.
2810 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
2812 (*jcc_btdi_rex64): New instruction and split pattern.
2814 (*jcc_btsi_1): Ditto.
2815 (*btsq): Fix Intel asm dialect operand order.
2819 2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
2822 * simplify-rtx.c (simplify_subreg): Add check for shift count
2825 2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
2827 * doc/md.texi: Synchronize with later constraints.md change.
2828 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
2829 with a C implementation.
2830 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
2832 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
2833 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
2834 when moving to and from MD_REGNUM.
2835 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
2836 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
2837 Handle byte and halfword moves.
2838 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
2840 * config/mips/constraints.md (h): Turn into NO_REGS.
2841 (l, x): Update documentation.
2842 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
2843 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
2844 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
2845 (HILO): New mode iterator.
2847 (any_div): New code iterator.
2848 (u): Extend code attribute to div and udiv.
2849 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
2850 d_operand in the splitters. Remove redundant CONST_INT checks.
2851 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
2852 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
2853 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
2854 accordingly, using normal moves instead of unspecs to move LO into
2855 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
2856 (<u>mulsidi3): Handle expansion in C code.
2857 (<u>mulsidi3_32bit_internal): Rename to...
2858 (<u>mulsidi3_32bit): ...this.
2859 (<u>mulsidi3_32bit_r4000): Fix insn separator.
2860 (*<u>mulsidi3_64bit): Rename to...
2861 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
2862 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
2863 to set LO and HI to the multiplication result. Use a normal move
2864 for MFLO and an unspec for MFHI.
2865 (*<u>mulsidi3_64bit_parts): Replace with...
2866 (<u>mulsidi3_64bit_hilo): ...this new instruction.
2867 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
2868 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
2869 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
2870 instead of HI. Split the instruction into a separate multiplication
2871 and MFHI if !TARGET_FIX_R4000.
2872 (<su>muldi3_highpart): Likewise.
2873 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
2874 and the "=h" clobber.
2875 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
2876 (<u>mulditi3): New expander.
2877 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
2878 (madsi): Remove "=h" clobber.
2879 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
2880 Force the modulus result to be a GPR and split the instruction into
2881 a division followed by an MFHI after reload.
2882 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
2883 (*lea_high64): Use d_operand in the define_peephole2. Likewise
2884 the MIPS16 HIGH define_split.
2885 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
2886 of acc<->gpr moves to "multi".
2887 (*movdi_64bit): Replace the single "x" alternative with
2888 alternatives for moving into and out of "a".
2889 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
2890 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
2891 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
2892 Use d_operand in the splitters. Remove redundant CONST_INT checks.
2893 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
2894 (movti): New expander.
2895 (*movti, *movti_mips16): New insns.
2896 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
2897 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
2898 (mthi<GPR:mode>_<HILO:mode>): Likewise.
2899 * config/mips/predicates.md (fpr_operand): Delete.
2900 (d_operand): New predicate.
2902 2008-06-09 Michael Meissner <michael.meissner@amd.com>
2904 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
2905 failure on some Bourne shells.
2906 (x86_64-*-*): Ditto.
2908 2008-06-09 Kai Tietz <kai.tietz@onevision.com>
2910 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
2912 2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
2914 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
2915 (sparc-sun-solaris2*): Likewise.
2917 2008-06-09 Arnaud Charlet <charlet@adacore.com
2919 * doc/install.texi: Update requirements to build the Ada compiler.
2921 2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
2923 * df-scan.c (struct df_scan_problem_data): Remove the
2924 mw_link_pool alloc pool.
2925 (df_scan_free_internal): Don't free it.
2926 (df_scan_alloc): Don't allocate it.
2927 * df.h (struct df_link): Update comment.
2929 2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
2931 * except.h: Correct checks for when SJLJ exceptions must be used.
2933 2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2935 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
2938 2008-06-08 Joseph Myers <joseph@codesourcery.com>
2940 PR tree-optimization/36218
2941 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
2942 configure for the build system.
2943 (BUILD_LDFLAGS): Define.
2944 * configure: Regenerate.
2945 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
2947 2008-07-08 Anatoly Sokolov <aesok@post.ru>
2950 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
2951 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
2952 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
2954 2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
2956 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
2958 2008-06-07 Joseph Myers <joseph@codesourcery.com>
2960 * config.gcc (Obsolete configurations): Remove list of
2962 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
2963 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
2964 targets matched by those patterns.
2965 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
2966 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
2967 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
2968 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
2969 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
2970 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
2971 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
2972 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
2973 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
2974 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
2975 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
2976 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
2977 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
2978 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
2979 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
2980 Make code for Solaris 7 and greater unconditional for Solaris.
2981 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
2982 Remove --with-* handling.
2983 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
2984 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
2985 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
2986 LINK_OS_WINDISS_SPEC): Remove.
2987 * config/rs6000/sysv4.opt (mwindiss): Remove.
2988 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
2989 * configure: Regenerate.
2990 * doc/cpp.texi: Don't mention BeOS.
2991 * doc/extend.texi (interrupt): Don't mention MS1.
2992 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
2993 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
2994 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
2995 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
2996 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
2998 * doc/invoke.texi (MT Options): Remove.
2999 (-mwindiss): Remove.
3000 (CRIS Options): Remove cris-axis-aout references.
3001 (HPPA Options): Don't mention hppa1.1-*-pro.
3002 * doc/md.texi: (MorphoTech family): Remove.
3003 * libgcc2.c: Don't handle UWIN.
3004 * config/alpha/t-unicosmk: Remove.
3005 * config/alpha/unicosmk.h: Remove.
3006 * config/arm/kaos-arm.h: Remove.
3007 * config/arm/kaos-strongarm.h: Remove.
3008 * config/arm/strongarm-coff.h: Remove.
3009 * config/arm/strongarm-elf.h: Remove.
3010 * config/arm/strongarm-pe.h: Remove.
3011 * config/arm/t-strongarm-pe: Remove.
3012 * config/arm/t-xscale-coff: Remove.
3013 * config/arm/t-xscale-elf: Remove.
3014 * config/arm/xscale-coff.h: Remove.
3015 * config/arm/xscale-elf.h: Remove.
3016 * config/chorus.h: Remove.
3017 * config/cris/aout.h: Remove.
3018 * config/cris/aout.opt: Remove.
3019 * config/cris/t-aout: Remove.
3020 * config/i386/beos-elf.h: Remove.
3021 * config/i386/kaos-i386.h: Remove.
3022 * config/i386/ptx4-i.h: Remove.
3023 * config/i386/sco5.h: Remove.
3024 * config/i386/sco5.opt: Remove.
3025 * config/i386/sysv4-cpp.h: Remove.
3026 * config/i386/sysv5.h: Remove.
3027 * config/i386/t-beos: Remove.
3028 * config/i386/t-sco5: Remove.
3029 * config/i386/t-uwin: Remove.
3030 * config/i386/uwin.asm: Remove.
3031 * config/i386/uwin.h: Remove.
3032 * config/kaos.h: Remove.
3033 * config/mips/windiss.h: Remove.
3034 * config/mt: Remove directory.
3035 * config/pa/pa-osf.h: Remove.
3036 * config/pa/pa-pro-end.h: Remove.
3037 * config/pa/t-pro: Remove.
3038 * config/ptx4.h: Remove.
3039 * config/rs6000/beos.h: Remove.
3040 * config/rs6000/kaos-ppc.h: Remove.
3041 * config/rs6000/t-beos: Remove.
3042 * config/rs6000/windiss.h: Remove.
3043 * config/sh/kaos-sh.h: Remove.
3044 * config/sol2-6.h: Remove.
3045 * config/sparc/sol26-sld.h: Remove.
3046 * config/sparc/sysv4-only.h: Remove.
3047 * config/vax/bsd.h: Remove.
3048 * config/vax/t-memfuncs: Remove.
3049 * config/vax/ultrix.h: Remove.
3050 * config/vax/vaxv.h: Remove.
3051 * config/windiss.h: Remove.
3053 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
3055 PR rtl-optimization/36438
3056 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
3057 for vector shifts with constant scalar shift operands.
3059 2008-06-06 Sandip Matte <sandip@rmicorp.com>
3061 * doc/invoke.texi: Document -march=xlr.
3062 * config/mips/xlr.md: New file.
3063 * config/mips/mips.md: Include it.
3065 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
3066 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
3067 (mips_rtx_cost_data): Likewise.
3069 2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
3071 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
3072 PRE_INC and PRE_DEC cases.
3074 2008-06-06 Jakub Jelinek <jakub@redhat.com>
3076 PR rtl-optimization/36419
3077 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
3078 the emitting jump insn.
3081 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
3082 is not bool, boolify the whole *expr_p and convert to the desired type.
3084 2008-06-06 Jakub Jelinek <jakub@redhat.com>
3086 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
3087 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
3088 Add omp_private_outer_ref hook, add another argument to
3089 omp_clause_default_ctor hook.
3090 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
3091 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
3092 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
3093 hook_tree_tree_tree_tree_null.
3094 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
3095 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
3096 * hooks.c (hook_tree_tree_tree_tree_null): New function.
3097 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
3098 * tree.def (OMP_TASK): New tree code.
3099 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
3100 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
3101 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
3102 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
3103 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
3104 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
3105 OMP_CLAUSE_COLLAPSE_EXPR): Define.
3106 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3107 (OMP_DIRECTIVE_P): Add OMP_TASK.
3108 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
3109 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
3110 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
3111 and OMP_CLAUSE_UNTIED entries.
3112 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
3114 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3115 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
3116 * tree-pretty-print.c (dump_omp_clause): Handle
3117 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
3118 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3119 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
3120 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
3121 warning about unsigned iterators. Change decl/init/cond/incr
3122 arguments to TREE_VECs, check arguments for all collapsed loops.
3123 (c_finish_omp_taskwait): New function.
3124 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
3126 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
3127 default_function_array_conversion on init. Add par_clauses argument.
3128 If decl is present in parallel's lastprivate clause, change it to
3129 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
3130 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
3131 collapse count in clauses.
3132 (c_parser_omp_for, c_parser_omp_parallel): Adjust
3133 c_parser_omp_for_loop callers.
3134 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
3135 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
3136 (c_parser_omp_clause_name): Handle collapse and untied clauses.
3137 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
3139 (c_parser_omp_clause_schedule): Handle schedule(auto).
3140 Include correct location in the error message.
3141 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
3142 and PRAGMA_OMP_CLAUSE_UNTIED.
3143 (OMP_TASK_CLAUSE_MASK): Define.
3144 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
3145 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
3146 * tree-nested.c (convert_nonlocal_omp_clauses,
3147 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
3148 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
3149 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3150 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
3152 (conver_nonlocal_reference, convert_local_reference,
3153 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
3154 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
3155 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
3156 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
3157 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
3158 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
3159 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
3160 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
3161 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3163 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
3164 * c-common.h (c_finish_omp_taskwait): New prototype.
3165 * gimple-low.c (lower_stmt): Handle OMP_TASK.
3166 * tree-parloops.c (create_parallel_loop): Create 1 entry
3167 vectors for OMP_FOR_{INIT,COND,INCR}.
3168 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3169 (make_edges): Handle OMP_TASK.
3170 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
3171 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3172 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
3173 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
3174 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
3175 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3176 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3177 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
3178 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
3179 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
3180 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
3181 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
3182 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
3183 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
3184 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
3185 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
3186 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
3187 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
3188 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
3189 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
3190 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
3191 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
3192 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
3193 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
3194 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
3195 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
3196 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
3197 original iterator is present in lastprivate clause or if
3198 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
3199 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3200 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
3201 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
3202 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
3203 if it is set, lookup var in outer contexts too. Handle
3204 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
3205 to be implicitly determined firstprivate for task regions.
3206 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
3207 if it is set, lookup var in outer contexts too. Set
3208 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
3209 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
3210 OMP_CLAUSE_UNTIED. Take region_type as last argument
3211 instead of in_parallel and in_combined_parallel.
3212 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3214 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
3215 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
3216 (new_omp_context): Set default_kind to
3217 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
3218 (omp_region_type): New enum.
3219 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
3220 fields, add region_type.
3221 (new_omp_context): Take region_type as argument instead of is_parallel
3222 and is_combined_parallel.
3223 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
3224 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
3225 ctx->is_combined_parallel checks.
3226 (gimplify_omp_task): New function.
3227 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3229 * omp-low.c (extract_omp_for_data): Use schedule(static)
3230 for schedule(auto). Handle pointer and unsigned iterators.
3231 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
3232 Add loops argument. Extract data for collapsed OMP_FOR loops.
3233 (expand_parallel_call): Assert sched_kind isn't auto,
3234 map runtime schedule to index 3.
3235 (struct omp_for_data_loop): New type.
3236 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
3237 Add loop, loops, collapse and iter_type fields.
3238 (workshare_safe_to_combine_p): Disallow combined for if
3239 iter_type is unsigned long long. Don't combine collapse > 1 loops
3240 unless all bounds and steps are constant. Adjust extract_omp_for_data
3242 (expand_omp_for_generic): Handle pointer, unsigned and long long
3243 iterators. Handle collapsed OMP_FOR loops. Adjust
3244 for struct omp_for_data changes. If libgomp function doesn't return
3245 boolean_type_node, add comparison of the return value with 0.
3246 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
3247 pointer, unsigned and long long iterators. Adjust for struct
3248 omp_for_data changes.
3249 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
3250 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
3251 unsigned long long. Allocate loops array, pass it to
3252 extract_omp_for_data. For collapse > 1 loops use always
3253 expand_omp_for_generic.
3254 (omp_context): Add sfield_map and srecord_type fields.
3255 (is_task_ctx, lookup_sfield): New functions.
3256 (use_pointer_for_field): Use is_task_ctx helper. Change first
3257 argument's type from const_tree to tree. Clarify comment.
3258 In OMP_TASK disallow copy-in/out sharing.
3259 (build_sender_ref): Call lookup_sfield instead of lookup_field.
3260 (install_var_field): Add mask argument. Populate both record_type
3261 and srecord_type if needed.
3262 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
3264 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
3265 and DECL_FIELD_OFFSET.
3266 (scan_sharing_clauses): Adjust install_var_field callers. For
3267 firstprivate clauses on explicit tasks allocate the var by value in
3268 record_type unconditionally, rather than by reference.
3269 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
3270 Use is_taskreg_ctx instead of is_parallel_ctx.
3271 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3272 (create_omp_child_function_name): Add task_copy argument, use
3273 *_omp_cpyfn* names if it is true.
3274 (create_omp_child_function): Add task_copy argument, if true create
3275 *_omp_cpyfn* helper function.
3276 (scan_omp_parallel): Adjust create_omp_child_function callers.
3277 Rename parallel_nesting_level to taskreg_nesting_level.
3278 (scan_omp_task): New function.
3279 (lower_rec_input_clauses): Don't run constructors for firstprivate
3280 explicit task vars which are initialized by *_omp_cpyfn*.
3281 Pass outer var ref to omp_clause_default_ctor hook if
3282 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
3283 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
3284 OMP_CLAUSE_REDUCTION_INIT.
3285 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
3286 avoid duplicate setting of fields. Handle
3287 OMP_CLAUSE_PRIVATE_OUTER_REF.
3288 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
3289 copy-out if TREE_READONLY, only copy-in.
3290 (expand_task_copyfn): New function.
3291 (expand_task_call): New function.
3292 (struct omp_taskcopy_context): New type.
3293 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
3295 (lower_omp_parallel): Rename to...
3296 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
3297 Call create_task_copyfn if srecord_type is needed. Adjust
3299 (task_shared_vars): New variable.
3300 (check_omp_nesting_restrictions): Warn if work-sharing,
3301 barrier, master or ordered region is closely nested inside OMP_TASK.
3302 Add warnings for barrier if closely nested inside of work-sharing,
3303 ordered, or master region.
3304 (scan_omp_1): Call check_omp_nesting_restrictions even for
3305 GOMP_barrier calls. Rename parallel_nesting_level to
3306 taskreg_nesting_level. Handle OMP_TASK.
3307 (lower_lastprivate_clauses): Even if some lastprivate is found on a
3308 work-sharing construct, continue looking for them on parent parallel
3310 (lower_omp_for_lastprivate): Add lastprivate clauses
3311 to the beginning of dlist rather than end. Adjust for struct
3312 omp_for_data changes.
3313 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
3314 not after it. Handle collapsed OMP_FOR loops, adjust for
3315 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
3316 (get_ws_args_for): Adjust extract_omp_for_data caller.
3317 (scan_omp_for): Handle collapsed OMP_FOR
3318 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3319 (lower_omp_single_simple): If libgomp function doesn't return
3320 boolean_type_node, add comparison of the return value with 0.
3321 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
3322 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
3323 (parallel_nesting_level): Rename to...
3324 (taskreg_nesting_level): ... this.
3325 (is_taskreg_ctx): New function.
3326 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
3328 (execute_lower_omp): Rename parallel_nesting_level to
3329 taskreg_nesting_level.
3330 (expand_omp_parallel): Rename to...
3331 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
3332 Call omp_task_call for OMP_TASK regions.
3333 (expand_omp): Adjust caller, handle OMP_TASK.
3334 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
3336 * bitmap.c (bitmap_default_obstack_depth): New variable.
3337 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
3338 if argument is NULL and bitmap_default_obstack is already initialized.
3339 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
3341 * matrix-reorg.c (matrix_reorg): Likewise.
3343 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
3345 * config/i386/i386.md (*indirect_jump): Macroize using P
3346 mode iterator. Remove !TARGET_64BIT from insn constraints.
3347 (*tablejump_1): Ditto.
3348 (*indirect_jump_rex64): Remove insn pattern.
3349 (*tablejump_1_rex64): Ditto.
3350 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
3351 and eh_return_si insn patterns.
3353 2008-06-06 Richard Guenther <rguenther@suse.de>
3355 * tree-ssa-structalias.c (merge_smts_into): Remove.
3356 (find_what_p_points_to): Do not bother to compute the
3357 points-to set for pt_anything pointers.
3358 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
3359 for pt_anything pointers is ok.
3361 2008-06-06 Jan Hubicka <jh@suse.cz>
3363 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
3365 2008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3367 * cgraph.c: Fix typos in comments.
3368 (cgraph_availability_names): Fix string typo.
3369 * fold-const.c: Fix typos in comments.
3370 (fold_binary): Fix typo in warning.
3371 * genautomata.c: Fix typos in comments.
3372 (check_presence_pattern_sets): Fix typo in local variable.
3373 (output_description): Fix typo in output.
3374 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
3375 * hwint.h: Likewise.
3376 * matrix-reorg.c (check_allocation_function): Likewise.
3377 * omega.c (smooth_weird_equations): Likewise.
3378 * auto-inc-dec.c: Fix typos in comments.
3379 * bb-reorder.c: Likewise.
3380 * builtins.c: Likewise.
3381 * c-common.c: Likewise.
3382 * c-cppbuiltin.c: Likewise.
3383 * c-parser.c: Likewise.
3384 * c-pretty-print.c: Likewise.
3385 * cfgcleanup.c: Likewise.
3386 * cfgexpand.c: Likewise.
3387 * cfghooks.c: Likewise.
3388 * cfglayout.c: Likewise.
3389 * cfgloopmanip.c: Likewise.
3390 * cgraphunit.c: Likewise.
3391 * coverage.c: Likewise.
3392 * dbxout.c: Likewise.
3393 * df-byte-scan.c: Likewise.
3394 * df-core.c: Likewise.
3395 * df-problems.c: Likewise.
3396 * df-scan.c: Likewise.
3398 * dominance.c: Likewise.
3399 * domwalk.c: Likewise.
3401 * dwarf2out.c: Likewise.
3402 * emit-rtl.c: Likewise.
3403 * et-forest.c: Likewise.
3404 * function.c: Likewise.
3405 * function.h: Likewise.
3407 * gcov-io.c: Likewise.
3410 * genattrtab.c: Likewise.
3411 * ggc-page.c: Likewise.
3412 * gimplify.c: Likewise.
3413 * gthr-lynx.h: Likewise.
3414 * haifa-sched.c: Likewise.
3415 * ipa-cp.c: Likewise.
3416 * ipa-inline.c: Likewise.
3417 * ipa-prop.h: Likewise.
3418 * ipa-pure-const.c: Likewise.
3419 * ipa-struct-reorg.c: Likewise.
3420 * ipa-struct-reorg.h: Likewise.
3421 * ipa-type-escape.c: Likewise.
3423 * loop-doloop.c: Likewise.
3424 * mips-tfile.c: Likewise.
3425 * mkmap-flat.awk: Likewise.
3426 * mkmap-symver.awk: Likewise.
3427 * modulo-sched.c: Likewise.
3428 * omp-low.c: Likewise.
3429 * optabs.c: Likewise.
3430 * optabs.h: Likewise.
3432 * passes.c: Likewise.
3433 * postreload-gcse.c: Likewise.
3434 * postreload.c: Likewise.
3435 * predict.c: Likewise.
3436 * pretty-print.h: Likewise.
3437 * profile.c: Likewise.
3438 * protoize.c: Likewise.
3439 * ra-conflict.c: Likewise.
3441 * recog.c: Likewise.
3442 * regclass.c: Likewise.
3444 * reload.c: Likewise.
3445 * rtl-error.c: Likewise.
3446 * rtlanal.c: Likewise.
3448 * sched-rgn.c: Likewise.
3451 * target.h: Likewise.
3452 * tree-dfa.c: Likewise.
3453 * tree-eh.c: Likewise.
3454 * tree-flow-inline.h: Likewise.
3455 * tree-inline.c: Likewise.
3456 * tree-into-ssa.c: Likewise.
3457 * tree-loop-distribution.c: Likewise.
3458 * tree-nested.c: Likewise.
3459 * tree-parloops.c: Likewise.
3460 * tree-pass.h: Likewise.
3461 * tree-pretty-print.c: Likewise.
3462 * tree-profile.c: Likewise.
3463 * tree-scalar-evolution.c: Likewise.
3464 * tree-sra.c: Likewise.
3465 * tree-ssa-alias-warnings.c: Likewise.
3466 * tree-ssa-ccp.c: Likewise.
3467 * tree-ssa-coalesce.c: Likewise.
3468 * tree-ssa-dom.c: Likewise.
3469 * tree-ssa-dse.c: Likewise.
3470 * tree-ssa-forwprop.c: Likewise.
3471 * tree-ssa-live.c: Likewise.
3472 * tree-ssa-live.h: Likewise.
3473 * tree-ssa-loop-im.c: Likewise.
3474 * tree-ssa-loop-ivopts.c: Likewise.
3475 * tree-ssa-loop-niter.c: Likewise.
3476 * tree-ssa-loop-prefetch.c: Likewise.
3477 * tree-ssa-phiopt.c: Likewise.
3478 * tree-ssa-phiprop.c: Likewise.
3479 * tree-ssa-sccvn.c: Likewise.
3480 * tree-ssa-ter.c: Likewise.
3481 * tree-ssa-threadupdate.c: Likewise.
3482 * tree-ssa.c: Likewise.
3483 * tree-vect-analyze.c: Likewise.
3484 * tree-vect-transform.c: Likewise.
3485 * tree-vectorizer.c: Likewise.
3486 * tree-vn.c: Likewise.
3487 * tree-vrp.c: Likewise.
3489 * tree.def: Likewise.
3491 * unwind-dw2-fde.c: Likewise.
3492 * unwind.inc: Likewise.
3493 * value-prof.c: Likewise.
3494 * vmsdbgout.c: Likewise.
3496 2008-06-05 David Edelsohn <edelsohn@gnu.org>
3498 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
3499 always place FP constants in the TOC for TARGET_POWERPC64.
3500 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
3502 2008-06-05 Joseph Myers <joseph@codesourcery.com>
3504 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
3505 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
3506 enable for TARGET_E500_DOUBLE.
3507 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
3508 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
3509 floating-point modes like integer modes for E500 double.
3510 (rs6000_legitimate_offset_address_p): Likewise.
3511 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
3512 addressing for DDmode for E500 double.
3513 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
3514 modes as using 64-bits of registers for E500 double.
3515 (spe_build_register_parallel): Do not handle DDmode or TDmode.
3516 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
3517 specially for E500 double.
3518 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
3519 TDmode for E500 double.
3520 (rs6000_gimplify_va_arg): Only handle SDmode in registers
3521 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
3522 (rs6000_split_multireg_move): Do not handle TDmode specially for
3524 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
3525 using 64-bit registers for E500 double.
3526 (emit_frame_save): Do not handle DDmode specially for E500 double.
3527 (gen_frame_mem_offset): Likewise.
3528 (rs6000_function_value): Do not call spe_build_register_parallel
3529 for DDmode or TDmode.
3530 (rs6000_libcall_value): Likewise.
3531 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
3532 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
3535 2008-06-04 H.J. Lu <hongjiu.lu@intel.com>
3537 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
3540 2008-06-04 Junjie Gu <jgu@tensilica.com>
3542 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
3543 comparison for frame pointers.
3545 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
3548 * config/avr/avr.h (PUSH_ROUNDING): Remove.
3550 2008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
3553 * builtins.c (expand_builtin_signbit): Don't take lowpart when
3554 register is already smaller or equal to required mode.
3556 2008-06-04 Xinliang David Li <davidxl@google.com>
3558 * tree-call-cdce.c: New file.
3559 (cond_dead_built_in_calls): New static variable.
3560 (input_domain): New struct.
3561 (check_pow): New function.
3562 (check_builtin_call): Ditto.
3563 (check_target_format): Ditto.
3564 (is_call_dce_candidate): Ditto.
3565 (gen_one_condition): Ditto.
3566 (gen_conditions_for_domain): Ditto.
3567 (get_domain): Ditto.
3568 (gen_conditions_for_pow_cst_base): Ditto.
3569 (gen_conditions_for_pow_int_base): Ditto.
3570 (gen_conditions_for_pow): Ditto.
3571 (get_no_error_domain): Ditto.
3572 (gen_shrink_wrap_conditions): Ditto.
3573 (shrink_wrap_one_built_in_call): Ditto.
3574 (shink_wrap_conditional_dead_built_in_calls): Ditto.
3575 (tree_call_cdce): Ditto.
3576 (gate_call_cdce): Ditto.
3577 (pass_call_cdce): New gimple pass.
3578 * passes.c: (init_optimization_passes): New pass.
3579 * tree-pass.h: New pass declaration.
3580 * opts.c (decode_options): New flag setting.
3581 * common.opt: Add -ftree-builtin-call-dce flag.
3582 * Makefile.in: Add new source file.
3583 * tempvar.def: New tv_id.
3584 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
3586 2008-06-04 Richard Guenther <rguenther@suse.de>
3588 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
3589 (is_call_clobbered): Always check var_ann->call_clobbered.
3590 (mark_call_clobbered): Always set var_ann->call_clobbered.
3591 (clear_call_clobbered): Always clear var_ann->call_clobbered.
3592 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
3593 (reset_alias_info): Clear call clobbering info on MTAGs and
3595 (set_pt_anything): Set pt_global_mem.
3596 (create_tag_raw): Adjust comment.
3597 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
3599 2008-06-04 Joseph Myers <joseph@codesourcery.com>
3600 Maxim Kuvyrkov <maxim@codesourcery.com>
3602 * config/m68k/m68k.opt (mxgot): New option.
3603 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
3604 (m68k_output_addr_const_extra): New.
3605 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
3606 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
3607 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
3608 * doc/invoke.texi (M680x0 Options): Document -mxgot.
3610 2008-06-04 Richard Guenther <rguenther@suse.de>
3612 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
3613 negative or non-representable offsets.
3615 2008-06-03 H.J. Lu <hongjiu.lu@intel.com>
3617 * config/i386/i386.c (ix86_gen_leave): New.
3618 (ix86_gen_pop1): Likewise.
3619 (ix86_gen_add3): Likewise.
3620 (ix86_gen_sub3): Likewise.
3621 (ix86_gen_sub3_carry): Likewise.
3622 (ix86_gen_one_cmpl2): Likewise.
3623 (ix86_gen_monitor): Likewise.
3624 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
3625 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
3626 ix86_gen_one_cmpl2 and ix86_gen_monitor.
3627 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
3628 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
3629 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
3630 (ix86_expand_epilogue): Updated.
3631 (print_operand): Handle integer register operand for 'z'.
3632 (ix86_expand_strlensi_unroll_1): Likewise.
3633 (ix86_expand_strlen): Likewise.
3634 (ix86_expand_builtin): Likewise.
3635 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
3636 mov{q}/mov{l} and add{q}/add{l}.
3638 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
3640 * config/i386/i386.md (P): New mode iterator.
3641 (SFmode push_operand splitter): Macroize DImode and SImode pushes
3642 using P mode iterator.
3643 (DFmode push_operand splitter): Ditto.
3644 (XFmode push_operand splitter): Ditto.
3645 (DFmode float_extend SFmode push_operand splitter): Ditto.
3646 (XFmode float_extend SFmode push_operand splitter): Do not generate
3647 SImode pushes for 64bit target. Macroize Dimode and SImode
3648 pushes using P mode iterator.
3649 (XFmode float_extend DFmode push_operand splitter): Ditto.
3651 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
3653 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
3654 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
3655 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
3657 (ix86_call_abi_override): Remove check for call_used_regs.
3659 2008-06-03 Richard Guenther <rguenther@suse.de>
3661 * tree-ssa-structalias.c (find_func_aliases): Add constraints
3662 for the lhs of calls if the return type contains pointers.
3664 2008-06-03 Kai Tietz <kai.tietz@onevision.com>
3666 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
3667 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
3668 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
3669 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
3670 of cfun and DEFAULT_ABI to deceide abi mode.
3672 (REG_PARM_STACK_SPACE): Removed.
3673 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
3674 (STACK_BOUNDARY): Use default target to deceide stack boundary.
3675 * config/i386/i386-protos.h (ix86_cfun_abi): New.
3676 (ix86_function_abi): Likewise.
3677 (ix86_function_type_abi): Likewise.
3678 (ix86_call_abi_override): Likewise.
3679 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
3680 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
3681 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
3682 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
3684 (X86_64_REGPARM_MAX): New.
3685 (X86_64_SSE_REGPARM_MAX): New.
3686 (X64_REGPARM_MAX): New.
3687 (X64_SSE_REGPARM_MAX): New.
3688 (X86_32_REGPARM_MAX): New.
3689 (X86_32_SSE_REGPARM_MAX): New.
3690 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
3691 (ix86_function_regparm): Handle user calling abi.
3692 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
3693 by DEFAULT_ABI versus SYSV_ABI check.
3694 (ix86_reg_parm_stack_space): New.
3695 (ix86_function_type_abi): New.
3696 (ix86_call_abi_override): New.
3697 (ix86_function_abi): New.
3698 (ix86_cfun_abi): New.
3699 (init_cumulative_args): Call abi specific initialization.
3700 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
3701 (function_arg_64): Extend SSE_REGPARM_MAX check.
3702 (function_arg (): Remove TARGET_64BIT_MS_ABI.
3703 (ix86_pass_by_reference): Likewise.
3704 (ix86_function_value_regno_p): Likewise.
3705 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
3706 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
3707 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
3708 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
3709 (setup_incoming_varargs_64): Adjust regparm for call abi.
3710 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
3711 (ix86_va_start): Likewise.
3712 (ix86_gimplify_va_arg): Likewise.
3713 (ix86_expand_prologue): Likewise.
3714 (output_pic_addr_const): Likewise.
3715 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
3716 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
3717 (x86_output_mi_thunk): Likewise.
3718 (x86_function_profiler): Likewise.
3719 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
3720 (SYSV_ABI, MS_ABI): New constants.
3722 (init_regs): Add prototype of function in regclass.c file.
3723 (OVERRIDE_ABI_FORMAT): New.
3724 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
3725 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
3726 (OUTGOING_REG_PARM_STACK_SPACE): New.
3727 (ix86_reg_parm_stack_space): New prototype.
3728 (CUMULATIVE_ARGS): Add call_abi member.
3729 (machine_function): Add call_abi member.
3730 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
3731 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
3733 2008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
3736 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
3737 (avr_builtin_setjmp_frame_value): New function.
3738 * config/avr/avr.md (nonlocal_goto_receiver): Define.
3739 (nonlocal_goto): Define.
3741 2008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
3743 * config/mips/mips.c (mips_emit_loadgp): Return early if
3744 there is nothing do to, otherwise emit a blockage if
3745 !TARGET_EXPLICIT_RELOCS || crtl->profile.
3746 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
3748 2008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3750 * configure.ac: Drop unneeded backslash ending up in config.in.
3751 * acinclude.m4: Likewise.
3752 * config.in: Regenerate.
3754 2008-05-26 Jan Hubicka <jh@suse.cz>
3756 * predict.c (maybe_hot_frequency_p): Break out of...
3757 (maybe_hot_bb_p): ... here.
3758 (maybe_hot_edge_p): New.
3759 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
3760 * basic-block.h (maybe_hot_edge_p): Declare.
3762 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
3764 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
3765 (*cmpfp_<mode>_cc): Ditto.
3766 (*fp_jcc_8<mode>_387): Ditto.
3767 (*fop_<MODEF:mode>_2_i387): Ditto.
3768 (*fop_<MODEF:mode>_3_i387): Ditto.
3769 (*fop_xf_2_i387): Ditto.
3770 (*fop_xf_3_i387): Ditto.
3772 2008-06-02 Tomas Bily <tbily@suse.cz>
3774 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
3776 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
3778 * config/mips/mips.c (mips_valid_offset_p): New function.
3779 (mips_valid_lo_sum_p): Likewise.
3780 (mips_classify_address): Use them.
3781 (mips_force_address): New function.
3782 (mips_legitimize_address): Use it.
3783 * config/mips/mips.md (MOVE128): New mode iterator.
3784 (movtf): Require TARGET_64BIT. Remove empty strings.
3785 (*movtf_internal): Rename to...
3786 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
3787 of "R" and use {,fp}{load,store} attributes instead of "multi".
3788 Use a separate define_split.
3789 (*movtf_mips16): New pattern.
3791 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
3793 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
3794 * config/mips/mips.c (mips_expand_before_return): New function.
3795 (mips_expand_epilogue): Call it.
3796 * config/mips/mips.md (return): Turn into a define_expand.
3797 (*return): New insn.
3799 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
3801 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
3802 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
3803 functions. Do not emit uses and clobbers of CONCATs; individually
3804 use and clobber their operands.
3805 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
3806 gen_clobber, emit_use and gen_use.
3807 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3808 (expand_builtin_return): Likewise.
3809 * cfgbuild.c (count_basic_blocks): Likewise.
3810 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
3811 * explow.c (emit_stack_restore): Likewise.
3812 * expmed.c (extract_bit_field_1): Likewise.
3813 * expr.c (convert_move, emit_move_complex_parts): Likewise.
3814 (emit_move_multi_word, store_constructor): Likewise.
3815 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
3816 (thread_prologue_and_epilogue_insns): Likewise.
3817 * lower-subreg.c (resolve_simple_move): Likewise.
3818 * optabs.c (widen_operand, expand_binop): Likewise.
3819 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
3820 * reload.c (find_reloads): Likewise.
3821 * reload1.c (eliminate_regs_in_insn): Likewise.
3822 * stmt.c (expand_nl_goto_receiver): Likewise.
3823 * config/alpha/alpha.md (builtin_longjmp): Likewise.
3824 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
3825 * config/arm/arm.c (arm_load_pic_register): Likewise.
3826 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
3827 * config/arm/arm.md (untyped_return): Likewise.
3828 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
3829 * config/avr/avr.c (expand_prologue): Likewise.
3830 * config/bfin/bfin.c (do_unlink): Likewise.
3831 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
3832 * config/cris/cris.c (cris_expand_prologue): Likewise.
3833 * config/darwin.c (machopic_indirect_data_reference): Likewise.
3834 (machopic_legitimize_pic_address): Likewise.
3835 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
3836 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
3837 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
3838 (ix86_expand_convert_uns_didf_sse): Likewise.
3839 (ix86_expand_vector_init_general): Likewise.
3840 * config/ia64/ia64.md (eh_epilogue): Likewise.
3841 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
3842 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
3843 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
3844 (config/iq2000/iq2000.c): Likewise.
3845 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
3846 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
3847 (builtin_longjmp): Likewise.
3848 * config/mn10300/mn10300.md (call, call_value): Likewise.
3849 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
3850 * config/pdp11/pdp11.md (abshi2): Likewise.
3851 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
3852 * config/s390/s390.c (s390_emit_prologue): Likewise.
3853 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
3854 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
3855 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
3856 * config/sh/sh.c (prepare_move_operands): Likewise.
3857 (output_stack_adjust, sh_expand_epilogue): Likewise.
3858 (sh_set_return_address, sh_expand_t_scc): Likewise.
3859 * config/sparc/sparc.c (load_pic_register): Likewise.
3860 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
3861 * config/spu/spu.c (spu_expand_epilogue): Likewise.
3862 * config/v850/v850.c (expand_epilogue): Likewise.
3864 2008-05-31 Anatoly Sokolov <aesok@post.ru>
3866 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
3867 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
3868 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
3869 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
3870 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
3871 stack pointer register.
3872 (output_movhi): Remove code for interrupt specific writing to the
3873 stack pointer register.
3875 2008-05-31 Richard Guenther <rguenther@suse.de>
3877 PR tree-optimization/34244
3878 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
3879 (tree_expr_nonzero_warnv_p): Likewise.
3880 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
3881 ssa_name_nonnegative_p.
3882 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
3883 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
3884 not tree_expr_nonzero_warnv_p.
3886 PR tree-optimization/36262
3888 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
3890 PR tree-optimization/34244
3891 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
3892 (record_numbers_of_iterations): New function.
3893 (execute_vrp): Cache the numbers of iterations of loops.
3894 * tree-scalar-evolution.c (scev_reset_except_niters):
3896 (scev_reset): Use scev_reset_except_niters.
3897 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
3899 2008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
3901 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3902 __WORKAROUND_RETS when appropriate.
3904 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
3906 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
3907 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
3909 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
3910 *fop_df_comm_sse insn patterns using MODEF mode iterator.
3911 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
3912 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
3913 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
3914 *fop_df_1_mixed insn patterns using MODEF mode iterator.