1 2007-07-21 Rafael Avila de Espindola <espindola@google.com>
3 * Makefile.in: Replace toplev.h with TOPLEV_H.
4 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
5 * c-lex.c (fe_file_change): Don't set in_system_header.
6 * c-parser.c (c_token): Remove in_system_header.
7 (c_lex_one_token): Don't set in_system_header.
8 (c_parser_set_source_position_from_token): Don't set in_system_header.
9 * diagnostic.c (diagnostic_report_diagnostic): Use location from
12 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
13 * flags.h (in_system_header): Remove.
14 * function.c (saved_in_system_header): Remove.
15 (push_cfun): Don't set in_system_header.
16 (pop_cfun): Don't set in_system_header.
17 (push_struct_function): Don't set in_system_header.
18 * input.h (expanded_location): Add sysp.
19 (in_system_header_at): New.
20 (in_system_header): New.
21 * toplev.c (in_system_header): Remove.
22 * toplev.h: Include input.h
24 * tree-cfg.c (execute_warn_function_return): Call warning_at.
25 * tree-ssa.c (warn_uninit): Call warning_at.
26 (warn_uninitialized_var): Update calls to warn_uninit.
27 (warn_uninitialized_phi): Update calls to warn_uninit.
28 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
29 (expand_location): Initialize xloc.sysp.
30 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
31 (tree_decl_with_vis): Remove in_system_header_flag.
33 2008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
36 * recog.c (asm_operand_ok): Change the order of the extra
37 memory constraint checks.
39 2008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
42 * tree-switch-conversion.c (build_one_array): Call
43 varpool_mark_needed_node and varpool_finalize_decl
44 instead of assemble_variable.
46 2008-07-19 Jan Hubicka <jh@suse.cz>
48 * cgraph.c (cgraph_add_new_function): Do early local passes.
49 * tree-nrv.c (gate_pass_return_slot): New gate.
50 (pass_nrv): Add the gate.
51 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
53 (coalesce_ssa_name): Coalesce SSA names.
54 * tree-ssa-live.c (remove_unused_locals): Be more conservative when
55 not optimizing so unused user vars remains visible.
56 * common.opt (flag_tree_ter): Always enable by default.
57 * tree-ssa-ter.c: Include flags.h
58 (is_replaceable_p): Check that locations match; when aliasing is missing
59 be conservative about loads.
60 * tree-optimize.c (gate_init_datastructures): Remove.
61 (pass_init_datastructures): New.
62 * passes.c: Reorder passes so we always go into SSA.
64 2008-07-19 Jan Hubicka <jh@suse.cz>
66 * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
67 * doc/invoke.texi (--combine): Likewise.
68 (-finline-functions-called-once): Update levels when enabled.
69 (-funit-at-a-time): Document new behaviour.
70 (-ftoplevel-reorder): Document that it is enabled -O0 and imply
71 -fno-section-anchors when disabled explicitly.
72 (inline params): They are not ignored now.
73 (precompiled headers): Remove unit-at-a-time as being incompatible.
74 * opts.c (decode_options): Handle unit-at-a-time as alias;
75 imply -fno-section-anchors when toplevel reorder is disabled
77 * common.opt (ftoplevel-reorder): Set default value to 2.
78 (funit-at-a-time): Set default value to 1.
79 * config/rs6000/rs6000.c (optimization_options): Set section anchors
82 2008-07-19 Jan Hubicka <jh@suse.cz>
84 * builtins.c (expand_builtin_int_roundingfn,
85 expand_builtin_int_roundingfn_2): Do not take subtarget argument;
88 2008-07-19 Richard Guenther <rguenther@suse.de>
91 * tree-ssa-sccvn.h (get_constant_value_id): Declare.
92 * tree-ssa-sccvn.c (get_constant_value_id): New function.
93 * tree-ssa-pre.c (get_expr_value_id): For newly created
94 constant value-ids make sure to add the expression to its
97 2008-07-19 Jakub Jelinek <jakub@redhat.com>
100 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
101 return value of the builtin is ignored.
103 2008-07-19 Olivier Hainque <hainque@adacore.com>
105 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
106 bits, a C conformant malloc implementation has to provide.
107 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
109 2008-07-19 Joseph Myers <joseph@codesourcery.com>
113 * reload.c (find_reloads_subreg_address): Only reload address if
114 reloaded == 0, not for reloaded != 1.
117 2008-07-16 Joseph Myers <joseph@codesourcery.com>
118 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
119 (m32c_legitimate_address_p): Handle "++rii" addresses created by
120 m32c_legitimize_reload_address.
122 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
123 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
124 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
126 2008-07-19 Olivier Hainque <hainque@adacore.com>
128 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
129 argument, saying whether nested array are to be collapsed
130 into a single array type DIE with multiple subscripts.
131 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
132 issues, centralize the nested array types collapsing control and
133 disable the transformation for Ada.
135 2008-07-18 Uros Bizjak <ubizjak@gmail.com>
138 * config/i386/i386.md (x86_64_shift_adj_1): Rename from
140 (x86_64_shift_adj_2): New expander.
141 (x86_64_shift_adj_3): Ditto.
142 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
143 to split TImode operands.
144 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
145 (ix86_split_lshr): Ditto.
147 2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
149 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
151 * c-typeck.c (digest_init): Support char16_t and char32_t.
152 (set_nonincremental_init_from_string): Idem.
154 2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
157 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
158 PREFERRED_STACK_BOUNDARY.
159 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
161 2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
164 * function.c (locate_and_pad_parm): Cap boundary earlier.
166 2008-07-17 Julian Brown <julian@codesourcery.com>
168 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
169 no-op for targets which don't use DLLs.
171 2008-07-17 Martin Jambor <mjambor@suse.cz>
173 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
174 that nodes are relevant by examining the node->analyzed flag.
175 (ipcp_init_stage): Check which nodes are relevant, assert that the
176 relevant ones are also required.
177 (ipcp_propagate_stage): Check on the side arrays are properly
179 (ipcp_print_all_jump_functions): Make sure not to touch any node
180 that is not analyzed or an edge that does not have a corresponding
181 entry in the on-the-side vectors.
182 (ipcp_function_scale_print): Likewise.
183 (ipcp_update_callgraph): Check that the node is relevant.
184 (ipcp_insert_stage): Check that the node is relevant. Check there is
185 an info for every node and edge.
186 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
187 (ipa_print_all_tree_maps): Likewise and a new variable info.
188 (ipa_print_all_params_modified): Likewise.
189 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
191 2008-07-17 Roman Zippel <zippel@linux-m68k.org>
194 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
196 2008-07-17 Paolo Bonzini <bonzini@gnu.org>
198 PR rtl-optimization/36753
199 * fwprop.c (use_killed_between): Don't shortcut
200 single-definition global registers.
202 2008-07-16 Jan Hubicka <jh@suse.cz>
204 * cgraph.h (varpool_empty_needed_queue): Declare.
205 * cgraphunit.c (output_in_order): Mark all variables as needed;
207 * varpool.c (varpool_assemble_node): Update debug queue.
208 (varpool_assemble_pending_decls): Don't do it here.
209 (varpool_empty_needed_queue): New function.
211 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
213 * recog.c (peephole2_optimize): Fix formatting.
215 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
217 * c-pch.c (get_ident): Avoid C++ keywords.
218 * combine-stack-adj.c (single_set_for_csa): Likewise.
219 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
220 output_asm_insn): Likewise.
221 * reload.c (push_secondary_reload, find_reusable_reload,
222 push_reload, combine_reloads, find_reloads,
223 debug_reload_to_stream): Likewise.
224 * reload.h (struct reload): Likewise.
225 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
226 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
227 emit_output_reload_insns): Likewise.
228 * targhooks.c (default_secondary_reload): Likewise.
229 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
231 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
233 * recog.c (validate_change_1, validate_change,
234 validate_unshare_change, validate_replace_rtx_1, struct
235 funny_match, constrain_operands, peephole2_optimize): Avoid C++
237 * reload.c (push_secondary_reload, secondary_reload_class,
238 scratch_reload_class, find_valid_class, find_reusable_reload,
239 push_reload, find_dummy_reload, find_reloads_address_1,
240 find_reloads_address_part, find_equiv_reg): Likewise.
241 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
242 choose_reload_regs): Likewise.
243 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
245 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
246 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
247 * sched-rgn.c (concat_INSN_LIST): Likewise.
248 * stor-layout.c (mode_for_size, mode_for_size_tree,
249 smallest_mode_for_size): Likewise.
251 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
253 * cfg.c (dump_reg_info): Avoid C++ keywords.
254 * dwarf2asm.c (dw2_force_const_mem,
255 dw2_asm_output_encoded_addr_rtx): Likewise.
256 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
257 * expmed.c (expand_shift): Likewise.
258 * global.c (find_reg): Likewise.
259 * graph.c (draw_edge): Likewise.
260 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
261 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
262 widen_clz, widen_bswap, expand_parity, expand_unop,
263 emit_cmp_and_jump_insn_1): Likewise.
264 * postreload.c (reload_cse_simplify_operands): Likewise.
265 * ra.h (add_neighbor): Likewise.
266 * reg-stack.c (remove_regno_note, change_stack): Likewise.
267 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
268 record_reg_classes, copy_cost, record_address_regs,
269 invalid_mode_change_p): Likewise.
270 * regrename.c (regrename_optimize, scan_rtx_reg,
271 dump_def_use_chain, find_oldest_value_reg,
272 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
274 2008-07-16 David Edelsohn <edelsohn@gnu.org>
276 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
277 MASK_POWERPC64 for power4 in previous commit.
279 2008-07-16 Olivier Hainque <hainque@adacore.com>
281 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
282 instead of bare conversion to cast const-ness away.
284 2008-07-16 Anatoly Sokolov <aesok@post.ru>
286 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
287 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
288 * config/xtensa/xtensa.c (xtensa_function_value): New function.
289 (TARGET_FUNCTION_VALUE): Define.
291 2008-07-16 David Edelsohn <edelsohn@gnu.org>
293 * config/rs6000/rs6000.c (processor_target_table): Add
294 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
296 2008-07-16 Joseph Myers <joseph@codesourcery.com>
299 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
300 (m32c_legitimate_address_p): Handle "++rii" addresses created by
301 m32c_legitimize_reload_address.
303 2007-07-16 Rafael Avila de Espindola <espindola@google.com>
305 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
306 DECL_IN_SYSTEM_HEADER in sync.
308 2008-07-15 Daniel Berlin <dberlin@dberlin.org>
310 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
311 * tree-ssa-pre.c (pre_expr_eq): Ditto
312 (get_constant_for_value_id): Take a type as an argument.
313 (fully_constant_expression): Pass in type.
314 (find_or_generate_expression): Short circuit constant case.
315 (create_expression_by_pieces): Remove special casing of
317 (do_regular_insertion): Short circuit constant case.
318 (do_partial_partial_insertion): Ditto.
320 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
323 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
325 2008-07-15 Bob Wilson <bob.wilson@acm.org>
327 * config/xtensa/libgcc-xtensa.ver: New file.
328 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
330 2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
332 * df-problems.c (df_set_note): Avoid C++ keywords.
333 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
334 * dse.c (record_store, remove_useless_values): Likewise.
335 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
336 gen_reg_rtx_offset, operand_subword, change_address_1,
337 change_address, adjust_address_1, offset_address,
338 widen_memory_access, emit_copy_of_insn_after): Likewise.
339 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
340 * fwprop.c (should_replace_address, propagate_rtx_1,
341 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
343 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
344 gcse_emit_move_after, update_ld_motion_stores): Likewise.
345 * lcm.c (compute_insert_delete, pre_edge_lcm,
346 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
347 * lower-subreg.c (resolve_reg_notes): Likewise.
348 * mode-switching.c (optimize_mode_switching): Likewise.
350 2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
352 * bt-load.c (add_btr_def, migrate_btr_def,
353 branch_target_load_optimize): Avoid C++ keywords.
354 * caller-save.c (insert_restore, insert_save, insert_one_insn):
356 * combine.c (subst, simplify_set, make_extraction,
357 make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
358 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
359 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
361 2008-07-15 Richard Guenther <rguenther@suse.de>
364 * c-common.c (strict_aliasing_warning): Do not warn for
365 TYPE_REF_CAN_ALIAS_ALL pointers.
366 (c_common_get_alias_set): may_alias types are not special.
367 * tree.c (build_pointer_type_for_mode): Look up the may_alias
368 attribute and set can_ref_all accordingly.
369 (build_reference_type_for_mode): Likewise.
370 * doc/extend.texi (may_alias): Clarify.
372 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
375 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
376 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
378 2008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
381 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
382 gcc_assert, instead call output_operand_lossage.
384 2008-07-15 Kai Tietz <kai.tietz@onevision.com>
386 * builtins.c (std_canonical_va_list): Treat structure based
389 2008-07-15 Ben Elliston <bje@au.ibm.com>
391 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
393 2007-07-14 Rafael Avila de Espindola <espindola@google.com>
395 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
398 2008-07-14 Jan Hubicka <jh@suse.cz>
400 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
401 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
402 fix predicates and constraints.
403 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
404 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
406 2008-07-14 Doug Kwan <dougkwan@google.com>
408 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
409 additional option file arm/eabi.opt.
410 * config/arm/eabi.h (File): New configuration file for EABI targets.
411 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
412 SUBSUBTARGET_EXTRA_SPECS.
413 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
414 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
415 from STARTFILE_SPEC so that it can be referenced in an override.
416 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
417 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
418 can be referenced in an override.
419 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
420 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
421 so that it can be referenced in an override.
422 (LINK_SPEC): Use BPABI_LINK_SPEC.
423 * config/arm/eabi.opt (File): New.
425 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
427 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
428 (FIXED_VALUE_H): New variable.
429 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
430 input.h, fixed-value.h.
431 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
432 (BASIC_BLOCK_H): Use $(BITMAP_H).
433 (FUNCTION_H): Add varray.h.
434 (IPA_REFERENCE_H): Use $(BITMAP_H).
435 (CGRAPH_H): Add $(BASIC_BLOCK_H).
436 (DF_H): Use $(BITMAP_H).
437 (GGC_H): Add statistics.h.
439 (INSN_ATTR_H): Use it.
440 (SYSTEM_H): Add safe-ctype.h, filenames.h.
442 (SYMTAB_H): Add $(OBSTACK_H).
443 (CPP_INTERNAL_H): New.
444 (TREE_DUMP_H): Add tree-pass.h.
445 (TREE_FLOW_H): Use $(BITMAP_H)
446 (PRETTY_PRINT_H): Use $(INPUT_H).
447 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
450 (many object files): Fix lots of header dependencies throughout.
452 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
454 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
456 (s-gtyp-input): Use them to write tmp-gi.list.
457 (echo_to_gi.list): Remove.
459 2008-07-14 Richard Guenther <rguenther@suse.de>
461 * tree-ssa-sccvn.c (pre_info): Remove.
462 (switch_to_PRE_table): Likewise.
463 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
464 (set_hashtable_value_ids): Do not create value-ids for the
466 (run_scc_vn): Remove double test. Remove bogus special-case
467 in value-number printing.
468 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
469 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
471 * tree-flow-inline.h (get_value_handle): Remove.
472 * tree-flow.h (get_value_handle): Remove.
474 2008-07-14 Martin Jambor <mjambor@suse.cz>
476 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
477 in which we generate arithmetics is not a subrange.
479 2008-07-14 Martin Jambor <mjambor@suse.cz>
481 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
483 2008-07-14 Richard Guenther <rguenther@suse.de>
485 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
487 2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
490 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
491 reload for symbol refs moved to r0 with -fPIC.
492 (legitimize_pic_address): Use the target register as temporary
494 (emit_symbolic_move): Adjust comment.
495 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
498 2008-07-14 Ben Elliston <bje@au.ibm.com>
500 * c-common.h (C_CPP_HASHNODE): New macro.
501 * coretypes.h (struct cpp_token): Forward declare.
502 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
503 the context-sensitive keyword method.
504 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
505 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
506 expand_bool_pixel): New.
507 (altivec_categorize_keyword): New function.
508 (init_vector_keywords): New function.
509 (rs6000_macro_to_expand): Likewise.
510 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
511 compiling an ISO C dialect.
513 2008-07-13 Daniel Berlin <dberlin@dberlin.org>
515 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
516 (create_expression_by_pieces): Fix typo.
517 (do_regular_insertion): Use debug counter here too.
519 2008-07-14 Hans-Peter Nilsson <hp@axis.com>
522 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
523 CONST_OK_FOR_LETTER_P. All port-local users changed.
524 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
525 implement Kp matching power-of-two.
526 (CONSTRAINT_LEN): Define to match.
527 * config/cris/cris.md: Replace all use of constraint K with Kc.
528 ("*btst*): Use Kp for operand 0 of last alternative.
530 2008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
533 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
536 2008-07-13 Jan Hubicka <jh@suse.cz>
538 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
541 2008-07-13 Richard Guenther <rguenther@suse.de>
544 * langhooks.c (lhd_print_error_function): Deal with recursive
547 2008-07-12 Jan Hubicka <jh@suse.cz>
549 * cgraph.c (assembler_name_hash): New static var.
550 (hash_node_by_assembler_name, eq_assembler_name): New.
551 (cgraph_node_for_asm): Use hashtable.
552 (cgraph_remove_node): Maintain hashtable.
553 (change_decl_assembler_name): Sanity check that names are not changing
554 after aliasing was processed.
555 * cgraph.h (varpoon_node): Add next GGC marker.
556 * tree.c (decl_assembler_name_equal): Constify.
557 (decl_assembler_name_hash): New.
558 * tree.h (decl_assembler_name_equal): Constify.
559 (decl_assembler_name_hash): Update.
561 2008-07-12 David Daney <ddaney@avtrex.com>
563 * config/mips/driver-native.c (host_detect_local_cpu): Handle
566 2008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
568 * doc/md.texi: Document the MIPS "v" constraint.
569 * config/mips/mips.h (reg_class): Revert last change.
570 (REG_CLASS_NAMES): Likewise.
571 (REG_CLASS_CONTENTS): Likewise.
572 * config/mips/mips.c (mips_regno_to_class): Likewise.
573 * config/mips/constraints.md (v): Likewise, but add documentation.
574 Add a comment to say that this constraint should not be used in
577 2008-07-11 DJ Delorie <dj@redhat.com>
579 * config/h8300/h8300.md (length): Fix branch offset limit.
581 2008-07-11 Anatoly Sokolov <aesok@post.ru>
583 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
584 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
585 (avr_hard_regno_scratch_ok): New function.
586 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
587 * config/avr/avr.md (all peepholes that request a scratch register):
588 Remove avr_peep2_scratch_safe use.
590 2008-07-11 Tom Tromey <tromey@redhat.com>
591 Ian Lance Taylor <iant@google.com>
593 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
594 (struct c_common_resword): Define.
595 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
596 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
597 (c_common_reswords, num_c_common_reswords): Declare.
598 * c-common.c (c_common_reswords): New global const array.
599 (num_c_common_reswords): New const int.
600 * c-parser.c (struct resword, reswords): Don't define.
601 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
602 (c_parse_init): Clarify mask code. Use c_common_reswords rather
603 than reswords. If warning about C++ keywords, give them a special
605 (c_lex_one_token): Warn about C++ keywords. Call
606 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
607 (c_parser_external_declaration): Look for RID_xxx rather than
608 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
609 (c_parser_statement_after_labels): Likewise.
610 (c_parser_objc_class_instance_variables): Likewise.
611 (c_parser_objc_class_declaration): Likewise.
612 (c_parser_objc_try_catch_statement): Likewise.
613 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
614 (declspecs_add_type): Likewise.
616 2008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
618 * ggc-page.c (alloc_page):
619 Substituting xmalloc, xcalloc with
620 XNEWVEC and XCNEWVAR macros which add the
623 2008-07-11 Richard Guenther <rguenther@suse.de>
625 PR tree-optimization/36765
626 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
627 aliases from HEAP vars to SMTs.
629 2008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
631 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
632 * configure.ac (loose_warn): Move -Wc++-compat from here...
633 (strict_warn): ...to here.
634 * configure: Regenerate.
636 2008-07-10 Joseph Myers <joseph@codesourcery.com>
638 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
639 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
640 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
641 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
642 excluding more specific h8300-*-* and sh-*-* targets.
644 2008-07-10 Daniel Berlin <dberlin@dberlin.org>
646 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
648 (execute_pre): Call loop_optimizer_finalize in early exit.
650 2008-07-10 Jakub Jelinek <jakub@redhat.com>
653 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
654 uids in the bitmap, not just VAR_DECL uids.
656 PR rtl-optimization/36419
657 * combine-stack-adj.c (adjust_frame_related_expr): New function.
658 (combine_stack_adjustments_for_block): Call it if needed. Delete
660 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
661 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
662 prologue sp adjustment.
664 2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
667 * opts.c (print_ignored_options): Report postponed diagnostics for
668 unknown -Wno-* options as warnings, not errors.
669 (postpone_unknown_option_error): Renamed to...
670 (postpone_unknown_option_warning): ... this.
672 2008-07-09 Doug Kwan <dougkwan@google.com>
675 2008-07-08 Doug Kwan <dougkwan@google.com>
677 * config/arm/arm.opt (mandroid): New option.
678 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
679 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
681 (CC1PLUS_SPEC): Same.
683 (STARTFILE_SPEC): Same.
684 (ENDFILE_SPEC): Same.
685 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
688 2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
691 * config/mips/mips.h (reg_class): Remove V1_REG.
692 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
693 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
695 (mips_get_tp): New function.
696 (mips_legitimize_tls_address): Use it.
697 * config/mips/constraints.md (v): Delete.
698 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
699 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
700 After reload, split into a move and ...
701 (*tls_get_tp_<mode>_split): ...this new instruction.
703 2008-07-09 David Daney <ddaney@avtrex.com>
705 * config/mips/driver-native.c: Include coretypes.h and tm.h.
707 2008-07-09 Jakub Jelinek <jakub@redhat.com>
709 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
710 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
712 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
713 htab_delete should be called. Don't free c.
714 (lookup_tmp_var): Create temp_htab lazily.
715 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
716 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
718 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
719 lower_omp_ordered, lower_omp_critical, lower_omp_for,
720 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
721 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
722 * tree-sra.c (generate_element_init): Likewise.
723 * tree-mudflap.c (execute_mudflap_function_ops,
724 execute_mudflap_function_decls): Likewise.
725 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
726 * tree-gimple.h (struct gimplify_ctx): New type.
727 (push_gimplify_context): Adjust prototype.
729 2008-07-09 Daniel Berlin <dberlin@dberlin.org>
731 * tree-ssa-pre.c (phi_translate_1): Update placement of
734 2008-07-09 Anatoly Sokolov <aesok@post.ru>
736 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
737 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
738 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
739 * targhooks.c (default_hard_regno_scratch_ok): New function.
740 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
741 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
742 * recog.c: Include "target.h".
743 (peep2_find_free_register): Add check for global regs. Add target
745 * Makefile.in (recog.o): Depend on target.h.
747 2008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
749 * config/sh/sh.c (sh_canonical_va_list_type): New.
750 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
752 2008-07-09 Raksit Ashok <raksit@google.com>
754 * doc/invoke.texi (Option Summary): Mention new option
755 -Wdisallowed-function-list=...
756 (Warning Options): Document -Wdisallowed-function-list=...
757 * common.opt (Wdisallowed-function-list=): New flag.
758 * flags.h (warn_disallowed_functions): External definition of new
759 boolean warning flag.
760 (warn_if_disallowed_function_p): Declare new function.
761 * opts.c (warning_disallowed_functions): New static variable.
762 (warn_disallowed_functions): New boolean warning flag.
763 (warn_if_disallowed_function_p): New function.
764 (add_comma_separated_to_vector): Rename
765 add_instrument_functions_exclude_list to this.
766 (common_handle_option): Handle new option. Rename calls to
767 add_instrument_functions_exclude_list into calls to
768 add_comma_separated_to_vector.
769 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
770 based on flag warn_disallowed_functions.
772 2008-07-09 Christian Bruel <christian.bruel@st.com>
774 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
775 instead of get_attr_length.
777 2008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
779 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
781 * genemit.c (gen_insn): Likewise.
782 * gengtype.c (note_def_vec): Likewise.
783 * gengtype.h (note_def_vec): Likewise.
784 * genoutput.c (struct data, output_insn_data, process_template,
785 gen_expand, gen_split, note_constraint): Likewise.
786 * genrecog.c (new_decision, add_to_sequence, factor_tests,
787 make_insn_sequence): Likewise.
788 * gensupport.c (record_insn_name): Likewise.
790 2008-07-08 Doug Kwan <dougkwan@google.com>
792 * config/arm/arm.opt (mandroid): New option.
793 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
794 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
796 (CC1PLUS_SPEC): Same.
798 (STARTFILE_SPEC): Same.
799 (ENDFILE_SPEC): Same.
800 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
803 2008-07-08 Raksit Ashok <raksit@google.com>
805 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
806 (set_storage_via_setmem): Fix expected_align parameter.
807 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
808 missing from the list.
809 * doc/md.texi (movmem): Explicitly state that expected alignment is
810 to be expressed in bytes.
811 (setmem): Explicitly state that expected alignment is to be expressed
814 2008-07-08 Joseph Myers <joseph@codesourcery.com>
816 * reload.c (find_reloads_subreg_address): Do not require validity
817 of address in original mode before reloading address.
819 2008-07-07 Tianwei Sheng <tianweis@google.com>
821 * df-core.c (df_remove_problem): Adjust the access to avoid out of
824 2008-07-08 Jakub Jelinek <jakub@redhat.com>
826 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
828 2008-07-05 Daniel Berlin <dberlin@dberlin.org>
830 Fix PR tree-optimization/23455
831 Fix PR tree-optimization/35286
832 Fix PR tree-optimization/35287
833 * Makefile.in (OBJS-common): Remove tree-vn.o.
835 * dbgcnt.def: Add treepre_insert debug counter.
836 * gcc/tree-flow.h (add_to_value): Updated for other changes.
837 (debug_value_expressions): Ditto.
838 (print_value_expressions): Ditto.
839 * tree-pretty-print.c (dump_generic_node): Updated for
840 VALUE_HANDLE removal.
841 * tree-ssa-dom.c (record_equality): Ditto.
842 (cprop_operand): Ditto.
843 (lookup_avail_expr): Ditto.
844 * tree-ssa-threadedge.c
845 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
846 (simplify_control_stmt_condition): Ditto.
847 * tree.c (tree_code_size): Ditto.
848 (tree_node_structure): Ditto.
849 (iterative_hash_expr): Ditto.
851 * tree.h (VALUE_HANDLE_ID): Ditto.
852 (VALUE_HANDLE_EXPR_SET): Ditto.
853 (struct tree_value_handle): Ditto.
854 (union tree_node): Ditto.
855 * treestruct.def: Ditto.
856 * tree-vn.c: Removed.
857 * tree-ssa-pre.c: Rewritten entirely.
858 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
859 (constant_value_ids): Ditto.
860 (vn_nary_op_t): Moved to header.
862 (vn_reference_op_t): Ditto
863 (vn_reference_t): Ditto.
864 (next_value_id): New variable.
865 (VN_INFO): Add an assert.
866 (vn_constant_eq): New function.
867 (vn_constant_hash): Ditto.
868 (get_or_alloc_constant_value_id): Ditto.
869 (value_id_constant_p): Ditto.
870 (vn_reference_compute_hash): De-staticify.
871 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
872 Disable some code with a FIXME. Remove VALUE_HANDLE use.
873 (valueize_refs): Update opcode if it changes from ssa name to constant.
874 (vn_reference_lookup_1): Add new argument.
875 (vn_reference_lookup): Ditto.
876 (vn_reference_lookup_pieces): New function.
877 (vn_reference_insert): Add return type. Modify to deal with value ids.
878 (vn_reference_insert_pieces): New function.
879 (vn_nary_op_compute_hash): De-staticify.
880 (vn_nary_op_eq): Ditto.
881 (vn_nary_op_lookup_pieces): New function.
882 (vn_nary_op_lookup): Add new argument.
883 (vn_nary_op_insert_pieces): New function.
884 (vn_nary_op_insert): Add return type. Modify to deal with value ids.
885 (vn_phi_insert): Ditto.
886 (visit_unary_op): Update for callee changes.
887 (visit_binary_op): Ditto.
888 (visit_reference_op_load): Ditto.
889 (visit_reference_op_store): Ditto.
890 (init_scc_vn): Init next_value_id, constant_to_value_id and
892 (free_scc_vn): Free them.
893 (set_hashtable_value_ids): New function.
894 (run_scc_vn): Use it.
895 (get_max_value_id): New function.
896 (get_next_value_id): Ditto.
897 (expressions_equal_p): Moved from tree-vn.c
899 (sort_vuses_heap): Ditto.
900 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
902 * tree.c (iterative_hash_hashval_t): Made non-static
903 * tree.h (iterative_hash_hashval_t): Declare it.
905 2008-07-08 Martin Jambor <mjambor@suse.cz>
907 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
908 instead of ipa_create_node_params.
909 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
910 ipa_check_create_edge_args, free them with
911 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
913 * ipa-prop.c: Include flags.h and tree-inline.h.
914 (ipa_node_params_vector): New variable.
915 (ipa_edge_args_vector): New variable.
916 (edge_removal_hook_holder): New variable.
917 (node_removal_hook_holder): New variable.
918 (edge_duplication_hook_holder): New variable.
919 (node_duplication_hook_holder): New variable.
920 (ipa_detect_param_modifications): Check for presence of modified flags.
921 (ipa_compute_jump_functions): Check for presence of jump functions.
922 (ipa_free_edge_args_substructures): New function.
923 (ipa_create_node_params): Removed.
924 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
925 (ipa_free_node_params_substructures): New function.
926 (ipa_free_all_node_params): Changed to deallocate the on-the-side
928 (ipa_edge_removal_hook): New function.
929 (ipa_node_removal_hook): New function.
930 (duplicate_array): New function.
931 (ipa_edge_duplication_hook): New function.
932 (ipa_node_duplication_hook): New function.
933 (ipa_register_cgraph_hooks): New function.
934 (ipa_unregister_cgraph_hooks): New function.
935 (free_all_ipa_structures_after_ipa_cp): New function.
937 * ipa-prop.h: Include vec.h.
938 (ipa_node_params_t): New typedef with vector types for it.
939 (ipa_edge_args_t): New typedef with vector types for it.
940 (IPA_NODE_REF): Changed to access an on-the-side vector.
941 (IPA_EDGE_REF): Changed to access an on-the-side vector.
942 (ipa_check_create_node_params): New function.
943 (ipa_check_create_edge_args): New function.
945 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
948 2008-07-07 Tom Tromey <tromey@redhat.com>
950 * configure, config.in: Rebuilt.
951 * configure.ac: Don't check for scandir or alphasort.
953 2008-07-07 Joseph Myers <joseph@codesourcery.com>
955 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
956 types immediately after creating them.
958 2008-07-07 Joseph Myers <joseph@codesourcery.com>
960 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
962 2008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
964 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
965 dump_constraint_graph.
966 (dump_constraint_edge): New function.
967 (dump_constraint_graph): New function.
968 (debug_constraint_graph): New function.
969 (dump_constraint): Removed useless comparison.
970 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
971 (dump_constraint_graph): Declare.
972 (debug_constraint_graph): Declare.
973 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
975 2008-07-07 Kai Tietz <kai.tietz@onevision.com>
977 * config/i386/i386.c (is_va_list_char_pointer): New.
978 (ix86_va_start): Replace compare with ms_va_list_type_node
979 by is_va_list_char_pointer.
980 (ix86_gimplify_va_arg): Likewise.
982 2008-07-07 Martin Jambor <mjambor@suse.cz>
984 * cgraph.c (cgraph_edge_max_uid): New variable.
985 (struct cgraph_edge_hook_list): New type.
986 (struct cgraph_node_hook_list): New type.
987 (struct cgraph_2edge_hook_list): New type.
988 (struct cgraph_2node_hook_list): New type.
989 (first_cgraph_edge_removal_hook): New variable.
990 (first_cgraph_node_removal_hook): New variable.
991 (first_cgraph_edge_duplicated_hook): New variable.
992 (first_cgraph_node_duplicated_hook): New variable.
993 (cgraph_add_edge_removal_hook): New function.
994 (cgraph_remove_edge_removal_hook): New function.
995 (cgraph_call_edge_removal_hooks): New function.
996 (cgraph_add_node_removal_hook): New function.
997 (cgraph_remove_node_removal_hook): New function.
998 (cgraph_call_node_removal_hooks): New function.
999 (cgraph_add_edge_duplication_hook): New function.
1000 (cgraph_remove_edge_duplication_hook): New function.
1001 (cgraph_call_edge_duplication_hooks): New function.
1002 (cgraph_add_node_duplication_hook): New function.
1003 (cgraph_remove_node_duplication_hook): New function.
1004 (cgraph_call_node_duplication_hooks): New function.
1005 (cgraph_create_edge): Assign to edge uid.
1006 (cgraph_remove_edge): Call edge removal hooks.
1007 (cgraph_node_remove_callees): Call edge removal hooks.
1008 (cgraph_node_remove_callers): Call edge removal hooks.
1009 (cgraph_remove_node): Call node removal hooks.
1010 (cgraph_clone_edge): Call edge duplication hooks.
1011 (cgraph_clone_node): Call node duplication hooks.
1013 * cgraph.h (cgraph_edge): New field uid.
1014 (cgraph_edge_hook): New type.
1015 (cgraph_node_hook): New type.
1016 (cgraph_2edge_hook): New type.
1017 (cgraph_2node_hook): New type.
1019 2008-07-07 Andreas Tobler <a.tobler@schweiz.org>
1021 * config.in: Regenerate.
1023 2008-07-07 Vladimir Prus <vladimir@codesourcery.com>
1025 * gcc.c (print_sysroot): New.
1026 (option_map, display_help, process_command): Handle the
1027 -print-sysroot option.
1028 (main): Print the sysroot if requested.
1029 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
1031 2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1034 * unwind-pe.h (size_of_encoded_value): add attribute unused.
1036 2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
1038 * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
1039 (assign_parm_setup_block_p): Also check mode of entry_parm.
1041 2008-07-07 Richard Guenther <rguenther@suse.de>
1043 * tree-ssa-structalias.h (set_used_smts): Remove.
1044 * tree-ssa-structalias.c (used_smts): Likewise.
1045 (set_used_smts): Likewise.
1046 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
1047 call to set_used_smts.
1049 2008-07-07 Richard Guenther <rguenther@suse.de>
1051 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
1052 (new_var_info): Set it to false.
1053 (solution_set_add): Correctly handle pointers outside a var and
1055 (type_safe): Treat variables with is_full_var properly.
1056 (do_sd_constraint): Likewise.
1057 (do_ds_constraint): Likewise.
1058 (process_constraint): Remove zeroing offset for !use_field_sensitive.
1059 (get_constraint_for_ptr_offset): New function.
1060 (get_constraint_for_component_ref): For addresses at least include
1061 the last field of the variable. Handle is_full_vars properly.
1062 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
1063 (handle_ptr_arith): Remove.
1064 (find_func_aliases): Simplify assignment handling.
1065 (create_function_info_for): For parameter and result varinfos set
1067 (create_variable_info_for): Set is_full_var flag whenever we
1068 just created a single varinfo for a decl.
1069 (init_alias_vars): Initialize use_field_sensitive from
1070 max-fields-for-field-sensitive parameter.
1072 2008-07-07 Richard Guenther <rguenther@suse.de>
1074 PR tree-optimization/36713
1075 * tree-flow-inline.h (is_call_used): New function.
1076 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
1077 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1078 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
1080 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
1082 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
1084 2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
1086 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
1088 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
1089 Nathan Sidwell <nathan@codesourcery.com>
1091 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
1092 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
1094 * config/m68k/t-linux: New.
1095 * doc/install.texi: Document m68k-*-linux is now multilibbed by
1098 2008-07-07 Nathan Sidwell <nathan@codesourcery.com>
1100 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
1101 * config/m68k/m68k-devices.def: Remove multilibs that only differ
1104 2008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1106 * gcc.c (execute): Fix -Wc++-compat warning.
1108 2008-07-06 H.J. Lu <hongjiu.lu@intel.com>
1111 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
1112 constant for little endian.
1114 2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
1116 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
1117 mips_base_mips16 instead of TARGET_MIPS16.
1118 (mips_base_mips16): Declare.
1119 * config/mips/mips.c (mips_base_mips16): Make global.
1120 (was_mips16_p): Remove GTY marker.
1121 (was_mips16_pch_p): New variable.
1122 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
1123 (mips_override_options): Force to non-MIPS16 mode initially.
1124 Do not complain about MIPS16 PIC incompatibilities here.
1125 Only allow -mgpopt if -mexplicit-relocs is in force for
1128 2008-07-06 Andreas Tobler <a.tobler@schweiz.org>
1130 * configure.ac: Check for caddr_t, define to char * if not defined.
1131 * configure: Regenerate.
1132 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
1133 (mmap_gt_pch_use_address): Likewise.
1134 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
1136 2008-07-06 Richard Guenther <rguenther@suse.de>
1138 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
1139 (new_var_info): Deal with it.
1140 (solution_set_add): Likewise.
1141 (bitpos_of_field): Make signed, fix.
1142 (struct fieldoff): Remove type and decl fields. Make size field
1143 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
1145 (fieldoff_compare): Deal with it.
1146 (push_fields_onto_fieldstack): Remove has_union argument, glob
1147 adjacent non-pointer fields together.
1148 (create_function_info_for): Do not set has_union.
1149 (create_variable_info_for): Simplify.
1151 2008-07-06 Kai Tietz <kai.tietz@onevision.com>
1153 * config.gcc (extra_headers): Add cross-stdarg.h for target
1154 x86_64-*-* and i?86-*-*.
1155 * config/i386/cross-stdarg.h: New.
1156 * builtins.c (std_fn_abi_va_list): New.
1157 (std_canonical_va_list_type): New.
1158 (stabilize_va_list): Replace va_list_type_node use by
1159 mtarget.canonical_va_list_type.
1160 (gimplify_va_arg_expr): Likewise.
1161 (expand_builtin_va_copy): Replace va_list_type_node use by
1162 mtarget.fn_abi_va_list.
1163 * tree-sra.c (is_va_list_type): New helper.
1164 (decl_can_be_decomposed_p): Replace
1165 va_list_type_node use by is_va_list_type.
1166 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
1167 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1168 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
1169 * config/i386/i386-protos.h (ix86_get_valist_type): New.
1170 (ix86_enum_va_list): New.
1171 * config/i386/i386.c (sysv_va_list_type_node): New.
1172 (ms_va_list_type_node): New.
1173 (ix86_function_type_abi): Remove sorry.
1174 (ix86_build_builtin_va_list_abi): New.
1175 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
1177 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
1178 (ix86_init_builtins_va_builtins_abi): New.
1179 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
1181 (ix86_handle_abi_attribute): New.
1182 (attribute_spec): Add sysv_abi and ms_abi.
1183 (ix86_fn_abi_va_list): New.
1184 (ix86_canonical_va_list_type): New.
1185 (ix86_enum_va_list): New.
1186 (TARGET_FN_ABI_VA_LIST): New.
1187 (TARGET_CANONICAL_VA_LIST_TYPE): New.
1188 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
1189 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
1190 (TARGET_CANONICAL_VA_LIST_TYPE): New.
1191 (TARGET_ENUM_VA_LIST): New.
1192 * expr.h (std_fn_abi_va_list): New.
1193 (std_canonical_va_list_type): New.
1194 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
1195 (TARGET_CANONICAL_VA_LIST_TYPE): New.
1196 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
1197 TARGET_CANONICAL_VA_LIST_TYPE.
1198 * target.h (struct gcc_target): Add fn_abi_va_list hook
1199 and canonical_va_list_type hook.
1201 2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1203 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
1204 integral and pointer types.
1206 2008-07-04 Roger Sayle <roger@eyesopen.com>
1208 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
1209 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
1211 2008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
1214 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
1216 2008-07-04 Jakub Jelinek <jakub@redhat.com>
1218 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
1219 build_gimple_modify_stmt.
1220 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
1221 gimple operand. Use fold_build* instead of build*.
1223 2008-07-04 Richard Guenther <rguenther@suse.de>
1225 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
1226 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
1227 properly to compute the reachability set if we do field-sensitive PTA.
1228 * invoke.texi (max-fields-for-field-sensitive): Document default.
1229 * opts.c (decode_options): Set max-fields-for-field-sensitive to
1230 100 for optimize >= 2.
1232 2008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1234 * ggc-zone.c (lookup_page_table_if_allocated,
1235 set_page_table_entry, zone_find_object_size, alloc_small_page,
1236 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
1237 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
1238 -Wc++-compat and/or -Wcast-qual warnings.
1240 2008-07-04 Alan Modra <amodra@bigpond.net.au>
1243 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
1244 pic_offset_table_rtx to be marked as used here.
1245 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
1246 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
1247 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
1248 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
1251 2008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1253 * alloc-pool.c (hash_descriptor, eq_descriptor,
1254 alloc_pool_descriptor): Fix -Wc++-compat warnings.
1255 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
1257 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
1258 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
1259 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
1260 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
1263 2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
1265 * tree-flow.h (loop_only_exit_p): Declare.
1266 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
1267 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
1268 the number of iterations if it is constant. Otherwise, if this is the
1269 only possible exit of the loop, use the conservative estimate on the
1270 number of iterations of the entire loop if available.
1272 2008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
1274 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
1275 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
1276 Add synchronization functions.
1277 * config/sync.c: New file.
1278 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
1279 (LIBGCC_SYNC_CFLAGS): Likewise.
1281 2008-07-03 Uros Bizjak <ubizjak@gmail.com>
1284 * config/i386/i386.md (mode): Add TF to "mode" attribute.
1285 (*pushtf_sse): New insn pattern.
1286 (pushtf splitters): New splitters.
1288 2008-07-03 Michael Meissner <gnu@the-meissners.org>
1291 * predict.c (build_predict_expr): Use void_type_node for the tree
1292 type, instead of NULL_TREE.
1294 2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
1296 * config/i386/i386.c (contains_aligned_value_p): Return true
1298 (ix86_data_alignment): Align TCmode to 128bits.
1299 (ix86_local_alignment): Likewise.
1301 2008-07-03 Andrew Haley <aph@redhat.com>
1304 * vec.h (VEC_TA): New.
1305 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
1306 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
1307 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
1308 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
1309 (C_COMMON_FIXED_TYPES): Remove first arg.
1310 (C_COMMON_FIXED_MODE_TYPES): Likewise.
1311 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
1312 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
1313 not to use empty macro arguments.
1315 2008-07-02 Joseph Myers <joseph@codesourcery.com>
1317 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
1318 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
1319 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
1320 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
1321 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
1322 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
1323 config/ia64/crtn.asm, config/m68hc11/larith.asm,
1324 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
1325 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
1326 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1327 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1328 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1329 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
1330 config/rs6000/e500crtres64gpr.asm,
1331 config/rs6000/e500crtres64gprctr.asm,
1332 config/rs6000/e500crtrest32gpr.asm,
1333 config/rs6000/e500crtrest64gpr.asm,
1334 config/rs6000/e500crtresx32gpr.asm,
1335 config/rs6000/e500crtresx64gpr.asm,
1336 config/rs6000/e500crtsav32gpr.asm,
1337 config/rs6000/e500crtsav64gpr.asm,
1338 config/rs6000/e500crtsav64gprctr.asm,
1339 config/rs6000/e500crtsavg32gpr.asm,
1340 config/rs6000/e500crtsavg64gpr.asm,
1341 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
1342 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
1343 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
1344 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
1345 config/sparc/sol2-cn.asm: Remove .file directives.
1347 2008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
1349 * resource.c (mark_referenced_resources): Look inside
1350 UNSPEC_VOLATILEs and ASM_INPUTs.
1352 2008-07-02 Ian Lance Taylor <iant@google.com>
1354 * rtlanal.c (add_reg_note): New function.
1355 * rtl.h (add_reg_note): Declare.
1356 * auto-inc-dec.c (attempt_change): Use add_reg_note.
1357 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
1358 * builtins.c (expand_builtin_longjmp): Likewise.
1359 (expand_builtin_nonlocal_goto): Likewise.
1360 * calls.c (emit_call_1, expand_call): Likewise.
1361 * cfgexpand.c (add_reg_br_prob_note): Likewise.
1362 * cfglayout.c (fixup_reorder_chain): Likewise.
1363 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
1364 (commit_one_edge_insertion): Likewise.
1365 * combine.c (move_deaths, distribute_notes): Likewise.
1366 * df-problems.c (df_set_note): Likewise.
1367 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
1368 (set_unique_reg_note): Likewise.
1369 (emit_copy_of_insn_after): Likewise.
1370 * expr.c (expand_expr_real): Likewise.
1371 * gcse.c (add_label_notes): Likewise.
1372 * haifa-sched.c (create_check_block_twin): Likewise.
1373 * jump.c (mark_jump_label_1): Likewise.
1374 * loop-doloop.c (add_test, doloop_modify): Likewise.
1375 * loop-unswitch.c (compare_and_jump_seq): Likewise.
1376 * lower-subreg.c (move_eh_region_note): Likewise.
1377 * optabs.c (emit_libcall_block): Likewise.
1378 * predict.c (predict_insn): Likewise.
1379 (combine_predictions_for_insn): Likewise.
1380 * recog.c (peephole2_optimize): Likewise.
1381 * regmove.c (try_auto_increment): Likewise.
1382 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
1383 * reload.c (find_reloads): Likewise.
1384 * reload1.c (fixup_eh_region_note): Likewise.
1385 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
1386 * reorg.c (delete_prior_computation): Likewise.
1387 (delete_computation, dbr_schedule): Likewise.
1388 * config/pa/pa.c (legitimize_pic_address): Likewise.
1389 * config/sh/sh.c (sh_reorg): Likewise.
1391 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
1394 * config/libgcc-glibc.ver: Add %exclude.
1395 * config/m32r/libgcc-glibc.ver: Likwise.
1396 * config/s390/libgcc-glibc.ver: Likwise.
1397 * config/sh/libgcc-glibc.ver: Likwise.
1398 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
1400 * config/i386/libgcc-glibc.ver: New.
1402 * config/i386/libgcc-x86_64-glibc.ver: Removed.
1404 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
1406 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
1407 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
1408 i[34567]86-*-linux*, x86_64-*-linux*. Add
1409 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
1410 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
1411 x86_64-*-linux*. Add i386/t-linux to tmake_file for
1412 i[34567]86-*-linux*, x86_64-*-linux*.
1414 * libgcc-std.ver: Add empty GCC_4.4.0.
1416 * mkmap-symver.awk: Support multiple versions per symbol.
1418 * config/i386/i386.c (ix86_init_builtins): Always define
1419 __builtin_fabsq and __builtin_copysignq with fallbacks.
1420 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
1421 and __builtin_copysignq if SSE2 isn't available.
1423 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
1424 (LIBGCC2_TF_CEXT): Likwise.
1427 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
1429 * config/i386/sfp-machine.h: Moved to libgcc.
1431 * config/i386/sfp-machine.h: New.
1432 * config/i386/t-linux: Likwise.
1434 * config/i386/t-darwin: Remove softfp_wrap_start and
1436 * config/i386/t-darwin64: Likewise.
1438 * config/i386/t-fprules-softfp64: Renamed to ...
1439 * config/i386/t-fprules-softfp: This.
1441 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
1442 and softfp_wrap_end.
1444 2008-07-02 Jason Merrill <jason@redhat.com>
1446 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
1448 * tree.c (ctor_to_list): New fn.
1449 * tree.h: Declare it.
1450 (CONSTRUCTOR_ELT): New macro.
1451 (CONSTRUCTOR_NELTS): New macro.
1453 2008-07-02 Richard Guenther <rguenther@suse.de>
1455 * tree-ssa-structalias.c (struct variable_info): Reorder
1456 to fill padding on 64bit hosts. Make collapsed_to an int.
1457 (get_varinfo_fc): Deal with that.
1458 (new_var_info): Likewise.
1459 (collapse_rest_of_var): Likewise.
1461 2008-07-02 Joshua Sumali <jsumali@redhat.com>
1463 * doc/install.texi (--enable-java-home): Document.
1464 (--enable-aot-compile-rpm): Likewise.
1465 (--with-arch-directory): Likewise.
1466 (--with-os-directory): Likewise.
1467 (--with-origin-name): Likewise.
1468 (--with-arch-suffix): Likewise.
1469 (--with-jvm-root-dir): Likewise.
1470 (--with-jvm-jar-dir): Likewise.
1471 (--with-python-dir): Likewise.
1473 2008-07-02 Richard Guenther <rguenther@suse.de>
1475 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
1476 from decls explicitly. Merge operand checking from tuples.
1478 2008-07-02 Martin Jambor <mjambor@suse.cz>
1480 * tree-switch-conversion.c: Included timevar.h which I forgot before.
1482 2008-07-02 Martin Jambor <mjambor@suse.cz>
1484 * tree-switch-conversion.c: Included timevar.h
1485 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
1487 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
1489 2008-07-02 Martin Jambor <mjambor@suse.cz>
1491 * tree-switch-conversion.c: Corrected various comments and
1493 (build_constructors): Fixed minor formatting mistakes.
1495 * invoke.texi (Optimize Options): Corrected the
1496 switch-conversion-max-branch-ratio parameter.
1498 2008-07-02 Mark Shinwell <shinwell@codesourcery.com>
1500 * final.c (asm_insn_count): Return zero for an empty asm body.
1502 2008-07-02 Richard Guenther <rguenther@suse.de>
1504 * bitmap.h (bitmap_set_bit): Return bool.
1505 (bitmap_clear_bit): Likewise.
1506 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
1507 write to the bitmap if it would.
1508 (bitmap_clear_bit): Likewise.
1509 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
1510 bitmap_set_bit return value.
1511 (add_pred_graph_edge): Likewise.
1512 (add_graph_edge): Likewise.
1513 (do_sd_constraint): Likewise.
1514 (do_ds_constraint): Likewise.
1516 2008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1518 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
1519 Fix -Wc++-compat and/or -Wcast-qual warnings.
1520 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
1521 gen_regparm_prefix): Likewise.
1522 * vmsdbgout.c (write_modbeg, lookup_filename,
1523 vmsdbgout_source_line, vmsdbgout_init): Likewise.
1525 2008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
1527 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
1528 defaults.h definition apply.
1530 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1532 * function.c (assign_parm_remove_parallels): New.
1533 (assign_parm_setup_block_p): Do not return true for non-BLKmode
1535 (assign_parm_setup_block): Do not handle them.
1536 (assign_parm_setup_reg, assign_parm_setup_stack): Call
1537 assign_parm_remove_parallels.
1539 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1541 * c-typeck.c (convert_for_assignment): Use
1542 vector_targets_convertible_p.
1543 * c-common.c (vector_targets_convertible_p): New.
1544 * c-common.h (vector_targets_convertible_p): New prototype.
1545 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
1546 opaque_p_V2SI_type_node.
1548 2008-07-01 Steve Ellcey <sje@cup.hp.com>
1550 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
1553 2008-07-01 Uros Bizjak <ubizjak@gmail.com>
1555 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
1556 TFmode constants via two element DImode vector for hosts with
1557 HOST_BITS_PER_WIDE_INT < 64.
1558 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
1559 also for HOST_BITS_PER_WIDE_INT < 64.
1561 2008-07-01 Richard Guenther <rguenther@suse.de>
1563 PR tree-optimization/36666
1564 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
1565 (get_constraint_exp_from_ssa_var): Split into ...
1566 (get_constraint_exp_for_temp): ... this ...
1567 (get_constraint_for_ssa_var): ... and that.
1568 Return constraint expressions for all touched sub-fields
1569 if the results address is not taken.
1570 (process_constraint): Remove assertion that aggregate
1571 assignments do not happen at this place.
1572 (get_constraint_for_component_ref): Add address_p argument.
1573 Return constraint expressions for all touched sub-fields
1574 if the results address is not taken.
1575 (do_deref): Use get_constraint_exp_for_temp.
1576 (get_constraint_for_1): Rename from ...
1577 (get_constraint_for): ... this. Add the old function as wrapper.
1578 (do_structure_copy): Use get_constraint_for_1.
1580 2008-07-01 Martin Jambor <mjambor@suse.cz>
1582 * Makefile.in (tree-switch-conversion.o): Add.
1583 (OBJS-common): Add tree-swtch-conversion.o.
1584 * passes.c (init_optimization_passes): Add pass_convert_switch.
1585 * tree-pass.h: (pass_convert_switch): Add.
1586 * tree-switch-conversion.c: New file.
1587 * gcc.dg/tree-ssa/cswtch.c: New testcase.
1588 * common.opt (ftree-cswtch): New option.
1589 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1590 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1591 * opts.c (decode_options): Set flag_tree_switch_conversion when
1592 optimization level is >= 2.
1593 * doc/invoke.texi (Optimize Options): Added description of
1594 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
1596 2008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1598 * config/darwin-driver.c (darwin_default_min_version): Fix
1599 -Wc++-compat warnings.
1601 2008-06-30 Uros Bizjak <ubizjak@gmail.com>
1603 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
1606 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1608 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
1610 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1612 PR rtl-optimization/34744
1613 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
1614 (df_scan_free_internal): Free data structures not
1615 allocated in storage pools.
1616 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
1617 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
1618 df_scan_free_mws_vec.
1619 * dse.c (dse_step6): Free offset_map_p and offset_map_n
1622 2008-06-30 H.J. Lu <hongjiu.lu@intel.com>
1624 * config/i386/i386.c (contains_aligned_value_p): Return true
1626 (ix86_function_arg_boundary): Return its natural boundary
1628 (return_in_memory_32): Don't check TDmode.
1629 (ix86_split_to_parts): Support splitting into 4 parts and
1630 support TFmode for 32bit target.
1631 (ix86_split_long_move): Support splitting into 4 parts.
1632 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
1634 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
1635 (ix86_init_builtins): Here.
1636 (ix86_scalar_mode_supported_p): Always return true for TFmode.
1637 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
1638 'q' and 'w', respectively.
1640 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
1642 (movtf_internal): Likewise.
1643 (<code>tf2): Likewise.
1644 (*absnegtf2_sse): Likewise.
1645 (copysign<mode>3): Likewise.
1646 (copysign<mode>3_const): Likewise.
1647 (copysign<mode>3_var): Likewise.
1648 (define_split UNSPEC_COPYSIGN): Likewise.
1649 * config/i386/sse.md (*nandtf3): Likewise.
1650 (<code>tf3): Likewise.
1651 (*<code>tf3): Likewise.
1653 2008-06-30 Joey Ye <joey.ye@intel.com>
1654 H.J. Lu <hongjiu.lu@intel.com>
1656 * global.c (compute_regsets): Set frame_pointer_needed here.
1657 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
1659 2008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1661 * doc/install.texi (specific): Expand Windows build notes.
1663 2008-06-30 Ira Rosen <irar@il.ibm.com>
1665 PR tree-optimization/36648
1666 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
1667 number of prolog iterations by step. Fix the comment.
1669 2008-06-30 Richard Guenther <rguenther@suse.de>
1672 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
1673 handle calls from ECF_MALLOC functions.
1674 (handle_pure_call): ECF_MALLOC functions do not return
1676 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
1678 2008-06-29 Andreas Schwab <schwab@suse.de>
1680 * config/m68k/m68k.c (print_operand): Always print a float
1682 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
1683 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
1686 * config/rs6000/x-linux64: Remove never used file.
1688 2008-06-29 Richard Guenther <rguenther@suse.de>
1690 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
1692 (struct alias_info): Move ...
1693 * tree-ssa-alias.c: ... here.
1694 (update_alias_info): Declare.
1695 (compute_may_aliases): Call it.
1696 (update_alias_info): New function.
1697 * tree-ssa-structalias.c (update_alias_info): Move ...
1698 * tree-ssa-alias.c (update_alias_info_1): ... here.
1699 * tree-ssa-structalias.c (process_constraint_1): Remove
1700 unused from_call argument. Rename to ...
1701 (process_constraint): ... this. Delete old wrapper.
1702 (make_constraint_to): Adjust callers.
1703 (handle_const_call): Likewise.
1704 (handle_pure_call): Likewise.
1705 (init_base_vars): Likewise.
1706 (handle_lhs_call): Likewise. Remove unnecessary constraint.
1707 (find_func_aliases): We don't need structure copies for
1709 (make_constraint_from_anything): Remove.
1710 (create_variable_info_for): For globals make constraints
1711 from escaped, not from anything.
1712 (compute_points_to_sets): Do not call update_alias_info.
1713 (ipa_pta_execute): Use make_constraint_from.
1715 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1717 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
1718 (bitmap.o-warn, dominance.o-warn): New.
1719 * configure.ac (cxx_compat_warn): Delete.
1720 (loose_warn): Add -Wcast-qual and -Wc++-compat.
1721 * system.h: Remove #pragma diagnostic for -Wcast-qual and
1723 * configure: Regenerate.
1725 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
1728 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1730 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
1731 * df-scan.c (df_notes_rescan): Likewise.
1732 * ggc-page.c (set_page_table_entry): Likewise.
1733 * intl.c (gcc_gettext_width): Likewise.
1734 * varasm.c (get_unnamed_section, get_noswitch_section,
1735 get_section): Likewise.
1737 2008-06-28 Andrew Jenner <andrew@codesourcery.com>
1739 * regrename.c (build_def_use): Don't copy RTX.
1741 2008-06-28 Sandra Loosemore <sandra@codesourcery.com>
1743 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
1744 (Type Attributes): Fix nesting of @table and @subsection. Adjust
1745 punctuation. Use @ref instead of @xref.
1746 (Function Names): Remove stray @display/@end display.
1747 (C++ Attributes): Use @ref instead of @xref.
1748 (Deprecated Features): Fix punctuation around @xref.
1749 (Backwards Compatibility): Likewise.
1750 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
1752 2008-06-28 Joseph Myers <joseph@codesourcery.com>
1754 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
1755 constants for E500 double.
1757 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1759 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
1760 element type of const_vector.
1762 2008-06-28 Uros Bizjak <ubizjak@gmail.com>
1764 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
1765 Remove FLAGS_REG clobber from expander pattern.
1766 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
1767 (anddi3, andsi3, andhi3, andqi3): Ditto.
1768 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
1769 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
1770 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
1771 (ashlsi3, ashlhi3, ashlqi3): Ditto.
1772 (ashrsi3, ashrhi3, ashrqi3): Ditto.
1773 (lshrsi3, lshrhi3, lshrqi3): Ditto.
1774 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
1775 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
1777 2008-06-28 Richard Guenther <rguenther@suse.de>
1779 * tree-ssa-structalias.c (callused_id, var_callused,
1780 callused_tree): Add.
1781 (handle_pure_call): New function.
1782 (find_func_aliases): Call it.
1783 (find_what_p_points_to): Handle the call-used set.
1784 (clobber_what_escaped): Likewise.
1785 (compute_call_used_vars): New function.
1786 (init_base_vars): Init the call-used variable.
1787 (do_sd_constraint): Do not propagate the solution from CALLUSED
1788 but use CALLUSED as a placeholder.
1789 (solve_graph): Likewise.
1790 * tree-flow-inline.h (gimple_call_used_vars): New function.
1791 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
1792 (compute_call_used_vars): Declare.
1793 * tree-ssa-alias.c (set_initial_properties): Call
1794 compute_call_used_vars.
1795 (reset_alias_info): Clear call-used variables.
1796 (add_call_clobber_ops): Assert we are not called for const/pure
1797 functions. Remove handling of them.
1798 (add_call_read_ops): Handle pure functions by adding the
1799 call-used set of variables as VUSEs.
1800 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
1801 (delete_tree_ssa): Free it.
1802 * tree-dfa.c (remove_referenced_var): Clear the var from the
1805 2008-06-28 Kai Tietz <kai.tietz@onevision.com>
1807 * tree.c (build_varargs_function_type_list): New.
1808 (build_function_type_list_1): New.
1809 (build_function_type_list): Use build_function_type_list_1.
1810 * tree.h (build_varargs_function_type_list): New.
1812 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1815 * config/spu/spu.c (spu_builtin_splats): Do not generate
1816 invalid CONST_VECTOR expressions.
1817 (spu_expand_vector_init): Likewise.
1819 2008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
1821 * optabs.c (libfunc_decls): New variable.
1822 (libfunc_decl_hash, libfunc_decl_eq): New functions.
1823 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
1824 for the same function twice.
1826 2008-06-27 Uros Bizjak <ubizjak@gmail.com>
1828 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
1829 ix86_expand_binary_operator directly.
1830 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
1832 (*ashrti3_1): Ditto.
1833 (*lshrti3_1): Ditto.
1834 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
1835 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
1836 using only one splitter. Conditionaly execute splitter before or
1837 after peephole2 pass.
1838 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
1839 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
1840 Use only one alternative in asm template.
1841 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
1843 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
1844 "J" operand constraint for operand 2.
1845 (*ashldi3_cconly_rex64): Ditto.
1846 (*ashrdi3_cmp_rex64): Ditto.
1847 (*ashrdi3_cconly_rex64): Ditto.
1848 (*lshrdi3_cmp_rex64): Ditto.
1849 (*lshrdi3_cconly_rex64): Ditto.
1850 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
1851 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
1852 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
1855 2008-06-27 Jakub Jelinek <jakub@redhat.com>
1857 * gimplify.c (omp_is_private): Don't return true if decl is not
1858 already private on #pragma omp for or #pragma omp parallel for.
1861 * tree-cfg.c (struct move_stmt_d): Replace block field with
1862 orig_block and new_block fields.
1863 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
1864 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
1865 (move_block_to_fn): Replace vars_map and new_label_map arguments
1866 with struct move_stmt_d pointer.
1867 (replace_block_vars_by_duplicates): New function.
1868 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
1869 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
1870 all subblocks of ORIG_BLOCK to the new function. Call
1871 replace_block_vars_by_duplicates.
1872 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
1873 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
1874 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
1875 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
1876 (expand_omp): Temporarily set input_location to the location of
1877 region's controlling stmt.
1878 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
1879 BIND_EXPR, push ctx->block_vars and gimplification vars into
1880 the BIND_EXPR and its block's BLOCK_VARS instead of directly
1882 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
1883 there are any BLOCK_VARS.
1884 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
1885 OMP_PARALLEL or OMP_TASK stmt.
1886 (lower_omp): Save and restore input_location around the lower_omp_1
1889 2008-06-27 Richard Guenther <rguenther@suse.de>
1891 PR tree-optimization/36400
1892 PR tree-optimization/36373
1893 PR tree-optimization/36344
1894 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
1895 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
1896 (update_alias_info): Remove call clobbering code.
1897 (make_constraint_to): New helper function.
1898 (make_escape_constraint): Likewise.
1899 (handle_rhs_call): Use it on all pointer containing arguments.
1900 Also mark the static chain escaped.
1901 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
1902 instead of ANYTHING.
1903 (make_constraint_from): New helper split out from ...
1904 (make_constraint_from_anything): ... here.
1905 (find_func_aliases): Add constraints for escape sites.
1906 (intra_create_variable_infos): Make constraints from NONLOCAL
1908 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
1910 (clobber_what_p_points_to): Remove.
1911 (clobber_what_escaped): New function.
1912 (init_base_vars): Init NONLOCAL and ESCAPED.
1913 (do_sd_constraint): Do not propagate the solution from ESCAPED
1914 but use ESCAPED as a placeholder.
1915 (solve_graph): Likewise.
1916 * tree-flow.h (clobber_what_p_points_to): Remove.
1917 (clobber_what_escaped): Declare.
1918 * tree-ssa-alias.c (set_initial_properties): Call it.
1919 Remove code clobbering escaped pointers.
1921 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1923 * function.c (allocate_struct_function): Only allocate a unique
1924 funcdef_no if the decl is nonzero.
1926 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1928 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
1929 * config/mips/mips.c (mips_split_const_insns): New function.
1930 * config/mips/mips.md (move_type): New attribute.
1931 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
1932 (dword_mode): New attribute.
1933 (type): Avoid long line. Map "move_type"s to "type"s,
1934 choosing "multi" for doubleword moves if appropriate.
1935 Swap MTC/MFC comments to match their declaration order.
1936 (extended_mips16): Default to "yes" if "move_type" is "sll0",
1937 "type" is "branch" or "jal" is "direct".
1938 (length): Handle "extended_mips16" first. Make the default
1939 "0" for "ghost" instructions. Set the length from "move_type".
1940 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
1941 of "type", with "sll0" for the register alternative. Remove the
1942 "extended_mips16" attribute.
1943 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
1944 of "type", with "shift_shift" for the register alternative.
1945 Remove the "length" attribute.
1946 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
1947 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
1948 of "type", with "andi" for the register alternative.
1949 (*zero_extendqihi2): Likewise.
1950 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
1951 of "andi" instead of a "type" of "arith".
1952 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
1954 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
1955 (mov_<store>r, *mov<mode>_ra): Likewise.
1956 (extendsidi2): Use "move_type" instead of "type", with "move"
1957 for the register alternative.
1958 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
1959 of "type", with "signext" for the register alternative.
1960 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
1961 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
1962 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
1963 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
1964 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
1965 (unnamed branch insn): Likewise.
1966 (*movdi_gp32_fp64): Fold into...
1967 (*movdi_32bit): ...here.
1968 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
1969 (*movdf_hardfloat): ...this new pattern.
1970 (*movdf_softfloat): Remove redundant FPR alternatives.
1971 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
1972 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
1973 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
1974 the "move" attribute.
1975 (*movdi_32bit): Use "move_type" instead of "type" and remove the
1976 "length" attribute. Use "fpload" and "fpstore" instead of "load"
1977 and "store" for COP loads and stores.
1978 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
1979 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
1980 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
1981 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
1982 (*movtf_mips16, *movv2sf): Likewise.
1983 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
1984 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1985 (mfhc1<mode>): Use "move_type" instead of "move".
1986 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
1987 (loadgp_blockage): Remove the "length" attribute.
1988 (blockage, set_got_version, update_got_version): Likewise.
1989 (call_internal): Remove the "extended_mips16" attribute.
1990 (call_value_internal, call_value_multiple_internal): Likewise.
1991 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
1993 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
1994 the "length" attribute.
1996 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1998 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
1999 -Wcast-qual warnings.
2000 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
2001 handle_pragma_pop_macro): Likewise.
2002 * collect2.c (resolve_lib_name): Likewise.
2003 * config/arc/arc.c (arc_init): Likewise.
2004 * config/arm/arm.c (neon_builtin_compare,
2005 locate_neon_builtin_icode): Likewise.
2006 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
2007 * config/bfin/bfin.c (bfin_init_machine_status,
2008 bfin_optimize_loop): Likewise.
2009 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2010 * config/cris/cris.c (cris_init_expanders): Likewise.
2011 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
2012 * config/darwin.c (machopic_indirection_eq,
2013 machopic_indirection_name, machopic_output_indirection): Likewise.
2014 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
2015 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
2016 frv_optimize_membar): Likewise.
2017 * config/i386/cygwin.h (mingw_scan,
2018 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
2019 * config/i386/cygwin1.c (mingw_scan): Likewise.
2020 * config/i386/i386.c (machopic_output_stub): Likewise.
2021 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
2022 i386_pe_unique_section): Likewise.
2023 * config/ia64/ia64.c (ia64_init_machine_status,
2024 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
2026 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
2027 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
2028 * config/m68k/m68k.c (m68k_handle_option,
2029 m68k_sched_md_init_global): Likewise.
2030 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
2031 mcore_unique_section): Likewise.
2032 * config/mips/mips.c (mips_block_move_straight,
2033 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
2035 * config/mmix/mmix.c (mmix_init_machine_status,
2036 mmix_encode_section_info): Likewise.
2037 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
2038 * config/rs6000/rs6000.c (rs6000_init_machine_status,
2039 print_operand_address, output_toc, redefine_groups,
2040 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
2041 * config/s390/s390.c (s390_init_machine_status): Likewise.
2042 * config/score/score.c (score_block_move_straight,
2043 score_block_move_loop_body): Likewise.
2044 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2045 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2046 * emit-rtl.c (find_auto_inc): Likewise.
2047 * gcc.c (translate_options, process_command): Likewise.
2048 * reorg.c (dbr_schedule): Likewise.
2049 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
2050 * xcoffout.c (xcoffout_declare_function): Likewise.
2052 2008-06-27 Daniel Berlin <dberlin@dberlin.org>
2054 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
2055 ipa-pta working again.
2057 2008-06-27 David Edelsohn <edelsohn@gnu.org>
2059 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
2062 2008-06-27 Edmar Wienskoski <edmar@freescale.com>
2064 * config.gcc (powerpc*-*-*): Add new core e500mc.
2065 * config/rs6000/e500mc.md: New file.
2066 * config/rs6000/rs6000.c (processor_costs): Add new costs for
2068 (rs6000_override_options): Add e500mc case to
2069 processor_target_table. Altivec and Spe options not allowed
2070 with e500mc. Add isel instruction to e500mc by
2071 default. Initialize rs6000_cost for e500mc.
2072 (rs6000_issue_rate): Set issue rate for e500mc.
2073 * config/rs6000/rs6000.h (processor_type): Add
2074 PROCESSOR_PPCE500MC.
2075 (ASM_CPU_SPEC): Add e500mc.
2076 Set TARGET_ISEL to rs6000_isel.
2077 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
2078 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
2079 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
2081 * doc/invoke.texi: Add e500mc to list of cpus.
2083 2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2086 * c-lex.c (lex_charconst): Initialize unsignedp.
2088 2008-06-27 Olivier Hainque <hainque@adacore.com>
2090 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
2091 documented assumptions.
2093 2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
2095 * dwarf2out.c: Remove trailing white spaces. Break long line
2098 2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
2100 * libfuncs.h (LTI_synchronize): New libfunc_index.
2101 (synchronize_libfunc): Declare.
2102 * builtins.c (expand_builtin_synchronize): Consider using
2103 synchronize_libfunc before falling back on an asm blockage.
2104 * config/mips/mips.c: Include libfuncs.h
2105 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
2107 2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
2109 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
2110 parameter. Copy stack_reg to r11 where appropriate.
2111 (no_global_regs_above): Add gpr parameter.
2112 (rs6000_stack_info): Only add padding for SPE save area if we
2113 are saving SPE GPRs and CR.
2114 (saveres_routine_syms): New variable.
2115 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
2117 (rs6000_savres_routine_sym): New function.
2118 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
2120 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
2121 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
2122 Tweak FPR out-of-line saving.
2123 (rs6000_make_savres_rtx): New function.
2124 (rs6000_use_multiple_p): New function.
2125 (rs6000_savres_strategy): New function.
2126 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
2127 out-of-line if appropriate.
2128 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
2129 if we are optimizing for size.
2130 (GP_SAVE_INLINE): Define.
2131 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
2132 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
2133 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
2134 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
2135 (*save_fpregs_<mode>): Add use of r11.
2136 (*restore_gpregs_<mode>): New insn.
2137 (*return_and_restore_gpregs_<mode>): New insn.
2138 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
2140 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
2141 (*restore_gpregs_spe): New insn.
2142 (*return_and_restore_gpregs_spe): New insn.
2143 * config/rs6000/predicates.md (save_world_operation): Fix check.
2145 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
2147 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
2148 this point, so assert that.
2150 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
2152 * cfganal.c: Include vec.h and vecprim.h.
2153 (compute_idf): Import from...
2154 * tree-into-ssa (compute_idf): ...here.
2155 * basic-block.h (compute_idf): Export.
2157 2008-06-26 Joseph Myers <joseph@codesourcery.com>
2159 * c-decl.c (merge_decls): Use !current_function_decl to check for
2160 extern declaration of C99 inline function being at file scope.
2162 2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
2164 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
2166 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2168 * alias.c (record_alias_subset, init_alias_analysis): Fix
2169 -Wc++-compat and/or -Wcast-qual warnings.
2170 * attribs.c (lookup_attribute_spec): Likewise.
2171 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
2172 copy_bb, connect_traces,
2173 find_rarely_executed_basic_blocks_and_cr): Likewise.
2174 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
2175 note_btr_set, migrate_btr_defs): Likewise.
2176 * builtins.c (result_vector, expand_builtin_memcpy,
2177 expand_builtin_mempcpy_args, expand_builtin_strncpy,
2178 builtin_memset_read_str, expand_builtin_printf,
2179 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
2181 * caller-save.c (mark_set_regs): Likewise.
2182 * calls.c (expand_call, emit_library_call_value_1): Likewise.
2183 * cgraph.c (cgraph_edge): Likewise.
2184 * combine.c (likely_spilled_retval_1): Likewise.
2185 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
2186 htab_counts_entry_del, get_coverage_counts): Likewise.
2187 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
2188 new_cselib_val): Likewise.
2189 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
2190 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
2192 * df-core.c (df_compact_blocks): Likewise.
2193 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
2194 * df-scan.c (df_grow_reg_info, df_ref_create,
2195 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
2196 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
2197 df_record_entry_block_defs, df_record_exit_block_uses,
2198 df_bb_verify): Likewise.
2199 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
2200 DF_REF_EXTRACT_MODE_CONST): New.
2201 * dominance.c (get_immediate_dominator, get_dominated_by,
2202 nearest_common_dominator, root_of_dom_tree,
2203 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
2204 -Wc++-compat and/or -Wcast-qual warnings.
2205 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
2206 record_store, replace_read, check_mem_read_rtx, scan_insn,
2207 dse_step1, dse_record_singleton_alias_set): Likewise.
2208 * dwarf2asm.c (dw2_force_const_mem): Likewise.
2210 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2212 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
2213 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
2214 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
2215 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
2216 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
2217 add_ranges_num, add_ranges_by_labels, file_info_cmp,
2218 file_name_acquire, output_file_names, add_const_value_attribute,
2219 premark_used_types_helper, file_table_eq, file_table_hash,
2220 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
2221 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
2222 -Wcast-qual warnings.
2223 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
2224 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
2225 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
2226 gen_reg_rtx, start_sequence, init_emit): Likewise.
2227 * et-forest.c (et_new_occ, et_new_tree): Likewise.
2228 * except.c (init_eh_for_function, gen_eh_region,
2229 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
2230 arh_to_landing_pad, arh_to_label, add_action_record,
2231 add_call_site, switch_to_exception_section): Likewise.
2232 * expmed.c (synth_mult): Likewise.
2233 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
2234 store_expr): Likewise.
2235 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
2237 * function.c (assign_stack_temp_for_type,
2238 allocate_struct_function, match_asm_constraints_1): Likewise.
2239 * gcov-io.c (gcov_allocate): Likewise.
2240 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
2241 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
2242 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
2243 record_one_set, insert_expr_in_table, insert_set_in_table,
2244 dump_hash_table, compute_hash_table_work, alloc_hash_table,
2245 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
2246 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
2247 -Wcast-qual warnings.
2249 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2251 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
2252 -Wcast-qual warnings.
2253 * gcc.c (process_command): Likewise.
2254 * genattrtab.c (oballoc): Use XOBNEW.
2255 (oballocvec): Define.
2256 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
2257 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
2258 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
2259 -Wc++-compat and/or -Wcast-qual warnings.
2260 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
2261 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
2262 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
2263 gen_presence_absence_set, gen_automaton, gen_regexp_el,
2264 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
2265 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
2266 add_excls, process_presence_absence_names,
2267 process_presence_absence_patterns, add_presence_absence,
2268 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
2269 get_free_state, add_arc, get_free_automata_list_el,
2270 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
2271 transform_3, cache_presence, create_ainsns, create_automata,
2272 create_state_ainsn_table, dfa_insn_code_enlarge,
2273 output_trans_func, output_min_issue_delay_func,
2274 output_dead_lock_func, output_reset_func,
2275 output_get_cpu_unit_code_func, output_dfa_start_func,
2276 expand_automata): Likewise.
2277 * genextract.c (gen_insn): Likewise.
2278 * gengtype-lex.l: Likewise.
2279 * gengtype.c (read_input_list, adjust_field_type,
2280 process_gc_options): Likewise.
2281 * genoutput.c (note_constraint): Likewise.
2282 * genpreds.c (mangle, add_constraint): Likewise.
2283 * genrecog.c (process_define_predicate, new_decision,
2284 add_to_sequence): Likewise.
2285 * gensupport.c (record_insn_name): Likewise.
2287 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2289 * config/i386/driver-i386.c (detect_caches_amd,
2290 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
2291 and/or -Wcast-qual warnings.
2292 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
2293 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
2294 gt_pch_save): Likewise.
2295 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
2296 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
2297 * global.c (compute_regsets): Likewise.
2298 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
2299 finish_graph_dump_file): Likewise.
2300 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
2301 unlink_bb_notes): Likewise.
2302 * integrate.c (get_hard_reg_initial_val): Likewise.
2303 * ipa-prop.c (ipa_push_func_to_list): Likewise.
2304 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
2305 * local-alloc.c (update_equiv_regs): Likewise.
2306 * loop-invariant.c (check_invariant_table_size,
2307 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
2309 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
2310 altered_reg_used, mark_altered): Likewise.
2311 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
2312 insert_var_expansion_initialization,
2313 combine_var_copies_in_loop_exit, apply_opt_in_copies,
2314 release_var_copies): Likewise.
2315 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
2316 analyze_matrix_decl, add_allocation_site, analyze_transpose,
2317 analyze_accesses_for_phi_node, check_var_notmodified_p,
2318 check_allocation_function, find_sites_in_func,
2319 record_all_accesses_in_func, transform_access_sites,
2320 transform_allocation_sites): Likewise.
2321 * omp-low.c (new_omp_region, create_omp_child_function_name,
2322 check_omp_nesting_restrictions, check_combined_parallel,
2323 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
2324 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
2325 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
2326 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
2328 * opts-common.c (prune_options): Likewise.
2329 * opts.c (add_input_filename, print_filtered_help,
2330 get_option_state): Likewise.
2331 * params.c (add_params): Likewise.
2332 * passes.c (set_pass_for_id, next_pass_1,
2333 do_per_function_toporder, pass_fini_dump_file): Likewise.
2334 * postreload.c (reload_cse_simplify_operands): Likewise.
2335 * predict.c (tree_predicted_by_p, tree_predict_edge,
2336 clear_bb_predictions, combine_predictions_for_bb): Likewise.
2338 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2340 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
2342 * recog.c (check_asm_operands, validate_change_1): Likewise.
2343 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
2344 subst_asm_stack_regs): Likewise.
2345 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
2346 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
2347 * regmove.c (reg_is_remote_constant_p): Likewise.
2348 * regrename.c (regrename_optimize, scan_rtx_reg,
2349 kill_clobbered_value, kill_set_value, kill_autoinc_value):
2351 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
2352 regstat_compute_calls_crossed): Likewise.
2353 * reload1.c (init_reload, new_insn_chain,
2354 has_nonexceptional_receiver, reload, copy_reloads,
2355 calculate_needs_all_insns, init_elim_table): Likewise.
2356 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
2357 * rtl.c (shallow_copy_rtx_stat): Likewise.
2358 * rtlanal.c (parms_set): Likewise.
2359 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
2360 sbitmap_resize, sbitmap_vector_alloc): Likewise.
2361 * sched-ebb.c (earliest_block_with_similiar_load,
2362 add_deps_for_risky_insns): Likewise.
2363 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
2364 schedule_region): Likewise.
2365 * see.c (eq_descriptor_pre_extension,
2366 hash_descriptor_pre_extension, hash_del_pre_extension,
2367 eq_descriptor_properties, hash_descriptor_properties,
2368 hash_del_properties, see_seek_pre_extension_expr,
2369 see_initialize_data_structures, see_print_register_properties,
2370 see_print_pre_extension_expr, see_delete_merged_def_extension,
2371 see_delete_unmerged_def_extension, see_emit_use_extension,
2372 see_pre_delete_extension, see_map_extension, see_commit_changes,
2373 see_analyze_merged_def_local_prop,
2374 see_analyze_merged_def_local_prop,
2375 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
2376 see_set_prop_merged_def, see_set_prop_unmerged_def,
2377 see_set_prop_unmerged_use, see_print_one_extension,
2378 see_merge_one_use_extension, see_merge_one_def_extension,
2379 see_store_reference_and_extension, see_update_uses_relevancy,
2380 see_update_defs_relevancy): Likewise.
2381 * statistics.c (hash_statistics_hash, hash_statistics_eq,
2382 hash_statistics_free, curr_statistics_hash): Likewise.
2383 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
2384 expand_asm_operands, expand_return, case_bit_test_cmp,
2385 expand_case): Likewise.
2386 * stor-layout.c (start_record_layout): Likewise.
2387 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
2388 gt_pch_save_stringpool): Likewise.
2389 * tree-data-ref.c (hash_stmt_vertex_info,
2390 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
2391 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
2393 2008-06-25 Uros Bizjak <ubizjak@gmail.com>
2396 * config/i386/i386.md : Change constraints of HImode and QImode
2397 immediate operands from "i" to "n". Change SImode "ni" constraint to
2398 "i" and SImode "rmi" constraint to "g". Remove all constraints
2399 from const0_operand and const1_operand predicated operands.
2400 (i): Change QImode and HImode attribute from "i" to "n".
2401 (*subqi_2): Change HImode operands to QImode.
2404 2008-06-25 Olivier Hainque <hainque@adacore.com>
2406 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
2409 2008-06-25 Richard Guenther <rguenther@suse.de>
2411 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
2412 not overflow the result type.
2414 2008-06-25 Richard Guenther <rguenther@suse.de>
2416 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
2417 (vn_lookup): Likewise.
2419 2008-06-25 Richard Guenther <rguenther@suse.de>
2421 PR tree-optimization/35518
2422 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
2423 * tree-sra.c (instantiate_element): Use fold_build3 to build
2425 (try_instantiate_multiple_fields): Likewise.
2427 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2429 * config/rs6000/rs6000.md: Change all string instruction's clobber to
2432 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2434 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
2435 use_backchain_to_restore_sp to true
2436 if the offset of the link register save area would go over the 32k - 1
2437 offset limit of the load
2440 2008-06-25 Hans-Peter Nilsson <hp@axis.com>
2442 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
2443 anchor for the type-punning blurb. Cross-reference "Structures
2444 unions enumerations and bit-fields implementation". Provide a
2445 cast-through-pointer example. Make final sentence self-contained.
2446 * doc/implement-c.texi (Structures unions enumerations and
2447 bit-fields implementation): Cross-reference the type-punning blurb
2448 in the -fstrict-aliasing documentation.
2450 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2453 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
2454 the memory instead of the memory itself for the save area.
2456 2008-06-24 Olivier Hainque <hainque@adacore.com>
2457 Nicolas Roche <roche@adacore.com>
2459 * gengtype.c (srcdir_len): size_t instead of int.
2460 (get_file_realbasename): New function. For F a filename, the real
2461 basename of F, with all the path components stripped.
2462 (get_file_srcdir_relative_path): New function. For F a filename, the
2463 relative path to F from $(srcdir).
2464 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
2465 get_file_realbasename. Adjust the head comment.
2466 (get_prefix_langdir_index): New function. For F a filename, return the
2467 lang_dir_names[] relative index of the language directory that is
2469 (get_file_langdir): For F a filename, return the name of the language
2470 directory where F is located.
2471 (get_file_gtfilename): New function. The gt- output file name for an
2473 (get_output_file_with_visibility): Replace in-line computations with
2474 uses of get_file_gtfilename and get_prefix_langdir_index.
2475 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
2477 2008-06-24 Jakub Jelinek <jakub@redhat.com>
2479 PR tree-optimization/36504
2480 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
2481 references without base address.
2483 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2486 * calls.c (expand_call): Increase alignment for recursive functions.
2488 2008-06-23 Anatoly Sokolov <aesok@post.ru>
2490 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
2491 (TARGET_FUNCTION_VALUE): New define.
2492 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
2493 * config/avr/avr.h (FUNCTION_VALUE): Remove.
2495 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2497 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
2498 (fmod<mode>3): Ditto.
2499 (remainderxf3): Ditto.
2500 (remainder<mode>3): Ditto.
2502 2008-06-23 Jakub Jelinek <jakub@redhat.com>
2505 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
2506 REG is a hard register.
2508 PR tree-optimization/36508
2509 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
2510 499, don't check it at all in release compilers.
2512 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2514 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
2515 together with SSE_TARGET_MATH to disable insn pattern.
2516 (*fop_<MODEF:mode>_2_i387): Ditto.
2517 (*fop_<MODEF:mode>_3_i387): Ditto.
2519 2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
2521 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
2523 2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2526 * gimplify.c (gimplify_asm_expr): Check the return code of
2527 parse_output_constraint call, set function return and is_inout
2530 2008-06-22 Ian Lance Taylor <iant@google.com>
2532 * c-lex.c (narrowest_unsigned_type): Change itk to int.
2533 (narrowest_signed_type): Likewise.
2534 * c-typeck.c (c_common_type): Change local variable mclass to enum
2536 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
2537 tcc_comparison, not the tree code itself.
2538 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
2539 (c_expand_expr): Cast modifier to enum expand_modifier.
2540 * c-common.h (C_RID_CODE): Add casts.
2541 (C_SET_RID_CODE): Define.
2542 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
2543 (c_lex_one_token): Add cast to avoid warning.
2544 (c_parser_objc_type_name): Rename local typename to type_name.
2545 (check_no_duplicate_clause): Change code parameter to enum
2547 (c_parser_omp_var_list_parens): Change kind parameter to enum
2549 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
2550 c_parser_omp_list_var_parens.
2551 (c_parser_omp_threadprivate): Likewise.
2552 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
2553 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
2554 * c-format.c (NO_FMT): Define.
2555 (printf_length_specs): Use NO_FMT.
2556 (asm_fprintf_length_specs): Likewise.
2557 (gcc_diag_length_specs): Likewise.
2558 (scanf_length_specs): Likewise.
2559 (strfmon_length_specs): Likewise.
2560 (gcc_gfc_length_specs): Likewise.
2561 (printf_flag_specs): Change 0 to STD_C89.
2562 (asm_fprintf_flag_specs): Likewise.
2563 (gcc_diag_flag_specs): Likewise.
2564 (gcc_cxxdiag_flag_specs): Likewise.
2565 (scanf_flag_specs): Likewise.
2566 (strftime_flag_specs): Likewise.
2567 (strfmon_flag_specs): Likewise.
2568 (print_char_table): Likewise.
2569 (asm_fprintf_char_table): Likewise.
2570 (gcc_diag_char_table): Likewise.
2571 (gcc_tdiag_char_table): Likewise.
2572 (gcc_cdiag_char_table): Likewise.
2573 (gcc_cxxdiag_char_table): Likewise.
2574 (gcc_gfc_char_table): Likewise.
2575 (scan_char_table): Likewise.
2576 (time_char_table): Likewis.
2577 (monetary_char_table): Likewise.
2578 * c-format.h (BADLEN): Likewise.
2580 2008-06-21 Ian Lance Taylor <iant@google.com>
2582 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
2583 Define END_OF_BASE_TREE_CODES around inclusion.
2584 * tree.c (tree_code_type): New global array.
2585 (tree_code_length, tree_code_name): Likewise.
2586 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
2588 (all-tree.def, s-alltree): New targets.
2589 (gencheck.h, s-gencheck): Remove.
2590 (tree.o): Depend upon all-tree.def.
2591 (build/gencheck.o): Remove gencheck.h dependency.
2592 (mostlyclean): Don't remove gencheck.h.
2593 * c-common.h (enum c_tree_code): Remove.
2594 * c-lang.c (tree_code_type): Remove.
2595 (tree_code_length, tree_code_name): Remove.
2596 * gencheck.c (tree_codes): Include all-tree.def, rather than
2597 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
2599 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
2601 * cp/cp-tree.h (enum cplus_tree_code): Remove.
2602 (operator_name_info): Size to MAX_TREE_CODES.
2603 (assignment_operator_name_info): Likewise.
2604 * cp/cp-lang.c (tree_code_type): Remove.
2605 (tree_code_length, tree_code_name): Remove.
2606 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
2607 (assignment_operator_name_info): Likewise.
2608 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
2610 * cp/mangle.c (write_expression): Likewise.
2611 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
2612 * fortran/f95-lang.c (tree_code_type): Remove.
2613 (tree_code_length, tree_code_name): Remove.
2614 * java/java-tree.h (enum java_tree_code): Remove.
2615 * java/lang.c (tree_code_type): Remove.
2616 (tree_code_length, tree_code_name): Remove.
2617 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
2618 * objc/objc-act.h (enum objc_tree_code): Remove.
2619 * objc/objc-lang.c (tree_code_type): Remove.
2620 (tree_code_length, tree_code_name): Remove.
2621 * objcp/objcp-lang.c (tree_code_type): Remove.
2622 (tree_code_length, tree_code_name): Remove.
2623 * ada/ada-tree.h (enum gnat_tree_code): Remove.
2624 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
2625 * ada/misc.c (tree_code_type): Remove.
2626 (tree_code_length, tree_code_name): Remove.
2628 2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
2630 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
2631 the grand_bitmap_obstack.
2633 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2635 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
2636 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
2637 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
2638 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
2639 move_stmt_r, new_label_mapper): Likewise.
2640 * tree-complex.c (cvc_lookup): Likewise.
2641 * tree-dfa.c (create_function_ann): Likewise.
2642 * tree-dump.c (dump_register): Likewise.
2643 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
2644 find_phi_replacement_condition): Likewise.
2645 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
2646 tree_function_versioning): Likewise.
2647 * tree-into-ssa.c (cmp_dfsnum): Likewise.
2648 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
2649 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
2650 get_nonlocal_debug_decl, convert_nonlocal_reference,
2651 convert_nonlocal_omp_clauses, get_local_debug_decl,
2652 convert_local_reference, convert_local_omp_clauses,
2653 convert_nl_goto_reference, convert_nl_goto_receiver,
2654 convert_tramp_reference, convert_call_expr): Likewise.
2655 * tree-outof-ssa.c (contains_tree_r): Likewise.
2656 * tree-parloops.c (reduction_phi, initialize_reductions,
2657 eliminate_local_variables_1, add_field_for_reduction,
2658 add_field_for_name, create_phi_for_local_result,
2659 create_call_for_reduction_1, create_loads_for_reductions,
2660 create_stores_for_reduction, create_loads_and_stores_for_name):
2662 * tree-phinodes.c (allocate_phi_node): Likewise.
2663 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
2664 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
2665 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
2666 * tree-ssa-coalesce.c (compare_pairs): Likewise.
2667 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
2668 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
2669 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
2670 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
2671 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
2672 vn_nary_op_insert): Likewise.
2673 * tree-ssa.c (redirect_edge_var_map_add,
2674 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
2675 * tree-vectorizer.c (vectorize_loops): Likewise.
2676 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
2677 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
2678 tree_cons_stat, build1_stat, build_variant_type_copy,
2679 decl_init_priority_lookup, decl_fini_priority_lookup,
2680 decl_priority_info, decl_restrict_base_lookup,
2681 decl_restrict_base_insert, decl_debug_expr_lookup,
2682 decl_debug_expr_insert, decl_value_expr_lookup,
2683 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
2684 type_hash_add, get_file_function_name, tree_check_failed,
2685 tree_not_check_failed, tree_range_check_failed,
2686 omp_clause_range_check_failed, build_omp_clause,
2687 build_vl_exp_stat): Likewise.
2688 * value-prof.c (gimple_histogram_value,
2689 gimple_duplicate_stmt_histograms): Likewise.
2690 * var-tracking.c (attrs_list_insert, attrs_list_copy,
2691 unshare_variable, variable_union_info_cmp_pos, variable_union,
2692 dataflow_set_different_1, dataflow_set_different_2,
2693 vt_find_locations, variable_was_changed, set_variable_part,
2694 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
2695 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
2696 section_entry_hash, object_block_entry_eq,
2697 object_block_entry_hash, create_block_symbol,
2698 initialize_cold_section_name, default_function_rodata_section,
2699 strip_reg_name, set_user_assembler_name, const_desc_eq,
2700 build_constant_desc, output_constant_def, lookup_constant_def,
2701 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
2702 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
2703 default_internal_label): Likewise.
2704 * varray.c (varray_init, varray_grow): Likewise.
2705 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
2707 2008-06-20 Uros Bizjak <ubizjak@gmail.com>
2709 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
2710 operators for "test" insn. Macroize insn using SWI mode macro.
2711 (*jcc_fused_2): Ditto.
2712 (*jcc_fused_3): Macroize insn using SWI mode macro.
2713 (*jcc_fused_4): Ditto.
2715 2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
2717 * tree-ssa-pre.c: Fix typo in comment.
2718 (init_antic, fini_antic): Add explicit funtions for
2719 initializing and deinitializing ANTIC and AVAIL sets.
2720 (create_expression_by_pieces): Fix typo in comment.
2721 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
2722 (execute_pre): Eventually dump details about ANTIC_IN.
2724 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2726 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
2727 * gcc.c (translate_options, init_spec, store_arg, read_specs,
2728 add_to_obstack, file_at_path, find_a_file, execute,
2729 add_preprocessor_option, add_assembler_option, add_linker_option,
2730 process_command, insert_wrapper, do_option_spec, do_self_spec,
2731 spec_path, do_spec_1, is_directory, main, used_arg,
2732 getenv_spec_function): Likewise.
2733 * tlink.c (symbol_hash_lookup, file_hash_lookup,
2734 demangled_hash_lookup, symbol_push, file_push, frob_extension):
2737 2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2739 * doc/rtl.texi: Updated subreg section.
2741 2008-06-19 Jakub Jelinek <jakub@redhat.com>
2744 * cgraphunit.c (cgraph_process_new_functions): Don't clear
2745 node->needed and node->reachable.
2746 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
2747 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
2748 (expand_task_call): Don't call expand_task_copyfn.
2749 (expand_task_copyfn): Renamed to...
2750 (finalize_task_copyfn): ... this.
2752 2008-06-19 Jan Hubicka <jh@suse.cz>
2754 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
2755 clobbering framepointer.
2757 2008-06-19 Jan Hubicka <jh@suse.cz>
2759 * tree-optimize.c (execute_early_local_optimizations): Set
2760 cgraph_state only at first invocation.
2762 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2764 * system.h (-Wc++-compat): Activate as a warning, no an error.
2766 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2768 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
2769 instead of "#" in insn asm template.
2770 (*jcc_fused_2): Ditto.
2772 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2774 * config/i386/i386.h (ix86_tune_indices)
2775 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
2776 (TARGET_FUSE_CMP_AND_BRANCH): New define.
2777 * config/i386/i386.md (*jcc_fused_1): New insn pattern
2778 (*jcc_fused_2): Ditto.
2779 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
2780 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
2781 (print operand): Handle 'E' and 'e' code.
2783 2008-06-19 Anatoly Sokolov <aesok@post.ru>
2785 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
2786 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2787 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2789 2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
2791 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
2793 (cgraph_expand_function): Use local copy of decl.
2794 (cgraph_expand_all_functions): Remove redundant initialization of
2796 (cgraph_optimize): Reword internal_error message.
2798 2008-06-19 Chung-Lin Tang <ctang@marvell.com>
2800 * arm-protos.h (arm_return_in_memory): Remove public
2801 arm_return_in_memory() prototype.
2802 * arm.c (arm_return_in_memory): Add static prototype, add target
2803 hook macro, change definition and comments.
2804 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
2806 2008-06-19 Ben Elliston <bje@au.ibm.com>
2808 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
2809 real.c: Remove references to IEEE 754R.
2810 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
2811 * doc/libgcc.texi (Decimal float library routines): Likewise.
2813 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2815 * targhooks.h (struct gcc_target): New member unwind_word_mode.
2816 (default_unwind_word_mode): Add prototype.
2817 * targhooks.c (default_unwind_word_mode): New function.
2818 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
2819 instead of word_mode.
2820 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
2821 (TARGET_INITIALIZER): Use it.
2823 * c-common.c (handle_mode_attribute): Support "unwind_word"
2825 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
2827 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
2828 word_mode to access SjLj_Function_Context member "data".
2829 (sjlj_emit_dispatch_table): Likewise. Also, perform type
2830 conversion from targetm.eh_return_filter_mode () to
2831 targetm.unwind_word_mode () if they differ.
2833 * builtin-types.def (BT_UNWINDWORD): New primitive type.
2834 (BT_FN_UNWINDWORD_PTR): New function type.
2835 (BT_FN_WORD_PTR): Remove.
2836 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
2837 * except.c (expand_builtin_extend_pointer): Convert pointer to
2838 targetm.unwind_word_mode () instead of word_mode.
2840 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
2841 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
2842 (spu_unwind_word_mode): New function.
2843 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
2844 (TARGET_UNWIND_WORD_MODE): Define.
2845 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
2847 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2849 * config/spu/spu.c (reg_align): Remove.
2850 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
2851 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
2852 (spu_split_store): Likewise.
2854 2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
2856 * gcc/tree-vn.c: Fix typo in comment.
2858 2008-06-18 Jan Hubicka <jh@suse.cz>
2860 * cgraphunit.c (cgraph_optimize): Output debug info when doing
2861 toplevel reorder too.
2863 2008-06-18 Jan Hubicka <jh@suse.cz>
2865 * c-opts.c (c_common_post_options): PCH is not compatible with
2867 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
2868 -fno-toplevel-reorder by default now.
2870 2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2872 PR documentation/30739
2873 * doc/install.texi (Prerequisites): Document dependency on awk.
2875 2008-06-18 Uros Bizjak <ubizjak@gmail.com>
2876 Ian Lance Taylor <iant@google.com>
2878 PR rtl-optimization/35604
2879 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
2880 only want to change jump destinations, not eventual label comparisons.
2882 2008-06-16 Jan Hubicka <jh@suse.cz>
2884 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
2886 (cgraph_analyze_function): Likewise.
2888 2008-06-16 Jan Hubicka <jh@suse.cz>
2890 * cgraph.h (cgraph_mark_if_needed): New function.
2891 * cgraphunit.c (cgraph_mark_if_needed): New function.
2892 * c-decl.c (duplicate_decl): Use it.
2894 2008-06-16 Jan Hubicka <jh@suse.cz>
2896 * cgraph.c (cgraph_add_new_function): When in expansion state, do
2899 2008-06-16 Jan Hubicka <jh@suse.cz>
2901 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
2903 2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
2904 Kazu Hirata <kazu@codesourcery.com>
2905 Maxim Kuvyrkov <maxim@codesourcery.com
2907 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
2908 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
2909 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
2910 EXTRA_SPEC_FUNCTIONS.
2911 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
2912 (DRIVER_SELF_SPECS): Adjust.
2913 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
2914 * config/mips/st.h, config/mips/t-st: New.
2915 * config/mips/driver-native.c, config/mips/x-native: New.
2916 * doc/invoke.texi (MIPS): Document 'native' value for -march and
2919 2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2921 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
2923 (ISA_HAS_FP_CONDMOVE): New macro.
2924 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
2925 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
2926 (ISA_HAS_NMADD3_NMSUB3): New macro.
2927 * config/mips/mips.c (mips_rtx_costs): Update.
2928 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
2929 compiling for ST Loongson 2E/2F.
2930 (madd<mode>): Rename to madd4<mode>. Update.
2931 (madd3<mode>): New pattern.
2932 (msub<mode>): Rename to msub4<mode>. Update.
2933 (msub3<mode>): New pattern.
2934 (nmadd<mode>): Rename to nmadd4<mode>. Update.
2935 (nmadd3<mode>): New pattern.
2936 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
2937 (nmadd3<mode>_fastmath): New pattern.
2938 (nmsub<mode>): Rename to nmsub4<mode>. Update.
2939 (nmsub3<mode>): New pattern.
2940 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
2941 (nmsub3<mode>_fastmath): New pattern.
2942 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
2944 2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
2946 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
2947 (DF_REF_INSN_INFO): New.
2948 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
2949 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
2950 with a NULL DF_REF_INSN_INFO.
2951 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
2953 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
2954 DF_INSN_INFO_EQ_USES): New.
2955 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
2956 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
2957 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
2958 * df-core.c: Update comment for above changes.
2959 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
2960 DF_INSN_UID_* macros.
2961 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
2962 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
2963 insn rtx. Update all callers.
2964 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
2965 df_ref_create_structure, df_insn_refs_collect): Likewise.
2966 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
2967 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
2968 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
2969 macros to access the insn refs.
2970 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
2971 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
2972 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
2973 for accessing the refs.
2974 (try_fwprop_subst): Likewise.
2975 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
2976 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
2977 for accessing the refs.
2978 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
2979 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
2980 to look at the insn refs.
2981 (record_uses): Likewise.
2982 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
2984 (mark_artificial_uses): Don't mark_insn for artificial refs.
2985 (mark_reg_rependencies): Likewise.
2987 * doc/rtl.texi: Remove documentation of ADDRESSOF.
2989 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2991 * configure: Regenerate.
2993 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2995 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
2996 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2997 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2999 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
3001 * config/avr/avr.c (avr_mcu_t): Add attiny167.
3002 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3003 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3005 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
3007 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
3008 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3009 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3011 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
3013 * tree-ssa-sccvn.c: Fix format of comments.
3015 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
3017 * cgraph.c: Remove unneeded forward declarations of eq_node()
3020 2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
3022 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
3024 (see_update_relevancy): Likewise.
3025 * fwprop.c (try_fwprop_subst): Likewise.
3026 * rtlanal.c (noop_move_p): Likewise.
3027 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
3028 notes to non-existing libcall blocks.
3029 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
3031 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
3032 (dead_libcall_p): Remove.
3033 (delete_trivially_dead_insns): Don't use it.
3034 * web.c (union_defs): Remove comment about keeping nops.
3035 * gcse.c (hash_scan_insn): Don't take libcall pointers.
3036 (compute_hash_table_work): Don't track libcall notes.
3037 (do_local_cprop): Don't take libcall pointers. Don't update
3039 (adjust_libcall_notes): Deleted.
3040 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
3041 ever have existed in the first place).
3042 (replace_store_insn): Don't try to remove libcall notes.
3043 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
3044 (resolve_reg_notes): Don't call them.
3045 (resolve_simple_move): Likewise.
3046 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
3047 Don't remove REG_RETVAL notes.
3048 * emit-rtl.c (try_split): Don't update libcall notes.
3049 (emit_copy_of_insn_after): Dito.
3050 * cselib.c (cselib_current_insn_in_libcall): Remove.
3051 (cselib_process_insn): Don't set/clear it.
3052 (new_elt_loc_list): Don't record it.
3053 (cselib_init): Don't initialize it.
3054 * cselib.c (struct elt_loc_list): Remove in_libcall field.
3055 * loop-invariant.c (find_invariant_insn): Don't look for libcall
3057 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
3058 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
3059 (init_deps): Don't initialize it.
3060 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
3061 * combine.c (delete_noop_moves): Don't update libcall notes.
3062 (can_combine_p): Remove now pointless #if 0 block.
3063 (try_combine): Remove another obsolete #if 0 block.
3064 (distribute_notes): Don't distribute libcall notes.
3065 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
3066 * dce.c (libcall_dead_p): Remove.
3067 (delete_unmarked_insns): Don't handle libcall blocks.
3068 (preserve_libcall_for_dce): Remove.
3069 (prescan_insns_for_dce): Don't special-case libcall block insns.
3070 * reload1 (reload): Don't handle libcall notes.
3071 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
3074 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
3076 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
3077 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3078 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3080 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
3082 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
3083 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3084 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3086 2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3088 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
3090 2008-06-16 Ira Rosen <irar@il.ibm.com>
3092 PR tree-optimization/36493
3093 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
3094 the arguments list. Use VECTYPE to create vector pointer.
3095 (vectorizable_store): Fail if accesses through a pointer to vectype
3096 do not alias the original memory reference operands.
3097 Call vect_create_data_ref_ptr without the removed argument.
3098 (vectorizable_load): Likewise.
3099 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
3102 2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
3105 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
3108 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3110 * config/mips/loongson2ef.md: New file.
3111 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3112 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3113 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3114 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
3115 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
3117 (loongson2ef.md): New include.
3118 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
3119 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
3120 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
3121 (loongson_gt_<mode>, loongson_extract_halfword)
3122 (loongson_insert_halfword_0, loongson_insert_halfword_2)
3123 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
3124 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
3125 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
3126 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
3127 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
3128 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
3129 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
3130 (vec_interleave_low<mode>): Define type attribute.
3131 * config/mips/mips.c (mips_ls2): New static variable.
3132 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
3133 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
3134 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
3135 Implement target scheduling hooks.
3136 (mips_multipass_dfa_lookahead): Update to handle tuning for
3138 (mips_sched_init): Initialize data for Loongson scheduling.
3139 (mips_ls2_variable_issue): New static function.
3140 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
3142 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
3143 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
3144 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
3145 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
3146 Handle ST Loongson 2E/2F cores.
3147 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
3149 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3151 * omp-low.c (extract_omp_for_data): Fix comment typo.
3154 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3156 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
3157 FIXME note about gcc/config.guess.
3158 * doc/options.texi (Option file format): Remove non-ASCII bytes.
3159 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
3160 * doc/cppopts.texi: Likewise.
3161 * doc/extend.texi: Likewise.
3162 * doc/gcc.texi: Likewise.
3163 * doc/gccint.texi: Likewise.
3164 * doc/gcov.texi: Likewise.
3165 * doc/gty.texi: Likewise.
3166 * doc/hostconfig.texi: Likewise.
3167 * doc/install.texi: Likewise.
3168 * doc/invoke.texi: Likewise.
3169 * doc/loop.texi: Likewise.
3170 * doc/makefile.texi: Likewise.
3171 * doc/md.texi: Likewise.
3172 * doc/passes.texi: Likewise.
3173 * doc/tm.texi: Likewise.
3174 * doc/tree-ssa.texi: Likewise.
3175 * doc/trouble.texi: Likewise.
3177 2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
3178 Nathan Sidwell <nathan@codesourcery.com>
3179 Maxim Kuvyrkov <maxim@codesourcery.com>
3180 Richard Sandiford <rdsandiford@googlemail.com>
3182 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
3183 * config/mips/mips-protos.h (mips_expand_vector_init): New.
3184 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
3186 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
3187 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
3188 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
3190 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
3191 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
3192 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
3193 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
3194 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
3195 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
3196 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
3197 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
3198 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
3199 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
3200 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
3201 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
3202 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
3203 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
3204 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
3205 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
3206 (mips_builtins): Add Loongson builtins.
3207 (mips_loongson_2ef_bdesc): New.
3208 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
3209 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
3210 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
3211 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
3213 (mips_expand_vector_init): New.
3214 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
3215 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
3217 * config/mips/mips.md: Add unspec numbers for Loongson
3218 builtins. Include loongson.md.
3219 (MOVE64): Include Loongson vector modes.
3220 (SPLITF): Include Loongson vector modes.
3221 (HALFMODE): Handle Loongson vector modes.
3222 * config/mips/loongson.md: New.
3223 * config/mips/loongson.h: New.
3224 * config.gcc: Add loongson.h header for mips*-*-* targets.
3225 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
3227 2008-06-14 Joseph Myers <joseph@codesourcery.com>
3229 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
3230 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
3231 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
3232 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
3233 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
3234 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
3235 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
3236 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
3237 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
3238 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
3239 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
3240 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
3241 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
3242 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
3243 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
3244 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
3245 Remove use_fixproto=yes.
3246 (ia64*-*-hpux*): Remove comment about using fixproto.
3247 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
3249 2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3251 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
3253 * configure: Regenerate.
3255 2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
3258 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
3259 before evaluating it.
3261 2008-06-13 Jakub Jelinek <jakub@redhat.com>
3264 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
3265 nested inline functions.
3266 (start_decl, start_function): Don't invert DECL_EXTERNAL
3267 for nested inline functions.
3269 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
3271 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
3272 splits that must be made for correctness.
3274 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
3276 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
3277 (AVAIL_NON_MIPS16): Likewise.
3278 (mips_builtin_description): Replace target_flags with a predicate.
3279 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
3280 (dspr2_32): New availability predicates.
3281 (MIPS_BUILTIN): New macro.
3282 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
3283 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
3284 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
3285 Replace the TARGET_FLAGS parameters with AVAIL parameters.
3286 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
3287 (mips_dsp_32only_bdesc): Merge into...
3288 (mips_builtins): ...this new array.
3289 (mips_bdesc_map, mips_bdesc_arrays): Delete.
3290 (mips_init_builtins): Update after above changes.
3291 (mips_expand_builtin_1): Merge into...
3292 (mips_expand_builtin): ...here and update after above changes.
3294 2008-06-12 Paul Brook <paul@codesourcery.com>
3296 * longlong.h (__arm__): Define count_leading_zeros.
3297 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
3298 (clzsi2, clzdi2): New functions.
3299 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
3300 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
3301 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
3302 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
3303 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
3304 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
3305 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
3306 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
3307 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
3308 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
3310 2008-06-12 Kazu Hirata <kazu@codesourcery.com>
3312 * config/m68k/m68k.c (m68k_tune_flags): New.
3313 (override_options): Compute m68k_tune_flags.
3314 (MULL_COST, MULW_COST): Update for various variants of CFV2.
3315 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
3317 2008-06-12 Jakub Jelinek <jakub@redhat.com>
3320 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3322 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3324 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
3325 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
3327 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3329 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
3330 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
3332 2008-06-12 Jakub Jelinek <jakub@redhat.com>
3335 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
3338 2008-06-12 Richard Guenther <rguenther@suse.de>
3340 PR tree-optimization/36345
3341 * tree-flow.h (struct ptr_info_def): Align escape_mask,
3342 add memory_tag_needed flag.
3343 (may_alias_p): Declare.
3344 * tree-ssa-alias.c (may_alias_p): Export.
3345 (set_initial_properties): Use memory_tag_needed flag.
3346 (update_reference_counts): Likewise.
3347 (reset_alias_info): Reset memory_tag_needed flag.
3348 (create_name_tags): Check memory_tag_needed flag.
3349 (dump_points_to_info_for): Dump it.
3350 * tree-ssa-structalias.c (struct variable_info): Remove
3351 directly_dereferenced flag.
3352 (new_var_info): Do not initialize it.
3353 (process_constraint_1): Do not set it.
3354 (update_alias_info): Set is_dereferenced flag.
3355 (set_uids_in_ptset): Use may_alias_p.
3356 (set_used_smts): Check memory_tag_needed flag.
3357 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
3358 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
3359 memory_tag_needed flag.
3360 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
3363 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
3365 * config/i386/i386.c (ix86_compute_frame_layout): Disable
3366 red zone for w64 abi.
3367 (ix86_expand_prologue): Likewise.
3368 (ix86_force_to_memory): Likewise.
3369 (ix86_free_from_memory): Likewise.
3371 2008-06-11 Edmar Wienskoski <edmar@freescale.com>
3374 * config/rs6000/rs6000.c (rs6000_override_options): Set
3375 rs6000_isel conditionally to the absence of comand line override.
3376 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3377 Remove duplicate rs6000_isel setting.
3378 * config/rs6000/eabispe.h: Ditto.
3380 2008-06-11 Richard Guenther <rguenther@suse.de>
3382 * alias.c (get_alias_set): Use the element alias-set for arrays.
3383 (record_component_aliases): For arrays and vectors do nothing.
3384 * c-common.c (strict_aliasing_warning): Handle the cases
3385 of alias set zero explicitly.
3386 * Makefile.in (dfp.o-warn): Add -Wno-error.
3388 2008-06-11 Joseph Myers <joseph@codesourcery.com>
3390 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
3392 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
3393 tune_32 tune_64 to supported_defaults. Allow values not
3394 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
3395 x86_64. Do not override cpu_32 or cpu_64 values from target name.
3396 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
3397 with_cpu_64 to generic for 64-bit-supporting configurations, not
3398 with_cpu. Remove FIXMEs.
3399 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
3400 --with-arch-64, --with-tune-32, --with-tune-64): Document.
3401 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
3402 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
3403 arch_32 and arch_64.
3405 2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
3406 Olivier Hainque <hainque@adacore.com>
3408 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
3409 Use DECL_SIZE_UNIT to retrieve the size of the field.
3411 2008-06-11 Joseph Myers <joseph@codesourcery.com>
3413 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
3414 with function calls after declarations. Lay out
3415 neon_float_type_node before further use.
3417 2008-06-11 Richard Guenther <rguenther@suse.de>
3419 * tree-flow.h (may_point_to_global_var): Declare.
3420 * tree-ssa-alias.c (may_point_to_global_var): New function.
3421 * tree-ssa-sink.c (is_hidden_global_store): Use it.
3423 2008-06-10 Kazu Hirata <kazu@codesourcery.com>
3425 * configure.ac: Teach that fido supports .debug_line.
3426 * configure: Regenerate.
3428 2008-06-10 Tom Tromey <tromey@redhat.com>
3430 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
3433 2008-06-10 Joseph Myers <joseph@codesourcery.com>
3435 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
3436 (encode_decimal64, decode_decimal64, encode_decimal128,
3437 decode_decimal128): Reverse order of 32-bit parts of value if host
3438 and target endianness differ.
3440 2008-06-10 Vinodha Ramasamy <vinodha@google.com>
3442 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
3443 Avoid division by 0.
3444 (tree_mod_pow2_value_transform): Likewise.
3445 (tree_ic_transform): Likewise.
3446 (tree_stringops_transform): Likewise.
3447 (tree_mod_subtract_transform): Likewise.
3448 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
3449 (copy_edges_for_bb): Likewise.
3450 (initialize_cfun): Likewise.
3452 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
3454 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
3455 nonmemory_operand. Add "N" operand constraint.
3457 (*jcc_btdi_mask_rex64): New instruction and split pattern.
3458 (*jcc_btsi_mask): Ditto.
3459 (*jcc_btsi_mask_1): Ditto.
3461 2008-06-10 Joseph Myers <joseph@codesourcery.com>
3463 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
3464 TYPE_CANONICAL for copied element type.
3466 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
3469 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
3470 Add m_CORE2 and m_GENERIC.
3471 * config/i386/predicates.md (bt_comparison_operator): New predicate.
3472 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
3474 (*jcc_btdi_rex64): New instruction and split pattern.
3476 (*jcc_btsi_1): Ditto.
3477 (*btsq): Fix Intel asm dialect operand order.
3481 2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
3484 * simplify-rtx.c (simplify_subreg): Add check for shift count
3487 2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
3489 * doc/md.texi: Synchronize with later constraints.md change.
3490 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
3491 with a C implementation.
3492 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
3494 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
3495 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
3496 when moving to and from MD_REGNUM.
3497 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
3498 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
3499 Handle byte and halfword moves.
3500 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
3502 * config/mips/constraints.md (h): Turn into NO_REGS.
3503 (l, x): Update documentation.
3504 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
3505 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
3506 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
3507 (HILO): New mode iterator.
3509 (any_div): New code iterator.
3510 (u): Extend code attribute to div and udiv.
3511 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
3512 d_operand in the splitters. Remove redundant CONST_INT checks.
3513 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
3514 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
3515 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
3516 accordingly, using normal moves instead of unspecs to move LO into
3517 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
3518 (<u>mulsidi3): Handle expansion in C code.
3519 (<u>mulsidi3_32bit_internal): Rename to...
3520 (<u>mulsidi3_32bit): ...this.
3521 (<u>mulsidi3_32bit_r4000): Fix insn separator.
3522 (*<u>mulsidi3_64bit): Rename to...
3523 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
3524 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
3525 to set LO and HI to the multiplication result. Use a normal move
3526 for MFLO and an unspec for MFHI.
3527 (*<u>mulsidi3_64bit_parts): Replace with...
3528 (<u>mulsidi3_64bit_hilo): ...this new instruction.
3529 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
3530 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
3531 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
3532 instead of HI. Split the instruction into a separate multiplication
3533 and MFHI if !TARGET_FIX_R4000.
3534 (<su>muldi3_highpart): Likewise.
3535 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
3536 and the "=h" clobber.
3537 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
3538 (<u>mulditi3): New expander.
3539 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
3540 (madsi): Remove "=h" clobber.
3541 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
3542 Force the modulus result to be a GPR and split the instruction into
3543 a division followed by an MFHI after reload.
3544 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
3545 (*lea_high64): Use d_operand in the define_peephole2. Likewise
3546 the MIPS16 HIGH define_split.
3547 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
3548 of acc<->gpr moves to "multi".
3549 (*movdi_64bit): Replace the single "x" alternative with
3550 alternatives for moving into and out of "a".
3551 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
3552 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
3553 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
3554 Use d_operand in the splitters. Remove redundant CONST_INT checks.
3555 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
3556 (movti): New expander.
3557 (*movti, *movti_mips16): New insns.
3558 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
3559 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
3560 (mthi<GPR:mode>_<HILO:mode>): Likewise.
3561 * config/mips/predicates.md (fpr_operand): Delete.
3562 (d_operand): New predicate.
3564 2008-06-09 Michael Meissner <michael.meissner@amd.com>
3566 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
3567 failure on some Bourne shells.
3568 (x86_64-*-*): Ditto.
3570 2008-06-09 Kai Tietz <kai.tietz@onevision.com>
3572 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
3574 2008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
3576 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
3577 (sparc-sun-solaris2*): Likewise.
3579 2008-06-09 Arnaud Charlet <charlet@adacore.com
3581 * doc/install.texi: Update requirements to build the Ada compiler.
3583 2008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
3585 * df-scan.c (struct df_scan_problem_data): Remove the
3586 mw_link_pool alloc pool.
3587 (df_scan_free_internal): Don't free it.
3588 (df_scan_alloc): Don't allocate it.
3589 * df.h (struct df_link): Update comment.
3591 2008-06-08 Nathan Sidwell <nathan@codesourcery.com>
3593 * except.h: Correct checks for when SJLJ exceptions must be used.
3595 2008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3597 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
3600 2008-06-08 Joseph Myers <joseph@codesourcery.com>
3602 PR tree-optimization/36218
3603 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
3604 configure for the build system.
3605 (BUILD_LDFLAGS): Define.
3606 * configure: Regenerate.
3607 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
3609 2008-07-08 Anatoly Sokolov <aesok@post.ru>
3612 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
3613 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
3614 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
3616 2008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
3618 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
3620 2008-06-07 Joseph Myers <joseph@codesourcery.com>
3622 * config.gcc (Obsolete configurations): Remove list of
3624 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
3625 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
3626 targets matched by those patterns.
3627 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
3628 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
3629 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
3630 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
3631 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
3632 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
3633 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
3634 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
3635 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
3636 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
3637 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
3638 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
3639 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
3640 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
3641 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
3642 Make code for Solaris 7 and greater unconditional for Solaris.
3643 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
3644 Remove --with-* handling.
3645 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
3646 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
3647 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
3648 LINK_OS_WINDISS_SPEC): Remove.
3649 * config/rs6000/sysv4.opt (mwindiss): Remove.
3650 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
3651 * configure: Regenerate.
3652 * doc/cpp.texi: Don't mention BeOS.
3653 * doc/extend.texi (interrupt): Don't mention MS1.
3654 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
3655 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
3656 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
3657 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
3658 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
3660 * doc/invoke.texi (MT Options): Remove.
3661 (-mwindiss): Remove.
3662 (CRIS Options): Remove cris-axis-aout references.
3663 (HPPA Options): Don't mention hppa1.1-*-pro.
3664 * doc/md.texi: (MorphoTech family): Remove.
3665 * libgcc2.c: Don't handle UWIN.
3666 * config/alpha/t-unicosmk: Remove.
3667 * config/alpha/unicosmk.h: Remove.
3668 * config/arm/kaos-arm.h: Remove.
3669 * config/arm/kaos-strongarm.h: Remove.
3670 * config/arm/strongarm-coff.h: Remove.
3671 * config/arm/strongarm-elf.h: Remove.
3672 * config/arm/strongarm-pe.h: Remove.
3673 * config/arm/t-strongarm-pe: Remove.
3674 * config/arm/t-xscale-coff: Remove.
3675 * config/arm/t-xscale-elf: Remove.
3676 * config/arm/xscale-coff.h: Remove.
3677 * config/arm/xscale-elf.h: Remove.
3678 * config/chorus.h: Remove.
3679 * config/cris/aout.h: Remove.
3680 * config/cris/aout.opt: Remove.
3681 * config/cris/t-aout: Remove.
3682 * config/i386/beos-elf.h: Remove.
3683 * config/i386/kaos-i386.h: Remove.
3684 * config/i386/ptx4-i.h: Remove.
3685 * config/i386/sco5.h: Remove.
3686 * config/i386/sco5.opt: Remove.
3687 * config/i386/sysv4-cpp.h: Remove.
3688 * config/i386/sysv5.h: Remove.
3689 * config/i386/t-beos: Remove.
3690 * config/i386/t-sco5: Remove.
3691 * config/i386/t-uwin: Remove.
3692 * config/i386/uwin.asm: Remove.
3693 * config/i386/uwin.h: Remove.
3694 * config/kaos.h: Remove.
3695 * config/mips/windiss.h: Remove.
3696 * config/mt: Remove directory.
3697 * config/pa/pa-osf.h: Remove.
3698 * config/pa/pa-pro-end.h: Remove.
3699 * config/pa/t-pro: Remove.
3700 * config/ptx4.h: Remove.
3701 * config/rs6000/beos.h: Remove.
3702 * config/rs6000/kaos-ppc.h: Remove.
3703 * config/rs6000/t-beos: Remove.
3704 * config/rs6000/windiss.h: Remove.
3705 * config/sh/kaos-sh.h: Remove.
3706 * config/sol2-6.h: Remove.
3707 * config/sparc/sol26-sld.h: Remove.
3708 * config/sparc/sysv4-only.h: Remove.
3709 * config/vax/bsd.h: Remove.
3710 * config/vax/t-memfuncs: Remove.
3711 * config/vax/ultrix.h: Remove.
3712 * config/vax/vaxv.h: Remove.
3713 * config/windiss.h: Remove.
3715 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
3717 PR rtl-optimization/36438
3718 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
3719 for vector shifts with constant scalar shift operands.
3721 2008-06-06 Sandip Matte <sandip@rmicorp.com>
3723 * doc/invoke.texi: Document -march=xlr.
3724 * config/mips/xlr.md: New file.
3725 * config/mips/mips.md: Include it.
3727 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
3728 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
3729 (mips_rtx_cost_data): Likewise.
3731 2008-06-06 Nathan Froyd <froydnj@codesourcery.com>
3733 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
3734 PRE_INC and PRE_DEC cases.
3736 2008-06-06 Jakub Jelinek <jakub@redhat.com>
3738 PR rtl-optimization/36419
3739 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
3740 the emitting jump insn.
3743 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
3744 is not bool, boolify the whole *expr_p and convert to the desired type.
3746 2008-06-06 Jakub Jelinek <jakub@redhat.com>
3748 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
3749 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
3750 Add omp_private_outer_ref hook, add another argument to
3751 omp_clause_default_ctor hook.
3752 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
3753 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
3754 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
3755 hook_tree_tree_tree_tree_null.
3756 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
3757 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
3758 * hooks.c (hook_tree_tree_tree_tree_null): New function.
3759 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
3760 * tree.def (OMP_TASK): New tree code.
3761 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
3762 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
3763 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
3764 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
3765 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
3766 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
3767 OMP_CLAUSE_COLLAPSE_EXPR): Define.
3768 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3769 (OMP_DIRECTIVE_P): Add OMP_TASK.
3770 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
3771 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
3772 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
3773 and OMP_CLAUSE_UNTIED entries.
3774 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
3776 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3777 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
3778 * tree-pretty-print.c (dump_omp_clause): Handle
3779 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
3780 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3781 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
3782 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
3783 warning about unsigned iterators. Change decl/init/cond/incr
3784 arguments to TREE_VECs, check arguments for all collapsed loops.
3785 (c_finish_omp_taskwait): New function.
3786 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
3788 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
3789 default_function_array_conversion on init. Add par_clauses argument.
3790 If decl is present in parallel's lastprivate clause, change it to
3791 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
3792 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
3793 collapse count in clauses.
3794 (c_parser_omp_for, c_parser_omp_parallel): Adjust
3795 c_parser_omp_for_loop callers.
3796 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
3797 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
3798 (c_parser_omp_clause_name): Handle collapse and untied clauses.
3799 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
3801 (c_parser_omp_clause_schedule): Handle schedule(auto).
3802 Include correct location in the error message.
3803 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
3804 and PRAGMA_OMP_CLAUSE_UNTIED.
3805 (OMP_TASK_CLAUSE_MASK): Define.
3806 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
3807 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
3808 * tree-nested.c (convert_nonlocal_omp_clauses,
3809 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
3810 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
3811 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3812 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
3814 (conver_nonlocal_reference, convert_local_reference,
3815 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
3816 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
3817 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
3818 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
3819 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
3820 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
3821 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
3822 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
3823 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3825 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
3826 * c-common.h (c_finish_omp_taskwait): New prototype.
3827 * gimple-low.c (lower_stmt): Handle OMP_TASK.
3828 * tree-parloops.c (create_parallel_loop): Create 1 entry
3829 vectors for OMP_FOR_{INIT,COND,INCR}.
3830 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3831 (make_edges): Handle OMP_TASK.
3832 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
3833 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3834 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
3835 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
3836 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
3837 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3838 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3839 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
3840 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
3841 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
3842 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
3843 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
3844 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
3845 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
3846 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
3847 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
3848 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
3849 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
3850 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
3851 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
3852 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
3853 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
3854 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
3855 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
3856 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
3857 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
3858 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
3859 original iterator is present in lastprivate clause or if
3860 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
3861 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3862 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
3863 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
3864 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
3865 if it is set, lookup var in outer contexts too. Handle
3866 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
3867 to be implicitly determined firstprivate for task regions.
3868 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
3869 if it is set, lookup var in outer contexts too. Set
3870 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
3871 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
3872 OMP_CLAUSE_UNTIED. Take region_type as last argument
3873 instead of in_parallel and in_combined_parallel.
3874 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3876 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
3877 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
3878 (new_omp_context): Set default_kind to
3879 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
3880 (omp_region_type): New enum.
3881 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
3882 fields, add region_type.
3883 (new_omp_context): Take region_type as argument instead of is_parallel
3884 and is_combined_parallel.
3885 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
3886 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
3887 ctx->is_combined_parallel checks.
3888 (gimplify_omp_task): New function.
3889 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3891 * omp-low.c (extract_omp_for_data): Use schedule(static)
3892 for schedule(auto). Handle pointer and unsigned iterators.
3893 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
3894 Add loops argument. Extract data for collapsed OMP_FOR loops.
3895 (expand_parallel_call): Assert sched_kind isn't auto,
3896 map runtime schedule to index 3.
3897 (struct omp_for_data_loop): New type.
3898 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
3899 Add loop, loops, collapse and iter_type fields.
3900 (workshare_safe_to_combine_p): Disallow combined for if
3901 iter_type is unsigned long long. Don't combine collapse > 1 loops
3902 unless all bounds and steps are constant. Adjust extract_omp_for_data
3904 (expand_omp_for_generic): Handle pointer, unsigned and long long
3905 iterators. Handle collapsed OMP_FOR loops. Adjust
3906 for struct omp_for_data changes. If libgomp function doesn't return
3907 boolean_type_node, add comparison of the return value with 0.
3908 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
3909 pointer, unsigned and long long iterators. Adjust for struct
3910 omp_for_data changes.
3911 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
3912 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
3913 unsigned long long. Allocate loops array, pass it to
3914 extract_omp_for_data. For collapse > 1 loops use always
3915 expand_omp_for_generic.
3916 (omp_context): Add sfield_map and srecord_type fields.
3917 (is_task_ctx, lookup_sfield): New functions.
3918 (use_pointer_for_field): Use is_task_ctx helper. Change first
3919 argument's type from const_tree to tree. Clarify comment.
3920 In OMP_TASK disallow copy-in/out sharing.
3921 (build_sender_ref): Call lookup_sfield instead of lookup_field.
3922 (install_var_field): Add mask argument. Populate both record_type
3923 and srecord_type if needed.
3924 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
3926 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
3927 and DECL_FIELD_OFFSET.
3928 (scan_sharing_clauses): Adjust install_var_field callers. For
3929 firstprivate clauses on explicit tasks allocate the var by value in
3930 record_type unconditionally, rather than by reference.
3931 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
3932 Use is_taskreg_ctx instead of is_parallel_ctx.