OSDN Git Service

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