OSDN Git Service

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