OSDN Git Service

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