OSDN Git Service

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