1 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
5 (s-gtyp-input): Use them to write tmp-gi.list.
6 (echo_to_gi.list): Remove.
8 2008-07-14 Richard Guenther <rguenther@suse.de>
10 * tree-ssa-sccvn.c (pre_info): Remove.
11 (switch_to_PRE_table): Likewise.
12 (free_scc_vn): Do not clear SSA_NAME_VALUE.
14 (set_hashtable_value_ids): Do not create value-ids for the
16 (run_scc_vn): Remove double test. Remove bogus special-case
17 in value-number printing.
18 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
19 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
21 * tree-flow-inline.h (get_value_handle): Remove.
22 * tree-flow.h (get_value_handle): Remove.
24 2008-07-14 Martin Jambor <mjambor@suse.cz>
26 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
27 in which we generate arithmetics is not a subrange.
29 2008-07-14 Martin Jambor <mjambor@suse.cz>
31 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
33 2008-07-14 Richard Guenther <rguenther@suse.de>
35 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call
38 2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
41 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
42 reload for symbol refs moved to r0 with -fPIC.
43 (legitimize_pic_address): Use the target register as temporary
45 (emit_symbolic_move): Adjust comment.
46 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
49 2008-07-14 Ben Elliston <bje@au.ibm.com>
51 * c-common.h (C_CPP_HASHNODE): New macro.
52 * coretypes.h (struct cpp_token): Forward declare.
53 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
54 the context-sensitive keyword method.
55 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
56 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
57 expand_bool_pixel): New.
58 (altivec_categorize_keyword): New function.
59 (init_vector_keywords): New function.
60 (rs6000_macro_to_expand): Likewise.
61 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
62 compiling an ISO C dialect.
64 2008-07-13 Daniel Berlin <dberlin@dberlin.org>
66 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert
68 (create_expression_by_pieces): Fix typo.
69 (do_regular_insertion): Use debug counter here too.
71 2008-07-14 Hans-Peter Nilsson <hp@axis.com>
74 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
75 CONST_OK_FOR_LETTER_P. All port-local users changed.
76 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
77 implement Kp matching power-of-two.
78 (CONSTRAINT_LEN): Define to match.
79 * config/cris/cris.md: Replace all use of constraint K with Kc.
80 ("*btst*): Use Kp for operand 0 of last alternative.
82 2008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
85 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
88 2008-07-13 Jan Hubicka <jh@suse.cz>
90 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
93 2008-07-13 Richard Guenther <rguenther@suse.de>
96 * langhooks.c (lhd_print_error_function): Deal with recursive
99 2008-07-12 Jan Hubicka <jh@suse.cz>
101 * cgraph.c (assembler_name_hash): New static var.
102 (hash_node_by_assembler_name, eq_assembler_name): New.
103 (cgraph_node_for_asm): Use hashtable.
104 (cgraph_remove_node): Maintain hashtable.
105 (change_decl_assembler_name): Sanity check that names are not changing
106 after aliasing was processed.
107 * cgraph.h (varpoon_node): Add next GGC marker.
108 * tree.c (decl_assembler_name_equal): Constify.
109 (decl_assembler_name_hash): New.
110 * tree.h (decl_assembler_name_equal): Constify.
111 (decl_assembler_name_hash): Update.
113 2008-07-12 David Daney <ddaney@avtrex.com>
115 * config/mips/driver-native.c (host_detect_local_cpu): Handle
118 2008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
120 * doc/md.texi: Document the MIPS "v" constraint.
121 * config/mips/mips.h (reg_class): Revert last change.
122 (REG_CLASS_NAMES): Likewise.
123 (REG_CLASS_CONTENTS): Likewise.
124 * config/mips/mips.c (mips_regno_to_class): Likewise.
125 * config/mips/constraints.md (v): Likewise, but add documentation.
126 Add a comment to say that this constraint should not be used in
129 2008-07-11 DJ Delorie <dj@redhat.com>
131 * config/h8300/h8300.md (length): Fix branch offset limit.
133 2008-07-11 Anatoly Sokolov <aesok@post.ru>
135 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
136 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
137 (avr_hard_regno_scratch_ok): New function.
138 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
139 * config/avr/avr.md (all peepholes that request a scratch register):
140 Remove avr_peep2_scratch_safe use.
142 2008-07-11 Tom Tromey <tromey@redhat.com>
143 Ian Lance Taylor <iant@google.com>
145 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
146 (struct c_common_resword): Define.
147 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
148 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
149 (c_common_reswords, num_c_common_reswords): Declare.
150 * c-common.c (c_common_reswords): New global const array.
151 (num_c_common_reswords): New const int.
152 * c-parser.c (struct resword, reswords): Don't define.
153 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
154 (c_parse_init): Clarify mask code. Use c_common_reswords rather
155 than reswords. If warning about C++ keywords, give them a special
157 (c_lex_one_token): Warn about C++ keywords. Call
158 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
159 (c_parser_external_declaration): Look for RID_xxx rather than
160 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
161 (c_parser_statement_after_labels): Likewise.
162 (c_parser_objc_class_instance_variables): Likewise.
163 (c_parser_objc_class_declaration): Likewise.
164 (c_parser_objc_try_catch_statement): Likewise.
165 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
166 (declspecs_add_type): Likewise.
168 2008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
170 * ggc-page.c (alloc_page):
171 Substituting xmalloc, xcalloc with
172 XNEWVEC and XCNEWVAR macros which add the
175 2008-07-11 Richard Guenther <rguenther@suse.de>
177 PR tree-optimization/36765
178 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
179 aliases from HEAP vars to SMTs.
181 2008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
183 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
184 * configure.ac (loose_warn): Move -Wc++-compat from here...
185 (strict_warn): ...to here.
186 * configure: Regenerate.
188 2008-07-10 Joseph Myers <joseph@codesourcery.com>
190 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
191 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
192 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
193 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
194 excluding more specific h8300-*-* and sh-*-* targets.
196 2008-07-10 Daniel Berlin <dberlin@dberlin.org>
198 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert
201 (execute_pre): Call loop_optimizer_finalize in early exit.
203 2008-07-10 Jakub Jelinek <jakub@redhat.com>
206 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
207 uids in the bitmap, not just VAR_DECL uids.
209 PR rtl-optimization/36419
210 * combine-stack-adj.c (adjust_frame_related_expr): New function.
211 (combine_stack_adjustments_for_block): Call it if needed. Delete
213 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
214 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
215 prologue sp adjustment.
217 2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
220 * opts.c (print_ignored_options): Report postponed diagnostics for
221 unknown -Wno-* options as warnings, not errors.
222 (postpone_unknown_option_error): Renamed to...
223 (postpone_unknown_option_warning): ... this.
225 2008-07-09 Doug Kwan <dougkwan@google.com>
228 2008-07-08 Doug Kwan <dougkwan@google.com>
230 * config/arm/arm.opt (mandroid): New option.
231 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
232 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
234 (CC1PLUS_SPEC): Same.
236 (STARTFILE_SPEC): Same.
237 (ENDFILE_SPEC): Same.
238 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
241 2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
244 * config/mips/mips.h (reg_class): Remove V1_REG.
245 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
246 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
248 (mips_get_tp): New function.
249 (mips_legitimize_tls_address): Use it.
250 * config/mips/constraints.md (v): Delete.
251 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
252 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
253 After reload, split into a move and ...
254 (*tls_get_tp_<mode>_split): ...this new instruction.
256 2008-07-09 David Daney <ddaney@avtrex.com>
258 * config/mips/driver-native.c: Include coretypes.h and tm.h.
260 2008-07-09 Jakub Jelinek <jakub@redhat.com>
262 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
263 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
265 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
266 htab_delete should be called. Don't free c.
267 (lookup_tmp_var): Create temp_htab lazily.
268 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
269 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
271 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
272 lower_omp_ordered, lower_omp_critical, lower_omp_for,
273 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
274 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
275 * tree-sra.c (generate_element_init): Likewise.
276 * tree-mudflap.c (execute_mudflap_function_ops,
277 execute_mudflap_function_decls): Likewise.
278 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
279 * tree-gimple.h (struct gimplify_ctx): New type.
280 (push_gimplify_context): Adjust prototype.
282 2008-07-09 Daniel Berlin <dberlin@dberlin.org>
284 * tree-ssa-pre.c (phi_translate_1): Update placement of
287 2008-07-09 Anatoly Sokolov <aesok@post.ru>
289 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
290 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
291 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
292 * targhooks.c (default_hard_regno_scratch_ok): New function.
293 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
294 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
295 * recog.c: Include "target.h".
296 (peep2_find_free_register): Add check for global regs. Add target
298 * Makefile.in (recog.o): Depend on target.h.
300 2008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
302 * config/sh/sh.c (sh_canonical_va_list_type): New.
303 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
305 2008-07-09 Raksit Ashok <raksit@google.com>
307 * doc/invoke.texi (Option Summary): Mention new option
308 -Wdisallowed-function-list=...
309 (Warning Options): Document -Wdisallowed-function-list=...
310 * common.opt (Wdisallowed-function-list=): New flag.
311 * flags.h (warn_disallowed_functions): External definition of new
312 boolean warning flag.
313 (warn_if_disallowed_function_p): Declare new function.
314 * opts.c (warning_disallowed_functions): New static variable.
315 (warn_disallowed_functions): New boolean warning flag.
316 (warn_if_disallowed_function_p): New function.
317 (add_comma_separated_to_vector): Rename
318 add_instrument_functions_exclude_list to this.
319 (common_handle_option): Handle new option. Rename calls to
320 add_instrument_functions_exclude_list into calls to
321 add_comma_separated_to_vector.
322 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
323 based on flag warn_disallowed_functions.
325 2008-07-09 Christian Bruel <christian.bruel@st.com>
327 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
328 instead of get_attr_length.
330 2008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
332 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
334 * genemit.c (gen_insn): Likewise.
335 * gengtype.c (note_def_vec): Likewise.
336 * gengtype.h (note_def_vec): Likewise.
337 * genoutput.c (struct data, output_insn_data, process_template,
338 gen_expand, gen_split, note_constraint): Likewise.
339 * genrecog.c (new_decision, add_to_sequence, factor_tests,
340 make_insn_sequence): Likewise.
341 * gensupport.c (record_insn_name): Likewise.
343 2008-07-08 Doug Kwan <dougkwan@google.com>
345 * config/arm/arm.opt (mandroid): New option.
346 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
347 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
349 (CC1PLUS_SPEC): Same.
351 (STARTFILE_SPEC): Same.
352 (ENDFILE_SPEC): Same.
353 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
356 2008-07-08 Raksit Ashok <raksit@google.com>
358 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
359 (set_storage_via_setmem): Fix expected_align parameter.
360 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
361 missing from the list.
362 * doc/md.texi (movmem): Explicitly state that expected alignment is
363 to be expressed in bytes.
364 (setmem): Explicitly state that expected alignment is to be expressed
367 2008-07-08 Joseph Myers <joseph@codesourcery.com>
369 * reload.c (find_reloads_subreg_address): Do not require validity
370 of address in original mode before reloading address.
372 2008-07-07 Tianwei Sheng <tianweis@google.com>
374 * df-core.c (df_remove_problem): Adjust the access to avoid out of
377 2008-07-08 Jakub Jelinek <jakub@redhat.com>
379 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P
382 2008-07-05 Daniel Berlin <dberlin@dberlin.org>
384 Fix PR tree-optimization/23455
385 Fix PR tree-optimization/35286
386 Fix PR tree-optimization/35287
387 * Makefile.in (OBJS-common): Remove tree-vn.o.
389 * dbgcnt.def: Add treepre_insert debug counter.
390 * gcc/tree-flow.h (add_to_value): Updated for other changes.
391 (debug_value_expressions): Ditto.
392 (print_value_expressions): Ditto.
393 * tree-pretty-print.c (dump_generic_node): Updated for
394 VALUE_HANDLE removal.
395 * tree-ssa-dom.c (record_equality): Ditto.
396 (cprop_operand): Ditto.
397 (lookup_avail_expr): Ditto.
398 * tree-ssa-threadedge.c
399 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
400 (simplify_control_stmt_condition): Ditto.
401 * tree.c (tree_code_size): Ditto.
402 (tree_node_structure): Ditto.
403 (iterative_hash_expr): Ditto.
405 * tree.h (VALUE_HANDLE_ID): Ditto.
406 (VALUE_HANDLE_EXPR_SET): Ditto.
407 (struct tree_value_handle): Ditto.
408 (union tree_node): Ditto.
409 * treestruct.def: Ditto.
410 * tree-vn.c: Removed.
411 * tree-ssa-pre.c: Rewritten entirely.
412 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
413 (constant_value_ids): Ditto.
414 (vn_nary_op_t): Moved to header.
416 (vn_reference_op_t): Ditto
417 (vn_reference_t): Ditto.
418 (next_value_id): New variable.
419 (VN_INFO): Add an assert.
420 (vn_constant_eq): New function.
421 (vn_constant_hash): Ditto.
422 (get_or_alloc_constant_value_id): Ditto.
423 (value_id_constant_p): Ditto.
424 (vn_reference_compute_hash): De-staticify.
425 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
426 Disable some code with a FIXME.
427 Remove VALUE_HANDLE use.
428 (valueize_refs): Update opcode if it changes from ssa name to
430 (vn_reference_lookup_1): Add new argument.
431 (vn_reference_lookup): Ditto.
432 (vn_reference_lookup_pieces): New function.
433 (vn_reference_insert): Add return type. Modify to deal with value
435 (vn_reference_insert_pieces): New function.
436 (vn_nary_op_compute_hash): De-staticify.
437 (vn_nary_op_eq): Ditto.
438 (vn_nary_op_lookup_pieces): New function.
439 (vn_nary_op_lookup): Add new argument.
440 (vn_nary_op_insert_pieces): New function.
441 (vn_nary_op_insert): Add return type. Modify to deal with value
443 (vn_phi_insert): Ditto.
444 (visit_unary_op): Update for callee changes.
445 (visit_binary_op): Ditto.
446 (visit_reference_op_load): Ditto.
447 (visit_reference_op_store): Ditto.
448 (init_scc_vn): Init next_value_id, constant_to_value_id and
450 (free_scc_vn): Free them.
451 (set_hashtable_value_ids): New function.
452 (run_scc_vn): Use it.
453 (get_max_value_id): New function.
454 (get_next_value_id): Ditto.
455 (expressions_equal_p): Moved from tree-vn.c
457 (sort_vuses_heap): Ditto.
458 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
460 * tree.c (iterative_hash_hashval_t): Made non-static
461 * tree.h (iterative_hash_hashval_t): Declare it.
463 2008-07-08 Martin Jambor <mjambor@suse.cz>
465 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
466 instead of ipa_create_node_params.
467 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
468 ipa_check_create_edge_args, free them with
469 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
471 * ipa-prop.c: Include flags.h and tree-inline.h.
472 (ipa_node_params_vector): New variable.
473 (ipa_edge_args_vector): New variable.
474 (edge_removal_hook_holder): New variable.
475 (node_removal_hook_holder): New variable.
476 (edge_duplication_hook_holder): New variable.
477 (node_duplication_hook_holder): New variable.
478 (ipa_detect_param_modifications): Check for presence of modified flags.
479 (ipa_compute_jump_functions): Check for presence of jump functions.
480 (ipa_free_edge_args_substructures): New function.
481 (ipa_create_node_params): Removed.
482 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
483 (ipa_free_node_params_substructures): New function.
484 (ipa_free_all_node_params): Changed to deallocate the on-the-side
486 (ipa_edge_removal_hook): New function.
487 (ipa_node_removal_hook): New function.
488 (duplicate_array): New function.
489 (ipa_edge_duplication_hook): New function.
490 (ipa_node_duplication_hook): New function.
491 (ipa_register_cgraph_hooks): New function.
492 (ipa_unregister_cgraph_hooks): New function.
493 (free_all_ipa_structures_after_ipa_cp): New function.
495 * ipa-prop.h: Include vec.h.
496 (ipa_node_params_t): New typedef with vector types for it.
497 (ipa_edge_args_t): New typedef with vector types for it.
498 (IPA_NODE_REF): Changed to access an on-the-side vector.
499 (IPA_EDGE_REF): Changed to access an on-the-side vector.
500 (ipa_check_create_node_params): New function.
501 (ipa_check_create_edge_args): New function.
503 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
506 2008-07-07 Tom Tromey <tromey@redhat.com>
508 * configure, config.in: Rebuilt.
509 * configure.ac: Don't check for scandir or alphasort.
511 2008-07-07 Joseph Myers <joseph@codesourcery.com>
513 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
514 types immediately after creating them.
516 2008-07-07 Joseph Myers <joseph@codesourcery.com>
518 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
520 2008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
522 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
523 dump_constraint_graph.
524 (dump_constraint_edge): New function.
525 (dump_constraint_graph): New function.
526 (debug_constraint_graph): New function.
527 (dump_constraint): Removed useless comparison.
528 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
529 (dump_constraint_graph): Declare.
530 (debug_constraint_graph): Declare.
531 * tree-dump.c (struct dump_option_value_info): Declare
534 2008-07-07 Kai Tietz <kai.tietz@onevision.com>
536 * config/i386/i386.c (is_va_list_char_pointer): New.
537 (ix86_va_start): Replace compare with ms_va_list_type_node
538 by is_va_list_char_pointer.
539 (ix86_gimplify_va_arg): Likewise.
541 2008-07-07 Martin Jambor <mjambor@suse.cz>
543 * cgraph.c (cgraph_edge_max_uid): New variable.
544 (struct cgraph_edge_hook_list): New type.
545 (struct cgraph_node_hook_list): New type.
546 (struct cgraph_2edge_hook_list): New type.
547 (struct cgraph_2node_hook_list): New type.
548 (first_cgraph_edge_removal_hook): New variable.
549 (first_cgraph_node_removal_hook): New variable.
550 (first_cgraph_edge_duplicated_hook): New variable.
551 (first_cgraph_node_duplicated_hook): New variable.
552 (cgraph_add_edge_removal_hook): New function.
553 (cgraph_remove_edge_removal_hook): New function.
554 (cgraph_call_edge_removal_hooks): New function.
555 (cgraph_add_node_removal_hook): New function.
556 (cgraph_remove_node_removal_hook): New function.
557 (cgraph_call_node_removal_hooks): New function.
558 (cgraph_add_edge_duplication_hook): New function.
559 (cgraph_remove_edge_duplication_hook): New function.
560 (cgraph_call_edge_duplication_hooks): New function.
561 (cgraph_add_node_duplication_hook): New function.
562 (cgraph_remove_node_duplication_hook): New function.
563 (cgraph_call_node_duplication_hooks): New function.
564 (cgraph_create_edge): Assign to edge uid.
565 (cgraph_remove_edge): Call edge removal hooks.
566 (cgraph_node_remove_callees): Call edge removal hooks.
567 (cgraph_node_remove_callers): Call edge removal hooks.
568 (cgraph_remove_node): Call node removal hooks.
569 (cgraph_clone_edge): Call edge duplication hooks.
570 (cgraph_clone_node): Call node duplication hooks.
572 * cgraph.h (cgraph_edge): New field uid.
573 (cgraph_edge_hook): New type.
574 (cgraph_node_hook): New type.
575 (cgraph_2edge_hook): New type.
576 (cgraph_2node_hook): New type.
578 2008-07-07 Andreas Tobler <a.tobler@schweiz.org>
580 * config.in: Regenerate.
582 2008-07-07 Vladimir Prus <vladimir@codesourcery.com>
584 * gcc.c (print_sysroot): New.
585 (option_map, display_help, process_command): Handle the
586 -print-sysroot option.
587 (main): Print the sysroot if requested.
588 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
590 2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
593 * unwind-pe.h (size_of_encoded_value): add attribute unused.
595 2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
597 * function.c (assign_parm_remove_parallels): Check mode of
599 (assign_parm_setup_block_p): Also check mode of entry_parm.
601 2008-07-07 Richard Guenther <rguenther@suse.de>
603 * tree-ssa-structalias.h (set_used_smts): Remove.
604 * tree-ssa-structalias.c (used_smts): Likewise.
605 (set_used_smts): Likewise.
606 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
607 call to set_used_smts.
609 2008-07-07 Richard Guenther <rguenther@suse.de>
611 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
612 (new_var_info): Set it to false.
613 (solution_set_add): Correctly handle pointers outside a var and
615 (type_safe): Treat variables with is_full_var properly.
616 (do_sd_constraint): Likewise.
617 (do_ds_constraint): Likewise.
618 (process_constraint): Remove zeroing offset for !use_field_sensitive.
619 (get_constraint_for_ptr_offset): New function.
620 (get_constraint_for_component_ref): For addresses at least include
621 the last field of the variable. Handle is_full_vars properly.
622 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
623 (handle_ptr_arith): Remove.
624 (find_func_aliases): Simplify assignment handling.
625 (create_function_info_for): For parameter and result varinfos set
627 (create_variable_info_for): Set is_full_var flag whenever we
628 just created a single varinfo for a decl.
629 (init_alias_vars): Initialize use_field_sensitive from
630 max-fields-for-field-sensitive parameter.
632 2008-07-07 Richard Guenther <rguenther@suse.de>
634 PR tree-optimization/36713
635 * tree-flow-inline.h (is_call_used): New function.
636 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
637 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
638 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
640 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
642 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
644 2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
646 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
648 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
649 Nathan Sidwell <nathan@codesourcery.com>
651 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
652 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
654 * config/m68k/t-linux: New.
655 * doc/install.texi: Document m68k-*-linux is now multilibbed by
658 2008-07-07 Nathan Sidwell <nathan@codesourcery.com>
660 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
661 * config/m68k/m68k-devices.def: Remove multilibs that only differ
664 2008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
666 * gcc.c (execute): Fix -Wc++-compat warning.
668 2008-07-06 H.J. Lu <hongjiu.lu@intel.com>
671 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
672 constant for little endian.
674 2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
676 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
677 mips_base_mips16 instead of TARGET_MIPS16.
678 (mips_base_mips16): Declare.
679 * config/mips/mips.c (mips_base_mips16): Make global.
680 (was_mips16_p): Remove GTY marker.
681 (was_mips16_pch_p): New variable.
682 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
683 (mips_override_options): Force to non-MIPS16 mode initially.
684 Do not complain about MIPS16 PIC incompatibilities here.
685 Only allow -mgpopt if -mexplicit-relocs is in force for
688 2008-07-06 Andreas Tobler <a.tobler@schweiz.org>
690 * configure.ac: Check for caddr_t, define to char * if not defined.
691 * configure: Regenerate.
692 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
693 (mmap_gt_pch_use_address): Likewise.
694 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
696 2008-07-06 Richard Guenther <rguenther@suse.de>
698 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
699 (new_var_info): Deal with it.
700 (solution_set_add): Likewise.
701 (bitpos_of_field): Make signed, fix.
702 (struct fieldoff): Remove type and decl fields. Make size field
703 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
705 (fieldoff_compare): Deal with it.
706 (push_fields_onto_fieldstack): Remove has_union argument, glob
707 adjacent non-pointer fields together.
708 (create_function_info_for): Do not set has_union.
709 (create_variable_info_for): Simplify.
711 2008-07-06 Kai Tietz <kai.tietz@onevision.com>
713 * config.gcc (extra_headers): Add cross-stdarg.h for target
714 x86_64-*-* and i?86-*-*.
715 * config/i386/cross-stdarg.h: New.
716 * builtins.c (std_fn_abi_va_list): New.
717 (std_canonical_va_list_type): New.
718 (stabilize_va_list): Replace va_list_type_node use by
719 mtarget.canonical_va_list_type.
720 (gimplify_va_arg_expr): Likewise.
721 (expand_builtin_va_copy): Replace va_list_type_node use by
722 mtarget.fn_abi_va_list.
723 * tree-sra.c (is_va_list_type): New helper.
724 (decl_can_be_decomposed_p): Replace
725 va_list_type_node use by is_va_list_type.
726 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
727 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
728 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
729 * config/i386/i386-protos.h (ix86_get_valist_type): New.
730 (ix86_enum_va_list): New.
731 * config/i386/i386.c (sysv_va_list_type_node): New.
732 (ms_va_list_type_node): New.
733 (ix86_function_type_abi): Remove sorry.
734 (ix86_build_builtin_va_list_abi): New.
735 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
737 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
738 (ix86_init_builtins_va_builtins_abi): New.
739 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
741 (ix86_handle_abi_attribute): New.
742 (attribute_spec): Add sysv_abi and ms_abi.
743 (ix86_fn_abi_va_list): New.
744 (ix86_canonical_va_list_type): New.
745 (ix86_enum_va_list): New.
746 (TARGET_FN_ABI_VA_LIST): New.
747 (TARGET_CANONICAL_VA_LIST_TYPE): New.
748 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
749 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
750 (TARGET_CANONICAL_VA_LIST_TYPE): New.
751 (TARGET_ENUM_VA_LIST): New.
752 * expr.h (std_fn_abi_va_list): New.
753 (std_canonical_va_list_type): New.
754 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
755 (TARGET_CANONICAL_VA_LIST_TYPE): New.
756 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
757 TARGET_CANONICAL_VA_LIST_TYPE.
758 * target.h (struct gcc_target): Add fn_abi_va_list hook
759 and canonical_va_list_type hook.
761 2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
763 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
764 integral and pointer types.
766 2008-07-04 Roger Sayle <roger@eyesopen.com>
768 * config/rs6000/host-darwin.c (darwin_rs6000_extra_siganls): Cast
769 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
771 2008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
774 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
777 2008-07-04 Jakub Jelinek <jakub@redhat.com>
779 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
780 build_gimple_modify_stmt.
781 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
782 gimple operand. Use fold_build* instead of build*.
784 2008-07-04 Richard Guenther <rguenther@suse.de>
786 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
787 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
788 properly to compute the reachability set if we do field-sensitive PTA.
789 * invoke.texi (max-fields-for-field-sensitive): Document default.
790 * opts.c (decode_options): Set max-fields-for-field-sensitive to
791 100 for optimize >= 2.
793 2008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
795 * ggc-zone.c (lookup_page_table_if_allocated,
796 set_page_table_entry, zone_find_object_size, alloc_small_page,
797 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
798 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
799 -Wc++-compat and/or -Wcast-qual warnings.
801 2008-07-04 Alan Modra <amodra@bigpond.net.au>
804 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
805 pic_offset_table_rtx to be marked as used here.
806 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
807 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
808 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
809 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
812 2008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
814 * alloc-pool.c (hash_descriptor, eq_descriptor,
815 alloc_pool_descriptor): Fix -Wc++-compat warnings.
816 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
818 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
819 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
820 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics):
822 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
825 2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
827 * tree-flow.h (loop_only_exit_p): Declare.
828 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
829 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
830 the number of iterations if it is constant. Otherwise, if this is the
831 only possible exit of the loop, use the conservative estimate on the
832 number of iterations of the entire loop if available.
834 2008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
836 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
837 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
838 Add synchronization functions.
839 * config/sync.c: New file.
840 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
841 (LIBGCC_SYNC_CFLAGS): Likewise.
843 2008-07-03 Uros Bizjak <ubizjak@gmail.com>
846 * config/i386/i386.md (mode): Add TF to "mode" attribute.
847 (*pushtf_sse): New insn pattern.
848 (pushtf splitters): New splitters.
850 2008-07-03 Michael Meissner <gnu@the-meissners.org>
853 * predict.c (build_predict_expr): Use void_type_node for the tree
854 type, instead of NULL_TREE.
856 2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
858 * config/i386/i386.c (contains_aligned_value_p): Return true
860 (ix86_data_alignment): Align TCmode to 128bits.
861 (ix86_local_alignment): Likewise.
863 2008-07-03 Andrew Haley <aph@redhat.com>
866 * vec.h (VEC_TA): New.
867 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
868 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
869 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
870 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
871 (C_COMMON_FIXED_TYPES): Remove first arg.
872 (C_COMMON_FIXED_MODE_TYPES): Likewise.
873 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
874 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
875 not to use empty macro arguments.
877 2008-07-02 Joseph Myers <joseph@codesourcery.com>
879 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
880 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
881 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
882 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
883 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
884 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
885 config/ia64/crtn.asm, config/m68hc11/larith.asm,
886 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
887 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
888 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
889 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
890 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
891 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
892 config/rs6000/e500crtres64gpr.asm,
893 config/rs6000/e500crtres64gprctr.asm,
894 config/rs6000/e500crtrest32gpr.asm,
895 config/rs6000/e500crtrest64gpr.asm,
896 config/rs6000/e500crtresx32gpr.asm,
897 config/rs6000/e500crtresx64gpr.asm,
898 config/rs6000/e500crtsav32gpr.asm,
899 config/rs6000/e500crtsav64gpr.asm,
900 config/rs6000/e500crtsav64gprctr.asm,
901 config/rs6000/e500crtsavg32gpr.asm,
902 config/rs6000/e500crtsavg64gpr.asm,
903 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
904 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
905 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
906 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
907 config/sparc/sol2-cn.asm: Remove .file directives.
909 2008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
911 * resource.c (mark_referenced_resources): Look inside
912 UNSPEC_VOLATILEs and ASM_INPUTs.
914 2008-07-02 Ian Lance Taylor <iant@google.com>
916 * rtlanal.c (add_reg_note): New function.
917 * rtl.h (add_reg_note): Declare.
918 * auto-inc-dec.c (attempt_change): Use add_reg_note.
919 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
920 * builtins.c (expand_builtin_longjmp): Likewise.
921 (expand_builtin_nonlocal_goto): Likewise.
922 * calls.c (emit_call_1, expand_call): Likewise.
923 * cfgexpand.c (add_reg_br_prob_note): Likewise.
924 * cfglayout.c (fixup_reorder_chain): Likewise.
925 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
926 (commit_one_edge_insertion): Likewise.
927 * combine.c (move_deaths, distribute_notes): Likewise.
928 * df-problems.c (df_set_note): Likewise.
929 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
930 (set_unique_reg_note): Likewise.
931 (emit_copy_of_insn_after): Likewise.
932 * expr.c (expand_expr_real): Likewise.
933 * gcse.c (add_label_notes): Likewise.
934 * haifa-sched.c (create_check_block_twin): Likewise.
935 * jump.c (mark_jump_label_1): Likewise.
936 * loop-doloop.c (add_test, doloop_modify): Likewise.
937 * loop-unswitch.c (compare_and_jump_seq): Likewise.
938 * lower-subreg.c (move_eh_region_note): Likewise.
939 * optabs.c (emit_libcall_block): Likewise.
940 * predict.c (predict_insn): Likewise.
941 (combine_predictions_for_insn): Likewise.
942 * recog.c (peephole2_optimize): Likewise.
943 * regmove.c (try_auto_increment): Likewise.
944 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
945 * reload.c (find_reloads): Likewise.
946 * reload1.c (fixup_eh_region_note): Likewise.
947 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
948 * reorg.c (delete_prior_computation): Likewise.
949 (delete_computation, dbr_schedule): Likewise.
950 * config/pa/pa.c (legitimize_pic_address): Likewise.
951 * config/sh/sh.c (sh_reorg): Likewise.
953 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
956 * config/libgcc-glibc.ver: Add %exclude.
957 * config/m32r/libgcc-glibc.ver: Likwise.
958 * config/s390/libgcc-glibc.ver: Likwise.
959 * config/sh/libgcc-glibc.ver: Likwise.
960 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
962 * config/i386/libgcc-glibc.ver: New.
964 * config/i386/libgcc-x86_64-glibc.ver: Removed.
966 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
968 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
969 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
970 i[34567]86-*-linux*, x86_64-*-linux*. Add
971 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
972 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
973 x86_64-*-linux*. Add i386/t-linux to tmake_file for
974 i[34567]86-*-linux*, x86_64-*-linux*.
976 * libgcc-std.ver: Add empty GCC_4.4.0.
978 * mkmap-symver.awk: Support multiple versions per symbol.
980 * config/i386/i386.c (ix86_init_builtins): Always define
981 __builtin_fabsq and __builtin_copysignq with fallbacks.
982 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
983 and __builtin_copysignq if SSE2 isn't available.
985 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
986 (LIBGCC2_TF_CEXT): Likwise.
989 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
991 * config/i386/sfp-machine.h: Moved to libgcc.
993 * config/i386/sfp-machine.h: New.
994 * config/i386/t-linux: Likwise.
996 * config/i386/t-darwin: Remove softfp_wrap_start and
998 * config/i386/t-darwin64: Likewise.
1000 * config/i386/t-fprules-softfp64: Renamed to ...
1001 * config/i386/t-fprules-softfp: This.
1003 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
1004 and softfp_wrap_end.
1006 2008-07-02 Jason Merrill <jason@redhat.com>
1008 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
1010 * tree.c (ctor_to_list): New fn.
1011 * tree.h: Declare it.
1012 (CONSTRUCTOR_ELT): New macro.
1013 (CONSTRUCTOR_NELTS): New macro.
1015 2008-07-02 Richard Guenther <rguenther@suse.de>
1017 * tree-ssa-structalias.c (struct variable_info): Reorder
1018 to fill padding on 64bit hosts. Make collapsed_to an int.
1019 (get_varinfo_fc): Deal with that.
1020 (new_var_info): Likewise.
1021 (collapse_rest_of_var): Likewise.
1023 2008-07-02 Joshua Sumali <jsumali@redhat.com>
1025 * doc/install.texi (--enable-java-home): Document.
1026 (--enable-aot-compile-rpm): Likewise.
1027 (--with-arch-directory): Likewise.
1028 (--with-os-directory): Likewise.
1029 (--with-origin-name): Likewise.
1030 (--with-arch-suffix): Likewise.
1031 (--with-jvm-root-dir): Likewise.
1032 (--with-jvm-jar-dir): Likewise.
1033 (--with-python-dir): Likewise.
1035 2008-07-02 Richard Guenther <rguenther@suse.de>
1037 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
1038 from decls explicitly. Merge operand checking from tuples.
1040 2008-07-02 Martin Jambor <mjambor@suse.cz>
1042 * tree-switch-conversion.c: Included timevar.h which I forgot before.
1044 2008-07-02 Martin Jambor <mjambor@suse.cz>
1046 * tree-switch-conversion.c: Included timevar.h
1047 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
1049 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
1051 2008-07-02 Martin Jambor <mjambor@suse.cz>
1053 * tree-switch-conversion.c: Corrected various comments and
1055 (build_constructors): Fixed minor formatting mistakes.
1057 * invoke.texi (Optimize Options): Corrected the
1058 switch-conversion-max-branch-ratio parameter.
1060 2008-07-02 Mark Shinwell <shinwell@codesourcery.com>
1062 * final.c (asm_insn_count): Return zero for an empty asm body.
1064 2008-07-02 Richard Guenther <rguenther@suse.de>
1066 * bitmap.h (bitmap_set_bit): Return bool.
1067 (bitmap_clear_bit): Likewise.
1068 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
1069 write to the bitmap if it would.
1070 (bitmap_clear_bit): Likewise.
1071 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
1072 bitmap_set_bit return value.
1073 (add_pred_graph_edge): Likewise.
1074 (add_graph_edge): Likewise.
1075 (do_sd_constraint): Likewise.
1076 (do_ds_constraint): Likewise.
1078 2008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1080 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
1081 Fix -Wc++-compat and/or -Wcast-qual warnings.
1082 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
1083 gen_regparm_prefix): Likewise.
1084 * vmsdbgout.c (write_modbeg, lookup_filename,
1085 vmsdbgout_source_line, vmsdbgout_init): Likewise.
1087 2008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
1089 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
1090 defaults.h definition apply.
1092 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1094 * function.c (assign_parm_remove_parallels): New.
1095 (assign_parm_setup_block_p): Do not return true for non-BLKmode
1097 (assign_parm_setup_block): Do not handle them.
1098 (assign_parm_setup_reg, assign_parm_setup_stack): Call
1099 assign_parm_remove_parallels.
1101 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1103 * c-typeck.c (convert_for_assignment): Use
1104 vector_targets_convertible_p.
1105 * c-common.c (vector_targets_convertible_p): New.
1106 * c-common.h (vector_targets_convertible_p): New prototype.
1107 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
1108 opaque_p_V2SI_type_node.
1110 2008-07-01 Steve Ellcey <sje@cup.hp.com>
1112 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
1115 2008-07-01 Uros Bizjak <ubizjak@gmail.com>
1117 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
1118 TFmode constants via two element DImode vector for hosts with
1119 HOST_BITS_PER_WIDE_INT < 64.
1120 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
1121 also for HOST_BITS_PER_WIDE_INT < 64.
1123 2008-07-01 Richard Guenther <rguenther@suse.de>
1125 PR tree-optimization/36666
1126 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
1127 (get_constraint_exp_from_ssa_var): Split into ...
1128 (get_constraint_exp_for_temp): ... this ...
1129 (get_constraint_for_ssa_var): ... and that.
1130 Return constraint expressions for all touched sub-fields
1131 if the results address is not taken.
1132 (process_constraint): Remove assertion that aggregate
1133 assignments do not happen at this place.
1134 (get_constraint_for_component_ref): Add address_p argument.
1135 Return constraint expressions for all touched sub-fields
1136 if the results address is not taken.
1137 (do_deref): Use get_constraint_exp_for_temp.
1138 (get_constraint_for_1): Rename from ...
1139 (get_constraint_for): ... this. Add the old function as wrapper.
1140 (do_structure_copy): Use get_constraint_for_1.
1142 2008-07-01 Martin Jambor <mjambor@suse.cz>
1144 * Makefile.in (tree-switch-conversion.o): Add.
1145 (OBJS-common): Add tree-swtch-conversion.o.
1146 * passes.c (init_optimization_passes): Add pass_convert_switch.
1147 * tree-pass.h: (pass_convert_switch): Add.
1148 * tree-switch-conversion.c: New file.
1149 * gcc.dg/tree-ssa/cswtch.c: New testcase.
1150 * common.opt (ftree-cswtch): New option.
1151 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1152 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1153 * opts.c (decode_options): Set flag_tree_switch_conversion when
1154 optimization level is >= 2.
1155 * doc/invoke.texi (Optimize Options): Added description of
1156 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
1158 2008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1160 * config/darwin-driver.c (darwin_default_min_version): Fix
1161 -Wc++-compat warnings.
1163 2008-06-30 Uros Bizjak <ubizjak@gmail.com>
1165 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
1168 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1170 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
1172 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1174 PR rtl-optimization/34744
1175 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
1176 (df_scan_free_internal): Free data structures not
1177 allocated in storage pools.
1178 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
1179 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
1180 df_scan_free_mws_vec.
1181 * dse.c (dse_step6): Free offset_map_p and offset_map_n
1184 2008-06-30 H.J. Lu <hongjiu.lu@intel.com>
1186 * config/i386/i386.c (contains_aligned_value_p): Return true
1188 (ix86_function_arg_boundary): Return its natural boundary
1190 (return_in_memory_32): Don't check TDmode.
1191 (ix86_split_to_parts): Support splitting into 4 parts and
1192 support TFmode for 32bit target.
1193 (ix86_split_long_move): Support splitting into 4 parts.
1194 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
1196 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
1197 (ix86_init_builtins): Here.
1198 (ix86_scalar_mode_supported_p): Always return true for TFmode.
1199 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
1200 'q' and 'w', respectively.
1202 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
1204 (movtf_internal): Likewise.
1205 (<code>tf2): Likewise.
1206 (*absnegtf2_sse): Likewise.
1207 (copysign<mode>3): Likewise.
1208 (copysign<mode>3_const): Likewise.
1209 (copysign<mode>3_var): Likewise.
1210 (define_split UNSPEC_COPYSIGN): Likewise.
1211 * config/i386/sse.md (*nandtf3): Likewise.
1212 (<code>tf3): Likewise.
1213 (*<code>tf3): Likewise.
1215 2008-06-30 Joey Ye <joey.ye@intel.com>
1216 H.J. Lu <hongjiu.lu@intel.com>
1218 * global.c (compute_regsets): Set frame_pointer_needed here.
1219 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
1221 2008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1223 * doc/install.texi (specific): Expand Windows build notes.
1225 2008-06-30 Ira Rosen <irar@il.ibm.com>
1227 PR tree-optimization/36648
1228 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
1229 number of prolog iterations by step. Fix the comment.
1231 2008-06-30 Richard Guenther <rguenther@suse.de>
1234 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
1235 handle calls from ECF_MALLOC functions.
1236 (handle_pure_call): ECF_MALLOC functions do not return
1238 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
1240 2008-06-29 Andreas Schwab <schwab@suse.de>
1242 * config/m68k/m68k.c (print_operand): Always print a float
1244 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
1245 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
1248 * config/rs6000/x-linux64: Remove never used file.
1250 2008-06-29 Richard Guenther <rguenther@suse.de>
1252 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
1254 (struct alias_info): Move ...
1255 * tree-ssa-alias.c: ... here.
1256 (update_alias_info): Declare.
1257 (compute_may_aliases): Call it.
1258 (update_alias_info): New function.
1259 * tree-ssa-structalias.c (update_alias_info): Move ...
1260 * tree-ssa-alias.c (update_alias_info_1): ... here.
1261 * tree-ssa-structalias.c (process_constraint_1): Remove
1262 unused from_call argument. Rename to ...
1263 (process_constraint): ... this. Delete old wrapper.
1264 (make_constraint_to): Adjust callers.
1265 (handle_const_call): Likewise.
1266 (handle_pure_call): Likewise.
1267 (init_base_vars): Likewise.
1268 (handle_lhs_call): Likewise. Remove unnecessary constraint.
1269 (find_func_aliases): We don't need structure copies for
1271 (make_constraint_from_anything): Remove.
1272 (create_variable_info_for): For globals make constraints
1273 from escaped, not from anything.
1274 (compute_points_to_sets): Do not call update_alias_info.
1275 (ipa_pta_execute): Use make_constraint_from.
1277 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1279 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
1280 (bitmap.o-warn, dominance.o-warn): New.
1281 * configure.ac (cxx_compat_warn): Delete.
1282 (loose_warn): Add -Wcast-qual and -Wc++-compat.
1283 * system.h: Remove #pragma diagnostic for -Wcast-qual and
1285 * configure: Regenerate.
1287 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
1290 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1292 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
1293 * df-scan.c (df_notes_rescan): Likewise.
1294 * ggc-page.c (set_page_table_entry): Likewise.
1295 * intl.c (gcc_gettext_width): Likewise.
1296 * varasm.c (get_unnamed_section, get_noswitch_section,
1297 get_section): Likewise.
1299 2008-06-28 Andrew Jenner <andrew@codesourcery.com>
1301 * regrename.c (build_def_use): Don't copy RTX.
1303 2008-06-28 Sandra Loosemore <sandra@codesourcery.com>
1305 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
1306 (Type Attributes): Fix nesting of @table and @subsection. Adjust
1307 punctuation. Use @ref instead of @xref.
1308 (Function Names): Remove stray @display/@end display.
1309 (C++ Attributes): Use @ref instead of @xref.
1310 (Deprecated Features): Fix punctuation around @xref.
1311 (Backwards Compatibility): Likewise.
1312 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
1314 2008-06-28 Joseph Myers <joseph@codesourcery.com>
1316 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
1317 constants for E500 double.
1319 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1321 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
1322 element type of const_vector.
1324 2008-06-28 Uros Bizjak <ubizjak@gmail.com>
1326 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
1327 Remove FLAGS_REG clobber from expander pattern.
1328 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
1329 (anddi3, andsi3, andhi3, andqi3): Ditto.
1330 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
1331 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
1332 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
1333 (ashlsi3, ashlhi3, ashlqi3): Ditto.
1334 (ashrsi3, ashrhi3, ashrqi3): Ditto.
1335 (lshrsi3, lshrhi3, lshrqi3): Ditto.
1336 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
1337 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
1339 2008-06-28 Richard Guenther <rguenther@suse.de>
1341 * tree-ssa-structalias.c (callused_id, var_callused,
1342 callused_tree): Add.
1343 (handle_pure_call): New function.
1344 (find_func_aliases): Call it.
1345 (find_what_p_points_to): Handle the call-used set.
1346 (clobber_what_escaped): Likewise.
1347 (compute_call_used_vars): New function.
1348 (init_base_vars): Init the call-used variable.
1349 (do_sd_constraint): Do not propagate the solution from CALLUSED
1350 but use CALLUSED as a placeholder.
1351 (solve_graph): Likewise.
1352 * tree-flow-inline.h (gimple_call_used_vars): New function.
1353 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
1354 (compute_call_used_vars): Declare.
1355 * tree-ssa-alias.c (set_initial_properties): Call
1356 compute_call_used_vars.
1357 (reset_alias_info): Clear call-used variables.
1358 (add_call_clobber_ops): Assert we are not called for const/pure
1359 functions. Remove handling of them.
1360 (add_call_read_ops): Handle pure functions by adding the
1361 call-used set of variables as VUSEs.
1362 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
1363 (delete_tree_ssa): Free it.
1364 * tree-dfa.c (remove_referenced_var): Clear the var from the
1367 2008-06-28 Kai Tietz <kai.tietz@onevision.com>
1369 * tree.c (build_varargs_function_type_list): New.
1370 (build_function_type_list_1): New.
1371 (build_function_type_list): Use build_function_type_list_1.
1372 * tree.h (build_varargs_function_type_list): New.
1374 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1377 * config/spu/spu.c (spu_builtin_splats): Do not generate
1378 invalid CONST_VECTOR expressions.
1379 (spu_expand_vector_init): Likewise.
1381 2008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
1383 * optabs.c (libfunc_decls): New variable.
1384 (libfunc_decl_hash, libfunc_decl_eq): New functions.
1385 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
1386 for the same function twice.
1388 2008-06-27 Uros Bizjak <ubizjak@gmail.com>
1390 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
1391 ix86_expand_binary_operator directly.
1392 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
1394 (*ashrti3_1): Ditto.
1395 (*lshrti3_1): Ditto.
1396 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
1397 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
1398 using only one splitter. Conditionaly execute splitter before or
1399 after peephole2 pass.
1400 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
1401 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
1402 Use only one alternative in asm template.
1403 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
1405 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
1406 "J" operand constraint for operand 2.
1407 (*ashldi3_cconly_rex64): Ditto.
1408 (*ashrdi3_cmp_rex64): Ditto.
1409 (*ashrdi3_cconly_rex64): Ditto.
1410 (*lshrdi3_cmp_rex64): Ditto.
1411 (*lshrdi3_cconly_rex64): Ditto.
1412 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
1413 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
1414 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
1417 2008-06-27 Jakub Jelinek <jakub@redhat.com>
1419 * gimplify.c (omp_is_private): Don't return true if decl is not
1420 already private on #pragma omp for or #pragma omp parallel for.
1423 * tree-cfg.c (struct move_stmt_d): Replace block field with
1424 orig_block and new_block fields.
1425 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
1426 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
1427 (move_block_to_fn): Replace vars_map and new_label_map arguments
1428 with struct move_stmt_d pointer.
1429 (replace_block_vars_by_duplicates): New function.
1430 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
1431 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
1432 all subblocks of ORIG_BLOCK to the new function. Call
1433 replace_block_vars_by_duplicates.
1434 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
1435 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
1436 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
1437 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
1438 (expand_omp): Temporarily set input_location to the location of
1439 region's controlling stmt.
1440 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
1441 BIND_EXPR, push ctx->block_vars and gimplification vars into
1442 the BIND_EXPR and its block's BLOCK_VARS instead of directly
1444 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
1445 there are any BLOCK_VARS.
1446 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
1447 OMP_PARALLEL or OMP_TASK stmt.
1448 (lower_omp): Save and restore input_location around the lower_omp_1
1451 2008-06-27 Richard Guenther <rguenther@suse.de>
1453 PR tree-optimization/36400
1454 PR tree-optimization/36373
1455 PR tree-optimization/36344
1456 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
1457 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
1458 (update_alias_info): Remove call clobbering code.
1459 (make_constraint_to): New helper function.
1460 (make_escape_constraint): Likewise.
1461 (handle_rhs_call): Use it on all pointer containing arguments.
1462 Also mark the static chain escaped.
1463 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
1464 instead of ANYTHING.
1465 (make_constraint_from): New helper split out from ...
1466 (make_constraint_from_anything): ... here.
1467 (find_func_aliases): Add constraints for escape sites.
1468 (intra_create_variable_infos): Make constraints from NONLOCAL
1470 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
1472 (clobber_what_p_points_to): Remove.
1473 (clobber_what_escaped): New function.
1474 (init_base_vars): Init NONLOCAL and ESCAPED.
1475 (do_sd_constraint): Do not propagate the solution from ESCAPED
1476 but use ESCAPED as a placeholder.
1477 (solve_graph): Likewise.
1478 * tree-flow.h (clobber_what_p_points_to): Remove.
1479 (clobber_what_escaped): Declare.
1480 * tree-ssa-alias.c (set_initial_properties): Call it.
1481 Remove code clobbering escaped pointers.
1483 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1485 * function.c (allocate_struct_function): Only allocate a unique
1486 funcdef_no if the decl is nonzero.
1488 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1490 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
1491 * config/mips/mips.c (mips_split_const_insns): New function.
1492 * config/mips/mips.md (move_type): New attribute.
1493 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
1494 (dword_mode): New attribute.
1495 (type): Avoid long line. Map "move_type"s to "type"s,
1496 choosing "multi" for doubleword moves if appropriate.
1497 Swap MTC/MFC comments to match their declaration order.
1498 (extended_mips16): Default to "yes" if "move_type" is "sll0",
1499 "type" is "branch" or "jal" is "direct".
1500 (length): Handle "extended_mips16" first. Make the default
1501 "0" for "ghost" instructions. Set the length from "move_type".
1502 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
1503 of "type", with "sll0" for the register alternative. Remove the
1504 "extended_mips16" attribute.
1505 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
1506 of "type", with "shift_shift" for the register alternative.
1507 Remove the "length" attribute.
1508 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
1509 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
1510 of "type", with "andi" for the register alternative.
1511 (*zero_extendqihi2): Likewise.
1512 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
1513 of "andi" instead of a "type" of "arith".
1514 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
1516 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
1517 (mov_<store>r, *mov<mode>_ra): Likewise.
1518 (extendsidi2): Use "move_type" instead of "type", with "move"
1519 for the register alternative.
1520 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
1521 of "type", with "signext" for the register alternative.
1522 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
1523 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
1524 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
1525 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
1526 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
1527 (unnamed branch insn): Likewise.
1528 (*movdi_gp32_fp64): Fold into...
1529 (*movdi_32bit): ...here.
1530 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
1531 (*movdf_hardfloat): ...this new pattern.
1532 (*movdf_softfloat): Remove redundant FPR alternatives.
1533 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
1534 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
1535 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
1536 the "move" attribute.
1537 (*movdi_32bit): Use "move_type" instead of "type" and remove the
1538 "length" attribute. Use "fpload" and "fpstore" instead of "load"
1539 and "store" for COP loads and stores.
1540 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
1541 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
1542 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
1543 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
1544 (*movtf_mips16, *movv2sf): Likewise.
1545 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
1546 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1547 (mfhc1<mode>): Use "move_type" instead of "move".
1548 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
1549 (loadgp_blockage): Remove the "length" attribute.
1550 (blockage, set_got_version, update_got_version): Likewise.
1551 (call_internal): Remove the "extended_mips16" attribute.
1552 (call_value_internal, call_value_multiple_internal): Likewise.
1553 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
1555 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
1556 the "length" attribute.
1558 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1560 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
1561 -Wcast-qual warnings.
1562 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
1563 handle_pragma_pop_macro): Likewise.
1564 * collect2.c (resolve_lib_name): Likewise.
1565 * config/arc/arc.c (arc_init): Likewise.
1566 * config/arm/arm.c (neon_builtin_compare,
1567 locate_neon_builtin_icode): Likewise.
1568 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
1569 * config/bfin/bfin.c (bfin_init_machine_status,
1570 bfin_optimize_loop): Likewise.
1571 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1572 * config/cris/cris.c (cris_init_expanders): Likewise.
1573 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
1574 * config/darwin.c (machopic_indirection_eq,
1575 machopic_indirection_name, machopic_output_indirection): Likewise.
1576 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
1577 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
1578 frv_optimize_membar): Likewise.
1579 * config/i386/cygwin.h (mingw_scan,
1580 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
1581 * config/i386/cygwin1.c (mingw_scan): Likewise.
1582 * config/i386/i386.c (machopic_output_stub): Likewise.
1583 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
1584 i386_pe_unique_section): Likewise.
1585 * config/ia64/ia64.c (ia64_init_machine_status,
1586 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
1588 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
1589 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
1590 * config/m68k/m68k.c (m68k_handle_option,
1591 m68k_sched_md_init_global): Likewise.
1592 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
1593 mcore_unique_section): Likewise.
1594 * config/mips/mips.c (mips_block_move_straight,
1595 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
1597 * config/mmix/mmix.c (mmix_init_machine_status,
1598 mmix_encode_section_info): Likewise.
1599 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
1600 * config/rs6000/rs6000.c (rs6000_init_machine_status,
1601 print_operand_address, output_toc, redefine_groups,
1602 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
1603 * config/s390/s390.c (s390_init_machine_status): Likewise.
1604 * config/score/score.c (score_block_move_straight,
1605 score_block_move_loop_body): Likewise.
1606 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1607 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1608 * emit-rtl.c (find_auto_inc): Likewise.
1609 * gcc.c (translate_options, process_command): Likewise.
1610 * reorg.c (dbr_schedule): Likewise.
1611 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
1612 * xcoffout.c (xcoffout_declare_function): Likewise.
1614 2008-06-27 Daniel Berlin <dberlin@dberlin.org>
1616 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
1617 ipa-pta working again.
1619 2008-06-27 David Edelsohn <edelsohn@gnu.org>
1621 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
1624 2008-06-27 Edmar Wienskoski <edmar@freescale.com>
1626 * config.gcc (powerpc*-*-*): Add new core e500mc.
1627 * config/rs6000/e500mc.md: New file.
1628 * config/rs6000/rs6000.c (processor_costs): Add new costs for
1630 (rs6000_override_options): Add e500mc case to
1631 processor_target_table. Altivec and Spe options not allowed
1632 with e500mc. Add isel instruction to e500mc by
1633 default. Initialize rs6000_cost for e500mc.
1634 (rs6000_issue_rate): Set issue rate for e500mc.
1635 * config/rs6000/rs6000.h (processor_type): Add
1636 PROCESSOR_PPCE500MC.
1637 (ASM_CPU_SPEC): Add e500mc.
1638 Set TARGET_ISEL to rs6000_isel.
1639 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
1640 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
1641 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
1643 * doc/invoke.texi: Add e500mc to list of cpus.
1645 2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1648 * c-lex.c (lex_charconst): Initialize unsignedp.
1650 2008-06-27 Olivier Hainque <hainque@adacore.com>
1652 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
1653 documented assumptions.
1655 2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
1657 * dwarf2out.c: Remove trailing white spaces. Break long line
1660 2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
1662 * libfuncs.h (LTI_synchronize): New libfunc_index.
1663 (synchronize_libfunc): Declare.
1664 * builtins.c (expand_builtin_synchronize): Consider using
1665 synchronize_libfunc before falling back on an asm blockage.
1666 * config/mips/mips.c: Include libfuncs.h
1667 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
1669 2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
1671 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
1672 parameter. Copy stack_reg to r11 where appropriate.
1673 (no_global_regs_above): Add gpr parameter.
1674 (rs6000_stack_info): Only add padding for SPE save area if we
1675 are saving SPE GPRs and CR.
1676 (saveres_routine_syms): New variable.
1677 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
1679 (rs6000_savres_routine_sym): New function.
1680 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
1682 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
1683 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
1684 Tweak FPR out-of-line saving.
1685 (rs6000_make_savres_rtx): New function.
1686 (rs6000_use_multiple_p): New function.
1687 (rs6000_savres_strategy): New function.
1688 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
1689 out-of-line if appropriate.
1690 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
1691 if we are optimizing for size.
1692 (GP_SAVE_INLINE): Define.
1693 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
1694 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
1695 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
1696 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
1697 (*save_fpregs_<mode>): Add use of r11.
1698 (*restore_gpregs_<mode>): New insn.
1699 (*return_and_restore_gpregs_<mode>): New insn.
1700 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
1702 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
1703 (*restore_gpregs_spe): New insn.
1704 (*return_and_restore_gpregs_spe): New insn.
1705 * config/rs6000/predicates.md (save_world_operation): Fix check.
1707 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
1709 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
1710 this point, so assert that.
1712 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
1714 * cfganal.c: Include vec.h and vecprim.h.
1715 (compute_idf): Import from...
1716 * tree-into-ssa (compute_idf): ...here.
1717 * basic-block.h (compute_idf): Export.
1719 2008-06-26 Joseph Myers <joseph@codesourcery.com>
1721 * c-decl.c (merge_decls): Use !current_function_decl to check for
1722 extern declaration of C99 inline function being at file scope.
1724 2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
1726 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
1728 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1730 * alias.c (record_alias_subset, init_alias_analysis): Fix
1731 -Wc++-compat and/or -Wcast-qual warnings.
1732 * attribs.c (lookup_attribute_spec): Likewise.
1733 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
1734 copy_bb, connect_traces,
1735 find_rarely_executed_basic_blocks_and_cr): Likewise.
1736 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
1737 note_btr_set, migrate_btr_defs): Likewise.
1738 * builtins.c (result_vector, expand_builtin_memcpy,
1739 expand_builtin_mempcpy_args, expand_builtin_strncpy,
1740 builtin_memset_read_str, expand_builtin_printf,
1741 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
1743 * caller-save.c (mark_set_regs): Likewise.
1744 * calls.c (expand_call, emit_library_call_value_1): Likewise.
1745 * cgraph.c (cgraph_edge): Likewise.
1746 * combine.c (likely_spilled_retval_1): Likewise.
1747 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
1748 htab_counts_entry_del, get_coverage_counts): Likewise.
1749 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
1750 new_cselib_val): Likewise.
1751 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
1752 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
1754 * df-core.c (df_compact_blocks): Likewise.
1755 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
1756 * df-scan.c (df_grow_reg_info, df_ref_create,
1757 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
1758 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
1759 df_record_entry_block_defs, df_record_exit_block_uses,
1760 df_bb_verify): Likewise.
1761 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
1762 DF_REF_EXTRACT_MODE_CONST): New.
1763 * dominance.c (get_immediate_dominator, get_dominated_by,
1764 nearest_common_dominator, root_of_dom_tree,
1765 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
1766 -Wc++-compat and/or -Wcast-qual warnings.
1767 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
1768 record_store, replace_read, check_mem_read_rtx, scan_insn,
1769 dse_step1, dse_record_singleton_alias_set): Likewise.
1770 * dwarf2asm.c (dw2_force_const_mem): Likewise.
1772 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1774 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
1775 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
1776 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
1777 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
1778 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
1779 add_ranges_num, add_ranges_by_labels, file_info_cmp,
1780 file_name_acquire, output_file_names, add_const_value_attribute,
1781 premark_used_types_helper, file_table_eq, file_table_hash,
1782 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
1783 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
1784 -Wcast-qual warnings.
1785 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
1786 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
1787 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
1788 gen_reg_rtx, start_sequence, init_emit): Likewise.
1789 * et-forest.c (et_new_occ, et_new_tree): Likewise.
1790 * except.c (init_eh_for_function, gen_eh_region,
1791 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
1792 arh_to_landing_pad, arh_to_label, add_action_record,
1793 add_call_site, switch_to_exception_section): Likewise.
1794 * expmed.c (synth_mult): Likewise.
1795 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
1796 store_expr): Likewise.
1797 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
1799 * function.c (assign_stack_temp_for_type,
1800 allocate_struct_function, match_asm_constraints_1): Likewise.
1801 * gcov-io.c (gcov_allocate): Likewise.
1802 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
1803 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
1804 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
1805 record_one_set, insert_expr_in_table, insert_set_in_table,
1806 dump_hash_table, compute_hash_table_work, alloc_hash_table,
1807 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
1808 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
1809 -Wcast-qual warnings.
1811 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1813 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
1814 -Wcast-qual warnings.
1815 * gcc.c (process_command): Likewise.
1816 * genattrtab.c (oballoc): Use XOBNEW.
1817 (oballocvec): Define.
1818 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
1819 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
1820 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
1821 -Wc++-compat and/or -Wcast-qual warnings.
1822 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
1823 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
1824 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
1825 gen_presence_absence_set, gen_automaton, gen_regexp_el,
1826 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
1827 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
1828 add_excls, process_presence_absence_names,
1829 process_presence_absence_patterns, add_presence_absence,
1830 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
1831 get_free_state, add_arc, get_free_automata_list_el,
1832 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
1833 transform_3, cache_presence, create_ainsns, create_automata,
1834 create_state_ainsn_table, dfa_insn_code_enlarge,
1835 output_trans_func, output_min_issue_delay_func,
1836 output_dead_lock_func, output_reset_func,
1837 output_get_cpu_unit_code_func, output_dfa_start_func,
1838 expand_automata): Likewise.
1839 * genextract.c (gen_insn): Likewise.
1840 * gengtype-lex.l: Likewise.
1841 * gengtype.c (read_input_list, adjust_field_type,
1842 process_gc_options): Likewise.
1843 * genoutput.c (note_constraint): Likewise.
1844 * genpreds.c (mangle, add_constraint): Likewise.
1845 * genrecog.c (process_define_predicate, new_decision,
1846 add_to_sequence): Likewise.
1847 * gensupport.c (record_insn_name): Likewise.
1849 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1851 * config/i386/driver-i386.c (detect_caches_amd,
1852 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
1853 and/or -Wcast-qual warnings.
1854 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
1855 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
1856 gt_pch_save): Likewise.
1857 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
1858 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
1859 * global.c (compute_regsets): Likewise.
1860 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1861 finish_graph_dump_file): Likewise.
1862 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
1863 unlink_bb_notes): Likewise.
1864 * integrate.c (get_hard_reg_initial_val): Likewise.
1865 * ipa-prop.c (ipa_push_func_to_list): Likewise.
1866 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
1867 * local-alloc.c (update_equiv_regs): Likewise.
1868 * loop-invariant.c (check_invariant_table_size,
1869 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
1871 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
1872 altered_reg_used, mark_altered): Likewise.
1873 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
1874 insert_var_expansion_initialization,
1875 combine_var_copies_in_loop_exit, apply_opt_in_copies,
1876 release_var_copies): Likewise.
1877 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
1878 analyze_matrix_decl, add_allocation_site, analyze_transpose,
1879 analyze_accesses_for_phi_node, check_var_notmodified_p,
1880 check_allocation_function, find_sites_in_func,
1881 record_all_accesses_in_func, transform_access_sites,
1882 transform_allocation_sites): Likewise.
1883 * omp-low.c (new_omp_region, create_omp_child_function_name,
1884 check_omp_nesting_restrictions, check_combined_parallel,
1885 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
1886 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
1887 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
1888 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
1890 * opts-common.c (prune_options): Likewise.
1891 * opts.c (add_input_filename, print_filtered_help,
1892 get_option_state): Likewise.
1893 * params.c (add_params): Likewise.
1894 * passes.c (set_pass_for_id, next_pass_1,
1895 do_per_function_toporder, pass_fini_dump_file): Likewise.
1896 * postreload.c (reload_cse_simplify_operands): Likewise.
1897 * predict.c (tree_predicted_by_p, tree_predict_edge,
1898 clear_bb_predictions, combine_predictions_for_bb): Likewise.
1900 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1902 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
1904 * recog.c (check_asm_operands, validate_change_1): Likewise.
1905 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
1906 subst_asm_stack_regs): Likewise.
1907 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
1908 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
1909 * regmove.c (reg_is_remote_constant_p): Likewise.
1910 * regrename.c (regrename_optimize, scan_rtx_reg,
1911 kill_clobbered_value, kill_set_value, kill_autoinc_value):
1913 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
1914 regstat_compute_calls_crossed): Likewise.
1915 * reload1.c (init_reload, new_insn_chain,
1916 has_nonexceptional_receiver, reload, copy_reloads,
1917 calculate_needs_all_insns, init_elim_table): Likewise.
1918 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
1919 * rtl.c (shallow_copy_rtx_stat): Likewise.
1920 * rtlanal.c (parms_set): Likewise.
1921 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
1922 sbitmap_resize, sbitmap_vector_alloc): Likewise.
1923 * sched-ebb.c (earliest_block_with_similiar_load,
1924 add_deps_for_risky_insns): Likewise.
1925 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
1926 schedule_region): Likewise.
1927 * see.c (eq_descriptor_pre_extension,
1928 hash_descriptor_pre_extension, hash_del_pre_extension,
1929 eq_descriptor_properties, hash_descriptor_properties,
1930 hash_del_properties, see_seek_pre_extension_expr,
1931 see_initialize_data_structures, see_print_register_properties,
1932 see_print_pre_extension_expr, see_delete_merged_def_extension,
1933 see_delete_unmerged_def_extension, see_emit_use_extension,
1934 see_pre_delete_extension, see_map_extension, see_commit_changes,
1935 see_analyze_merged_def_local_prop,
1936 see_analyze_merged_def_local_prop,
1937 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
1938 see_set_prop_merged_def, see_set_prop_unmerged_def,
1939 see_set_prop_unmerged_use, see_print_one_extension,
1940 see_merge_one_use_extension, see_merge_one_def_extension,
1941 see_store_reference_and_extension, see_update_uses_relevancy,
1942 see_update_defs_relevancy): Likewise.
1943 * statistics.c (hash_statistics_hash, hash_statistics_eq,
1944 hash_statistics_free, curr_statistics_hash): Likewise.
1945 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
1946 expand_asm_operands, expand_return, case_bit_test_cmp,
1947 expand_case): Likewise.
1948 * stor-layout.c (start_record_layout): Likewise.
1949 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
1950 gt_pch_save_stringpool): Likewise.
1951 * tree-data-ref.c (hash_stmt_vertex_info,
1952 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
1953 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
1955 2008-06-25 Uros Bizjak <ubizjak@gmail.com>
1958 * config/i386/i386.md : Change constraints of HImode and QImode
1959 immediate operands from "i" to "n". Change SImode "ni" constraint to
1960 "i" and SImode "rmi" constraint to "g". Remove all constraints
1961 from const0_operand and const1_operand predicated operands.
1962 (i): Change QImode and HImode attribute from "i" to "n".
1963 (*subqi_2): Change HImode operands to QImode.
1966 2008-06-25 Olivier Hainque <hainque@adacore.com>
1968 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
1971 2008-06-25 Richard Guenther <rguenther@suse.de>
1973 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
1974 not overflow the result type.
1976 2008-06-25 Richard Guenther <rguenther@suse.de>
1978 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
1979 (vn_lookup): Likewise.
1981 2008-06-25 Richard Guenther <rguenther@suse.de>
1983 PR tree-optimization/35518
1984 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
1985 * tree-sra.c (instantiate_element): Use fold_build3 to build
1987 (try_instantiate_multiple_fields): Likewise.
1989 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1991 * config/rs6000/rs6000.md: Change all string instruction's clobber to
1994 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1996 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
1997 use_backchain_to_restore_sp to true
1998 if the offset of the link register save area would go over the 32k - 1
1999 offset limit of the load
2002 2008-06-25 Hans-Peter Nilsson <hp@axis.com>
2004 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
2005 anchor for the type-punning blurb. Cross-reference "Structures
2006 unions enumerations and bit-fields implementation". Provide a
2007 cast-through-pointer example. Make final sentence self-contained.
2008 * doc/implement-c.texi (Structures unions enumerations and
2009 bit-fields implementation): Cross-reference the type-punning blurb
2010 in the -fstrict-aliasing documentation.
2012 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2015 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
2016 the memory instead of the memory itself for the save area.
2018 2008-06-24 Olivier Hainque <hainque@adacore.com>
2019 Nicolas Roche <roche@adacore.com>
2021 * gengtype.c (srcdir_len): size_t instead of int.
2022 (get_file_realbasename): New function. For F a filename, the real
2023 basename of F, with all the path components stripped.
2024 (get_file_srcdir_relative_path): New function. For F a filename, the
2025 relative path to F from $(srcdir).
2026 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
2027 get_file_realbasename. Adjust the head comment.
2028 (get_prefix_langdir_index): New function. For F a filename, return the
2029 lang_dir_names[] relative index of the language directory that is
2031 (get_file_langdir): For F a filename, return the name of the language
2032 directory where F is located.
2033 (get_file_gtfilename): New function. The gt- output file name for an
2035 (get_output_file_with_visibility): Replace in-line computations with
2036 uses of get_file_gtfilename and get_prefix_langdir_index.
2037 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
2039 2008-06-24 Jakub Jelinek <jakub@redhat.com>
2041 PR tree-optimization/36504
2042 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
2043 references without base address.
2045 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2048 * calls.c (expand_call): Increase alignment for recursive functions.
2050 2008-06-23 Anatoly Sokolov <aesok@post.ru>
2052 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
2053 (TARGET_FUNCTION_VALUE): New define.
2054 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
2055 * config/avr/avr.h (FUNCTION_VALUE): Remove.
2057 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2059 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
2060 (fmod<mode>3): Ditto.
2061 (remainderxf3): Ditto.
2062 (remainder<mode>3): Ditto.
2064 2008-06-23 Jakub Jelinek <jakub@redhat.com>
2067 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
2068 REG is a hard register.
2070 PR tree-optimization/36508
2071 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
2072 499, don't check it at all in release compilers.
2074 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2076 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
2077 together with SSE_TARGET_MATH to disable insn pattern.
2078 (*fop_<MODEF:mode>_2_i387): Ditto.
2079 (*fop_<MODEF:mode>_3_i387): Ditto.
2081 2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
2083 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
2085 2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2088 * gimplify.c (gimplify_asm_expr): Check the return code of
2089 parse_output_constraint call, set function return and is_inout
2092 2008-06-22 Ian Lance Taylor <iant@google.com>
2094 * c-lex.c (narrowest_unsigned_type): Change itk to int.
2095 (narrowest_signed_type): Likewise.
2096 * c-typeck.c (c_common_type): Change local variable mclass to enum
2098 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
2099 tcc_comparison, not the tree code itself.
2100 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
2101 (c_expand_expr): Cast modifier to enum expand_modifier.
2102 * c-common.h (C_RID_CODE): Add casts.
2103 (C_SET_RID_CODE): Define.
2104 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
2105 (c_lex_one_token): Add cast to avoid warning.
2106 (c_parser_objc_type_name): Rename local typename to type_name.
2107 (check_no_duplicate_clause): Change code parameter to enum
2109 (c_parser_omp_var_list_parens): Change kind parameter to enum
2111 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
2112 c_parser_omp_list_var_parens.
2113 (c_parser_omp_threadprivate): Likewise.
2114 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
2115 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
2116 * c-format.c (NO_FMT): Define.
2117 (printf_length_specs): Use NO_FMT.
2118 (asm_fprintf_length_specs): Likewise.
2119 (gcc_diag_length_specs): Likewise.
2120 (scanf_length_specs): Likewise.
2121 (strfmon_length_specs): Likewise.
2122 (gcc_gfc_length_specs): Likewise.
2123 (printf_flag_specs): Change 0 to STD_C89.
2124 (asm_fprintf_flag_specs): Likewise.
2125 (gcc_diag_flag_specs): Likewise.
2126 (gcc_cxxdiag_flag_specs): Likewise.
2127 (scanf_flag_specs): Likewise.
2128 (strftime_flag_specs): Likewise.
2129 (strfmon_flag_specs): Likewise.
2130 (print_char_table): Likewise.
2131 (asm_fprintf_char_table): Likewise.
2132 (gcc_diag_char_table): Likewise.
2133 (gcc_tdiag_char_table): Likewise.
2134 (gcc_cdiag_char_table): Likewise.
2135 (gcc_cxxdiag_char_table): Likewise.
2136 (gcc_gfc_char_table): Likewise.
2137 (scan_char_table): Likewise.
2138 (time_char_table): Likewis.
2139 (monetary_char_table): Likewise.
2140 * c-format.h (BADLEN): Likewise.
2142 2008-06-21 Ian Lance Taylor <iant@google.com>
2144 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
2145 Define END_OF_BASE_TREE_CODES around inclusion.
2146 * tree.c (tree_code_type): New global array.
2147 (tree_code_length, tree_code_name): Likewise.
2148 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
2150 (all-tree.def, s-alltree): New targets.
2151 (gencheck.h, s-gencheck): Remove.
2152 (tree.o): Depend upon all-tree.def.
2153 (build/gencheck.o): Remove gencheck.h dependency.
2154 (mostlyclean): Don't remove gencheck.h.
2155 * c-common.h (enum c_tree_code): Remove.
2156 * c-lang.c (tree_code_type): Remove.
2157 (tree_code_length, tree_code_name): Remove.
2158 * gencheck.c (tree_codes): Include all-tree.def, rather than
2159 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
2161 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
2163 * cp/cp-tree.h (enum cplus_tree_code): Remove.
2164 (operator_name_info): Size to MAX_TREE_CODES.
2165 (assignment_operator_name_info): Likewise.
2166 * cp/cp-lang.c (tree_code_type): Remove.
2167 (tree_code_length, tree_code_name): Remove.
2168 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
2169 (assignment_operator_name_info): Likewise.
2170 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
2172 * cp/mangle.c (write_expression): Likewise.
2173 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
2174 * fortran/f95-lang.c (tree_code_type): Remove.
2175 (tree_code_length, tree_code_name): Remove.
2176 * java/java-tree.h (enum java_tree_code): Remove.
2177 * java/lang.c (tree_code_type): Remove.
2178 (tree_code_length, tree_code_name): Remove.
2179 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
2180 * objc/objc-act.h (enum objc_tree_code): Remove.
2181 * objc/objc-lang.c (tree_code_type): Remove.
2182 (tree_code_length, tree_code_name): Remove.
2183 * objcp/objcp-lang.c (tree_code_type): Remove.
2184 (tree_code_length, tree_code_name): Remove.
2185 * ada/ada-tree.h (enum gnat_tree_code): Remove.
2186 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
2187 * ada/misc.c (tree_code_type): Remove.
2188 (tree_code_length, tree_code_name): Remove.
2190 2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
2192 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
2193 the grand_bitmap_obstack.
2195 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2197 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
2198 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
2199 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
2200 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
2201 move_stmt_r, new_label_mapper): Likewise.
2202 * tree-complex.c (cvc_lookup): Likewise.
2203 * tree-dfa.c (create_function_ann): Likewise.
2204 * tree-dump.c (dump_register): Likewise.
2205 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
2206 find_phi_replacement_condition): Likewise.
2207 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
2208 tree_function_versioning): Likewise.
2209 * tree-into-ssa.c (cmp_dfsnum): Likewise.
2210 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
2211 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
2212 get_nonlocal_debug_decl, convert_nonlocal_reference,
2213 convert_nonlocal_omp_clauses, get_local_debug_decl,
2214 convert_local_reference, convert_local_omp_clauses,
2215 convert_nl_goto_reference, convert_nl_goto_receiver,
2216 convert_tramp_reference, convert_call_expr): Likewise.
2217 * tree-outof-ssa.c (contains_tree_r): Likewise.
2218 * tree-parloops.c (reduction_phi, initialize_reductions,
2219 eliminate_local_variables_1, add_field_for_reduction,
2220 add_field_for_name, create_phi_for_local_result,
2221 create_call_for_reduction_1, create_loads_for_reductions,
2222 create_stores_for_reduction, create_loads_and_stores_for_name):
2224 * tree-phinodes.c (allocate_phi_node): Likewise.
2225 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
2226 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
2227 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
2228 * tree-ssa-coalesce.c (compare_pairs): Likewise.
2229 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
2230 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
2231 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
2232 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
2233 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
2234 vn_nary_op_insert): Likewise.
2235 * tree-ssa.c (redirect_edge_var_map_add,
2236 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
2237 * tree-vectorizer.c (vectorize_loops): Likewise.
2238 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
2239 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
2240 tree_cons_stat, build1_stat, build_variant_type_copy,
2241 decl_init_priority_lookup, decl_fini_priority_lookup,
2242 decl_priority_info, decl_restrict_base_lookup,
2243 decl_restrict_base_insert, decl_debug_expr_lookup,
2244 decl_debug_expr_insert, decl_value_expr_lookup,
2245 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
2246 type_hash_add, get_file_function_name, tree_check_failed,
2247 tree_not_check_failed, tree_range_check_failed,
2248 omp_clause_range_check_failed, build_omp_clause,
2249 build_vl_exp_stat): Likewise.
2250 * value-prof.c (gimple_histogram_value,
2251 gimple_duplicate_stmt_histograms): Likewise.
2252 * var-tracking.c (attrs_list_insert, attrs_list_copy,
2253 unshare_variable, variable_union_info_cmp_pos, variable_union,
2254 dataflow_set_different_1, dataflow_set_different_2,
2255 vt_find_locations, variable_was_changed, set_variable_part,
2256 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
2257 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
2258 section_entry_hash, object_block_entry_eq,
2259 object_block_entry_hash, create_block_symbol,
2260 initialize_cold_section_name, default_function_rodata_section,
2261 strip_reg_name, set_user_assembler_name, const_desc_eq,
2262 build_constant_desc, output_constant_def, lookup_constant_def,
2263 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
2264 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
2265 default_internal_label): Likewise.
2266 * varray.c (varray_init, varray_grow): Likewise.
2267 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
2269 2008-06-20 Uros Bizjak <ubizjak@gmail.com>
2271 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
2272 operators for "test" insn. Macroize insn using SWI mode macro.
2273 (*jcc_fused_2): Ditto.
2274 (*jcc_fused_3): Macroize insn using SWI mode macro.
2275 (*jcc_fused_4): Ditto.
2277 2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
2279 * tree-ssa-pre.c: Fix typo in comment.
2280 (init_antic, fini_antic): Add explicit funtions for
2281 initializing and deinitializing ANTIC and AVAIL sets.
2282 (create_expression_by_pieces): Fix typo in comment.
2283 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
2284 (execute_pre): Eventually dump details about ANTIC_IN.
2286 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2288 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
2289 * gcc.c (translate_options, init_spec, store_arg, read_specs,
2290 add_to_obstack, file_at_path, find_a_file, execute,
2291 add_preprocessor_option, add_assembler_option, add_linker_option,
2292 process_command, insert_wrapper, do_option_spec, do_self_spec,
2293 spec_path, do_spec_1, is_directory, main, used_arg,
2294 getenv_spec_function): Likewise.
2295 * tlink.c (symbol_hash_lookup, file_hash_lookup,
2296 demangled_hash_lookup, symbol_push, file_push, frob_extension):
2299 2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2301 * doc/rtl.texi: Updated subreg section.
2303 2008-06-19 Jakub Jelinek <jakub@redhat.com>
2306 * cgraphunit.c (cgraph_process_new_functions): Don't clear
2307 node->needed and node->reachable.
2308 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
2309 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
2310 (expand_task_call): Don't call expand_task_copyfn.
2311 (expand_task_copyfn): Renamed to...
2312 (finalize_task_copyfn): ... this.
2314 2008-06-19 Jan Hubicka <jh@suse.cz>
2316 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
2317 clobbering framepointer.
2319 2008-06-19 Jan Hubicka <jh@suse.cz>
2321 * tree-optimize.c (execute_early_local_optimizations): Set
2322 cgraph_state only at first invocation.
2324 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2326 * system.h (-Wc++-compat): Activate as a warning, no an error.
2328 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2330 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
2331 instead of "#" in insn asm template.
2332 (*jcc_fused_2): Ditto.
2334 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2336 * config/i386/i386.h (ix86_tune_indices)
2337 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
2338 (TARGET_FUSE_CMP_AND_BRANCH): New define.
2339 * config/i386/i386.md (*jcc_fused_1): New insn pattern
2340 (*jcc_fused_2): Ditto.
2341 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
2342 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
2343 (print operand): Handle 'E' and 'e' code.
2345 2008-06-19 Anatoly Sokolov <aesok@post.ru>
2347 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
2348 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2349 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2351 2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
2353 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
2355 (cgraph_expand_function): Use local copy of decl.
2356 (cgraph_expand_all_functions): Remove redundant initialization of
2358 (cgraph_optimize): Reword internal_error message.
2360 2008-06-19 Chung-Lin Tang <ctang@marvell.com>
2362 * arm-protos.h (arm_return_in_memory): Remove public
2363 arm_return_in_memory() prototype.
2364 * arm.c (arm_return_in_memory): Add static prototype, add target
2365 hook macro, change definition and comments.
2366 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
2368 2008-06-19 Ben Elliston <bje@au.ibm.com>
2370 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
2371 real.c: Remove references to IEEE 754R.
2372 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
2373 * doc/libgcc.texi (Decimal float library routines): Likewise.
2375 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2377 * targhooks.h (struct gcc_target): New member unwind_word_mode.
2378 (default_unwind_word_mode): Add prototype.
2379 * targhooks.c (default_unwind_word_mode): New function.
2380 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
2381 instead of word_mode.
2382 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
2383 (TARGET_INITIALIZER): Use it.
2385 * c-common.c (handle_mode_attribute): Support "unwind_word"
2387 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
2389 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
2390 word_mode to access SjLj_Function_Context member "data".
2391 (sjlj_emit_dispatch_table): Likewise. Also, perform type
2392 conversion from targetm.eh_return_filter_mode () to
2393 targetm.unwind_word_mode () if they differ.
2395 * builtin-types.def (BT_UNWINDWORD): New primitive type.
2396 (BT_FN_UNWINDWORD_PTR): New function type.
2397 (BT_FN_WORD_PTR): Remove.
2398 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
2399 * except.c (expand_builtin_extend_pointer): Convert pointer to
2400 targetm.unwind_word_mode () instead of word_mode.
2402 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
2403 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
2404 (spu_unwind_word_mode): New function.
2405 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
2406 (TARGET_UNWIND_WORD_MODE): Define.
2407 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
2409 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2411 * config/spu/spu.c (reg_align): Remove.
2412 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
2413 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
2414 (spu_split_store): Likewise.
2416 2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
2418 * gcc/tree-vn.c: Fix typo in comment.
2420 2008-06-18 Jan Hubicka <jh@suse.cz>
2422 * cgraphunit.c (cgraph_optimize): Output debug info when doing
2423 toplevel reorder too.
2425 2008-06-18 Jan Hubicka <jh@suse.cz>
2427 * c-opts.c (c_common_post_options): PCH is not compatible with
2429 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
2430 -fno-toplevel-reorder by default now.
2432 2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2434 PR documentation/30739
2435 * doc/install.texi (Prerequisites): Document dependency on awk.
2437 2008-06-18 Uros Bizjak <ubizjak@gmail.com>
2438 Ian Lance Taylor <iant@google.com>
2440 PR rtl-optimization/35604
2441 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
2442 only want to change jump destinations, not eventual label comparisons.
2444 2008-06-16 Jan Hubicka <jh@suse.cz>
2446 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
2448 (cgraph_analyze_function): Likewise.
2450 2008-06-16 Jan Hubicka <jh@suse.cz>
2452 * cgraph.h (cgraph_mark_if_needed): New function.
2453 * cgraphunit.c (cgraph_mark_if_needed): New function.
2454 * c-decl.c (duplicate_decl): Use it.
2456 2008-06-16 Jan Hubicka <jh@suse.cz>
2458 * cgraph.c (cgraph_add_new_function): When in expansion state, do
2461 2008-06-16 Jan Hubicka <jh@suse.cz>
2463 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
2465 2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
2466 Kazu Hirata <kazu@codesourcery.com>
2467 Maxim Kuvyrkov <maxim@codesourcery.com
2469 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
2470 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
2471 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
2472 EXTRA_SPEC_FUNCTIONS.
2473 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
2474 (DRIVER_SELF_SPECS): Adjust.
2475 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
2476 * config/mips/st.h, config/mips/t-st: New.
2477 * config/mips/driver-native.c, config/mips/x-native: New.
2478 * doc/invoke.texi (MIPS): Document 'native' value for -march and
2481 2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2483 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
2485 (ISA_HAS_FP_CONDMOVE): New macro.
2486 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
2487 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
2488 (ISA_HAS_NMADD3_NMSUB3): New macro.
2489 * config/mips/mips.c (mips_rtx_costs): Update.
2490 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
2491 compiling for ST Loongson 2E/2F.
2492 (madd<mode>): Rename to madd4<mode>. Update.
2493 (madd3<mode>): New pattern.
2494 (msub<mode>): Rename to msub4<mode>. Update.
2495 (msub3<mode>): New pattern.
2496 (nmadd<mode>): Rename to nmadd4<mode>. Update.
2497 (nmadd3<mode>): New pattern.
2498 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
2499 (nmadd3<mode>_fastmath): New pattern.
2500 (nmsub<mode>): Rename to nmsub4<mode>. Update.
2501 (nmsub3<mode>): New pattern.
2502 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
2503 (nmsub3<mode>_fastmath): New pattern.
2504 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
2506 2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
2508 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
2509 (DF_REF_INSN_INFO): New.
2510 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
2511 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
2512 with a NULL DF_REF_INSN_INFO.
2513 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
2515 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
2516 DF_INSN_INFO_EQ_USES): New.
2517 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
2518 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
2519 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
2520 * df-core.c: Update comment for above changes.
2521 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
2522 DF_INSN_UID_* macros.
2523 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
2524 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
2525 insn rtx. Update all callers.
2526 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
2527 df_ref_create_structure, df_insn_refs_collect): Likewise.
2528 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
2529 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
2530 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
2531 macros to access the insn refs.
2532 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
2533 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
2534 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
2535 for accessing the refs.
2536 (try_fwprop_subst): Likewise.
2537 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
2538 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
2539 for accessing the refs.
2540 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
2541 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
2542 to look at the insn refs.
2543 (record_uses): Likewise.
2544 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
2546 (mark_artificial_uses): Don't mark_insn for artificial refs.
2547 (mark_reg_rependencies): Likewise.
2549 * doc/rtl.texi: Remove documentation of ADDRESSOF.
2551 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2553 * configure: Regenerate.
2555 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2557 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
2558 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2559 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2561 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2563 * config/avr/avr.c (avr_mcu_t): Add attiny167.
2564 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2565 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2567 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2569 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
2570 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2571 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2573 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
2575 * tree-ssa-sccvn.c: Fix format of comments.
2577 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
2579 * cgraph.c: Remove unneeded forward declarations of eq_node()
2582 2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
2584 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
2586 (see_update_relevancy): Likewise.
2587 * fwprop.c (try_fwprop_subst): Likewise.
2588 * rtlanal.c (noop_move_p): Likewise.
2589 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
2590 notes to non-existing libcall blocks.
2591 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
2593 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
2594 (dead_libcall_p): Remove.
2595 (delete_trivially_dead_insns): Don't use it.
2596 * web.c (union_defs): Remove comment about keeping nops.
2597 * gcse.c (hash_scan_insn): Don't take libcall pointers.
2598 (compute_hash_table_work): Don't track libcall notes.
2599 (do_local_cprop): Don't take libcall pointers. Don't update
2601 (adjust_libcall_notes): Deleted.
2602 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
2603 ever have existed in the first place).
2604 (replace_store_insn): Don't try to remove libcall notes.
2605 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
2606 (resolve_reg_notes): Don't call them.
2607 (resolve_simple_move): Likewise.
2608 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
2609 Don't remove REG_RETVAL notes.
2610 * emit-rtl.c (try_split): Don't update libcall notes.
2611 (emit_copy_of_insn_after): Dito.
2612 * cselib.c (cselib_current_insn_in_libcall): Remove.
2613 (cselib_process_insn): Don't set/clear it.
2614 (new_elt_loc_list): Don't record it.
2615 (cselib_init): Don't initialize it.
2616 * cselib.c (struct elt_loc_list): Remove in_libcall field.
2617 * loop-invariant.c (find_invariant_insn): Don't look for libcall
2619 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
2620 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
2621 (init_deps): Don't initialize it.
2622 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
2623 * combine.c (delete_noop_moves): Don't update libcall notes.
2624 (can_combine_p): Remove now pointless #if 0 block.
2625 (try_combine): Remove another obsolete #if 0 block.
2626 (distribute_notes): Don't distribute libcall notes.
2627 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
2628 * dce.c (libcall_dead_p): Remove.
2629 (delete_unmarked_insns): Don't handle libcall blocks.
2630 (preserve_libcall_for_dce): Remove.
2631 (prescan_insns_for_dce): Don't special-case libcall block insns.
2632 * reload1 (reload): Don't handle libcall notes.
2633 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
2636 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
2638 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
2639 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2640 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2642 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
2644 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
2645 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2646 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2648 2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2650 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
2652 2008-06-16 Ira Rosen <irar@il.ibm.com>
2654 PR tree-optimization/36493
2655 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
2656 the arguments list. Use VECTYPE to create vector pointer.
2657 (vectorizable_store): Fail if accesses through a pointer to vectype
2658 do not alias the original memory reference operands.
2659 Call vect_create_data_ref_ptr without the removed argument.
2660 (vectorizable_load): Likewise.
2661 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
2664 2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
2667 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
2670 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2672 * config/mips/loongson2ef.md: New file.
2673 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
2674 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
2675 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
2676 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
2677 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
2679 (loongson2ef.md): New include.
2680 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
2681 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
2682 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
2683 (loongson_gt_<mode>, loongson_extract_halfword)
2684 (loongson_insert_halfword_0, loongson_insert_halfword_2)
2685 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
2686 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
2687 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
2688 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
2689 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
2690 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
2691 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
2692 (vec_interleave_low<mode>): Define type attribute.
2693 * config/mips/mips.c (mips_ls2): New static variable.
2694 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
2695 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
2696 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
2697 Implement target scheduling hooks.
2698 (mips_multipass_dfa_lookahead): Update to handle tuning for
2700 (mips_sched_init): Initialize data for Loongson scheduling.
2701 (mips_ls2_variable_issue): New static function.
2702 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
2704 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
2705 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
2706 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
2707 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
2708 Handle ST Loongson 2E/2F cores.
2709 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
2711 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2713 * omp-low.c (extract_omp_for_data): Fix comment typo.
2716 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2718 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
2719 FIXME note about gcc/config.guess.
2720 * doc/options.texi (Option file format): Remove non-ASCII bytes.
2721 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
2722 * doc/cppopts.texi: Likewise.
2723 * doc/extend.texi: Likewise.
2724 * doc/gcc.texi: Likewise.
2725 * doc/gccint.texi: Likewise.
2726 * doc/gcov.texi: Likewise.
2727 * doc/gty.texi: Likewise.
2728 * doc/hostconfig.texi: Likewise.
2729 * doc/install.texi: Likewise.
2730 * doc/invoke.texi: Likewise.
2731 * doc/loop.texi: Likewise.
2732 * doc/makefile.texi: Likewise.
2733 * doc/md.texi: Likewise.
2734 * doc/passes.texi: Likewise.
2735 * doc/tm.texi: Likewise.
2736 * doc/tree-ssa.texi: Likewise.
2737 * doc/trouble.texi: Likewise.
2739 2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
2740 Nathan Sidwell <nathan@codesourcery.com>
2741 Maxim Kuvyrkov <maxim@codesourcery.com>
2742 Richard Sandiford <rdsandiford@googlemail.com>
2744 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
2745 * config/mips/mips-protos.h (mips_expand_vector_init): New.
2746 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
2748 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
2749 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
2750 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
2752 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
2753 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
2754 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
2755 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
2756 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
2757 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
2758 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
2759 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
2760 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
2761 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
2762 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
2763 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
2764 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
2765 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
2766 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
2767 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
2768 (mips_builtins): Add Loongson builtins.
2769 (mips_loongson_2ef_bdesc): New.
2770 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
2771 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
2772 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
2773 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
2775 (mips_expand_vector_init): New.
2776 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
2777 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
2779 * config/mips/mips.md: Add unspec numbers for Loongson
2780 builtins. Include loongson.md.
2781 (MOVE64): Include Loongson vector modes.
2782 (SPLITF): Include Loongson vector modes.
2783 (HALFMODE): Handle Loongson vector modes.
2784 * config/mips/loongson.md: New.
2785 * config/mips/loongson.h: New.
2786 * config.gcc: Add loongson.h header for mips*-*-* targets.
2787 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
2789 2008-06-14 Joseph Myers <joseph@codesourcery.com>
2791 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
2792 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
2793 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
2794 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
2795 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
2796 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
2797 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
2798 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
2799 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
2800 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
2801 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
2802 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
2803 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
2804 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
2805 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
2806 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
2807 Remove use_fixproto=yes.
2808 (ia64*-*-hpux*): Remove comment about using fixproto.
2809 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
2811 2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2813 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
2815 * configure: Regenerate.
2817 2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
2820 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
2821 before evaluating it.
2823 2008-06-13 Jakub Jelinek <jakub@redhat.com>
2826 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
2827 nested inline functions.
2828 (start_decl, start_function): Don't invert DECL_EXTERNAL
2829 for nested inline functions.
2831 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
2833 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
2834 splits that must be made for correctness.
2836 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
2838 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
2839 (AVAIL_NON_MIPS16): Likewise.
2840 (mips_builtin_description): Replace target_flags with a predicate.
2841 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
2842 (dspr2_32): New availability predicates.
2843 (MIPS_BUILTIN): New macro.
2844 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
2845 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
2846 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
2847 Replace the TARGET_FLAGS parameters with AVAIL parameters.
2848 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
2849 (mips_dsp_32only_bdesc): Merge into...
2850 (mips_builtins): ...this new array.
2851 (mips_bdesc_map, mips_bdesc_arrays): Delete.
2852 (mips_init_builtins): Update after above changes.
2853 (mips_expand_builtin_1): Merge into...
2854 (mips_expand_builtin): ...here and update after above changes.
2856 2008-06-12 Paul Brook <paul@codesourcery.com>
2858 * longlong.h (__arm__): Define count_leading_zeros.
2859 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
2860 (clzsi2, clzdi2): New functions.
2861 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
2862 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
2863 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
2864 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
2865 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
2866 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
2867 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
2868 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
2869 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
2870 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
2872 2008-06-12 Kazu Hirata <kazu@codesourcery.com>
2874 * config/m68k/m68k.c (m68k_tune_flags): New.
2875 (override_options): Compute m68k_tune_flags.
2876 (MULL_COST, MULW_COST): Update for various variants of CFV2.
2877 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
2879 2008-06-12 Jakub Jelinek <jakub@redhat.com>
2882 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
2884 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
2886 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
2887 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
2889 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
2891 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
2892 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
2894 2008-06-12 Jakub Jelinek <jakub@redhat.com>
2897 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
2900 2008-06-12 Richard Guenther <rguenther@suse.de>
2902 PR tree-optimization/36345
2903 * tree-flow.h (struct ptr_info_def): Align escape_mask,
2904 add memory_tag_needed flag.
2905 (may_alias_p): Declare.
2906 * tree-ssa-alias.c (may_alias_p): Export.
2907 (set_initial_properties): Use memory_tag_needed flag.
2908 (update_reference_counts): Likewise.
2909 (reset_alias_info): Reset memory_tag_needed flag.
2910 (create_name_tags): Check memory_tag_needed flag.
2911 (dump_points_to_info_for): Dump it.
2912 * tree-ssa-structalias.c (struct variable_info): Remove
2913 directly_dereferenced flag.
2914 (new_var_info): Do not initialize it.
2915 (process_constraint_1): Do not set it.
2916 (update_alias_info): Set is_dereferenced flag.
2917 (set_uids_in_ptset): Use may_alias_p.
2918 (set_used_smts): Check memory_tag_needed flag.
2919 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
2920 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
2921 memory_tag_needed flag.
2922 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
2925 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
2927 * config/i386/i386.c (ix86_compute_frame_layout): Disable
2928 red zone for w64 abi.
2929 (ix86_expand_prologue): Likewise.
2930 (ix86_force_to_memory): Likewise.
2931 (ix86_free_from_memory): Likewise.
2933 2008-06-11 Edmar Wienskoski <edmar@freescale.com>
2936 * config/rs6000/rs6000.c (rs6000_override_options): Set
2937 rs6000_isel conditionally to the absence of comand line override.
2938 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2939 Remove duplicate rs6000_isel setting.
2940 * config/rs6000/eabispe.h: Ditto.
2942 2008-06-11 Richard Guenther <rguenther@suse.de>
2944 * alias.c (get_alias_set): Use the element alias-set for arrays.
2945 (record_component_aliases): For arrays and vectors do nothing.
2946 * c-common.c (strict_aliasing_warning): Handle the cases
2947 of alias set zero explicitly.
2948 * Makefile.in (dfp.o-warn): Add -Wno-error.
2950 2008-06-11 Joseph Myers <joseph@codesourcery.com>
2952 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
2954 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
2955 tune_32 tune_64 to supported_defaults. Allow values not
2956 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
2957 x86_64. Do not override cpu_32 or cpu_64 values from target name.
2958 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
2959 with_cpu_64 to generic for 64-bit-supporting configurations, not
2960 with_cpu. Remove FIXMEs.
2961 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
2962 --with-arch-64, --with-tune-32, --with-tune-64): Document.
2963 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
2964 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
2965 arch_32 and arch_64.
2967 2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
2968 Olivier Hainque <hainque@adacore.com>
2970 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
2971 Use DECL_SIZE_UNIT to retrieve the size of the field.
2973 2008-06-11 Joseph Myers <joseph@codesourcery.com>
2975 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
2976 with function calls after declarations. Lay out
2977 neon_float_type_node before further use.
2979 2008-06-11 Richard Guenther <rguenther@suse.de>
2981 * tree-flow.h (may_point_to_global_var): Declare.
2982 * tree-ssa-alias.c (may_point_to_global_var): New function.
2983 * tree-ssa-sink.c (is_hidden_global_store): Use it.
2985 2008-06-10 Kazu Hirata <kazu@codesourcery.com>
2987 * configure.ac: Teach that fido supports .debug_line.
2988 * configure: Regenerate.
2990 2008-06-10 Tom Tromey <tromey@redhat.com>
2992 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
2995 2008-06-10 Joseph Myers <joseph@codesourcery.com>
2997 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
2998 (encode_decimal64, decode_decimal64, encode_decimal128,
2999 decode_decimal128): Reverse order of 32-bit parts of value if host
3000 and target endianness differ.
3002 2008-06-10 Vinodha Ramasamy <vinodha@google.com>
3004 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
3005 Avoid division by 0.
3006 (tree_mod_pow2_value_transform): Likewise.
3007 (tree_ic_transform): Likewise.
3008 (tree_stringops_transform): Likewise.
3009 (tree_mod_subtract_transform): Likewise.
3010 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
3011 (copy_edges_for_bb): Likewise.
3012 (initialize_cfun): Likewise.
3014 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
3016 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
3017 nonmemory_operand. Add "N" operand constraint.
3019 (*jcc_btdi_mask_rex64): New instruction and split pattern.
3020 (*jcc_btsi_mask): Ditto.
3021 (*jcc_btsi_mask_1): Ditto.
3023 2008-06-10 Joseph Myers <joseph@codesourcery.com>
3025 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
3026 TYPE_CANONICAL for copied element type.
3028 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
3031 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
3032 Add m_CORE2 and m_GENERIC.
3033 * config/i386/predicates.md (bt_comparison_operator): New predicate.
3034 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
3036 (*jcc_btdi_rex64): New instruction and split pattern.
3038 (*jcc_btsi_1): Ditto.
3039 (*btsq): Fix Intel asm dialect operand order.
3043 2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
3046 * simplify-rtx.c (simplify_subreg): Add check for shift count
3049 2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
3051 * doc/md.texi: Synchronize with later constraints.md change.
3052 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
3053 with a C implementation.
3054 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
3056 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
3057 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
3058 when moving to and from MD_REGNUM.
3059 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
3060 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
3061 Handle byte and halfword moves.
3062 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
3064 * config/mips/constraints.md (h): Turn into NO_REGS.
3065 (l, x): Update documentation.
3066 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
3067 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
3068 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
3069 (HILO): New mode iterator.
3071 (any_div): New code iterator.
3072 (u): Extend code attribute to div and udiv.
3073 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
3074 d_operand in the splitters. Remove redundant CONST_INT checks.
3075 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
3076 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
3077 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
3078 accordingly, using normal moves instead of unspecs to move LO into
3079 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
3080 (<u>mulsidi3): Handle expansion in C code.
3081 (<u>mulsidi3_32bit_internal): Rename to...
3082 (<u>mulsidi3_32bit): ...this.
3083 (<u>mulsidi3_32bit_r4000): Fix insn separator.
3084 (*<u>mulsidi3_64bit): Rename to...
3085 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
3086 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
3087 to set LO and HI to the multiplication result. Use a normal move
3088 for MFLO and an unspec for MFHI.
3089 (*<u>mulsidi3_64bit_parts): Replace with...
3090 (<u>mulsidi3_64bit_hilo): ...this new instruction.
3091 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
3092 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
3093 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
3094 instead of HI. Split the instruction into a separate multiplication
3095 and MFHI if !TARGET_FIX_R4000.
3096 (<su>muldi3_highpart): Likewise.
3097 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
3098 and the "=h" clobber.
3099 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
3100 (<u>mulditi3): New expander.
3101 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
3102 (madsi): Remove "=h" clobber.
3103 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
3104 Force the modulus result to be a GPR and split the instruction into
3105 a division followed by an MFHI after reload.
3106 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
3107 (*lea_high64): Use d_operand in the define_peephole2. Likewise
3108 the MIPS16 HIGH define_split.
3109 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
3110 of acc<->gpr moves to "multi".
3111 (*movdi_64bit): Replace the single "x" alternative with
3112 alternatives for moving into and out of "a".
3113 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
3114 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
3115 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
3116 Use d_operand in the splitters. Remove redundant CONST_INT checks.
3117 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
3118 (movti): New expander.
3119 (*movti, *movti_mips16): New insns.
3120 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
3121 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
3122 (mthi<GPR:mode>_<HILO:mode>): Likewise.
3123 * config/mips/predicates.md (fpr_operand): Delete.
3124 (d_operand): New predicate.
3126 2008-06-09 Michael Meissner <michael.meissner@amd.com>
3128 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
3129 failure on some Bourne shells.
3130 (x86_64-*-*): Ditto.
3132 2008-06-09 Kai Tietz <kai.tietz@onevision.com>
3134 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
3136 2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
3138 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
3139 (sparc-sun-solaris2*): Likewise.
3141 2008-06-09 Arnaud Charlet <charlet@adacore.com
3143 * doc/install.texi: Update requirements to build the Ada compiler.
3145 2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
3147 * df-scan.c (struct df_scan_problem_data): Remove the
3148 mw_link_pool alloc pool.
3149 (df_scan_free_internal): Don't free it.
3150 (df_scan_alloc): Don't allocate it.
3151 * df.h (struct df_link): Update comment.
3153 2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
3155 * except.h: Correct checks for when SJLJ exceptions must be used.
3157 2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3159 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
3162 2008-06-08 Joseph Myers <joseph@codesourcery.com>
3164 PR tree-optimization/36218
3165 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
3166 configure for the build system.
3167 (BUILD_LDFLAGS): Define.
3168 * configure: Regenerate.
3169 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
3171 2008-07-08 Anatoly Sokolov <aesok@post.ru>
3174 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
3175 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
3176 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
3178 2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
3180 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
3182 2008-06-07 Joseph Myers <joseph@codesourcery.com>
3184 * config.gcc (Obsolete configurations): Remove list of
3186 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
3187 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
3188 targets matched by those patterns.
3189 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
3190 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
3191 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
3192 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
3193 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
3194 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
3195 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
3196 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
3197 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
3198 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
3199 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
3200 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
3201 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
3202 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
3203 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
3204 Make code for Solaris 7 and greater unconditional for Solaris.
3205 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
3206 Remove --with-* handling.
3207 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
3208 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
3209 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
3210 LINK_OS_WINDISS_SPEC): Remove.
3211 * config/rs6000/sysv4.opt (mwindiss): Remove.
3212 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
3213 * configure: Regenerate.
3214 * doc/cpp.texi: Don't mention BeOS.
3215 * doc/extend.texi (interrupt): Don't mention MS1.
3216 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
3217 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
3218 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
3219 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
3220 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
3222 * doc/invoke.texi (MT Options): Remove.
3223 (-mwindiss): Remove.
3224 (CRIS Options): Remove cris-axis-aout references.
3225 (HPPA Options): Don't mention hppa1.1-*-pro.
3226 * doc/md.texi: (MorphoTech family): Remove.
3227 * libgcc2.c: Don't handle UWIN.
3228 * config/alpha/t-unicosmk: Remove.
3229 * config/alpha/unicosmk.h: Remove.
3230 * config/arm/kaos-arm.h: Remove.
3231 * config/arm/kaos-strongarm.h: Remove.
3232 * config/arm/strongarm-coff.h: Remove.
3233 * config/arm/strongarm-elf.h: Remove.
3234 * config/arm/strongarm-pe.h: Remove.
3235 * config/arm/t-strongarm-pe: Remove.
3236 * config/arm/t-xscale-coff: Remove.
3237 * config/arm/t-xscale-elf: Remove.
3238 * config/arm/xscale-coff.h: Remove.
3239 * config/arm/xscale-elf.h: Remove.
3240 * config/chorus.h: Remove.
3241 * config/cris/aout.h: Remove.
3242 * config/cris/aout.opt: Remove.
3243 * config/cris/t-aout: Remove.
3244 * config/i386/beos-elf.h: Remove.
3245 * config/i386/kaos-i386.h: Remove.
3246 * config/i386/ptx4-i.h: Remove.
3247 * config/i386/sco5.h: Remove.
3248 * config/i386/sco5.opt: Remove.
3249 * config/i386/sysv4-cpp.h: Remove.
3250 * config/i386/sysv5.h: Remove.
3251 * config/i386/t-beos: Remove.
3252 * config/i386/t-sco5: Remove.
3253 * config/i386/t-uwin: Remove.
3254 * config/i386/uwin.asm: Remove.
3255 * config/i386/uwin.h: Remove.
3256 * config/kaos.h: Remove.
3257 * config/mips/windiss.h: Remove.
3258 * config/mt: Remove directory.
3259 * config/pa/pa-osf.h: Remove.
3260 * config/pa/pa-pro-end.h: Remove.
3261 * config/pa/t-pro: Remove.
3262 * config/ptx4.h: Remove.
3263 * config/rs6000/beos.h: Remove.
3264 * config/rs6000/kaos-ppc.h: Remove.
3265 * config/rs6000/t-beos: Remove.
3266 * config/rs6000/windiss.h: Remove.
3267 * config/sh/kaos-sh.h: Remove.
3268 * config/sol2-6.h: Remove.
3269 * config/sparc/sol26-sld.h: Remove.
3270 * config/sparc/sysv4-only.h: Remove.
3271 * config/vax/bsd.h: Remove.
3272 * config/vax/t-memfuncs: Remove.
3273 * config/vax/ultrix.h: Remove.
3274 * config/vax/vaxv.h: Remove.
3275 * config/windiss.h: Remove.
3277 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
3279 PR rtl-optimization/36438
3280 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
3281 for vector shifts with constant scalar shift operands.
3283 2008-06-06 Sandip Matte <sandip@rmicorp.com>
3285 * doc/invoke.texi: Document -march=xlr.
3286 * config/mips/xlr.md: New file.
3287 * config/mips/mips.md: Include it.
3289 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
3290 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
3291 (mips_rtx_cost_data): Likewise.
3293 2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
3295 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
3296 PRE_INC and PRE_DEC cases.
3298 2008-06-06 Jakub Jelinek <jakub@redhat.com>
3300 PR rtl-optimization/36419
3301 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
3302 the emitting jump insn.
3305 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
3306 is not bool, boolify the whole *expr_p and convert to the desired type.
3308 2008-06-06 Jakub Jelinek <jakub@redhat.com>
3310 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
3311 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
3312 Add omp_private_outer_ref hook, add another argument to
3313 omp_clause_default_ctor hook.
3314 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
3315 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
3316 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
3317 hook_tree_tree_tree_tree_null.
3318 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
3319 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
3320 * hooks.c (hook_tree_tree_tree_tree_null): New function.
3321 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
3322 * tree.def (OMP_TASK): New tree code.
3323 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
3324 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
3325 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
3326 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
3327 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
3328 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
3329 OMP_CLAUSE_COLLAPSE_EXPR): Define.
3330 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3331 (OMP_DIRECTIVE_P): Add OMP_TASK.
3332 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
3333 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
3334 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
3335 and OMP_CLAUSE_UNTIED entries.
3336 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
3338 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3339 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
3340 * tree-pretty-print.c (dump_omp_clause): Handle
3341 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
3342 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3343 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
3344 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
3345 warning about unsigned iterators. Change decl/init/cond/incr
3346 arguments to TREE_VECs, check arguments for all collapsed loops.
3347 (c_finish_omp_taskwait): New function.
3348 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
3350 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
3351 default_function_array_conversion on init. Add par_clauses argument.
3352 If decl is present in parallel's lastprivate clause, change it to
3353 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
3354 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
3355 collapse count in clauses.
3356 (c_parser_omp_for, c_parser_omp_parallel): Adjust
3357 c_parser_omp_for_loop callers.
3358 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
3359 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
3360 (c_parser_omp_clause_name): Handle collapse and untied clauses.
3361 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
3363 (c_parser_omp_clause_schedule): Handle schedule(auto).
3364 Include correct location in the error message.
3365 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
3366 and PRAGMA_OMP_CLAUSE_UNTIED.
3367 (OMP_TASK_CLAUSE_MASK): Define.
3368 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
3369 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
3370 * tree-nested.c (convert_nonlocal_omp_clauses,
3371 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
3372 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
3373 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3374 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
3376 (conver_nonlocal_reference, convert_local_reference,