OSDN Git Service

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