OSDN Git Service

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