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