OSDN Git Service

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