OSDN Git Service

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