1 2008-07-17 Julian Brown <julian@codesourcery.com>
3 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
4 no-op for targets which don't use DLLs.
6 2008-07-17 Martin Jambor <mjambor@suse.cz>
8 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
9 that nodes are relevant by examining the node->analyzed flag.
10 (ipcp_init_stage): Check which nodes are relevant, assert that the
11 relevant ones are also required.
12 (ipcp_propagate_stage): Check on the side arrays are properly
14 (ipcp_print_all_jump_functions): Make sure not to touch any node
15 that is not analyzed or an edge that does not have a corresponding
16 entry in the on-the-side vectors.
17 (ipcp_function_scale_print): Likewise.
18 (ipcp_update_callgraph): Check that the node is relevant.
19 (ipcp_insert_stage): Check that the node is relevant. Check there is
20 an info for every node and edge.
21 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
22 (ipa_print_all_tree_maps): Likewise and a new variable info.
23 (ipa_print_all_params_modified): Likewise.
24 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
26 2008-07-17 Roman Zippel <zippel@linux-m68k.org>
29 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
31 2008-07-17 Paolo Bonzini <bonzini@gnu.org>
33 PR rtl-optimization/36753
34 * fwprop.c (use_killed_between): Don't shortcut
35 single-definition global registers.
37 2008-07-16 Jan Hubicka <jh@suse.cz>
39 * cgraph.h (varpool_empty_needed_queue): Declare.
40 * cgraphunit.c (output_in_order): Mark all variables as needed;
42 * varpool.c (varpool_assemble_node): Update debug queue.
43 (varpool_assemble_pending_decls): Don't do it here.
44 (varpool_empty_needed_queue): New function.
46 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
48 * recog.c (peephole2_optimize): Fix formatting.
50 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
52 * c-pch.c (get_ident): Avoid C++ keywords.
53 * combine-stack-adj.c (single_set_for_csa): Likewise.
54 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
55 output_asm_insn): Likewise.
56 * reload.c (push_secondary_reload, find_reusable_reload,
57 push_reload, combine_reloads, find_reloads,
58 debug_reload_to_stream): Likewise.
59 * reload.h (struct reload): Likewise.
60 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
61 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
62 emit_output_reload_insns): Likewise.
63 * targhooks.c (default_secondary_reload): Likewise.
64 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
66 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
68 * recog.c (validate_change_1, validate_change,
69 validate_unshare_change, validate_replace_rtx_1, struct
70 funny_match, constrain_operands, peephole2_optimize): Avoid C++
72 * reload.c (push_secondary_reload, secondary_reload_class,
73 scratch_reload_class, find_valid_class, find_reusable_reload,
74 push_reload, find_dummy_reload, find_reloads_address_1,
75 find_reloads_address_part, find_equiv_reg): Likewise.
76 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
77 choose_reload_regs): Likewise.
78 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
80 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
81 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
82 * sched-rgn.c (concat_INSN_LIST): Likewise.
83 * stor-layout.c (mode_for_size, mode_for_size_tree,
84 smallest_mode_for_size): Likewise.
86 2008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
88 * cfg.c (dump_reg_info): Avoid C++ keywords.
89 * dwarf2asm.c (dw2_force_const_mem,
90 dw2_asm_output_encoded_addr_rtx): Likewise.
91 * except.c (gen_eh_region, add_action_record, output_ttype):
93 * expmed.c (expand_shift): Likewise.
94 * global.c (find_reg): Likewise.
95 * graph.c (draw_edge): Likewise.
96 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
97 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
98 widen_clz, widen_bswap, expand_parity, expand_unop,
99 emit_cmp_and_jump_insn_1): Likewise.
100 * postreload.c (reload_cse_simplify_operands): Likewise.
101 * ra.h (add_neighbor): Likewise.
102 * reg-stack.c (remove_regno_note, change_stack): Likewise.
103 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
104 record_reg_classes, copy_cost, record_address_regs,
105 invalid_mode_change_p): Likewise.
106 * regrename.c (regrename_optimize, scan_rtx_reg,
107 dump_def_use_chain, find_oldest_value_reg,
108 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
110 2008-07-16 David Edelsohn <edelsohn@gnu.org>
112 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
113 MASK_POWERPC64 for power4 in previous commit.
115 2008-07-16 Olivier Hainque <hainque@adacore.com>
117 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
118 instead of bare conversion to cast const-ness away.
120 2008-07-16 Anatoly Sokolov <aesok@post.ru>
122 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
123 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
124 * config/xtensa/xtensa.c (xtensa_function_value): New function.
125 (TARGET_FUNCTION_VALUE): Define.
127 2008-07-16 David Edelsohn <edelsohn@gnu.org>
129 * config/rs6000/rs6000.c (processor_target_table): Add
130 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
132 2008-07-16 Joseph Myers <joseph@codesourcery.com>
135 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
136 (m32c_legitimate_address_p): Handle "++rii" addresses created by
137 m32c_legitimize_reload_address.
139 2007-07-16 Rafael Avila de Espindola <espindola@google.com>
141 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
142 DECL_IN_SYSTEM_HEADER in sync.
144 2008-07-15 Daniel Berlin <dberlin@dberlin.org>
146 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
147 * tree-ssa-pre.c (pre_expr_eq): Ditto
148 (get_constant_for_value_id): Take a type as an argument.
149 (fully_constant_expression): Pass in type.
150 (find_or_generate_expression): Short circuit constant case.
151 (create_expression_by_pieces): Remove special casing of
153 (do_regular_insertion): Short circuit constant case.
154 (do_partial_partial_insertion): Ditto.
156 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
159 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
161 2008-07-15 Bob Wilson <bob.wilson@acm.org>
163 * config/xtensa/libgcc-xtensa.ver: New file.
164 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
166 2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
168 * df-problems.c (df_set_note): Avoid C++ keywords.
169 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
170 * dse.c (record_store, remove_useless_values): Likewise.
171 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
172 gen_reg_rtx_offset, operand_subword, change_address_1,
173 change_address, adjust_address_1, offset_address,
174 widen_memory_access, emit_copy_of_insn_after): Likewise.
175 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
176 * fwprop.c (should_replace_address, propagate_rtx_1,
177 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
179 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
180 gcse_emit_move_after, update_ld_motion_stores): Likewise.
181 * lcm.c (compute_insert_delete, pre_edge_lcm,
182 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
183 * lower-subreg.c (resolve_reg_notes): Likewise.
184 * mode-switching.c (optimize_mode_switching): Likewise.
186 2008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
188 * bt-load.c (add_btr_def, migrate_btr_def,
189 branch_target_load_optimize): Avoid C++ keywords.
190 * caller-save.c (insert_restore, insert_save, insert_one_insn):
192 * combine.c (subst, simplify_set, make_extraction,
193 make_compound_operation, known_cond, simplify_shift_const_1):
195 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
196 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1):
199 2008-07-15 Richard Guenther <rguenther@suse.de>
202 * c-common.c (strict_aliasing_warning): Do not warn for
203 TYPE_REF_CAN_ALIAS_ALL pointers.
204 (c_common_get_alias_set): may_alias types are not special.
205 * tree.c (build_pointer_type_for_mode): Look up the may_alias
206 attribute and set can_ref_all accordingly.
207 (build_reference_type_for_mode): Likewise.
208 * doc/extend.texi (may_alias): Clarify.
210 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
213 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
214 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
216 2008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
219 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
220 gcc_assert, instead call output_operand_lossage.
222 2008-07-15 Kai Tietz <kai.tietz@onevision.com>
224 * builtins.c (std_canonical_va_list): Treat structure based
227 2008-07-15 Ben Elliston <bje@au.ibm.com>
229 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
231 2007-07-14 Rafael Avila de Espindola <espindola@google.com>
233 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
236 2008-07-14 Jan Hubicka <jh@suse.cz>
238 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
239 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
240 fix predicates and constraints.
241 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
242 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
244 2008-07-14 Doug Kwan <dougkwan@google.com>
246 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
247 additional option file arm/eabi.opt.
248 * config/arm/eabi.h (File): New configuration file for EABI targets.
249 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
250 SUBSUBTARGET_EXTRA_SPECS.
251 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
252 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
253 from STARTFILE_SPEC so that it can be referenced in an override.
254 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
255 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
256 can be referenced in an override.
257 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
258 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
259 so that it can be referenced in an override.
260 (LINK_SPEC): Use BPABI_LINK_SPEC.
261 * config/arm/eabi.opt (File): New.
263 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
265 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
266 (FIXED_VALUE_H): New variable.
267 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
268 input.h, fixed-value.h.
269 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
270 (BASIC_BLOCK_H): Use $(BITMAP_H).
271 (FUNCTION_H): Add varray.h.
272 (IPA_REFERENCE_H): Use $(BITMAP_H).
273 (CGRAPH_H): Add $(BASIC_BLOCK_H).
274 (DF_H): Use $(BITMAP_H).
275 (GGC_H): Add statistics.h.
277 (INSN_ATTR_H): Use it.
278 (SYSTEM_H): Add safe-ctype.h, filenames.h.
280 (SYMTAB_H): Add $(OBSTACK_H).
281 (CPP_INTERNAL_H): New.
282 (TREE_DUMP_H): Add tree-pass.h.
283 (TREE_FLOW_H): Use $(BITMAP_H)
284 (PRETTY_PRINT_H): Use $(INPUT_H).
285 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
288 (many object files): Fix lots of header dependencies throughout.
290 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
292 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
294 (s-gtyp-input): Use them to write tmp-gi.list.
295 (echo_to_gi.list): Remove.
297 2008-07-14 Richard Guenther <rguenther@suse.de>
299 * tree-ssa-sccvn.c (pre_info): Remove.
300 (switch_to_PRE_table): Likewise.
301 (free_scc_vn): Do not clear SSA_NAME_VALUE.
302 Do not free pre_info.
303 (set_hashtable_value_ids): Do not create value-ids for the
305 (run_scc_vn): Remove double test. Remove bogus special-case
306 in value-number printing.
307 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
308 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
310 * tree-flow-inline.h (get_value_handle): Remove.
311 * tree-flow.h (get_value_handle): Remove.
313 2008-07-14 Martin Jambor <mjambor@suse.cz>
315 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
316 in which we generate arithmetics is not a subrange.
318 2008-07-14 Martin Jambor <mjambor@suse.cz>
320 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
322 2008-07-14 Richard Guenther <rguenther@suse.de>
324 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call
327 2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
330 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
331 reload for symbol refs moved to r0 with -fPIC.
332 (legitimize_pic_address): Use the target register as temporary
334 (emit_symbolic_move): Adjust comment.
335 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
338 2008-07-14 Ben Elliston <bje@au.ibm.com>
340 * c-common.h (C_CPP_HASHNODE): New macro.
341 * coretypes.h (struct cpp_token): Forward declare.
342 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
343 the context-sensitive keyword method.
344 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
345 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
346 expand_bool_pixel): New.
347 (altivec_categorize_keyword): New function.
348 (init_vector_keywords): New function.
349 (rs6000_macro_to_expand): Likewise.
350 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
351 compiling an ISO C dialect.
353 2008-07-13 Daniel Berlin <dberlin@dberlin.org>
355 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert
357 (create_expression_by_pieces): Fix typo.
358 (do_regular_insertion): Use debug counter here too.
360 2008-07-14 Hans-Peter Nilsson <hp@axis.com>
363 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
364 CONST_OK_FOR_LETTER_P. All port-local users changed.
365 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
366 implement Kp matching power-of-two.
367 (CONSTRAINT_LEN): Define to match.
368 * config/cris/cris.md: Replace all use of constraint K with Kc.
369 ("*btst*): Use Kp for operand 0 of last alternative.
371 2008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
374 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
377 2008-07-13 Jan Hubicka <jh@suse.cz>
379 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
382 2008-07-13 Richard Guenther <rguenther@suse.de>
385 * langhooks.c (lhd_print_error_function): Deal with recursive
388 2008-07-12 Jan Hubicka <jh@suse.cz>
390 * cgraph.c (assembler_name_hash): New static var.
391 (hash_node_by_assembler_name, eq_assembler_name): New.
392 (cgraph_node_for_asm): Use hashtable.
393 (cgraph_remove_node): Maintain hashtable.
394 (change_decl_assembler_name): Sanity check that names are not changing
395 after aliasing was processed.
396 * cgraph.h (varpoon_node): Add next GGC marker.
397 * tree.c (decl_assembler_name_equal): Constify.
398 (decl_assembler_name_hash): New.
399 * tree.h (decl_assembler_name_equal): Constify.
400 (decl_assembler_name_hash): Update.
402 2008-07-12 David Daney <ddaney@avtrex.com>
404 * config/mips/driver-native.c (host_detect_local_cpu): Handle
407 2008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
409 * doc/md.texi: Document the MIPS "v" constraint.
410 * config/mips/mips.h (reg_class): Revert last change.
411 (REG_CLASS_NAMES): Likewise.
412 (REG_CLASS_CONTENTS): Likewise.
413 * config/mips/mips.c (mips_regno_to_class): Likewise.
414 * config/mips/constraints.md (v): Likewise, but add documentation.
415 Add a comment to say that this constraint should not be used in
418 2008-07-11 DJ Delorie <dj@redhat.com>
420 * config/h8300/h8300.md (length): Fix branch offset limit.
422 2008-07-11 Anatoly Sokolov <aesok@post.ru>
424 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
425 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
426 (avr_hard_regno_scratch_ok): New function.
427 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
428 * config/avr/avr.md (all peepholes that request a scratch register):
429 Remove avr_peep2_scratch_safe use.
431 2008-07-11 Tom Tromey <tromey@redhat.com>
432 Ian Lance Taylor <iant@google.com>
434 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
435 (struct c_common_resword): Define.
436 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
437 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
438 (c_common_reswords, num_c_common_reswords): Declare.
439 * c-common.c (c_common_reswords): New global const array.
440 (num_c_common_reswords): New const int.
441 * c-parser.c (struct resword, reswords): Don't define.
442 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
443 (c_parse_init): Clarify mask code. Use c_common_reswords rather
444 than reswords. If warning about C++ keywords, give them a special
446 (c_lex_one_token): Warn about C++ keywords. Call
447 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
448 (c_parser_external_declaration): Look for RID_xxx rather than
449 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
450 (c_parser_statement_after_labels): Likewise.
451 (c_parser_objc_class_instance_variables): Likewise.
452 (c_parser_objc_class_declaration): Likewise.
453 (c_parser_objc_try_catch_statement): Likewise.
454 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
455 (declspecs_add_type): Likewise.
457 2008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
459 * ggc-page.c (alloc_page):
460 Substituting xmalloc, xcalloc with
461 XNEWVEC and XCNEWVAR macros which add the
464 2008-07-11 Richard Guenther <rguenther@suse.de>
466 PR tree-optimization/36765
467 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
468 aliases from HEAP vars to SMTs.
470 2008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
472 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
473 * configure.ac (loose_warn): Move -Wc++-compat from here...
474 (strict_warn): ...to here.
475 * configure: Regenerate.
477 2008-07-10 Joseph Myers <joseph@codesourcery.com>
479 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
480 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
481 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
482 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
483 excluding more specific h8300-*-* and sh-*-* targets.
485 2008-07-10 Daniel Berlin <dberlin@dberlin.org>
487 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert
490 (execute_pre): Call loop_optimizer_finalize in early exit.
492 2008-07-10 Jakub Jelinek <jakub@redhat.com>
495 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
496 uids in the bitmap, not just VAR_DECL uids.
498 PR rtl-optimization/36419
499 * combine-stack-adj.c (adjust_frame_related_expr): New function.
500 (combine_stack_adjustments_for_block): Call it if needed. Delete
502 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
503 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
504 prologue sp adjustment.
506 2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
509 * opts.c (print_ignored_options): Report postponed diagnostics for
510 unknown -Wno-* options as warnings, not errors.
511 (postpone_unknown_option_error): Renamed to...
512 (postpone_unknown_option_warning): ... this.
514 2008-07-09 Doug Kwan <dougkwan@google.com>
517 2008-07-08 Doug Kwan <dougkwan@google.com>
519 * config/arm/arm.opt (mandroid): New option.
520 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
521 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
523 (CC1PLUS_SPEC): Same.
525 (STARTFILE_SPEC): Same.
526 (ENDFILE_SPEC): Same.
527 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
530 2008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
533 * config/mips/mips.h (reg_class): Remove V1_REG.
534 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
535 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
537 (mips_get_tp): New function.
538 (mips_legitimize_tls_address): Use it.
539 * config/mips/constraints.md (v): Delete.
540 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
541 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
542 After reload, split into a move and ...
543 (*tls_get_tp_<mode>_split): ...this new instruction.
545 2008-07-09 David Daney <ddaney@avtrex.com>
547 * config/mips/driver-native.c: Include coretypes.h and tm.h.
549 2008-07-09 Jakub Jelinek <jakub@redhat.com>
551 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
552 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
554 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
555 htab_delete should be called. Don't free c.
556 (lookup_tmp_var): Create temp_htab lazily.
557 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
558 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
560 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
561 lower_omp_ordered, lower_omp_critical, lower_omp_for,
562 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
563 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
564 * tree-sra.c (generate_element_init): Likewise.
565 * tree-mudflap.c (execute_mudflap_function_ops,
566 execute_mudflap_function_decls): Likewise.
567 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
568 * tree-gimple.h (struct gimplify_ctx): New type.
569 (push_gimplify_context): Adjust prototype.
571 2008-07-09 Daniel Berlin <dberlin@dberlin.org>
573 * tree-ssa-pre.c (phi_translate_1): Update placement of
576 2008-07-09 Anatoly Sokolov <aesok@post.ru>
578 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
579 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
580 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
581 * targhooks.c (default_hard_regno_scratch_ok): New function.
582 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
583 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
584 * recog.c: Include "target.h".
585 (peep2_find_free_register): Add check for global regs. Add target
587 * Makefile.in (recog.o): Depend on target.h.
589 2008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
591 * config/sh/sh.c (sh_canonical_va_list_type): New.
592 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
594 2008-07-09 Raksit Ashok <raksit@google.com>
596 * doc/invoke.texi (Option Summary): Mention new option
597 -Wdisallowed-function-list=...
598 (Warning Options): Document -Wdisallowed-function-list=...
599 * common.opt (Wdisallowed-function-list=): New flag.
600 * flags.h (warn_disallowed_functions): External definition of new
601 boolean warning flag.
602 (warn_if_disallowed_function_p): Declare new function.
603 * opts.c (warning_disallowed_functions): New static variable.
604 (warn_disallowed_functions): New boolean warning flag.
605 (warn_if_disallowed_function_p): New function.
606 (add_comma_separated_to_vector): Rename
607 add_instrument_functions_exclude_list to this.
608 (common_handle_option): Handle new option. Rename calls to
609 add_instrument_functions_exclude_list into calls to
610 add_comma_separated_to_vector.
611 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
612 based on flag warn_disallowed_functions.
614 2008-07-09 Christian Bruel <christian.bruel@st.com>
616 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
617 instead of get_attr_length.
619 2008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
621 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
623 * genemit.c (gen_insn): Likewise.
624 * gengtype.c (note_def_vec): Likewise.
625 * gengtype.h (note_def_vec): Likewise.
626 * genoutput.c (struct data, output_insn_data, process_template,
627 gen_expand, gen_split, note_constraint): Likewise.
628 * genrecog.c (new_decision, add_to_sequence, factor_tests,
629 make_insn_sequence): Likewise.
630 * gensupport.c (record_insn_name): Likewise.
632 2008-07-08 Doug Kwan <dougkwan@google.com>
634 * config/arm/arm.opt (mandroid): New option.
635 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
636 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
638 (CC1PLUS_SPEC): Same.
640 (STARTFILE_SPEC): Same.
641 (ENDFILE_SPEC): Same.
642 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
645 2008-07-08 Raksit Ashok <raksit@google.com>
647 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
648 (set_storage_via_setmem): Fix expected_align parameter.
649 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
650 missing from the list.
651 * doc/md.texi (movmem): Explicitly state that expected alignment is
652 to be expressed in bytes.
653 (setmem): Explicitly state that expected alignment is to be expressed
656 2008-07-08 Joseph Myers <joseph@codesourcery.com>
658 * reload.c (find_reloads_subreg_address): Do not require validity
659 of address in original mode before reloading address.
661 2008-07-07 Tianwei Sheng <tianweis@google.com>
663 * df-core.c (df_remove_problem): Adjust the access to avoid out of
666 2008-07-08 Jakub Jelinek <jakub@redhat.com>
668 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P
671 2008-07-05 Daniel Berlin <dberlin@dberlin.org>
673 Fix PR tree-optimization/23455
674 Fix PR tree-optimization/35286
675 Fix PR tree-optimization/35287
676 * Makefile.in (OBJS-common): Remove tree-vn.o.
678 * dbgcnt.def: Add treepre_insert debug counter.
679 * gcc/tree-flow.h (add_to_value): Updated for other changes.
680 (debug_value_expressions): Ditto.
681 (print_value_expressions): Ditto.
682 * tree-pretty-print.c (dump_generic_node): Updated for
683 VALUE_HANDLE removal.
684 * tree-ssa-dom.c (record_equality): Ditto.
685 (cprop_operand): Ditto.
686 (lookup_avail_expr): Ditto.
687 * tree-ssa-threadedge.c
688 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
689 (simplify_control_stmt_condition): Ditto.
690 * tree.c (tree_code_size): Ditto.
691 (tree_node_structure): Ditto.
692 (iterative_hash_expr): Ditto.
694 * tree.h (VALUE_HANDLE_ID): Ditto.
695 (VALUE_HANDLE_EXPR_SET): Ditto.
696 (struct tree_value_handle): Ditto.
697 (union tree_node): Ditto.
698 * treestruct.def: Ditto.
699 * tree-vn.c: Removed.
700 * tree-ssa-pre.c: Rewritten entirely.
701 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
702 (constant_value_ids): Ditto.
703 (vn_nary_op_t): Moved to header.
705 (vn_reference_op_t): Ditto
706 (vn_reference_t): Ditto.
707 (next_value_id): New variable.
708 (VN_INFO): Add an assert.
709 (vn_constant_eq): New function.
710 (vn_constant_hash): Ditto.
711 (get_or_alloc_constant_value_id): Ditto.
712 (value_id_constant_p): Ditto.
713 (vn_reference_compute_hash): De-staticify.
714 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
715 Disable some code with a FIXME.
716 Remove VALUE_HANDLE use.
717 (valueize_refs): Update opcode if it changes from ssa name to
719 (vn_reference_lookup_1): Add new argument.
720 (vn_reference_lookup): Ditto.
721 (vn_reference_lookup_pieces): New function.
722 (vn_reference_insert): Add return type. Modify to deal with value
724 (vn_reference_insert_pieces): New function.
725 (vn_nary_op_compute_hash): De-staticify.
726 (vn_nary_op_eq): Ditto.
727 (vn_nary_op_lookup_pieces): New function.
728 (vn_nary_op_lookup): Add new argument.
729 (vn_nary_op_insert_pieces): New function.
730 (vn_nary_op_insert): Add return type. Modify to deal with value
732 (vn_phi_insert): Ditto.
733 (visit_unary_op): Update for callee changes.
734 (visit_binary_op): Ditto.
735 (visit_reference_op_load): Ditto.
736 (visit_reference_op_store): Ditto.
737 (init_scc_vn): Init next_value_id, constant_to_value_id and
739 (free_scc_vn): Free them.
740 (set_hashtable_value_ids): New function.
741 (run_scc_vn): Use it.
742 (get_max_value_id): New function.
743 (get_next_value_id): Ditto.
744 (expressions_equal_p): Moved from tree-vn.c
746 (sort_vuses_heap): Ditto.
747 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
749 * tree.c (iterative_hash_hashval_t): Made non-static
750 * tree.h (iterative_hash_hashval_t): Declare it.
752 2008-07-08 Martin Jambor <mjambor@suse.cz>
754 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
755 instead of ipa_create_node_params.
756 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
757 ipa_check_create_edge_args, free them with
758 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
760 * ipa-prop.c: Include flags.h and tree-inline.h.
761 (ipa_node_params_vector): New variable.
762 (ipa_edge_args_vector): New variable.
763 (edge_removal_hook_holder): New variable.
764 (node_removal_hook_holder): New variable.
765 (edge_duplication_hook_holder): New variable.
766 (node_duplication_hook_holder): New variable.
767 (ipa_detect_param_modifications): Check for presence of modified flags.
768 (ipa_compute_jump_functions): Check for presence of jump functions.
769 (ipa_free_edge_args_substructures): New function.
770 (ipa_create_node_params): Removed.
771 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
772 (ipa_free_node_params_substructures): New function.
773 (ipa_free_all_node_params): Changed to deallocate the on-the-side
775 (ipa_edge_removal_hook): New function.
776 (ipa_node_removal_hook): New function.
777 (duplicate_array): New function.
778 (ipa_edge_duplication_hook): New function.
779 (ipa_node_duplication_hook): New function.
780 (ipa_register_cgraph_hooks): New function.
781 (ipa_unregister_cgraph_hooks): New function.
782 (free_all_ipa_structures_after_ipa_cp): New function.
784 * ipa-prop.h: Include vec.h.
785 (ipa_node_params_t): New typedef with vector types for it.
786 (ipa_edge_args_t): New typedef with vector types for it.
787 (IPA_NODE_REF): Changed to access an on-the-side vector.
788 (IPA_EDGE_REF): Changed to access an on-the-side vector.
789 (ipa_check_create_node_params): New function.
790 (ipa_check_create_edge_args): New function.
792 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
795 2008-07-07 Tom Tromey <tromey@redhat.com>
797 * configure, config.in: Rebuilt.
798 * configure.ac: Don't check for scandir or alphasort.
800 2008-07-07 Joseph Myers <joseph@codesourcery.com>
802 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
803 types immediately after creating them.
805 2008-07-07 Joseph Myers <joseph@codesourcery.com>
807 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
809 2008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
811 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
812 dump_constraint_graph.
813 (dump_constraint_edge): New function.
814 (dump_constraint_graph): New function.
815 (debug_constraint_graph): New function.
816 (dump_constraint): Removed useless comparison.
817 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
818 (dump_constraint_graph): Declare.
819 (debug_constraint_graph): Declare.
820 * tree-dump.c (struct dump_option_value_info): Declare
823 2008-07-07 Kai Tietz <kai.tietz@onevision.com>
825 * config/i386/i386.c (is_va_list_char_pointer): New.
826 (ix86_va_start): Replace compare with ms_va_list_type_node
827 by is_va_list_char_pointer.
828 (ix86_gimplify_va_arg): Likewise.
830 2008-07-07 Martin Jambor <mjambor@suse.cz>
832 * cgraph.c (cgraph_edge_max_uid): New variable.
833 (struct cgraph_edge_hook_list): New type.
834 (struct cgraph_node_hook_list): New type.
835 (struct cgraph_2edge_hook_list): New type.
836 (struct cgraph_2node_hook_list): New type.
837 (first_cgraph_edge_removal_hook): New variable.
838 (first_cgraph_node_removal_hook): New variable.
839 (first_cgraph_edge_duplicated_hook): New variable.
840 (first_cgraph_node_duplicated_hook): New variable.
841 (cgraph_add_edge_removal_hook): New function.
842 (cgraph_remove_edge_removal_hook): New function.
843 (cgraph_call_edge_removal_hooks): New function.
844 (cgraph_add_node_removal_hook): New function.
845 (cgraph_remove_node_removal_hook): New function.
846 (cgraph_call_node_removal_hooks): New function.
847 (cgraph_add_edge_duplication_hook): New function.
848 (cgraph_remove_edge_duplication_hook): New function.
849 (cgraph_call_edge_duplication_hooks): New function.
850 (cgraph_add_node_duplication_hook): New function.
851 (cgraph_remove_node_duplication_hook): New function.
852 (cgraph_call_node_duplication_hooks): New function.
853 (cgraph_create_edge): Assign to edge uid.
854 (cgraph_remove_edge): Call edge removal hooks.
855 (cgraph_node_remove_callees): Call edge removal hooks.
856 (cgraph_node_remove_callers): Call edge removal hooks.
857 (cgraph_remove_node): Call node removal hooks.
858 (cgraph_clone_edge): Call edge duplication hooks.
859 (cgraph_clone_node): Call node duplication hooks.
861 * cgraph.h (cgraph_edge): New field uid.
862 (cgraph_edge_hook): New type.
863 (cgraph_node_hook): New type.
864 (cgraph_2edge_hook): New type.
865 (cgraph_2node_hook): New type.
867 2008-07-07 Andreas Tobler <a.tobler@schweiz.org>
869 * config.in: Regenerate.
871 2008-07-07 Vladimir Prus <vladimir@codesourcery.com>
873 * gcc.c (print_sysroot): New.
874 (option_map, display_help, process_command): Handle the
875 -print-sysroot option.
876 (main): Print the sysroot if requested.
877 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
879 2008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
882 * unwind-pe.h (size_of_encoded_value): add attribute unused.
884 2008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
886 * function.c (assign_parm_remove_parallels): Check mode of
888 (assign_parm_setup_block_p): Also check mode of entry_parm.
890 2008-07-07 Richard Guenther <rguenther@suse.de>
892 * tree-ssa-structalias.h (set_used_smts): Remove.
893 * tree-ssa-structalias.c (used_smts): Likewise.
894 (set_used_smts): Likewise.
895 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
896 call to set_used_smts.
898 2008-07-07 Richard Guenther <rguenther@suse.de>
900 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
901 (new_var_info): Set it to false.
902 (solution_set_add): Correctly handle pointers outside a var and
904 (type_safe): Treat variables with is_full_var properly.
905 (do_sd_constraint): Likewise.
906 (do_ds_constraint): Likewise.
907 (process_constraint): Remove zeroing offset for !use_field_sensitive.
908 (get_constraint_for_ptr_offset): New function.
909 (get_constraint_for_component_ref): For addresses at least include
910 the last field of the variable. Handle is_full_vars properly.
911 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
912 (handle_ptr_arith): Remove.
913 (find_func_aliases): Simplify assignment handling.
914 (create_function_info_for): For parameter and result varinfos set
916 (create_variable_info_for): Set is_full_var flag whenever we
917 just created a single varinfo for a decl.
918 (init_alias_vars): Initialize use_field_sensitive from
919 max-fields-for-field-sensitive parameter.
921 2008-07-07 Richard Guenther <rguenther@suse.de>
923 PR tree-optimization/36713
924 * tree-flow-inline.h (is_call_used): New function.
925 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
926 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
927 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
929 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
931 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
933 2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
935 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
937 2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
938 Nathan Sidwell <nathan@codesourcery.com>
940 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
941 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
943 * config/m68k/t-linux: New.
944 * doc/install.texi: Document m68k-*-linux is now multilibbed by
947 2008-07-07 Nathan Sidwell <nathan@codesourcery.com>
949 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
950 * config/m68k/m68k-devices.def: Remove multilibs that only differ
953 2008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
955 * gcc.c (execute): Fix -Wc++-compat warning.
957 2008-07-06 H.J. Lu <hongjiu.lu@intel.com>
960 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
961 constant for little endian.
963 2008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
965 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
966 mips_base_mips16 instead of TARGET_MIPS16.
967 (mips_base_mips16): Declare.
968 * config/mips/mips.c (mips_base_mips16): Make global.
969 (was_mips16_p): Remove GTY marker.
970 (was_mips16_pch_p): New variable.
971 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
972 (mips_override_options): Force to non-MIPS16 mode initially.
973 Do not complain about MIPS16 PIC incompatibilities here.
974 Only allow -mgpopt if -mexplicit-relocs is in force for
977 2008-07-06 Andreas Tobler <a.tobler@schweiz.org>
979 * configure.ac: Check for caddr_t, define to char * if not defined.
980 * configure: Regenerate.
981 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
982 (mmap_gt_pch_use_address): Likewise.
983 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
985 2008-07-06 Richard Guenther <rguenther@suse.de>
987 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
988 (new_var_info): Deal with it.
989 (solution_set_add): Likewise.
990 (bitpos_of_field): Make signed, fix.
991 (struct fieldoff): Remove type and decl fields. Make size field
992 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
994 (fieldoff_compare): Deal with it.
995 (push_fields_onto_fieldstack): Remove has_union argument, glob
996 adjacent non-pointer fields together.
997 (create_function_info_for): Do not set has_union.
998 (create_variable_info_for): Simplify.
1000 2008-07-06 Kai Tietz <kai.tietz@onevision.com>
1002 * config.gcc (extra_headers): Add cross-stdarg.h for target
1003 x86_64-*-* and i?86-*-*.
1004 * config/i386/cross-stdarg.h: New.
1005 * builtins.c (std_fn_abi_va_list): New.
1006 (std_canonical_va_list_type): New.
1007 (stabilize_va_list): Replace va_list_type_node use by
1008 mtarget.canonical_va_list_type.
1009 (gimplify_va_arg_expr): Likewise.
1010 (expand_builtin_va_copy): Replace va_list_type_node use by
1011 mtarget.fn_abi_va_list.
1012 * tree-sra.c (is_va_list_type): New helper.
1013 (decl_can_be_decomposed_p): Replace
1014 va_list_type_node use by is_va_list_type.
1015 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
1016 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1017 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
1018 * config/i386/i386-protos.h (ix86_get_valist_type): New.
1019 (ix86_enum_va_list): New.
1020 * config/i386/i386.c (sysv_va_list_type_node): New.
1021 (ms_va_list_type_node): New.
1022 (ix86_function_type_abi): Remove sorry.
1023 (ix86_build_builtin_va_list_abi): New.
1024 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
1026 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
1027 (ix86_init_builtins_va_builtins_abi): New.
1028 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
1030 (ix86_handle_abi_attribute): New.
1031 (attribute_spec): Add sysv_abi and ms_abi.
1032 (ix86_fn_abi_va_list): New.
1033 (ix86_canonical_va_list_type): New.
1034 (ix86_enum_va_list): New.
1035 (TARGET_FN_ABI_VA_LIST): New.
1036 (TARGET_CANONICAL_VA_LIST_TYPE): New.
1037 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
1038 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
1039 (TARGET_CANONICAL_VA_LIST_TYPE): New.
1040 (TARGET_ENUM_VA_LIST): New.
1041 * expr.h (std_fn_abi_va_list): New.
1042 (std_canonical_va_list_type): New.
1043 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
1044 (TARGET_CANONICAL_VA_LIST_TYPE): New.
1045 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
1046 TARGET_CANONICAL_VA_LIST_TYPE.
1047 * target.h (struct gcc_target): Add fn_abi_va_list hook
1048 and canonical_va_list_type hook.
1050 2008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1052 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
1053 integral and pointer types.
1055 2008-07-04 Roger Sayle <roger@eyesopen.com>
1057 * config/rs6000/host-darwin.c (darwin_rs6000_extra_siganls): Cast
1058 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
1060 2008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
1063 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
1066 2008-07-04 Jakub Jelinek <jakub@redhat.com>
1068 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
1069 build_gimple_modify_stmt.
1070 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
1071 gimple operand. Use fold_build* instead of build*.
1073 2008-07-04 Richard Guenther <rguenther@suse.de>
1075 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
1076 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
1077 properly to compute the reachability set if we do field-sensitive PTA.
1078 * invoke.texi (max-fields-for-field-sensitive): Document default.
1079 * opts.c (decode_options): Set max-fields-for-field-sensitive to
1080 100 for optimize >= 2.
1082 2008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1084 * ggc-zone.c (lookup_page_table_if_allocated,
1085 set_page_table_entry, zone_find_object_size, alloc_small_page,
1086 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
1087 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
1088 -Wc++-compat and/or -Wcast-qual warnings.
1090 2008-07-04 Alan Modra <amodra@bigpond.net.au>
1093 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
1094 pic_offset_table_rtx to be marked as used here.
1095 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
1096 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
1097 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
1098 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
1101 2008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1103 * alloc-pool.c (hash_descriptor, eq_descriptor,
1104 alloc_pool_descriptor): Fix -Wc++-compat warnings.
1105 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
1107 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
1108 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
1109 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics):
1111 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
1114 2008-07-03 Eric Botcazou <ebotcazou@adacore.com>
1116 * tree-flow.h (loop_only_exit_p): Declare.
1117 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
1118 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
1119 the number of iterations if it is constant. Otherwise, if this is the
1120 only possible exit of the loop, use the conservative estimate on the
1121 number of iterations of the entire loop if available.
1123 2008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
1125 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
1126 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
1127 Add synchronization functions.
1128 * config/sync.c: New file.
1129 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
1130 (LIBGCC_SYNC_CFLAGS): Likewise.
1132 2008-07-03 Uros Bizjak <ubizjak@gmail.com>
1135 * config/i386/i386.md (mode): Add TF to "mode" attribute.
1136 (*pushtf_sse): New insn pattern.
1137 (pushtf splitters): New splitters.
1139 2008-07-03 Michael Meissner <gnu@the-meissners.org>
1142 * predict.c (build_predict_expr): Use void_type_node for the tree
1143 type, instead of NULL_TREE.
1145 2008-07-03 H.J. Lu <hongjiu.lu@intel.com>
1147 * config/i386/i386.c (contains_aligned_value_p): Return true
1149 (ix86_data_alignment): Align TCmode to 128bits.
1150 (ix86_local_alignment): Likewise.
1152 2008-07-03 Andrew Haley <aph@redhat.com>
1155 * vec.h (VEC_TA): New.
1156 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
1157 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
1158 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
1159 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
1160 (C_COMMON_FIXED_TYPES): Remove first arg.
1161 (C_COMMON_FIXED_MODE_TYPES): Likewise.
1162 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
1163 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
1164 not to use empty macro arguments.
1166 2008-07-02 Joseph Myers <joseph@codesourcery.com>
1168 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
1169 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
1170 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
1171 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
1172 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
1173 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
1174 config/ia64/crtn.asm, config/m68hc11/larith.asm,
1175 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
1176 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
1177 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1178 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1179 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1180 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
1181 config/rs6000/e500crtres64gpr.asm,
1182 config/rs6000/e500crtres64gprctr.asm,
1183 config/rs6000/e500crtrest32gpr.asm,
1184 config/rs6000/e500crtrest64gpr.asm,
1185 config/rs6000/e500crtresx32gpr.asm,
1186 config/rs6000/e500crtresx64gpr.asm,
1187 config/rs6000/e500crtsav32gpr.asm,
1188 config/rs6000/e500crtsav64gpr.asm,
1189 config/rs6000/e500crtsav64gprctr.asm,
1190 config/rs6000/e500crtsavg32gpr.asm,
1191 config/rs6000/e500crtsavg64gpr.asm,
1192 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
1193 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
1194 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
1195 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
1196 config/sparc/sol2-cn.asm: Remove .file directives.
1198 2008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
1200 * resource.c (mark_referenced_resources): Look inside
1201 UNSPEC_VOLATILEs and ASM_INPUTs.
1203 2008-07-02 Ian Lance Taylor <iant@google.com>
1205 * rtlanal.c (add_reg_note): New function.
1206 * rtl.h (add_reg_note): Declare.
1207 * auto-inc-dec.c (attempt_change): Use add_reg_note.
1208 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
1209 * builtins.c (expand_builtin_longjmp): Likewise.
1210 (expand_builtin_nonlocal_goto): Likewise.
1211 * calls.c (emit_call_1, expand_call): Likewise.
1212 * cfgexpand.c (add_reg_br_prob_note): Likewise.
1213 * cfglayout.c (fixup_reorder_chain): Likewise.
1214 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
1215 (commit_one_edge_insertion): Likewise.
1216 * combine.c (move_deaths, distribute_notes): Likewise.
1217 * df-problems.c (df_set_note): Likewise.
1218 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
1219 (set_unique_reg_note): Likewise.
1220 (emit_copy_of_insn_after): Likewise.
1221 * expr.c (expand_expr_real): Likewise.
1222 * gcse.c (add_label_notes): Likewise.
1223 * haifa-sched.c (create_check_block_twin): Likewise.
1224 * jump.c (mark_jump_label_1): Likewise.
1225 * loop-doloop.c (add_test, doloop_modify): Likewise.
1226 * loop-unswitch.c (compare_and_jump_seq): Likewise.
1227 * lower-subreg.c (move_eh_region_note): Likewise.
1228 * optabs.c (emit_libcall_block): Likewise.
1229 * predict.c (predict_insn): Likewise.
1230 (combine_predictions_for_insn): Likewise.
1231 * recog.c (peephole2_optimize): Likewise.
1232 * regmove.c (try_auto_increment): Likewise.
1233 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
1234 * reload.c (find_reloads): Likewise.
1235 * reload1.c (fixup_eh_region_note): Likewise.
1236 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
1237 * reorg.c (delete_prior_computation): Likewise.
1238 (delete_computation, dbr_schedule): Likewise.
1239 * config/pa/pa.c (legitimize_pic_address): Likewise.
1240 * config/sh/sh.c (sh_reorg): Likewise.
1242 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
1245 * config/libgcc-glibc.ver: Add %exclude.
1246 * config/m32r/libgcc-glibc.ver: Likwise.
1247 * config/s390/libgcc-glibc.ver: Likwise.
1248 * config/sh/libgcc-glibc.ver: Likwise.
1249 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
1251 * config/i386/libgcc-glibc.ver: New.
1253 * config/i386/libgcc-x86_64-glibc.ver: Removed.
1255 2008-07-02 H.J. Lu <hongjiu.lu@intel.com>
1257 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
1258 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
1259 i[34567]86-*-linux*, x86_64-*-linux*. Add
1260 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
1261 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
1262 x86_64-*-linux*. Add i386/t-linux to tmake_file for
1263 i[34567]86-*-linux*, x86_64-*-linux*.
1265 * libgcc-std.ver: Add empty GCC_4.4.0.
1267 * mkmap-symver.awk: Support multiple versions per symbol.
1269 * config/i386/i386.c (ix86_init_builtins): Always define
1270 __builtin_fabsq and __builtin_copysignq with fallbacks.
1271 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
1272 and __builtin_copysignq if SSE2 isn't available.
1274 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
1275 (LIBGCC2_TF_CEXT): Likwise.
1278 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
1280 * config/i386/sfp-machine.h: Moved to libgcc.
1282 * config/i386/sfp-machine.h: New.
1283 * config/i386/t-linux: Likwise.
1285 * config/i386/t-darwin: Remove softfp_wrap_start and
1287 * config/i386/t-darwin64: Likewise.
1289 * config/i386/t-fprules-softfp64: Renamed to ...
1290 * config/i386/t-fprules-softfp: This.
1292 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
1293 and softfp_wrap_end.
1295 2008-07-02 Jason Merrill <jason@redhat.com>
1297 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
1299 * tree.c (ctor_to_list): New fn.
1300 * tree.h: Declare it.
1301 (CONSTRUCTOR_ELT): New macro.
1302 (CONSTRUCTOR_NELTS): New macro.
1304 2008-07-02 Richard Guenther <rguenther@suse.de>
1306 * tree-ssa-structalias.c (struct variable_info): Reorder
1307 to fill padding on 64bit hosts. Make collapsed_to an int.
1308 (get_varinfo_fc): Deal with that.
1309 (new_var_info): Likewise.
1310 (collapse_rest_of_var): Likewise.
1312 2008-07-02 Joshua Sumali <jsumali@redhat.com>
1314 * doc/install.texi (--enable-java-home): Document.
1315 (--enable-aot-compile-rpm): Likewise.
1316 (--with-arch-directory): Likewise.
1317 (--with-os-directory): Likewise.
1318 (--with-origin-name): Likewise.
1319 (--with-arch-suffix): Likewise.
1320 (--with-jvm-root-dir): Likewise.
1321 (--with-jvm-jar-dir): Likewise.
1322 (--with-python-dir): Likewise.
1324 2008-07-02 Richard Guenther <rguenther@suse.de>
1326 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
1327 from decls explicitly. Merge operand checking from tuples.
1329 2008-07-02 Martin Jambor <mjambor@suse.cz>
1331 * tree-switch-conversion.c: Included timevar.h which I forgot before.
1333 2008-07-02 Martin Jambor <mjambor@suse.cz>
1335 * tree-switch-conversion.c: Included timevar.h
1336 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
1338 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
1340 2008-07-02 Martin Jambor <mjambor@suse.cz>
1342 * tree-switch-conversion.c: Corrected various comments and
1344 (build_constructors): Fixed minor formatting mistakes.
1346 * invoke.texi (Optimize Options): Corrected the
1347 switch-conversion-max-branch-ratio parameter.
1349 2008-07-02 Mark Shinwell <shinwell@codesourcery.com>
1351 * final.c (asm_insn_count): Return zero for an empty asm body.
1353 2008-07-02 Richard Guenther <rguenther@suse.de>
1355 * bitmap.h (bitmap_set_bit): Return bool.
1356 (bitmap_clear_bit): Likewise.
1357 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
1358 write to the bitmap if it would.
1359 (bitmap_clear_bit): Likewise.
1360 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
1361 bitmap_set_bit return value.
1362 (add_pred_graph_edge): Likewise.
1363 (add_graph_edge): Likewise.
1364 (do_sd_constraint): Likewise.
1365 (do_ds_constraint): Likewise.
1367 2008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1369 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
1370 Fix -Wc++-compat and/or -Wcast-qual warnings.
1371 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
1372 gen_regparm_prefix): Likewise.
1373 * vmsdbgout.c (write_modbeg, lookup_filename,
1374 vmsdbgout_source_line, vmsdbgout_init): Likewise.
1376 2008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
1378 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
1379 defaults.h definition apply.
1381 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1383 * function.c (assign_parm_remove_parallels): New.
1384 (assign_parm_setup_block_p): Do not return true for non-BLKmode
1386 (assign_parm_setup_block): Do not handle them.
1387 (assign_parm_setup_reg, assign_parm_setup_stack): Call
1388 assign_parm_remove_parallels.
1390 2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1392 * c-typeck.c (convert_for_assignment): Use
1393 vector_targets_convertible_p.
1394 * c-common.c (vector_targets_convertible_p): New.
1395 * c-common.h (vector_targets_convertible_p): New prototype.
1396 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
1397 opaque_p_V2SI_type_node.
1399 2008-07-01 Steve Ellcey <sje@cup.hp.com>
1401 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
1404 2008-07-01 Uros Bizjak <ubizjak@gmail.com>
1406 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
1407 TFmode constants via two element DImode vector for hosts with
1408 HOST_BITS_PER_WIDE_INT < 64.
1409 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
1410 also for HOST_BITS_PER_WIDE_INT < 64.
1412 2008-07-01 Richard Guenther <rguenther@suse.de>
1414 PR tree-optimization/36666
1415 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
1416 (get_constraint_exp_from_ssa_var): Split into ...
1417 (get_constraint_exp_for_temp): ... this ...
1418 (get_constraint_for_ssa_var): ... and that.
1419 Return constraint expressions for all touched sub-fields
1420 if the results address is not taken.
1421 (process_constraint): Remove assertion that aggregate
1422 assignments do not happen at this place.
1423 (get_constraint_for_component_ref): Add address_p argument.
1424 Return constraint expressions for all touched sub-fields
1425 if the results address is not taken.
1426 (do_deref): Use get_constraint_exp_for_temp.
1427 (get_constraint_for_1): Rename from ...
1428 (get_constraint_for): ... this. Add the old function as wrapper.
1429 (do_structure_copy): Use get_constraint_for_1.
1431 2008-07-01 Martin Jambor <mjambor@suse.cz>
1433 * Makefile.in (tree-switch-conversion.o): Add.
1434 (OBJS-common): Add tree-swtch-conversion.o.
1435 * passes.c (init_optimization_passes): Add pass_convert_switch.
1436 * tree-pass.h: (pass_convert_switch): Add.
1437 * tree-switch-conversion.c: New file.
1438 * gcc.dg/tree-ssa/cswtch.c: New testcase.
1439 * common.opt (ftree-cswtch): New option.
1440 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1441 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1442 * opts.c (decode_options): Set flag_tree_switch_conversion when
1443 optimization level is >= 2.
1444 * doc/invoke.texi (Optimize Options): Added description of
1445 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
1447 2008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1449 * config/darwin-driver.c (darwin_default_min_version): Fix
1450 -Wc++-compat warnings.
1452 2008-06-30 Uros Bizjak <ubizjak@gmail.com>
1454 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
1457 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1459 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
1461 2008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1463 PR rtl-optimization/34744
1464 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
1465 (df_scan_free_internal): Free data structures not
1466 allocated in storage pools.
1467 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
1468 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
1469 df_scan_free_mws_vec.
1470 * dse.c (dse_step6): Free offset_map_p and offset_map_n
1473 2008-06-30 H.J. Lu <hongjiu.lu@intel.com>
1475 * config/i386/i386.c (contains_aligned_value_p): Return true
1477 (ix86_function_arg_boundary): Return its natural boundary
1479 (return_in_memory_32): Don't check TDmode.
1480 (ix86_split_to_parts): Support splitting into 4 parts and
1481 support TFmode for 32bit target.
1482 (ix86_split_long_move): Support splitting into 4 parts.
1483 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
1485 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
1486 (ix86_init_builtins): Here.
1487 (ix86_scalar_mode_supported_p): Always return true for TFmode.
1488 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
1489 'q' and 'w', respectively.
1491 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
1493 (movtf_internal): Likewise.
1494 (<code>tf2): Likewise.
1495 (*absnegtf2_sse): Likewise.
1496 (copysign<mode>3): Likewise.
1497 (copysign<mode>3_const): Likewise.
1498 (copysign<mode>3_var): Likewise.
1499 (define_split UNSPEC_COPYSIGN): Likewise.
1500 * config/i386/sse.md (*nandtf3): Likewise.
1501 (<code>tf3): Likewise.
1502 (*<code>tf3): Likewise.
1504 2008-06-30 Joey Ye <joey.ye@intel.com>
1505 H.J. Lu <hongjiu.lu@intel.com>
1507 * global.c (compute_regsets): Set frame_pointer_needed here.
1508 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
1510 2008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1512 * doc/install.texi (specific): Expand Windows build notes.
1514 2008-06-30 Ira Rosen <irar@il.ibm.com>
1516 PR tree-optimization/36648
1517 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
1518 number of prolog iterations by step. Fix the comment.
1520 2008-06-30 Richard Guenther <rguenther@suse.de>
1523 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
1524 handle calls from ECF_MALLOC functions.
1525 (handle_pure_call): ECF_MALLOC functions do not return
1527 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
1529 2008-06-29 Andreas Schwab <schwab@suse.de>
1531 * config/m68k/m68k.c (print_operand): Always print a float
1533 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
1534 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
1537 * config/rs6000/x-linux64: Remove never used file.
1539 2008-06-29 Richard Guenther <rguenther@suse.de>
1541 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
1543 (struct alias_info): Move ...
1544 * tree-ssa-alias.c: ... here.
1545 (update_alias_info): Declare.
1546 (compute_may_aliases): Call it.
1547 (update_alias_info): New function.
1548 * tree-ssa-structalias.c (update_alias_info): Move ...
1549 * tree-ssa-alias.c (update_alias_info_1): ... here.
1550 * tree-ssa-structalias.c (process_constraint_1): Remove
1551 unused from_call argument. Rename to ...
1552 (process_constraint): ... this. Delete old wrapper.
1553 (make_constraint_to): Adjust callers.
1554 (handle_const_call): Likewise.
1555 (handle_pure_call): Likewise.
1556 (init_base_vars): Likewise.
1557 (handle_lhs_call): Likewise. Remove unnecessary constraint.
1558 (find_func_aliases): We don't need structure copies for
1560 (make_constraint_from_anything): Remove.
1561 (create_variable_info_for): For globals make constraints
1562 from escaped, not from anything.
1563 (compute_points_to_sets): Do not call update_alias_info.
1564 (ipa_pta_execute): Use make_constraint_from.
1566 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1568 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
1569 (bitmap.o-warn, dominance.o-warn): New.
1570 * configure.ac (cxx_compat_warn): Delete.
1571 (loose_warn): Add -Wcast-qual and -Wc++-compat.
1572 * system.h: Remove #pragma diagnostic for -Wcast-qual and
1574 * configure: Regenerate.
1576 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
1579 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1581 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
1582 * df-scan.c (df_notes_rescan): Likewise.
1583 * ggc-page.c (set_page_table_entry): Likewise.
1584 * intl.c (gcc_gettext_width): Likewise.
1585 * varasm.c (get_unnamed_section, get_noswitch_section,
1586 get_section): Likewise.
1588 2008-06-28 Andrew Jenner <andrew@codesourcery.com>
1590 * regrename.c (build_def_use): Don't copy RTX.
1592 2008-06-28 Sandra Loosemore <sandra@codesourcery.com>
1594 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
1595 (Type Attributes): Fix nesting of @table and @subsection. Adjust
1596 punctuation. Use @ref instead of @xref.
1597 (Function Names): Remove stray @display/@end display.
1598 (C++ Attributes): Use @ref instead of @xref.
1599 (Deprecated Features): Fix punctuation around @xref.
1600 (Backwards Compatibility): Likewise.
1601 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
1603 2008-06-28 Joseph Myers <joseph@codesourcery.com>
1605 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
1606 constants for E500 double.
1608 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1610 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
1611 element type of const_vector.
1613 2008-06-28 Uros Bizjak <ubizjak@gmail.com>
1615 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
1616 Remove FLAGS_REG clobber from expander pattern.
1617 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
1618 (anddi3, andsi3, andhi3, andqi3): Ditto.
1619 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
1620 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
1621 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
1622 (ashlsi3, ashlhi3, ashlqi3): Ditto.
1623 (ashrsi3, ashrhi3, ashrqi3): Ditto.
1624 (lshrsi3, lshrhi3, lshrqi3): Ditto.
1625 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
1626 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
1628 2008-06-28 Richard Guenther <rguenther@suse.de>
1630 * tree-ssa-structalias.c (callused_id, var_callused,
1631 callused_tree): Add.
1632 (handle_pure_call): New function.
1633 (find_func_aliases): Call it.
1634 (find_what_p_points_to): Handle the call-used set.
1635 (clobber_what_escaped): Likewise.
1636 (compute_call_used_vars): New function.
1637 (init_base_vars): Init the call-used variable.
1638 (do_sd_constraint): Do not propagate the solution from CALLUSED
1639 but use CALLUSED as a placeholder.
1640 (solve_graph): Likewise.
1641 * tree-flow-inline.h (gimple_call_used_vars): New function.
1642 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
1643 (compute_call_used_vars): Declare.
1644 * tree-ssa-alias.c (set_initial_properties): Call
1645 compute_call_used_vars.
1646 (reset_alias_info): Clear call-used variables.
1647 (add_call_clobber_ops): Assert we are not called for const/pure
1648 functions. Remove handling of them.
1649 (add_call_read_ops): Handle pure functions by adding the
1650 call-used set of variables as VUSEs.
1651 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
1652 (delete_tree_ssa): Free it.
1653 * tree-dfa.c (remove_referenced_var): Clear the var from the
1656 2008-06-28 Kai Tietz <kai.tietz@onevision.com>
1658 * tree.c (build_varargs_function_type_list): New.
1659 (build_function_type_list_1): New.
1660 (build_function_type_list): Use build_function_type_list_1.
1661 * tree.h (build_varargs_function_type_list): New.
1663 2008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1666 * config/spu/spu.c (spu_builtin_splats): Do not generate
1667 invalid CONST_VECTOR expressions.
1668 (spu_expand_vector_init): Likewise.
1670 2008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
1672 * optabs.c (libfunc_decls): New variable.
1673 (libfunc_decl_hash, libfunc_decl_eq): New functions.
1674 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
1675 for the same function twice.
1677 2008-06-27 Uros Bizjak <ubizjak@gmail.com>
1679 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
1680 ix86_expand_binary_operator directly.
1681 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
1683 (*ashrti3_1): Ditto.
1684 (*lshrti3_1): Ditto.
1685 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
1686 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
1687 using only one splitter. Conditionaly execute splitter before or
1688 after peephole2 pass.
1689 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
1690 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
1691 Use only one alternative in asm template.
1692 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
1694 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
1695 "J" operand constraint for operand 2.
1696 (*ashldi3_cconly_rex64): Ditto.
1697 (*ashrdi3_cmp_rex64): Ditto.
1698 (*ashrdi3_cconly_rex64): Ditto.
1699 (*lshrdi3_cmp_rex64): Ditto.
1700 (*lshrdi3_cconly_rex64): Ditto.
1701 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
1702 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
1703 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
1706 2008-06-27 Jakub Jelinek <jakub@redhat.com>
1708 * gimplify.c (omp_is_private): Don't return true if decl is not
1709 already private on #pragma omp for or #pragma omp parallel for.
1712 * tree-cfg.c (struct move_stmt_d): Replace block field with
1713 orig_block and new_block fields.
1714 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
1715 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
1716 (move_block_to_fn): Replace vars_map and new_label_map arguments
1717 with struct move_stmt_d pointer.
1718 (replace_block_vars_by_duplicates): New function.
1719 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
1720 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
1721 all subblocks of ORIG_BLOCK to the new function. Call
1722 replace_block_vars_by_duplicates.
1723 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
1724 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
1725 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
1726 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
1727 (expand_omp): Temporarily set input_location to the location of
1728 region's controlling stmt.
1729 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
1730 BIND_EXPR, push ctx->block_vars and gimplification vars into
1731 the BIND_EXPR and its block's BLOCK_VARS instead of directly
1733 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
1734 there are any BLOCK_VARS.
1735 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
1736 OMP_PARALLEL or OMP_TASK stmt.
1737 (lower_omp): Save and restore input_location around the lower_omp_1
1740 2008-06-27 Richard Guenther <rguenther@suse.de>
1742 PR tree-optimization/36400
1743 PR tree-optimization/36373
1744 PR tree-optimization/36344
1745 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
1746 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
1747 (update_alias_info): Remove call clobbering code.
1748 (make_constraint_to): New helper function.
1749 (make_escape_constraint): Likewise.
1750 (handle_rhs_call): Use it on all pointer containing arguments.
1751 Also mark the static chain escaped.
1752 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
1753 instead of ANYTHING.
1754 (make_constraint_from): New helper split out from ...
1755 (make_constraint_from_anything): ... here.
1756 (find_func_aliases): Add constraints for escape sites.
1757 (intra_create_variable_infos): Make constraints from NONLOCAL
1759 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
1761 (clobber_what_p_points_to): Remove.
1762 (clobber_what_escaped): New function.
1763 (init_base_vars): Init NONLOCAL and ESCAPED.
1764 (do_sd_constraint): Do not propagate the solution from ESCAPED
1765 but use ESCAPED as a placeholder.
1766 (solve_graph): Likewise.
1767 * tree-flow.h (clobber_what_p_points_to): Remove.
1768 (clobber_what_escaped): Declare.
1769 * tree-ssa-alias.c (set_initial_properties): Call it.
1770 Remove code clobbering escaped pointers.
1772 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1774 * function.c (allocate_struct_function): Only allocate a unique
1775 funcdef_no if the decl is nonzero.
1777 2008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
1779 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
1780 * config/mips/mips.c (mips_split_const_insns): New function.
1781 * config/mips/mips.md (move_type): New attribute.
1782 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
1783 (dword_mode): New attribute.
1784 (type): Avoid long line. Map "move_type"s to "type"s,
1785 choosing "multi" for doubleword moves if appropriate.
1786 Swap MTC/MFC comments to match their declaration order.
1787 (extended_mips16): Default to "yes" if "move_type" is "sll0",
1788 "type" is "branch" or "jal" is "direct".
1789 (length): Handle "extended_mips16" first. Make the default
1790 "0" for "ghost" instructions. Set the length from "move_type".
1791 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
1792 of "type", with "sll0" for the register alternative. Remove the
1793 "extended_mips16" attribute.
1794 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
1795 of "type", with "shift_shift" for the register alternative.
1796 Remove the "length" attribute.
1797 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
1798 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
1799 of "type", with "andi" for the register alternative.
1800 (*zero_extendqihi2): Likewise.
1801 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
1802 of "andi" instead of a "type" of "arith".
1803 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
1805 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
1806 (mov_<store>r, *mov<mode>_ra): Likewise.
1807 (extendsidi2): Use "move_type" instead of "type", with "move"
1808 for the register alternative.
1809 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
1810 of "type", with "signext" for the register alternative.
1811 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
1812 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
1813 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
1814 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
1815 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
1816 (unnamed branch insn): Likewise.
1817 (*movdi_gp32_fp64): Fold into...
1818 (*movdi_32bit): ...here.
1819 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
1820 (*movdf_hardfloat): ...this new pattern.
1821 (*movdf_softfloat): Remove redundant FPR alternatives.
1822 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
1823 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
1824 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
1825 the "move" attribute.
1826 (*movdi_32bit): Use "move_type" instead of "type" and remove the
1827 "length" attribute. Use "fpload" and "fpstore" instead of "load"
1828 and "store" for COP loads and stores.
1829 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
1830 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
1831 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
1832 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
1833 (*movtf_mips16, *movv2sf): Likewise.
1834 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
1835 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1836 (mfhc1<mode>): Use "move_type" instead of "move".
1837 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
1838 (loadgp_blockage): Remove the "length" attribute.
1839 (blockage, set_got_version, update_got_version): Likewise.
1840 (call_internal): Remove the "extended_mips16" attribute.
1841 (call_value_internal, call_value_multiple_internal): Likewise.
1842 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
1844 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
1845 the "length" attribute.
1847 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1849 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
1850 -Wcast-qual warnings.
1851 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
1852 handle_pragma_pop_macro): Likewise.
1853 * collect2.c (resolve_lib_name): Likewise.
1854 * config/arc/arc.c (arc_init): Likewise.
1855 * config/arm/arm.c (neon_builtin_compare,
1856 locate_neon_builtin_icode): Likewise.
1857 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
1858 * config/bfin/bfin.c (bfin_init_machine_status,
1859 bfin_optimize_loop): Likewise.
1860 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1861 * config/cris/cris.c (cris_init_expanders): Likewise.
1862 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
1863 * config/darwin.c (machopic_indirection_eq,
1864 machopic_indirection_name, machopic_output_indirection): Likewise.
1865 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
1866 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
1867 frv_optimize_membar): Likewise.
1868 * config/i386/cygwin.h (mingw_scan,
1869 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
1870 * config/i386/cygwin1.c (mingw_scan): Likewise.
1871 * config/i386/i386.c (machopic_output_stub): Likewise.
1872 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
1873 i386_pe_unique_section): Likewise.
1874 * config/ia64/ia64.c (ia64_init_machine_status,
1875 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
1877 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
1878 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
1879 * config/m68k/m68k.c (m68k_handle_option,
1880 m68k_sched_md_init_global): Likewise.
1881 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
1882 mcore_unique_section): Likewise.
1883 * config/mips/mips.c (mips_block_move_straight,
1884 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
1886 * config/mmix/mmix.c (mmix_init_machine_status,
1887 mmix_encode_section_info): Likewise.
1888 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
1889 * config/rs6000/rs6000.c (rs6000_init_machine_status,
1890 print_operand_address, output_toc, redefine_groups,
1891 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
1892 * config/s390/s390.c (s390_init_machine_status): Likewise.
1893 * config/score/score.c (score_block_move_straight,
1894 score_block_move_loop_body): Likewise.
1895 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1896 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1897 * emit-rtl.c (find_auto_inc): Likewise.
1898 * gcc.c (translate_options, process_command): Likewise.
1899 * reorg.c (dbr_schedule): Likewise.
1900 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
1901 * xcoffout.c (xcoffout_declare_function): Likewise.
1903 2008-06-27 Daniel Berlin <dberlin@dberlin.org>
1905 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
1906 ipa-pta working again.
1908 2008-06-27 David Edelsohn <edelsohn@gnu.org>
1910 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
1913 2008-06-27 Edmar Wienskoski <edmar@freescale.com>
1915 * config.gcc (powerpc*-*-*): Add new core e500mc.
1916 * config/rs6000/e500mc.md: New file.
1917 * config/rs6000/rs6000.c (processor_costs): Add new costs for
1919 (rs6000_override_options): Add e500mc case to
1920 processor_target_table. Altivec and Spe options not allowed
1921 with e500mc. Add isel instruction to e500mc by
1922 default. Initialize rs6000_cost for e500mc.
1923 (rs6000_issue_rate): Set issue rate for e500mc.
1924 * config/rs6000/rs6000.h (processor_type): Add
1925 PROCESSOR_PPCE500MC.
1926 (ASM_CPU_SPEC): Add e500mc.
1927 Set TARGET_ISEL to rs6000_isel.
1928 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
1929 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
1930 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
1932 * doc/invoke.texi: Add e500mc to list of cpus.
1934 2008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1937 * c-lex.c (lex_charconst): Initialize unsignedp.
1939 2008-06-27 Olivier Hainque <hainque@adacore.com>
1941 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
1942 documented assumptions.
1944 2008-06-26 H.J. Lu <hongjiu.lu@intel.com>
1946 * dwarf2out.c: Remove trailing white spaces. Break long line
1949 2008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
1951 * libfuncs.h (LTI_synchronize): New libfunc_index.
1952 (synchronize_libfunc): Declare.
1953 * builtins.c (expand_builtin_synchronize): Consider using
1954 synchronize_libfunc before falling back on an asm blockage.
1955 * config/mips/mips.c: Include libfuncs.h
1956 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
1958 2008-06-26 Nathan Froyd <froydnj@codesourcery.com>
1960 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
1961 parameter. Copy stack_reg to r11 where appropriate.
1962 (no_global_regs_above): Add gpr parameter.
1963 (rs6000_stack_info): Only add padding for SPE save area if we
1964 are saving SPE GPRs and CR.
1965 (saveres_routine_syms): New variable.
1966 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
1968 (rs6000_savres_routine_sym): New function.
1969 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
1971 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
1972 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
1973 Tweak FPR out-of-line saving.
1974 (rs6000_make_savres_rtx): New function.
1975 (rs6000_use_multiple_p): New function.
1976 (rs6000_savres_strategy): New function.
1977 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
1978 out-of-line if appropriate.
1979 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
1980 if we are optimizing for size.
1981 (GP_SAVE_INLINE): Define.
1982 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
1983 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
1984 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
1985 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
1986 (*save_fpregs_<mode>): Add use of r11.
1987 (*restore_gpregs_<mode>): New insn.
1988 (*return_and_restore_gpregs_<mode>): New insn.
1989 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
1991 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
1992 (*restore_gpregs_spe): New insn.
1993 (*return_and_restore_gpregs_spe): New insn.
1994 * config/rs6000/predicates.md (save_world_operation): Fix check.
1996 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
1998 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
1999 this point, so assert that.
2001 2008-06-26 Steven Bosscher <steven@gcc.gnu.org>
2003 * cfganal.c: Include vec.h and vecprim.h.
2004 (compute_idf): Import from...
2005 * tree-into-ssa (compute_idf): ...here.
2006 * basic-block.h (compute_idf): Export.
2008 2008-06-26 Joseph Myers <joseph@codesourcery.com>
2010 * c-decl.c (merge_decls): Use !current_function_decl to check for
2011 extern declaration of C99 inline function being at file scope.
2013 2008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
2015 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
2017 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2019 * alias.c (record_alias_subset, init_alias_analysis): Fix
2020 -Wc++-compat and/or -Wcast-qual warnings.
2021 * attribs.c (lookup_attribute_spec): Likewise.
2022 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
2023 copy_bb, connect_traces,
2024 find_rarely_executed_basic_blocks_and_cr): Likewise.
2025 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
2026 note_btr_set, migrate_btr_defs): Likewise.
2027 * builtins.c (result_vector, expand_builtin_memcpy,
2028 expand_builtin_mempcpy_args, expand_builtin_strncpy,
2029 builtin_memset_read_str, expand_builtin_printf,
2030 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
2032 * caller-save.c (mark_set_regs): Likewise.
2033 * calls.c (expand_call, emit_library_call_value_1): Likewise.
2034 * cgraph.c (cgraph_edge): Likewise.
2035 * combine.c (likely_spilled_retval_1): Likewise.
2036 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
2037 htab_counts_entry_del, get_coverage_counts): Likewise.
2038 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
2039 new_cselib_val): Likewise.
2040 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
2041 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
2043 * df-core.c (df_compact_blocks): Likewise.
2044 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
2045 * df-scan.c (df_grow_reg_info, df_ref_create,
2046 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
2047 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
2048 df_record_entry_block_defs, df_record_exit_block_uses,
2049 df_bb_verify): Likewise.
2050 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
2051 DF_REF_EXTRACT_MODE_CONST): New.
2052 * dominance.c (get_immediate_dominator, get_dominated_by,
2053 nearest_common_dominator, root_of_dom_tree,
2054 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
2055 -Wc++-compat and/or -Wcast-qual warnings.
2056 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
2057 record_store, replace_read, check_mem_read_rtx, scan_insn,
2058 dse_step1, dse_record_singleton_alias_set): Likewise.
2059 * dwarf2asm.c (dw2_force_const_mem): Likewise.
2061 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2063 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
2064 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
2065 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
2066 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
2067 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
2068 add_ranges_num, add_ranges_by_labels, file_info_cmp,
2069 file_name_acquire, output_file_names, add_const_value_attribute,
2070 premark_used_types_helper, file_table_eq, file_table_hash,
2071 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
2072 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
2073 -Wcast-qual warnings.
2074 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
2075 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
2076 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
2077 gen_reg_rtx, start_sequence, init_emit): Likewise.
2078 * et-forest.c (et_new_occ, et_new_tree): Likewise.
2079 * except.c (init_eh_for_function, gen_eh_region,
2080 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
2081 arh_to_landing_pad, arh_to_label, add_action_record,
2082 add_call_site, switch_to_exception_section): Likewise.
2083 * expmed.c (synth_mult): Likewise.
2084 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
2085 store_expr): Likewise.
2086 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
2088 * function.c (assign_stack_temp_for_type,
2089 allocate_struct_function, match_asm_constraints_1): Likewise.
2090 * gcov-io.c (gcov_allocate): Likewise.
2091 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
2092 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
2093 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
2094 record_one_set, insert_expr_in_table, insert_set_in_table,
2095 dump_hash_table, compute_hash_table_work, alloc_hash_table,
2096 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
2097 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
2098 -Wcast-qual warnings.
2100 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2102 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
2103 -Wcast-qual warnings.
2104 * gcc.c (process_command): Likewise.
2105 * genattrtab.c (oballoc): Use XOBNEW.
2106 (oballocvec): Define.
2107 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
2108 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
2109 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
2110 -Wc++-compat and/or -Wcast-qual warnings.
2111 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
2112 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
2113 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
2114 gen_presence_absence_set, gen_automaton, gen_regexp_el,
2115 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
2116 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
2117 add_excls, process_presence_absence_names,
2118 process_presence_absence_patterns, add_presence_absence,
2119 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
2120 get_free_state, add_arc, get_free_automata_list_el,
2121 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
2122 transform_3, cache_presence, create_ainsns, create_automata,
2123 create_state_ainsn_table, dfa_insn_code_enlarge,
2124 output_trans_func, output_min_issue_delay_func,
2125 output_dead_lock_func, output_reset_func,
2126 output_get_cpu_unit_code_func, output_dfa_start_func,
2127 expand_automata): Likewise.
2128 * genextract.c (gen_insn): Likewise.
2129 * gengtype-lex.l: Likewise.
2130 * gengtype.c (read_input_list, adjust_field_type,
2131 process_gc_options): Likewise.
2132 * genoutput.c (note_constraint): Likewise.
2133 * genpreds.c (mangle, add_constraint): Likewise.
2134 * genrecog.c (process_define_predicate, new_decision,
2135 add_to_sequence): Likewise.
2136 * gensupport.c (record_insn_name): Likewise.
2138 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2140 * config/i386/driver-i386.c (detect_caches_amd,
2141 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
2142 and/or -Wcast-qual warnings.
2143 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
2144 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
2145 gt_pch_save): Likewise.
2146 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
2147 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
2148 * global.c (compute_regsets): Likewise.
2149 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
2150 finish_graph_dump_file): Likewise.
2151 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
2152 unlink_bb_notes): Likewise.
2153 * integrate.c (get_hard_reg_initial_val): Likewise.
2154 * ipa-prop.c (ipa_push_func_to_list): Likewise.
2155 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
2156 * local-alloc.c (update_equiv_regs): Likewise.
2157 * loop-invariant.c (check_invariant_table_size,
2158 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
2160 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
2161 altered_reg_used, mark_altered): Likewise.
2162 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
2163 insert_var_expansion_initialization,
2164 combine_var_copies_in_loop_exit, apply_opt_in_copies,
2165 release_var_copies): Likewise.
2166 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
2167 analyze_matrix_decl, add_allocation_site, analyze_transpose,
2168 analyze_accesses_for_phi_node, check_var_notmodified_p,
2169 check_allocation_function, find_sites_in_func,
2170 record_all_accesses_in_func, transform_access_sites,
2171 transform_allocation_sites): Likewise.
2172 * omp-low.c (new_omp_region, create_omp_child_function_name,
2173 check_omp_nesting_restrictions, check_combined_parallel,
2174 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
2175 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
2176 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
2177 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
2179 * opts-common.c (prune_options): Likewise.
2180 * opts.c (add_input_filename, print_filtered_help,
2181 get_option_state): Likewise.
2182 * params.c (add_params): Likewise.
2183 * passes.c (set_pass_for_id, next_pass_1,
2184 do_per_function_toporder, pass_fini_dump_file): Likewise.
2185 * postreload.c (reload_cse_simplify_operands): Likewise.
2186 * predict.c (tree_predicted_by_p, tree_predict_edge,
2187 clear_bb_predictions, combine_predictions_for_bb): Likewise.
2189 2008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2191 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
2193 * recog.c (check_asm_operands, validate_change_1): Likewise.
2194 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
2195 subst_asm_stack_regs): Likewise.
2196 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
2197 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
2198 * regmove.c (reg_is_remote_constant_p): Likewise.
2199 * regrename.c (regrename_optimize, scan_rtx_reg,
2200 kill_clobbered_value, kill_set_value, kill_autoinc_value):
2202 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
2203 regstat_compute_calls_crossed): Likewise.
2204 * reload1.c (init_reload, new_insn_chain,
2205 has_nonexceptional_receiver, reload, copy_reloads,
2206 calculate_needs_all_insns, init_elim_table): Likewise.
2207 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
2208 * rtl.c (shallow_copy_rtx_stat): Likewise.
2209 * rtlanal.c (parms_set): Likewise.
2210 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
2211 sbitmap_resize, sbitmap_vector_alloc): Likewise.
2212 * sched-ebb.c (earliest_block_with_similiar_load,
2213 add_deps_for_risky_insns): Likewise.
2214 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
2215 schedule_region): Likewise.
2216 * see.c (eq_descriptor_pre_extension,
2217 hash_descriptor_pre_extension, hash_del_pre_extension,
2218 eq_descriptor_properties, hash_descriptor_properties,
2219 hash_del_properties, see_seek_pre_extension_expr,
2220 see_initialize_data_structures, see_print_register_properties,
2221 see_print_pre_extension_expr, see_delete_merged_def_extension,
2222 see_delete_unmerged_def_extension, see_emit_use_extension,
2223 see_pre_delete_extension, see_map_extension, see_commit_changes,
2224 see_analyze_merged_def_local_prop,
2225 see_analyze_merged_def_local_prop,
2226 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
2227 see_set_prop_merged_def, see_set_prop_unmerged_def,
2228 see_set_prop_unmerged_use, see_print_one_extension,
2229 see_merge_one_use_extension, see_merge_one_def_extension,
2230 see_store_reference_and_extension, see_update_uses_relevancy,
2231 see_update_defs_relevancy): Likewise.
2232 * statistics.c (hash_statistics_hash, hash_statistics_eq,
2233 hash_statistics_free, curr_statistics_hash): Likewise.
2234 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
2235 expand_asm_operands, expand_return, case_bit_test_cmp,
2236 expand_case): Likewise.
2237 * stor-layout.c (start_record_layout): Likewise.
2238 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
2239 gt_pch_save_stringpool): Likewise.
2240 * tree-data-ref.c (hash_stmt_vertex_info,
2241 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
2242 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
2244 2008-06-25 Uros Bizjak <ubizjak@gmail.com>
2247 * config/i386/i386.md : Change constraints of HImode and QImode
2248 immediate operands from "i" to "n". Change SImode "ni" constraint to
2249 "i" and SImode "rmi" constraint to "g". Remove all constraints
2250 from const0_operand and const1_operand predicated operands.
2251 (i): Change QImode and HImode attribute from "i" to "n".
2252 (*subqi_2): Change HImode operands to QImode.
2255 2008-06-25 Olivier Hainque <hainque@adacore.com>
2257 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
2260 2008-06-25 Richard Guenther <rguenther@suse.de>
2262 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
2263 not overflow the result type.
2265 2008-06-25 Richard Guenther <rguenther@suse.de>
2267 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
2268 (vn_lookup): Likewise.
2270 2008-06-25 Richard Guenther <rguenther@suse.de>
2272 PR tree-optimization/35518
2273 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
2274 * tree-sra.c (instantiate_element): Use fold_build3 to build
2276 (try_instantiate_multiple_fields): Likewise.
2278 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2280 * config/rs6000/rs6000.md: Change all string instruction's clobber to
2283 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2285 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
2286 use_backchain_to_restore_sp to true
2287 if the offset of the link register save area would go over the 32k - 1
2288 offset limit of the load
2291 2008-06-25 Hans-Peter Nilsson <hp@axis.com>
2293 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
2294 anchor for the type-punning blurb. Cross-reference "Structures
2295 unions enumerations and bit-fields implementation". Provide a
2296 cast-through-pointer example. Make final sentence self-contained.
2297 * doc/implement-c.texi (Structures unions enumerations and
2298 bit-fields implementation): Cross-reference the type-punning blurb
2299 in the -fstrict-aliasing documentation.
2301 2008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2304 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
2305 the memory instead of the memory itself for the save area.
2307 2008-06-24 Olivier Hainque <hainque@adacore.com>
2308 Nicolas Roche <roche@adacore.com>
2310 * gengtype.c (srcdir_len): size_t instead of int.
2311 (get_file_realbasename): New function. For F a filename, the real
2312 basename of F, with all the path components stripped.
2313 (get_file_srcdir_relative_path): New function. For F a filename, the
2314 relative path to F from $(srcdir).
2315 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
2316 get_file_realbasename. Adjust the head comment.
2317 (get_prefix_langdir_index): New function. For F a filename, return the
2318 lang_dir_names[] relative index of the language directory that is
2320 (get_file_langdir): For F a filename, return the name of the language
2321 directory where F is located.
2322 (get_file_gtfilename): New function. The gt- output file name for an
2324 (get_output_file_with_visibility): Replace in-line computations with
2325 uses of get_file_gtfilename and get_prefix_langdir_index.
2326 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
2328 2008-06-24 Jakub Jelinek <jakub@redhat.com>
2330 PR tree-optimization/36504
2331 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
2332 references without base address.
2334 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2337 * calls.c (expand_call): Increase alignment for recursive functions.
2339 2008-06-23 Anatoly Sokolov <aesok@post.ru>
2341 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
2342 (TARGET_FUNCTION_VALUE): New define.
2343 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
2344 * config/avr/avr.h (FUNCTION_VALUE): Remove.
2346 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2348 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
2349 (fmod<mode>3): Ditto.
2350 (remainderxf3): Ditto.
2351 (remainder<mode>3): Ditto.
2353 2008-06-23 Jakub Jelinek <jakub@redhat.com>
2356 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
2357 REG is a hard register.
2359 PR tree-optimization/36508
2360 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
2361 499, don't check it at all in release compilers.
2363 2008-06-23 Uros Bizjak <ubizjak@gmail.com>
2365 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
2366 together with SSE_TARGET_MATH to disable insn pattern.
2367 (*fop_<MODEF:mode>_2_i387): Ditto.
2368 (*fop_<MODEF:mode>_3_i387): Ditto.
2370 2008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
2372 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
2374 2008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2377 * gimplify.c (gimplify_asm_expr): Check the return code of
2378 parse_output_constraint call, set function return and is_inout
2381 2008-06-22 Ian Lance Taylor <iant@google.com>
2383 * c-lex.c (narrowest_unsigned_type): Change itk to int.
2384 (narrowest_signed_type): Likewise.
2385 * c-typeck.c (c_common_type): Change local variable mclass to enum
2387 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
2388 tcc_comparison, not the tree code itself.
2389 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
2390 (c_expand_expr): Cast modifier to enum expand_modifier.
2391 * c-common.h (C_RID_CODE): Add casts.
2392 (C_SET_RID_CODE): Define.
2393 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
2394 (c_lex_one_token): Add cast to avoid warning.
2395 (c_parser_objc_type_name): Rename local typename to type_name.
2396 (check_no_duplicate_clause): Change code parameter to enum
2398 (c_parser_omp_var_list_parens): Change kind parameter to enum
2400 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
2401 c_parser_omp_list_var_parens.
2402 (c_parser_omp_threadprivate): Likewise.
2403 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
2404 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
2405 * c-format.c (NO_FMT): Define.
2406 (printf_length_specs): Use NO_FMT.
2407 (asm_fprintf_length_specs): Likewise.
2408 (gcc_diag_length_specs): Likewise.
2409 (scanf_length_specs): Likewise.
2410 (strfmon_length_specs): Likewise.
2411 (gcc_gfc_length_specs): Likewise.
2412 (printf_flag_specs): Change 0 to STD_C89.
2413 (asm_fprintf_flag_specs): Likewise.
2414 (gcc_diag_flag_specs): Likewise.
2415 (gcc_cxxdiag_flag_specs): Likewise.
2416 (scanf_flag_specs): Likewise.
2417 (strftime_flag_specs): Likewise.
2418 (strfmon_flag_specs): Likewise.
2419 (print_char_table): Likewise.
2420 (asm_fprintf_char_table): Likewise.
2421 (gcc_diag_char_table): Likewise.
2422 (gcc_tdiag_char_table): Likewise.
2423 (gcc_cdiag_char_table): Likewise.
2424 (gcc_cxxdiag_char_table): Likewise.
2425 (gcc_gfc_char_table): Likewise.
2426 (scan_char_table): Likewise.
2427 (time_char_table): Likewis.
2428 (monetary_char_table): Likewise.
2429 * c-format.h (BADLEN): Likewise.
2431 2008-06-21 Ian Lance Taylor <iant@google.com>
2433 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
2434 Define END_OF_BASE_TREE_CODES around inclusion.
2435 * tree.c (tree_code_type): New global array.
2436 (tree_code_length, tree_code_name): Likewise.
2437 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
2439 (all-tree.def, s-alltree): New targets.
2440 (gencheck.h, s-gencheck): Remove.
2441 (tree.o): Depend upon all-tree.def.
2442 (build/gencheck.o): Remove gencheck.h dependency.
2443 (mostlyclean): Don't remove gencheck.h.
2444 * c-common.h (enum c_tree_code): Remove.
2445 * c-lang.c (tree_code_type): Remove.
2446 (tree_code_length, tree_code_name): Remove.
2447 * gencheck.c (tree_codes): Include all-tree.def, rather than
2448 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
2450 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
2452 * cp/cp-tree.h (enum cplus_tree_code): Remove.
2453 (operator_name_info): Size to MAX_TREE_CODES.
2454 (assignment_operator_name_info): Likewise.
2455 * cp/cp-lang.c (tree_code_type): Remove.
2456 (tree_code_length, tree_code_name): Remove.
2457 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
2458 (assignment_operator_name_info): Likewise.
2459 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
2461 * cp/mangle.c (write_expression): Likewise.
2462 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
2463 * fortran/f95-lang.c (tree_code_type): Remove.
2464 (tree_code_length, tree_code_name): Remove.
2465 * java/java-tree.h (enum java_tree_code): Remove.
2466 * java/lang.c (tree_code_type): Remove.
2467 (tree_code_length, tree_code_name): Remove.
2468 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
2469 * objc/objc-act.h (enum objc_tree_code): Remove.
2470 * objc/objc-lang.c (tree_code_type): Remove.
2471 (tree_code_length, tree_code_name): Remove.
2472 * objcp/objcp-lang.c (tree_code_type): Remove.
2473 (tree_code_length, tree_code_name): Remove.
2474 * ada/ada-tree.h (enum gnat_tree_code): Remove.
2475 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
2476 * ada/misc.c (tree_code_type): Remove.
2477 (tree_code_length, tree_code_name): Remove.
2479 2008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
2481 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
2482 the grand_bitmap_obstack.
2484 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2486 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
2487 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
2488 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
2489 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
2490 move_stmt_r, new_label_mapper): Likewise.
2491 * tree-complex.c (cvc_lookup): Likewise.
2492 * tree-dfa.c (create_function_ann): Likewise.
2493 * tree-dump.c (dump_register): Likewise.
2494 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
2495 find_phi_replacement_condition): Likewise.
2496 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
2497 tree_function_versioning): Likewise.
2498 * tree-into-ssa.c (cmp_dfsnum): Likewise.
2499 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
2500 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
2501 get_nonlocal_debug_decl, convert_nonlocal_reference,
2502 convert_nonlocal_omp_clauses, get_local_debug_decl,
2503 convert_local_reference, convert_local_omp_clauses,
2504 convert_nl_goto_reference, convert_nl_goto_receiver,
2505 convert_tramp_reference, convert_call_expr): Likewise.
2506 * tree-outof-ssa.c (contains_tree_r): Likewise.
2507 * tree-parloops.c (reduction_phi, initialize_reductions,
2508 eliminate_local_variables_1, add_field_for_reduction,
2509 add_field_for_name, create_phi_for_local_result,
2510 create_call_for_reduction_1, create_loads_for_reductions,
2511 create_stores_for_reduction, create_loads_and_stores_for_name):
2513 * tree-phinodes.c (allocate_phi_node): Likewise.
2514 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
2515 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
2516 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
2517 * tree-ssa-coalesce.c (compare_pairs): Likewise.
2518 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
2519 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
2520 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
2521 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
2522 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
2523 vn_nary_op_insert): Likewise.
2524 * tree-ssa.c (redirect_edge_var_map_add,
2525 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
2526 * tree-vectorizer.c (vectorize_loops): Likewise.
2527 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
2528 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
2529 tree_cons_stat, build1_stat, build_variant_type_copy,
2530 decl_init_priority_lookup, decl_fini_priority_lookup,
2531 decl_priority_info, decl_restrict_base_lookup,
2532 decl_restrict_base_insert, decl_debug_expr_lookup,
2533 decl_debug_expr_insert, decl_value_expr_lookup,
2534 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
2535 type_hash_add, get_file_function_name, tree_check_failed,
2536 tree_not_check_failed, tree_range_check_failed,
2537 omp_clause_range_check_failed, build_omp_clause,
2538 build_vl_exp_stat): Likewise.
2539 * value-prof.c (gimple_histogram_value,
2540 gimple_duplicate_stmt_histograms): Likewise.
2541 * var-tracking.c (attrs_list_insert, attrs_list_copy,
2542 unshare_variable, variable_union_info_cmp_pos, variable_union,
2543 dataflow_set_different_1, dataflow_set_different_2,
2544 vt_find_locations, variable_was_changed, set_variable_part,
2545 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
2546 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
2547 section_entry_hash, object_block_entry_eq,
2548 object_block_entry_hash, create_block_symbol,
2549 initialize_cold_section_name, default_function_rodata_section,
2550 strip_reg_name, set_user_assembler_name, const_desc_eq,
2551 build_constant_desc, output_constant_def, lookup_constant_def,
2552 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
2553 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
2554 default_internal_label): Likewise.
2555 * varray.c (varray_init, varray_grow): Likewise.
2556 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
2558 2008-06-20 Uros Bizjak <ubizjak@gmail.com>
2560 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
2561 operators for "test" insn. Macroize insn using SWI mode macro.
2562 (*jcc_fused_2): Ditto.
2563 (*jcc_fused_3): Macroize insn using SWI mode macro.
2564 (*jcc_fused_4): Ditto.
2566 2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
2568 * tree-ssa-pre.c: Fix typo in comment.
2569 (init_antic, fini_antic): Add explicit funtions for
2570 initializing and deinitializing ANTIC and AVAIL sets.
2571 (create_expression_by_pieces): Fix typo in comment.
2572 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
2573 (execute_pre): Eventually dump details about ANTIC_IN.
2575 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2577 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
2578 * gcc.c (translate_options, init_spec, store_arg, read_specs,
2579 add_to_obstack, file_at_path, find_a_file, execute,
2580 add_preprocessor_option, add_assembler_option, add_linker_option,
2581 process_command, insert_wrapper, do_option_spec, do_self_spec,
2582 spec_path, do_spec_1, is_directory, main, used_arg,
2583 getenv_spec_function): Likewise.
2584 * tlink.c (symbol_hash_lookup, file_hash_lookup,
2585 demangled_hash_lookup, symbol_push, file_push, frob_extension):
2588 2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2590 * doc/rtl.texi: Updated subreg section.
2592 2008-06-19 Jakub Jelinek <jakub@redhat.com>
2595 * cgraphunit.c (cgraph_process_new_functions): Don't clear
2596 node->needed and node->reachable.
2597 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
2598 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
2599 (expand_task_call): Don't call expand_task_copyfn.
2600 (expand_task_copyfn): Renamed to...
2601 (finalize_task_copyfn): ... this.
2603 2008-06-19 Jan Hubicka <jh@suse.cz>
2605 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
2606 clobbering framepointer.
2608 2008-06-19 Jan Hubicka <jh@suse.cz>
2610 * tree-optimize.c (execute_early_local_optimizations): Set
2611 cgraph_state only at first invocation.
2613 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2615 * system.h (-Wc++-compat): Activate as a warning, no an error.
2617 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2619 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
2620 instead of "#" in insn asm template.
2621 (*jcc_fused_2): Ditto.
2623 2008-06-19 Uros Bizjak <ubizjak@gmail.com>
2625 * config/i386/i386.h (ix86_tune_indices)
2626 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
2627 (TARGET_FUSE_CMP_AND_BRANCH): New define.
2628 * config/i386/i386.md (*jcc_fused_1): New insn pattern
2629 (*jcc_fused_2): Ditto.
2630 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
2631 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
2632 (print operand): Handle 'E' and 'e' code.
2634 2008-06-19 Anatoly Sokolov <aesok@post.ru>
2636 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
2637 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2638 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2640 2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
2642 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
2644 (cgraph_expand_function): Use local copy of decl.
2645 (cgraph_expand_all_functions): Remove redundant initialization of
2647 (cgraph_optimize): Reword internal_error message.
2649 2008-06-19 Chung-Lin Tang <ctang@marvell.com>
2651 * arm-protos.h (arm_return_in_memory): Remove public
2652 arm_return_in_memory() prototype.
2653 * arm.c (arm_return_in_memory): Add static prototype, add target
2654 hook macro, change definition and comments.
2655 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
2657 2008-06-19 Ben Elliston <bje@au.ibm.com>
2659 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
2660 real.c: Remove references to IEEE 754R.
2661 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
2662 * doc/libgcc.texi (Decimal float library routines): Likewise.
2664 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2666 * targhooks.h (struct gcc_target): New member unwind_word_mode.
2667 (default_unwind_word_mode): Add prototype.
2668 * targhooks.c (default_unwind_word_mode): New function.
2669 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
2670 instead of word_mode.
2671 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
2672 (TARGET_INITIALIZER): Use it.
2674 * c-common.c (handle_mode_attribute): Support "unwind_word"
2676 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
2678 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
2679 word_mode to access SjLj_Function_Context member "data".
2680 (sjlj_emit_dispatch_table): Likewise. Also, perform type
2681 conversion from targetm.eh_return_filter_mode () to
2682 targetm.unwind_word_mode () if they differ.
2684 * builtin-types.def (BT_UNWINDWORD): New primitive type.
2685 (BT_FN_UNWINDWORD_PTR): New function type.
2686 (BT_FN_WORD_PTR): Remove.
2687 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
2688 * except.c (expand_builtin_extend_pointer): Convert pointer to
2689 targetm.unwind_word_mode () instead of word_mode.
2691 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
2692 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
2693 (spu_unwind_word_mode): New function.
2694 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
2695 (TARGET_UNWIND_WORD_MODE): Define.
2696 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
2698 2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2700 * config/spu/spu.c (reg_align): Remove.
2701 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
2702 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
2703 (spu_split_store): Likewise.
2705 2008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
2707 * gcc/tree-vn.c: Fix typo in comment.
2709 2008-06-18 Jan Hubicka <jh@suse.cz>
2711 * cgraphunit.c (cgraph_optimize): Output debug info when doing
2712 toplevel reorder too.
2714 2008-06-18 Jan Hubicka <jh@suse.cz>
2716 * c-opts.c (c_common_post_options): PCH is not compatible with
2718 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
2719 -fno-toplevel-reorder by default now.
2721 2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2723 PR documentation/30739
2724 * doc/install.texi (Prerequisites): Document dependency on awk.
2726 2008-06-18 Uros Bizjak <ubizjak@gmail.com>
2727 Ian Lance Taylor <iant@google.com>
2729 PR rtl-optimization/35604
2730 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
2731 only want to change jump destinations, not eventual label comparisons.
2733 2008-06-16 Jan Hubicka <jh@suse.cz>
2735 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
2737 (cgraph_analyze_function): Likewise.
2739 2008-06-16 Jan Hubicka <jh@suse.cz>
2741 * cgraph.h (cgraph_mark_if_needed): New function.
2742 * cgraphunit.c (cgraph_mark_if_needed): New function.
2743 * c-decl.c (duplicate_decl): Use it.
2745 2008-06-16 Jan Hubicka <jh@suse.cz>
2747 * cgraph.c (cgraph_add_new_function): When in expansion state, do
2750 2008-06-16 Jan Hubicka <jh@suse.cz>
2752 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
2754 2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
2755 Kazu Hirata <kazu@codesourcery.com>
2756 Maxim Kuvyrkov <maxim@codesourcery.com
2758 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
2759 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
2760 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
2761 EXTRA_SPEC_FUNCTIONS.
2762 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
2763 (DRIVER_SELF_SPECS): Adjust.
2764 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
2765 * config/mips/st.h, config/mips/t-st: New.
2766 * config/mips/driver-native.c, config/mips/x-native: New.
2767 * doc/invoke.texi (MIPS): Document 'native' value for -march and
2770 2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2772 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
2774 (ISA_HAS_FP_CONDMOVE): New macro.
2775 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
2776 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
2777 (ISA_HAS_NMADD3_NMSUB3): New macro.
2778 * config/mips/mips.c (mips_rtx_costs): Update.
2779 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
2780 compiling for ST Loongson 2E/2F.
2781 (madd<mode>): Rename to madd4<mode>. Update.
2782 (madd3<mode>): New pattern.
2783 (msub<mode>): Rename to msub4<mode>. Update.
2784 (msub3<mode>): New pattern.
2785 (nmadd<mode>): Rename to nmadd4<mode>. Update.
2786 (nmadd3<mode>): New pattern.
2787 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
2788 (nmadd3<mode>_fastmath): New pattern.
2789 (nmsub<mode>): Rename to nmsub4<mode>. Update.
2790 (nmsub3<mode>): New pattern.
2791 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
2792 (nmsub3<mode>_fastmath): New pattern.
2793 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
2795 2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
2797 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
2798 (DF_REF_INSN_INFO): New.
2799 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
2800 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
2801 with a NULL DF_REF_INSN_INFO.
2802 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
2804 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
2805 DF_INSN_INFO_EQ_USES): New.
2806 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
2807 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
2808 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
2809 * df-core.c: Update comment for above changes.
2810 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
2811 DF_INSN_UID_* macros.
2812 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
2813 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
2814 insn rtx. Update all callers.
2815 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
2816 df_ref_create_structure, df_insn_refs_collect): Likewise.
2817 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
2818 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
2819 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
2820 macros to access the insn refs.
2821 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
2822 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
2823 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
2824 for accessing the refs.
2825 (try_fwprop_subst): Likewise.
2826 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
2827 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
2828 for accessing the refs.
2829 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
2830 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
2831 to look at the insn refs.
2832 (record_uses): Likewise.
2833 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
2835 (mark_artificial_uses): Don't mark_insn for artificial refs.
2836 (mark_reg_rependencies): Likewise.
2838 * doc/rtl.texi: Remove documentation of ADDRESSOF.
2840 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2842 * configure: Regenerate.
2844 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2846 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
2847 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2848 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2850 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2852 * config/avr/avr.c (avr_mcu_t): Add attiny167.
2853 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2854 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2856 2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
2858 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
2859 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2860 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2862 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
2864 * tree-ssa-sccvn.c: Fix format of comments.
2866 2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
2868 * cgraph.c: Remove unneeded forward declarations of eq_node()
2871 2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
2873 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
2875 (see_update_relevancy): Likewise.
2876 * fwprop.c (try_fwprop_subst): Likewise.
2877 * rtlanal.c (noop_move_p): Likewise.
2878 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
2879 notes to non-existing libcall blocks.
2880 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
2882 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
2883 (dead_libcall_p): Remove.
2884 (delete_trivially_dead_insns): Don't use it.
2885 * web.c (union_defs): Remove comment about keeping nops.
2886 * gcse.c (hash_scan_insn): Don't take libcall pointers.
2887 (compute_hash_table_work): Don't track libcall notes.
2888 (do_local_cprop): Don't take libcall pointers. Don't update
2890 (adjust_libcall_notes): Deleted.
2891 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
2892 ever have existed in the first place).
2893 (replace_store_insn): Don't try to remove libcall notes.
2894 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
2895 (resolve_reg_notes): Don't call them.
2896 (resolve_simple_move): Likewise.
2897 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
2898 Don't remove REG_RETVAL notes.
2899 * emit-rtl.c (try_split): Don't update libcall notes.
2900 (emit_copy_of_insn_after): Dito.
2901 * cselib.c (cselib_current_insn_in_libcall): Remove.
2902 (cselib_process_insn): Don't set/clear it.
2903 (new_elt_loc_list): Don't record it.
2904 (cselib_init): Don't initialize it.
2905 * cselib.c (struct elt_loc_list): Remove in_libcall field.
2906 * loop-invariant.c (find_invariant_insn): Don't look for libcall
2908 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
2909 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
2910 (init_deps): Don't initialize it.
2911 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
2912 * combine.c (delete_noop_moves): Don't update libcall notes.
2913 (can_combine_p): Remove now pointless #if 0 block.
2914 (try_combine): Remove another obsolete #if 0 block.
2915 (distribute_notes): Don't distribute libcall notes.
2916 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
2917 * dce.c (libcall_dead_p): Remove.
2918 (delete_unmarked_insns): Don't handle libcall blocks.
2919 (preserve_libcall_for_dce): Remove.
2920 (prescan_insns_for_dce): Don't special-case libcall block insns.
2921 * reload1 (reload): Don't handle libcall notes.
2922 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
2925 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
2927 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
2928 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2929 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2931 2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
2933 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
2934 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2935 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2937 2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2939 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
2941 2008-06-16 Ira Rosen <irar@il.ibm.com>
2943 PR tree-optimization/36493
2944 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
2945 the arguments list. Use VECTYPE to create vector pointer.
2946 (vectorizable_store): Fail if accesses through a pointer to vectype
2947 do not alias the original memory reference operands.
2948 Call vect_create_data_ref_ptr without the removed argument.
2949 (vectorizable_load): Likewise.
2950 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
2953 2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
2956 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
2959 2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2961 * config/mips/loongson2ef.md: New file.
2962 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
2963 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
2964 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
2965 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
2966 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
2968 (loongson2ef.md): New include.
2969 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
2970 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
2971 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
2972 (loongson_gt_<mode>, loongson_extract_halfword)
2973 (loongson_insert_halfword_0, loongson_insert_halfword_2)
2974 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
2975 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
2976 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
2977 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
2978 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
2979 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
2980 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
2981 (vec_interleave_low<mode>): Define type attribute.
2982 * config/mips/mips.c (mips_ls2): New static variable.
2983 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
2984 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
2985 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
2986 Implement target scheduling hooks.
2987 (mips_multipass_dfa_lookahead): Update to handle tuning for
2989 (mips_sched_init): Initialize data for Loongson scheduling.
2990 (mips_ls2_variable_issue): New static function.
2991 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
2993 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
2994 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
2995 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
2996 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
2997 Handle ST Loongson 2E/2F cores.
2998 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
3000 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3002 * omp-low.c (extract_omp_for_data): Fix comment typo.
3005 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3007 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
3008 FIXME note about gcc/config.guess.
3009 * doc/options.texi (Option file format): Remove non-ASCII bytes.
3010 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
3011 * doc/cppopts.texi: Likewise.
3012 * doc/extend.texi: Likewise.
3013 * doc/gcc.texi: Likewise.
3014 * doc/gccint.texi: Likewise.
3015 * doc/gcov.texi: Likewise.
3016 * doc/gty.texi: Likewise.
3017 * doc/hostconfig.texi: Likewise.
3018 * doc/install.texi: Likewise.
3019 * doc/invoke.texi: Likewise.
3020 * doc/loop.texi: Likewise.
3021 * doc/makefile.texi: Likewise.
3022 * doc/md.texi: Likewise.
3023 * doc/passes.texi: Likewise.
3024 * doc/tm.texi: Likewise.
3025 * doc/tree-ssa.texi: Likewise.
3026 * doc/trouble.texi: Likewise.
3028 2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
3029 Nathan Sidwell <nathan@codesourcery.com>
3030 Maxim Kuvyrkov <maxim@codesourcery.com>
3031 Richard Sandiford <rdsandiford@googlemail.com>
3033 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
3034 * config/mips/mips-protos.h (mips_expand_vector_init): New.
3035 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
3037 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
3038 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
3039 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
3041 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
3042 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
3043 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
3044 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
3045 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
3046 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
3047 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
3048 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
3049 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
3050 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
3051 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
3052 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
3053 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
3054 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
3055 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
3056 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
3057 (mips_builtins): Add Loongson builtins.
3058 (mips_loongson_2ef_bdesc): New.
3059 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
3060 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
3061 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
3062 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
3064 (mips_expand_vector_init): New.
3065 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
3066 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
3068 * config/mips/mips.md: Add unspec numbers for Loongson
3069 builtins. Include loongson.md.
3070 (MOVE64): Include Loongson vector modes.
3071 (SPLITF): Include Loongson vector modes.
3072 (HALFMODE): Handle Loongson vector modes.
3073 * config/mips/loongson.md: New.
3074 * config/mips/loongson.h: New.
3075 * config.gcc: Add loongson.h header for mips*-*-* targets.
3076 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
3078 2008-06-14 Joseph Myers <joseph@codesourcery.com>
3080 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
3081 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
3082 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
3083 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
3084 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
3085 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
3086 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
3087 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
3088 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
3089 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
3090 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
3091 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
3092 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
3093 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
3094 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
3095 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
3096 Remove use_fixproto=yes.
3097 (ia64*-*-hpux*): Remove comment about using fixproto.
3098 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
3100 2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3102 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
3104 * configure: Regenerate.
3106 2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
3109 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
3110 before evaluating it.
3112 2008-06-13 Jakub Jelinek <jakub@redhat.com>
3115 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
3116 nested inline functions.
3117 (start_decl, start_function): Don't invert DECL_EXTERNAL
3118 for nested inline functions.
3120 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
3122 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
3123 splits that must be made for correctness.
3125 2008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
3127 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
3128 (AVAIL_NON_MIPS16): Likewise.
3129 (mips_builtin_description): Replace target_flags with a predicate.
3130 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
3131 (dspr2_32): New availability predicates.
3132 (MIPS_BUILTIN): New macro.
3133 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
3134 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
3135 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
3136 Replace the TARGET_FLAGS parameters with AVAIL parameters.
3137 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
3138 (mips_dsp_32only_bdesc): Merge into...
3139 (mips_builtins): ...this new array.
3140 (mips_bdesc_map, mips_bdesc_arrays): Delete.
3141 (mips_init_builtins): Update after above changes.
3142 (mips_expand_builtin_1): Merge into...
3143 (mips_expand_builtin): ...here and update after above changes.
3145 2008-06-12 Paul Brook <paul@codesourcery.com>
3147 * longlong.h (__arm__): Define count_leading_zeros.
3148 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
3149 (clzsi2, clzdi2): New functions.
3150 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
3151 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
3152 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
3153 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
3154 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
3155 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
3156 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
3157 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
3158 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
3159 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
3161 2008-06-12 Kazu Hirata <kazu@codesourcery.com>
3163 * config/m68k/m68k.c (m68k_tune_flags): New.
3164 (override_options): Compute m68k_tune_flags.
3165 (MULL_COST, MULW_COST): Update for various variants of CFV2.
3166 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
3168 2008-06-12 Jakub Jelinek <jakub@redhat.com>
3171 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3173 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3175 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
3176 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
3178 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3180 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
3181 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
3183 2008-06-12 Jakub Jelinek <jakub@redhat.com>
3186 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
3189 2008-06-12 Richard Guenther <rguenther@suse.de>
3191 PR tree-optimization/36345
3192 * tree-flow.h (struct ptr_info_def): Align escape_mask,
3193 add memory_tag_needed flag.
3194 (may_alias_p): Declare.
3195 * tree-ssa-alias.c (may_alias_p): Export.
3196 (set_initial_properties): Use memory_tag_needed flag.
3197 (update_reference_counts): Likewise.
3198 (reset_alias_info): Reset memory_tag_needed flag.
3199 (create_name_tags): Check memory_tag_needed flag.
3200 (dump_points_to_info_for): Dump it.
3201 * tree-ssa-structalias.c (struct variable_info): Remove
3202 directly_dereferenced flag.
3203 (new_var_info): Do not initialize it.
3204 (process_constraint_1): Do not set it.
3205 (update_alias_info): Set is_dereferenced flag.
3206 (set_uids_in_ptset): Use may_alias_p.
3207 (set_used_smts): Check memory_tag_needed flag.
3208 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
3209 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
3210 memory_tag_needed flag.
3211 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
3214 2008-06-12 Kai Tietz <kai.tietz@onevision.com>
3216 * config/i386/i386.c (ix86_compute_frame_layout): Disable
3217 red zone for w64 abi.
3218 (ix86_expand_prologue): Likewise.
3219 (ix86_force_to_memory): Likewise.
3220 (ix86_free_from_memory): Likewise.
3222 2008-06-11 Edmar Wienskoski <edmar@freescale.com>
3225 * config/rs6000/rs6000.c (rs6000_override_options): Set
3226 rs6000_isel conditionally to the absence of comand line override.
3227 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3228 Remove duplicate rs6000_isel setting.
3229 * config/rs6000/eabispe.h: Ditto.
3231 2008-06-11 Richard Guenther <rguenther@suse.de>
3233 * alias.c (get_alias_set): Use the element alias-set for arrays.
3234 (record_component_aliases): For arrays and vectors do nothing.
3235 * c-common.c (strict_aliasing_warning): Handle the cases
3236 of alias set zero explicitly.
3237 * Makefile.in (dfp.o-warn): Add -Wno-error.
3239 2008-06-11 Joseph Myers <joseph@codesourcery.com>
3241 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
3243 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
3244 tune_32 tune_64 to supported_defaults. Allow values not
3245 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
3246 x86_64. Do not override cpu_32 or cpu_64 values from target name.
3247 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
3248 with_cpu_64 to generic for 64-bit-supporting configurations, not
3249 with_cpu. Remove FIXMEs.
3250 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
3251 --with-arch-64, --with-tune-32, --with-tune-64): Document.
3252 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
3253 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
3254 arch_32 and arch_64.
3256 2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
3257 Olivier Hainque <hainque@adacore.com>
3259 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
3260 Use DECL_SIZE_UNIT to retrieve the size of the field.
3262 2008-06-11 Joseph Myers <joseph@codesourcery.com>
3264 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
3265 with function calls after declarations. Lay out
3266 neon_float_type_node before further use.
3268 2008-06-11 Richard Guenther <rguenther@suse.de>
3270 * tree-flow.h (may_point_to_global_var): Declare.
3271 * tree-ssa-alias.c (may_point_to_global_var): New function.
3272 * tree-ssa-sink.c (is_hidden_global_store): Use it.
3274 2008-06-10 Kazu Hirata <kazu@codesourcery.com>
3276 * configure.ac: Teach that fido supports .debug_line.
3277 * configure: Regenerate.
3279 2008-06-10 Tom Tromey <tromey@redhat.com>
3281 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
3284 2008-06-10 Joseph Myers <joseph@codesourcery.com>
3286 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
3287 (encode_decimal64, decode_decimal64, encode_decimal128,
3288 decode_decimal128): Reverse order of 32-bit parts of value if host
3289 and target endianness differ.
3291 2008-06-10 Vinodha Ramasamy <vinodha@google.com>
3293 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
3294 Avoid division by 0.
3295 (tree_mod_pow2_value_transform): Likewise.
3296 (tree_ic_transform): Likewise.
3297 (tree_stringops_transform): Likewise.
3298 (tree_mod_subtract_transform): Likewise.
3299 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
3300 (copy_edges_for_bb): Likewise.
3301 (initialize_cfun): Likewise.
3303 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
3305 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
3306 nonmemory_operand. Add "N" operand constraint.
3308 (*jcc_btdi_mask_rex64): New instruction and split pattern.
3309 (*jcc_btsi_mask): Ditto.
3310 (*jcc_btsi_mask_1): Ditto.
3312 2008-06-10 Joseph Myers <joseph@codesourcery.com>
3314 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
3315 TYPE_CANONICAL for copied element type.
3317 2008-06-10 Uros Bizjak <ubizjak@gmail.com>
3320 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
3321 Add m_CORE2 and m_GENERIC.
3322 * config/i386/predicates.md (bt_comparison_operator): New predicate.
3323 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
3325 (*jcc_btdi_rex64): New instruction and split pattern.
3327 (*jcc_btsi_1): Ditto.
3328 (*btsq): Fix Intel asm dialect operand order.
3332 2008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
3335 * simplify-rtx.c (simplify_subreg): Add check for shift count
3338 2008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
3340 * doc/md.texi: Synchronize with later constraints.md change.
3341 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
3342 with a C implementation.
3343 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
3345 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
3346 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
3347 when moving to and from MD_REGNUM.
3348 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
3349 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
3350 Handle byte and halfword moves.
3351 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
3353 * config/mips/constraints.md (h): Turn into NO_REGS.
3354 (l, x): Update documentation.
3355 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
3356 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
3357 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
3358 (HILO): New mode iterator.
3360 (any_div): New code iterator.
3361 (u): Extend code attribute to div and udiv.
3362 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
3363 d_operand in the splitters. Remove redundant CONST_INT checks.
3364 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
3365 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
3366 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
3367 accordingly, using normal moves instead of unspecs to move LO into
3368 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
3369 (<u>mulsidi3): Handle expansion in C code.
3370 (<u>mulsidi3_32bit_internal): Rename to...
3371 (<u>mulsidi3_32bit): ...this.
3372 (<u>mulsidi3_32bit_r4000): Fix insn separator.
3373 (*<u>mulsidi3_64bit): Rename to...
3374 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
3375 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
3376 to set LO and HI to the multiplication result. Use a normal move
3377 for MFLO and an unspec for MFHI.
3378 (*<u>mulsidi3_64bit_parts): Replace with...
3379 (<u>mulsidi3_64bit_hilo): ...this new instruction.
3380 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
3381 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
3382 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
3383 instead of HI. Split the instruction into a separate multiplication
3384 and MFHI if !TARGET_FIX_R4000.
3385 (<su>muldi3_highpart): Likewise.