1 2009-09-13 Kai Tietz <kai.tietz@onevision.com>
3 * config.gcc (tm_file): Remove i386/biarch32.h
4 for i?86-w64-mingw* case.
5 (i?86-*-mingw* andx86_64-*-mingw*): Add multilib
7 * config.host: Set for cygwin and x86/x64 mingw the
8 option use_long_long_for_widest_fast_int to yes.
10 2009-09-13 Eric Botcazou <ebotcazou@adacore.com>
12 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
13 * dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P.
14 (dbxout_begin_function): Likewise.
15 * final.c (dwarf2_debug_info_emitted_p): New predicate.
16 (final_start_function): Do not emit debug info if DECL_IGNORED_P is
18 (final_end_function): Likewise.
19 (final_scan_insn): Likewise.
20 (rest_of_handle_final): Likewise.
21 * varasm.c (assemble_start_function): Likewise.
22 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
24 2009-09-12 Jason Merrill <jason@redhat.com>
26 * dbgcnt.c (dbg_cnt_process_single_pair): constify.
27 * opts.c (common_handle_option): constify.
29 2009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
31 * doc/install.texi (avr): Remove obsolete reference site.
33 2009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
35 * doc/install.texi (Binaries): Adjust AIX link.
37 2009-09-12 Akim Demaille <demaille@gostai.com>
39 * doc/invoke.texi (-fstrict-aliasing): Correct two examples.
40 Use an imperative sentence.
42 2009-09-11 Richard Henderson <rth@redhat.com>
44 * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add
45 structure-name and has-tree-operands arguments; update all entries.
46 * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol;
48 * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument.
49 (gsstruct_code_size): New.
51 (gss_for_code): Remove.
52 (gimple_size): Rewrite using gsstruct_code_size.
53 (gimple_statement_structure): Move to gimple.h.
54 * gimple.h (gimple_ops_offset_, gss_for_code_): Declare.
55 (gss_for_code, gimple_statement_structure): New.
56 (gimple_ops): Use new arrays; tidy.
58 2009-09-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
60 * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
61 operand to be a PLUS expression.
62 * config/pa/pa.c (pa_secondary_reload): Likewise.
64 2009-09-11 Jakub Jelinek <jakub@redhat.com>
66 * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
68 * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of
71 2009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
73 From Jie Zhang <jie.zhang@analog.com>:
74 * doc/extend.texi (node Function Attributes): Document l2
76 (node Blackfin Variable Attributes): Document l2 variable attributes.
78 2009-09-11 Loren J. Rittle <ljrittle@acm.org>
80 * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit
81 to match the system compiler's configuration at inflection point.
82 Add comment to remark a remaining difference with system compiler.
84 * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail.
85 * configure: Regenerate.
87 2009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
89 From Jie Zhang <jie.zhang@analog.com>:
90 * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions.
91 (bfin_handle_l2_attribute): New.
92 (bfin_attribute_table): Add l2 attribute.
94 2009-09-11 Michael Matz <matz@suse.de>
97 * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls
98 on the local_decls list.
100 2009-09-11 Alexandre Oliva <aoliva@redhat.com>
104 * cselib.c (cselib_expand_value_rtx_cb): Document callback
106 (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust
107 for VALUEs, to implement the documented interface.
108 * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
109 Adjust for VALUEs and anything else, to implement the
110 documented interface.
112 2009-09-10 Nathan Froyd <froydnj@codesourcery.com>
114 * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
115 with actual SPE/paired vector modes before using 64-bit alignment.
116 Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.
118 2009-09-10 DJ Delorie <dj@redhat.com>
120 * config/mep/mep.md (eh_epilogue): Defer until after epilogue is
123 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New.
124 * config/mep/mep.c (mep_legitimate_constant_p): New.
125 * config/mep/mep-protos.h: Prototype it.
127 2009-09-10 Richard Henderson <rth@redhat.com>
129 * print-rtl.c (print_rtx): Fix JUMP_LABEL index.
131 2009-09-10 Jason Merrill <jason@redhat.com>
133 * tree.c (chain_index): New fn.
134 * tree.h: Declare it.
136 2009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
138 * config/sol2-c.c (cmn_err_length_specs): Initialize
139 scalar_identity_flag.
141 2009-09-10 Richard Henderson <rth@redhat.com>
143 * tree.h (struct tree_decl_common): Move align member earlier;
144 move label_decl_uid member ...
145 (struct tree_label_decl): ... here.
146 (LABEL_DECL_UID): Update to match.
148 * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH,
151 * tree-cfg.c (gimple_redirect_edge_and_branch): Do
152 gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
154 * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
155 dest_prev if the edge is complex.
157 * tree-cfg.c (is_ctrl_stmt): Use a switch.
159 * tree-cfg.c (gimple_can_merge_blocks_p): Move label and
160 loop latch tests earlier.
162 * gimple-iterator.c (gimple_find_edge_insert_loc): Insert
163 before GIMPLE_RETURN, not after its predecessor; insert
166 * gimple-iterator.c (gimple_find_edge_insert_loc): Use
167 gimple_seq_empty_p to test for no PHI nodes.
168 * tree-cfg.c (split_critical_edges): Likewise.
170 * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify.
172 2009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
174 * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions
175 introduced by the VTA branch merge.
177 2009-09-10 Uros Bizjak <ubizjak@gmail.com>
179 * ira-conflicts.c: Use fputs or putc instead of fprintf
183 * tree-switch-conversion.c: Ditto.
185 2009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
187 * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions
188 introduced by the VTA branch merge.
190 2009-09-10 Uros Bizjak <ubizjak@gmail.com>
193 2009-09-09 Uros Bizjak <ubizjak@gmail.com>
195 PR rtl-optimization/39779
196 * expr.c (convert_modes): Return when mode == oldmode after
197 CONST_INTs are processed.
199 2009-09-10 Nick Clifton <nickc@redhat.com>
201 * config/mep/mep.c (mep_encode_section_info): Copy weakness
202 attribute and referring decl when creating renamed symbol.
204 2009-09-10 Richard Guenther <rguenther@suse.de>
207 * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for
209 (cgraph_finalize_compilation_unit): Compute reachability
210 before emitting thunks. Properly process aliases before
211 possibly removing unreachable nodes.
213 2009-09-10 Richard Guenther <rguenther@suse.de>
216 * tree.c (struct free_lang_data_d): Add worklist member.
217 (find_decls_types_r): Push onto the worklist instead of recursing.
218 Handle TREE_BINFOs properly.
219 (find_decls_types): New function wrapped around find_decls_types_r
220 to process the worklist.
221 (find_decls_types_in_eh_region): Use it.
222 (find_decls_types_in_node): Likewise.
223 (find_decls_types_in_var): Likewise.
224 (free_lang_data_in_cgraph): Likewise. Free the worklist.
225 * tree.h (RECORD_OR_UNION_TYPE_P): New.
226 (AGGREGATE_TYPE_P): Adjust.
228 2009-09-09 Jason Merrill <jason@redhat.com>
230 * configure.ac: Check glibc version even if we have an in-tree
233 2009-09-09 Anthony Green <green@moxielogic.com>
235 * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load
236 the constant 0 when appropriate.
237 * config/moxie/constraints.md: Add constraint O.
239 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust
240 to pass up to 6 32-bit argument values in registers.
241 (moxie_function_arg): Ditto.
242 (moxie_arg_partial_bytes): Ditto.
243 * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto.
244 (REG_PARM_STACK_SPACE): Ditto.
245 (FUNCTION_ARG_REGNO_P): Ditto.
247 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
248 instruction to allocate stack space.
250 2009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
252 * config/rs6000/rs6000.md (bswapdi2_64bit): Fix
253 unnecessarily stringent constraints. Fix address
254 calculation in the splitters.
256 2009-09-09 Uros Bizjak <ubizjak@gmail.com>
258 PR rtl-optimization/39779
259 * expr.c (convert_modes): Return when mode == oldmode after
260 CONST_INTs are processed.
262 2009-09-09 Kai Tietz <kai.tietz@onevision.com>
265 * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too.
266 (ix86_expand_prologue): Take frame.padding0 into logic of
268 (ix86_expand_epilogue): Likewise.
270 2009-09-09 Jakub Jelinek <jakub@redhat.com>
272 * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
274 (SHLIB_LINK, SHLIB_INSTALL): Use them.
275 * config/t-slibgcc-libgcc: New file.
276 * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
278 2009-09-09 Martin Jambor <mjambor@suse.cz>
280 PR tree-optimization/41089
281 * tree-sra.c (find_var_candidates): Do not consider va_lists in
284 2009-09-09 Richard Henderson <rth@redhat.com>
286 * gimple.h (CASE_GIMPLE_OMP): New.
287 (is_gimple_omp): Use it.
288 * tree-cfg.c (is_ctrl_altering_stmt): Likewise.
289 (verify_gimple_debug): Likewise.
291 2009-09-09 Richard Guenther <rguenther@suse.de>
293 PR tree-optimization/41101
294 * tree-ssa-pre.c (maximal_set): Remove.
295 (compute_antic_aux): Treat the maximal set as implicitly all ones.
296 Defer all blocks we didn't visit at least one successor.
297 (add_to_exp_gen): Do not add to the maximal set.
298 (make_values_for_phi): Likewise.
299 (compute_avail): Likewise.
300 (init_pre): Do not allocate the maximal set.
301 (execute_pre): Do not dump it.
303 2009-09-09 Martin Jambor <mjambor@suse.cz>
305 * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is
306 an SSA_NAME rather than a is_gimple_variable.
308 2009-09-09 Richard Guenther <rguenther@suse.de>
311 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
312 code dealing with plain pointer bases.
313 (maybe_fold_offset_to_reference): Likewise.
314 (maybe_fold_stmt_addition): Adjust.
316 2009-09-09 Richard Guenther <rguenther@suse.de>
318 * tree.c (free_lang_data_in_type): Do not free the type variant
320 (free_lang_data): Merge char_type_node with its properly signed
322 (pass_ipa_free): Collect after freeing language specific data.
324 2009-09-09 Michael Matz <matz@suse.de>
327 * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing
328 SUBREG_PROMOTED_UNSIGNED_P, instead of a bool.
329 * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments
332 2009-09-08 DJ Delorie <dj@redhat.com>
334 * config/mep/mep.c (conversions[]): Add "ml" pattern.
336 2009-09-04 Jason Merrill <jason@redhat.com>
338 * tree.c (tree_find_value): Remove.
339 * tree.h: Remove prototype.
340 * varasm.c (assemble_external): Use value_member instead.
342 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
344 * toplev.c (process_options): Choose default debugging type when
345 gtoggle enables debug info and type is unset.
347 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
351 * cselib.c (cselib_expand_value_rtx_1): Don't return copy of
354 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
356 * configure: Rebuilt with modified libtool.m4.
358 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
363 * tree-ssa.c (execute_update_addresses_taken): Update debug insns.
365 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
367 * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
368 (remove_statement): Likewise.
369 (rewrite_use_nonlinear_expr): Adjust.
370 (remove_unused_ivs): Collect SSA NAMEs to remove and call...
371 * tree-ssa.c (release_defs_bitset): ... this. New.
372 * tree-flow.h (release_defs_bitset): Declare.
374 2009-09-08 Alexandre Oliva <aoliva@redhat.com>
377 * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
380 2009-09-08 Kai Tietz <kai.tietz@onevision.com>
382 * tree-ssa-reassoc.c (find_operand_rank): Cast pointer
383 via intptr_t to long type.
384 (insert_operand_rank): Cast long type via intptr_t to
386 * genattrtab.c (RTL_HASH): Use intptr_t to cast from
388 * c-pretty-print.c (pp_c_tree_decl_identifier): Cast
389 from pointer to unsigned via uintptr_t.
391 * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
392 uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
394 * configure: Regenerated.
395 * config.in: Regenerated
396 * system.h (stdint.h): Add include.
397 (inttypes.h): Likewise.
398 * Makefile.in (aclocal): Add config/stdint.m4.
399 * aclocal.m4: Regenerated.
401 2009-09-08 Bernd Schmidt <bernd.schmidt@analog.com>
403 * config/bfin/bfin.c (np_check_regno, np_after_branch): New static
405 (note_np_check_stores): New function.
406 (harmless_null_pointer_p): New function.
407 (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH. Callers
408 changed. Take into account whether we're in the shadow of a condjump
409 that tested NP_REG for NULL.
410 Lose all code that tested for SEQUENCEs.
411 (workaround_speculation): Avoid inserting NOPs for loads that are
412 either always executed or a NULL pointer.
414 2009-09-08 Jan Hubicka <jh@suse.cz>
416 * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8.
417 * params.def (early-inlining-insns): Likewise.
419 2009-09-08 Jakub Jelinek <jakub@redhat.com>
421 PR rtl-optimization/41239
422 * sched-int.h (struct deps): Add last_function_call_may_noreturn field.
423 * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn
425 * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns
426 across calls, as the calls might not always return normally.
427 (call_may_noreturn_p): New function.
428 (deps_analyze_insn): Update last_function_call_may_noreturn list.
429 (init_deps): Initialize it.
430 (remove_from_deps): Also remove calls from
431 last_function_call_may_noreturn list.
433 2009-09-07 Richard Henderson <rth@redhat.com>
435 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are
436 more VR->OPERANDS than LHS operands. Free LHS before returning.
438 2009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
440 * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant.
441 (attr "addrtype"): New member "spreg".
442 Use it if mem_spfp_address_operand is true for the address.
443 (attr "type"): New entry "stall".
444 (cpu_unit "load"): New.
445 (insn_reservations "load32", "loadp", "loadi"): Add reservation of
447 (insn_reservation "loadsp"): New.
448 (insn_reservation "load_stall1"): New.
449 (insn_reservation "load_stall3"): New.
451 * config/bfin/predicates.md (const1_operand, const3_operand): New.
452 (mem_p_address_operand): Exclude stack and frame pointer based
454 (mem_spfp_address_operand): New; match them here.
455 * config/bfin/bfin.c (add_sched_insns_for_speculation): New function.
456 (bfin_reorg): Call it if scheduling insns.
457 (bfin_gen_bundles): Remove dummy insns created by
458 add_sched_insns_for_speculation.
460 From Jie Zhang <jie.zhang@analog.com>:
461 * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type,
462 bfin_si_revision, bfin_workarounds): Move these ...
463 * config/bfin/bfin.h: ... here.
465 From Mike Frysinger <michael.frysinger@analog.com>
466 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M,
467 BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M.
468 * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m,
469 bf547m, bf548m, and bf549m.
470 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__
471 for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M,
472 __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for
473 BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M.
474 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
475 bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none.
476 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
477 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
478 * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts
479 bf542m, bf544m, bf547m, bf548m, and bf549m.
481 From Jie Zhang <jie.zhang@analog.com>:
482 * config/bfin/predicates.md (p_register_operand): New predicate.
483 (dp_register_operand): New predicate.
484 * config/bfin/bfin-protos.h (WA_05000074): Define.
485 (ENABLE_WA_05000074): Define.
486 * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus.
487 (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0].
488 * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm.
489 (define_attr addrtype): Allow load/store register to be P register.
490 (define_attr storereg): New.
491 (define_cpu_unit anomaly_05000074): New.
492 (define_insn_reservation dsp32shiftimm): New.
493 (define_insn_reservation dsp32shiftimm_anomaly_05000074): New.
494 (define_insn_reservation loadp): Cannot use slot2.
495 (define_insn_reservation loadsp): Cannot use slot2.
496 (define_insn_reservation storep): Cannot use slot2. Does not
497 apply when working around 05000074.
498 (define_insn_reservation storep_anomaly_05000074): New.
499 (define_insn_reservation storei): Does not apply when working
501 (define_insn_reservation storei_anomaly_05000074): New.
502 (define_attr length): Add dsp32shiftimm case.
503 (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3,
504 ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low,
505 movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
506 ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3):
507 Set type as dsp32shiftimm for dsp32shiftimm alternatives.
509 2009-09-07 Martin Jambor <mjambor@suse.cz>
512 * tree-sra.c (create_artificial_child_access): Return NULL if
513 build_ref_for_offset fails.
514 (propagate_subacesses_accross_link): Allow build_ref_for_offset
515 and create_artificial_child_access to fail.
517 2009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
520 * unwind-dw2.c (uw_init_context_1): Mark noinline.
521 * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
522 * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.
524 2009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
526 * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
527 block, ensure it has an exit edge. Emit a barrier after a jump.
529 2009-09-07 Nick Clifton <nickc@redhat.com>
531 * gcc.c (this_is_linker_script): New variable. Like
532 this_is_library_file but for the %T constructor.
533 (end_going_arg): If this_is_linker_script is set then locate the
534 script and insert a --script switch before it
535 (do_spec_2): Initialise this_is_linker_script.
536 (do_spec_1): Likewise. Handle %T construct.
537 (eval_spec_function): Preserve this_is_linker_script.
538 * doc/invoke.texi: Document %T construct in spec files.
539 * config/m32c/m32c.h (LIB_SPEC): Use it.
541 2009-09-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
543 * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro.
544 * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier
545 when volatile flag is set.
546 * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces.
548 2009-09-06 Eric Botcazou <ebotcazou@adacore.com>
551 * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores.
552 (combine_stack_adjustments_for_block): Allow insns between stack
553 adjustments and stores with corresponding pre-(dec|inc)rement or
554 pre-modify operation.
556 2009-09-06 Jakub Jelinek <jakub@redhat.com>
559 * combine-stack-adj.c (struct csa_memlist): Rename to...
560 (struct csa_reflist): ... this. Rename mem field to ref.
561 (free_csa_memlist): Rename to...
562 (free_csa_reflist): ... this.
563 (record_one_stack_memref): Rename to...
564 (record_one_stack_ref): ... this. Handle also REG_P.
565 (try_apply_stack_adjustment): Handle also REG_P.
566 (struct record_stack_memrefs_data): Rename to...
567 (struct record_stack_refs_data): ... this. Rename memlist field to
569 (record_stack_memrefs): Rename to...
570 (record_stack_refs): ... this. For DEBUG_INSNs keep traversing
571 subexpressions instead of failing when a MEM contains SP references.
572 For SP itself in DEBUG_INSNs queue it also onto reflist chain.
573 (combine_stack_adjustments_for_block): Adjust for mem to ref renaming.
575 2009-09-06 Richard Guenther <rguenther@suse.de>
578 * tree.c (build_array_type): Do not record types marked
579 with structural equality in the canonical type hashtable.
581 2009-09-06 Richard Guenther <rguenther@suse.de>
584 * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls.
586 2009-09-05 Richard Guenther <rguenther@suse.de>
589 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type.
591 2009-09-05 Richard Guenther <rguenther@suse.de>
594 * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops.
596 2009-09-05 Richard Guenther <rguenther@suse.de>
599 * tree-ssa.c (useless_type_conversion_p): Drop qualifiers
600 before comparing function argument types.
602 2009-09-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
605 * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to
608 2009-09-04 Uros Bizjak <ubizjak@gmail.com>
611 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
613 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
614 locators before emit_insn is called.
616 2009-09-04 Vladimir Makarov <vmakarov@redhat.com>
619 * ira.c (update_equiv_reg): Revert my previous patch for the PR.
620 * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary.
621 (reginfo_init): Don't call allocate_reg_info.
623 2009-09-04 Uros Bizjak <ubizjak@gmail.com>
626 * config/alpha/alpha.c (alpha_does_function_need_gp): Use
627 NONDEBUG_INSN_P instead of INSN_P.
629 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
632 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.
634 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
637 * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
638 pattern of the split.
640 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
642 * toplev.c (process_options): Move setter of flag_var_tracking
643 before other tests that depend on it. Move down setter of
644 flag_rename_registers. Don't enable var-tracking-assignments
645 by default if selective scheduling is enabled. Warn if both
648 2009-09-04 Alexandre Oliva <aoliva@redhat.com>
650 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match
651 comment. Use switch statement to catch overlaps between rtx
652 and tree codes. Accept FUNCTION_DECLs in addition to those in...
653 (IS_DECL_CODE): ... here. Remove.
654 (check_value_is_not_decl): Remove.
655 (dv_from_decl, dv_from_value): Check after conversion.
657 2009-09-04 Richard Guenther <rguenther@suse.de>
660 * (cgraph_finalize_compilation_unit): Move finalizing aliases
661 after emitting tunks. Move emitting thunks and ctors from ...
662 (cgraph_optimize): ... here. Remove redundant
663 cgraph_analyze_functions.
664 * varasm.c (find_decl_and_mark_needed): Remove no longer
666 (finish_aliases_1): Adjust check for thunk aliases.
668 2009-09-04 Daniel Gutson <dgutson@codesourcery.com>
670 * config/arm/arm.md (ctzsi2): Added braces
671 to avoid warning that broke booststrap.
673 2009-09-04 Martin Jambor <mjambor@suse.cz>
675 PR tree-optimization/41112
676 * tree-sra.c (build_ref_for_offset_1): Signal that we cannot
677 handle variable-bounded arrays.
678 (expr_with_var_bounded_array_refs_p): New function.
679 (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p.
681 2009-09-04 Wolfgang Gellerich <gellerich@de.ibm.com>
683 * config/s390/2097.md: Removed two incorrect bypasses.
684 (z10_fsimpdf): Fixed latency.
685 (z10_fhex): New insn_reservation.
686 (z10_floaddf): Fixed latency.
687 (z10_floadsf): Fixed latency.
688 (z10_ftrunctf): Fixed latency.
689 (z10_ftruncdf): Fixed latency.
690 * config/s390/s390.c (z10_cost): Fixed values.
691 (s390_adjust_priority): Added z10 path.
692 * config/s390/s390.md (type): Added fhex.
693 (*mov<mode>_64dfp): Updated type attribute.
694 (*mov<mode>_64): Updated type attribute.
695 (*mov<mode>_31): Updated type attribute.
696 (*mov<mode>"): Likewise.
697 * config/s390/2084.md (x_fsimpdf): Updated condition.
699 2009-09-04 Andreas Krebbel <krebbel1@de.ibm.com>
701 * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem
702 RTXs in the predicate for operand 1.
704 2009-09-03 Daniel Gutson <dgutson@codesourcery.com>
706 * config/arm/arm.md (UNSPEC_RBIT): New constant.
708 (ctzsi2): New expand.
709 * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
711 2009-09-03 Martin Jambor <mjambor@suse.cz>
713 * tree-sra.c (duplicate_expr_for_different_base): Removed.
714 (create_artificial_child_access): Use build_ref_for_offset instead
715 of duplicate_expr_for_different_base.
716 (propagate_subacesses_accross_link): Likewise.
718 2009-09-03 Richard Sandiford <rdsandiford@googlemail.com>
720 * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead
722 (mips16e_collect_argument_saves): Skip debug instructions.
723 (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P.
724 (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P.
725 (r10k_insert_cache_barriers): Likewise.
726 (mips_reorg_process_insns): Likewise.
728 2009-09-03 Vladimir Makarov <vmakarov@redhat.com>
731 * ira.c (update_equiv_reg): Remove check on class likely spill.
733 2009-09-03 Jakub Jelinek <jakub@redhat.com>
736 * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
737 SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of
741 * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
742 the stack slot if it is passed by invisible reference.
743 * var-tracking.c (vt_add_function_parameters): Handle arguments passed
744 by invisible reference.
746 2009-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
748 * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
749 * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
750 * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of
752 * config/bfin/sync.md: New file.
753 * config/bfin/bfin.md: Include it.
754 (UNSPEC_ATOMIC): New.
755 (UNSPEC_ONES): Provide a unique number.
757 From Jie Zhang <jie.zhang@analog.com>:
758 * config/bfin/bfin.c (ret_regs): New.
759 (must_save_fp_p): Don't return true because of frame_pointer_needed.
760 (must_save_rets_p): New.
761 (n_regs_saved_by_prologue): Use must_save_rets_p instead of
762 current_function_is_leaf.
764 (do_unlink): Likewise.
765 (expand_interrupt_handler_prologue): Use ret_regs array.
766 (expand_interrupt_handler_epilogue): Use ret_regs array and
767 pass return register to gen_return_internal.
768 (bfin_expand_epilogue): Pass return register to
770 (bfin_expand_call): Explicitly clobber RETS.
771 * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define.
772 * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic,
773 call_insn_fdpic, call_value_insn_fdpic, call_symbol,
774 call_value_symbol, call_insn, call_value_insn): Explicitly clobber
776 (return_internal): Take a reg rtx rather than the register number.
778 2009-09-03 H.J. Lu <hongjiu.lu@intel.com>
780 * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT
781 when comparing against estimated_loop_iterations_int return.
783 2009-09-03 Richard Guenther <rguenther@suse.de>
785 * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of
786 eh_personality_libfunc.
788 2009-09-03 Razya Ladelsky <razya@il.ibm.com>
790 * tree-parloops.c (separate_decls_in_region): Add space.
792 2009-09-03 Razya Ladelsky <razya@il.ibm.com>
794 * tree-parloops.c (separate_decls_in_region): Change the condition
795 checking if there are reductions in the loop.
797 2009-09-03 Razya Ladelsky <razya@il.ibm.com>
799 PR tree-optimization/38275
800 * tree-parloops.c (parallelize_loops): Replace profitability condition
801 for expected number of iterations.
803 2009-09-03 Alexandre Oliva <aoliva@redhat.com>
805 * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
806 (bootstrap-debug): Explain conditions in which it becomes default.
807 (bootstrap-debug-big): Rather than duplicate bootstrap-debug,
810 2009-09-03 Namhyung Kim <namhyung@gmail.com>
812 * doc/invoke.texi (Optimize Options): Move
813 -finline-small-functions to the -O2 list.
815 2009-09-03 Alexandre Oliva <aoliva@redhat.com>
817 * toplev.c (process_options): Enable var-tracking-assignments
818 by default if var-tracking is enabled.
820 2009-09-02 David Daney <ddaney@caviumnetworks.com>
822 * cfgbuild.c (find_bb_boundaries): Split blocks containing a
824 * emit-rtl.c (prev_nonnote_insn_bb): New function.
825 * rtl.h (prev_nonnote_insn_bb): Declare it.
827 2009-09-03 Diego Novillo <dnovillo@google.com>
829 * cgraph.c (cgraph_node_for_decl): New.
830 * cgraph.h (cgraph_node_for_decl): Declare.
831 * tree.c (host_integerp): Return 0 if T is NULL.
833 2009-09-03 Diego Novillo <dnovillo@google.com>
835 * tree.h (struct alias_pair): Move from varasm.c.
836 (alias_pairs): Likewise.
837 (TYPE_MAXVAL): Define.
838 (TYPE_MINVAL): Define.
839 (iterative_hash_host_wide_int): Declare.
840 (remove_unreachable_alias_pairs): Declare.
841 * tree-pass.h (pass_ipa_free_lang_data): Declare.
842 * diagnostic.c (default_diagnostic_starter): Make extern.
843 (default_diagnostic_finalizer): Make extern.
844 * diagnostic.h (default_diagnostic_starter): Declare.
845 (default_diagnostic_finalizer): Declare.
846 (default_tree_printer): Declare.
847 * toplev.c (default_tree_printer): Make extern.
849 2009-09-03 Richard Guenther <rguenther@suse.de>
850 Diego Novillo <dnovillo@google.com>
852 * cgraph.c (cgraph_add_new_function): Remove gimplification.
853 * cgraphunit.c (cgraph_expand_function): Do not emit
854 associated thunks from here.
855 (cgraph_emit_thunks): New.
856 (cgraph_optimize): Call it.
857 Return if any IPA pass finds an error.
858 * varasm.c (finish_aliases_1): Ignore errorneous aliases used
861 2009-09-03 Simon Baldwin <simonb@google.com>
862 Rafael Espindola <espindola@google.com>
863 Richard Guenther <rguenther@suse.de>
864 Doug Kwan <dougkwan@google.com>
865 Diego Novillo <dnovillo@google.com>
867 * tree.c: Include tree-pass.h, langhooks-def.h,
868 diagnostic.h, cgraph.h, timevar.h, except.h and debug.h.
869 (free_lang_data_in_type): New.
870 (need_assembler_name_p): New.
871 (free_lang_data_in_block): New.
872 (free_lang_data_in_decl): New.
873 (struct free_lang_data_d): New.
874 (add_tree_to_fld_list): New.
875 (find_decls_types_r): New.
876 (get_eh_types_for_runtime): New.
877 (find_decls_types_in_eh_region): New.
878 (find_decls_types_in_node): New.
879 (find_decls_types_in_var): New.
880 (free_lang_data_in_cgraph): New.
881 (free_lang_data): New.
882 (gate_free_lang_data): New.
883 (pass_ipa_free_lang_data): New.
885 2009-09-03 Diego Novillo <dnovillo@google.com>
887 * timevar.def (TV_IPA_FREE_LANG_DATA): Define.
888 * langhooks.h (struct lang_hooks): Add field free_lang_data.
889 (lang_hooks): Remove const qualifier.
890 * ipa.c (cgraph_remove_unreachable_nodes): Call
891 remove_unreachable_alias_pairs.
892 * except.c (add_type_for_runtime): Check if TYPE has
893 already been converted.
894 (lookup_type_for_runtime): Likewise.
895 (check_handled): Handle converted types.
896 * varasm.c (remove_unreachable_alias_pairs): New.
897 * gimple.c: Include demangle.h.
898 (gimple_decl_printable_name): New.
899 (gimple_fold_obj_type_ref): New.
900 * gimple.h (gimple_decl_printable_name): Declare.
901 (gimple_fold_obj_type_ref): Declare.
902 * passes.c (init_optimization_passes): Add pass
903 pass_ipa_free_lang_data.
904 * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define.
905 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA.
907 2009-09-03 Diego Novillo <dnovillo@google.com>
909 * c-lang.c (lang_hooks): Remove const qualifier.
911 2009-09-02 Loren James Rittle <ljrittle@acm.org>
913 * doc/install.texi (*-*-freebsd*): Update target information.
915 2009-09-02 Anatoly Sokolov <aesok@post.ru>
917 * hard-reg-set.h (call_fixed_regs): Remove.
918 * reginfo.c (call_fixed_regs): Remove.
919 (init_reg_sets_1): Remove initialization of call_fixed_regs.
920 (globalize_reg): Don't use call_fixed_regs.
921 * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
924 2009-09-01 Michael Matz <matz@suse.de>
926 * expr.h (emit_storent_insn, expand_expr_real_1,
927 expand_expr_real_2): Declare.
928 * expr.c (emit_storent_insn, expand_expr_real_1,
929 expand_expr_real_2): Export.
930 (store_expr): Setting and evaluating dont_return_target is useless.
931 (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
932 LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
933 * except.c (expand_resx_expr): Rename to ...
934 (expand_resx_stmt): ... this. Rewrite to take gimple statement.
935 * except.h (expand_resx_stmt): Declare.
936 * stmt.c: Add include gimple.h
937 (expand_asm_expr): Rename to ...
938 (expand_asm_stmt): ... this. Rewrite to take gimple statement.
939 (expand_case): Rewrite to take gimple statement.
940 * tree.h (expand_asm_stmt): Declare.
941 (expand_case): Change prototype.
942 * Makefile.in (stmt.o): Depend on gimple.h.
943 * builtins.c (expand_builtin_synchronize): Build gimple asm
944 statement, not an ASM_EXPR.
945 * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
946 gimple_to_tree, release_stmt_tree): Remove.
947 (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
948 ggc_free, but hold comparison code and operands separately.
949 Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
950 (expand_call_stmt, expand_gimple_stmt_1,
951 expand_gimple_stmt): New helpers.
952 (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
953 release_stmt_tree. Call expand_gimple_stmt instead.
954 (expand_gimple_basic_block): Ditto.
956 * calls.c (emit_call_1): Don't look at EH regions here, make
957 fntree parameter useless.
958 (expand_call): New local rettype for TREE_TYPE(exp), use it
959 throughout. Remove local p, use addr instead.
960 Don't look at EH regions here.
962 2009-09-02 Vladimir Makarov <vmakarov@redhat.com>
964 * doc/invoke.texi (-fsched-pressure): Document it.
965 (-fsched-reg-pressure-heuristic): Remove it.
967 * reload.c (ira.h): Include.
968 (find_reloads): Add choosing reload on number of small spilled
971 * haifa-sched.c (ira.h): Include.
972 (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
973 saved_reg_pressure, curr_reg_live, saved_reg_live,
974 region_ref_regs): New variables.
975 (sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
976 initiate_reg_pressure_info, setup_ref_regs,
977 initiate_bb_reg_pressure_info, save_reg_pressure,
978 restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
980 (setup_insn_reg_pressure_info): New function.
981 (rank_for_schedule): Add pressure checking and insn issue time.
982 Remove comparison of insn reg weights.
983 (ready_sort): Set insn reg pressure info.
984 (update_register_pressure, setup_insn_max_reg_pressure,
985 update_reg_and_insn_max_reg_pressure,
986 sched_setup_bb_reg_pressure_info): New functions.
987 (schedule_insn): Add code for printing and updating reg pressure info.
988 (find_set_reg_weight, find_insn_reg_weight): Remove.
989 (ok_for_early_queue_removal): Do nothing if pressure_only_p.
990 (debug_ready_list): Print reg pressure info.
991 (schedule_block): Ditto. Check insn issue time.
992 (sched_init): Set up sched_pressure_p. Allocate and set up some
993 reg pressure related info.
994 (sched_finish): Free some reg pressure related info.
995 (fix_tick_ready): Make insn always ready if pressure_p.
996 (init_h_i_d): Don't call find_insn_reg_weight.
997 (haifa_finish_h_i_d): Free insn reg pressure info.
999 * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
1000 ira_memory_move_cost, ira_class_hard_regs,
1001 ira_class_hard_regs_num, ira_no_alloc_regs,
1002 ira_available_class_regs, ira_reg_class_cover_size,
1003 ira_reg_class_cover, ira_class_translate): Move to ira.h.
1005 * ira-lives.c (single_reg_class): Check mode to find how many
1006 registers are necessary for operand.
1007 (ira_implicitly_set_insn_hard_regs): New.
1009 * common.opt (fsched-pressure): New options.
1010 (fsched-reg-pressure-heuristic): Remove.
1012 * ira.c (setup_eliminable_regset): Rename to
1013 ira_setup_eliminable_regset. Make it external.
1014 (expand_reg_info): Pass cover class to setup_reg_classes.
1015 (ira): Call resize_reg_info instead of allocate_reg_info.
1017 * sched-deps.c: Include ira.h.
1018 (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
1019 (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
1020 reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
1021 mark_insn_hard_regno_birth, mark_insn_reg_birth,
1022 mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
1023 mark_insn_reg_store, mark_insn_reg_clobber,
1024 setup_insn_reg_pressure_info): New.
1025 (sched_analyze_1): Update implicit_reg_pending_uses.
1026 (sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
1027 Use them to create dependencies. Set insn reg uses and pressure
1028 info. Process reg_pending_uses in one place.
1029 (free_deps): Free implicit sets.
1030 (remove_from_deps): Remove implicit sets if necessary. Check
1031 implicit sets when clearing reg_last_in_use.
1032 (init_deps_global): Clear implicit_reg_pending_clobbers and
1033 implicit_reg_pending_uses.
1035 * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
1036 ira_memory_move_cost, ira_class_hard_regs,
1037 ira_class_hard_regs_num, ira_no_alloc_regs,
1038 ira_available_class_regs, ira_reg_class_cover_size,
1039 ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
1040 (ira_setup_eliminable_regset, ira_set_pseudo_classes,
1041 ira_implicitly_set_insn_hard_regs): New prototypes.
1043 * ira-costs.c (pseudo_classes_defined_p, allocno_p,
1044 cost_elements_num): New variables.
1045 (allocno_costs, total_costs): Rename to costs and
1046 total_allocno_costs.
1047 (COSTS_OF_ALLOCNO): Rename to COSTS.
1048 (allocno_pref): Rename to pref.
1049 (allocno_pref_buffer): Rename to pref_buffer.
1050 (common_classes): Rename to regno_cover_class.
1052 (record_reg_classes): Set allocno attributes only if allocno_p.
1053 (record_address_regs): Ditto. Use COST_INDEX instead of ALLOCNO_NUM.
1054 (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
1055 and COSTS_OF_ALLOCNO.
1056 (print_costs): Rename to print_allocno_costs.
1057 (print_pseudo_costs): New.
1058 (process_bb_node_for_costs): Split into 2 functions with new
1059 function process_bb_for_costs. Pass BB to process_bb_for_costs.
1060 (find_allocno_class_costs): Rename to find_costs_and_classes. Add
1061 new parameter dump_file. Use cost_elements_num instead of
1062 ira_allocnos_num. Make one iteration if preferred classes were
1063 already calculated for scheduler. Make 2 versions of code
1064 depending on allocno_p.
1065 (setup_allocno_cover_class_and_costs): Check allocno_p. Use
1066 regno_cover_class and COSTS instead of common_classes and
1068 (init_costs, finish_costs): New.
1069 (ira_costs): Set up allocno_p and cost_elements_num. Call
1070 init_costs and finish_costs.
1071 (ira_set_pseudo_classes): New.
1073 * rtl.h (allocate_reg_info): Remove.
1074 (resize_reg_info): Change return type.
1075 (reg_cover_class): New.
1076 (setup_reg_classes): Add new parameter.
1078 * sched-int.h (struct deps_reg): New member implicit_sets.
1079 (sched_pressure_p, sched_regno_cover_class): New external definitions.
1080 (INCREASE_BITS): New macro.
1081 (struct reg_pressure_data, struct reg_use_data): New.
1082 (struct _haifa_insn_data): Remove reg_weight. Add members
1083 reg_pressure, reg_use_list, reg_set_list, and
1084 reg_pressure_excess_cost_change.
1085 (struct deps): New member implicit_sets.
1086 (pressure_p): New variable.
1087 (COVER_CLASS_BITS, INCREASE_BITS): New macros.
1088 (struct reg_pressure_data, struct reg_use_data): New.
1089 (INSN_REG_WEIGHT): Remove.
1090 (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
1091 INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros.
1092 (sched_init_region_reg_pressure_info,
1093 sched_setup_bb_reg_pressure_info): New prototypes.
1095 * reginfo.c (struct reg_pref): New member coverclass.
1096 (reg_cover_class): New function.
1097 (reginfo_init, pass_reginfo_init): Move after free_reg_info.
1098 (reg_info_size): New variable.
1099 (allocate_reg_info): Make static. Setup reg_info_size.
1100 (resize_reg_info): Use reg_info_size. Return flag of resizing.
1101 (setup_reg_classes): Add a new parameter. Setup cover class too.
1103 * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to
1106 * sched-rgn.c (deps_join): Set up implicit_sets.
1107 (schedule_region): Set up region and basic blocks pressure
1110 * passes.c (init_optimization_passes): Move
1111 pass_subregs_of_mode_init before pass_sched.
1113 2009-09-02 Martin Jambor <mjambor@suse.cz>
1115 * tree-sra.c (struct access): New field grp_hint.
1116 (dump_access): Dump grp_hint.
1117 (sort_and_splice_var_accesses): Set grp_hint if a group is read
1119 (analyze_access_subtree): Only scalarize accesses with grp_hint set or
1120 those which have been specifically read and somehow written to.
1121 (propagate_subacesses_accross_link): Set grp_hint of right child and
1122 also possibly of the left child.
1124 2009-09-02 Jakub Jelinek <jakub@redhat.com>
1126 * tree-object-size.c (addr_object_size): Always use object_size_type
1127 0 or 2 when determining the pointer pointed object size.
1129 2009-09-02 Richard Guenther <rguenther@suse.de>
1132 2009-08-31 Richard Guenther <rguenther@suse.de>
1134 * builtins.c (fold_builtin_memory_op): Use the alias oracle
1135 to query if the memory regions for memmove overlap.
1136 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
1137 asserts on pointers, instead deal with odd trees.
1138 (ptr_derefs_may_alias_p): Likewise.
1139 (refs_may_alias_p_1): Constructor bases also never alias.
1141 2009-08-01 Christian Bruel <christian.bruel@st.com>
1144 2009-07-31 Christian Bruel <christian.bruel@st.com>
1145 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
1147 2009-09-01 Alexandre Oliva <aoliva@redhat.com>
1149 * doc/invoke.texi (-fvar-tracking-assignments): New.
1150 (-fvar-tracking-assignments-toggle): New.
1151 (-fdump-final-insns=file): Mark filename as optional.
1152 (--param min-nondebug-insn-uid): New.
1153 (-gdwarf-@{version}): Mention version 4.
1154 * opts.c (common_handle_option): Accept it.
1155 * tree-vrp.c (find_assert_locations_1): Skip debug stmts.
1156 * regrename.c (regrename_optimize): Drop last. Don't count debug
1157 insns as uses. Don't reject change because of debug insn.
1158 (do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
1159 from the chain starter, and check for inexact matches in DEBUG_INSNS.
1160 (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
1161 (build_def_use): Simplify and fix the marking of DEBUG_INSNs.
1162 * sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
1163 * fwprop.c (forward_propagate_and_simplify): ...into debug insns.
1164 * doc/gimple.texi (is_gimple_debug): New.
1165 (gimple_debug_bind_p): New.
1166 (is_gimple_call, gimple_assign_cast_p): End sentence with period.
1167 * doc/install.texi (bootstrap-debug): More details.
1168 (bootstrap-debug-big, bootstrap-debug-lean): Document.
1169 (bootstrap-debug-lib): More details.
1170 (bootstrap-debug-ckovw): Update.
1171 (bootstrap-time): New.
1172 * tree-into-ssa.c (mark_def_sites): Skip debug stmts.
1173 (insert_phi_nodes_for): Insert debug stmts.
1174 (rewrite_stmt): Take iterator. Insert debug stmts.
1175 (rewrite_enter_block): Adjust.
1176 (maybe_replace_use_in_debug_stmt): New.
1177 (rewrite_update_stmt): Use it.
1178 (mark_use_interesting): Return early for debug stmts.
1179 * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
1180 stmts before replacing stmt.
1181 (move_computations_stmt): Likewise.
1182 * ira-conflicts.c (add_copies): Skip debug insns.
1183 * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
1184 (regstat_bb_compute_ri): Skip debug insns.
1185 * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
1186 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
1187 check_loop_closed_ssa_stmt): Skip debug stmts.
1188 * tree-tailcall.c (find_tail_calls): Likewise.
1189 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
1190 * tree.h (MAY_HAVE_DEBUG_STMTS): New.
1191 (build_var_debug_value_stat): Declare.
1192 (build_var_debug_value): Define.
1193 (target_for_debug_bind): Declare.
1194 * reload.c (find_equiv_reg): Skip debug insns.
1195 * rtlanal.c (reg_used_between_p): Skip debug insns.
1196 (side_effects_p): Likewise.
1197 (canonicalize_condition): Likewise.
1198 * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
1199 insns never depend on debug insns.
1200 (create_ddg_dep_no_link): Likewise.
1201 (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
1202 Don't add inter-loop dependencies for debug insns.
1203 (build_intra_loop_deps): Likewise.
1204 (create_ddg): Count debug insns.
1205 * ddg.h (struct ddg::num_debug): New.
1206 (num_backargs): Pair up with previous int field.
1207 * diagnostic.c (diagnostic_report_diagnostic): Skip notes on
1208 -fcompare-debug-second.
1209 * final.c (get_attr_length_1): Skip debug insns.
1210 (rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
1211 * gcc.c (invoke_as): Call compare-debug-dump-opt.
1212 (driver_self_specs): Map -fdump-final-insns to
1213 -fdump-final-insns=..
1214 (get_local_tick): New.
1215 (compare_debug_dump_opt_spec_function): Test for . argument and
1216 compute output name. Compute temp output spec without flag name.
1217 Compute -frandom-seed.
1218 (OPT): Undef after use.
1219 * cfgloopanal.c (num_loop_insns): Skip debug insns.
1220 (average_num_loop_insns): Likewise.
1221 * params.h (MIN_NONDEBUG_INSN_UID): New.
1222 * gimple.def (GIMPLE_DEBUG): New.
1223 * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
1224 * auto-inc-dec.c (merge_in_block): Skip debug insns.
1225 (merge_in_block): Fix whitespace.
1226 * toplev.c (flag_var_tracking): Update comment.
1227 (flag_var_tracking_assignments): New.
1228 (flag_var_tracking_assignments_toggle): New.
1229 (process_options): Don't open final insns dump file if we're not
1230 going to write to it. Compute defaults for var_tracking.
1231 * df-scan.c (df_insn_rescan_debug_internal): New.
1232 (df_uses_record): Handle debug insns.
1233 * haifa-sched.c (ready): Initialize n_debug.
1234 (contributes_to_priority): Skip debug insns.
1235 (dep_list_size): New.
1237 (rank_for_schedule): Likewise. Schedule debug insns as soon as
1238 they're ready. Disregard previous debug insns to make decisions.
1239 (queue_insn): Never queue debug insns.
1240 (ready_add, ready_remove_first, ready_remove): Count debug insns.
1241 (schedule_insn): Don't reject debug insns because of issue rate.
1242 (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
1243 (queue_to_ready): Skip and discount debug insns.
1244 (choose_ready): Let debug insns through.
1245 (schedule_block): Check boundary debug insns. Discount debug
1246 insns, schedule them early. Adjust whitespace.
1247 (set_priorities): Check for boundary debug insns.
1248 (add_jump_dependencies): Use dep_list_size.
1249 (prev_non_location_insn): New.
1250 (check_cfg): Use it.
1251 * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
1253 (remove_unused_ivs): Reset debug stmts.
1254 * modulo-sched.c (const_iteration_count): Skip debug insns.
1255 (res_MII): Discount debug insns.
1256 (loop_single_full_bb_p): Skip debug insns.
1257 (sms_schedule): Likewise.
1258 (sms_schedule_by_order): Likewise.
1259 (ps_has_conflicts): Likewise.
1260 * caller-save.c (refmarker_fn): New.
1261 (save_call_clobbered_regs): Replace regs with saved mem in
1263 (mark_referenced_regs): Take pointer, mark and arg. Adjust.
1264 Call refmarker_fn mark for hardregnos.
1265 (mark_reg_as_referenced): New.
1266 (replace_reg_with_saved_mem): New.
1267 * ipa-pure-const.c (check_stmt): Skip debug stmts.
1268 * cse.c (cse_insn): Canonicalize debug insns. Skip them when
1270 (cse_extended_basic_block): Skip debug insns.
1271 (count_reg_usage): Likewise.
1272 (is_dead_reg): New, split out of...
1273 (set_live_p): ... here.
1274 (insn_live_p): Use it for debug insns.
1275 * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
1276 (execute_optimize_stdarg): Likewise.
1277 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1278 * tree-ssa-propagate.c (substitute_and_fold): Don't regard
1279 changes in debug stmts as changes.
1280 * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
1281 (moveup_expr): Don't move across debug insns. Don't move
1282 debug insn if it would create a bookkeeping block.
1283 (moveup_expr_cached): Don't use cache for debug insns that
1284 are heads of blocks.
1285 (compute_av_set_inside_bb): Skip debug insns.
1286 (sel_rank_for_schedule): Schedule debug insns first. Remove
1288 (block_valid_for_bookkeeping_p); Support lax searches.
1289 (create_block_for_bookkeeping): Adjust block numbers when
1290 encountering debug-only blocks.
1291 (find_place_for_bookkeeping): Deal with debug-only blocks.
1292 (generate_bookkeeping_insn): Accept no place to insert.
1293 (remove_temp_moveop_nops): New argument full_tidying.
1294 (prepare_place_to_insert): Deal with debug insns.
1295 (advance_state_on_fence): Debug insns don't start cycles.
1296 (update_boundaries): Take fence as argument. Deal with
1298 (schedule_expr_on_boundary): No full_tidying on debug insns.
1299 (fill_insns): Deal with debug insns.
1300 (track_scheduled_insns_and_blocks): Don't count debug insns.
1301 (need_nop_to_preserve_insn_bb): New, split out of...
1302 (remove_insn_from_stream): ... this.
1303 (fur_orig_expr_not_found): Skip debug insns.
1304 * rtl.def (VALUE): Move up.
1306 * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts.
1307 (nearest_common_dominator_of_uses): Take debug_stmts argument.
1308 Set it if debug stmts are found.
1309 (statement_sink_location): Skip debug stmts. Propagate
1310 moving defs into debug stmts.
1311 * ifcvt.c (first_active_insn): Skip debug insns.
1312 (last_active_insns): Likewise.
1313 (cond_exec_process_insns): Likewise.
1314 (noce_process_if_block): Likewise.
1315 (check_cond_move_block): Likewise.
1316 (cond_move_convert_if_block): Likewise.
1317 (block_jumps_and_fallthru_p): Likewise.
1318 (dead_or_predicable): Likewise.
1319 * dwarf2out.c (debug_str_hash_forced): New.
1320 (find_AT_string): Add comment.
1321 (gen_label_for_indirect_string): New.
1322 (get_debug_string_label): New.
1323 (AT_string_form): Use it.
1324 (mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
1325 MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
1326 discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
1327 several operations that cannot be represented with DWARF opcodes.
1328 (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
1329 dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
1330 (dwarf2out_var_location): Take during-call mark into account.
1331 (output_indirect_string): Update comment. Output if there are
1332 label and references.
1333 (prune_indirect_string): New.
1334 (prune_unused_types): Call it if debug_str_hash_forced.
1335 More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
1336 (dw_long_long_const): Remove.
1337 (struct dw_val_struct): Change val_long_long type to rtx.
1338 (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
1339 val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
1340 (output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
1341 component instead of HOST_BITS_PER_LONG.
1342 (output_loc_operands): Likewise. For const8* assert
1343 HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
1344 (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
1345 rather than HOST_BITS_PER_LONG is >= 64.
1346 (add_AT_long_long): Remove val_hi and val_lo arguments, add
1348 (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
1349 HOST_BITS_PER_LONG for dw_val_class_long_long.
1350 (add_const_value_attribute): Adjust add_AT_long_long caller. Don't
1351 handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
1352 (dwarf_stack_op_name): Handle DW_OP_implicit_value and
1354 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
1355 Handle DW_OP_implicit_value.
1356 (extract_int): Move prototype earlier.
1357 (mem_loc_descriptor): For SUBREG punt if inner
1358 mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
1359 and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
1360 EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
1361 UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
1362 (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
1363 instead of Pmode size.
1364 (loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
1365 CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
1366 attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
1367 (concat_loc_descriptor, concatn_loc_descriptor,
1368 loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
1369 (add_location_or_const_value_attribute): Likewise. For single
1370 location loc_lists attempt to use add_const_value_attribute
1371 for constant decls. Add DW_AT_const_value even if
1372 NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
1374 * cfgbuild.c (inside_basic_block_p): Handle debug insns.
1375 (control_flow_insn_p): Likewise.
1376 * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt.
1377 (separate_decls_in_region_debug_bind): New.
1378 (separate_decls_in_region): Process debug bind stmts afterwards.
1379 * recog.c (verify_changes): Handle debug insns.
1380 (extract_insn): Likewise.
1381 (peephole2_optimize): Skip debug insns.
1382 * dse.c (scan_insn): Skip debug insns.
1383 * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
1385 (setup_id_for_insn): Handle debug insns.
1386 (maybe_tidy_empty_bb): Adjust whitespace.
1387 (tidy_control_flow): Skip debug insns.
1388 (sel_remove_insn): Adjust for debug insns.
1389 (sel_estimate_number_of_insns): Skip debug insns.
1390 (create_insn_rtx_from_pattern): Handle debug insns.
1391 (create_copy_of_insn_rtx): Likewise.
1392 * sel-sched-.h (sel_bb_end): Declare.
1393 (sel_bb_empty_or_nop_p): New.
1394 (get_all_loop_exits): Use it.
1395 (_eligible_successor_edge_p): Likewise.
1396 (return_nop_to_pool): Adjust.
1397 * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
1398 * ira-lives.c (process_bb_node_lives): Skip debug insns.
1399 * gimple-pretty-print.c (dump_gimple_debug): New.
1400 (dump_gimple_stmt): Use it.
1401 (dump_bb_header): Skip gimple debug stmts.
1402 * regmove.c (optimize_reg_copy_1): Discount debug insns.
1403 (fixup_match_2): Likewise.
1404 (regmove_backward_pass): Likewise. Simplify combined
1405 replacement. Handle debug insns.
1406 * function.c (instantiate_virtual_regs): Handle debug insns.
1407 * function.h (struct emit_status): Add x_cur_debug_insn_uid.
1408 * print-rtl.h: Include cselib.h.
1409 (print_rtx): Print VALUEs. Split out and recurse for VAR_LOCATIONs.
1410 * df.h (df_inns_rescan_debug_internal): Declare.
1411 * gcse.c (alloc_hash_table): Estimate n_insns.
1412 (cprop_insn): Don't regard debug insns as changes.
1413 (bypass_conditional_jumps): Skip debug insns.
1414 (one_pre_gcse_pass): Adjust.
1415 (one_code_hoisting_pass): Likewise.
1416 (compute_ld_motion_mems): Skip debug insns.
1417 (one_cprop_pass): Adjust.
1418 * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
1419 (if_convertible_stmt_p): Handle debug stmts.
1420 * init-regs.c (initialize_uninitialized_regs): Skip debug insns.
1421 * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
1422 * ira-build.c (create_bb_allocnos): Skip debug insns.
1423 * tree-flow-inline.h (has_zero_uses): Discount debug stmts.
1424 (has_single_use): Likewise.
1425 (single_imm_use): Likewise.
1426 (num_imm_uses): Likewise.
1427 * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
1428 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
1429 (create_outofssa_var_map): Likewise.
1430 * lower-subreg.c (adjust_decomposed_uses): New.
1431 (resolve_debug): New.
1432 (decompose_multiword_subregs): Use it.
1433 * tree-dfa.c (find_referenced_vars): Skip debug stmts.
1434 * emit-rtl.c: Include params.h.
1435 (cur_debug_insn_uid): Define.
1436 (set_new_first_and_last_insn): Set cur_debug_insn_uid too.
1437 (copy_rtx_if_shared_1): Handle debug insns.
1438 (reset_used_flags): Likewise.
1439 (set_used_flags): LIkewise.
1440 (get_max_insn_count): New.
1441 (next_nondebug_insn): New.
1442 (prev_nondebug_insn): New.
1443 (make_debug_insn_raw): New.
1444 (emit_insn_before_noloc): Handle debug insns.
1445 (emit_jump_insn_before_noloc): Likewise.
1446 (emit_call_insn_before_noloc): Likewise.
1447 (emit_debug_insn_before_noloc): New.
1448 (emit_insn_after_noloc): Handle debug insns.
1449 (emit_jump_insn_after_noloc): Likewise.
1450 (emit_call_insn_after_noloc): Likewise.
1451 (emit_debug_insn_after_noloc): Likewise.
1452 (emit_insn_after): Take loc from earlier non-debug insn.
1453 (emit_jump_insn_after): Likewise.
1454 (emit_call_insn_after): Likewise.
1455 (emit_debug_insn_after_setloc): New.
1456 (emit_debug_insn_after): New.
1457 (emit_insn_before): Take loc from later non-debug insn.
1458 (emit_jump_insn_before): Likewise.
1459 (emit_call_insn_before): Likewise.
1460 (emit_debug_insn_before_setloc): New.
1461 (emit_debug_insn_before): New.
1462 (emit_insn): Handle debug insns.
1463 (emit_debug_insn): New.
1464 (emit_jump_insn): Handle debug insns.
1465 (emit_call_insn): Likewise.
1467 (init_emit): Take min-nondebug-insn-uid into account.
1468 Initialize cur_debug_insn_uid.
1469 (emit_copy_of_insn_after): Handle debug insns.
1470 * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
1471 location of single rhs in place.
1472 (maybe_dump_rtl_for_gimple_stmt): Dump lineno.
1473 (floor_sdiv_adjust): New.
1474 (cell_sdiv_adjust): New.
1475 (cell_udiv_adjust): New.
1476 (round_sdiv_adjust): New.
1477 (round_udiv_adjust): New.
1478 (wrap_constant): Moved from cselib.
1479 (unwrap_constant): New.
1480 (expand_debug_expr): New.
1481 (expand_debug_locations): New.
1482 (expand_gimple_basic_block): Drop hiding redeclaration. Expand
1484 (gimple_expand_cfg): Expand debug locations.
1485 * cselib.c: Include tree-pass.h.
1486 (struct expand_value_data): New.
1487 (cselib_record_sets_hook): New.
1488 (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
1489 (cselib_clear_table): Move, and implemnet in terms of...
1490 (cselib_reset_table_with_next_value): ... this.
1491 (cselib_get_next_unknown_value): New.
1492 (discard_useless_locs): Don't discard preserved values.
1493 (cselib_preserve_value): New.
1494 (cselib_preserved_value_p): New.
1495 (cselib_preserve_definitely): New.
1496 (cselib_clear_preserve): New.
1497 (cselib_preserve_only_values): New.
1498 (new_cselib_val): Take rtx argument. Dump it in details.
1499 (cselib_lookup_mem): Adjust.
1500 (expand_loc): Take regs_active in struct. Adjust. Silence
1501 dumps unless details are requested.
1502 (cselib_expand_value_rtx_cb): New.
1503 (cselib_expand_value_rtx): Rename and reimplment in terms of...
1504 (cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
1505 without details. Copy more subregs. Try to resolve values
1506 using a callback. Wrap constants.
1507 (cselib_subst_to_values): Adjust.
1508 (cselib_log_lookup): New.
1509 (cselib_lookup): Call it.
1510 (cselib_invalidate_regno): Don't count preserved values as useless.
1511 (cselib_invalidate_mem): Likewise.
1512 (cselib_record_set): Likewise.
1513 (struct set): Renamed to cselib_set, moved to cselib.h.
1514 (cselib_record_sets): Adjust. Call hook.
1515 (cselib_process_insn): Reset table when it would be cleared.
1516 (dump_cselib_val): New.
1517 (dump_cselib_table): New.
1518 * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
1519 (remove_forwarder_block): Support moving debug stmts.
1520 * cselib.h (cselib_record_sets_hook): Declare.
1521 (cselib_expand_callback): New type.
1522 (cselib_expand_value_rtx_cb): Declare.
1523 (cselib_reset_table_with_next_value): Declare.
1524 (cselib_get_next_unknown_value): Declare.
1525 (cselib_preserve_value): Declare.
1526 (cselib_preserved_value_p): Declare.
1527 (cselib_preserve_only_values): Declare.
1528 (dump_cselib_table): Declare.
1529 * cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
1530 (try_crossjump_to_edge): Likewise.
1531 (delete_unreachable_blocks): Remove dominant GIMPLE blocks after
1532 dominated blocks when debug stmts are present.
1533 * simplify-rtx.c (delegitimize_mem_from_attrs): New.
1534 * tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
1535 (set_var_live_on_entry): Likewise.
1536 * loop-invariant.c (find_invariants_bb): Skip debug insns.
1537 * cfglayout.c (curr_location, last_location): Make static.
1538 (set_curr_insn_source_location): Don't avoid bouncing.
1539 (get_curr_insn_source_location): New.
1540 (get_curr_insn_block): New.
1541 (duplicate_insn_chain): Handle debug insns.
1542 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
1544 * common.opt (fcompare-debug): Move to sort order.
1545 (fdump-unnumbered-links): Likewise.
1546 (fvar-tracking-assignments): New.
1547 (fvar-tracking-assignments-toggle): New.
1548 * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
1549 because of debug stmts.
1550 (mark_stmt_if_obviously_necessary): Mark debug stmts.
1551 (eliminate_unnecessary_stmts): Walk dominated blocks before
1553 * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
1554 * ira.c (memref_used_between_p): Skip debug insns.
1555 (update_equiv_regs): Likewise.
1556 * sched-deps.c (sd_lists_size): Accept empty list.
1557 (sd_init_insn): Mark debug insns.
1558 (sd_finish_insn): Unmark them.
1559 (sd_add_dep): Reject non-debug deps on debug insns.
1560 (fixup_sched_groups): Give debug insns group treatment.
1562 (sched_analyze_reg): Don't mark debug insns for sched before call.
1563 (sched_analyze_2): Handle debug insns.
1564 (sched_analyze_insn): Compute next non-debug insn. Handle debug
1566 (deps_analyze_insn): Handle debug insns.
1567 (deps_start_bb): Skip debug insns.
1568 (init_deps): Initialize last_debug_insn.
1569 * tree-ssa.c (target_for_debug_bind): New.
1570 (find_released_ssa_name): New.
1571 (propagate_var_def_into_debug_stmts): New.
1572 (propagate_defs_into_debug_stmts): New.
1573 (verify_ssa): Skip debug bind stmts without values.
1574 (warn_uninialized_vars): Skip debug stmts.
1575 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
1576 * rtl.c (rtx_equal_p_cb): Handle VALUEs.
1577 (rtx_equal_p): Likewise.
1578 * ira-costs.c (scan_one_insn): Skip debug insns.
1579 (process_bb_node_for_hard_reg_moves): Likewise.
1580 * rtl.h (DEBUG_INSN_P): New.
1581 (NONDEBUG_INSN_P): New.
1582 (MAY_HAVE_DEBUG_INSNS): New.
1583 (INSN_P): Accept debug insns.
1584 (RTX_FRAME_RELATED_P): Likewise.
1585 (INSN_DELETED_P): Likewise
1586 (PAT_VAR_LOCATION_DECL): New.
1587 (PAT_VAR_LOCATION_LOC): New.
1588 (PAT_VAR_OCATION_STATUS): New.
1589 (NOTE_VAR_LOCATION_DECL): Reimplement.
1590 (NOTE_VAR_LOCATION_LOC): Likewise.
1591 (NOTE_VAR_LOCATION_STATUS): Likewise.
1592 (INSN_VAR_LOCATION): New.
1593 (INSN_VAR_LOCATION_DECL): New.
1594 (INSN_VAR_LOCATION_LOC): New.
1595 (INSN_VAR_LOCATION_STATUS): New.
1596 (gen_rtx_UNKNOWN_VAR_LOC): New.
1597 (VAR_LOC_UNKNOWN_P): New.
1598 (NOTE_DURING_CALL_P): New.
1599 (SCHED_GROUP_P): Accept debug insns.
1600 (emit_debug_insn_before): Declare.
1601 (emit_debug_insn_before_noloc): Declare.
1602 (emit_debug_insn_beore_setloc): Declare.
1603 (emit_debug_insn_after): Declare.
1604 (emit_debug_insn_after_noloc): Declare.
1605 (emit_debug_insn_after_setloc): Declare.
1606 (emit_debug_insn): Declare.
1607 (make_debug_insn_raw): Declare.
1608 (prev_nondebug_insn): Declare.
1609 (next_nondebug_insn): Declare.
1610 (delegitimize_mem_from_attrs): Declare.
1611 (get_max_insn_count): Declare.
1612 (wrap_constant): Declare.
1613 (unwrap_constant): Declare.
1614 (get_curr_insn_source_location): Declare.
1615 (get_curr_insn_block): Declare.
1616 * tree-inline.c (insert_debug_decl_map): New.
1617 (processing_debug_stmt): New.
1618 (remap_decl): Don't create new mappings in debug stmts.
1619 (remap_gimple_op_r): Don't add references in debug stmts.
1620 (copy_tree_body_r): Likewise.
1621 (remap_gimple_stmt): Handle debug bind stmts.
1622 (copy_bb): Skip debug stmts.
1623 (copy_edges_for_bb): Likewise.
1624 (copy_debug_stmt): New.
1625 (copy_debug_stmts): New.
1626 (copy_body): Copy debug stmts at the end.
1627 (insert_init_debug_bind): New.
1628 (insert_init_stmt): Take id. Skip and emit debug stmts.
1629 (setup_one_parameter): Remap variable earlier, register debug mapping.
1630 (estimate_num_insns): Skip debug stmts.
1631 (expand_call_inline): Preserve debug_map.
1632 (optimize_inline_calls): Check for no debug_stmts left-overs.
1633 (unsave_expr_now): Preserve debug_map.
1634 (copy_gimple_seq_and_replace_locals): Likewise.
1635 (tree_function_versioning): Check for no debug_stmts left-overs.
1636 Init and destroy debug_map as needed. Split edges unconditionally.
1637 (build_duplicate_type): Init and destroy debug_map as needed.
1638 * tree-inline.h: Include gimple.h instead of pointer-set.h.
1639 (struct copy_body_data): Add debug_stmts and debug_map.
1640 * sched-int.h (struct ready_list): Add n_debug.
1641 (struct deps): Add last_debug_insn.
1642 (DEBUG_INSN_SCHED_P): New.
1643 (BOUNDARY_DEBUG_INSN_P): New.
1644 (SCHEDULE_DEBUG_INSN_P): New.
1645 (sd_iterator_cond): Accept empty list.
1646 * combine.c (create_log_links): Skip debug insns.
1647 (combine_instructions): Likewise.
1648 (cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
1649 return value is always unshared.
1650 (struct rtx_subst_pair): New.
1651 (auto_adjust_pair): New.
1652 (propagate_for_debug_subst): New.
1653 (propagate_for_debug): New.
1654 (try_combine): Skip debug insns. Propagate removed defs into
1656 (next_nonnote_nondebug_insn): New.
1657 (distribute_notes): Use it. Skip debug insns.
1658 (distribute_links): Skip debug insns.
1659 * tree-outof-ssa.c (set_location_for_edge): Likewise.
1660 * resource.c (mark_target_live_regs): Likewise.
1661 * var-tracking.c: Include cselib.h and target.h.
1662 (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
1664 (micro_operation_type_name): New.
1665 (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
1666 (struct micro_operation_def): Update comments.
1667 (decl_or_value): New type. Use instead of decls.
1668 (struct emit_note_data_def): Add vars.
1669 (struct attrs_def): Use decl_or_value.
1670 (struct variable_tracking_info_def): Add permp, flooded.
1671 (struct location_chain_def): Update comment.
1672 (struct variable_part_def): Use decl_or_value.
1673 (struct variable_def): Make var_part a variable length array.
1675 (scratch_regs): New.
1676 (cselib_hook_called): New.
1677 (dv_is_decl_p): New.
1678 (dv_is_value_p): New.
1681 (dv_as_opaque): New.
1682 (dv_onepart_p): New.
1684 (IS_DECL_CODE): New.
1685 (check_value_is_not_decl): New.
1686 (dv_from_decl): New.
1687 (dv_from_value): New.
1688 (dv_htab_hash): New.
1689 (variable_htab_hash): Use it.
1690 (variable_htab_eq): Support values.
1691 (variable_htab_free): Free from the right pool.
1692 (attrs_list_member, attrs_list_insert): Use decl_or_value.
1693 (attrs_list_union): Adjust.
1694 (attrs_list_mpdv_union): New.
1695 (tie_break_pointers): New.
1696 (canon_value_cmp): New.
1697 (unshare_variable): Return possibly-modified slot.
1698 (vars_copy_1): Adjust.
1699 (var_reg_decl_set): Adjust. Split out of...
1700 (var_reg_set): ... this.
1701 (get_init_value): Adjust.
1702 (var_reg_delete_and_set): Adjust.
1703 (var_reg_delete): Adjust.
1704 (var_regno_delete): Adjust.
1705 (var_mem_decl_set): Split out of...
1706 (var_mem_set): ... this.
1707 (var_mem_delete_and_set): Adjust.
1708 (var_mem_delete): Adjust.
1712 (variable_union): Adjust. Speed up merge of 1-part vars.
1713 (variable_canonicalize): Use unshared slot.
1714 (VALUED_RECURSED_INTO): New.
1715 (find_loc_in_1pdv): New.
1716 (struct dfset_merge): New.
1717 (insert_into_intersection): New.
1718 (intersect_loc_chains): New.
1720 (canonicalize_loc_order_check): New.
1721 (canonicalize_values_mark): New.
1722 (canonicalize_values_star): New.
1723 (variable_merge_over_cur): New.
1724 (variable_merge_over_src): New.
1725 (dataflow_set_merge): New.
1726 (dataflow_set_equiv_regs): New.
1727 (remove_duplicate_values): New.
1728 (struct dfset_post_merge): New.
1729 (variable_post_merge_new_vals): New.
1730 (variable_post_merge_perm_vals): New.
1731 (dataflow_post_merge_adjust): New.
1732 (find_mem_expr_in_1pdv): New.
1733 (dataflow_set_preserve_mem_locs): New.
1734 (dataflow_set_remove_mem_locs): New.
1735 (dataflow_set_clear_at_call): New.
1736 (onepart_variable_different_p): New.
1737 (variable_different_p): Use it.
1738 (dataflow_set_different_1): Adjust. Make detailed dump more verbose.
1739 (track_expr_p): Add need_rtl parameter. Don't generate rtl
1741 (track_loc_p): Pass it true.
1742 (struct count_use_info): New.
1743 (find_use_val): New.
1744 (replace_expr_with_values): New.
1746 (use_type): New, partially split out of...
1747 (count_uses): ... this. Count new micro-ops.
1748 (count_uses_1): Adjust.
1749 (count_stores): Adjust.
1750 (count_with_sets): New.
1751 (VAL_NEEDS_RESOLUTION): New.
1752 (VAL_HOLDS_TRACK_EXPR): New.
1753 (VAL_EXPR_IS_COPIED): New.
1754 (VAL_EXPR_IS_CLOBBERED): New.
1755 (add_uses): Adjust. Generate new micro-ops.
1756 (add_uses_1): Adjust.
1757 (add_stores): Generate new micro-ops.
1758 (add_with_sets): New.
1759 (find_src_status): Adjust.
1760 (find_src_set_src): Adjust.
1761 (compute_bb_dataflow): Use dataflow_set_clear_at_call.
1762 Handle new micro-ops. Canonicalize value equivalances.
1763 (vt_find_locations): Compute total size of hash tables for
1764 dumping. Perform merge for var-tracking-assignments. Don't
1765 disregard single-block loops.
1766 (dump_attrs_list): Handle decl_or_value.
1767 (dump_variable): Take variable. Deal with decl_or_value.
1768 (dump_variable_slot): New.
1769 (dump_vars): Use it.
1770 (dump_dataflow_sets): Adjust.
1771 (set_slot_part): New, extended to support one-part variables
1772 after splitting out of...
1773 (set_variable_part): ... this.
1774 (clobber_slot_part): New, split out of...
1775 (clobber_variable_part): ... this.
1776 (delete_slot_part): New, split out of...
1777 (delete_variable_part): .... this.
1778 (check_wrap_constant): New.
1779 (vt_expand_loc_callback): New.
1780 (vt_expand_loc): New.
1781 (emit_note_insn_var_location): Adjust. Handle values. Handle
1782 EMIT_NOTE_AFTER_CALL_INSN.
1783 (emit_notes_for_differences_1): Adjust. Handle values.
1784 (emit_notes_for_differences_2): Likewise.
1785 (emit_notes_for_differences): Adjust.
1786 (emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN notes.
1787 Adjust. Handle new micro-ops.
1788 (vt_add_function_parameters): Adjust. Create and bind values.
1789 (vt_initialize): Adjust. Initialize scratch_regs and
1790 valvar_pool, flooded and perm.. Initialize and use cselib. Log
1791 operations. Move some code to count_with_sets and add_with_sets.
1792 (delete_debug_insns): New.
1793 (vt_debug_insns_local): New.
1794 (vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
1796 (var_tracking_main): If var-tracking-assignments is enabled
1797 but var-tracking isn't, delete debug insns and leave. Likewise
1798 if we exceed limits or fail the stack adjustments tests, and
1799 after all var-tracking processing.
1800 More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
1801 (dataflow_set): Add traversed_vars.
1802 (value_chain, const_value_chain): New typedefs.
1803 (value_chain_pool, value_chains): New variables.
1804 (value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
1805 add_value_chains, add_cselib_value_chains, remove_value_chain,
1806 remove_value_chains, remove_cselib_value_chains): New functions.
1807 (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
1808 shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
1810 (shared_hash_find_slot_unshare, shared_hash_find_slot,
1811 shared_hash_find_slot_noinsert, shared_hash_find): Update.
1812 (dst_can_be_shared): New variable.
1813 (unshare_variable): Unshare set->vars if shared, use shared_hash_*.
1814 Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
1815 different from set->vars, look up slot again instead of using the
1817 (dataflow_set_init): Initialize traversed_vars.
1818 (variable_union): Use shared_hash_*. Use initially NO_INSERT
1819 lookup if set->vars is shared. Don't keep slot cleared before
1820 calling unshare_variable. Unshare set->vars if needed. Adjust
1821 unshare_variable callers. Clear dst_can_be_shared if needed.
1822 Even ->refcount == 1 vars must be unshared if set->vars is shared
1823 and var needs to be modified.
1824 (dataflow_set_union): Set traversed_vars during canonicalization.
1825 (VALUE_CHANGED, DECL_CHANGED): Define.
1826 (set_dv_changed, dv_changed_p): New static inlines.
1827 (track_expr_p): Clear DECL_CHANGED.
1828 (dump_dataflow_sets): Set it.
1829 (variable_was_changed): Call set_dv_changed.
1830 (emit_note_insn_var_location): Likewise.
1831 (changed_variables_stack): New variable.
1832 (check_changed_vars_1, check_changed_vars_2): New functions.
1833 (emit_notes_for_changes): Do nothing if changed_variables is
1834 empty. Traverse changed_variables with check_changed_vars_1,
1835 call check_changed_vars_2 on each changed_variables_stack entry.
1836 (emit_notes_in_bb): Add SET argument. Just clear it at the
1837 beginning, use it instead of local &set, don't destroy it at the end.
1838 (vt_emit_notes): Call dataflow_set_clear early on all
1839 VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
1840 computed set, dataflow_set_clear also VTI(bb)->in when we are
1841 done with the basic block. Initialize changed_variables_stack,
1842 free it afterwards. If ENABLE_CHECKING verify that after noting
1843 differences to an empty set value_chains hash table is empty.
1844 (vt_initialize): Initialize value_chains and value_chain_pool.
1845 (vt_finalize): Delete value_chains htab, free value_chain_pool.
1846 (variable_tracking_main): Call dump_dataflow_sets before calling
1847 vt_emit_notes, not after it.
1848 * tree-flow.h (propagate_defs_into_debug_stmts): Declare.
1849 (propagate_var_def_into_debug_stmts): Declare.
1850 * df-problems.c (df_lr_bb_local_compute): Skip debug insns.
1851 (df_set_note): Reject debug insns.
1852 (df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
1853 add notes to debug insns.
1854 (df_note_bb_compute): Adjust. Likewise.
1855 (df_simulate_uses): Skip debug insns.
1856 (df_simulate_initialize_backwards): Likewise.
1857 * reg-stack.c (subst_stack_regs_in_debug_insn): New.
1858 (subst_stack_regs_pat): Reject debug insns.
1859 (convert_regs_1): Handle debug insns.
1860 * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
1861 (print-rtl.o): Depend on cselib.h.
1862 (cselib.o): Depend on TREE_PASS_H.
1863 (var-tracking.o): Depend on cselib.h and TARGET_H.
1864 * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns.
1865 (init_ready_list): Skip boundary debug insns.
1866 (add_branch_dependences): Skip debug insns.
1867 (free_block_dependencies): Check for blocks with only debug insns.
1868 (compute_priorities): Likewise.
1869 * gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
1870 (gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
1872 (gimple_build_debug_bind_stat): New.
1873 (empty_body_p): Skip debug stmts.
1874 (gimple_has_side_effects): Likewise.
1875 (gimple_rhs_has_side_effects): Likewise.
1876 * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
1877 (gimple_build_debug_bind_stat): Declare.
1878 (gimple_build_debug_bind): Define.
1879 (is_gimple_debug): New.
1880 (gimple_debug_bind_p): New.
1881 (gimple_debug_bind_get_var): New.
1882 (gimple_debug_bind_get_value): New.
1883 (gimple_debug_bind_get_value_ptr): New.
1884 (gimple_debug_bind_set_var): New.
1885 (gimple_debug_bind_set_value): New.
1886 (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
1887 (gimple_debug_bind_reset_value): New.
1888 (gimple_debug_bind_has_value_p): New.
1889 (gsi_next_nondebug): New.
1890 (gsi_prev_nondebug): New.
1891 (gsi_start_nondebug_bb): New.
1892 (gsi_last_nondebug_bb): New.
1893 * sched-vis.c (print_pattern): Handle VAR_LOCATION.
1894 (print_insn): Handle DEBUG_INSN.
1895 * tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
1896 of first insn prevail.
1897 (first_stmt): Skip debug stmts.
1898 (first_non_label_stmt): Likewise.
1899 (last_stmt): Likewise.
1900 (has_zero_uses_1): New.
1901 (single_imm_use_1): New.
1902 (verify_gimple_debug): New.
1903 (verify_types_in_gimple_stmt): Handle debug stmts.
1904 (verify_stmt): Likewise.
1905 (debug_loop_num): Skip debug stmts.
1906 (remove_edge_and_dominated_blocks): Remove dominators last.
1907 * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts.
1908 (linearize_expr): Likewise.
1909 * config/i386/i386.c (ix86_delegitimize_address): Call
1910 default implementation.
1911 * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns.
1912 (group_barrier_needed): Skip debug insns.
1913 (emit_insn_group_barriers): Likewise.
1914 (emit_all_insn_group_barriers): Likewise.
1915 (ia64_variable_issue): Handle debug insns.
1916 (ia64_dfa_new_cycle): Likewise.
1917 (final_emit_insn_group_barriers): Skip debug insns.
1918 (ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
1919 def cfa without frame.
1920 (process_set): Likewise.
1921 (process_for_unwind_directive): Pass frame on.
1922 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
1923 (rs6000_delegitimize_address): New.
1924 (rs6000_debug_adjust_cost): Handle debug insns.
1925 (is_microcoded_insn): Likewise.
1926 (is_cracked_insn): Likewise.
1927 (is_nonpipeline_insn): Likewise.
1928 (insn_must_be_first_in_group): Likewise.
1929 (insn_must_be_last_in_group): Likewise.
1930 (force_new_group): Likewise.
1931 * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
1932 contains only debug insns.
1933 (rtl_merge_blocks): Skip debug insns.
1934 (purge_dead_edges): Likewise.
1935 (rtl_block_ends_with_call_p): Skip debug insns.
1936 * dce.c (deletable_insn_p): Handle VAR_LOCATION.
1937 (mark_reg_dependencies): Skip debug insns.
1938 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
1939 * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts.
1940 * tree-ssa-threadedge.c
1941 (record_temporary_equivalences_from_stmts): Skip debug stmts.
1942 * regcprop.c (replace_oldest_value_addr): Skip debug insns.
1943 (replace_oldest_value_mem): Use ALL_REGS for debug insns.
1944 (copyprop_hardreg_forward_1): Handle debug insns.
1945 * reload1.c (reload): Skip debug insns. Replace unassigned
1946 pseudos in debug insns with their equivalences.
1947 (eliminate_regs_in_insn): Skip debug insns.
1948 (emit_input_reload_insns): Skip debug insns at first, adjust
1950 * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
1951 (get_indirect_ref_operands): Pass opf_no_vops on.
1952 (get_expr_operands): Likewise. Skip debug stmts.
1953 (parse_ssa_operands): Scan debug insns with opf_no_vops.
1955 2009-09-01 Richard Henderson <rth@redhat.com>
1957 * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate
1958 stmt_ends_pp_p statements at least once.
1959 * tree-vrp.c (vrp_initialize): Likewise.
1960 (vrp_visit_stmt): Be prepared for non-interesting stmts.
1962 2009-09-01 Dodji Seketeli <dodji@redhat.com>
1965 Fix AIX bootstrap after PR debug/30161
1966 * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen
1967 that is a GNU extension.
1968 (tmpl_value_parm_die_table): Move the definition of this global
1969 outside #ifdef DWARF2_DEBUGGING_INFO region.
1971 2009-09-01 Richard Guenther <rguenther@suse.de>
1973 * tree.c (tree_expr_size): New function.
1974 * tree.h (tree_expr_size): Declare.
1975 * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment.
1976 * builtins.c (fold_builtin_memory_op): Use tree_expr_size.
1977 * langhooks.c (lhd_expr_size): Remove.
1978 * langhooks.h (struct lang_hooks): Remove expr_size.
1979 * explow.c (expr_size): Use tree_expr_size.
1980 (int_expr_size): Likewise.
1981 * langhooks-def.h (lhd_expr_size): Remove.
1982 (LANG_HOOKS_EXPR_SIZE): Likewise.
1983 (LANG_HOOKS_INITIALIZER): Adjust.
1985 2009-09-01 Richard Guenther <rguenther@suse.de>
1987 * tree-flow.h (mark_addressable): Move declaration ...
1988 * tree.h (mark_addressable): ... here.
1989 * stmt.c (expand_asm_operands): Use mark_addressable, not
1990 lang_hooks.mark_addressable.
1991 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
1992 LANG_HOOKS_MARK_ADDRESSABLE.
1993 * langhooks.h (struct lang_hooks): Remove mark_addressable langhook.
1994 * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
1996 2009-08-31 Chris Demetriou <cgd@google.com>
1998 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never
1999 vectorize if not TARGET_SSE2.
2001 2009-08-31 DJ Delorie <dj@redhat.com>
2003 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor
2004 registers if no coprocessor is enabled.
2006 2009-08-31 Dodji Seketeli <dodji@redhat.com>
2009 * cgraph.h (cgraph_get_node): Declare ...
2010 * cgraph.c (cgraph_get_node): ... new function.
2011 * dwarf2out.c (gen_generic_params_dies,
2012 generic_parameter_die, tree_add_const_value_attribute_for_decl,
2013 make_ith_pack_parameter_name,
2014 append_entry_to_tmpl_value_parm_die_table,
2015 gen_remaining_tmpl_value_param_die_attribute): New functions.
2016 (gen_subprogram_die): Generate debug info for template parameters
2017 if debug info level is higher than DINFO_LEVEL_TERSE.
2018 Use tree_add_const_value_attribute_for_decl instead of
2019 tree_add_const_value_attribute.
2020 (gen_const_die): Use tree_add_const_value_attribute_for_decl
2021 instead of tree_add_const_value_attribute.
2022 (gen_struct_or_union_type_die): Generate debug
2023 info for template parameters if debug info level is higher than
2025 (tree_add_const_value_attribute): Handle integral and pointer
2026 constants. Update comment.
2027 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
2028 (dwarf_attr_name): Support DW_AT_GNU_template_name.
2029 (reference_to_unused): Fix thinko. Remove redundant predicates from
2031 (tree_add_const_value_attribute): Make this work for constant
2033 tree_add_const_value_attribute_for_decl is to be used for variable
2035 (add_location_or_const_value_attribute): Use
2036 tree_add_const_value_attribute_for_decl now.
2037 (dwarf2out_finish): Emit the DW_AT_const_value attribute of
2038 DW_TAG_template_value_param DIEs after function DIEs have been
2040 * langhooks.h (lang_hooks_for_types): Add
2041 get_argument_pack_elems.
2042 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
2043 (lang_hooks): Added get_innermost_generic_parms,
2044 get_innermost_generic_args.
2045 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
2046 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
2047 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
2048 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
2050 2009-08-31 DJ Delorie <dj@redhat.com>
2052 * config/mep/mep.c (machine_function): Add frame_locked flag. Set
2053 it once we start generating the prologue or epilogue.
2054 (mep_call_saves_register): If the frame is locked, re-use
2056 (mep_assign_save_slots): New, broken out from mep_expand_prologue.
2057 (mep_expand_prologue): Call it.
2058 (mep_expand_epilogue): Likewise.
2059 (mep_start_function): Use the same logic as mep_expand_prologue.
2060 (mep_pass_by_reference): Make logic more readable.
2061 (mep_return_in_memory): Zero-sized objects are passed in memory.
2062 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
2064 2009-08-31 Richard Guenther <rguenther@suse.de>
2066 * builtins.c (fold_builtin_memory_op): Use the alias oracle
2067 to query if the memory regions for memmove overlap.
2068 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
2069 asserts on pointers, instead deal with odd trees.
2070 (ptr_derefs_may_alias_p): Likewise.
2071 (refs_may_alias_p_1): Constructor bases also never alias.
2073 2009-08-31 Gerald Pfeifer <gerald@pfeifer.com>
2075 * doc/install.texi (Final install): Adjust reference on where to
2076 order printed manuals.
2078 2009-08-30 Olivier Hainque <hainque@adacore.com>
2080 * dwarf2out.c (switch_to_frame_table_section): Move
2081 definition prior to first use.
2083 2009-08-30 Richard Guenther <rguenther@suse.de>
2085 PR tree-optimization/41186
2086 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
2087 (ao_ref_init_from_ptr_and_size): New function.
2088 (ref_maybe_used_by_call_p_1): Be more precise tracking
2089 used ranges for builtin functions.
2090 (ref_maybe_used_by_call_p): Adjust.
2091 (call_may_clobber_ref_p_1): Be more precise tracking clobbered
2092 ranges for builtin functions.
2093 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.
2095 2009-08-30 Alan Modra <amodra@bigpond.net.au>
2098 * fwprop.c (get_reg_use_in): Delete.
2099 (free_load_extend): New function.
2100 (forward_propagate_subreg): Use it.
2102 2009-08-29 Kaz Kojima <kkojima@gcc.gnu.org>
2104 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.
2106 2009-08-29 Kai Tietz<kai.tietz@onevision.com>
2109 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
2112 2009-08-29 Douglas B Rupp <rupp@gnat.com>
2114 * crtstuff.c (__do_global_dtors_aux): Use atexit if no
2115 fini or fini_array section.
2117 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2119 * graphite-dependences.c (graphite_legal_transform_bb): Call
2120 pbb_remove_duplicate_pdrs.
2121 * graphite-poly.c (can_collapse_pdr): Removed.
2122 (pdr_find_duplicate): Removed.
2123 (can_collapse_pdrs): New.
2124 (pbb_remove_duplicate_pdrs): New.
2125 (new_poly_dr): Do not look for duplicates.
2126 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
2127 (PBB_PDR_DUPLICATES_REMOVED): New.
2128 (pbb_remove_duplicate_pdrs): Declared.
2130 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2132 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
2133 the strides by multiplying by PDR_NB_REFS.
2134 * graphite-poly.c (can_collapse_pdr): New.
2135 (pdr_find_duplicate): New.
2136 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs.
2137 Initialize PDR_NB_REFS.
2138 * graphite-poly.h (struct poly_dr): Add field nb_refs.
2140 (new_poly_dr): Number of subscripts is a graphite_dim_t.
2142 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2145 * graphite-poly.c (apply_poly_transforms): Remove legality test before
2148 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2150 * graphite-dependences.c (pddr_original_scattering): Return NULL
2151 for read-read dependence relations.
2152 * graphite-poly.h (enum poly_dr_type): Fix comment.
2155 (pdr_may_write_p): New.
2157 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2159 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
2160 (struct poly_dr): Same.
2161 (new_poly_dr): Same.
2162 * graphite-poly.c (new_poly_dr): Same.
2163 * graphite-dependences.c (dot_deps): Disable call to system.
2165 2009-08-28 Cary Coutant <ccoutant@google.com>
2168 * dwarf2out.c (gen_type_die_with_usage): Use proper context for
2169 struct/union/enum types local to a function.
2171 2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2172 Sebastian Pop <sebastian.pop@amd.com>
2174 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
2175 pbb_strip_mine_time_depth. Changed the implementation so that
2176 transformation is expressed as a transformation on
2177 time (scatttering) dimensions. Also, ensures that the 2d+1
2178 scheduling format is preserved.
2179 (pbb_strip_mine_profitable_p): Profitability is based on the
2180 iteration number of a given time (scattering) dimension,
2181 and not on a original loop depth dimension.
2182 (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
2183 (pbb_do_strip_mine): Call psct_dynamic_dim.
2184 * graphite-poly.c (pbb_number_of_iterations_at_time): New.
2185 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
2186 (pbb_nb_dynamic_scattering_transform): New.
2187 (psct_dynamic_dim): New.
2189 2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2191 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
2192 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
2193 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
2194 * graphite-interchange.c (build_linearized_memory_access): Same.
2195 (memory_stride_in_loop): Same.
2197 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2199 * graphite-dependences.c (pddr_original_scattering): New.
2200 (graphite_legal_transform_dr): Call pddr_original_scattering.
2203 * graphite-dependences.h (dot_deps): Declared.
2204 * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
2205 (print_pdr): Print PDR_ID.
2206 * graphite-poly.h (struct poly_dr): Add field id.
2209 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
2211 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2213 * graphite-dependences.c (graphite_carried_dependence_level_k): Do
2214 not delete the original dependence relation.
2216 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2218 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
2219 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
2220 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
2221 (free_poly_ddr): New.
2222 (pddr_is_empty): New.
2223 (dependence_polyhedron_1): Now returns a poly_ddr_p.
2224 (dependence_polyhedron): Same. Remove useless gcc_assert.
2226 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
2227 (graphite_carried_dependence_level_k): Call pddr_is_empty.
2228 * graphite-dependences.h (enum poly_dependence_kind): New.
2229 (poly_dr_pair): Renamed poly_ddr. Added a field kind.
2230 (PDRP_SOURCE): Renamed PDDR_SOURCE.
2231 (PDRP_SINK): Renamed PDDR_SINK.
2232 (PDRP_DDP): Renamed PDDR_DDP.
2234 (free_poly_ddr): Declared.
2235 * graphite-poly.c (new_scop): Use the new hash function names.
2236 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
2237 into original_pddrs.
2238 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
2240 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2242 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
2243 bounds with LT_EXPR to make niter analysis more precise on code
2244 generated by Graphite.
2246 2009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2248 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
2249 (graphite_legal_transform_bb): Same.
2250 (poly_drs_may_alias_p): Same.
2252 2009-08-28 Richard Guenther <rguenther@suse.de>
2254 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.
2256 2009-08-28 Jan Beulich <jbeulich@novell.com>
2258 * config/i386/netware.c: Include langhooks.h.
2259 (i386_nlm_encode_section_info): Simplify.
2260 (netware_override_options): Delete.
2261 * config/i386/netware.h (netware_override_options): Delete
2263 (OVERRIDE_OPTIONS): Delete definition.
2264 (SUBTARGET_OVERRIDE_OPTIONS): Define.
2265 (ASM_COMMENT_START): Define.
2266 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
2268 2009-08-28 Jan Beulich <jbeulich@novell.com>
2270 * configure.ac: For in-tree ld, do a plain version check to
2271 determine whether comdat groups are supported.
2272 * configure: Regenerate.
2274 2009-08-28 Olivier Hainque <hainque@adacore.com>
2276 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
2277 always defined. Reflect definition or absence of such for
2278 COLLECT_EXPORT_LIST. Readability helper.
2279 (scanfilter): New enum, to help control what symbols
2280 are to be considered or ignored by scan_prog_file.
2281 (enum pass): Rename as "scanpass", moved together with scanfilter
2282 prior to scan_prog_file's prototype.
2283 (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
2284 Group prototype with the scanpass/scanfilter definitions, factorize
2285 head comments for the several implementations at the prototype.
2286 (main): Reorganize the first pass link control to let AIX
2287 drag only the needed frame tables in executables. Prevent
2288 frame tables collection during the scan aimed at static ctors.
2289 Pre-link and scan for frame tables later to compensate.
2290 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
2291 A C statement to issue assembly directives that create a reference
2292 to the given DWARF table identifier label from the current function
2294 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
2295 to differentiate first time section entry. Only emit a .data
2296 tables start identifier label the first time around.
2297 (switch_to_frame_table_section): New function. Helper for
2298 output_call_frame_info to switch possibly BACK into the eh_frame
2299 or the debug_frame section depending on FOR_EH.
2300 (output_call_frame_info): Use helper to first enter the proper
2302 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
2303 emit a link to the frame table start label from each function
2305 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
2306 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
2307 * config/rs6000/rs6000-protos.h: Declare it.
2308 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
2310 2009-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
2312 * config/sh/sh.c (split_branches): Check the result of
2315 2009-08-27 Steve Ellcey <sje@cup.hp.com>
2317 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
2318 using -pthread -fopenmp
2320 2009-08-27 Gerald Pfeifer <gerald@pfeifer.com>
2322 * doc/service.texi (service directory): Update URL.
2324 2009-08-27 Uros Bizjak <ubizjak@gmail.com>
2326 PR rtl-optimization/40861
2327 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
2328 extract word from a multi-word subreg for negative byte positions.
2330 2009-08-27 Tristan Gingold <gingold@adacore.com>
2331 Douglas B Rupp <rupp@gnat.com>
2333 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
2334 (SECTION_VMS_OVERLAY): Define.
2335 (ia64_vms_common_object_attribute): Added. Handle the "common_object"
2337 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op
2339 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for
2340 common_object declarations.
2341 (ia64_section_type_flags): Set section flag for common_object.
2342 * config/ia64/ia64-protos.h
2343 (ia64_vms_output_aligned_decl_common): Declare.
2344 (ia64_vms_elf_asm_named_section): Declare.
2346 2009-08-27 Michael Matz <matz@suse.de>
2348 * expr.c (expand_expr_real_2): New function taking exploded
2349 unary or binary expression, split out from ...
2350 (expand_expr_real_1): ... here. Move over all unary/binary
2351 switch parts to above function, in particular these codes:
2352 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
2353 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
2354 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
2355 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
2356 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
2357 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
2358 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
2359 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
2360 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
2361 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
2362 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
2363 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
2364 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
2365 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
2366 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
2367 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
2368 VEC_PACK_FIX_TRUNC_EXPR.
2369 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
2372 2009-08-27 Richard Guenther <rguenther@suse.de>
2374 * gengtype.c (main): Handle uint64_t.
2375 * ipa-utils.c (get_base_var): Indent properly.
2376 * tree-ssa-live.c (debug_scope_block): New function.
2377 * tree-flow.h (debug_scope_block): Declare.
2378 * tree-ssa-copy.c (replace_exp_1): Add vertical space.
2379 * basic-block.h (enum profile_status): Rename to
2380 enum profile_status_d.
2381 (x_profile_status): Adjust type.
2383 2009-08-27 Dodji Seketeli <dodji@redhat.com>
2386 * dwarf2out.c (get_context_die): Declare this static function.
2387 (gen_type_die_with_usage): Make sure a DIE is a generated for
2388 the context of a typedef.
2390 2009-08-26 Anatoly Sokolov <aesok@post.ru>
2392 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
2395 2009-08-26 Richard Sandiford <rdsandiford@googlemail.com>
2397 * config/mips/mips-protos.h (mips_output_sync): Declare.
2398 (mips_sync_loop_insns): Likewise.
2399 (mips_output_sync_loop): Replace first two parameters with an rtx.
2400 * config/mips/mips.c (mips_multi_member): New structure.
2401 (mips_multi_members): New variable.
2402 (mips_multi_start): New function.
2403 (mips_multi_add): Likewise.
2404 (mips_multi_add_insn): Likewise.
2405 (mips_multi_add_label): Likewise.
2406 (mips_multi_last_index): Likewise.
2407 (mips_multi_copy_insn): Likewise.
2408 (mips_multi_set_operand): Likewise.
2409 (mips_multi_write): Likewise.
2410 (mips_print_operand_punctuation): Remove '%|' and '%-'.
2411 (mips_init_print_operand_punct): Update accordingly.
2412 (mips_start_ll_sc_sync_block): New function.
2413 (mips_end_ll_sc_sync_block): Likewise.
2414 (mips_output_sync): Likewise.
2415 (mips_sync_insn1_template): Likewise.
2416 (mips_sync_insn2_template): Likewise.
2417 (mips_get_sync_operand): Likewise.
2418 (mips_process_sync_loop): Likewise.
2419 (mips_output_sync_loop): Use mips_process_sync_loop.
2420 (mips_sync_loop_insns): New function.
2421 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
2422 (MIPS_COMPARE_AND_SWAP_12): Likewise.
2423 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
2424 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
2425 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
2426 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
2427 (MIPS_SYNC_OLD_OP_12): Likewise.
2428 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
2429 (MIPS_SYNC_NEW_OP_12): Likewise.
2430 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
2431 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
2432 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
2433 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
2434 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
2435 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
2436 * config/mips/mips.md (sync_mem): New attribute.
2437 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
2438 (sync_exclusive_mask, sync_required_oldval): Likewise.
2439 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
2440 (sync_release_barrier): Likewise.
2441 (length): Handle sync loops.
2442 (sync): Use mips_output_sync.
2443 * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
2444 (sync_compare_and_swap<mode>): Set the new sync_* attributes
2445 and use mips_output_sync_loop.
2446 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
2447 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
2448 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
2449 (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
2450 (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
2451 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
2452 (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
2453 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
2454 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
2456 2009-08-26 Richard Guenther <rguenther@suse.de>
2459 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
2460 the types to not match.
2461 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
2463 * tree-ssa.c (useless_type_conversion_p): Conversions to
2464 pointers to unprototyped functions are useless.
2466 2009-08-26 Richard Guenther <rguenther@suse.de>
2468 * tree-ssa-structalias.c (create_variable_info_for): Remove strange
2469 whole-program condition, prepare to be called for non-globals.
2470 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
2471 params build a representative with known type and track its fields.
2473 2009-08-26 Uros Bizjak <ubizjak@gmail.com>
2475 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
2476 clearing by a taken branch.
2477 (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
2478 effectively after bbro pass.
2479 (sync_nand<mode>): Ditto.
2480 (sync_old_<fetchop_name><mode>): Ditto.
2481 (sync_old_nand<mode>): Ditto.
2482 (sync_new_<fetchop_name><mode>): Dito.
2483 (sync_new_nand<mode>): Ditto.
2484 (sync_compare_and_swap<mode>_1): Ditto.
2485 (*sync_compare_and_swap<mode>): Ditto.
2486 (sync_lock_test_and_set<mode>_1): Ditto.
2487 ("sync_lock_test_and_set<mode>): Ditto.
2489 2009-08-25 Douglas B Rupp <rupp@gnat.com>
2491 * hwint.h (HOST_LONG_FORMAT): New macro
2492 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
2493 Use HOST_PTR_PRINTF.
2494 * system.h (HOST_PTR_PRINTF): Resurrect old macro
2495 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
2496 (HOST_PTR_PRINTF): Document.
2498 2009-08-25 Jan Hubicka <jh@suse.cz>
2500 * config/i386/bmmintrin.h: Replace by #error.
2503 Michael Meissner <michael.meissner@amd.com>
2504 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2505 Tony Linthicum <tony.linthicum@amd.com>
2507 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
2508 (TARGET_ROUND): New macro for the round/ptest instructions which
2509 are shared between SSE4.1 and SSE5.
2510 (OPTION_MASK_ISA_ROUND): Ditto.
2511 (OPTION_ISA_ROUND): Ditto.
2512 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
2513 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
2515 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
2516 (-mfused-madd): New switch to give users control over whether the
2517 compiler optimizes to use the multiply/add SSE5 instructions.
2519 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
2520 (ix86_handle_option): Turn off 3dnow if -msse5.
2521 (override_options): Add SSE5 support.
2522 (print_operand): %Y prints comparison codes for SSE5 com/pcom
2524 (ix86_expand_sse_movcc): Add SSE5 support.
2525 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
2526 vector type to the next largest size.
2527 (ix86_expand_sse5_pack): New function to use pperm to pack a
2528 vector type to the next smallest size.
2529 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
2530 (IX86_BUILTIN_FMADDSD): Ditto.
2531 (IX86_BUILTIN_FMADDPS): Ditto.
2532 (IX86_BUILTIN_FMADDPD): Ditto.
2533 (IX86_BUILTIN_FMSUBSS): Ditto.
2534 (IX86_BUILTIN_FMSUBSD): Ditto.
2535 (IX86_BUILTIN_FMSUBPS): Ditto.
2536 (IX86_BUILTIN_FMSUBPD): Ditto.
2537 (IX86_BUILTIN_FNMADDSS): Ditto.
2538 (IX86_BUILTIN_FNMADDSD): Ditto.
2539 (IX86_BUILTIN_FNMADDPS): Ditto.
2540 (IX86_BUILTIN_FNMADDPD): Ditto.
2541 (IX86_BUILTIN_FNMSUBSS): Ditto.
2542 (IX86_BUILTIN_FNMSUBSD): Ditto.
2543 (IX86_BUILTIN_FNMSUBPS): Ditto.
2544 (IX86_BUILTIN_FNMSUBPD): Ditto.
2545 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
2546 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
2547 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
2548 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
2549 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
2550 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
2551 (IX86_BUILTIN_PPERM): Ditto.
2552 (IX86_BUILTIN_PERMPS): Ditto.
2553 (IX86_BUILTIN_PERMPD): Ditto.
2554 (IX86_BUILTIN_PMACSSWW): Ditto.
2555 (IX86_BUILTIN_PMACSWW): Ditto.
2556 (IX86_BUILTIN_PMACSSWD): Ditto.
2557 (IX86_BUILTIN_PMACSWD): Ditto.
2558 (IX86_BUILTIN_PMACSSDD): Ditto.
2559 (IX86_BUILTIN_PMACSDD): Ditto.
2560 (IX86_BUILTIN_PMACSSDQL): Ditto.
2561 (IX86_BUILTIN_PMACSSDQH): Ditto.
2562 (IX86_BUILTIN_PMACSDQL): Ditto.
2563 (IX86_BUILTIN_PMACSDQH): Ditto.
2564 (IX86_BUILTIN_PMADCSSWD): Ditto.
2565 (IX86_BUILTIN_PMADCSWD): Ditto.
2566 (IX86_BUILTIN_PHADDBW): Ditto.
2567 (IX86_BUILTIN_PHADDBD): Ditto.
2568 (IX86_BUILTIN_PHADDBQ): Ditto.
2569 (IX86_BUILTIN_PHADDWD): Ditto.
2570 (IX86_BUILTIN_PHADDWQ): Ditto.
2571 (IX86_BUILTIN_PHADDDQ): Ditto.
2572 (IX86_BUILTIN_PHADDUBW): Ditto.
2573 (IX86_BUILTIN_PHADDUBD): Ditto.
2574 (IX86_BUILTIN_PHADDUBQ): Ditto.
2575 (IX86_BUILTIN_PHADDUWD): Ditto.
2576 (IX86_BUILTIN_PHADDUWQ): Ditto.
2577 (IX86_BUILTIN_PHADDUDQ): Ditto.
2578 (IX86_BUILTIN_PHSUBBW): Ditto.
2579 (IX86_BUILTIN_PHSUBWD): Ditto.
2580 (IX86_BUILTIN_PHSUBDQ): Ditto.
2581 (IX86_BUILTIN_PROTB): Ditto.
2582 (IX86_BUILTIN_PROTW): Ditto.
2583 (IX86_BUILTIN_PROTD): Ditto.
2584 (IX86_BUILTIN_PROTQ): Ditto.
2585 (IX86_BUILTIN_PROTB_IMM): Ditto.
2586 (IX86_BUILTIN_PROTW_IMM): Ditto.
2587 (IX86_BUILTIN_PROTD_IMM): Ditto.
2588 (IX86_BUILTIN_PROTQ_IMM): Ditto.
2589 (IX86_BUILTIN_PSHLB): Ditto.
2590 (IX86_BUILTIN_PSHLW): Ditto.
2591 (IX86_BUILTIN_PSHLD): Ditto.
2592 (IX86_BUILTIN_PSHLQ): Ditto.
2593 (IX86_BUILTIN_PSHAB): Ditto.
2594 (IX86_BUILTIN_PSHAW): Ditto.
2595 (IX86_BUILTIN_PSHAD): Ditto.
2596 (IX86_BUILTIN_PSHAQ): Ditto.
2597 (IX86_BUILTIN_FRCZSS): Ditto.
2598 (IX86_BUILTIN_FRCZSD): Ditto.
2599 (IX86_BUILTIN_FRCZPS): Ditto.
2600 (IX86_BUILTIN_FRCZPD): Ditto.
2601 (IX86_BUILTIN_CVTPH2PS): Ditto.
2602 (IX86_BUILTIN_CVTPS2PH): Ditto.
2603 (IX86_BUILTIN_COMEQSS): Ditto.
2604 (IX86_BUILTIN_COMNESS): Ditto.
2605 (IX86_BUILTIN_COMLTSS): Ditto.
2606 (IX86_BUILTIN_COMLESS): Ditto.
2607 (IX86_BUILTIN_COMGTSS): Ditto.
2608 (IX86_BUILTIN_COMGESS): Ditto.
2609 (IX86_BUILTIN_COMUEQSS): Ditto.
2610 (IX86_BUILTIN_COMUNESS): Ditto.
2611 (IX86_BUILTIN_COMULTSS): Ditto.
2612 (IX86_BUILTIN_COMULESS): Ditto.
2613 (IX86_BUILTIN_COMUGTSS): Ditto.
2614 (IX86_BUILTIN_COMUGESS): Ditto.
2615 (IX86_BUILTIN_COMORDSS): Ditto.
2616 (IX86_BUILTIN_COMUNORDSS): Ditto.
2617 (IX86_BUILTIN_COMFALSESS): Ditto.
2618 (IX86_BUILTIN_COMTRUESS): Ditto.
2619 (IX86_BUILTIN_COMEQSD): Ditto.
2620 (IX86_BUILTIN_COMNESD): Ditto.
2621 (IX86_BUILTIN_COMLTSD): Ditto.
2622 (IX86_BUILTIN_COMLESD): Ditto.
2623 (IX86_BUILTIN_COMGTSD): Ditto.
2624 (IX86_BUILTIN_COMGESD): Ditto.
2625 (IX86_BUILTIN_COMUEQSD): Ditto.
2626 (IX86_BUILTIN_COMUNESD): Ditto.
2627 (IX86_BUILTIN_COMULTSD): Ditto.
2628 (IX86_BUILTIN_COMULESD): Ditto.
2629 (IX86_BUILTIN_COMUGTSD): Ditto.
2630 (IX86_BUILTIN_COMUGESD): Ditto.
2631 (IX86_BUILTIN_COMORDSD): Ditto.
2632 (IX86_BUILTIN_COMUNORDSD): Ditto.
2633 (IX86_BUILTIN_COMFALSESD): Ditto.
2634 (IX86_BUILTIN_COMTRUESD): Ditto.
2635 (IX86_BUILTIN_COMEQPS): Ditto.
2636 (IX86_BUILTIN_COMNEPS): Ditto.
2637 (IX86_BUILTIN_COMLTPS): Ditto.
2638 (IX86_BUILTIN_COMLEPS): Ditto.
2639 (IX86_BUILTIN_COMGTPS): Ditto.
2640 (IX86_BUILTIN_COMGEPS): Ditto.
2641 (IX86_BUILTIN_COMUEQPS): Ditto.
2642 (IX86_BUILTIN_COMUNEPS): Ditto.
2643 (IX86_BUILTIN_COMULTPS): Ditto.
2644 (IX86_BUILTIN_COMULEPS): Ditto.
2645 (IX86_BUILTIN_COMUGTPS): Ditto.
2646 (IX86_BUILTIN_COMUGEPS): Ditto.
2647 (IX86_BUILTIN_COMORDPS): Ditto.
2648 (IX86_BUILTIN_COMUNORDPS): Ditto.
2649 (IX86_BUILTIN_COMFALSEPS): Ditto.
2650 (IX86_BUILTIN_COMTRUEPS): Ditto.
2651 (IX86_BUILTIN_COMEQPD): Ditto.
2652 (IX86_BUILTIN_COMNEPD): Ditto.
2653 (IX86_BUILTIN_COMLTPD): Ditto.
2654 (IX86_BUILTIN_COMLEPD): Ditto.
2655 (IX86_BUILTIN_COMGTPD): Ditto.
2656 (IX86_BUILTIN_COMGEPD): Ditto.
2657 (IX86_BUILTIN_COMUEQPD): Ditto.
2658 (IX86_BUILTIN_COMUNEPD): Ditto.
2659 (IX86_BUILTIN_COMULTPD): Ditto.
2660 (IX86_BUILTIN_COMULEPD): Ditto.
2661 (IX86_BUILTIN_COMUGTPD): Ditto.
2662 (IX86_BUILTIN_COMUGEPD): Ditto.
2663 (IX86_BUILTIN_COMORDPD): Ditto.
2664 (IX86_BUILTIN_COMUNORDPD): Ditto.
2665 (IX86_BUILTIN_COMFALSEPD): Ditto.
2666 (IX86_BUILTIN_COMTRUEPD): Ditto.
2667 (IX86_BUILTIN_PCOMEQUB): Ditto.
2668 (IX86_BUILTIN_PCOMNEUB): Ditto.
2669 (IX86_BUILTIN_PCOMLTUB): Ditto.
2670 (IX86_BUILTIN_PCOMLEUB): Ditto.
2671 (IX86_BUILTIN_PCOMGTUB): Ditto.
2672 (IX86_BUILTIN_PCOMGEUB): Ditto.
2673 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
2674 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
2675 (IX86_BUILTIN_PCOMEQUW): Ditto.
2676 (IX86_BUILTIN_PCOMNEUW): Ditto.
2677 (IX86_BUILTIN_PCOMLTUW): Ditto.
2678 (IX86_BUILTIN_PCOMLEUW): Ditto.
2679 (IX86_BUILTIN_PCOMGTUW): Ditto.
2680 (IX86_BUILTIN_PCOMGEUW): Ditto.
2681 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
2682 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
2683 (IX86_BUILTIN_PCOMEQUD): Ditto.
2684 (IX86_BUILTIN_PCOMNEUD): Ditto.
2685 (IX86_BUILTIN_PCOMLTUD): Ditto.
2686 (IX86_BUILTIN_PCOMLEUD): Ditto.
2687 (IX86_BUILTIN_PCOMGTUD): Ditto.
2688 (IX86_BUILTIN_PCOMGEUD): Ditto.
2689 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
2690 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
2691 (IX86_BUILTIN_PCOMEQUQ): Ditto.
2692 (IX86_BUILTIN_PCOMNEUQ): Ditto.
2693 (IX86_BUILTIN_PCOMLTUQ): Ditto.
2694 (IX86_BUILTIN_PCOMLEUQ): Ditto.
2695 (IX86_BUILTIN_PCOMGTUQ): Ditto.
2696 (IX86_BUILTIN_PCOMGEUQ): Ditto.
2697 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
2698 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
2699 (IX86_BUILTIN_PCOMEQB): Ditto.
2700 (IX86_BUILTIN_PCOMNEB): Ditto.
2701 (IX86_BUILTIN_PCOMLTB): Ditto.
2702 (IX86_BUILTIN_PCOMLEB): Ditto.
2703 (IX86_BUILTIN_PCOMGTB): Ditto.
2704 (IX86_BUILTIN_PCOMGEB): Ditto.
2705 (IX86_BUILTIN_PCOMFALSEB): Ditto.
2706 (IX86_BUILTIN_PCOMTRUEB): Ditto.
2707 (IX86_BUILTIN_PCOMEQW): Ditto.
2708 (IX86_BUILTIN_PCOMNEW): Ditto.
2709 (IX86_BUILTIN_PCOMLTW): Ditto.
2710 (IX86_BUILTIN_PCOMLEW): Ditto.
2711 (IX86_BUILTIN_PCOMGTW): Ditto.
2712 (IX86_BUILTIN_PCOMGEW): Ditto.
2713 (IX86_BUILTIN_PCOMFALSEW): Ditto.
2714 (IX86_BUILTIN_PCOMTRUEW): Ditto.
2715 (IX86_BUILTIN_PCOMEQD): Ditto.
2716 (IX86_BUILTIN_PCOMNED): Ditto.
2717 (IX86_BUILTIN_PCOMLTD): Ditto.
2718 (IX86_BUILTIN_PCOMLED): Ditto.
2719 (IX86_BUILTIN_PCOMGTD): Ditto.
2720 (IX86_BUILTIN_PCOMGED): Ditto.
2721 (IX86_BUILTIN_PCOMFALSED): Ditto.
2722 (IX86_BUILTIN_PCOMTRUED): Ditto.
2723 (IX86_BUILTIN_PCOMEQQ): Ditto.
2724 (IX86_BUILTIN_PCOMNEQ): Ditto.
2725 (IX86_BUILTIN_PCOMLTQ): Ditto.
2726 (IX86_BUILTIN_PCOMLEQ): Ditto.
2727 (IX86_BUILTIN_PCOMGTQ): Ditto.
2728 (IX86_BUILTIN_PCOMGEQ): Ditto.
2729 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
2730 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
2731 (enum multi_arg_type): New enum for describing the various SSE5
2732 intrinsic argument types.
2733 (bdesc_multi_arg): New table for SSE5 intrinsics.
2734 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
2735 (ix86_expand_multi_arg_builtin): New function for creating SSE5
2737 (ix86_expand_builtin): Add SSE5 intrinsic support.
2738 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
2739 operand instructions.
2740 (ix86_expand_sse5_multiple_memory): New function to split the
2741 second memory reference from SSE5 instructions.
2742 (type_has_variadic_args_p): Delete in favor of stdarg_p.
2743 (ix86_return_pops_args): Use stdarg_p to determine if the function
2744 has variable arguments.
2745 (ix86_setup_incoming_varargs): Ditto.
2746 (x86_this_parameter): Ditto.
2748 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
2750 (ix86_expand_sse5_pack): Ditto.
2751 (ix86_sse5_valid_op_p): Ditto.
2752 (ix86_expand_sse5_multiple_memory): Ditto.
2754 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
2755 constant for SSE5 support.
2756 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
2757 (UNSPEC_SSE5_TRUEFALSE): Ditto.
2758 (UNSPEC_SSE5_PERMUTE): Ditto.
2759 (UNSPEC_SSE5_ASHIFT): Ditto.
2760 (UNSPEC_SSE5_LSHIFT): Ditto.
2761 (UNSPEC_FRCZ): Ditto.
2762 (UNSPEC_CVTPH2PS): Ditto.
2763 (UNSPEC_CVTPS2PH): Ditto.
2764 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
2766 (COM_FALSE_S): Ditto.
2767 (COM_FALSE_P): Ditto.
2768 (COM_TRUE_S): Ditto.
2769 (COM_TRUE_P): Ditto.
2770 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
2771 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
2773 (memory attribute): Ditto.
2774 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
2775 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
2776 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
2777 (floor<mode>2): Ditto.
2778 (ceil<mode>2): Ditto.
2779 (btrunc<mode>2): Ditto.
2780 (nearbyintdf2): Ditto.
2781 (nearbyintsf2): Ditto.
2782 (sse_setccsf): Disable if SSE5.
2783 (sse_setccdf): Ditto.
2784 (sse5_setcc<mode>): New support for SSE5 conditional move.
2785 (sse5_pcmov_<mode>): Ditto.
2787 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
2789 (SSEMODEF2P): Ditto.
2790 (ssemodesuffixf4): New mode attribute for SSE5.
2791 (ssemodesuffixf2s): Ditto.
2792 (ssemodesuffixf2c): Ditto.
2793 (sserotatemax): Ditto.
2794 (ssescalarmode): Ditto.
2795 (sse_maskcmpv4sf3): Disable if SSE5.
2796 (sse_maskcmpv2df3): Ditto.
2797 (sse_vmmaskcmpv4sf3): Ditto.
2798 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
2799 (sse5_vmfmadd<mode>4): Ditto.
2800 (sse5_fmsub<mode>4): Ditto.
2801 (sse5_vmfmsub<mode>4): Ditto.
2802 (sse5_fnmadd<mode>4): Ditto.
2803 (sse5_vmfnmadd<mode>4): Ditto.
2804 (sse5_fnmsub<mode>4): Ditto.
2805 (sse5_vmfnmsub<mode>4): Ditto.
2806 (sse5i_fmadd<mode>4): Ditto.
2807 (sse5i_fmsub<mode>4): Ditto.
2808 (sse5i_fnmadd<mode>4): Ditto.
2809 (sse5i_fnmsub<mode>4): Ditto.
2810 (sse5i_vmfmadd<mode>4): Ditto.
2811 (sse5i_vmfmsub<mode>4): Ditto.
2812 (sse5i_vmfnmadd<mode>4): Ditto.
2813 (sse5i_vmfnmsub<mode>4): Ditto.
2814 (mulv16qi3): Add SSE5 support.
2816 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
2817 (sse2_mulv4si3): Disable if SSE5.
2818 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
2819 (sse4_1_roundps): Ditto.
2820 (sse4_1_roundsd): Ditto.
2821 (sse4_1_roundss): Ditto.
2822 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
2824 (sse_maskcmpsf3): Ditto.
2825 (sse_vmmaskcmpv4sf3): Ditto.
2826 (sse2_maskcmpv2df3): Ditto.
2827 (sse2_maskcmpdf3): Ditto.
2828 (sse2_vmmaskcmpv2df3): Ditto.
2829 (sse2_eq<mode>3): Ditto.
2830 (sse2_gt<mode>3): Ditto.
2831 (sse5_pcmov_<mode>): Add SSE5 support.
2832 (vec_unpacku_hi_v16qi): Ditto.
2833 (vec_unpacks_hi_v16qi): Ditto.
2834 (vec_unpacku_lo_v16qi): Ditto.
2835 (vec_unpacks_lo_v16qi): Ditto.
2836 (vec_unpacku_hi_v8hi): Ditto.
2837 (vec_unpacks_hi_v8hi): Ditto.
2838 (vec_unpacku_lo_v8hi): Ditto.
2839 (vec_unpacks_lo_v8hi): Ditto.
2840 (vec_unpacku_hi_v4si): Ditto.
2841 (vec_unpacks_hi_v4si): Ditto.
2842 (vec_unpacku_lo_v4si): Ditto.
2843 (vec_unpacks_lo_v4si): Ditto.
2844 (sse5_pmacsww): New SSE5 intrinsic insn.
2845 (sse5_pmacssww): Ditto.
2846 (sse5_pmacsdd): Ditto.
2847 (sse5_pmacssdd): Ditto.
2848 (sse5_pmacssdql): Ditto.
2849 (sse5_pmacssdqh): Ditto.
2850 (sse5_pmacsdqh): Ditto.
2851 (sse5_pmacsswd): Ditto.
2852 (sse5_pmacswd): Ditto.
2853 (sse5_pmadcsswd): Ditto.
2854 (sse5_pmadcswd): Ditto.
2855 (sse5_pcmov_<move>): Conditional move support on SSE5.
2856 (sse5_phaddbw): New SSE5 intrinsic insn.
2857 (sse5_phaddbd): Ditto.
2858 (sse5_phaddbq): Ditto.
2859 (sse5_phaddwd): Ditto.
2860 (sse5_phaddwq): Ditto.
2861 (sse5_phadddq): Ditto.
2862 (sse5_phaddubw): Ditto.
2863 (sse5_phaddubd): Ditto.
2864 (sse5_phaddubq): Ditto.
2865 (sse5_phadduwd): Ditto.
2866 (sse5_phadduwq): Ditto.
2867 (sse5_phaddudq): Ditto.
2868 (sse5_phsubbw): Ditto.
2869 (sse5_phsubwd): Ditto.
2870 (sse5_phsubdq): Ditto.
2871 (sse5_pperm): Ditto.
2872 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
2873 (sse5_pperm_zero_v16qi_v8hi): Ditto.
2874 (sse5_pperm_sign_v8hi_v4si): Ditto.
2875 (sse5_pperm_zero_v8hi_v4si): Ditto.
2876 (sse5_pperm_sign_v4si_v2di): Ditto.
2877 (sse5_pperm_sign_v4si_v2di): Ditto.
2878 (sse5_pperm_pack_v2di_v4si): Ditto.
2879 (sse5_pperm_pack_v4si_v8hi): Ditto.
2880 (sse5_pperm_pack_v8hi_v16qi): Ditto.
2881 (sse5_perm<mode>): New SSE5 intrinsic insn.
2882 (rotl<mode>3): Ditto.
2883 (sse5_rotl<mode>3): Ditto.
2884 (sse5_ashl<mode>3): Ditto.
2885 (sse5_lshl<mode>3): Ditto.
2886 (sse5_frcz<mode>2): Ditto.
2887 (sse5s_frcz<mode>2): Ditto.
2888 (sse5_cvtph2ps): Ditto.
2889 (sse5_cvtps2ph): Ditto.
2890 (sse5_vmmaskcmp<mode>3): Ditto.
2891 (sse5_com_tf<mode>3): Ditto.
2892 (sse5_maskcmp<mode>3): Ditto.
2893 (sse5_maskcmp_uns<mode>3): Ditto.
2894 (sse5_maskcmp_uns2<mode>3): Ditto.
2895 (sse5_pcom_tf<mode>3): Ditto.
2897 * config/i386/predicates.md (sse5_comparison_float_operator):
2898 New predicate to match the comparison operators supported by
2899 the SSE5 com instruction.
2900 (ix86_comparison_int_operator): New predicate to match just the
2901 signed int comparisons.
2902 (ix86_comparison_uns_operator): New predicate to match just the
2903 unsigned int comparisons.
2905 * doc/invoke.texi (-msse5): Add documentation.
2906 (-mfused-madd): Ditto.
2908 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
2910 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
2912 (x86_64-*-*): Ditto.
2914 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
2916 * config/i386/bmmintrin.h: New file, provide common x86 compiler
2917 intrinisics for SSE5.
2919 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
2922 * config/i386/mmintrin-common.h: New file, to contain common
2923 instructions between SSE4.1 and SSE5.
2925 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
2926 FOREACH_FUNCTION_ARGS to iterate over the argument list.
2927 (gen_regparm_prefix): Ditto.
2929 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
2930 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
2931 prototype_p to determine if a function is prototyped.
2933 2009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
2935 * c-common.c (c_common_reswords) add the alignof keyword,
2936 with same RID as __alignof and __alignof__
2938 2009-08-25 Anatoly Sokolov <aesok@post.ru>
2940 * hooks.h (hook_bool_const_int_const_int_true): Declare.
2941 * hooks.c (hook_bool_const_int_const_int_true): New function.
2942 * target.h (struct gcc_target): Add can_eliminate field.
2943 * target-def.h (TARGET_CAN_ELIMINATE): Define.
2944 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
2945 * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
2946 * reload1.c (update_eliminables, init_elim_table): (Ditto.).
2947 (elim_table): Revise comment.
2948 * system.h (CAN_ELIMINATE): Poison.
2949 * defaults.h (CAN_ELIMINATE): Remove.
2950 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
2952 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
2953 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
2955 (alpha_vms_can_eliminate): Declare as static, change return type to
2957 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
2959 * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
2960 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
2961 (arm_can_eliminate): New function.
2963 * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
2964 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
2965 (avr_can_eliminate): Declare as static.
2966 * config/avr/avr-protos.h (avr_can_eliminate): Remove.
2968 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
2969 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
2970 (bfin_can_eliminate): New function.
2972 * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
2973 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
2974 (crx_can_eliminate): New function.
2976 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
2977 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
2978 (fr30_can_eliminate): New function.
2980 * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
2981 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
2982 (frv_can_eliminate): New function.
2984 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
2985 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
2986 (h8300_can_eliminate): New function.
2988 * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
2989 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
2990 (i386_can_eliminate): Declare as static, change return type to bool.
2991 * config/i386/i386-protos.h (i386_can_eliminate): Remove.
2993 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
2994 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
2995 (ia64_can_eliminate): New function.
2997 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
2998 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
2999 (iq2000_can_eliminate): New function.
3001 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
3002 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
3003 (m32r_can_eliminate): New function.
3005 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
3006 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
3007 (m68hc11_can_eliminate): New function.
3009 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
3010 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
3011 (m68k_can_eliminate): New function.
3013 * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
3014 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
3015 (mep_can_eliminate): New function.
3017 * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
3018 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
3019 (mips_can_eliminate): New function.
3021 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
3022 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
3023 (rs6000_can_eliminate): New function.
3025 * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
3026 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
3027 (s390_can_eliminate): Declare as static.
3028 * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
3030 * config/score/score.h (CAN_ELIMINATE): Remove macro.
3031 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
3032 (score_can_eliminate): New function.
3034 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
3035 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
3036 (sparc_can_eliminate): Declare as static.
3037 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
3039 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
3040 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
3041 (xstormy16_can_eliminate): New function.
3043 * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
3044 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
3045 (v850_can_eliminate): New function.
3047 2009-08-25 Uros Bizjak <ubizjak@gmail.com>
3049 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
3050 (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
3051 (*movdfcc_ext[1234]): Disable for IEEE mode.
3053 2009-08-25 Eric Botcazou <ebotcazou@adacore.com>
3055 * gimplify.c (prepare_gimple_addressable): New static function.
3056 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
3058 (gimplify_addr_expr): Invoke it similarly on the operand instead of
3059 manually fiddling with it.
3061 2009-08-25 Michael Matz <matz@suse.de>
3063 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
3064 * dojump.c (do_jump_by_parts_greater): Take two operands instead of
3066 (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
3067 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
3068 (do_jump): Split out code for simple binary comparisons into ...
3069 (do_jump_1): ... this, taking the individual operands and code.
3070 Change callers to helper function above accordingly.
3071 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
3074 2009-08-25 Michael Matz <matz@suse.de>
3076 * expr.h (struct separate_ops, sepops): New type for passing
3077 around an exploded simple expression.
3078 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
3079 Use this structure instead of expression tree.
3080 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
3081 expression, only its type.
3082 (expand_vec_cond_expr): Take type and individual operands instead
3084 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
3085 expand_vec_shift_expr): Change prototype accordingly.
3086 * tree-vect-stmts.c (vectorizable_condition): Change call of
3087 expand_vec_cond_expr_p to pass only type.
3088 * expr.c (do_store_flags): Change prototype and implementation
3089 to take an exploded expression.
3090 (expand_expr_real_1): New local ops initialized with details
3091 of the full expression. Use it instead of full
3092 expression in calls to do_store_flags, expand_vec_cond_expr,
3093 expand_widen_pattern_expr and expand_vec_shift_expr.
3095 2009-08-25 Michael Matz <matz@suse.de>
3097 * expr.c (expand_expr_real_1): New local treeop0, treeop1,
3098 treeop2 initialized with first three operands of the full expression.
3099 Substitute all TREE_OPERAND (exp, [012]) calls with them.
3101 2009-08-25 Kai Tietz <kai.tietz@onevision.com>
3103 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
3104 (__gthread_objc_condition_allocate): Mark arguments as unused.
3105 (__gthread_objc_condition_deallocate): Likewise.
3106 (__gthread_objc_condition_wait): Likewise.
3107 (__gthread_objc_condition_broadcast): Likewise.
3108 (__gthread_objc_condition_signal): Likewise.
3109 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
3110 (__gthread_objc_thread_id): Likewise.
3112 2009-08-25 Janus Weil <janus@gcc.gnu.org>
3115 * tree-pretty-print.c (print_call_name): Print the correct call name
3116 for procedure pointer components.
3118 2009-08-24 Steve Ellcey <sje@cup.hp.com>
3120 * config/ia64/ia64.c (ia64_promote_function_mode): Call
3121 default_promote_function_mode when not VMS.
3123 2009-08-24 Olivier Hainque <hainque@adacore.com>
3125 * convert.c (convert_to_integer): Don't assume an input pointer is
3126 POINTER_SIZE wide. Fetch from the type instead.
3128 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3130 * configure.ac (AC_PREREQ): Bump to 2.64.
3132 2009-08-24 Rafael Avila de Espindola <espindola@google.com>
3134 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
3135 (process_command): Don't search standard_exec_prefix_1 and
3136 standard_exec_prefix_2.
3138 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3140 * config/arm/arm.c (output_return_instruction): Handle for
3143 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3145 * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
3147 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3149 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
3150 (*arm_movdf_vfp): Likewise.
3152 2009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3154 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
3155 (vashr<mode>3): Rename from ashr<mode>3.
3156 (vlshr<mode>3): Rename from lshr<mode>3.
3158 2009-08-24 Kai Tietz <kai.tietz@onevision.com>
3161 * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
3162 (check_format_info_main): Use scalar_identify_flag.
3163 (check_format_types): Check for scalar size identity if
3164 scalar_identify_flag is set.
3165 (printf_length_specs): Extend by new field.
3166 (asm_fprintf_length_specs): Likewise.
3167 (gcc_diag_length_specs): Likewise.
3168 (scanf_length_specs): Likewise.
3169 (strfmon_length_specs): Likewise.
3170 (gcc_gfc_length_specs): Likewise.
3171 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
3172 (ms_printf_flag_specs): Likewise.
3173 * c-format.h (format_length_info): Add new member scalar_identity_flag.
3175 2009-08-23 Uros Bizjak <ubizjak@gmail.com>
3178 * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
3179 (*call_value_pop_1): Ditto.
3180 (*sibcall_pop_1): New insn pattern.
3181 (*sibcall_value_pop_1): Ditto.
3183 2009-08-23 Alan Modra <amodra@bigpond.net.au>
3186 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
3189 2009-08-23 Alan Modra <amodra@bigpond.net.au>
3192 * fwprop.c (try_fwprop_subst): Allow multiple sets.
3193 (get_reg_use_in): New function.
3194 (forward_propagate_subreg): Propagate through subreg of zero_extend
3197 2009-08-22 Kaz Kojima <kkojima@gcc.gnu.org>
3199 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
3200 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
3202 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3204 * configure.ac: Remove --with-datarootdir, --with-docdir,
3205 --with-htmldir switches. No need to call AC_SUBST for
3206 datarootdir, docdir, htmldir any more.
3207 * configure: Regenerate.
3208 * doc/install.texi (Configuration): Document --datarootdir,
3209 --docdir, --htmldir, --pdfdir; update documentation for
3210 --infodir, --mandir.
3211 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
3214 * aclocal.m4: Regenerate.
3215 * config.in: Regenerate.
3216 * configure: Regenerate.
3218 2009-08-21 Douglas B Rupp <rupp@gnat.com>
3219 Olivier Hainque <hainque@adacore.com>
3221 * config/ia64/ia64.c: Include libfuncs.h.
3222 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
3223 (ia64_expand_call): Use reg 25 on VMS.
3224 (ia64_initialize_trampoline): Fix for VMS ABI.
3225 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
3226 (ia64_function_arg): Initialize reg 25 on VMS.
3227 Fix OpenVMS ABI issues for varargs.
3228 For OpenVMS, emit the Argument Information register set in the
3229 incoming/sibcall case as well.
3230 (ia64_arg_type): New function.
3231 (ia64_function_arg_advance): Keep track of cum->words.
3232 Fix OpenVMS ABI issues for varargs.
3233 (ia64_function_value): On VMS, promote mode of non-aggregate types.
3234 (ia64_override_options): Set flag_no_common on VMS.
3235 (ia64_init_builtins): Disable FWRITE builtin.
3236 (ia64_asm_output_external): Call DO_CRTL_NAMES.
3237 (ia64_vms_init_libfuncs): Add decc$ routines.
3238 (ia64_vms_valid_pointer_mode): New function.
3239 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
3240 (ia64_promote_function_mode): New function
3241 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
3242 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
3243 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
3244 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
3245 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
3246 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
3247 Suppress trailing '#' if VALUE is numeric.
3248 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
3249 ia64_promote_function_mode.
3250 (TARGET_VALID_POINTER_MODE): Define.
3252 2009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3255 * config/rs6000/rs6000.c (rs6000_override_options): Use
3256 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
3259 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
3260 reporting of vector + decimal/boolean/complex error.
3262 2009-08-21 Jakub Jelinek <jakub@redhat.com>
3264 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
3265 __vector double TYPE_DECL.
3267 2009-08-21 Richard Earnshaw <rearnsha@arm.com>
3269 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
3270 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
3271 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
3272 to pointer to enum machine_mode. Update all callers as needed.
3274 2009-08-21 Uros Bizjak <ubizjak@gmail.com>
3276 * config/alpha/alpha.md (exception_receiver): Emit alternative
3277 GP load sequence if flag_reorder_blocks_and_partition is set.
3278 (*exception_receiver_2): Also enable when
3279 flag_reorder_blocks_and_partition is set.
3281 2009-08-20 Matt Rice <ratmice@gmail.com>
3282 Diego Novillo <dnovillo@google.com>
3284 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
3287 2009-08-20 Richard Guenther <rguenther@suse.de>
3289 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
3290 * c-tree.h (c_dup_lang_specific_decl): Remove.
3291 (struct lang_decl, struct lang_type): Move definitions ...
3292 * c-lang.h: ... here. New file.
3293 * c-decl.c: Include c-lang.h.
3294 (c_dup_lang_specific_decl): Remove.
3295 * c-typeck.c: Include c-lang.h.
3296 * Makefile.in (c-decl.o): Add c-lang.h dependency.
3297 (c-typeck.o): Likewise.
3298 * c-config-lang.in (gtfiles): Add c-lang.h.
3299 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
3302 2009-08-20 Uros Bizjak <ubizjak@gmail.com>
3304 * config/alpha/alpha.c (alpha_end_function): Do not clear
3305 crtl->emit structure and free insn locators if cfun->is_thunk is true,
3306 this is now handled in generic code.
3308 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
3310 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
3311 (s390_z10_fix_long_loop_prediction): New function.
3312 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
3313 (s390_reorg): Walk over the INSNs and invoke
3314 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
3316 2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
3318 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
3319 "*brx_64bit", "*brx_31bit"): New patterns.
3320 * config/s390/s390.c ('E'): New output modifier.
3322 2009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3323 Richard Earnshaw <richard.earnshaw@arm.com>
3325 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
3326 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
3328 2009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3330 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
3332 * pa.c (emit_move_sequence): Check if address of operand1 is valid
3333 for mode mode of operand0 when doing secondary reload for SAR.
3335 2009-08-19 Jakub Jelinek <jakub@redhat.com>
3338 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
3339 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
3341 2009-08-19 Jason Merrill <jason@redhat.com>
3343 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
3344 supported template depth in C++0x.
3346 2009-08-19 Jakub Jelinek <jakub@redhat.com>
3348 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
3349 free_after_compilation.
3350 * config/score/score7.c (score7_output_mi_thunk): Likewise.
3351 * config/score/score3.c (score3_output_mi_thunk): Likewise.
3352 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3353 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
3354 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3355 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3356 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3358 2009-08-19 Ian Lance Taylor <iant@google.com>
3360 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
3361 of (plus (mult (neg B) C) A).
3363 2009-08-18 Michael Matz <matz@suse.de>
3365 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
3366 instead of comparing TYPE_MAIN_VARIANT for equality.
3367 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
3368 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
3369 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
3370 * gimplify.c (goa_lhs_expr_p): Ditto and use
3371 STRIP_USELESS_TYPE_CONVERSION.
3373 2009-08-18 Michael Matz <matz@suse.de>
3375 * tree-ssa-structalias.c (create_variable_info_for): Also mark
3376 first field in a struct.
3377 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
3379 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
3381 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
3382 locators before emit_insn is called. Remove assert that