OSDN Git Service

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