OSDN Git Service

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