1 2009-11-17 Jan Hubicka <jh@suse.cz>
3 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
5 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
7 2009-11-17 Uros Bizjak <ubizjak@gmail.com>
9 * config/i386/predicates.md (x86_64_szext_general_operand): Do not
11 (x86_64_szext_nonmemory_operand): Ditto.
12 (call_insn_operand): Ditto.
14 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
16 * stmt.c (expand_asm_stmt): Get locus from stmt.
18 2009-11-16 Alexandre Oliva <aoliva@redhat.com>
20 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
21 Create the decl label for the new dest block on demand. Require
22 a fallthrough edge if no asm labels were redirected.
24 2009-11-16 Uros Bizjak <ubizjak@gmail.com>
26 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
28 (cstoresi4): Ditto for operand 2.
29 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
30 patterns using SDWIM mode iterator.
31 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
32 using SWIM mode iterator.
33 (cmpdi_1): Rename from cmpdi_1_rex64.
34 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
36 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn using SWI
38 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
39 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
40 (*cmpqi_ext_3_insn): Make private.
41 (*cmpqi_ext_3_insn_rex64): Make private.
42 (cmpstrnsi): Update for renamed cmpdi_1_rex64.
43 * config/i386/predicates.md (cmpsi_operand): Remove.
45 2009-11-16 Paul Brook <paul@codesourcery.com>
47 * doc/invoke.texi: Document ARM VFPv4 based FPUs.
48 * config/arm/arm.c (all_fpus): Add VFPv4 entries.
50 2009-11-14 Jan Hubicka <jh@suse.cz>
52 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
54 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
56 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
57 frequency and count match.
58 * ipa-inline.c (update_noncloned_frequencies): New function.
59 (cgraph_clone_inlined_nodes): Use it.
60 * tree-inline.c (copy_bb): Fix frequency scaling; output
61 diagnostic on frequency mismatches to dump file.
62 (initialize_cfun): Do not scale frequency; fix count scaling;
63 initialize entry and exit block frequencies; copy profile info.
64 (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
65 (copy_body): Use frequency_scale as argument.
66 (expand_call_inline): Compute frequency scale and output diagnostic
68 (delete_unreachable_blocks_update_callgrah): Remove checking that
69 has to be done after edge redirection.
70 (tree_function_versioning): Update initialize_cfun and copy_body call.
72 2009-11-14 Jan Hubicka <jh@suse.cz>
74 * cgraph.c (cgraph_release_function_body): Update use of
75 ipa_transforms_to_apply.
76 (cgraph_remove_node): Remove ipa_transforms_to_apply.
77 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
78 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
80 (cgraph_materialize_clone): Remove original if dead.
81 * lto-streamer-in.c (lto_read_body): Remove FIXME and
82 ipa_transforms_to_apply hack.
83 * function.h (struct function): Add ipa_transforms_to_apply.
84 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
85 * tree-inline.c (copy_bb): Update sanity check.
86 (initialize_cfun): Do not copy ipa_transforms_to_apply.
87 (expand_call_inline): remove dead clone originals.
88 (tree_function_versioning): Merge transformation queues.
89 * passes.c (add_ipa_transform_pass): Remove.
90 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
92 (execute_all_ipa_transforms): Update.
93 (execute_one_pass): Update.
95 2009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
97 PR target/21078, 21080
98 * config/avr/avr.c (avr_return_addr_rtx): New function for
99 builtin_return_address.
100 (expand_prologue): Calculate stack usage.
101 (avr_asm_function_end_prologue): Output stack size and offset label.
102 * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
103 (machine_function): Add stack_usage.
104 * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
106 2009-11-14 Anatoly Sokolov <aesok@post.ru>
108 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
109 new 'outgoing' argument.
110 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
111 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
112 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
113 iq2000_function_value_regno_p.
114 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
115 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
118 2009-11-14 Richard Earnshaw <rearnsha@arm.com>
121 * arm.md (adddi_sesidi_di): Place tied contraint first.
122 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
123 (subdi_zesidi_di, subdi_sesidi_di): Likewise.
124 (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
125 (mulsi3addsi, mulsi3addsi_compare0): Likewise.
126 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
127 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
128 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
129 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
130 (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
132 2009-11-14 Uros Bizjak <ubizjak@gmail.com>
134 * config/i386/predicates.md (call_register_no_elim_operand):
135 New predicate. Reject stack register as valid call operand
137 (call_insn_operand): Use call_register_no_elim_operand.
139 2009-11-13 Richard Henderson <rth@redhat.com>
141 * function.c (stack_protect_prologue): Don't bypass expand_expr
142 for stack_protect_guard and guard_decl.
143 (stack_protect_epilogue): Likewise.
145 2009-11-13 Jan Hubicka <jh@suse.cz>
147 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
148 when to PUBLIC is set.
150 2009-11-13 Jakub Jelinek <jakub@redhat.com>
153 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
156 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
159 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
160 *call_value_1): Use "lsm" as operand 1 constraint.
161 * config/i386/predicates.md (call_insn_operand): Depend on
162 index_register_operand to avoid %esp register.
164 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
167 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
170 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
171 (TARGET_CALL_ESP): New define.
172 * config/i386/i386.c (initial_ix86_tune_features): Initialize
174 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
175 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
176 *call_1, *call_value_pop_1 and *call_value_1. Depend on
178 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
179 New patterns, use "lsm" as operand 1 constraint.
180 * config/i386/predicates.md (call_insn_operand): Depend on
181 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
183 2009-11-13 Jason Merrill <jason@redhat.com>
186 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
187 Don't emit a second declaration at any scope.
189 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
191 PR rtl-optimization/41697
192 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
193 a conditional jump has a single successor.
195 2009-11-13 Andrey Belevantsev <abel@ispras.ru>
197 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't
198 allocate reg_last when in case lazy_reg_last is true.
199 (init_deps_reg_last): New.
200 (free_deps): When max_reg is 0, this context is already freed.
201 * sched-int.h (init_deps_reg_last): Export.
202 (init_deps): Update prototype.
203 * sched-ebb.c (schedule_ebb): Update the call to init_deps.
204 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
205 * ddg.c (build_intra_loop_deps): Likewise.
206 * sel-sched-ir.c (copy_deps_context, create_deps_context,
207 reset_deps_context, deps_init_id): Likewise.
208 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
209 (free_data_for_scheduled_insn): New, break down from ...
210 (free_first_time_insn_data): ... here.
211 (has_dependence_p): Allocate reg_last now, when it is needed.
212 (extend_insn_data): When maximal LUID is big enough, allocate
213 per-insn data in smaller chunks.
214 * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
215 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
218 2009-11-13 Uros Bizjak <ubizjak@gmail.com>
220 * config/i386/i386.md (call_value): Fix comment.
221 (sibcall_value): Ditto.
223 2009-11-13 Eric Botcazou <ebotcazou@adacore.com>
225 * config/i386/linux-unwind.h (x86_frob_update_context): New function.
226 (MD_FROB_UPDATE_CONTEXT): Define.
228 2009-11-12 Eric Botcazou <ebotcazou@adacore.com>
229 Laurent GUERBY <laurent@guerby.net>
231 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
232 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET.
233 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET.
235 2009-11-12 Jan Hubicka <jh@suse.cz>
237 * ipa.c (function_and_variable_visibility): Fix my accidentail commit
238 and clear DECL_COMMON on localized declarations.
240 2009-11-12 Bernd Schmidt <bernd.schmidt@analog.com>
243 * regrename.c (struct du_head): New structure; some elements moved
245 (struct du_chain): ... this one.
246 (open_chains, closed_chains): Now of type struct du_head *.
247 (do_replace): Accept du_head argument, not du_chain. All callers
248 changed. Modified code to match new data structures.
249 (build_def_use): Return a list of du_head structures. Modified code
250 to match new data structures.
251 (dump_def_use_chain): Accept du_head argument, not du_chain. All
252 callers changed. Modified code to match new data structures.
253 (merge_overlapping_regs): Accept du_head argument, not du_chain. All
254 callers changed. Modified code to match new data structures.
255 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
256 Allocate a du_head structure as well as a du_chain when creating a
257 new chain. Modified other code to match new data structures.
259 2009-11-12 Jan Hubicka <jh@suse.cz>
261 * cgraph.h (varpool_node_name): Declare.
262 * cgraphunit.c (process_function_and_variable_attributes): Set
263 force_output flag on used variables.
264 * ipa.c (function_and_variable_visibility): Dump externally visible
265 and needed variables.
266 * varpool.c (varpool_node_name): Export.
267 (decide_is_variable_needed): Check COMDAT for externally visible vars;
270 2009-11-12 Uros Bizjak <ubizjak@gmail.com>
273 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
274 processing if XEXP (x, i) is NULL.
276 2009-11-12 Jan Hubicka <jh@suse.cz>
278 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
279 imply PUBLIC || EXTERNAL.
281 2009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
284 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
285 single successor block, ending with jump created by RTL expander.
287 2009-11-11 Jan Hubicka <jh@suse.cz>
290 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
291 and WEAK variables at -fwhole-program.
294 * ipa.c (whole_program_function_and_variable_visility): COMDAT
295 functions/variables are not needed even if they are externally visible.
297 2009-11-11 Jan Hubicka <jh@suse.cz>
299 (patch by Richard Guenther)
300 * lto-streamer-out.c (output_function): Output head of argument list
302 * lto-streamer-in.c (input_function): Re-map arguments into merged
305 2009-11-11 Jan Hubicka <jh@suse.cz>
307 * lto-cgraph.c: Include gcov-io.h
308 (output_profile_summary): New function.
309 (output_cgraph): Use it.
310 (input_profile_summary): New function.
311 (input_cgraph): Use it.
312 * coverage.c (build_ctr_info_value): Use varpool; initalize
314 (create_coverage): Likewise.
315 * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
316 (tree_init_edge_profiler): Likewise.
317 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
319 2009-11-11 Kai Tietz <kai.tietz@onevision.com>
321 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
322 * c-pragma.c (def_pragma_macro_value): Likewise.
323 (def_pragma_macro): Likewise.
324 (pushed_macro_table): Likewise.
325 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
326 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
328 2009-11-11 Basile Starynkevitch <basile@starynkevitch.net>
330 * doc/plugins.texi (Registering custom attributes): section
331 renamed as (Registering custom attributes or pragmas).
332 Mentions custom attributes & pragmas, and c_register_pragma, with
334 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
336 * doc/extend.texi (Function Attributes): Mentions that plugin can
337 provide their attributes.
339 2009-11-11 Jon Beniston <jon@beniston.com>
341 * config.gcc: Add lm32 elf and uclinux targets.
342 * config/lm32: New directory.
343 * config/lm32/lm32.c: New file.
344 * config/lm32/lm32.h: New file.
345 * config/lm32/lm32.md: New file.
346 * config/lm32/lm32.opt: New file.
347 * config/lm32/lm32-protos.h: New file.
348 * config/lm32/constraints.md: New file.
349 * config/lm32/predicates.md: New file.
350 * config/lm32/sfp-machine.h: New file.
351 * config/lm32/t-fprules-softfp: New file.
352 * config/lm32/uclinux-elf.h: New file.
353 * doc/invoke.texi: Document lm32 options.
354 * doc/contrib.texi: Document lm32 porter.
355 * doc/install.texi: Document lm32 targets.
357 2009-11-11 Martin Jambor <mjambor@suse.cz>
360 * ipa-prop.c (ipa_update_after_lto_read): Call
361 ipa_check_create_node_params and ipa_check_create_edge_args. Also
362 call ipa_initialize_node_params instead of ipa_populate_param_decls.
364 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
366 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
367 (neon_expand_vector_init): Use them. Also handle non-constant
368 vectors with identical elements and vectors with only one
369 non-constant element.
370 (arm_print_operand): Handle 'y' modifier.
371 * config/arm/arm-protos.h (neon_make_constant): Declare.
372 * config/arm/neon.md (neon_vdup_n<mode>): Split into two
373 patterns. Use VX instead of VDQW for the first one. Allow
374 a VFP alternative and V32 modes for the second one.
375 * config/arm/neon.ml (shape_elt): Add Alternatives.
376 (ops): Use Alternatives for vdup lane instructions.
377 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
378 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
380 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
382 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
384 (movti, mov<mode>): Call force_reg on one operand if required.
385 * config/arm/vec-common.md (mov<mode>): Likewise.
387 2009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
389 * config/arm/arm.c (arm_override_options): Enable scheduling for
392 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
396 * expr.h (anti_adjust_stack_and_probe): Declare.
397 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
398 parameter and rewrite head comment.
399 (allocate_dynamic_stack_space): Adjust call to above function.
400 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
402 * tree.h (dwarf2out_args_size): Delete.
403 * dwarf2out.c (dwarf2out_args_size): Make static and move around.
404 (dwarf2out_args_size_adjust): Delete prototype and move around.
405 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
406 ACCUMULATE_OUTGOING_ARGS targets.
408 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
410 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
411 DECL_SIZE of DECL_RESULT before evaluating it.
413 2009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
415 PR tree-optimization/41987
416 * fold-const.c (const_binop): Avoid using fold_buildN().
418 2009-11-10 Martin Jambor <mjambor@suse.cz>
420 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
421 (execute_all_ipa_stmt_fixups): Declare.
422 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
423 * ipa-inline.c (pass_ipa_inline): Likewise.
424 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
425 * ipa-reference.c (pass_ipa_reference): Likewise.
426 * ipa.c (pass_ipa_whole_program_visibility): Likewise.
427 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
428 (pass_ipa_lto_finish_out): Likewise.
429 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
430 * passes.c (execute_ipa_stmt_fixups): New function.
431 (execute_all_ipa_stmt_fixups): New function.
432 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
434 2009-11-10 Eric Botcazou <ebotcazou@adacore.com>
437 * explow.c (probe_stack_range): Fix typo.
438 * config/sparc/sparc.md (probe_stack): New expander.
440 2009-11-09 Dave Korn <dave.korn.cygwin@gmail.com>
442 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
444 2009-11-09 Jason Merrill <jason@redhat.com>
446 * gdbinit.in (pgq): New function for printing gimple sequence.
448 2009-11-09 Paul Brook <paul@codesourcery.com>
449 Daniel Jacobowitz <dan@codesourcery.com>
450 Sandra Loosemore <sandra@codesourcery.com>
452 * doc/extend.texi (Half-Precision): Update wording to reflect
453 that there are now multiple -mfpu options that enable fp16
455 * doc/invoke.texi: Update list of ARM -mfpu= options.
456 * config.gcc: Update ARM --with-fpu option list.
457 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
458 vfpv3xd and vfpv3xd-fp16.
459 (use_vfp_abi): New function.
460 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
462 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
463 aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
464 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
465 arm_9e_rtx_costs): Only expect double-precision operations if the FPU
467 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
469 (arm_print_operand): Handle 'p' modifier.
470 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
472 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
473 (TARGET_FP16): Define.
474 * config/arm/vfp.md: Disable double-precision patterns if the FPU
475 does not provide them.
476 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
477 double-precision values on a single-precision FPU.
478 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for
479 double-precision constants.
480 (movhf_vfp_neon): New pattern (was movhf_vfp).
481 (movhf_vfp): Remove NEON instructions.
482 * config/arm/constraints.md: Add new "Dy" constraint for
483 double-precision constants. Update description of "Dv".
484 * config/arm/arm.md: Disable double-precision patterns if the FPU
485 does not provide them
487 2009-11-09 Jakub Jelinek <jakub@redhat.com>
489 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
490 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage
493 2009-11-08 H.J. Lu <hongjiu.lu@intel.com>
495 * collect2.c (main): Search PLUGIN_LD for plugin linker.
497 * configure.ac (--with-plugin-ld): New. Default to ld.
498 * configure: Regenerated.
499 * config.in: Likewise.
501 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
502 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
504 2009-11-08 Jonathan Gray <jsg@openbsd.org>
506 * config/openbsd-stdint.h: Change to reflect what
507 c_common_nodes_and_builtins expects.
509 2009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
511 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
513 2009-11-08 Jakub Jelinek <jakub@redhat.com>
516 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
517 function contains at least one local dynamic name.
518 (print_operand) <case '&'>: Instead output operand lossage diagnostics
519 here if that happens.
521 2009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
522 Joern Rennecke <amylaar@spamcop.net>
524 * cfgrtl.c (pass_free_cfg): Add pass name.
525 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
526 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
527 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
528 * df-core.c (pass_df_initialize_no_opt): Likewise.
529 * except.c (pass_rtl_eh): Likewise.
530 * function.c (pass_init_function, pass_leaf_regs): Likewise.
531 * gcse.c (pass_rtl_pre): Change pass name.
532 * passes.c (pass_postreload): Add pass name.
533 (make_pass_instance): Don't use duplicate-tracking logic for
534 names starting with '*'.
535 (next_pass_1): Assert that pass has a name.
536 (register_one_dump_file): If there is an space in the name,
538 * predict.c (pass_strip_predict_hints): Add pass name.
539 * reg-stack.c (pass_stack_regs): Likewise.
540 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
541 * tree-cfg.c (pass_warn_function_return,
542 pass_warn_function_noreturn): Add pass name.
543 * tree-dfa.c (pass_referenced_vars): Likewise.
544 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
545 Fix whitespace before comment.
546 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
547 (pass_init_datastructures): Add pass name.
548 * tree-ssa-loop.c (pass_record_bounds): Likewise.
549 * tree-ssa.c (pass_early_warn_uninitialized,
550 pass_late_warn_uninitialized): Likewise.
551 * tree.c (pass_ipa_free_lang_data): Likewise.
552 * doc/passes.texi (pass manager): Document how to disambiguate
555 2009-11-08 Paolo Bonzini <bonzini@gnu.org>
557 * df-problems.c: Fix documentation for forward simulation of LR.
558 (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
559 (df_simulate_finalize_forwards): Remove.
560 * df.h (df_simulate_finalize_forwards): Remove.
562 2009-11-08 Richard Guenther <rguenther@suse.de>
564 * tree-ssa-structalias.c (build_succ_graph): Properly make
565 variables escape if they are stored to anything.
567 2009-11-08 Richard Guenther <rguenther@suse.de>
569 PR rtl-optimization/41928
570 * loop-invariant.c (free_loop_data): If we didn't allocate
571 loop data do not try to free it.
573 2009-11-07 Jason Merrill <jason@redhat.com>
575 * tree.c (reconstruct_complex_type): Preserve attributes.
577 2009-11-07 Richard Guenther <rguenther@suse.de>
579 * tree-ssa-structalias.c (build_succ_graph): Feed stores
580 to anything only to variables that can take pointers.
581 (get_constraint_for_ssa_var): Properly exclude full
582 variables from expanding.
583 (first_vi_for_offset): Avoid overflow in arithmetic.
584 (first_or_preceding_vi_for_offset): Likewise.
585 (count_num_arguments): Fix implementation.
586 (gate_ipa_pta): Do not run when not optimizing.
588 2009-11-07 David Binderman <dcb314@hotmail.com>
590 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
591 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
592 set but not used variables.
593 (apply_args_reg_offset): Comment out as unused.
594 * calls.c (flags_from_decl_or_type): Likewise.
595 * genautomata.c (check_regexp_units_distribution): Likewise.
597 2009-11-07 Uros Bizjak <ubizjak@gmail.com>
599 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
600 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
601 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
602 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
603 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
604 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
605 operand alternatives.
607 2009-11-06 Michael Matz <matz@suse.de>
610 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
611 of a potential reciprocal to really be reciprocals.
613 2009-11-06 Jakub Jelinek <jakub@redhat.com>
615 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
616 lwpintrin.h after immintrin.h.
617 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
621 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
622 or non-constant index, allow index one past the last element and
623 allow exceeding array bound in arrays that might be used as flexible
626 2009-11-05 Richard Henderson <rth@redhat.com>
628 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
630 2009-11-05 Paul Brook <paul@codesourcery.com>
632 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
634 (all_fpus): Add FPU details.
635 (fp_model_for_fpu): Remove.
636 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
637 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
638 (arm_file_start): Use arm_fpu_desc.
639 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
640 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
642 (TARGET_FPA_EMU2): Define.
643 (arm_fp_model, fputype, arm_fpu_tune): Remove.
644 (vfp_reg_type, arm_fpu_desc): New.
645 * config/arm/arm.md (attr fpu): Simplify.
646 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
647 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
648 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
649 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
650 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
652 2009-11-05 Michael Matz <matz@suse.de>
654 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
656 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
659 2009-11-04 Jason Merrill <jason@redhat.com>
662 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
663 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
664 (output_constant): Avoid crash after error.
666 2009-11-05 Martin Jambor <mjambor@suse.cz>
668 * tree-sra.c (struct access): Changed comment of next_sibling field.
669 (analyze_modified_params): Loop over accesses of a group rather than
670 over all with the ame base, pass a common bitmap to
672 (unmodified_by_ref_scalar_representative): Build link lists of
674 (splice_param_accesses): Likewise.
676 2009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
678 * df-scan.c (df-uses-record): Add case zero_extract of mem.
680 2009-11-04 Eric Botcazou <ebotcazou@adacore.com>
684 * config/i386/i386.md (probe_stack): New expander.
685 (logical operation peepholes): Do not split stack checking probes.
687 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
688 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
690 * doc/invoke.texi (-mlwp): Add documentation.
691 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
692 * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
694 * config/i386/lwpintrin.h: New file, provide x86 compiler
696 * config/i386/cpuid.h (bit_LWP): Define LWP bit.
697 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
698 * config/i386/i386-c.c (ix86_target_macros_internal): Check
700 * config/i386/i386.h (TARGET_LWP): New macro for LWP.
701 * config/i386/i386.opt (-mlwp): New switch for LWP support.
702 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
703 (OPTION_MASK_ISA_LWP_UNSET): New.
704 (ix86_handle_option): Handle -mlwp.
705 (isa_opts): Handle -mlwp.
706 (enum pta_flags): Add PTA_LWP.
707 (override_options): Add LWP support.
708 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
709 (IX86_BUILTIN_LLWPCB32): Ditto.
710 (IX86_BUILTIN_LLWPCB64): Ditto.
711 (IX86_BUILTIN_SLWPCB16): Ditto.
712 (IX86_BUILTIN_SLWPCB32): Ditto.
713 (IX86_BUILTIN_SLWPCB64): Ditto.
714 (IX86_BUILTIN_LWPVAL16): Ditto.
715 (IX86_BUILTIN_LWPVAL32): Ditto.
716 (IX86_BUILTIN_LWPVAL64): Ditto.
717 (IX86_BUILTIN_LWPINS16): Ditto.
718 (IX86_BUILTIN_LWPINS32): Ditto.
719 (IX86_BUILTIN_LWPINS64): Ditto.
720 (enum ix86_special_builtin_type): Add LWP intrinsic support.
721 (builtin_description): Ditto.
722 (ix86_init_mmx_sse_builtins): Ditto.
723 (ix86_expand_special_args_builtin): Ditto.
724 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
726 (UNSPEC_SLWP_INTRINSIC): Ditto.
727 (UNSPECV_LWPVAL_INTRINSIC): Ditto.
728 (UNSPECV_LWPINS_INTRINSIC): Ditto.
729 (lwp_llwpcbhi1): New lwp pattern.
730 (lwp_llwpcbsi1): Ditto.
731 (lwp_llwpcbdi1): Ditto.
732 (lwp_slwpcbhi1): Ditto.
733 (lwp_slwpcbsi1): Ditto.
734 (lwp_slwpcbdi1): Ditto.
735 (lwp_lwpvalhi3): Ditto.
736 (lwp_lwpvalsi3): Ditto.
737 (lwp_lwpvaldi3): Ditto.
738 (lwp_lwpinshi3): Ditto.
739 (lwp_lwpinssi3): Ditto.
740 (lwp_lwpinsdi3): Ditto.
742 2009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
743 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
746 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
749 2009-11-04 Richard Guenther <rguenther@suse.de>
750 Rafael Avila de Espindola <espindola@google.com>
752 * gcc.c (process_command): Handle arguments name@offset.
754 2009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
755 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
757 * config.gcc (i[34567]86-*-*): Include xopintrin.h.
759 * config/i386/xopintrin.h: New file, provide common x86 compiler
761 * config/i386/cpuid.h (bit_XOP): Define XOP bit.
762 * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
763 * config/i386/i386-c.c(ix86_target_macros_internal): Check
765 * config/i386/i386.h(TARGET_XOP): New macro for XOP.
766 * config/i386/i386.opt (-mxop): New switch for XOP support.
767 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
768 (UNSPEC_XOP_TRUEFALSE)
770 (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
771 (PPERM_*): New constants for vpperm instruction.
772 (xop_pcmov_<mode>): Add XOP conditional mov instructions.
773 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
774 (OPTION_MASK_ISA_XOP_UNSET): New.
775 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
776 (ix86_handle_option): Handle -mxop.
777 (isa_opts): Handle -mxop.
778 (enum pta_flags): Add PTA_XOP.
779 (override_options): Add XOP support.
780 (print_operand): Add code for XOP compare instructions.
781 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
782 (ix86_expand_int_vcond): Extend for XOP compare instruction.
784 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
785 (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
786 (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
787 (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
788 (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
789 (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
790 (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
792 (IX86_BUILTIN_VPCMOV256): Ditto.
793 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
794 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
795 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
796 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
797 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
798 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
800 (IX86_BUILTIN_VPPERM): Ditto.
802 (IX86_BUILTIN_VPMACSSWW): Ditto.
803 (IX86_BUILTIN_VPMACSWW): Ditto.
804 (IX86_BUILTIN_VPMACSSWD): Ditto.
805 (IX86_BUILTIN_VPMACSWD): Ditto.
806 (IX86_BUILTIN_VPMACSSDD): Ditto.
807 (IX86_BUILTIN_VPMACSDD): Ditto.
808 (IX86_BUILTIN_VPMACSSDQL): Ditto.
809 (IX86_BUILTIN_VPMACSSDQH): Ditto.
810 (IX86_BUILTIN_VPMACSDQL): Ditto.
811 (IX86_BUILTIN_VPMACSDQH): Ditto.
812 (IX86_BUILTIN_VPMADCSSWD): Ditto.
813 (IX86_BUILTIN_VPMADCSWD): Ditto.
815 (IX86_BUILTIN_VPHADDBW): Ditto.
816 (IX86_BUILTIN_VPHADDBD): Ditto.
817 (IX86_BUILTIN_VPHADDBQ): Ditto.
818 (IX86_BUILTIN_VPHADDWD): Ditto.
819 (IX86_BUILTIN_VPHADDWQ): Ditto.
820 (IX86_BUILTIN_VPHADDDQ): Ditto.
821 (IX86_BUILTIN_VPHADDUBW): Ditto.
822 (IX86_BUILTIN_VPHADDUBD): Ditto.
823 (IX86_BUILTIN_VPHADDUBQ): Ditto.
824 (IX86_BUILTIN_VPHADDUWD): Ditto.
825 (IX86_BUILTIN_VPHADDUWQ): Ditto.
826 (IX86_BUILTIN_VPHADDUDQ): Ditto.
827 (IX86_BUILTIN_VPHSUBBW): Ditto.
828 (IX86_BUILTIN_VPHSUBWD): Ditto.
829 (IX86_BUILTIN_VPHSUBDQ): Ditto.
831 (IX86_BUILTIN_VPROTB): Ditto.
832 (IX86_BUILTIN_VPROTW): Ditto.
833 (IX86_BUILTIN_VPROTD): Ditto.
834 (IX86_BUILTIN_VPROTQ): Ditto.
835 (IX86_BUILTIN_VPROTB_IMM): Ditto.
836 (IX86_BUILTIN_VPROTW_IMM): Ditto.
837 (IX86_BUILTIN_VPROTD_IMM): Ditto.
838 (IX86_BUILTIN_VPROTQ_IMM): Ditto.
840 (IX86_BUILTIN_VPSHLB): Ditto.
841 (IX86_BUILTIN_VPSHLW): Ditto.
842 (IX86_BUILTIN_VPSHLD): Ditto.
843 (IX86_BUILTIN_VPSHLQ): Ditto.
844 (IX86_BUILTIN_VPSHAB): Ditto.
845 (IX86_BUILTIN_VPSHAW): Ditto.
846 (IX86_BUILTIN_VPSHAD): Ditto.
847 (IX86_BUILTIN_VPSHAQ): Ditto.
849 (IX86_BUILTIN_VFRCZSS): Ditto.
850 (IX86_BUILTIN_VFRCZSD): Ditto.
851 (IX86_BUILTIN_VFRCZPS): Ditto.
852 (IX86_BUILTIN_VFRCZPD): Ditto.
853 (IX86_BUILTIN_VFRCZPS256): Ditto.
854 (IX86_BUILTIN_VFRCZPD256): Ditto.
856 (IX86_BUILTIN_VPCOMEQUB): Ditto.
857 (IX86_BUILTIN_VPCOMNEUB): Ditto.
858 (IX86_BUILTIN_VPCOMLTUB): Ditto.
859 (IX86_BUILTIN_VPCOMLEUB): Ditto.
860 (IX86_BUILTIN_VPCOMGTUB): Ditto.
861 (IX86_BUILTIN_VPCOMGEUB): Ditto.
862 (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
863 (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
865 (IX86_BUILTIN_VPCOMEQUW): Ditto.
866 (IX86_BUILTIN_VPCOMNEUW): Ditto.
867 (IX86_BUILTIN_VPCOMLTUW): Ditto.
868 (IX86_BUILTIN_VPCOMLEUW): Ditto.
869 (IX86_BUILTIN_VPCOMGTUW): Ditto.
870 (IX86_BUILTIN_VPCOMGEUW): Ditto.
871 (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
872 (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
874 (IX86_BUILTIN_VPCOMEQUD): Ditto.
875 (IX86_BUILTIN_VPCOMNEUD): Ditto.
876 (IX86_BUILTIN_VPCOMLTUD): Ditto.
877 (IX86_BUILTIN_VPCOMLEUD): Ditto.
878 (IX86_BUILTIN_VPCOMGTUD): Ditto.
879 (IX86_BUILTIN_VPCOMGEUD): Ditto.
880 (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
881 (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
883 (IX86_BUILTIN_VPCOMEQUQ): Ditto.
884 (IX86_BUILTIN_VPCOMNEUQ): Ditto.
885 (IX86_BUILTIN_VPCOMLTUQ): Ditto.
886 (IX86_BUILTIN_VPCOMLEUQ): Ditto.
887 (IX86_BUILTIN_VPCOMGTUQ): Ditto.
888 (IX86_BUILTIN_VPCOMGEUQ): Ditto.
889 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
890 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
892 (IX86_BUILTIN_VPCOMEQB): Ditto.
893 (IX86_BUILTIN_VPCOMNEB): Ditto.
894 (IX86_BUILTIN_VPCOMLTB): Ditto.
895 (IX86_BUILTIN_VPCOMLEB): Ditto.
896 (IX86_BUILTIN_VPCOMGTB): Ditto.
897 (IX86_BUILTIN_VPCOMGEB): Ditto.
898 (IX86_BUILTIN_VPCOMFALSEB): Ditto.
899 (IX86_BUILTIN_VPCOMTRUEB): Ditto.
901 (IX86_BUILTIN_VPCOMEQW): Ditto.
902 (IX86_BUILTIN_VPCOMNEW): Ditto.
903 (IX86_BUILTIN_VPCOMLTW): Ditto.
904 (IX86_BUILTIN_VPCOMLEW): Ditto.
905 (IX86_BUILTIN_VPCOMGTW): Ditto.
906 (IX86_BUILTIN_VPCOMGEW): Ditto.
907 (IX86_BUILTIN_VPCOMFALSEW): Ditto.
908 (IX86_BUILTIN_VPCOMTRUEW): Ditto.
910 (IX86_BUILTIN_VPCOMEQD): Ditto.
911 (IX86_BUILTIN_VPCOMNED): Ditto.
912 (IX86_BUILTIN_VPCOMLTD): Ditto.
913 (IX86_BUILTIN_VPCOMLED): Ditto.
914 (IX86_BUILTIN_VPCOMGTD): Ditto.
915 (IX86_BUILTIN_VPCOMGED): Ditto.
916 (IX86_BUILTIN_VPCOMFALSED): Ditto.
917 (IX86_BUILTIN_VPCOMTRUED): Ditto.
919 (IX86_BUILTIN_VPCOMEQQ): Ditto.
920 (IX86_BUILTIN_VPCOMNEQ): Ditto.
921 (IX86_BUILTIN_VPCOMLTQ): Ditto.
922 (IX86_BUILTIN_VPCOMLEQ): Ditto.
923 (IX86_BUILTIN_VPCOMGTQ): Ditto.
924 (IX86_BUILTIN_VPCOMGEQ): Ditto.
925 (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
926 (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
928 (enum multi_arg_type): New enum for describing the various XOP
929 intrinsic argument types.
930 (bdesc_multi_arg): New table for XOP intrinsics.
931 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
932 (ix86_expand_multi_arg_builtin): New function for creating XOP
935 * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
936 (xop_pmacsww): Ditto.
937 (xop_pmacssww): Ditto.
938 (xop_pmacsdd): Ditto.
939 (xop_pmacssdd): Ditto.
940 (xop_pmacssdql): Ditto.
941 (xop_pmacssdqh): Ditto.
942 (xop_pmacsdql): Ditto.
943 (xop_pmacsdql_mem): Ditto.
944 (xop_mulv2div2di3_low): Ditto.
945 (xop_pmacsdqh): Ditto.
946 (xop_pmacsdqh_mem): Ditto.
947 (xop_mulv2div2di3_high): Ditto.
948 (xop_pmacsswd): Ditto.
949 (xop_pmacswd): Ditto.
950 (xop_pmadcsswd): Ditto.
951 (xop_pmadcswd): Ditto.
952 (xop_pcmov_<mode>): Ditto.
953 (xop_pcmov_<mode>256): Ditto.
954 (xop_phaddbw): Ditto.
955 (xop_phaddbd): Ditto.
956 (xop_phaddbq): Ditto.
957 (xop_phaddwd): Ditto.
958 (xop_phaddwq): Ditto.
959 (xop_phadddq): Ditto.
960 (xop_phaddubw): Ditto.
961 (xop_phaddubd): Ditto.
962 (xop_phaddubq): Ditto.
963 (xop_phadduwd): Ditto.
964 (xop_phadduwq): Ditto.
965 (xop_phaddudq): Ditto.
966 (xop_phsubbw): Ditto.
967 (xop_phsubwd): Ditto.
968 (xop_phsubdq): Ditto.
970 (rotl<mode>3): Ditto.
971 (rotr<mode>3): Ditto.
972 (xop_rotl<mode>3): Ditto.
973 (xop_rotr<mode>3): Ditto.
974 (vrotr<mode>3): Ditto.
975 (vrotl<mode>3): Ditto.
976 (xop_vrotl<mode>3): Ditto.
977 (vlshr<mode>3): Ditto.
978 (vashr<mode>3): Ditto.
980 (xop_ashl<mode>3): Ditto.
981 (xop_lshl<mode>3): Ditto.
986 (xop_frcz<mode>2): Ditto.
987 (xop_vmfrcz<mode>2): Ditto.
988 (xop_frcz<mode>2256): Ditto.
989 (xop_maskcmp<mode>3): Ditto.
990 (xop_maskcmp_uns<mode>3): Ditto.
991 (xop_maskcmp_uns2<mode>3): Ditto.
992 (xop_pcom_tf<mode>3): Ditto.
994 * doc/invoke.texi (-mxop): Add documentation.
995 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
997 2009-11-03 Mark Mitchell <mark@codesourcery.com>
1000 * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
1001 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
1002 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
1004 2009-11-04 Richard Earnshaw <rearnsha@arm.com>
1007 * arm.md (peephole2 patterns for move and compare): New.
1009 2009-11-04 Nick Clifton <nickc@redhat.com>
1011 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
1012 Make sure that it does not allow CONST_DOUBLEs.
1013 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
1014 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
1015 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
1016 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
1017 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
1018 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
1019 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
1020 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
1021 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
1022 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
1023 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
1024 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
1025 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
1026 * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
1027 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
1029 2009-11-04 Richard Guenther <rguenther@suse.de>
1031 PR tree-optimization/41919
1032 * tree-vrp.c (test_for_singularity): Properly compare values.
1034 2009-11-04 Revital Eres <eres@il.ibm.com>
1036 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1037 Consider peeling for alignment only for stores and remove
1038 redundant assignment.
1040 2009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com>
1043 * config/m68k/m68k.c (m68k_reg_present_p): New static function.
1044 (m68k_ok_for_sibcall_p): Handle different result return locations.
1046 2009-11-04 Richard Guenther <rguenther@suse.de>
1048 * c-opts.c (c_common_post_options): Move LTO option processing
1050 * opts.c (decode_options): ... here.
1052 2009-11-04 Jakub Jelinek <jakub@redhat.com>
1054 * c-common.c (fold_offsetof_1): Use %wd instead of
1055 HOST_WIDE_INT_PRINT_DEC.
1057 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
1059 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
1062 2009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
1064 * config.gcc (vax-*-linux*): Keep the original contents of
1065 tmake_file while adding vax/t-linux.
1067 2009-11-03 Eric Botcazou <ebotcazou@adacore.com>
1071 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
1072 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
1073 (STACK_CHECK_MOVING_SP): Likewise.
1074 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
1075 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
1076 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
1077 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
1078 Document PROBE_STACK.
1079 * explow.c (anti_adjust_stack_and_probe): New function.
1080 (allocate_dynamic_stack_space): Do not directly allocate space if
1081 STACK_CHECK_MOVING_SP, instead invoke above function.
1082 (emit_stack_probe): Handle probe_stack insn.
1083 (PROBE_INTERVAL): New macro.
1084 (STACK_GROW_OPTAB): Likewise.
1085 (STACK_GROW_OFF): Likewise.
1086 (probe_stack_range): Use Pmode and memory_address consistently. Fix
1087 loop condition in the small constant case. Rewrite in the general
1088 case to be immune to wraparounds. Make sure the address of probes
1089 is valid. Try to use [base + disp] addressing mode if possible.
1090 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
1091 checking is enabled and STACK_CHECK_MOVING_SP.
1092 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
1093 return 1 for volatile references to the stack pointer.
1094 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
1095 __builtin_alloca if stack checking is enabled.
1096 * unwind-dw2.c (uw_identify_context): Take into account whether the
1097 context is that of a signal frame or not.
1098 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
1099 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
1101 2009-11-03 Jakub Jelinek <jakub@redhat.com>
1103 PR rtl-optimization/41917
1104 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
1105 operand isn't known to be 0, return 1.
1107 2009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
1109 * config/mips/mips.md: Fix typos.
1111 2009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
1113 * doc/invoke.texi: Fix typo.
1115 2009-11-03 Paul Brook <paul@codesourcery.com>
1117 * config/arm/neon.ml (vectype): Add T_floatSF.
1118 (string_of_vectype): Ditto.
1119 * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
1120 (deftypes): Use float for float32_t.
1121 * config/arm/arm_neon.h: Regenerate.
1123 2009-11-03 Nick Clifton <nickc@redhat.com>
1124 Kevin Buettner <kevinb@redhat.com>
1126 * config/rx/predicates.md (rx_store_multiple_vector): Reverse
1127 order of expected registers.
1128 (rx_load_multiple_vector): Likewise.
1129 (rx_rtsd_vector): Likewise.
1130 * config/rx/rx.c (rx_cpu_type): New variable.
1131 (rx_print_operand): Fix bug printing 64-bit constant values.
1132 (rx_emit_stack_pushm): Reverse order of pushed registers.
1133 (gen_rx_store_vector): Likewise.
1134 (is_fast_interrupt_func): Only accept "fast_interrupt" as the
1136 (is_exception_func): Rename to is_interrupt_func and only accept
1137 "interrupt" as the attribute name.
1138 (rx_get_stack_layout): Use new function name.
1139 (rx_func_attr_inlinable): Likewise.
1140 (rx_attribute_table): Remove "exception".
1141 (rx_expand_prologue): If necessary push the accumulator register
1142 in the prologue of interrupt functions.
1143 (rx_expand_epilogue): If necessary pop the accumulator.
1144 (rx_builtins): Add RX_BUILTIN_MVTIPL.
1145 (rx_expand_builtin_stz): Remove.
1146 (rx_expand_builtin_mvtipl): New function.
1147 (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
1148 (rx_expand_builtin): Likewise.
1149 (rx_enable_fpu): New variable.
1150 (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
1151 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
1152 on rx_cpu_type. Define __RX_FPU_INSNS__ if FPU insns are allowed.
1153 (enum rx_cpu_types): Define.
1154 (ASM_SPEC): Pass -m32bit-doubles on to assembler.
1155 (INCOMING_FRAME_SP_OFFSET): Define.
1156 (ARG_POINTER_CFA_OFFSET): Define.
1157 (FRAME_POINTER_CFA_OFFSET): Define.
1158 (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
1159 (ALLOW_RX_FPU_INSNS): Define.
1160 * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
1161 fast_math_flags_set_p.
1162 (UNSPEC_BUILTIN_MVTIPL): Define.
1163 (revl): Rename to bswapsi2.
1164 (bswaphi2): New pattern.
1165 (mvtachi): Mark as volatile because it uses a register unknown to GCC.
1166 (mvtaclo): Likewise.
1168 (mvtc): Remove clobber of cc0.
1171 * config/rx/rx.opt (mieee): Remove.
1176 (msave-acc-in-interrupts): Add.
1177 * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
1178 (MULTILIB_DIRS): Likewise.
1179 (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
1180 * doc/extend.texi: Remove description of "exception" function
1182 * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
1183 -msave-acc-in-interrupts options.
1185 2009-11-03 Richard Guenther <rguenther@suse.de>
1187 * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
1189 2009-11-03 Dodji Seketeli <dodji@redhat.com>
1192 * c-common.c (fold_offsetof_1): Issue errors when the member
1193 designator of the offsetof expression is not legitimate.
1195 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
1197 * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
1198 names instead of numerical constants.
1199 (sse_prologue_save): Ditto.
1200 (*sse_prologue_save_insn): Ditto.
1202 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
1205 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
1206 (TARGET_CALL_ESP): New define.
1207 * config/i386/i386.c (initial_ix86_tune_features): Initialize
1209 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
1210 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
1211 *call_1, *call_value_pop_1 and *call_value_1. Depend on
1213 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
1214 New patterns, use "lsm" as operand 1 constraint.
1215 * config/i386/predicates.md (call_insn_operand): Depend on
1216 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
1218 2009-11-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1220 PR tree-optimization/41857
1221 * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
1222 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
1224 * tree-ssa-address.c (move_hint_to_base): New function.
1225 (most_expensive_mult_to_index): Add TYPE argument. Use mode and
1226 address space associated with TYPE.
1227 (addr_to_parts): Add TYPE and BASE_HINT arguments. Pass TYPE to
1228 most_expensive_mult_to_index. Call move_hint_to_base.
1229 (create_mem_ref): Add BASE_HINT argument. Pass BASE_HINT and
1230 TYPE to addr_to_parts.
1232 2009-11-02 Martin Jambor <mjambor@suse.cz>
1234 PR tree-optimization/41750
1235 * tree-sra.c (analyze_modified_params): Loop over all
1236 representatives of components of a parameter.
1238 2009-11-02 Jakub Jelinek <jakub@redhat.com>
1240 PR tree-optimization/41841
1241 * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
1242 local variables of not yet materialized clones.
1245 * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
1246 for a VOIDmode variable.
1249 * c-pragma.c (visstack): Change into vector of ints rather than
1250 enum symbol_visibility.
1251 (push_visibility): Add kind argument, push default_visibility together
1253 (pop_visibility): Add kind argument, return true if successful, fail
1254 if visibility stack is empty or if stack top is of different kind.
1255 (handle_pragma_visibility): Don't check length of visstack, instead
1256 call pop_visibility and issue diagnostics if it failed. Pass 0
1257 as last argument to push_visibility and pop_visibility.
1258 * c-pragma.h (push_visibility): Add kind argument.
1259 (pop_visibility): Likewise. Return bool instead of void.
1261 2009-11-01 Eric Botcazou <ebotcazou@adacore.com>
1263 * tree.def (TARGET_MEM_REF): Update comment.
1264 * alias.c (get_alias_set): Retrieve the original memory reference for
1265 a TARGET_MEM_REF before proceeding.
1267 2009-10-31 Anatoly Sokolov <aesok@post.ru>
1269 * config/frv/frv.c (frv_function_value, frv_libcall_value,
1270 frv_function_value_regno_p): New functions.
1271 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1272 * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1273 (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
1274 * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
1276 2009-10-31 Anatoly Sokolov <aesok@post.ru>
1278 * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
1279 new 'outgoing' argument.
1280 (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
1281 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1282 * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1283 LIBCALL_VALUE): Remove.
1284 (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
1285 * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
1286 (mh10300_function_value_regno_p): Declare.
1288 2009-10-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1290 * config/arm/cortex-a9.md: New - integer pipeline description.
1292 2009-10-31 Eric Botcazou <ebotcazou@adacore.com>
1294 * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
1295 aborting if the sizes of the two references don't match.
1297 2009-10-31 Toon Moene <toon@moene.org>
1299 * ipa-inline.c (cgraph_decide_inlining):
1300 Include reason for not inlining called-once functions in dump file.
1302 2009-10-30 Daniel Gutson <dgutson@codesourcery.com>
1304 * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
1305 * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
1306 (LINK_SPEC): BE_LINK_SPEC added.
1308 2009-10-30 Richard Guenther <rguenther@suse.de>
1311 * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
1313 2009-10-30 Nathan Sidwell <nathan@codesourcery.com>
1315 * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
1316 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
1319 2009-10-30 Martin Jambor <mjambor@suse.cz>
1321 * tree-sra.c (build_ref_for_offset_1): Remove a comment.
1323 2009-10-30 H.J. Lu <hongjiu.lu@intel.com>
1326 * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
1327 first. Move assert on stack_alignment_estimated just before
1328 setting stack_realign_needed.
1329 (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
1330 Don't call update_stack_boundary.
1332 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
1333 (verride_options): Don't check ix86_force_align_arg_pointer here.
1334 (ix86_function_ok_for_sibcall): Use it.
1335 (ix86_update_stack_boundary): Likewise.
1337 * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
1339 2009-10-30 Richard Earnshaw <rearnsha@arm.com>
1341 * arm.md (QHSI): New mode iterator.
1342 (movqi): If generating for thumb, then truncate any immediate to
1344 * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
1346 (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
1349 2009-10-29 Cary Coutant <ccoutant@google.com>
1352 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
1353 locations in the source).
1354 (store_vcall_insn): New function.
1355 (lookup_vcall_insn): New function.
1356 (dwarf2out_virtual_call_token): Use store_vcall_insn.
1357 (dwarf2out_copy_call_info): New function.
1358 (dwarf2out_virtual_call): Use lookup_vcall_insn.
1359 * emit-rtl.c (try_split): Call copy_call_info debug hook.
1360 * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
1361 * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
1362 (debug_nothing_rtx_rtx): New dummy hook.
1363 * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
1364 (xcoff_debug_hooks): Likewise.
1365 * sdbout.c (sdb_debug_hooks): Likewise.
1366 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1368 2009-10-29 David Daney <ddaney@caviumnetworks.com>
1370 * doc/invoke.texi (mmcount-ra-address): Document new command line
1372 * config/mips/mips.opt (mmcount-ra-address): New option.
1373 * config/mips/mips-protos.h (mips_function_profiler): Declare new
1375 * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
1377 (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
1378 (mips_function_profiler): Moved from FUNCTION_PROFILER, and
1380 * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
1381 mips_function_profiler.
1383 2009-10-29 Steve Ellcey <sje@cup.hp.com>
1387 * doc/tm.texi (OVERRIDE_OPTIONS): Update.
1388 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
1389 * optc-gen.awk (cl_target_option_restore): Include call to
1390 targetm.override_options_after_change.
1391 * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
1392 * target.h (override_options_after_change): New.
1393 * c-common.c (parse_optimize_options): Call
1394 targetm.override_options_after_change.
1395 * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
1396 (ia64_override_options_after_change): New.
1397 (ia64_override_options) Add call to above.
1399 2009-10-29 Michael Matz <matz@suse.de>
1401 * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
1402 (gate_convert_to_rsqrt): Ditto.
1403 (pass_convert_to_rsqrt): Ditto.
1404 * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
1405 * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
1408 * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
1410 2009-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1412 * config/arm/arm.c (find_best_start): Fix type of remainder to be
1415 2009-10-29 Martin Jambor <mjambor@suse.cz>
1417 PR tree-optimization/41775
1418 * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
1419 (generate_subtree_copies): Do not unshare agg.
1420 (load_assign_lhs_subreplacements): Do not unshare rhs.
1421 (sra_modify_assign): Do not unshare exprs.
1422 (propagate_subacesses_accross_link): Renamed to
1423 propagate_subaccesses_across_link.
1425 2009-10-29 Richard Earnshaw <rearnsha@arm.com>
1427 * arm.c (count_insns_for_constant): Rework to support counting for
1428 thumb2 immediates as well.
1429 (find_best_start): Split out from arm_gen_constant.
1430 (arm_gen_constant): Rework to support XOR with immediate.
1432 2009-10-29 Chao-ying Fu <fu@mips.com>
1434 * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
1436 (mips_expand_synci_loop): Use the length rtx to control the
1437 synci loop from the begin rtx that points to the first byte of
1440 2009-10-28 Rafael Avila de Espindola <espindola@google.com>
1442 * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
1444 2009-10-28 Rafael Avila de Espindola <espindola@google.com>
1446 * dbxout.c (dbxout_common_check): Accept non public trees.
1447 * dwarf2out.c (fortran_common): Accept non public trees.
1449 2009-10-28 Rafael Avila de Espindola <espindola@google.com>
1451 * common.opt (fuse-linker-plugin): New option.
1452 * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
1454 * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
1456 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1458 PR rtl-optimization/39715
1459 * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
1460 (gen_cstoresi_ltu_thumb1): New splitter.
1462 2009-10-28 Richard Guenther <rguenther@suse.de>
1466 * tree-ssa.c (useless_type_conversion_p): Do not treat
1467 conversions to pointers to incomplete types as useless.
1468 * gimple.c (gimple_types_compatible_p): Compare struct tags,
1471 2009-10-28 Jakub Jelinek <jakub@redhat.com>
1473 * var-tracking.c (emit_note_insn_var_location): Don't call the second
1474 vt_expand_loc unnecessarily when location is not a register nor
1478 * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
1479 fields don't have DECL_NAME.
1482 * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
1483 call convert_memory_address on addr.
1486 * config/i386/i386.c (ix86_pic_register_p): Don't call
1487 rtx_equal_for_cselib_p for VALUEs discarded as useless.
1489 2009-10-28 Richard Sandiford <rdsandiford@googlemail.com>
1491 * var-tracking.c (emit_note_insn_var_location): Get the mode of
1492 a variable part from its REG, MEM or VALUE.
1494 2009-10-28 Richard Guenther <rguenther@suse.de>
1496 * gimple.c (gimple_get_alias_set): Fix comment typo.
1498 2009-10-28 Richard Guenther <rguenther@suse.de>
1500 * tree.c (free_lang_data_in_type): Do not call get_alias_set.
1501 (free_lang_data): Unconditionally compute alias sets for all
1502 standard integer types. Bail out if gate bailed out previously.
1503 Do not reset the types_compatible_p langhook.
1504 (gate_free_lang_data): Remove.
1505 (struct pass_ipa_free_lang_data): Enable unconditionally.
1506 * gimple.c (gimple_get_alias_set): Use the same alias-set for
1509 2009-10-28 Richard Guenther <rguenther@suse.de>
1512 * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
1513 (ref_maybe_used_by_call_p_1): Fix bcopy handling.
1514 (call_may_clobber_ref_p_1): Likewise.
1515 * tree-ssa-structalias.c (find_func_aliases): Likewise.
1516 * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
1518 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1520 PR rtl-optimization/41812
1523 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
1525 * df-problems.c (df_md_scratch): New.
1526 (df_md_alloc, df_md_free): Allocate/free it.
1527 (df_md_local_compute): Only include live registers in init.
1528 (df_md_transfer_function): Prune the in-set computed by
1529 the confluence function, and the gen-set too.
1531 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1533 PR rtl-optimization/39715
1534 * combine.c (simplify_comparison): Use extensions to
1535 widen comparisons. Try an ANDing first.
1537 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1539 PR rtl-optimization/40741
1540 * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
1541 a small constant is cheap.
1542 * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
1543 force_reg on the LHS.
1544 (xorsi3): Likewise, and split the XOR if the constant is complex
1545 and not in Thumb mode.
1547 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1549 * expmed.c (emit_store_flag): Check costs before
1550 transforming to the opposite representation.
1552 2009-10-28 Paolo Bonzini <bonzini@gnu.org>
1554 * config/sh/sh.md (cbranchfp4_media): Remove hack extending
1555 cstore result to DImode.
1557 2009-10-28 Kaz Kojima <kkojima@gcc.gnu.org>
1559 * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
1560 inside the unspec vector.
1562 2009-10-27 Richard Henderson <rth@redhat.com>
1564 * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
1566 2009-10-27 Richard Henderson <rth@redhat.com>
1569 * tree-eh.c (eh_region_may_contain_throw_map): Rename from
1570 eh_region_may_contain_throw; update users.
1571 (eh_region_may_contain_throw): New function.
1572 (lower_catch): Check flag_exceptions before creating exception region.
1573 (lower_eh_filter, lower_eh_must_not_throw): Likewise.
1574 (lower_cleanup): Tidy existing flag_exceptions check to match.
1576 2009-10-27 Kai Tietz <kai.tietz@onevision.com>
1579 * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
1580 * config/i386/mingw.opt: Add fset-stack-executable.
1581 * config/i386/i386.c (ix86_trampoline_init): Make call to
1582 emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
1583 defined and its value is not zero.
1586 2009-10-27 Richard Guenther <rguenther@suse.de>
1588 * tree-ssa-structalias.c (find_func_aliases): In IPA mode
1589 handle calls to externally visible functions like in regular mode.
1590 (create_variable_info_for): Do not create function infos here.
1591 (have_alias_info): Remove write-only variable.
1592 (solve_constraints): New function split out from common code
1593 in compute_points_to_sets and ipa_pta_execute.
1594 (compute_points_to_sets): Adjust.
1595 (ipa_pta_execute): Likewise. Handle clones and externally visible
1596 functions like in non-IPA mode.
1598 2009-10-27 Jakub Jelinek <jakub@redhat.com>
1601 * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
1604 2009-10-27 Richard Guenther <rguenther@suse.de>
1606 * tree-complex.c (expand_complex_div_wide): Check for
1607 INTEGER_CST, not TREE_CONSTANT on comparison folding result.
1609 2009-10-27 Revital Eres <eres@il.ibm.com>
1611 PR tree-optimization/40648
1612 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1613 Change decision of when to peel for alignment.
1615 2009-10-27 Richard Guenther <rguenther@suse.de>
1618 * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
1620 2009-10-27 Aldy Hernandez <aldyh@redhat.com>
1623 * fold-const.c (fold_binary_loc): Do not call
1624 protected_set_expr_location.
1626 2009-10-27 Wei Guozhi <carrot@google.com>
1629 * target.h (have_conditional_execution): Add a new target hook
1631 * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
1632 * targhooks.h (default_have_conditional_execution): Likewise.
1633 * targhooks.c (default_have_conditional_execution): Likewise.
1634 * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
1635 * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
1636 (arm_have_conditional_execution): New function.
1637 * ifcvt.c (noce_process_if_block, find_if_header,
1638 cond_exec_find_if_block, dead_or_predicable): Change the usage of
1639 macro HAVE_conditional_execution to a target hook call.
1640 * recog.c (peephole2_optimize): Likewise.
1641 * sched-rgn.c (add_branch_dependences): Likewise.
1642 * final.c (asm_insn_count, final_scan_insn): Likewise.
1643 * bb-reorder.c (HAVE_conditional_execution): Remove it.
1645 2009-10-26 Ben Elliston <bje@au.ibm.com>
1646 Michael Meissner <meissner@linux.vnet.ibm.com>
1647 Ulrich Weigand <uweigand@de.ibm.com>
1649 * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
1650 * config/spu/spu_cache.h: New file.
1652 * config/spu/cachemgr.c: New file.
1653 * config/spu/cache.S: New file.
1655 * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
1656 (ADDR_SPACE_EA): Define.
1657 (TARGET_ADDR_SPACE_KEYWORDS): Define.
1658 * config/spu/spu.c (EAmode): New macro.
1659 (TARGET_ADDR_SPACE_POINTER_MODE): Define.
1660 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1661 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
1662 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
1663 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
1664 (TARGET_ADDR_SPACE_CONVERT): Likewise.
1665 (TARGET_ASM_SELECT_SECTION): Likewise.
1666 (TARGET_ASM_UNIQUE_SECTION): Likewise.
1667 (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
1668 (TARGET_ASM_ALIGNED_DI_OP): Likewise.
1669 (ea_symbol_ref): New function.
1670 (spu_legitimate_constant_p): Handle __ea qualified addresses.
1671 (spu_addr_space_legitimate_address_p): New function.
1672 (spu_addr_space_legitimize_address): Likewise.
1673 (cache_fetch): New global.
1674 (cache_fetch_dirty): Likewise.
1675 (ea_alias_set): Likewise.
1676 (ea_load_store): New function.
1677 (ea_load_store_inline): Likewise.
1678 (expand_ea_mem): Likewise.
1679 (spu_expand_mov): Handle __ea qualified memory references.
1680 (spu_addr_space_pointer_mode): New function.
1681 (spu_addr_space_address_mode): Likewise.
1682 (spu_addr_space_subset_p): Likewise.
1683 (spu_addr_space_convert): Likewise.
1684 (spu_section_type_flags): Handle "._ea" section.
1685 (spu_select_section): New function.
1686 (spu_unique_section): Likewise.
1687 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
1688 and __EA64__ predefined macros.
1689 * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
1690 -matomic-updates switches.
1692 * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
1693 (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
1694 libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
1695 libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
1696 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
1697 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
1698 $(T)cache128k.o): Likewise.
1699 ($(T)libgcc_%.a): Likewise.
1701 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
1702 * config/spu/spu.opt (-mea32/-mea64): Add switches.
1703 (-maddress-space-conversion): Likewise.
1704 (-mcache-size=): Likewise.
1705 (-matomic-updates): Likewise.
1706 * doc/invoke.texi (-mea32/-mea64): Document.
1707 (-maddress-space-conversion): Likewise.
1708 (-mcache-size=): Likewise.
1709 (-matomic-updates): Likewise.
1711 2009-10-26 Ben Elliston <bje@au.ibm.com>
1712 Michael Meissner <meissner@linux.vnet.ibm.com>
1713 Ulrich Weigand <uweigand@de.ibm.com>
1715 * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
1717 * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
1718 defined, add the named address space keywords.
1719 (c_addr_space_name): New function.
1720 (complete_array_type): Preserve named address space.
1721 (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
1722 instead of targetm.valid_pointer_mode.
1724 * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
1725 RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
1726 (ADDR_SPACE_KEYWORD): New macro.
1727 (c_addr_space_name): Add prototype.
1729 * c-tree.h (struct c_declspecs): Add address_space member.
1730 (declspecs_add_addrspace): Add prototype.
1732 * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
1734 * c-parser.c (c_parse_init): Add assertion.
1735 (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
1736 (c_lex_one_token): Handle address space keywords.
1737 (c_token_starts_typename): Likewise.
1738 (c_token_starts_declspecs): Likewise.
1739 (c_parser_declspecs): Likewise.
1740 (c_parser_postfix_expression_after_paren_type): Diagnose compound
1741 literal within function qualified with named address space.
1743 * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
1744 address space qualifiers.
1745 (shadow_tag_warned): Warn about useless address space qualifiers.
1746 (quals_from_declspecs): Handle address space qualifiers.
1747 (grokdeclarator): Likewise.
1748 (build_null_declspecs): Likewise.
1749 (declspecs_add_addrspace): New function.
1751 * c-typeck.c (addr_space_superset): New function.
1752 (qualify_type): Handle named address spaces.
1753 (composite_type): Likewise.
1754 (common_pointer_type): Likewise.
1755 (comp_target_types): Likewise.
1756 (build_conditional_expr): Likewise.
1757 (handle_warn_cast_qual): Likewise.
1758 (build_c_cast): Likewise.
1759 (convert_for_assignment): Likewise.
1760 (build_binary_op): Likewise.
1761 (pointer_diff): Handle named address spaces. Use intermediate
1762 integer type of sufficient size if required.
1764 2009-10-26 Ben Elliston <bje@au.ibm.com>
1765 Michael Meissner <meissner@linux.vnet.ibm.com>
1766 Ulrich Weigand <uweigand@de.ibm.com>
1768 * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
1769 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1770 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
1772 * target.h (struct target_def): Add pointer_mode, address_mode,
1773 and valid_pointer_mode to addr_space substructure.
1774 * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
1775 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1776 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
1777 (TARGET_ADDR_SPACE_HOOKS): Add them.
1778 * targhooks.c (target_default_pointer_address_modes_p): New function.
1779 * target.h (target_default_pointer_address_modes_p): Add prototype.
1780 * targhooks.c (default_addr_space_pointer_mode): New function.
1781 (default_addr_space_address_mode): Likewise.
1782 (default_addr_space_valid_pointer_mode): Likewise.
1783 * targhooks.h (default_addr_space_pointer_mode): Add prototype.
1784 (default_addr_space_address_mode): Likewise.
1785 (default_addr_space_valid_pointer_mode): Likewise.
1786 * output.h (default_valid_pointer_mode): Move to ...
1787 * targhooks.h (default_valid_pointer_mode): ... here.
1788 * varasm.c (default_valid_pointer_mode): Move to ...
1789 * targhooks.c (default_valid_pointer_mode): ... here.
1791 * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
1792 instead of targetm.valid_pointer_mode.
1794 * fold-const.c (fit_double_type): Use int_or_pointer_precision.
1795 * tree.c (integer_pow2p): Likewise.
1796 (tree_log2): Likewise.
1797 (tree_floor_log2): Likewise.
1798 (signed_or_unsigned_type_for): Support pointer type of different size.
1799 (int_or_pointer_precision): New function.
1800 * tree.h (int_or_pointer_precision): Add prototype.
1801 * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
1802 * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
1803 incoming pointer type instead of POINTER_SIZE.
1805 * tree.c (build_pointer_type): Use appropriate pointer mode
1806 instead of ptr_mode.
1807 (build_reference_type): Likewise.
1808 * expr.c (store_expr): Likewise.
1809 (expand_expr_addr_expr): Likewise.
1810 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
1811 * cfgexpand.c (expand_debug_expr): Likewise.
1813 * auto-inc-dec.c: Include "target.h".
1814 (try_merge): Use appropriate address mode instead of Pmode.
1815 (find_inc): Likewise.
1816 * combine.c (find_split_point): Likewise.
1817 * cselib.c (cselib_record_sets): Likewise.
1818 * dse.c (replace_inc_dec): Likewise.
1819 (canon_address): Likewise.
1820 * var-tracking.c (replace_expr_with_values): Likewise.
1821 (count_uses): Likewise.
1822 (add_uses): Likewise.
1823 (add_stores): Likewise.
1824 * emit-rtl.c: Include "target.h".
1825 (adjust_address_1): Use appropriate address mode instead of Pmode.
1826 (offset_address): Likewise.
1827 * explow.c (break_out_memory_refs): Likewise.
1828 (memory_address_addr_space): Likewise.
1829 (promote_mode): Likewise.
1830 * expr.c (move_by_pieces): Likewise.
1831 (emit_block_move_via_loop): Likewise.
1832 (store_by_pieces): Likewise.
1833 (store_by_pieces_1): Likewise.
1834 (expand_assignment): Likewise.
1835 (store_constructor): Likewise.
1836 (expand_expr_addr_expr): Likewise.
1837 (expand_expr_real_1): Likewise.
1838 * cfgexpand.c (expand_debug_expr): Likewise.
1839 * ifcvt.c (noce_try_cmove_arith): Likewise.
1840 * regcprop.c (kill_autoinc_value): Likewise.
1841 * regmove.c (try_auto_increment): Likewise.
1842 * reload.c (find_reloads): Likewise.
1843 (find_reloads_address): Likewise.
1844 (find_reloads_address_1): Likewise.
1845 * sched-deps.c: Include "target.h".
1846 (sched_analyze_1): Use appropriate address mode instead of Pmode.
1847 (sched_analyze_2): Likewise.
1848 * sel-sched-dump.c: Include "target.h".
1849 (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
1850 * stor-layout.c (layout_type): Likewise.
1851 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1852 (multiplier_allowed_in_address_p): Likewise.
1853 (get_address_cost): Likewise.
1854 * varasm.c (make_decl_rtl): Likewise.
1856 * expr.c (expand_assignment): Always convert offsets to appropriate
1858 (store_expr): Likewise.
1859 (store_constructor): Likewise.
1860 (expand_expr_real_1): Likewise.
1862 * reload.h (form_sum): Add MODE argument.
1863 * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
1864 Update recursive calls.
1865 (subst_indexed_address): Update calls to form_sum.
1867 * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
1868 * tree-ssa-address.c: Include "target.h".
1869 (templates): Replace by ...
1870 (mem_addr_template_list): ... this new vector.
1871 (TEMPL_IDX): Handle address space numbers.
1872 (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
1873 (addr_for_mem_ref): Add ADDRSPACE argument. Use per-address-space
1874 instead of global cache. Update call to gen_addr_rtx.
1875 (valid_mem_ref_p): Update call to addr_for_mem_ref.
1876 * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
1878 * rtl.h (convert_memory_address_addr_space): Add prototype.
1879 (convert_memory_address): Define as macro.
1880 * explow.c (convert_memory_address): Rename to ...
1881 (convert_memory_address_addr_space): ... this. Add ADDRSPACE argument.
1882 Use appropriate pointer and address modes instead of ptr_mode / Pmode.
1883 Update recursive calls.
1884 (memory_address_addr_space): Call convert_memory_address_addr_space.
1885 * expmed.c (make_tree): Likewise.
1886 * expr.c (expand_assignment): Likewise.
1887 (expand_expr_addr_expr_1): Likewise. Also, add ADDRSPACE argument.
1888 (expand_expr_addr_expr): Likewise. Also, update call.
1890 * alias.c (find_base_value): Guard pointer size optimizations.
1891 (find_base_term): Likewise.
1892 * rtlanal.c (nonzero_bits1): Likewise.
1893 (num_sign_bit_copies1): Likewise.
1894 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1896 * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
1897 (emit-rtl.o): Likewise.
1898 (auto-inc-dec.o): Likewise.
1899 (sched-deps.o): Likewise.
1901 2009-10-26 Ben Elliston <bje@au.ibm.com>
1902 Michael Meissner <meissner@linux.vnet.ibm.com>
1903 Ulrich Weigand <uweigand@de.ibm.com>
1905 * doc/extend.texi (Named Address Spaces): New section.
1906 * coretypes.h (addr_space_t): New type.
1907 (ADDR_SPACE_GENERIC): New define.
1908 (ADDR_SPACE_GENERIC_P): New macro.
1910 * doc/tm.texi (Named Address Spaces): New section.
1911 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
1912 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
1913 (TARGET_ADDR_SPACE_SUBSET_P): Document.
1914 (TARGET_ADDR_SPACE_CONVERT): Document.
1915 * target.h (struct gcc_target): Add addr_space substructure.
1916 * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1917 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
1918 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
1919 (TARGET_ADDR_SPACE_CONVERT): Likewise.
1920 (TARGET_ADDR_SPACE_HOOKS): Likewise.
1921 (TARGET_INITIALIZER): Initialize addr_space hooks.
1922 * targhooks.c (default_addr_space_legitimate_address_p): New function.
1923 (default_addr_space_legitimize_address): Likewise.
1924 (default_addr_space_subset_p): Likewise.
1925 (default_addr_space_convert): Likewise.
1926 * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
1927 (default_addr_space_legitimize_address): Likewise.
1928 (default_addr_space_subset_p): Likewise.
1929 (default_addr_space_convert): Likewise.
1931 * doc/rtl.texi (MEM_ADDR_SPACE): Document.
1932 * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
1933 (MEM_ADDR_SPACE): New macro.
1934 * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
1935 address space memory attribute.
1936 (mem_attrs_htab_hash): Handle address space memory attribute.
1937 (mem_attrs_htab_eq): Likewise.
1938 (set_mem_attributes_minus_bitpos): Likewise.
1939 (set_mem_alias_set): Likewise.
1940 (set_mem_align): Likewise.
1941 (set_mem_expr): Likewise.
1942 (set_mem_offset): Likewise.
1943 (set_mem_size): Likewise.
1944 (adjust_address_1): Likewise.
1945 (offset_address): Likewise.
1946 (widen_memoy_address): Likewise.
1947 (get_spill_slot_decl): Likewise.
1948 (set_mem_attrs_for_spill): Likewise.
1949 (set_mem_addr_space): New function.
1950 * emit-rtl.h (set_mem_addr_space): Add prototype.
1951 * print-rtl.c (print_rtx): Print address space memory attribute.
1952 * expr.c (expand_assignment): Set address space memory attribute
1953 of generated MEM RTXes as appropriate.
1954 (expand_expr_real_1): Likewise.
1955 * cfgexpand.c (expand_debug_expr): Likewise.
1956 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1958 * tree.h (struct tree_base): Add address_space bitfield. Reduce
1959 size of "spare" bitfield.
1960 (TYPE_ADDR_SPACE): New macro.
1961 (ENCODE_QUAL_ADDR_SPACE): Likewise.
1962 (DECODE_QUAL_ADDR_SPACE): Likewise.
1963 (CLEAR_QUAL_ADDR_SPACE): Likewise.
1964 (KEEP_QUAL_ADDR_SPACE): Likewise.
1965 (TYPE_QUALS): Encode type address space.
1966 (TYPE_QUALS_NO_ADDR_SPACE): New macro.
1967 * tree.c (set_type_quals): Set type address space.
1968 (build_array_type): Inherit array address space from element type.
1969 * print-tree.c (print_node_brief): Print type address space.
1970 (print_node): Likewise.
1971 * tree-pretty-print.c (dump_generic_node): Likewise.
1973 * explow.c (memory_address): Rename to ...
1974 (memory_address_addr_space): ... this. Add ADDRSPACE argument.
1975 Use address-space aware variants of memory address routines.
1976 * recog.c (memory_address_p): Rename to ...
1977 (memory_address_addr_space_p): ... this. Add ADDSPACE argument.
1978 Use address-space aware variants of memory address routines.
1979 (offsettable_address_p): Rename to ...
1980 (offsettable_address_addr_space_p): ... this. Add ADDRSPACE argument.
1981 Use address-space aware variants of memory address routines.
1982 * reload.c (strict_memory_address_p): Rename to ...
1983 (strict_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
1984 Use address-space aware variants of memory address routines.
1985 (maybe_memory_address_p): Rename to ...
1986 (maybe_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
1987 Use address-space aware variants of memory address routines.
1988 * expr.h (memory_address_addr_space): Add prototype.
1989 (memory_address): Define as macro.
1990 * recog.h (memory_address_addr_space_p): Add prototype.
1991 (memory_address_p): Define as macro.
1992 (offsettable_address_addr_space_p): Add prototype.
1993 (offsettable_address_p): Define as macro.
1994 (strict_memory_address_addr_space_p): Add prototype.
1995 (strict_memory_address_p): Define as macro.
1997 * combine.c (find_split_point): Use address-space aware variants
1998 of memory address routines.
1999 * emit-rtl.c (operand_subword): Likewise.
2000 (change_address_1): Likewise.
2001 (adjust_address_1): Likewise.
2002 (offset_address): Likewise.
2003 * expr.c (emit_move_insn): Likewise.
2004 (expand_assignment): Likewise.
2005 (expand_expr_real_1): Likewise.
2006 * recog.c (verify_changes): Likewise.
2007 (general_operand): Likewise.
2008 (offsettable_memref_p): Likewise.
2009 (offsettable_nonstrict_memref_p): Likewise.
2010 (constrain_operands): Likewise.
2011 * reload.c (get_secondary_mem): Likewise.
2012 (find_reloads_toplev): Likewise.
2013 (find_reloads_address): Likewise.
2014 (find_reloads_subreg_address): Likewise.
2015 * reload1.c (reload): Likewise.
2016 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
2017 * rtl.h (address_cost): Add ADDRSPACE argument.
2018 * rtlanal.c (address_cost): Add ADDRSPACE argument. Use address-space
2019 aware variant of memory address routines.
2020 * loop-invariant.c (create_new_invariant): Update address_cost call.
2021 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2022 * fwprop.c (should_replace_address): Add ADDRSPACE argument.
2023 Use address-space aware variant of memory address routines.
2024 (propagate_rtx_1): Update call to should_replace_address.
2025 * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
2027 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
2028 ADDRSPACE argument. Use per-address-space instead of global cache.
2029 Use address-space aware variant of memory address routines.
2030 (get_address_cost): Likewise.
2031 (get_computation_cost_at): Update calls.
2032 * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
2033 Use address-space aware variant of memory address routines.
2034 (create_mem_ref_raw): Update call to valid_mem_ref_p.
2035 (most_expensive_mult_to_index): Update call to
2036 multiplier_allowed_in_address_p.
2038 * dwarf2out.c (modified_type_die): Output DW_AT_address_class
2039 attribute to indicate named address spaces.
2041 * varasm.c (get_variable_section): DECLs in named address spaces
2044 * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
2045 for addresses in a non-generic address space.
2047 * expr.c (emit_block_move_hints): Do not use libcalls for
2048 memory in non-generic address spaces.
2049 (clear_storage_hints): Likewise.
2050 (expand_assignment): Likewise.
2052 * fold-const.c (operand_equal_p): Expressions refering to different
2053 address spaces are not equivalent.
2055 * rtl.c (rtx_equal_p_cb): MEMs refering to different address
2056 spaces are not equivalent.
2057 (rtx_equal_p): Likewise.
2058 * cse.c (exp_equiv_p): Likewise.
2059 * jump.c (rtx_renumbered_equal_p): Likewise.
2060 * reload.c (operands_match_p): Likewise.
2062 * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
2063 address spaces may alias.
2064 (true_dependence): Likewise.
2065 (canon_true_dependence): Likewise.
2066 (write_dependence_p): Likewise.
2068 * dse.c (canon_address): Handle named address spaces.
2069 * ifcvt.c (noce_try_cmove_arith): Likewise.
2071 * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
2072 * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
2073 * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
2074 to handle conversions between different address spaces.
2075 * fold-const.c (fold_convert_loc): Likewise.
2076 (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
2077 * tree-pretty-print.c (dump_generic_node): Likewise.
2078 * gimple-pretty-print.c (dump_unary_rhs): Likewise.
2079 * tree-cfg.c (verify_gimple_assign_unary): Likewise.
2080 * tree-inline.c (estimate_operator_cost): Likewise.
2081 * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
2082 to different address spaces are not useless.
2084 2009-10-26 Jakub Jelinek <jakub@redhat.com>
2087 * cfgcleanup.c (trivially_empty_bb_p): New function.
2088 (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
2091 * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
2092 add_name_and_src_coords_attributes, gen_namespace_die,
2093 dwarf2out_set_name): Handle dwarf2_name returning NULL.
2095 2009-10-26 Nick Clifton <nickc@redhat.com>
2097 * config.gcc: Add support for RX target.
2098 * config/rx: New directory.
2099 * config/rx/constraints.md: New file.
2100 * config/rx/predicates.md: New file.
2101 * config/rx/rx.c: New file.
2102 * config/rx/rx.h: New file.
2103 * config/rx/rx.md: New file.
2104 * config/rx/rx.opt: New file.
2105 * config/rx/rx-protos.h: New file.
2106 * config/rx/t-rx: New file.
2107 * doc/extend.texi: Document RX function attributes.
2108 * doc/invoke.texi: Document RX specific command line options.
2109 * doc/contrib.texi: Document RX contribution.
2110 * doc/md.texi: Document RX constraints.
2111 * doc/install.texi: Document RX support.
2113 2009-10-26 Michael Matz <matz@suse.de>
2115 PR tree-optimization/41783
2116 * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
2117 case for simple diamonds.
2118 * tree-ssa-alias.h (get_continuation_for_phi): Declare.
2119 * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
2120 argument, use alias oracle to skip some vdefs.
2121 (phi_translate_1): Change call to above, don't allocate new
2122 value ids if they can stay the same.
2123 (compute_avail): Allow vuse walking when looking up references.
2125 2009-10-26 Richard Guenther <rguenther@suse.de>
2127 PR tree-optimization/41826
2128 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
2129 access to re-allocated vector fields.
2131 2009-10-26 Richard Guenther <rguenther@suse.de>
2133 * graphite-sese-to-poly.c (check_poly_representation): Fix
2134 compile without checking.
2136 2009-10-26 Janus Weil <janus@gcc.gnu.org>
2139 * gimple.h (tree_annotate_all_with_location): Remove prototype.
2140 * gimplify.c (tree_should_carry_location_p,
2141 tree_annotate_one_with_location,tree_annotate_all_with_location):
2142 Remove obsolete functions.
2144 2009-10-25 Kaz Kojima <kkojima@gcc.gnu.org>
2147 * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
2149 2009-10-25 Richard Guenther <rguenther@suse.de>
2151 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2152 Stream DECL_RESTRICTED_P.
2153 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2155 2009-10-25 Richard Sandiford <rdsandiford@googlemail.com>
2157 * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
2158 a note when expanding to nothing.
2160 2009-10-25 Richard Guenther <rguenther@suse.de>
2163 * tree.c (find_decls_types_r): Deal with Java overloading
2164 BINFO_VIRTUALS for its own purpose.
2166 2009-10-24 Adam Nemet <anemet@caviumnetworks.com>
2168 * config/mips/predicates.md (hilo_operand): New predicate.
2169 * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
2170 define_insn. Correct !ISA_HAS_EXT_INS length from 24 to 28. Move
2171 splitter part from here ...:
2172 (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here. Swap
2173 op0 and op4 to match the DINS case.
2174 (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
2176 2009-10-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2179 * avr.md (QIDI): Add new mode iterator.
2180 (sbrx_branch<mode>): Create new zero extract bit, test and jump
2181 patterns for all QI thru DI modes combinations.
2182 (sbrx_and_branch<mode>): Create new and based bit test and jump
2183 patterns for QI thru SI modes.
2184 avr.c (avr_out_sbxx_branch): Use only bit number.
2186 2009-10-24 Jan Hubicka <jh@suse.cz>
2188 * ipa-reference.c (check_call): Noreturn notrhow calls do not write
2190 (analyze_function): When analyzing noreturn nothrow call, do not
2191 compute written stats; free bitmaps of vars early if possible.
2192 (generate_summary): Only update bitmaps if computed.
2193 (propagate): Only dump bitmaps if computed.
2194 (ipa_reference_read_summary): Fix pasto.
2196 2009-10-24 Eric Botcazou <ebotcazou@adacore.com>
2198 * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
2199 (aliasing_component_refs_p): ...this. Return true if there is no
2200 common base and the base access types have the same alias set.
2201 (indirect_ref_may_alias_decl_p): Adjust for above renaming.
2202 (indirect_refs_may_alias_p): Likewise.
2204 2009-10-23 Joseph Myers <joseph@codesourcery.com>
2207 * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
2208 a C_MAYBE_CONST_EXPR.
2210 2009-10-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2213 * config/rs6000/rs6000.c (struct machine_function): Add
2214 vsx_or_altivec_used_p to record if vector types are used.
2215 (rs6000_expand_to_rtl_hook): Rename from
2216 rs6000_alloc_sdmode_stack_slot. If VSX, check to see if there are
2217 any vector operations, so if there are, we can set VRSAVE to
2218 non-zero when only floating point vector registers are used.
2219 (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
2220 (rs6000_check_vector_mode): Inner function to check if vector
2221 types are used in the code.
2222 (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
2223 vector instructions are used.
2225 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
2226 Indicate that VSX registers which overlap floating point
2227 registers, can't be used across a call, since the ABI only states
2228 the scalar part of the register will be saved and restored.
2230 2009-10-23 Joseph Myers <joseph@codesourcery.com>
2233 * alias.c (get_alias_set): Call langhook before returning 0 for
2234 types with structural equality.
2235 * c-common.c (c_common_get_alias_set): Use alias set of element
2236 type for arrays with structural comparison.
2238 2009-10-23 Richard Guenther <rguenther@suse.de>
2241 * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
2242 gimple_call_nothrow_p.
2244 2009-10-23 Richard Guenther <rguenther@suse.de>
2246 PR tree-optimization/41778
2247 * tree-ssa-pre.c (do_regular_insertion): Only insert if a
2248 redundancy along a path in the CFG we want to optimize for speed
2249 is going to be removed.
2250 (execute_pre): Do partial-PRE only if the function is to be
2251 optimized for speed.
2252 (gate_pre): Do not turn off all of PRE when not optimizing a
2255 2009-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2257 * builtins.c (fold_builtin_cabs): Use validate_arg().
2258 (fold_builtin_cexp): Fix if-logic.
2259 (fold_builtin_1): Check subtype for BUILT_IN_CIMAG.
2261 2009-10-22 Jeff Law <law@redhat.com>
2263 * ira-lives.c (process_single_reg_class_operands): Update the
2264 hard reg costs for all the hard registers desired by the
2265 single reg class operand.
2267 2009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
2269 * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
2270 for rtxes that aren't handled specially.
2272 2009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
2274 * rtl.h (shallow_copy_rtvec): Declare.
2275 * rtl.c (shallow_copy_rtvec): New function.
2276 * cselib.c (cselib_subst_to_values): Use it. Only modify an
2277 rtx field if the subrtx has changed.
2279 2009-10-22 Anatoly Sokolov <aesok@post.ru>
2281 * config/m32c/m32c.c (m32c_function_value_regno_p): New function.
2282 (m32c_function_value): Make static, add new 'outgoing' argument.
2283 (m32c_libcall_value): Make static, add new 'fun' argument.
2284 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2285 * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2286 (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
2287 * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
2288 (m32c_function_value, m32c_libcall_value): Delete declaration.
2290 2009-10-22 Diego Novillo <dnovillo@google.com>
2292 * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.
2294 2009-10-22 Razya Ladelsky <razya@il.ibm.com>
2296 * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
2299 2009-10-22 Richard Guenther <rguenther@suse.de>
2301 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
2302 * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
2303 (lto_symtab_merge): Do not merge cgraph nodes here.
2304 (lto_symtab_resolve_can_prevail_p): Simplify.
2305 (lto_symtab_resolve_symbols): Store cgraph node.
2306 (lto_symtab_merge_decls_1): Simplify. Do not drop non-prevailing
2307 functions from the symtab.
2308 (lto_symtab_merge_cgraph_nodes_1): New function.
2309 (lto_symtab_merge_cgraph_nodes): Likewise.
2311 2009-10-22 Richard Guenther <rguenther@suse.de>
2314 * lto-streamer-out.c (lto_output_location): Stream the
2316 * lto-streamer-in.c (lto_input_location): Likewise.
2318 2009-10-22 Razya Ladelsky <razya@il.ibm.com>
2320 * cfgloopmanip.c (duplicate_subloops): Export.
2321 * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
2322 (transform_to_exit_first_loop): Duplicate bbs starting from
2323 header up to loop->latch instead of exit->src.
2324 Initialize control variable to the correct number of iterations.
2325 (gather_scalar_reductions): Do not register double reductions.
2326 (parallelize_loops): Dump which loop is tested.
2327 Indicate whether the parallelized loop is inner or not.
2328 Remove the innermost-loop requirement.
2329 * cfgloop.h (duplicate_subloops): Export.
2330 * tree-cfg.c (add_phi_args_after_redirect): New function.
2331 (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
2332 Call duplicate_subloops.
2333 Update number of iterations at the exit condition.
2334 Don't redirect nexits always to the loop exit.
2335 Redirect copied edges from latch to the loop exit.
2337 2009-10-22 Jan Hubicka <jh@suse.cz>
2339 * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
2341 * ipa-inline.c (cgraph_mark_inline_edge,
2342 cgraph_decide_inlining_of_small_function,
2343 cgraph_decide_inlining, inline_read_summary): Disable indirect
2344 inlining for WPA for time being.
2346 PR tree-optimize/40556
2347 * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
2349 2009-10-22 Richard Guenther <rguenther@suse.de>
2351 * lto-streamer.h (lto_symtab_clear_resolution): Remove.
2352 * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
2354 2009-10-22 Jan Hubicka <jh@suse.cz>
2357 * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
2359 (check_call): Handle only indirect calls.
2360 (propagate_bits): Update comment.
2361 (write_node_summary_p): Turn bogus check to assert.
2362 (ipa_reference_write_summary): Stream calls_read_all properly.
2363 (ipa_reference_read_summary): Stream in calls_read_all properly.
2364 (read_write_all_from_decl): New function.
2365 (propagate): Handle OVERWRITABLE nodes and external calls here.
2366 * ipa-pre-const.c (check_call): In IPA mode handle indirect
2368 (analyze_function): Do not check visibility here.
2369 (add_new_function): We summary OVERWRITABLE too.
2370 (generate_summary): Stream OVERWRITABLE nodes too.
2371 (propagate): Handle external calls and OVERWRITABLE nodes here.
2372 (local_pure_const): Check visibility here.
2374 2009-10-22 Jan Hubicka <jh@suse.cz>
2376 * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
2377 (pass_ipa_cp): Register them.
2378 (ipcp_init_stage): Analyze all functions for whopr/lto.
2379 (ipcp_propagate_stage): Skip external calls.
2380 (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
2381 * ipa-reference.c (write_node_summary_p): Fix thinko about
2383 * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
2384 when in ltrans, skip executing of ipa passes since everything
2385 should've been done.
2386 * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
2387 (inline_generate_summary): Likewise.
2388 (inline_read_summary): New function.
2389 (inline_write_summary): New function.
2390 (pass_ipa_inline): Register new hooks.
2391 * ipa-prop.c: Inlcude lto-streamer.h
2392 (ipa_edge_args_vector): Update declaration.
2393 (ipa_count_arguments, ipa_compute_jump_functions,
2394 ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
2395 (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
2396 ipa_read_node_info): New static functions.
2397 (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
2398 (duplicate_array): Use xmalloc.
2399 (duplicate_ggc_array): New.
2400 (ipa_edge_duplication_hook): Use it.
2401 (ipa_update_after_lto_read): New function.
2402 * ipa-prop.h (ipa_prop_write_jump_functions,
2403 ipa_prop_read_jump_functions): Declare.
2404 (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
2405 jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
2406 (ipa_edge_args_vector): Move into GGC.
2407 (ipa_check_create_edge_args): Update.
2408 (ipa_update_after_lto_read): New.
2409 * passes.c (ipa_write_summaries_1): When in wpa, do not write
2411 (ipa_read_summaries): When in ltrans, so not read summaries.
2412 * lto-streamer.c (lto_get_section_name): Add
2413 LTO_section_jump_functions.
2414 * lto-streamer.h (LTO_section_jump_functions): New section.
2415 (produce_asm): Declare.
2416 * lto-cgraph.c (output_cgraph): Output edges in reverse order.
2417 * lto-streamer-out.c (produce_asm): Export.
2418 * lto-streamer-in.c: Include tree-pass.h
2419 (input_function): Free dominance info when done.
2420 (lto_read_body): Push ipa_inline in ltrans stage.
2421 * gengtype.c (open_base_files): Add ipa-prop.h into includes.
2422 * Makefile.in (GTFILES): Add ipa-prop.h
2424 2009-10-22 Matthias Klose <doko@ubuntu.com>
2426 * doc/install.texi: Document --enable-browser-plugin.
2428 2009-10-21 Vladimir Makarov <vmakarov@redhat.com>
2430 * doc/invoke.texi (fira-loop-pressure): Update default value.
2431 * opts.c (decode_options): Remove default value setting for
2432 flag_ira_loop_pressure.
2433 * config/ia64/ia64.c (ia64_override_options): Set
2434 flag_ira_loop_pressure up for -O3.
2435 * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
2437 2009-10-21 Sebastian Pop <sebastian.pop@amd.com>
2439 PR tree-optimization/41497
2440 * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
2441 chrec_dont_know if the evolution function returned by follow_ssa_edge
2442 is constant in the analyzed loop and is not compatible with the
2443 initial value before the loop.
2444 * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
2446 2009-10-21 Joseph Myers <joseph@codesourcery.com>
2448 * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
2450 2009-10-21 Jakub Jelinek <jakub@redhat.com>
2453 * doc/invoke.texi: Document -print-multi-os-directory.
2455 2009-10-21 Jack Howarth <howarth@bromo.med.uc.edu>
2458 * gcc/config/darwin10.h: Use default_emit_unwind_label.
2459 * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
2460 when darwin_emit_unwind_label is used.
2462 2009-10-21 Eric Botcazou <ebotcazou@adacore.com>
2464 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
2467 2009-10-20 Richard Henderson <rth@redhat.com>
2469 * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
2470 before emit_post_landing_pad.
2472 2009-10-20 Adam Nemet <anemet@caviumnetworks.com>
2474 * config/mips/mips.c (mips_binary_cost): Add new argument speed.
2475 Use when calling rtx_costs.
2476 (mips_rtx_costs): Fix formatting. Use argument speed rather than the
2477 global optimize_size. Pass speed to mips_binary_cost.
2479 2009-10-20 Jakub Jelinek <jakub@redhat.com>
2481 * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
2484 2009-10-20 Richard Sandiford <rdsandiford@googlemail.com>
2486 * rtl.h (simplify_replace_fn_rtx): Declare.
2487 (wrap_constant, unwrap_constant): Delete.
2488 * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
2489 (expand_debug_expr): Don't call wrap_constant.
2490 * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
2491 (auto_adjust_pair): Fold into...
2492 (propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC.
2493 Just return a new value.
2494 (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
2495 otherwise use simplify_replace_rtx.
2496 * cselib.c (wrap_constant): Reinstate old definition.
2497 (cselib_expand_value_rtx_1): Don't wrap constants.
2498 * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
2499 simplify_replace_rtx.
2500 (bypass_block): Fix formatting in calls to simplify_replace_rtx.
2501 * reload1.c (reload): Skip all uses for an insn before adjusting it.
2502 Use simplify_replace_rtx.
2503 * simplify-rtx.c (simplify_replace_fn_rtx): New function,
2505 (simplify_replace_rtx): ...here. Turn into a wrapper for
2506 simplify_replace_fn_rtx.
2507 (simplify_unary_operation): Don't unwrap CONSTs.
2508 * var-tracking.c (check_wrap_constant): Delete.
2509 (vt_expand_loc_callback): Don't call it.
2510 (vt_expand_loc): Likewise.
2512 2009-10-20 Pascal Obry <obry@adacore.com>
2513 Eric Botcazou <ebotcazou@adacore.com>
2515 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
2517 2009-10-20 Michael Matz <matz@suse.de>
2519 * loop-invariant.c (create_new_invariant): Use different magic number.
2521 2009-10-20 Richard Earnshaw <rearnsha@arm.com>
2524 * arm.c (arm_override_options): Forcibly disable hot/cold block
2527 2009-10-20 Alexandre Oliva <aoliva@redhat.com>
2530 * haifa-sched.c (try_ready): Skip debug deps updating speculation
2533 2009-10-20 Richard Guenther <rguenther@suse.de>
2535 * ggc-page.c: Include cfgloop.h.
2536 (struct max_alignment): Drop long double, add void *.
2537 (extra_order_size_table): Add low non-power-of-two multiples
2538 of MAX_ALIGNMENT. Drop small type-based entries, add
2539 tree_type, cgraph_node and loop.
2540 * alloc-pool.c (struct allocation_object_def): Drop long double
2543 2009-10-20 Jakub Jelinek <jakub@redhat.com>
2546 * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
2547 referenced just in DEBUG_INSNs.
2549 2009-10-20 Richard Guenther <rguenther@suse.de>
2552 * gimple.c (gimple_register_type): Make sure we register
2553 the types main variant first.
2555 2009-10-20 Richard Guenther <rguenther@suse.de>
2557 * gimple.c (gimple_types_compatible_p): Simplify. Move
2558 cheap checks before hashtable queries. Add checks for
2559 TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
2561 2009-10-20 Eric Botcazou <ebotcazou@adacore.com>
2563 * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
2564 without size or with size that can't be represented as a host integer.
2566 2009-10-20 Alexandre Oliva <aoliva@redhat.com>
2568 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
2569 the removal of a debug stmt as a significant change.
2571 2009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com>
2573 * config/s390/s390.md: Added agen condition to operand
2574 forwarding bypasses. Added bypass for early address generation
2575 use of int results. Updated comments.
2577 2009-10-20 Stefan Dösinger <stefan@codeweavers.com>
2579 * config/i386/i386.c: Remove signal.h #include.
2581 2009-10-20 Jie Zhang <jie.zhang@analog.com>
2583 * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
2584 * doc/rtl.texi: Document ss_abs.
2586 2009-10-19 Jakub Jelinek <jakub@redhat.com>
2588 * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
2589 * c-lex.c (c_lex_with_flags): Likewise. Test C_LEX_STRING_NO_JOIN
2590 instead of C_LEX_RAW_STRINGS.
2591 (lex_string): Handle CPP_UTF8STRING.
2592 * c-parser.c (c_parser_postfix_expression): Likewise.
2593 * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
2594 (C_LEX_STRING_NO_JOIN): ... this.
2596 2009-10-19 Anatoly Sokolov <aesok@post.ru>
2598 * config/cris/cris.c (cris_function_value, cris_libcall_value,
2599 cris_function_value_regno_p): New functions.
2600 (cris_promote_function_mode): Update comment.
2601 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2602 * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2603 (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
2604 * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
2606 2009-10-19 Jakub Jelinek <jakub@redhat.com>
2608 * unwind-dw2.c (execute_stack_op): Fix operand order for
2609 DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
2611 2009-10-19 Eric Botcazou <ebotcazou@adacore.com>
2613 * gimple-low.c (struct lower_data): Add cannot_fallthru field.
2614 (lower_stmt) <GIMPLE_BIND>: Add comment.
2615 <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
2617 <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
2618 Otherwise lower it and set cannot_fallthru to true.
2619 <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
2620 <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
2621 <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
2622 to true for a noreturn call. Do not remove statements.
2623 <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
2624 Set cannot_fallthru to false on function exit.
2625 (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
2626 <GIMPLE_ASSIGN>: Remove.
2628 2009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2630 * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
2632 2009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2634 * config/s390/s390.c (s390_z10_optimize_cmp): Use
2635 next/prev_active_insn to skip DEBUG_INSNs as well.
2637 2009-10-19 Joseph Myers <joseph@codesourcery.com>
2639 * config/arm/arm.c (output_move_neon): Use DImode in call to
2642 2009-10-19 Matthias Klose <doko@ubuntu.com>
2645 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
2647 2009-10-19 Jakub Jelinek <jakub@redhat.com>
2649 * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
2651 2009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2654 * optabs.c (expand_binop): Make mode of shift count expression mode
2655 of shift count not target.
2658 2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
2660 * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
2661 case. Force using values to replace references within the statement.
2662 (convert_local_reference_stmt): Likewise.
2664 2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
2666 * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
2667 remove a subsequent GOTO or RETURN statement.
2669 2009-10-17 Andy Hutchinson <hutchinsonandy@aim.com>
2671 * config/avr.md (*movqi): Add zero as equally preferable constraint
2672 as general register.
2675 2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
2677 * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
2679 2009-10-17 Richard Guenther <rguenther@suse.de>
2681 * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
2683 2009-10-17 Richard Guenther <rguenther@suse.de>
2685 * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
2686 operands in COMPONENT_REFs.
2688 2009-10-17 Anatoly Sokolov <aesok@post.ru>
2690 * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
2691 if not defined. Change type of second argument to const_rtx.
2692 (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
2694 * targhooks.h (default_libcall_value): Update prototype.
2695 * target.h (struct gcc_target): Change type of second argument of
2696 libcall_value to const_rtx.
2697 * config/arm/arm.c (arm_libcall_value): Change type of second argument
2699 (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
2700 * doc/tm.texi (TARGET_LIBCALL_VALUE): Revise documentation.
2702 2009-10-17 Jakub Jelinek <jakub@redhat.com>
2705 * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
2706 * cgraphunit.c (cgraph_optimize): Call it.
2707 * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
2708 (dwarf2out_assembly_start): ... here. New hook.
2709 (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
2710 * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
2712 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2713 * sdbout.c (sdb_debug_hooks): Likewise.
2714 * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
2715 (vmsdbgout_assembly_start): New hook.
2717 2009-10-17 Alexandre Oliva <aoliva@redhat.com>
2719 * rtl.h (RTL_LOCATION): Fix typo.
2721 2009-10-17 Alexandre Oliva <aoliva@redhat.com>
2723 * print-rtl.c (print_rtx): Print locators in asm_operands
2726 2009-10-17 Alexandre Oliva <aoliva@redhat.com>
2729 * sched-deps.c (depl_on_debug_p): New.
2730 (attach_dep_link): Reject debug deps before nondebug deps.
2731 (add_to_deps_list): Insert debug deps after nondebug deps.
2732 (sd_lists_empty_p): Stop at first nonempty list. Disregard debug
2734 (sd_add_dep): Do not reject debug deps.
2735 (add_insn_mem_dependence): Don't count debug deps.
2736 (remove_from_deps): Likewise.
2737 (sched_analyze_2): Set up mem deps on debug insns.
2738 (sched_analyze_insn): Record reg uses for deps on debug insns.
2739 * haifa-sched.c (schedule_insn): Reset deferred debug insn. Don't
2740 try_ready nondebug insn after debug insn.
2741 * ddg.c (create_ddg_dep_from_intra_loop_link,
2742 create_ddg_dep_no_link): Don't reject debug deps.
2744 2009-10-16 Richard Guenther <rguenther@suse.de>
2746 * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
2747 (maybe_merge_incomplete_and_complete_type): Likewise.
2748 (lto_symtab_merge): Do not call them. Do not warn for
2749 complete vs. incomplete compatible types.
2750 (lto_symtab_merge_decls_2): Simplify.
2751 * gimple.c (gimple_force_type_merge): Remove.
2752 (gimple_types_compatible_p): Make it static.
2753 * gimple.h (gimple_force_type_merge): Remove.
2754 (gimple_types_compatible_p): Likewise.
2756 2009-10-16 Jakub Jelinek <jakub@redhat.com>
2758 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
2759 DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
2761 2009-10-16 Richard Guenther <rguenther@suse.de>
2763 PR tree-optimization/41728
2764 * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
2765 if fold_stmt did anything.
2767 2009-10-16 Richard Guenther <rguenther@suse.de>
2770 * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
2771 (maybe_fixup_handled_component): New function.
2772 (input_gimple_stmt): Fixup mismatched decl replacements.
2774 2009-10-16 Richard Guenther <rguenther@suse.de>
2777 * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
2778 the same as VAR_DECL.
2780 2009-10-16 Richard Guenther <rguenther@suse.de>
2782 * gimple.c (iterative_hash_gimple_type): For integer types
2783 also hash their minimum and maximum values and the string flag.
2784 For array types hash their domain and the string flag.
2786 2009-10-16 Richard Guenther <rguenther@suse.de>
2788 * gimple.c (gimple_types_compatible_p): Restrict completing
2789 types to record or unions. Simplify completion.
2790 Do not merge records or unions with different
2791 TYPE_STRUCTURAL_EQUALITY_P tag.
2792 (iterative_hash_gimple_type): Restrict non-recursing into
2793 pointer targets for records and unions.
2795 2009-10-15 Jakub Jelinek <jakub@redhat.com>
2798 * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
2799 * dwarf2out.c (mem_loc_descriptor): Don't handle
2800 POST_INT/POST_DEC/POST_MODIFY like SUBREG. For SUBREG
2801 punt if it is not lowpart subreg or if inner mode isn't
2804 2009-10-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2806 * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
2807 investigating previous or next insns.
2809 2009-10-16 Eric Botcazou <ebotcazou@adacore.com>
2811 * tree-sra.c (build_ref_for_offset_1): Update comment.
2813 2009-10-16 Wolfgang Gellerich <gellerich@de.ibm.com>
2815 * config/s390/s390.md (atype): Added missing values.
2817 2009-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2820 * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
2821 (casesi64p): Update pattern to reflect above.
2823 2009-10-15 Steve Ellcey <sje@cup.hp.com>
2825 PR rtl-optimization/41697
2826 * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
2828 2009-10-15 Michael Meissner <meissner@linux.vnet.ibm.com>
2831 * config/rs6000/predicates.md: Update copyright year.
2832 * config/rs6000/altivec.md: Ditto.
2834 * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
2835 (MD_INCLUDES): Add a2.md.
2837 * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
2838 RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
2839 (builtin_classify): New static vector to classify various builtins
2840 to get the tree attributes correct.
2841 (def_builtin): Set the attributes of builtins based on what the
2842 builtin does (i.e. memory operation, floating point, saturation
2843 need special attributes, others are pure functions).
2845 * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
2847 (enum rs6000_builtins): Include rs6000-builtin.def to define the
2848 builtins. Change the end marker to MAX_RS6000_BUILTINS from
2849 RS6000_BUILTIN_COUNT.
2850 (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
2851 MAX_RS6000_BUILTINS.
2853 * config/rs6000/rs6000-builtin.def: New file that combines the
2854 builtin enumeration name and attributes.
2856 2009-10-15 H.J. Lu <hongjiu.lu@intel.com>
2858 * config/i386/linux.h (ASM_SPEC): Add --32.
2860 2009-10-15 Jakub Jelinek <jakub@redhat.com>
2862 * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
2863 and DW_TAG_template_alias.
2864 (dwarf_attr_name): Handle DW_AT_main_subprogram,
2865 DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
2866 DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
2867 DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
2868 DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
2869 and DW_AT_GNU_odr_signature.
2870 (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
2871 DW_FORM_flag_present and DW_FORM_ref_sig8.
2872 (output_signature): Only print name on the first byte.
2873 (output_die): Likewise for dw_val_class_data8.
2875 2009-10-15 Alexander Monakov <amonakov@ispras.ru>
2877 * doc/invoke.texi: Clarify that most optimizations are not enabled
2880 2009-10-15 Richard Guenther <rguenther@suse.de>
2883 * gimple.c (compare_type_names_p): Handle anonymous names
2884 differently based on new mode argument.
2885 (gimple_types_compatible_p): For structs also compare the tags.
2886 (iterative_hash_type_name): Rename to ...
2887 (iterative_hash_name): ... this. Hash all names.
2888 (iterative_hash_gimple_type): Fix hashing the struct tag of
2889 pointer targets. Hash field decl names.
2891 2009-10-15 Richard Guenther <rguenther@suse.de>
2894 * gimple.c (gimple_get_alias_set): Avoid recursing on
2895 invalid type topology.
2897 2009-10-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2899 * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
2901 2009-10-15 Richard Guenther <rguenther@suse.de>
2903 * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
2905 2009-10-15 Jakub Jelinek <jakub@redhat.com>
2907 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
2908 add --with-tune{,-32,-64} configured default for -mtune if explicit
2911 2009-10-14 Daniel Gutson <dgutson@codesourcery.com>
2913 * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
2915 2009-10-14 DJ Delorie <dj@redhat.com>
2917 * config/h8300/h8300.c (F): New.
2919 (h8300_emit_stack_adjustment): Call them.
2921 (h8300_push_pop): Likewise.
2922 (h8300_expand_prologue): Likewise.
2923 * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
2924 (MUST_USE_SJLJ_EXCEPTIONS): Define.
2925 (INCOMING_RETURN_ADDR_RTX): Define.
2926 (INCOMING_FRAME_SP_OFFSET): Define.
2927 (DWARF_CIE_DATA_ALIGNMENT): Define.
2929 2009-10-14 Jakub Jelinek <jakub@redhat.com>
2931 * stor-layout.c (place_field): Don't emit -Wpadded warnings for
2932 fields in builtin structs.
2933 (finalize_record_size): Likewise.
2935 2009-10-14 Richard Guenther <rguenther@suse.de>
2937 * gimple.c (gtc_ob): New global.
2938 (struct type_pair_d): Replace pointers with type UIDs.
2939 (type_pair_hash): Adjust.
2940 (type_pair_eq): Likewise.
2941 (lookup_type_pair): Likewise. Allocate from an obstack.
2942 (gimple_force_type_merge): Adjust.
2943 (gimple_types_compatible_p): Likewise.
2944 (free_gimple_type_tables): Free the obstack.
2946 2009-10-14 Jakub Jelinek <jakub@redhat.com>
2948 * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
2949 stmts setting DEBUG_EXPR_DECLs.
2951 * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
2952 Don't crash if mode1 is VOIDmode.
2954 2009-09-26 Vladimir Makarov <vmakarov@redhat.com>
2956 * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
2957 * params.h (IRA_LOOP_RESERVED_REGS): New.
2958 * tree-pass.h (pass_subregs_of_mode_init,
2959 pass_subregs_of_mode_finish): Remove.
2960 * passes.c (pass_subregs_of_mode_init,
2961 pass_subregs_of_mode_finish): Remove.
2962 (pass_reginfo_init): Move before loop optimizations.
2963 * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
2964 * common.opt (fira-loop-pressure): New.
2965 * toplev.h (flag_ira_loop_pressure): New.
2966 * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
2967 * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
2968 Make external and void type functions.
2969 (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
2970 pass_subregs_of_mode_finish): Remove.
2971 * ira-costs.c (init_costs): Call init_subregs_of_mode.
2972 * regmove.c: Include ira.h.
2973 (regmove_optimize): Call ira_set_pseudo_classes after IRA based
2974 register pressure calculation in loops.
2975 * loop-invariant.c: Include REGS_H and ira.h.
2976 (struct loop_data): New members max_reg_pressure, regs_ref, and
2978 (struct invariant): New member orig_regno.
2979 (curr_loop): New variable.
2980 (find_exits): Initialize regs_ref and regs_live.
2981 (create_new_invariant): Initialize orig_regno.
2982 (get_cover_class_and_nregs): New.
2983 (get_inv_cost): Make aregs_needed an array. Use regs_needed as an
2984 array. Add code for flag_ira_loop_pressure.
2985 (gain_for_invariant): Make new_regs an array. Add code for
2986 flag_ira_loop_pressure.
2987 (best_gain_for_invariant): Ditto.
2988 (set_move_mark): New parameter gain. Use it for debugging output.
2989 (find_invariants_to_move): Make regs_needed and new_regs an array.
2990 Add code for flag_ira_loop_pressure.
2991 (move_invariant_reg): Set up orig_regno.
2992 (move_invariants): Set up reg classes for pseudos for
2993 flag_ira_loop_pressure.
2994 (free_loop_data): Clear regs_ref and regs_live.
2995 (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
2996 get_regno_cover_class, change_pressure, mark_regno_live,
2997 mark_regno_death, mark_reg_store, mark_reg_clobber,
2998 mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
2999 (move_loop_invariants): Calculate pressure. Initialize curr_loop.
3000 * ira.c (ira): Call ira_set_pseudo_classes after IRA based
3001 register pressure calculation in loops if new regs were added.
3002 Call finish_subregs_of_mode.
3003 * opts.c (decode_options): Set up flag_ira_loop_pressure.
3004 * Makefile.in (loop-invariant.o): Add ira.h.
3006 * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
3008 * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
3010 2009-10-14 Richard Guenther <rguenther@suse.de>
3012 * lto-symtab.c (lto_symtab_compatible): Fold in ...
3013 (lto_symtab_merge): ... here. Rewrite both to take the
3014 prevailing and a to-be-merged entry and to queue diagnostics properly.
3015 (lto_symtab_resolve_replaceable_p): New predicate for
3017 (lto_symtab_resolve_can_prevail_p): Likewise.
3018 (lto_symtab_resolve_symbols): Rewrite. Fold in code that
3019 handles merging commons by choosing the largest decl. Fold
3020 in code that gives ODR errors.
3021 (lto_symtab_merge_decls_2): Simplify a lot. Emit queued
3023 (lto_symtab_merge_decls_1): Re-structure. Deal with the
3024 case of no prevailing decl here. Diagnose mismatches
3025 in object types here. Drop all but the prevailing decls.
3026 (lto_symtab_prevailing_decl): Return the single prevailing decl.
3027 * lto-streamer-in.c (lto_input_tree_ref): Deal with
3028 VIEW_CONVERT_EXPRs in decl slots. Unshare the tree in this case.
3030 2009-10-14 Richard Guenther <rguenther@suse.de>
3033 * lto-streamer-in.c (input_bb): Replace debug stmts with
3034 nops instead of dropping them.
3036 2009-10-14 Nick Clifton <nickc@redhat.com>
3038 * gcc/doc/extended.texi: Replace the dash character with @minus{}
3039 in situations where it is being used as a minus symbol.
3040 * gcc/doc/tm.texi: Likewise.
3041 * gcc/doc/md.texi: Likewise.
3043 2009-10-14 Jakub Jelinek <jakub@redhat.com>
3045 PR preprocessor/41543
3046 * input.h (BUILTINS_LOCATION): Change to 1 from 2.
3047 Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
3048 * tree.c: Include intl.h.
3049 (expand_location): Handle BUILTINS_LOCATION.
3050 * Makefile.in (tree.o): Depend on intl.h.
3053 * dwarf2out.c (dwarf2out_var_location): Always clear
3054 last_postcall_label when changing last_label.
3056 2009-10-14 Pascal Obry <obry@adacore.com>
3058 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
3059 (process_command): Handle -E as done with -c and -S. Do not add
3060 the target executable suffix to the output file when -E is used.
3061 (main): Adjust error message accordingly.
3063 2009-10-14 Alexandre Oliva <aoliva@redhat.com>
3069 * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
3071 (tree_code_size): Likewise.
3073 2009-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3075 * builtins.c (fold_builtin_1): Support complex "arc" functions.
3076 * real.h (HAVE_mpc_arc): Define.
3078 2009-10-14 Kaz Kojima <kkojima@gcc.gnu.org>
3080 * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
3081 (struct builtin_description): Add fndecl field.
3082 (bdesc): Remove const qualifier. Update initializer.
3083 (sh_media_init_builtins): Remove const qualifier for d. Record
3084 the result of add_builtin_function to the fndecl field.
3085 (sh_builtin_decl): New.
3086 (sh_media_builtin_decl): New.
3088 2009-10-14 Hans-Peter Nilsson <hp@axis.com>
3091 * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
3092 requests between special registers.
3094 2009-10-13 Eric Botcazou <ebotcazou@adacore.com>
3096 * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
3098 2009-10-13 Richard Henderson <rth@redhat.com>
3100 PR tree-optimization/41377
3101 * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
3102 (cleanup_empty_eh_merge_phis): New change_region parameter;
3103 pass it on to redirect_eh_edge_1. Update callers.
3104 (cleanup_empty_eh_unsplit): Don't require an existing EH label
3105 at the destination block.
3107 2009-10-13 Basile Starynkevitch <basile@starynkevitch.net>
3109 * passes.c (register_pass): Replaced gcc_unreachable by
3110 fatal_error on failure. Mentions plugins in comments & messages.
3112 2009-10-13 Jakub Jelinek <jakub@redhat.com>
3115 * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
3116 * sched-vis.c (print_value): Use it.
3117 * cselib.c (cselib_hash_rtx): Likewise.
3118 * print-rtl.c (print_rtx): Likewise.
3119 * cfgexpand.c (expand_debug_rtx): Likewise.
3120 * var-tracking.c (vt_expand_loc_callback): Likewise.
3122 2009-10-13 Richard Guenther <rguenther@suse.de>
3125 * opts.c (handle_option): Split out code to handle setting
3126 the options flag var ...
3127 (set_option): ... here.
3128 * opts.h (set_option): Declare.
3129 * lto-opts.c (register_user_option_p): Include -fexceptions
3130 and all position independent code variants.
3131 (handle_common_option): Remove.
3132 (lto_reissue_options): Use set_option.
3134 2009-10-13 Martin Jambor <mjambor@suse.cz>
3136 PR tree-optimization/41661
3137 * ipa-prop.c (compute_complex_pass_through): Allow only operations
3138 that are tcc_comparisons or do not change the type in any
3140 * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
3141 folding tcc_comparison operations.
3143 2009-10-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3145 * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
3148 2009-10-12 Alexandre Oliva <aoliva@redhat.com>
3154 * tree.def (DEBUG_EXPR_DECL): New.
3155 * rtl.def (DEBUG_EXPR): New.
3156 * gengtype.c (adjust_field_rtx_def): Handle it.
3157 * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
3158 (insert_debug_temp_for_var_def): ... this. Drop support for
3159 moving. Take iterator for def stmt; insert debug stmt before it.
3160 Scan early for use count and kind in debug stmts.
3161 (propagate_defs_into_debug_stmts): Rename to...
3162 (insert_debug_temps_for_defs): ... this. Likewise.
3163 * tree.h (DEBUG_TEMP_UID): New.
3164 * tree.c (next_debug_decl_uid): New.
3165 (make_node_stat): Count debug decls separately.
3166 (copy_node_stat): Likewise.
3167 * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
3168 * var-tracking.c (dv_is_decl_p): Recognize it.
3169 (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
3170 (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
3171 (vt_expand_loc_callback): Expand DEBUG_EXPRs.
3172 (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
3173 * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
3174 (cselib_hash_rtx): Likewise.
3175 (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
3176 * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
3178 * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
3179 (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
3180 * rtl.c (copy_rtx): Likewise.
3181 (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
3182 * print-rtl.c (print_rtx): Likewise.
3183 * sched-vis.c (print_value): Likewise.
3184 (print_insn): Handle DEBUG_EXPR_DECL.
3185 * tree-dump.c (dequeue_and_dump): Likewise.
3186 * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
3187 * gimple-iterator (gsi_replace): Check for same lhs.
3188 (gsi_remove): Insert debug temps.
3189 * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
3190 (move_computations_stmt): Drop explicit propagation into debug stmts.
3191 (rewrite_bittest): Likewise. Use gsi_remove for propagation.
3192 * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
3193 * tree-ssa-sink.c (statement_sink_location): Likewise.
3194 * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
3195 * tree-ssanames.c (release_ssa_name): Adjust for rename.
3196 * tree-flow.h: Likewise.
3197 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
3198 debug temps without values.
3199 (eliminate_unnecessary_stmts): Don't discard just-inserted
3202 2009-10-12 Hans-Peter Nilsson <hp@axis.com>
3205 * config/cris/cris.md (andu): Check that operand 1 is one of the
3206 general registers. Fix typo in head comment.
3208 2009-10-12 Stefan Dösinger <stefan@codeweavers.com>
3210 * config/i386/i386.md (vswapmov): New.
3211 * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
3212 (ix86_function_ms_hook_prologue): New.
3213 (ix86_expand_prologue): Handle ms_hook_prologue attribute.
3214 * configure.ac: Test for swap suffix support in as.
3215 * configure: Rebuild.
3217 2009-10-12 Jakub Jelinek <jakub@redhat.com>
3220 * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
3221 paradoxical subregs to prevent partial register stalls if the inner
3222 mode is integer mode.
3224 2009-10-12 Uros Bizjak <ubizjak@gmail.com>
3226 * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
3228 2009-10-12 Dodji Seketeli <dodji@redhat.com>
3231 * gcc/dwarf2out.c (template_parameter_pack_die,
3232 gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
3234 2009-10-12 Alexandre Oliva <aoliva@redhat.com>
3237 * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
3239 (maybe_register_def): Likewise. Take stmt iterator.
3240 (rewrite_update_stmt): Take stmt iterator and pass it on.
3241 (rewrite_update_enter_block): Pass stmt iterator.
3243 2009-10-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3245 * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
3246 (spu_builtin_decl): New function.
3248 2009-10-12 Uros Bizjak <ubizjak@gmail.com>
3250 * config/i386/i386.md (SWIM): New mode iterator.
3251 (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
3252 using SWIM mode iterator.
3253 (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
3254 patterns using SWI48 mode iterator.
3255 (*x86_mov<mode>cc_0_m1_se): Macroize insn from
3256 *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
3257 (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
3258 (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
3259 patterns using SWI248 mode iterator.
3260 * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
3261 gen_x86_movdicc_0_m1_rex64 for renamed function
3263 2009-10-11 Jose Ruiz <ruiz@adacore.com>
3264 Eric Botcazou <ebotcazou@adacore.com>
3267 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
3268 * config/sparc/sol2-unwind.h: New file.
3270 2009-10-11 Olivier Hainque <hainque@adacore.com>
3271 Eric Botcazou <ebotcazou@adacore.com>
3274 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
3275 * config/i386/sol2-unwind.h: New file.
3277 2009-10-11 H.J. Lu <hongjiu.lu@intel.com>
3280 * config/i386/i386.md (addsi_1_zext): Get the proper second
3283 2009-10-11 Richard Sandiford <rdsandiford@googlemail.com>
3285 * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
3286 all OLD_RTXes, not just REGs. Use copy_rtx to create the
3289 2009-10-11 Richard Guenther <rguenther@suse.de>
3291 * gimple.c (iterative_hash_type_name): Do not handle special
3294 2009-10-11 Uros Bizjak <ubizjak@gmail.com>
3296 * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
3297 (*setcc_si_1_and): Ditto.
3298 (*setcc_si_1_movzbl): Ditto.
3299 (*setcc_<mode>_2): Ditto.
3300 (*setcc_qi): Rename from *setcc_1.
3301 (*setcc_qi_slp): Rename from *setcc_2.
3303 (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
3304 (*zero_extendqisi2_movzbw_and splitter): Ditto.
3306 * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
3307 "if" condition, there is already assert with reload_completed present.
3309 2009-10-11 Gerald Pfeifer <gerald@pfeifer.com>
3311 * plugin.c (try_init_one_plugin): Improve constness of variable err.
3313 2009-10-10 Gerald Pfeifer <gerald@pfeifer.com>
3315 * doc/install.texi (Final install): Refer to
3316 http://gcc.gnu.org/bugs/ for bug reporting.
3318 2009-10-10 Peter Bergner <bergner@vnet.ibm.com>
3320 * configure.ac: Add test for dci instruction.
3321 * configure: Regenerate.
3322 * config.in: Likewise.
3323 * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
3324 * doc/invoke.texi: Add cpu_type 476 and 476fp.
3325 (-mmulhw): Add 476 to description.
3326 (-mdlmzb): Likewise.
3327 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
3328 * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
3329 (processor_target_table): Add 476 and 476fp entries.
3330 (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
3331 (rs6000_issue_rate): Add CPU_PPC476.
3332 * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
3333 (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
3334 (processor_type): Add PROCESSOR_PPC476.
3335 (EXTRA_SPECS): Add asm_cpu_476 string.
3336 * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
3337 (define_attr "cpu"): Add ppc476.
3339 Update comments for 476.
3340 (isel_signed, isel_unsigned): Change to use "isel" type attribute.
3341 * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
3342 Update copyright year.
3343 * config/rs6000/476.md: New file.
3344 * config/rs6000/40x.md: Add description for "isel" attribute.
3345 Update copyright year.
3346 * config/rs6000/440.md: Likewise.
3347 * config/rs6000/603.md: Likewise.
3348 * config/rs6000/6xx.md: Likewise.
3349 * config/rs6000/7450.md: Likewise.
3350 * config/rs6000/7xx.md: Likewise.
3351 * config/rs6000/8540.md: Likewise.
3352 * config/rs6000/cell.md: Likewise.
3353 * config/rs6000/e300c2c3.md: Likewise.
3354 * config/rs6000/e500mc.md: Likewise.
3355 * config/rs6000/mpc.md: Likewise.
3356 * config/rs6000/power4.md: Likewise.
3357 * config/rs6000/power5.md: Likewise.
3358 * config/rs6000/power6.md: Likewise.
3359 * config/rs6000/power7.md: Likewise.
3360 * config/rs6000/rios1.md: Likewise.
3361 * config/rs6000/rios2.md: Likewise.
3362 * config/rs6000/rs64.md: Likewise.
3364 2009-10-10 Richard Guenther <rguenther@suse.de>
3366 PR tree-optimization/41654
3367 * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
3368 a cond expr before calling gimple_cond_set_condition_from_tree.
3369 (ifcombine_iforif): Likewise.
3371 2009-10-09 Ian Lance Taylor <iant@google.com>
3373 * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
3374 * configure: Rebuild.
3376 2009-10-09 Neil Vachharajani <nvachhar@google.com>
3378 * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
3381 2009-10-09 Richard Guenther <rguenther@suse.de>
3384 * target-def.h (TARGET_BUILTIN_DECL): Define.
3385 (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
3386 * target.h (struct gcc_target): Add builtin_decl target hook.
3387 * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
3388 * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
3390 * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
3391 not gcc_unreachable.
3392 (lto_output_builtin_tree): Sorry if the target does not support
3393 streaming target builtins.
3394 * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
3395 (rs6000_builtin_decl): New function.
3396 * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
3397 (ix86_builtin_decl): New function.
3399 2009-10-09 Jakub Jelinek <jakub@redhat.com>
3401 PR preprocessor/41445
3402 * c-ppoutput.c (do_line_change): New function.
3403 (cb_line_change): Use it.
3404 (scan_translation_unit): Call do_line_change if
3405 avoid_paste or PREV_WHITE and token location is on a different line
3406 than print.src_line.
3409 * dwarf2out.c (dwarf2out_init): Test whether
3410 HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
3413 PR rtl-optimization/41646
3414 * calls.c (expand_call): For BLKmode types returned in registers
3415 avoid likely spilled hard regs in copy_blkmode_from_reg generated
3418 2009-10-09 Richard Guenther <rguenther@suse.de>
3420 PR tree-optimization/41634
3421 * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
3422 we remove the correct elements.
3423 (optimize_stmt): Make sure to update stmt operands before
3424 optimizing redundancies.
3426 2009-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3428 * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
3430 2009-10-09 Richard Guenther <rguenther@suse.de>
3433 * lto-wrapper.c (ltrans_output_file,&nb