OSDN Git Service

2009-10-30 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-10-30  Richard Guenther  <rguenther@suse.de>
2
3         PR lto/41858
4         * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
5
6 2009-10-30  Nathan Sidwell  <nathan@codesourcery.com>
7
8         * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
9         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
10         label.
11
12 2009-10-30  Martin Jambor  <mjambor@suse.cz>
13
14         * tree-sra.c (build_ref_for_offset_1): Remove a comment.
15
16 2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
17
18         PR target/40838
19         * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
20         first.  Move assert on stack_alignment_estimated just before
21         setting stack_realign_needed.
22         (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
23         Don't call update_stack_boundary.
24
25         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
26         (verride_options): Don't check ix86_force_align_arg_pointer here.
27         (ix86_function_ok_for_sibcall): Use it.
28         (ix86_update_stack_boundary): Likewise.
29
30         * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
31
32 2009-10-30  Richard Earnshaw  <rearnsha@arm.com>
33
34         * arm.md (QHSI): New mode iterator.
35         (movqi): If generating for thumb, then truncate any immediate to
36         8 bits.
37         * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
38         with...
39         (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
40         version.
41
42 2009-10-29  Cary Coutant  <ccoutant@google.com>
43
44         PR debug/41700
45         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
46         locations in the source).
47         (store_vcall_insn): New function.
48         (lookup_vcall_insn): New function.
49         (dwarf2out_virtual_call_token): Use store_vcall_insn.
50         (dwarf2out_copy_call_info): New function.
51         (dwarf2out_virtual_call): Use lookup_vcall_insn.
52         * emit-rtl.c (try_split): Call copy_call_info debug hook.
53         * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
54         * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
55         (debug_nothing_rtx_rtx): New dummy hook.
56         * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
57         (xcoff_debug_hooks): Likewise.
58         * sdbout.c (sdb_debug_hooks): Likewise.
59         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
60
61 2009-10-29  David Daney  <ddaney@caviumnetworks.com>
62
63         * doc/invoke.texi (mmcount-ra-address): Document new command line
64         option.
65         * config/mips/mips.opt (mmcount-ra-address): New option.
66         * config/mips/mips-protos.h (mips_function_profiler): Declare new
67         function.
68         * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
69         member.
70         (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
71         (mips_function_profiler): Moved from FUNCTION_PROFILER, and
72         rewritten.
73         * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
74         mips_function_profiler.
75
76 2009-10-29  Steve Ellcey  <sje@cup.hp.com>
77
78         PR middle-end/37565
79         PR target/38018
80         * doc/tm.texi (OVERRIDE_OPTIONS): Update.
81         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
82         * optc-gen.awk (cl_target_option_restore): Include call to 
83         targetm.override_options_after_change.
84         * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
85         * target.h (override_options_after_change): New.
86         * c-common.c (parse_optimize_options): Call
87         targetm.override_options_after_change.
88         * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
89         (ia64_override_options_after_change): New.
90         (ia64_override_options) Add call to above.
91
92 2009-10-29  Michael Matz  <matz@suse.de>
93
94         * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
95         (gate_convert_to_rsqrt): Ditto.
96         (pass_convert_to_rsqrt): Ditto.
97         * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
98         * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
99         to pass list.
100
101         * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
102
103 2009-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
104
105         * config/arm/arm.c (find_best_start): Fix type of remainder to be
106         unsigned .
107
108 2009-10-29  Martin Jambor  <mjambor@suse.cz>
109
110         PR tree-optimization/41775
111         * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
112         (generate_subtree_copies): Do not unshare agg.
113         (load_assign_lhs_subreplacements): Do not unshare rhs.
114         (sra_modify_assign): Do not unshare exprs.
115         (propagate_subacesses_accross_link): Renamed to
116         propagate_subaccesses_across_link.
117
118 2009-10-29  Richard Earnshaw  <rearnsha@arm.com>
119
120         * arm.c (count_insns_for_constant): Rework to support counting for
121         thumb2 immediates as well.
122         (find_best_start): Split out from arm_gen_constant.
123         (arm_gen_constant): Rework to support XOR with immediate.
124
125 2009-10-29  Chao-ying Fu  <fu@mips.com>
126
127         * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
128         functions.
129         (mips_expand_synci_loop):  Use the length rtx to control the
130         synci loop from the begin rtx that points to the first byte of
131         the cache line.
132
133 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
134
135         * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
136         
137 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
138
139         * dbxout.c (dbxout_common_check): Accept non public trees.
140         * dwarf2out.c (fortran_common): Accept non public trees.
141
142 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
143
144         * common.opt (fuse-linker-plugin): New option.
145         * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
146         fuse-linker-plugin.
147         * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
148
149 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
150
151         PR rtl-optimization/39715
152         * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
153         (gen_cstoresi_ltu_thumb1): New splitter.
154
155 2009-10-28  Richard Guenther  <rguenther@suse.de>
156
157         PR lto/41808
158         PR lto/41839
159         * tree-ssa.c (useless_type_conversion_p): Do not treat
160         conversions to pointers to incomplete types as useless.
161         * gimple.c (gimple_types_compatible_p): Compare struct tags,
162         not typedef names.
163
164 2009-10-28  Jakub Jelinek  <jakub@redhat.com>
165
166         * var-tracking.c (emit_note_insn_var_location): Don't call the second
167         vt_expand_loc unnecessarily when location is not a register nor
168         memory.
169
170         PR middle-end/41837
171         * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
172         fields don't have DECL_NAME.
173
174         PR debug/41801
175         * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
176         call convert_memory_address on addr.
177
178         PR target/41762
179         * config/i386/i386.c (ix86_pic_register_p): Don't call
180         rtx_equal_for_cselib_p for VALUEs discarded as useless.
181
182 2009-10-28  Richard Sandiford  <rdsandiford@googlemail.com>
183
184         * var-tracking.c (emit_note_insn_var_location): Get the mode of
185         a variable part from its REG, MEM or VALUE.
186
187 2009-10-28  Richard Guenther  <rguenther@suse.de>
188
189         * gimple.c (gimple_get_alias_set): Fix comment typo.
190
191 2009-10-28  Richard Guenther  <rguenther@suse.de>
192
193         * tree.c (free_lang_data_in_type): Do not call get_alias_set.
194         (free_lang_data): Unconditionally compute alias sets for all
195         standard integer types.  Bail out if gate bailed out previously.
196         Do not reset the types_compatible_p langhook.
197         (gate_free_lang_data): Remove.
198         (struct pass_ipa_free_lang_data): Enable unconditionally.
199         * gimple.c (gimple_get_alias_set): Use the same alias-set for
200         all pointer types.
201
202 2009-10-28  Richard Guenther  <rguenther@suse.de>
203
204         PR middle-end/41855
205         * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
206         (ref_maybe_used_by_call_p_1): Fix bcopy handling.
207         (call_may_clobber_ref_p_1): Likewise.
208         * tree-ssa-structalias.c (find_func_aliases): Likewise.
209         * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
210
211 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
212
213         PR rtl-optimization/41812
214
215         Revert:
216         2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
217
218         * df-problems.c (df_md_scratch): New.
219         (df_md_alloc, df_md_free): Allocate/free it.
220         (df_md_local_compute): Only include live registers in init.
221         (df_md_transfer_function): Prune the in-set computed by
222         the confluence function, and the gen-set too.
223
224 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
225
226         PR rtl-optimization/39715
227         * combine.c (simplify_comparison): Use extensions to
228         widen comparisons.  Try an ANDing first.
229
230 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
231
232         PR rtl-optimization/40741
233         * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
234         a small constant is cheap.
235         * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
236         force_reg on the LHS.
237         (xorsi3): Likewise, and split the XOR if the constant is complex
238         and not in Thumb mode.
239
240 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
241
242         * expmed.c (emit_store_flag): Check costs before
243         transforming to the opposite representation.
244
245 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
246
247         * config/sh/sh.md (cbranchfp4_media): Remove hack extending
248         cstore result to DImode.
249
250 2009-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
251
252         * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
253         inside the unspec vector.
254
255 2009-10-27  Richard Henderson  <rth@redhat.com>
256
257         * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
258
259 2009-10-27  Richard Henderson  <rth@redhat.com>
260
261         PR c++/41819
262         * tree-eh.c (eh_region_may_contain_throw_map): Rename from
263         eh_region_may_contain_throw; update users.
264         (eh_region_may_contain_throw): New function.
265         (lower_catch): Check flag_exceptions before creating exception region.
266         (lower_eh_filter, lower_eh_must_not_throw): Likewise.
267         (lower_cleanup): Tidy existing flag_exceptions check to match.
268
269 2009-10-27  Kai Tietz <kai.tietz@onevision.com>
270
271         PR/41799
272         * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
273         * config/i386/mingw.opt: Add fset-stack-executable.
274         * config/i386/i386.c (ix86_trampoline_init): Make call to
275         emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
276         defined and its value is not zero.
277         * doc/invoke.texi
278
279 2009-10-27  Richard Guenther  <rguenther@suse.de>
280
281         * tree-ssa-structalias.c (find_func_aliases): In IPA mode
282         handle calls to externally visible functions like in regular mode.
283         (create_variable_info_for): Do not create function infos here.
284         (have_alias_info): Remove write-only variable.
285         (solve_constraints): New function split out from common code
286         in compute_points_to_sets and ipa_pta_execute.
287         (compute_points_to_sets): Adjust.
288         (ipa_pta_execute): Likewise.  Handle clones and externally visible
289         functions like in non-IPA mode.
290
291 2009-10-27  Jakub Jelinek  <jakub@redhat.com>
292
293         PR c/41842
294         * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
295         error_mark_node.
296
297 2009-10-27  Richard Guenther  <rguenther@suse.de>
298
299         * tree-complex.c (expand_complex_div_wide): Check for
300         INTEGER_CST, not TREE_CONSTANT on comparison folding result.
301
302 2009-10-27  Revital Eres  <eres@il.ibm.com>
303
304         PR tree-optimization/40648
305         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
306         Change decision of when to peel for alignment.
307
308 2009-10-27  Richard Guenther  <rguenther@suse.de>
309
310         PR lto/41821
311         * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
312
313 2009-10-27  Aldy Hernandez  <aldyh@redhat.com>
314
315         PR bootstrap/41451
316         * fold-const.c (fold_binary_loc): Do not call
317         protected_set_expr_location.
318
319 2009-10-27  Wei Guozhi  <carrot@google.com>
320
321         PR target/41705
322         * target.h (have_conditional_execution): Add a new target hook
323         function.
324         * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
325         * targhooks.h (default_have_conditional_execution): Likewise.
326         * targhooks.c (default_have_conditional_execution): Likewise.
327         * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
328         * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
329         (arm_have_conditional_execution): New function.
330         * ifcvt.c (noce_process_if_block, find_if_header,
331         cond_exec_find_if_block, dead_or_predicable): Change the usage of
332         macro HAVE_conditional_execution to a target hook call.
333         * recog.c (peephole2_optimize): Likewise.
334         * sched-rgn.c (add_branch_dependences): Likewise.
335         * final.c (asm_insn_count, final_scan_insn): Likewise.
336         * bb-reorder.c (HAVE_conditional_execution): Remove it.
337
338 2009-10-26  Ben Elliston  <bje@au.ibm.com>
339             Michael Meissner  <meissner@linux.vnet.ibm.com>
340             Ulrich Weigand  <uweigand@de.ibm.com>
341
342         * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
343         * config/spu/spu_cache.h: New file.
344
345         * config/spu/cachemgr.c: New file.
346         * config/spu/cache.S: New file.
347
348         * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
349         (ADDR_SPACE_EA): Define.
350         (TARGET_ADDR_SPACE_KEYWORDS): Define.
351         * config/spu/spu.c (EAmode): New macro.
352         (TARGET_ADDR_SPACE_POINTER_MODE): Define.
353         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
354         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
355         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
356         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
357         (TARGET_ADDR_SPACE_CONVERT): Likewise.
358         (TARGET_ASM_SELECT_SECTION): Likewise.
359         (TARGET_ASM_UNIQUE_SECTION): Likewise.
360         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
361         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
362         (ea_symbol_ref): New function.
363         (spu_legitimate_constant_p): Handle __ea qualified addresses.
364         (spu_addr_space_legitimate_address_p): New function.
365         (spu_addr_space_legitimize_address): Likewise.
366         (cache_fetch): New global.
367         (cache_fetch_dirty): Likewise.
368         (ea_alias_set): Likewise.
369         (ea_load_store): New function.
370         (ea_load_store_inline): Likewise.
371         (expand_ea_mem): Likewise.
372         (spu_expand_mov): Handle __ea qualified memory references.
373         (spu_addr_space_pointer_mode): New function.
374         (spu_addr_space_address_mode): Likewise.
375         (spu_addr_space_subset_p): Likewise.
376         (spu_addr_space_convert): Likewise.
377         (spu_section_type_flags): Handle "._ea" section.
378         (spu_select_section): New function.
379         (spu_unique_section): Likewise.
380         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
381         and __EA64__ predefined macros.
382         * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
383         -matomic-updates switches.
384
385         * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
386         (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
387         libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
388         libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
389         ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
390         ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
391         $(T)cache128k.o): Likewise.
392         ($(T)libgcc_%.a): Likewise.
393
394         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
395         * config/spu/spu.opt (-mea32/-mea64): Add switches.
396         (-maddress-space-conversion): Likewise.
397         (-mcache-size=): Likewise.
398         (-matomic-updates): Likewise.
399         * doc/invoke.texi (-mea32/-mea64): Document.
400         (-maddress-space-conversion): Likewise.
401         (-mcache-size=): Likewise.
402         (-matomic-updates): Likewise.
403
404 2009-10-26  Ben Elliston  <bje@au.ibm.com>
405             Michael Meissner  <meissner@linux.vnet.ibm.com>
406             Ulrich Weigand  <uweigand@de.ibm.com>
407
408         * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
409
410         * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
411         defined, add the named address space keywords.
412         (c_addr_space_name): New function.
413         (complete_array_type): Preserve named address space.
414         (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
415         instead of targetm.valid_pointer_mode.
416
417         * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
418         RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
419         (ADDR_SPACE_KEYWORD): New macro.
420         (c_addr_space_name): Add prototype.
421
422         * c-tree.h (struct c_declspecs): Add address_space member.
423         (declspecs_add_addrspace): Add prototype.
424
425         * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
426
427         * c-parser.c (c_parse_init): Add assertion.
428         (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
429         (c_lex_one_token): Handle address space keywords.
430         (c_token_starts_typename): Likewise.
431         (c_token_starts_declspecs): Likewise.
432         (c_parser_declspecs): Likewise.
433         (c_parser_postfix_expression_after_paren_type): Diagnose compound
434         literal within function qualified with named address space.
435
436         * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
437         address space qualifiers.
438         (shadow_tag_warned): Warn about useless address space qualifiers.
439         (quals_from_declspecs): Handle address space qualifiers.
440         (grokdeclarator): Likewise.
441         (build_null_declspecs): Likewise.
442         (declspecs_add_addrspace): New function.
443
444         * c-typeck.c (addr_space_superset): New function.
445         (qualify_type): Handle named address spaces.
446         (composite_type): Likewise.
447         (common_pointer_type): Likewise.
448         (comp_target_types): Likewise.
449         (build_conditional_expr): Likewise.
450         (handle_warn_cast_qual): Likewise.
451         (build_c_cast): Likewise.
452         (convert_for_assignment): Likewise.
453         (build_binary_op): Likewise.
454         (pointer_diff): Handle named address spaces.  Use intermediate
455         integer type of sufficient size if required.
456
457 2009-10-26  Ben Elliston  <bje@au.ibm.com>
458             Michael Meissner  <meissner@linux.vnet.ibm.com>
459             Ulrich Weigand  <uweigand@de.ibm.com>
460
461         * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
462         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
463         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
464
465         * target.h (struct target_def): Add pointer_mode, address_mode,
466         and valid_pointer_mode to addr_space substructure.
467         * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
468         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
469         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
470         (TARGET_ADDR_SPACE_HOOKS): Add them.
471         * targhooks.c (target_default_pointer_address_modes_p): New function.
472         * target.h (target_default_pointer_address_modes_p): Add prototype.
473         * targhooks.c (default_addr_space_pointer_mode): New function.
474         (default_addr_space_address_mode): Likewise.
475         (default_addr_space_valid_pointer_mode): Likewise.
476         * targhooks.h (default_addr_space_pointer_mode): Add prototype.
477         (default_addr_space_address_mode): Likewise.
478         (default_addr_space_valid_pointer_mode): Likewise.
479         * output.h (default_valid_pointer_mode): Move to ...
480         * targhooks.h (default_valid_pointer_mode): ... here.
481         * varasm.c (default_valid_pointer_mode): Move to ...
482         * targhooks.c (default_valid_pointer_mode): ... here.
483
484         * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
485         instead of targetm.valid_pointer_mode.
486
487         * fold-const.c (fit_double_type): Use int_or_pointer_precision.
488         * tree.c (integer_pow2p): Likewise.
489         (tree_log2): Likewise.
490         (tree_floor_log2): Likewise.
491         (signed_or_unsigned_type_for): Support pointer type of different size.
492         (int_or_pointer_precision): New function.
493         * tree.h (int_or_pointer_precision): Add prototype.
494         * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
495         * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
496         incoming pointer type instead of POINTER_SIZE.
497
498         * tree.c (build_pointer_type): Use appropriate pointer mode
499         instead of ptr_mode.
500         (build_reference_type): Likewise.
501         * expr.c (store_expr): Likewise.
502         (expand_expr_addr_expr): Likewise.
503         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
504         * cfgexpand.c (expand_debug_expr): Likewise.
505
506         * auto-inc-dec.c: Include "target.h".
507         (try_merge): Use appropriate address mode instead of Pmode.
508         (find_inc): Likewise.
509         * combine.c (find_split_point): Likewise.
510         * cselib.c (cselib_record_sets): Likewise.
511         * dse.c (replace_inc_dec): Likewise.
512         (canon_address): Likewise.
513         * var-tracking.c (replace_expr_with_values): Likewise.
514         (count_uses): Likewise.
515         (add_uses): Likewise.
516         (add_stores): Likewise.
517         * emit-rtl.c: Include "target.h".
518         (adjust_address_1): Use appropriate address mode instead of Pmode.
519         (offset_address): Likewise.
520         * explow.c (break_out_memory_refs): Likewise.
521         (memory_address_addr_space): Likewise.
522         (promote_mode): Likewise.
523         * expr.c (move_by_pieces): Likewise.
524         (emit_block_move_via_loop): Likewise.
525         (store_by_pieces): Likewise.
526         (store_by_pieces_1): Likewise.
527         (expand_assignment): Likewise.
528         (store_constructor): Likewise.
529         (expand_expr_addr_expr): Likewise.
530         (expand_expr_real_1): Likewise.
531         * cfgexpand.c (expand_debug_expr): Likewise.
532         * ifcvt.c (noce_try_cmove_arith): Likewise.
533         * regcprop.c (kill_autoinc_value): Likewise.
534         * regmove.c (try_auto_increment): Likewise.
535         * reload.c (find_reloads): Likewise.
536         (find_reloads_address): Likewise.
537         (find_reloads_address_1): Likewise.
538         * sched-deps.c: Include "target.h".
539         (sched_analyze_1): Use appropriate address mode instead of Pmode.
540         (sched_analyze_2): Likewise.
541         * sel-sched-dump.c: Include "target.h".
542         (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
543         * stor-layout.c (layout_type): Likewise.
544         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
545         (multiplier_allowed_in_address_p): Likewise.
546         (get_address_cost): Likewise.
547         * varasm.c (make_decl_rtl): Likewise.
548
549         * expr.c (expand_assignment): Always convert offsets to appropriate
550         address mode.
551         (store_expr): Likewise.
552         (store_constructor): Likewise.
553         (expand_expr_real_1): Likewise.
554
555         * reload.h (form_sum): Add MODE argument.
556         * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
557         Update recursive calls.
558         (subst_indexed_address): Update calls to form_sum.
559
560         * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
561         * tree-ssa-address.c: Include "target.h".
562         (templates): Replace by ...
563         (mem_addr_template_list): ... this new vector.
564         (TEMPL_IDX): Handle address space numbers.
565         (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
566         (addr_for_mem_ref): Add ADDRSPACE argument.  Use per-address-space
567         instead of global cache.  Update call to gen_addr_rtx.
568         (valid_mem_ref_p): Update call to addr_for_mem_ref.
569         * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
570
571         * rtl.h (convert_memory_address_addr_space): Add prototype.
572         (convert_memory_address): Define as macro.
573         * explow.c (convert_memory_address): Rename to ...
574         (convert_memory_address_addr_space): ... this.  Add ADDRSPACE argument.
575         Use appropriate pointer and address modes instead of ptr_mode / Pmode.
576         Update recursive calls.
577         (memory_address_addr_space): Call convert_memory_address_addr_space.
578         * expmed.c (make_tree): Likewise.
579         * expr.c (expand_assignment): Likewise.
580         (expand_expr_addr_expr_1): Likewise.  Also, add ADDRSPACE argument.
581         (expand_expr_addr_expr): Likewise.  Also, update call.
582
583         * alias.c (find_base_value): Guard pointer size optimizations.
584         (find_base_term): Likewise.
585         * rtlanal.c (nonzero_bits1): Likewise.
586         (num_sign_bit_copies1): Likewise.
587         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
588
589         * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
590         (emit-rtl.o): Likewise.
591         (auto-inc-dec.o): Likewise.
592         (sched-deps.o): Likewise.
593
594 2009-10-26  Ben Elliston  <bje@au.ibm.com>
595             Michael Meissner  <meissner@linux.vnet.ibm.com>
596             Ulrich Weigand  <uweigand@de.ibm.com>
597
598         * doc/extend.texi (Named Address Spaces): New section.
599         * coretypes.h (addr_space_t): New type.
600         (ADDR_SPACE_GENERIC): New define.
601         (ADDR_SPACE_GENERIC_P): New macro.
602
603         * doc/tm.texi (Named Address Spaces): New section.
604         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
605         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
606         (TARGET_ADDR_SPACE_SUBSET_P): Document.
607         (TARGET_ADDR_SPACE_CONVERT): Document.
608         * target.h (struct gcc_target): Add addr_space substructure.
609         * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
610         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
611         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
612         (TARGET_ADDR_SPACE_CONVERT): Likewise.
613         (TARGET_ADDR_SPACE_HOOKS): Likewise.
614         (TARGET_INITIALIZER): Initialize addr_space hooks.
615         * targhooks.c (default_addr_space_legitimate_address_p): New function.
616         (default_addr_space_legitimize_address): Likewise.
617         (default_addr_space_subset_p): Likewise.
618         (default_addr_space_convert): Likewise.
619         * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
620         (default_addr_space_legitimize_address): Likewise.
621         (default_addr_space_subset_p): Likewise.
622         (default_addr_space_convert): Likewise.
623
624         * doc/rtl.texi (MEM_ADDR_SPACE): Document.
625         * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
626         (MEM_ADDR_SPACE): New macro.
627         * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
628         address space memory attribute.
629         (mem_attrs_htab_hash): Handle address space memory attribute.
630         (mem_attrs_htab_eq): Likewise.
631         (set_mem_attributes_minus_bitpos): Likewise.
632         (set_mem_alias_set): Likewise.
633         (set_mem_align): Likewise.
634         (set_mem_expr): Likewise.
635         (set_mem_offset): Likewise.
636         (set_mem_size): Likewise.
637         (adjust_address_1): Likewise.
638         (offset_address): Likewise.
639         (widen_memoy_address): Likewise.
640         (get_spill_slot_decl): Likewise.
641         (set_mem_attrs_for_spill): Likewise.
642         (set_mem_addr_space): New function.
643         * emit-rtl.h (set_mem_addr_space): Add prototype.
644         * print-rtl.c (print_rtx): Print address space memory attribute.
645         * expr.c (expand_assignment): Set address space memory attribute
646         of generated MEM RTXes as appropriate.
647         (expand_expr_real_1): Likewise.
648         * cfgexpand.c (expand_debug_expr): Likewise.
649         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
650
651         * tree.h (struct tree_base): Add address_space bitfield.  Reduce
652         size of "spare" bitfield.
653         (TYPE_ADDR_SPACE): New macro.
654         (ENCODE_QUAL_ADDR_SPACE): Likewise.
655         (DECODE_QUAL_ADDR_SPACE): Likewise.
656         (CLEAR_QUAL_ADDR_SPACE): Likewise.
657         (KEEP_QUAL_ADDR_SPACE): Likewise.
658         (TYPE_QUALS): Encode type address space.
659         (TYPE_QUALS_NO_ADDR_SPACE): New macro.
660         * tree.c (set_type_quals): Set type address space.
661         (build_array_type): Inherit array address space from element type.
662         * print-tree.c (print_node_brief): Print type address space.
663         (print_node): Likewise.
664         * tree-pretty-print.c (dump_generic_node): Likewise.
665
666         * explow.c (memory_address): Rename to ...
667         (memory_address_addr_space): ... this.  Add ADDRSPACE argument.
668         Use address-space aware variants of memory address routines.
669         * recog.c (memory_address_p): Rename to ...
670         (memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
671         Use address-space aware variants of memory address routines.
672         (offsettable_address_p): Rename to ...
673         (offsettable_address_addr_space_p): ... this.  Add ADDRSPACE argument.
674         Use address-space aware variants of memory address routines.
675         * reload.c (strict_memory_address_p): Rename to ...
676         (strict_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
677         Use address-space aware variants of memory address routines.
678         (maybe_memory_address_p): Rename to ...
679         (maybe_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
680         Use address-space aware variants of memory address routines.
681         * expr.h (memory_address_addr_space): Add prototype.
682         (memory_address): Define as macro.
683         * recog.h (memory_address_addr_space_p): Add prototype.
684         (memory_address_p): Define as macro.
685         (offsettable_address_addr_space_p): Add prototype.
686         (offsettable_address_p): Define as macro.
687         (strict_memory_address_addr_space_p): Add prototype.
688         (strict_memory_address_p): Define as macro.
689
690         * combine.c (find_split_point): Use address-space aware variants
691         of memory address routines.
692         * emit-rtl.c (operand_subword): Likewise.
693         (change_address_1): Likewise.
694         (adjust_address_1): Likewise.
695         (offset_address): Likewise.
696         * expr.c (emit_move_insn): Likewise.
697         (expand_assignment): Likewise.
698         (expand_expr_real_1): Likewise.
699         * recog.c (verify_changes): Likewise.
700         (general_operand): Likewise.
701         (offsettable_memref_p): Likewise.
702         (offsettable_nonstrict_memref_p): Likewise.
703         (constrain_operands): Likewise.
704         * reload.c (get_secondary_mem): Likewise.
705         (find_reloads_toplev): Likewise.
706         (find_reloads_address): Likewise.
707         (find_reloads_subreg_address): Likewise.
708         * reload1.c (reload): Likewise.
709         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
710         * rtl.h (address_cost): Add ADDRSPACE argument.
711         * rtlanal.c (address_cost): Add ADDRSPACE argument.  Use address-space
712         aware variant of memory address routines.
713         * loop-invariant.c (create_new_invariant): Update address_cost call.
714         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
715         * fwprop.c (should_replace_address): Add ADDRSPACE argument.
716         Use address-space aware variant of memory address routines.
717         (propagate_rtx_1): Update call to should_replace_address.
718         * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
719         argument.
720         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
721         ADDRSPACE argument.  Use per-address-space instead of global cache.
722         Use address-space aware variant of memory address routines.
723         (get_address_cost): Likewise.
724         (get_computation_cost_at): Update calls.
725         * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
726         Use address-space aware variant of memory address routines.
727         (create_mem_ref_raw): Update call to valid_mem_ref_p.
728         (most_expensive_mult_to_index): Update call to
729         multiplier_allowed_in_address_p.
730
731         * dwarf2out.c (modified_type_die): Output DW_AT_address_class
732         attribute to indicate named address spaces.
733
734         * varasm.c (get_variable_section): DECLs in named address spaces
735         cannot be "common".
736
737         * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
738         for addresses in a non-generic address space.
739
740         * expr.c (emit_block_move_hints): Do not use libcalls for
741         memory in non-generic address spaces.
742         (clear_storage_hints): Likewise.
743         (expand_assignment): Likewise.
744
745         * fold-const.c (operand_equal_p): Expressions refering to different
746         address spaces are not equivalent.
747
748         * rtl.c (rtx_equal_p_cb): MEMs refering to different address
749         spaces are not equivalent.
750         (rtx_equal_p): Likewise.
751         * cse.c (exp_equiv_p): Likewise.
752         * jump.c (rtx_renumbered_equal_p): Likewise.
753         * reload.c (operands_match_p): Likewise.
754
755         * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
756         address spaces may alias.
757         (true_dependence): Likewise.
758         (canon_true_dependence): Likewise.
759         (write_dependence_p): Likewise.
760
761         * dse.c (canon_address): Handle named address spaces.
762         * ifcvt.c (noce_try_cmove_arith): Likewise.
763
764         * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
765         * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
766         * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
767         to handle conversions between different address spaces.
768         * fold-const.c (fold_convert_loc): Likewise.
769         (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
770         * tree-pretty-print.c (dump_generic_node): Likewise.
771         * gimple-pretty-print.c (dump_unary_rhs): Likewise.
772         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
773         * tree-inline.c (estimate_operator_cost): Likewise.
774         * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
775         to different address spaces are not useless.
776
777 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
778
779         PR bootstrap/41345
780         * cfgcleanup.c (trivially_empty_bb_p): New function.
781         (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
782
783         PR debug/41828
784         * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
785         add_name_and_src_coords_attributes, gen_namespace_die,
786         dwarf2out_set_name): Handle dwarf2_name returning NULL.
787
788 2009-10-26  Nick Clifton  <nickc@redhat.com>
789
790         * config.gcc: Add support for RX target.
791         * config/rx: New directory.
792         * config/rx/constraints.md: New file.
793         * config/rx/predicates.md: New file.
794         * config/rx/rx.c: New file.
795         * config/rx/rx.h: New file.
796         * config/rx/rx.md: New file.
797         * config/rx/rx.opt: New file.
798         * config/rx/rx-protos.h: New file.
799         * config/rx/t-rx: New file.
800         * doc/extend.texi: Document RX function attributes.
801         * doc/invoke.texi: Document RX specific command line options.
802         * doc/contrib.texi: Document RX contribution.
803         * doc/md.texi: Document RX constraints.
804         * doc/install.texi: Document RX support.
805
806 2009-10-26  Michael Matz  <matz@suse.de>
807
808         PR tree-optimization/41783
809         * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
810         case for simple diamonds.
811         * tree-ssa-alias.h (get_continuation_for_phi): Declare.
812         * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
813         argument, use alias oracle to skip some vdefs.
814         (phi_translate_1): Change call to above, don't allocate new
815         value ids if they can stay the same.
816         (compute_avail): Allow vuse walking when looking up references.
817
818 2009-10-26  Richard Guenther  <rguenther@suse.de>
819
820         PR tree-optimization/41826
821         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
822         access to re-allocated vector fields.
823
824 2009-10-26  Richard Guenther  <rguenther@suse.de>
825
826         * graphite-sese-to-poly.c (check_poly_representation): Fix
827         compile without checking.
828
829 2009-10-26  Janus Weil  <janus@gcc.gnu.org>
830
831         PR fortran/41714
832         * gimple.h (tree_annotate_all_with_location): Remove prototype.
833         * gimplify.c (tree_should_carry_location_p,
834         tree_annotate_one_with_location,tree_annotate_all_with_location):
835         Remove obsolete functions.
836
837 2009-10-25  Kaz Kojima  <kkojima@gcc.gnu.org>
838
839         PR target/41813
840         * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
841
842 2009-10-25  Richard Guenther  <rguenther@suse.de>
843
844         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
845         Stream DECL_RESTRICTED_P.
846         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
847
848 2009-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
849
850         * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
851         a note when expanding to nothing.
852
853 2009-10-25  Richard Guenther  <rguenther@suse.de>
854
855         PR middle-end/41814
856         * tree.c (find_decls_types_r): Deal with Java overloading
857         BINFO_VIRTUALS for its own purpose.
858
859 2009-10-24  Adam Nemet  <anemet@caviumnetworks.com>
860
861         * config/mips/predicates.md (hilo_operand): New predicate.
862         * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
863         define_insn.  Correct !ISA_HAS_EXT_INS length from 24 to 28.  Move
864         splitter part from here ...:
865         (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here.  Swap
866         op0 and op4 to match the DINS case.
867         (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
868
869 2009-10-24  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
870
871         PR middle-end/19154
872         * avr.md (QIDI): Add new mode iterator.
873         (sbrx_branch<mode>): Create new zero extract bit, test and jump
874         patterns for all QI thru DI modes combinations.
875         (sbrx_and_branch<mode>): Create new and based bit test and jump
876         patterns for QI thru SI modes.
877         avr.c (avr_out_sbxx_branch): Use only bit number.
878
879 2009-10-24  Jan Hubicka  <jh@suse.cz>
880
881         * ipa-reference.c (check_call): Noreturn notrhow calls do not write
882         to memory.
883         (analyze_function): When analyzing noreturn nothrow call, do not
884         compute written stats; free bitmaps of vars early if possible.
885         (generate_summary): Only update bitmaps if computed.
886         (propagate): Only dump bitmaps if computed.
887         (ipa_reference_read_summary): Fix pasto.
888
889 2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>
890
891         * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
892         (aliasing_component_refs_p): ...this.  Return true if there is no
893         common base and the base access types have the same alias set.
894         (indirect_ref_may_alias_decl_p): Adjust for above renaming.
895         (indirect_refs_may_alias_p): Likewise.
896
897 2009-10-23  Joseph Myers  <joseph@codesourcery.com>
898
899         PR c/40033
900         * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
901         a C_MAYBE_CONST_EXPR.
902
903 2009-10-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
904
905         PR target/41787
906         * config/rs6000/rs6000.c (struct machine_function): Add
907         vsx_or_altivec_used_p to record if vector types are used.
908         (rs6000_expand_to_rtl_hook): Rename from
909         rs6000_alloc_sdmode_stack_slot.  If VSX, check to see if there are
910         any vector operations, so if there are, we can set VRSAVE to
911         non-zero when only floating point vector registers are used.
912         (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
913         (rs6000_check_vector_mode): Inner function to check if vector
914         types are used in the code.
915         (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
916         vector instructions are used.
917
918         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
919         Indicate that VSX registers which overlap floating point
920         registers, can't be used across a call, since the ABI only states
921         the scalar part of the register will be saved and restored.
922
923 2009-10-23  Joseph Myers  <joseph@codesourcery.com>
924
925         PR c/41673
926         * alias.c (get_alias_set): Call langhook before returning 0 for
927         types with structural equality.
928         * c-common.c (c_common_get_alias_set): Use alias set of element
929         type for arrays with structural comparison.
930
931 2009-10-23  Richard Guenther  <rguenther@suse.de>
932
933         PR middle-end/41805
934         * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
935         gimple_call_nothrow_p.
936
937 2009-10-23  Richard Guenther  <rguenther@suse.de>
938
939         PR tree-optimization/41778
940         * tree-ssa-pre.c (do_regular_insertion): Only insert if a
941         redundancy along a path in the CFG we want to optimize for speed
942         is going to be removed.
943         (execute_pre): Do partial-PRE only if the function is to be
944         optimized for speed.
945         (gate_pre): Do not turn off all of PRE when not optimizing a
946         function for speed.
947
948 2009-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
949
950         * builtins.c (fold_builtin_cabs): Use validate_arg().
951         (fold_builtin_cexp): Fix if-logic.
952         (fold_builtin_1): Check subtype for BUILT_IN_CIMAG.
953
954 2009-10-22  Jeff Law  <law@redhat.com>
955
956         * ira-lives.c (process_single_reg_class_operands): Update the
957         hard reg costs for all the hard registers desired by the
958         single reg class operand.
959
960 2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>
961
962         * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
963         for rtxes that aren't handled specially.
964
965 2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>
966
967         * rtl.h (shallow_copy_rtvec): Declare.
968         * rtl.c (shallow_copy_rtvec): New function.
969         * cselib.c (cselib_subst_to_values): Use it.  Only modify an
970         rtx field if the subrtx has changed.
971
972 2009-10-22  Anatoly Sokolov  <aesok@post.ru>
973
974         * config/m32c/m32c.c (m32c_function_value_regno_p): New function.
975         (m32c_function_value): Make static, add new 'outgoing' argument.
976         (m32c_libcall_value): Make static, add new 'fun' argument.
977         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
978         * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
979         (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
980         * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
981         (m32c_function_value, m32c_libcall_value): Delete declaration.
982
983 2009-10-22  Diego Novillo  <dnovillo@google.com>
984
985         * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.
986
987 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
988
989         * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
990         space.
991
992 2009-10-22  Richard Guenther  <rguenther@suse.de>
993
994         * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
995         * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
996         (lto_symtab_merge): Do not merge cgraph nodes here.
997         (lto_symtab_resolve_can_prevail_p): Simplify.
998         (lto_symtab_resolve_symbols): Store cgraph node.
999         (lto_symtab_merge_decls_1): Simplify.  Do not drop non-prevailing
1000         functions from the symtab.
1001         (lto_symtab_merge_cgraph_nodes_1): New function.
1002         (lto_symtab_merge_cgraph_nodes): Likewise.
1003
1004 2009-10-22  Richard Guenther  <rguenther@suse.de>
1005
1006         PR lto/41791
1007         * lto-streamer-out.c (lto_output_location): Stream the
1008         system header flag.
1009         * lto-streamer-in.c (lto_input_location): Likewise.
1010
1011 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1012
1013         * cfgloopmanip.c (duplicate_subloops): Export.
1014         * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
1015         (transform_to_exit_first_loop): Duplicate bbs starting from
1016         header up to loop->latch instead of exit->src.
1017         Initialize control variable to the correct number of iterations.
1018         (gather_scalar_reductions): Do not register double reductions.
1019         (parallelize_loops): Dump which loop is tested.
1020         Indicate whether the parallelized loop is inner or not.
1021         Remove the innermost-loop requirement.
1022         * cfgloop.h (duplicate_subloops): Export.
1023         * tree-cfg.c (add_phi_args_after_redirect): New function.
1024         (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
1025         Call duplicate_subloops.
1026         Update number of iterations at the exit condition.
1027         Don't redirect nexits always to the loop exit.
1028         Redirect copied edges from latch to the loop exit.
1029
1030 2009-10-22  Jan Hubicka  <jh@suse.cz>
1031
1032         * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
1033         flag_ltrans check.
1034         * ipa-inline.c (cgraph_mark_inline_edge,
1035         cgraph_decide_inlining_of_small_function,
1036         cgraph_decide_inlining, inline_read_summary): Disable indirect
1037         inlining for WPA for time being.
1038
1039         PR tree-optimize/40556
1040         * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
1041
1042 2009-10-22  Richard Guenther  <rguenther@suse.de>
1043
1044         * lto-streamer.h (lto_symtab_clear_resolution): Remove.
1045         * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
1046
1047 2009-10-22  Jan Hubicka  <jh@suse.cz>
1048
1049         PR lto/41730
1050         * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
1051         global vars.
1052         (check_call): Handle only indirect calls.
1053         (propagate_bits): Update comment.
1054         (write_node_summary_p): Turn bogus check to assert.
1055         (ipa_reference_write_summary): Stream calls_read_all properly.
1056         (ipa_reference_read_summary): Stream in calls_read_all properly.
1057         (read_write_all_from_decl): New function.
1058         (propagate): Handle OVERWRITABLE nodes and external calls here.
1059         * ipa-pre-const.c (check_call): In IPA mode handle indirect
1060         calls only.
1061         (analyze_function): Do not check visibility here.
1062         (add_new_function): We summary OVERWRITABLE too.
1063         (generate_summary): Stream OVERWRITABLE nodes too.
1064         (propagate): Handle external calls and OVERWRITABLE nodes here.
1065         (local_pure_const): Check visibility here.
1066
1067 2009-10-22  Jan Hubicka  <jh@suse.cz>
1068
1069         * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
1070         (pass_ipa_cp): Register them.
1071         (ipcp_init_stage): Analyze all functions for whopr/lto.
1072         (ipcp_propagate_stage): Skip external calls.
1073         (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
1074         * ipa-reference.c (write_node_summary_p): Fix thinko about
1075         availability.
1076         * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
1077         when in ltrans, skip executing of ipa passes since everything
1078         should've been done.
1079         * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
1080         (inline_generate_summary): Likewise.
1081         (inline_read_summary): New function.
1082         (inline_write_summary): New function.
1083         (pass_ipa_inline): Register new hooks.
1084         * ipa-prop.c: Inlcude lto-streamer.h
1085         (ipa_edge_args_vector): Update declaration.
1086         (ipa_count_arguments, ipa_compute_jump_functions,
1087         ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
1088         (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
1089         ipa_read_node_info): New static functions.
1090         (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
1091         (duplicate_array): Use xmalloc.
1092         (duplicate_ggc_array): New.
1093         (ipa_edge_duplication_hook): Use it.
1094         (ipa_update_after_lto_read): New function.
1095         * ipa-prop.h (ipa_prop_write_jump_functions,
1096         ipa_prop_read_jump_functions): Declare.
1097         (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
1098         jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
1099         (ipa_edge_args_vector): Move into GGC.
1100         (ipa_check_create_edge_args): Update.
1101         (ipa_update_after_lto_read): New.
1102         * passes.c (ipa_write_summaries_1): When in wpa, do not write
1103         summaries.
1104         (ipa_read_summaries): When in ltrans, so not read summaries.
1105         * lto-streamer.c (lto_get_section_name): Add
1106         LTO_section_jump_functions.
1107         * lto-streamer.h (LTO_section_jump_functions): New section.
1108         (produce_asm): Declare.
1109         * lto-cgraph.c (output_cgraph): Output edges in reverse order.
1110         * lto-streamer-out.c (produce_asm): Export.
1111         * lto-streamer-in.c: Include tree-pass.h
1112         (input_function): Free dominance info when done.
1113         (lto_read_body): Push ipa_inline in ltrans stage.
1114         * gengtype.c (open_base_files): Add ipa-prop.h into includes.
1115         * Makefile.in (GTFILES): Add ipa-prop.h
1116
1117 2009-10-22  Matthias Klose  <doko@ubuntu.com>
1118
1119         * doc/install.texi: Document --enable-browser-plugin.
1120
1121 2009-10-21  Vladimir Makarov  <vmakarov@redhat.com>
1122
1123         * doc/invoke.texi (fira-loop-pressure): Update default value.
1124         * opts.c (decode_options): Remove default value setting for
1125         flag_ira_loop_pressure.
1126         * config/ia64/ia64.c (ia64_override_options): Set
1127         flag_ira_loop_pressure up for -O3.
1128         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
1129
1130 2009-10-21  Sebastian Pop  <sebastian.pop@amd.com>
1131
1132         PR tree-optimization/41497
1133         * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
1134         chrec_dont_know if the evolution function returned by follow_ssa_edge
1135         is constant in the analyzed loop and is not compatible with the
1136         initial value before the loop.
1137         * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
1138
1139 2009-10-21  Joseph Myers  <joseph@codesourcery.com>
1140
1141         * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
1142
1143 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
1144
1145         PR other/25507
1146         * doc/invoke.texi: Document -print-multi-os-directory.
1147
1148 2009-10-21  Jack Howarth  <howarth@bromo.med.uc.edu>
1149
1150         PR c++/41313
1151         * gcc/config/darwin10.h: Use default_emit_unwind_label.
1152         * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
1153         when darwin_emit_unwind_label is used.
1154
1155 2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1156
1157         * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
1158         order of checks.
1159
1160 2009-10-20  Richard Henderson  <rth@redhat.com>
1161
1162         * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
1163         before emit_post_landing_pad.
1164
1165 2009-10-20  Adam Nemet  <anemet@caviumnetworks.com>
1166
1167         * config/mips/mips.c (mips_binary_cost): Add new argument speed.
1168         Use when calling rtx_costs.
1169         (mips_rtx_costs): Fix formatting.  Use argument speed rather than the
1170         global optimize_size.  Pass speed to mips_binary_cost.
1171
1172 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
1173
1174         * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
1175         of TREE_CONSTANT.
1176
1177 2009-10-20  Richard Sandiford  <rdsandiford@googlemail.com>
1178
1179         * rtl.h (simplify_replace_fn_rtx): Declare.
1180         (wrap_constant, unwrap_constant): Delete.
1181         * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
1182         (expand_debug_expr): Don't call wrap_constant.
1183         * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
1184         (auto_adjust_pair): Fold into...
1185         (propagate_for_debug_subst): ...here.  Only define for AUTO_INC_DEC.
1186         Just return a new value.
1187         (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
1188         otherwise use simplify_replace_rtx.
1189         * cselib.c (wrap_constant): Reinstate old definition.
1190         (cselib_expand_value_rtx_1): Don't wrap constants.
1191         * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
1192         simplify_replace_rtx.
1193         (bypass_block): Fix formatting in calls to simplify_replace_rtx.
1194         * reload1.c (reload): Skip all uses for an insn before adjusting it.
1195         Use simplify_replace_rtx.
1196         * simplify-rtx.c (simplify_replace_fn_rtx): New function,
1197         adapted from...
1198         (simplify_replace_rtx): ...here.  Turn into a wrapper for
1199         simplify_replace_fn_rtx.
1200         (simplify_unary_operation): Don't unwrap CONSTs.
1201         * var-tracking.c (check_wrap_constant): Delete.
1202         (vt_expand_loc_callback): Don't call it.
1203         (vt_expand_loc): Likewise.
1204
1205 2009-10-20  Pascal Obry  <obry@adacore.com>
1206             Eric Botcazou  <ebotcazou@adacore.com>
1207
1208         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
1209
1210 2009-10-20  Michael Matz  <matz@suse.de>
1211
1212         * loop-invariant.c (create_new_invariant): Use different magic number.
1213
1214 2009-10-20  Richard Earnshaw  <rearnsha@arm.com>
1215
1216         PR target/39247
1217         * arm.c (arm_override_options): Forcibly disable hot/cold block
1218         partitioning.
1219
1220 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
1221
1222         PR debug/41739
1223         * haifa-sched.c (try_ready): Skip debug deps updating speculation
1224         status.
1225
1226 2009-10-20  Richard Guenther  <rguenther@suse.de>
1227
1228         * ggc-page.c: Include cfgloop.h.
1229         (struct max_alignment): Drop long double, add void *.
1230         (extra_order_size_table): Add low non-power-of-two multiples
1231         of MAX_ALIGNMENT.  Drop small type-based entries, add
1232         tree_type, cgraph_node and loop.
1233         * alloc-pool.c (struct allocation_object_def): Drop long double
1234         aligning element.
1235
1236 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
1237
1238         PR debug/41340
1239         * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
1240         referenced just in DEBUG_INSNs.
1241
1242 2009-10-20  Richard Guenther  <rguenther@suse.de>
1243
1244         PR lto/41761
1245         * gimple.c (gimple_register_type): Make sure we register
1246         the types main variant first.
1247
1248 2009-10-20  Richard Guenther  <rguenther@suse.de>
1249
1250         * gimple.c (gimple_types_compatible_p): Simplify.  Move
1251         cheap checks before hashtable queries.  Add checks for
1252         TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
1253
1254 2009-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1255
1256         * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
1257         without size or with size that can't be represented as a host integer.
1258
1259 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
1260
1261         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
1262         the removal of a debug stmt as a significant change.
1263
1264 2009-10-20  Wolfgang Gellerich  <gellerich@de.ibm.com>
1265
1266         * config/s390/s390.md: Added agen condition to operand
1267         forwarding bypasses.  Added bypass for early address generation
1268         use of int results.  Updated comments.
1269
1270 2009-10-20  Stefan Dösinger  <stefan@codeweavers.com>
1271
1272         * config/i386/i386.c: Remove signal.h #include.
1273
1274 2009-10-20  Jie Zhang  <jie.zhang@analog.com>
1275
1276         * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
1277         * doc/rtl.texi: Document ss_abs.
1278
1279 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
1280
1281         * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
1282         * c-lex.c (c_lex_with_flags): Likewise.  Test C_LEX_STRING_NO_JOIN
1283         instead of C_LEX_RAW_STRINGS.
1284         (lex_string): Handle CPP_UTF8STRING.
1285         * c-parser.c (c_parser_postfix_expression): Likewise.
1286         * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
1287         (C_LEX_STRING_NO_JOIN): ... this.
1288
1289 2009-10-19  Anatoly Sokolov  <aesok@post.ru>
1290
1291         * config/cris/cris.c (cris_function_value, cris_libcall_value,
1292         cris_function_value_regno_p): New functions.
1293         (cris_promote_function_mode): Update comment.
1294         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1295         * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1296         (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
1297         * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
1298
1299 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
1300
1301         * unwind-dw2.c (execute_stack_op): Fix operand order for
1302         DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
1303
1304 2009-10-19  Eric Botcazou  <ebotcazou@adacore.com>
1305
1306         * gimple-low.c (struct lower_data): Add cannot_fallthru field.
1307         (lower_stmt) <GIMPLE_BIND>: Add comment.
1308         <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
1309         and return.
1310         <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
1311         Otherwise lower it and set cannot_fallthru to true.
1312         <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
1313         <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
1314         <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
1315         to true for a noreturn call.  Do not remove statements.
1316         <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
1317         Set cannot_fallthru to false on function exit.
1318         (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
1319         <GIMPLE_ASSIGN>: Remove.
1320
1321 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1322
1323         * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
1324
1325 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1326
1327         * config/s390/s390.c (s390_z10_optimize_cmp): Use
1328         next/prev_active_insn to skip DEBUG_INSNs as well.
1329
1330 2009-10-19  Joseph Myers  <joseph@codesourcery.com>
1331
1332         * config/arm/arm.c (output_move_neon): Use DImode in call to
1333         adjust_address.
1334
1335 2009-10-19  Matthias Klose  <doko@ubuntu.com>
1336
1337         PR target/40134
1338         * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
1339
1340 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
1341
1342         * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
1343
1344 2009-10-17  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
1345
1346         PR middle-end/41738
1347         * optabs.c (expand_binop): Make mode of shift count expression mode
1348         of shift count not target.
1349         Remove indent nit.
1350
1351 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1352
1353         * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
1354         case.  Force using values to replace references within the statement.
1355         (convert_local_reference_stmt): Likewise.
1356
1357 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1358
1359         * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
1360         remove a subsequent GOTO or RETURN statement.
1361
1362 2009-10-17  Andy Hutchinson  <hutchinsonandy@aim.com>
1363
1364         * config/avr.md (*movqi): Add zero as equally preferable constraint
1365         as general register.
1366         (*movhi): Ditto.
1367
1368 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1369
1370         * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
1371
1372 2009-10-17  Richard Guenther  <rguenther@suse.de>
1373
1374         * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
1375
1376 2009-10-17  Richard Guenther  <rguenther@suse.de>
1377
1378         * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
1379         operands in COMPONENT_REFs.
1380
1381 2009-10-17  Anatoly Sokolov  <aesok@post.ru>
1382
1383         * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
1384         if not defined. Change type of second argument to const_rtx.
1385         (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
1386         macro not defined.
1387         * targhooks.h (default_libcall_value): Update prototype.
1388         * target.h (struct gcc_target): Change type of second argument of
1389         libcall_value to const_rtx.
1390         * config/arm/arm.c (arm_libcall_value): Change type of second argument
1391         to const_rtx.
1392         (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
1393         * doc/tm.texi (TARGET_LIBCALL_VALUE):  Revise documentation.
1394
1395 2009-10-17  Jakub Jelinek  <jakub@redhat.com>
1396
1397         PR debug/40521
1398         * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
1399         * cgraphunit.c (cgraph_optimize): Call it.
1400         * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
1401         (dwarf2out_assembly_start): ... here.  New hook.
1402         (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
1403         * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
1404         hook.
1405         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
1406         * sdbout.c (sdb_debug_hooks): Likewise.
1407         * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
1408         (vmsdbgout_assembly_start): New hook.
1409
1410 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
1411
1412         * rtl.h (RTL_LOCATION): Fix typo.
1413
1414 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
1415
1416         * print-rtl.c (print_rtx): Print locators in asm_operands
1417         and asm_input.
1418
1419 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
1420
1421         PR debug/41535
1422         * sched-deps.c (depl_on_debug_p): New.
1423         (attach_dep_link): Reject debug deps before nondebug deps.
1424         (add_to_deps_list): Insert debug deps after nondebug deps.
1425         (sd_lists_empty_p): Stop at first nonempty list.  Disregard debug
1426         deps.
1427         (sd_add_dep): Do not reject debug deps.
1428         (add_insn_mem_dependence): Don't count debug deps.
1429         (remove_from_deps): Likewise.
1430         (sched_analyze_2): Set up mem deps on debug insns.
1431         (sched_analyze_insn): Record reg uses for deps on debug insns.
1432         * haifa-sched.c (schedule_insn): Reset deferred debug insn.  Don't
1433         try_ready nondebug insn after debug insn.
1434         * ddg.c (create_ddg_dep_from_intra_loop_link,
1435         create_ddg_dep_no_link): Don't reject debug deps.
1436
1437 2009-10-16  Richard Guenther  <rguenther@suse.de>
1438
1439         * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
1440         (maybe_merge_incomplete_and_complete_type): Likewise.
1441         (lto_symtab_merge): Do not call them.  Do not warn for
1442         complete vs. incomplete compatible types.
1443         (lto_symtab_merge_decls_2): Simplify.
1444         * gimple.c (gimple_force_type_merge): Remove.
1445         (gimple_types_compatible_p): Make it static.
1446         * gimple.h (gimple_force_type_merge): Remove.
1447         (gimple_types_compatible_p): Likewise.
1448
1449 2009-10-16  Jakub Jelinek  <jakub@redhat.com>
1450
1451         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
1452         DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
1453
1454 2009-10-16  Richard Guenther  <rguenther@suse.de>
1455
1456         PR tree-optimization/41728
1457         * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
1458         if fold_stmt did anything.
1459
1460 2009-10-16  Richard Guenther  <rguenther@suse.de>
1461
1462         PR lto/41715
1463         * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
1464         (maybe_fixup_handled_component): New function.
1465         (input_gimple_stmt): Fixup mismatched decl replacements.
1466
1467 2009-10-16  Richard Guenther  <rguenther@suse.de>
1468
1469         PR lto/41713
1470         * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
1471         the same as VAR_DECL.
1472
1473 2009-10-16  Richard Guenther  <rguenther@suse.de>
1474
1475         * gimple.c (iterative_hash_gimple_type): For integer types
1476         also hash their minimum and maximum values and the string flag.
1477         For array types hash their domain and the string flag.
1478
1479 2009-10-16  Richard Guenther  <rguenther@suse.de>
1480
1481         * gimple.c (gimple_types_compatible_p): Restrict completing
1482         types to record or unions.  Simplify completion.
1483         Do not merge records or unions with different
1484         TYPE_STRUCTURAL_EQUALITY_P tag.
1485         (iterative_hash_gimple_type): Restrict non-recursing into
1486         pointer targets for records and unions.
1487
1488 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
1489
1490         PR debug/41717
1491         * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
1492         * dwarf2out.c (mem_loc_descriptor): Don't handle
1493         POST_INT/POST_DEC/POST_MODIFY like SUBREG.  For SUBREG
1494         punt if it is not lowpart subreg or if inner mode isn't
1495         MODE_INT.
1496
1497 2009-10-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1498
1499         * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
1500         investigating previous or next insns.
1501
1502 2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1503
1504         * tree-sra.c (build_ref_for_offset_1): Update comment.
1505
1506 2009-10-16  Wolfgang Gellerich  <gellerich@de.ibm.com>
1507
1508         * config/s390/s390.md (atype): Added missing values.
1509
1510 2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1511
1512         PR target/41702
1513         * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
1514         (casesi64p): Update pattern to reflect above.
1515
1516 2009-10-15  Steve Ellcey  <sje@cup.hp.com>
1517
1518         PR rtl-optimization/41697
1519         * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
1520
1521 2009-10-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
1522
1523         PR target/23983
1524         * config/rs6000/predicates.md: Update copyright year.
1525         * config/rs6000/altivec.md: Ditto.
1526
1527         * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
1528         (MD_INCLUDES): Add a2.md.
1529
1530         * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
1531         RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
1532         (builtin_classify): New static vector to classify various builtins
1533         to get the tree attributes correct.
1534         (def_builtin): Set the attributes of builtins based on what the
1535         builtin does (i.e. memory operation, floating point, saturation
1536         need special attributes, others are pure functions).
1537
1538         * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
1539         the builtins.
1540         (enum rs6000_builtins): Include rs6000-builtin.def to define the
1541         builtins.  Change the end marker to MAX_RS6000_BUILTINS from
1542         RS6000_BUILTIN_COUNT.
1543         (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
1544         MAX_RS6000_BUILTINS.
1545
1546         * config/rs6000/rs6000-builtin.def: New file that combines the
1547         builtin enumeration name and attributes.
1548
1549 2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
1550
1551         * config/i386/linux.h (ASM_SPEC): Add --32.
1552
1553 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
1554
1555         * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
1556         and DW_TAG_template_alias.
1557         (dwarf_attr_name): Handle DW_AT_main_subprogram,
1558         DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
1559         DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
1560         DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
1561         DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
1562         and DW_AT_GNU_odr_signature.
1563         (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
1564         DW_FORM_flag_present and DW_FORM_ref_sig8.
1565         (output_signature): Only print name on the first byte.
1566         (output_die): Likewise for dw_val_class_data8.
1567
1568 2009-10-15  Alexander Monakov  <amonakov@ispras.ru>
1569
1570         * doc/invoke.texi: Clarify that most optimizations are not enabled
1571         without -O.
1572
1573 2009-10-15  Richard Guenther  <rguenther@suse.de>
1574
1575         PR lto/41668
1576         * gimple.c (compare_type_names_p): Handle anonymous names
1577         differently based on new mode argument.
1578         (gimple_types_compatible_p): For structs also compare the tags.
1579         (iterative_hash_type_name): Rename to ...
1580         (iterative_hash_name): ... this.  Hash all names.
1581         (iterative_hash_gimple_type): Fix hashing the struct tag of
1582         pointer targets.  Hash field decl names.
1583
1584 2009-10-15  Richard Guenther  <rguenther@suse.de>
1585
1586         PR lto/41669
1587         * gimple.c (gimple_get_alias_set): Avoid recursing on
1588         invalid type topology.
1589
1590 2009-10-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1591
1592         * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
1593
1594 2009-10-15  Richard Guenther  <rguenther@suse.de>
1595
1596         * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
1597
1598 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
1599
1600         * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
1601         add --with-tune{,-32,-64} configured default for -mtune if explicit
1602         -mcpu is used.
1603
1604 2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
1605
1606         * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
1607
1608 2009-10-14  DJ Delorie  <dj@redhat.com>
1609
1610         * config/h8300/h8300.c (F): New.
1611         (Fpa): New.
1612         (h8300_emit_stack_adjustment): Call them.
1613         (push): Likewise.
1614         (h8300_push_pop): Likewise.
1615         (h8300_expand_prologue): Likewise.
1616         * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
1617         (MUST_USE_SJLJ_EXCEPTIONS): Define.
1618         (INCOMING_RETURN_ADDR_RTX): Define.
1619         (INCOMING_FRAME_SP_OFFSET): Define.
1620         (DWARF_CIE_DATA_ALIGNMENT): Define.
1621
1622 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
1623
1624         * stor-layout.c (place_field): Don't emit -Wpadded warnings for
1625         fields in builtin structs.
1626         (finalize_record_size): Likewise.
1627
1628 2009-10-14  Richard Guenther  <rguenther@suse.de>
1629
1630         * gimple.c (gtc_ob): New global.
1631         (struct type_pair_d): Replace pointers with type UIDs.
1632         (type_pair_hash): Adjust.
1633         (type_pair_eq): Likewise.
1634         (lookup_type_pair): Likewise.  Allocate from an obstack.
1635         (gimple_force_type_merge): Adjust.
1636         (gimple_types_compatible_p): Likewise.
1637         (free_gimple_type_tables): Free the obstack.
1638
1639 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
1640
1641         * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
1642         stmts setting DEBUG_EXPR_DECLs.
1643
1644         * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
1645         Don't crash if mode1 is VOIDmode.
1646
1647 2009-09-26  Vladimir Makarov  <vmakarov@redhat.com>
1648
1649         * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
1650         * params.h (IRA_LOOP_RESERVED_REGS): New.
1651         * tree-pass.h (pass_subregs_of_mode_init,
1652         pass_subregs_of_mode_finish): Remove.
1653         * passes.c (pass_subregs_of_mode_init,
1654         pass_subregs_of_mode_finish): Remove.
1655         (pass_reginfo_init): Move before loop optimizations.
1656         * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
1657         * common.opt (fira-loop-pressure): New.
1658         * toplev.h (flag_ira_loop_pressure): New.
1659         * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
1660         * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
1661         Make external and void type functions.
1662         (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
1663         pass_subregs_of_mode_finish): Remove.
1664         * ira-costs.c (init_costs): Call init_subregs_of_mode.
1665         * regmove.c: Include ira.h.
1666         (regmove_optimize): Call ira_set_pseudo_classes after IRA based
1667         register pressure calculation in loops.
1668         * loop-invariant.c: Include REGS_H and ira.h.
1669         (struct loop_data): New members max_reg_pressure, regs_ref, and
1670         regs_live.
1671         (struct invariant): New member orig_regno.
1672         (curr_loop): New variable.
1673         (find_exits): Initialize regs_ref and regs_live.
1674         (create_new_invariant): Initialize orig_regno.
1675         (get_cover_class_and_nregs): New.
1676         (get_inv_cost): Make aregs_needed an array.  Use regs_needed as an
1677         array.  Add code for flag_ira_loop_pressure.
1678         (gain_for_invariant): Make new_regs an array.  Add code for
1679         flag_ira_loop_pressure.
1680         (best_gain_for_invariant): Ditto.
1681         (set_move_mark): New parameter gain.  Use it for debugging output.
1682         (find_invariants_to_move): Make regs_needed and new_regs an array.
1683         Add code for flag_ira_loop_pressure.
1684         (move_invariant_reg): Set up orig_regno.
1685         (move_invariants): Set up reg classes for pseudos for
1686         flag_ira_loop_pressure.
1687         (free_loop_data): Clear regs_ref and regs_live.
1688         (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
1689         get_regno_cover_class, change_pressure, mark_regno_live,
1690         mark_regno_death, mark_reg_store, mark_reg_clobber,
1691         mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
1692         (move_loop_invariants): Calculate pressure.  Initialize curr_loop.
1693         * ira.c (ira): Call ira_set_pseudo_classes after IRA based
1694         register pressure calculation in loops if new regs were added.
1695         Call finish_subregs_of_mode.
1696         * opts.c (decode_options): Set up flag_ira_loop_pressure.
1697         * Makefile.in (loop-invariant.o): Add ira.h.
1698         (regmove.o): Ditto.
1699         * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
1700         Describe.
1701         * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
1702
1703 2009-10-14  Richard Guenther  <rguenther@suse.de>
1704
1705         * lto-symtab.c (lto_symtab_compatible): Fold in ...
1706         (lto_symtab_merge): ... here.  Rewrite both to take the
1707         prevailing and a to-be-merged entry and to queue diagnostics properly.
1708         (lto_symtab_resolve_replaceable_p): New predicate for
1709         symbol resolution.
1710         (lto_symtab_resolve_can_prevail_p): Likewise.
1711         (lto_symtab_resolve_symbols): Rewrite.  Fold in code that
1712         handles merging commons by choosing the largest decl.  Fold
1713         in code that gives ODR errors.
1714         (lto_symtab_merge_decls_2): Simplify a lot.  Emit queued
1715         diagnostics here.
1716         (lto_symtab_merge_decls_1): Re-structure.  Deal with the
1717         case of no prevailing decl here.  Diagnose mismatches
1718         in object types here.  Drop all but the prevailing decls.
1719         (lto_symtab_prevailing_decl): Return the single prevailing decl.
1720         * lto-streamer-in.c (lto_input_tree_ref): Deal with
1721         VIEW_CONVERT_EXPRs in decl slots.  Unshare the tree in this case.
1722
1723 2009-10-14  Richard Guenther  <rguenther@suse.de>
1724
1725         PR lto/41521
1726         * lto-streamer-in.c (input_bb): Replace debug stmts with
1727         nops instead of dropping them.
1728
1729 2009-10-14  Nick Clifton  <nickc@redhat.com>
1730
1731         * gcc/doc/extended.texi: Replace the dash character with @minus{}
1732         in situations where it is being used as a minus symbol.
1733         * gcc/doc/tm.texi: Likewise.
1734         * gcc/doc/md.texi: Likewise.
1735
1736 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
1737
1738         PR preprocessor/41543
1739         * input.h (BUILTINS_LOCATION): Change to 1 from 2.
1740         Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
1741         * tree.c: Include intl.h.
1742         (expand_location): Handle BUILTINS_LOCATION.
1743         * Makefile.in (tree.o): Depend on intl.h.
1744
1745         PR debug/41695
1746         * dwarf2out.c (dwarf2out_var_location): Always clear
1747         last_postcall_label when changing last_label.
1748
1749 2009-10-14  Pascal Obry  <obry@adacore.com>
1750
1751         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
1752         (process_command): Handle -E as done with -c and -S.  Do not add
1753         the target executable suffix to the output file when -E is used.
1754         (main): Adjust error message accordingly.
1755
1756 2009-10-14  Alexandre Oliva  <aoliva@redhat.com>
1757
1758         PR debug/41343
1759         PR debug/41447
1760         PR debug/41264
1761         PR debug/41338
1762         * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
1763         decl with rtl.
1764         (tree_code_size): Likewise.
1765
1766 2009-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1767
1768         * builtins.c (fold_builtin_1): Support complex "arc" functions.
1769         * real.h (HAVE_mpc_arc): Define.
1770
1771 2009-10-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1772
1773         * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
1774         (struct builtin_description): Add fndecl field.
1775         (bdesc): Remove const qualifier.  Update initializer.
1776         (sh_media_init_builtins): Remove const qualifier for d.  Record
1777         the result of add_builtin_function to the fndecl field.
1778         (sh_builtin_decl): New.
1779         (sh_media_builtin_decl): New.
1780
1781 2009-10-14  Hans-Peter Nilsson  <hp@axis.com>
1782
1783         PR target/38948
1784         * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
1785         requests between special registers.
1786
1787 2009-10-13  Eric Botcazou  <ebotcazou@adacore.com>
1788
1789         * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
1790
1791 2009-10-13  Richard Henderson  <rth@redhat.com>
1792
1793         PR tree-optimization/41377
1794         * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
1795         (cleanup_empty_eh_merge_phis): New change_region parameter;
1796         pass it on to redirect_eh_edge_1.  Update callers.
1797         (cleanup_empty_eh_unsplit): Don't require an existing EH label
1798         at the destination block.
1799
1800 2009-10-13  Basile Starynkevitch  <basile@starynkevitch.net>
1801
1802         * passes.c (register_pass): Replaced gcc_unreachable by
1803         fatal_error on failure. Mentions plugins in comments & messages.
1804
1805 2009-10-13  Jakub Jelinek  <jakub@redhat.com>
1806
1807         PR target/41693
1808         * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
1809         * sched-vis.c (print_value): Use it.
1810         * cselib.c (cselib_hash_rtx): Likewise.
1811         * print-rtl.c (print_rtx): Likewise.
1812         * cfgexpand.c (expand_debug_rtx): Likewise.
1813         * var-tracking.c (vt_expand_loc_callback): Likewise.
1814
1815 2009-10-13  Richard Guenther  <rguenther@suse.de>
1816
1817         PR lto/41565
1818         * opts.c (handle_option): Split out code to handle setting
1819         the options flag var ...
1820         (set_option): ... here.
1821         * opts.h (set_option): Declare.
1822         * lto-opts.c (register_user_option_p): Include -fexceptions
1823         and all position independent code variants.
1824         (handle_common_option): Remove.
1825         (lto_reissue_options): Use set_option.
1826
1827 2009-10-13  Martin Jambor  <mjambor@suse.cz>
1828
1829         PR tree-optimization/41661
1830         * ipa-prop.c (compute_complex_pass_through): Allow only operations
1831         that are tcc_comparisons or do not change the type in any
1832         un-usleless way.
1833         * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
1834         folding tcc_comparison operations.
1835
1836 2009-10-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1837
1838         * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
1839         properly.
1840
1841 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
1842
1843         PR debug/41343
1844         PR debug/41447
1845         PR debug/41264
1846         PR debug/41338
1847         * tree.def (DEBUG_EXPR_DECL): New.
1848         * rtl.def (DEBUG_EXPR): New.
1849         * gengtype.c (adjust_field_rtx_def): Handle it.
1850         * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
1851         (insert_debug_temp_for_var_def): ... this.  Drop support for
1852         moving.  Take iterator for def stmt; insert debug stmt before it.
1853         Scan early for use count and kind in debug stmts.
1854         (propagate_defs_into_debug_stmts): Rename to...
1855         (insert_debug_temps_for_defs): ... this.  Likewise.
1856         * tree.h (DEBUG_TEMP_UID): New.
1857         * tree.c (next_debug_decl_uid): New.
1858         (make_node_stat): Count debug decls separately.
1859         (copy_node_stat): Likewise.
1860         * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
1861         * var-tracking.c (dv_is_decl_p): Recognize it.
1862         (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
1863         (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
1864         (vt_expand_loc_callback): Expand DEBUG_EXPRs.
1865         (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
1866         * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
1867         (cselib_hash_rtx): Likewise.
1868         (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
1869         * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
1870         debug bind stmts.
1871         * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
1872         (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
1873         * rtl.c (copy_rtx): Likewise.
1874         (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
1875         * print-rtl.c (print_rtx): Likewise.
1876         * sched-vis.c (print_value): Likewise.
1877         (print_insn): Handle DEBUG_EXPR_DECL.
1878         * tree-dump.c (dequeue_and_dump): Likewise.
1879         * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
1880         * gimple-iterator (gsi_replace): Check for same lhs.
1881         (gsi_remove): Insert debug temps.
1882         * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
1883         (move_computations_stmt): Drop explicit propagation into debug stmts.
1884         (rewrite_bittest): Likewise.  Use gsi_remove for propagation.
1885         * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
1886         * tree-ssa-sink.c (statement_sink_location): Likewise.
1887         * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
1888         * tree-ssanames.c (release_ssa_name): Adjust for rename.
1889         * tree-flow.h: Likewise.
1890         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
1891         debug temps without values.
1892         (eliminate_unnecessary_stmts): Don't discard just-inserted
1893         debug stmts.
1894
1895 2009-10-12  Hans-Peter Nilsson  <hp@axis.com>
1896
1897         PR target/26515
1898         * config/cris/cris.md (andu): Check that operand 1 is one of the
1899         general registers.  Fix typo in head comment.
1900
1901 2009-10-12  Stefan Dösinger  <stefan@codeweavers.com>
1902
1903         * config/i386/i386.md (vswapmov): New.
1904         * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
1905         (ix86_function_ms_hook_prologue): New.
1906         (ix86_expand_prologue): Handle ms_hook_prologue attribute.
1907         * configure.ac: Test for swap suffix support in as.
1908         * configure: Rebuild.
1909
1910 2009-10-12  Jakub Jelinek  <jakub@redhat.com>
1911
1912         PR target/41680
1913         * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
1914         paradoxical subregs to prevent partial register stalls if the inner
1915         mode is integer mode.
1916
1917 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
1918
1919         * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
1920
1921 2009-10-12  Dodji Seketeli  <dodji@redhat.com>
1922
1923         PR c++/41570
1924         * gcc/dwarf2out.c (template_parameter_pack_die,
1925         gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
1926
1927 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
1928
1929         PR debug/41616
1930         * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
1931         on updates too.
1932         (maybe_register_def): Likewise.  Take stmt iterator.
1933         (rewrite_update_stmt): Take stmt iterator and pass it on.
1934         (rewrite_update_enter_block): Pass stmt iterator.
1935
1936 2009-10-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1937
1938         * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
1939         (spu_builtin_decl): New function.
1940
1941 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
1942
1943         * config/i386/i386.md (SWIM): New mode iterator.
1944         (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
1945         using SWIM mode iterator.
1946         (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
1947         patterns using SWI48 mode iterator.
1948         (*x86_mov<mode>cc_0_m1_se):  Macroize insn from
1949         *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
1950         (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
1951         (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
1952         patterns using SWI248 mode iterator.
1953         * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
1954         gen_x86_movdicc_0_m1_rex64 for renamed function
1955
1956 2009-10-11  Jose Ruiz  <ruiz@adacore.com>
1957             Eric Botcazou  <ebotcazou@adacore.com>
1958
1959         PR target/33743
1960         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
1961         * config/sparc/sol2-unwind.h: New file.
1962
1963 2009-10-11  Olivier Hainque  <hainque@adacore.com>
1964             Eric Botcazou  <ebotcazou@adacore.com>
1965
1966         PR target/33743
1967         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
1968         * config/i386/sol2-unwind.h: New file.
1969
1970 2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>
1971
1972         PR target/41665
1973         * config/i386/i386.md (addsi_1_zext): Get the proper second
1974         operand for lea.
1975
1976 2009-10-11  Richard Sandiford  <rdsandiford@googlemail.com>
1977
1978         * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
1979         all OLD_RTXes, not just REGs.  Use copy_rtx to create the
1980         replacement value.
1981
1982 2009-10-11  Richard Guenther  <rguenther@suse.de>
1983
1984         * gimple.c (iterative_hash_type_name): Do not handle special
1985         anonymous names.
1986
1987 2009-10-11  Uros Bizjak  <ubizjak@gmail.com>
1988
1989         * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
1990         (*setcc_si_1_and): Ditto.
1991         (*setcc_si_1_movzbl): Ditto.
1992         (*setcc_<mode>_2): Ditto.
1993         (*setcc_qi): Rename from *setcc_1.
1994         (*setcc_qi_slp): Rename from *setcc_2.
1995
1996         (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
1997         (*zero_extendqisi2_movzbw_and splitter): Ditto.
1998
1999         * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
2000         "if" condition, there is already assert with reload_completed present.
2001
2002 2009-10-11  Gerald Pfeifer  <gerald@pfeifer.com>
2003
2004         * plugin.c (try_init_one_plugin): Improve constness of variable err.
2005
2006 2009-10-10  Gerald Pfeifer  <gerald@pfeifer.com>
2007
2008         * doc/install.texi (Final install): Refer to
2009         http://gcc.gnu.org/bugs/ for bug reporting.
2010
2011 2009-10-10  Peter Bergner  <bergner@vnet.ibm.com>
2012
2013         * configure.ac: Add test for dci instruction.
2014         * configure: Regenerate.
2015         * config.in: Likewise.
2016         * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
2017         * doc/invoke.texi: Add cpu_type 476 and 476fp.
2018         (-mmulhw): Add 476 to description.
2019         (-mdlmzb): Likewise.
2020         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
2021         * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
2022         (processor_target_table): Add 476 and 476fp entries.
2023         (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
2024         (rs6000_issue_rate): Add CPU_PPC476.
2025         * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
2026         (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
2027         (processor_type): Add PROCESSOR_PPC476.
2028         (EXTRA_SPECS): Add asm_cpu_476 string.
2029         * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
2030         (define_attr "cpu"): Add ppc476.
2031         Include 476.md.
2032         Update comments for 476.
2033         (isel_signed, isel_unsigned): Change to use "isel" type attribute.
2034         * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
2035         Update copyright year.
2036         * config/rs6000/476.md: New file.
2037         * config/rs6000/40x.md: Add description for "isel" attribute.
2038         Update copyright year.
2039         * config/rs6000/440.md: Likewise.
2040         * config/rs6000/603.md: Likewise.
2041         * config/rs6000/6xx.md: Likewise.
2042         * config/rs6000/7450.md: Likewise.
2043         * config/rs6000/7xx.md: Likewise.
2044         * config/rs6000/8540.md: Likewise.
2045         * config/rs6000/cell.md: Likewise.
2046         * config/rs6000/e300c2c3.md: Likewise.
2047         * config/rs6000/e500mc.md: Likewise.
2048         * config/rs6000/mpc.md: Likewise.
2049         * config/rs6000/power4.md: Likewise.
2050         * config/rs6000/power5.md: Likewise.
2051         * config/rs6000/power6.md: Likewise.
2052         * config/rs6000/power7.md: Likewise.
2053         * config/rs6000/rios1.md: Likewise.
2054         * config/rs6000/rios2.md: Likewise.
2055         * config/rs6000/rs64.md: Likewise.
2056
2057 2009-10-10  Richard Guenther  <rguenther@suse.de>
2058
2059         PR tree-optimization/41654
2060         * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
2061         a cond expr before calling gimple_cond_set_condition_from_tree.
2062         (ifcombine_iforif): Likewise.
2063
2064 2009-10-09  Ian Lance Taylor  <iant@google.com>
2065
2066         * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
2067         * configure: Rebuild.
2068
2069 2009-10-09  Neil Vachharajani <nvachhar@google.com>
2070
2071         * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
2072         deprecated.
2073
2074 2009-10-09  Richard Guenther  <rguenther@suse.de>
2075
2076         PR lto/41638
2077         * target-def.h (TARGET_BUILTIN_DECL): Define.
2078         (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
2079         * target.h (struct gcc_target): Add builtin_decl target hook.
2080         * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
2081         * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
2082         target builtins.
2083         * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
2084         not gcc_unreachable.
2085         (lto_output_builtin_tree): Sorry if the target does not support
2086         streaming target builtins.
2087         * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
2088         (rs6000_builtin_decl): New function.
2089         * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
2090         (ix86_builtin_decl): New function.
2091
2092 2009-10-09  Jakub Jelinek  <jakub@redhat.com>
2093
2094         PR preprocessor/41445
2095         * c-ppoutput.c (do_line_change): New function.
2096         (cb_line_change): Use it.
2097         (scan_translation_unit): Call do_line_change if
2098         avoid_paste or PREV_WHITE and token location is on a different line
2099         than print.src_line.
2100
2101         PR debug/40521
2102         * dwarf2out.c (dwarf2out_init): Test whether
2103         HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
2104         it is defined.
2105
2106         PR rtl-optimization/41646
2107         * calls.c (expand_call): For BLKmode types returned in registers
2108         avoid likely spilled hard regs in copy_blkmode_from_reg generated
2109         insns.
2110
2111 2009-10-09  Richard Guenther  <rguenther@suse.de>
2112
2113         PR tree-optimization/41634
2114         * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
2115         we remove the correct elements.
2116         (optimize_stmt): Make sure to update stmt operands before
2117         optimizing redundancies.
2118
2119 2009-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2120
2121         * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
2122
2123 2009-10-09  Richard Guenther  <rguenther@suse.de>
2124
2125         PR driver/41637
2126         * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
2127         globals.
2128         (lto_wrapper_exit): New function.
2129         (fatal): Use it.
2130         (fatal_perror): Likewise.
2131         (fork_execute): Use global args_name, do not free it.
2132         (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
2133         * lto-streamer.h: Remove duplicate prototypes.
2134
2135 2009-10-09  Richard Guenther  <rguenther@suse.de>
2136
2137         * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
2138         before calling stmt_can_throw_external.
2139
2140 2009-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2141
2142         PR tree-optimization/40071
2143         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
2144         pointer if the original data reference doesn't conflict with the
2145         created vector data reference.  Fix long line.
2146
2147 2009-10-09  Uros Bizjak  <ubizjak@gmail.com>
2148
2149         * config/i386/i386.md (any_div): New code iterator.
2150         (u): Handle div and udiv.
2151         (sgnprefix): Ditto.
2152         (<u>divqi3): Macroize insn from {,u}divqi3  using any_div
2153         code iterator.
2154         (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
2155         lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
2156         (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
2157         lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
2158
2159 2009-10-08  Joseph Myers  <joseph@codesourcery.com>
2160
2161         * gcc.c (main): Remove trailing "." from diagnostics.
2162
2163 2009-10-08  Cary Coutant  <ccoutant@google.com>
2164
2165         Add support for debugging with ICF (Identical Code Folding).
2166         * calls.c (debug.h): New #include.
2167         (emit_call_1): Call virtual_call_token debug hook.
2168         * common.opt (-fenable-icf-debug): New option.
2169         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
2170         locations in the source).
2171         (poc_label_num): New variable.
2172         (dcall_entry, vcall_entry): New typedefs.
2173         (dcall_table, vcall_table): New variables.
2174         (struct vcall_insn): New type.
2175         (vcall_insn_table): New variable.
2176         (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
2177         (size_of_dcall_table): New function.
2178         (output_dcall_table): New function.
2179         (size_of_vcall_table): New function.
2180         (output_vcall_table): New function.
2181         (dwarf2out_direct_call): New function.
2182         (vcall_insn_table_hash): New function.
2183         (vcall_insn_table_eq): New function.
2184         (dwarf2out_virtual_call_token): New function.
2185         (dwarf2out_virtual_call): New function.
2186         (dwarf2out_init): Allocate new tables and sections.
2187         (prune_unused_types): Mark DIEs referenced from direct call table.
2188         (dwarf2out_finish): Output direct and virtual call tables.
2189         * final.c (final_scan_insn): Call direct_call and virtual_call
2190         debug hooks.
2191         * debug.h (struct gcc_debug_hooks): Add direct_call,
2192         virtual_call_token, virtual_call hooks.
2193         (debug_nothing_uid): New function.
2194         * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
2195         (debug_nothing_uid): New function.
2196         * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
2197         (xcoff_debug_hooks): Likewise.
2198         * sdbout.c (sdb_debug_hooks): Likewise.
2199         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2200         * doc/invoke.texi (-fenable-icf-debug): New option.
2201
2202 2009-10-08  Alexandre Oliva  <aoliva@redhat.com>
2203
2204         PR debug/41353
2205         * regmove.c (regmove_backward_pass): Replace src with dst in the
2206         debug insn, and check for dst before rather than after.
2207
2208 2009-10-08  Janis Johnson <janis187@us.ibm.com>
2209
2210         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
2211         (TARGET_DELEGITIMIZE_ADDRESS): Likewise.
2212
2213 2009-10-08  Jan Hubicka  <jh@suse.cz>
2214
2215         PR middle-end/41626
2216         * cgraphbuild.c (record_reference): When parameter DATA is NULL,
2217         do not mark cgraph nodes as needed.
2218         (record_references_in_initializer): Add new only_vars parameter.
2219         * cgraph.h (record_references_in_initializer): New parameter.
2220         * varasm.c (assemble_variable): Update call.
2221         * varpool.c (varpool_analyze_pending_decls): Always look for
2222         referenced vars.
2223
2224 2009-10-08  Anatoly Sokolov  <aesok@post.ru>
2225
2226         * config/avr/avr.c (last_insn_address) Remove variable.
2227         (expand_prologue): Don't initialise last_insn_address variable.
2228         (final_prescan_insn): Don't output insn size.
2229         * config/avr/avr.opt (msize): Remove switch.
2230         * doc/invoke.texi (AVR Options): Remove documentation of -msize
2231         switch.
2232
2233 2009-10-08  Adam Nemet  <anemet@caviumnetworks.com>
2234
2235         * combine.c (label_tick_ebb_start): Fix comment.
2236         (combine_instructions): Set label_tick and label_tick_ebb_start before
2237         calling setup_incoming_promotions.  Start them from 1.  Increment
2238         label_tick instead of deriving it from the BB index.  Rather than
2239         comparing ticks use the block from the previous iteration to decide
2240         whether to start a new EBB.  Remove empty lines before function.
2241
2242 2009-10-08  Michael Matz  <matz@suse.de>
2243
2244         PR middle-end/41573
2245         * builtins.c (fold_builtin_isascii): Use fold_build2.
2246         (fold_builtin_isdigit): Ditto.
2247         * except.c (duplicate_eh_regions_1): Tolerate NULL labels.
2248         * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
2249         remove_useless_stmts_cond, remove_useless_stmts_tf,
2250         remove_useless_stmts_tc, remove_useless_stmts_bind,
2251         remove_useless_stmts_goto, remove_useless_stmts_label,
2252         remove_useless_stmts_1, remove_useless_stmts,
2253         pass_remove_useless_stmts): Remove.
2254         * tree-pass.h (pass_remove_useless_stmts): Don't declare.
2255         * passes.c (init_optimization_passes): Don't add
2256         pass_remove_useless_stmts.
2257         * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
2258         * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
2259         static constants.
2260         * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
2261         for static constants.
2262         * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
2263         * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
2264
2265 2009-10-08  Richard Guenther  <rguenther@suse.de>
2266
2267         * gimple.c (free_gimple_type_tables): New function.
2268         * gimple.h (free_gimple_type_tables): Declare.
2269
2270 2009-10-07  Mark Heffernan  <meheff@google.com>
2271
2272         * ipa-prop.c (ipa_print_node_params) Only print
2273         names of named arguments.
2274
2275 2009-10-08  Rafael Avila de Espindola  <espindola@google.com>
2276
2277         * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
2278         being statically linked.
2279
2280 2009-10-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2281
2282         * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
2283
2284 2009-10-08  Jan Hubicka  <jh@suse.cz>
2285
2286         PR bootstrap/41620
2287         * ipa.c (cgraph_externally_visible_p,
2288         function_and_variable_visibility,
2289         whole_program_function_and_variable_visibility): Skip non-finalized
2290         nodes.
2291
2292 2009-10-08  Nick Clifton  <nickc@redhat.com>
2293
2294         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
2295         CONST_DOUBLEs.
2296
2297 2009-10-08  Andreas Tobler  <a.tobler@schweiz.org>
2298
2299         PR bootstrap/37739
2300         * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
2301
2302 2009-10-07  Joseph Myers  <joseph@codesourcery.com>
2303
2304         PR c/41182
2305         * c-common.c (c_fully_fold_internal): Strip nops from the result
2306         of recursive calls to c_fully_fold_internal.
2307         (c_wrap_maybe_const): New.
2308         (c_save_expr): Use c_wrap_maybe_const.
2309         * c-common.h (c_wrap_maybe_const): Declare.
2310         * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
2311         build_binary_op): Use c_wrap_maybe_const.
2312
2313 2009-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2314
2315         * real.c: Fix comment to reflect actual exponent size.
2316
2317 2009-10-08  Ben Elliston  <bje@au.ibm.com>
2318
2319         * config/rs6000/a2.md: Add FSF comment header.
2320
2321 2009-10-07  Uros Bizjak  <ubizjak@gmail.com>
2322
2323         * config/i386/i386.md (any_extend): New code iterator.
2324         (u, s): New code attributes.
2325         (sgnprefix): Ditto.
2326         (DWIH): Rewrite as code iterator for SI and DI modes.
2327         (DWI): Rewrite as mode attribute.
2328         (dwi): New mode attribute.
2329         (di): Depend on SI mode and DI mode.
2330         (doubleint_general_operand): Remove mode attribute.
2331
2332         (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
2333         DWIH mode iterator.
2334
2335         (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
2336         (*sub<mode>3_doubleword): Ditto.
2337
2338         (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
2339         using SWIM248 mode iterator.
2340         (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
2341         using SWI48 mode iterator.
2342         (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
2343         patterns using DWIH mode iterator and any_extend code iterator.
2344         (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
2345         using any_extend code iterator.
2346         (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
2347         patterns using DWIH mode iterator and any_extend code iterator.
2348         (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
2349         using any_extend code iterator.
2350         (<s>mul<mode>3_highpart): Macroize expander from
2351         {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
2352         and any_extend code iterator.
2353         (*<s>muldi3_highpart_1): Macroize insn from
2354         *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
2355         (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
2356         patterns using any_extend code iterator.
2357         (*<s>mulsi3_highpart_zext): Macroize insn from
2358         *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
2359
2360 2009-10-07  Jakub Jelinek  <jakub@redhat.com>
2361
2362         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
2363         DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
2364         refering to a DIE with DW_AT_const_value.
2365
2366 2009-10-07  Vladimir Makarov  <vmakarov@redhat.com>
2367
2368         PR middle-end/22072
2369         * ira-lives.c (check_and_make_def_conflict): Process all operands.
2370
2371 2009-10-06  Jan Hubicka  <jh@suse.cz>
2372
2373         * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
2374         correctly.
2375
2376 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
2377
2378         * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
2379         *lea_2_rex64): Move before *add<mode>_1 pattern.
2380
2381 2009-10-07  Jan Hubicka  <jh@suse.cz>
2382
2383         * collect2.c (main): Add -fno-whole-program.
2384         * gcc.c (set_collect_gcc_options): Do not remove whole program here.
2385
2386 2009-10-07  Jan Hubicka  <jh@suse.cz>
2387
2388         * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
2389         has no address taken.
2390         * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
2391         never needed.
2392         (cgraph_clone_node): Clear externally_visible flag for clones.
2393         * cgraph.h (cgraph_only_called_directly_p,
2394         cgraph_can_remove_if_no_direct_calls_p): New predicates.
2395         * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
2396         * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
2397         (ipcp_initialize_node_lattices, ipcp_estimate_growth,
2398         ipcp_insert_stage): Likwise.
2399         * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
2400         externally_visible flag.
2401         (verify_cgraph_node): Verify that inline clones look right.
2402         (process_function_and_variable_attributes): Do not set
2403         externally_visible flags.
2404         (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
2405         been already run.
2406         * lto-cgraph.c (lto_output_node): Assert that inline clones are not
2407         boundaries.
2408         * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
2409         clear externally_visible when turning into inline clones
2410         (cgraph_mark_inline_edge): Use new predicates.
2411         (cgraph_estimate_growth): Likewise.
2412         (cgraph_decide_inlining): Likewise.
2413         * ipa.c (cgraph_postorder): Likewise.
2414         (cgraph_remove_unreachable_nodes): Likewise; sanity check
2415         that inline clones are not needed.
2416         (cgraph_externally_visible_p): New predicate.
2417         (function_and_variable_visibility): Add whole_program parameter;
2418         always set externally_visible flag; handle COMDAT function
2419         privatization.
2420         (local_function_and_variable_visibility): New function.
2421         (gate_whole_program_function_and_variable_visibility): New function.
2422         (whole_program_function_and_variable_visibility): New function.
2423         (pass_ipa_whole_program_visibility): New function.
2424         * passes.c  (init_optimization_passes): Add whole program visibility
2425         pass.
2426         (do_per_function_toporder, function_called_by_processed_nodes_p): Do
2427         not care about needed/reachable flags.
2428         * varpool.c: Include flags.h
2429         (decide_is_variable_needed): When doing LTO assume whole-program mode.
2430         (varpool_finalize_decl): When we are in LTO read-back, all variables
2431         are analyzed.
2432         (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
2433
2434 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2435
2436         * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
2437         add MASK_HARD_DFP.
2438
2439 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2440
2441         * config.gcc: Don't include the makefile fragments intended for
2442         libgcc.
2443         * config/s390/fixdfdi.h: File removed.
2444         * config/s390/libgcc-glibc.ver: File removed.
2445         * config/s390/s390.h: Remove the fixdfdi.h hack.
2446         * config/s390/t-crtstuff: File moved to libgcc dir.
2447         * config/s390/t-linux: Likewise.
2448         * config/s390/t-tpf: libgcc specific parts removed.
2449         * config/s390/t-linux64: Likewise.
2450
2451 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
2452
2453         * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
2454         (lto-compress.o): Likewise.
2455
2456 2009-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
2457
2458         PR target/41512
2459         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
2460         dllexport to class members here.
2461         (i386_pe_determine_dllimport_p): Only check static class data for
2462         definition.
2463         (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
2464         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
2465         functions for vague linkage.
2466         (i386_pe_type_dllexport_p): Fix formatting.
2467         (maybe_add_dllexport) New function.
2468         (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
2469         to class members.
2470
2471 2009-10-07  Ben Elliston  <bje@au.ibm.com>
2472
2473         * config/rs6000/a2.md: Remove duplicated lines.
2474
2475 2009-10-07  Ben Elliston  <bje@au.ibm.com>
2476
2477         * config.gcc (powerpc*-*-*): Handle a2.
2478         * config/rs6000/rs6000.md (cpu): Add ppca2.  Include "a2.md".
2479         * config/rs6000/a2.md: New file.
2480         * config/rs6000/rs6000.opt (mno-update): New.
2481         (mupdate): Return to using a mask, not a var.
2482         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
2483         (enum processor_type): Add PROCESSOR_PPCA2.
2484         * config/rs6000/rs6000.c (ppca2_cost): New costs.
2485         (rs6000_override_options): Add "a2" to processor_target_table.
2486         Update rs6000_always_hint logic.  Correctly set rs6000_cost for a2.
2487         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
2488
2489 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
2490
2491         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2492         Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
2493         reference to nonexistent gen_truncxfxf2 function.
2494
2495 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
2496
2497         * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
2498         (DWIH, g, di, doubleint_general_operand): New mode attributes.
2499         (general_operand): Handle TI mode.
2500         (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
2501         using SDWIM mode iterator.
2502         (*add<mode>3_doubleword): New insn_and_split pattern.  Macroize
2503         pattern from *add{di,ti}3_1 patterns and corresponding splitters
2504         using DWI mode iterator.
2505         (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
2506         patterns using SWI mode iterator.
2507         (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
2508         using SWI48 mode iterator.
2509         (*add<mode>_1): Ditto from add{si,di}_1 patterns.
2510         (*add<mode>_2): Ditto from add{si,di}_2 patterns.
2511         (*add<mode>_3): Ditto from add{si,di}_3 patterns.
2512         (*add<mode>_5): Ditto from add{si,di}_5 patterns.
2513         (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
2514         using SDWIM mode iterator.
2515         (*sub<mode>3_doubleword): New insn_and_split pattern.  Macroize
2516         pattern from *sub{di,ti}3_1 patterns and corresponding splitters
2517         using DWI mode iterator.
2518         (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
2519         patterns using SWI mode iterator.
2520         (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
2521         (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
2522         (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
2523         (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
2524         patterns using plusminus code iterator.
2525         (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
2526         sub<mode>3 patterns using plusminus code iterator.
2527         * config/i386/i386.c (override_options): Update the call to
2528         gen_subdi_carry_rex64 for renamed function.
2529         (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
2530         and gen_adddi3_carry_rex64 for renamed functions.  Use indirect
2531         calls to instruction expanders.
2532
2533 2009-10-06  Martin Jambor  <mjambor@suse.cz>
2534
2535         PR bootstrap/41395
2536         * opts.c (decode_options): Run IPA-SRA at -O2.
2537
2538 2009-10-06  Richard Guenther  <rguenther@suse.de>
2539
2540         * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
2541
2542 2009-10-06  Tobias Burnus  <burnus@net-b.de>
2543
2544         PR lto/41591
2545         * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
2546         -flto and -fwhole-program flags can be combined.
2547
2548 2009-10-06  Ryan Mansfield  <rmansfield@qnx.com>
2549
2550         PR driver/41217
2551         * gcc.c (process_command): Check that -o argument was specified.
2552
2553 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
2554
2555         * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.
2556
2557 2009-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2558
2559         * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
2560         * doc/invoke.texi (Warning Options): Annotate allowed languages
2561         for -Wunsuffixed-float-constants.
2562
2563 2009-10-05  Jakub Jelinek  <jakub@redhat.com>
2564
2565         * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
2566         DW_TAG_{const,volatile}_type if its DW_AT_type already has the
2567         same name and isn't the main variant.
2568
2569         PR debug/41558
2570         * dwarf2out.c (loc_by_reference): Removed.
2571         (dw_loc_list_1): New function.
2572         (dw_loc_list): Remove toplev argument, add want_address argument.
2573         Don't look at decl_by_reference_p at all.  Use dw_loc_list_1.
2574         (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
2575         want_address == 2 to dw_loc_list.  For successful dw_loc_list
2576         set have_address to 1 only if want_address is not 0.
2577
2578 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
2579
2580         * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
2581         * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
2582         a code block followed by two pointers.
2583         (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
2584         * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
2585         (MIPS_MOVE): Likewise.
2586         (MIPS_LUI): Likewise.
2587         (MIPS_JR): Likewise.
2588         (MIPS_BAL): Likewise.
2589         (MIPS_NOP): Likewise.
2590         (mips_asm_trampoline_template): Delete.
2591         (mips_trampoline_code_size): New function.
2592         (mips_trampoline_init): Add shorter sequences for all cases
2593         except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
2594         Calculate the opcodes directly, rather than copying from a template.
2595         Only flush the code part of the trampoline.
2596         (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
2597
2598 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
2599
2600         * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
2601         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
2602         (INCOMING_RETURN_ADDR_RTX): Likewise.
2603         (FUNCTION_PROFILER): Likewise.  Replace GP_REG_FIRST + 1
2604         with AT_REGNUM.
2605         * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
2606         with RETURN_ADDR_REGNUM.
2607         (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
2608         * config/mips/mips.c (mips16_build_call_stub): Replace
2609         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
2610         with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
2611         (mips_print_operand_punctuation): Likewise.
2612         (mips_frame_set): Likewise.
2613         (mips16e_output_save_restore): Likewise.
2614         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
2615         (mips_save_reg_p): Likewise.
2616         (mips_return_addr): Likewise.
2617         (mips_set_return_address): Likewise.
2618         (mips_direct_save_slot_move_p): Likewise.
2619         (mips_output_function_prologue): Likewise.
2620         (mips_restore_reg): Likewise.
2621         (mips_expand_epilogue): Likewise.
2622         (mips_epilogue_uses): Likewise.
2623         * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
2624         (*mov<mode>_ra): Use it instead of a hard-coded 31.
2625         (clear_hazard_<mode>): Likewise.
2626         (call_internal): Likewise.
2627         (call_internal_direct): Likewise.
2628         (call_direct_split): Likewise.
2629         (call_value_internal): Likewise.
2630         (call_value_split): Likewise.
2631         (call_value_internal_direct): Likewise.
2632         (call_value_direct_split): Likewise.
2633         (call_value_multiple_internal): Likewise.
2634         (call_value_multiple_split): Likewise.
2635
2636 2009-10-05  Eric Botcazou  <ebotcazou@adacore.com>
2637             Jakub Jelinek  <jakub@redhat.com>
2638
2639         PR rtl-optimization/41511
2640         * combine.c (record_value_for_reg): Pass explicit values as argument
2641         to get_last_value_validate.
2642         (get_last_value_validate): Document INSN parameter.
2643         For non-readonly MEMs, assume they might have been modified if INSN
2644         was in another basic block.
2645         (get_last_value): Minor reformatting.
2646
2647 2009-10-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2648
2649         PR tree-opt/40992
2650         * final.c (asm_str_count): Split out from asm_insn_count.
2651         * rtl.h (asm_str_count): New prototype.
2652         * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
2653         asm_str_count.
2654
2655 2009-10-05  Sriraman Tallam  <tmsriram@google.com>
2656
2657         * doc/plugins.texi: Change plugin_pass to register_pass_info.
2658
2659 2009-10-05  Basile Starynkevitch  <basile@starynkevitch.net>
2660             Rafael Espindola  <espindola@google.com>
2661
2662         * gengtype.c (write_types): Moved call to write_func_for_structure
2663         into seperate loops.
2664
2665 2009-10-05  Richard Guenther  <rguenther@suse.de>
2666
2667         PR lto/41281
2668         * lto-cgraph.c (output_cgraph): Output toplevel asms.
2669         (input_cgraph_1): Input toplevel asms.
2670
2671 2009-10-05  Richard Guenther  <rguenther@suse.de>
2672
2673         PR lto/40902
2674         * lto-symtab.c (lto_compatible_attributes_p): Remove.
2675         (external_aggregate_decl_p): Likewise.
2676         (lto_symtab_compatible): Re-structure.  Remove dead code.
2677         For variables ignore toplevel qualifiers when comparing types.
2678         Issue warnings, not errors for mismatched user-alignment.
2679
2680 2009-10-05  Richard Guenther  <rguenther@suse.de>
2681
2682         PR lto/41552
2683         PR lto/41487
2684         * lto-symtab.c (struct lto_symtab_base_def): Remove.
2685         (struct lto_symtab_identifier_def): Likewise.
2686         (struct lto_symtab_decl_def): Likewise.
2687         (struct lto_symtab_entry_def): New.
2688         (lto_symtab_identifier_t): Rename to ...
2689         (lto_symtab_entry_t): ... this.
2690         (lto_symtab_decls): Remove.
2691         (lto_symtab_base_hash): Rename to ...
2692         (lto_symtab_entry_hash): ... this.
2693         (lto_symtab_base_eq): Rename to ...
2694         (lto_symtab_entry_eq): ... this.
2695         (lto_symtab_base_marked_p): Rename to ...
2696         (lto_symtab_entry_marked_p): ... this.
2697         (lto_symtab_identifier_marked_p): Remove.
2698         (lto_symtab_decl_marked_p): Likewise.
2699         (lto_symtab_maybe_init_hash_tables): Rename to ...
2700         (lto_symtab_maybe_init_hash_table): ... this.
2701         (lto_symtab_set_resolution_and_file_data): Remove.
2702         (lto_symtab_register_decl): New function.
2703         (lto_symtab_get_identifier): Remove.
2704         (lto_symtab_get): New function.
2705         (lto_symtab_get_resolution): Adjust.
2706         (lto_symtab_get_identifier_decl): Remove.
2707         (lto_symtab_set_identifier_decl): Likewise.
2708         (lto_symtab_merge_decl): Rename to ...
2709         (lto_symtab_merge): ... this.  Rewrite.
2710         (lto_symtab_merge_var): Remove.
2711         (lto_symtab_merge_fn): Likewise.
2712         (lto_symtab_prevailing_decl): Adjust.
2713         (lto_cgraph_replace_node): New function.
2714         (lto_symtab_merge_decls_2): Likewise.
2715         (lto_symtab_merge_decls_1): Likewise.
2716         (lto_symtab_fixup_var_decls): Likewise.
2717         (lto_symtab_resolve_symbols): Likewise.
2718         (lto_symtab_merge_decls): Likewise.
2719         (lto_symtab_prevailing_decl): Adjust.
2720         (lto_symtab_get_symtab_def): Remove.
2721         (lto_symtab_get_file_data): Likewise.
2722         (lto_symtab_clear_resolution): Adjust.
2723         (lto_symtab_clear_resolution): Likewise.
2724         * lto-cgraph.c (input_edge): Do not merge cgraph nodes here.
2725         (input_cgraph_1): Likewise.
2726         * lto-streamer-in.c (get_resolution): Do not provide fake
2727         symbol resolutions here.
2728         (deferred_global_decls): Remove.
2729         (lto_register_deferred_decls_in_symtab): Likewise.
2730         (lto_register_var_decl_in_symtab): Change signature, register
2731         variable via lto_symtab_register_decl.
2732         (lto_register_function_decl_in_symtab): Likewise.
2733         (lto_read_tree): Adjust.
2734         * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove.
2735         (lto_symtab_merge_var): Likewise.
2736         (lto_symtab_merge_fn): Likewise.
2737         (lto_symtab_register_decl): Declare.
2738         (lto_symtab_merge_decls): Likewise.
2739
2740 2009-10-05  Richard Guenther  <rguenther@suse.de>
2741
2742         PR tree-optimization/23821
2743         * tree-vrp.c (vrp_finalize): Do not perform copy propagation.
2744         * tree-ssa-dom.c (cprop_operand): Do not propagate copies into
2745         simple IV increments.
2746
2747 2009-10-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2748
2749         * config/arm/arm.c (arm_override_options): Really initialize
2750         flag_dwarf2_cfi_asm to 0.
2751
2752 2009-10-05  Doug Kwan  <dougkwan@google.com>
2753
2754         PR rtl-optimization/41574
2755         * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
2756         floating point and we are not doing unsafe math optimizations.
2757
2758 2009-10-03  Simon Baldwin  <simonb@google.com>
2759             Cary Coutant  <ccoutant@google.com>
2760             Rafael Espindola  <espindola@google.com>
2761             Richard Guenther  <rguenther@suse.de>
2762             Jan Hubicka  <jh@suse.cz>
2763             Doug Kwan <dougkwan@google.com>
2764             H.J. Lu  <hongjiu.lu@intel.com>
2765             Bill Maddox  <maddox@google.com>
2766             Ryan Mansfield  <rmansfield@qnx.com>
2767             Diego Novillo  <dnovillo@google.com>
2768             Ollie Wild  <aaw@google.com>
2769             Kenneth Zadeck <zadeck@naturalbridge.com>
2770
2771         * lto-cgraph.c: New file.
2772         * lto-compress.c: New file.
2773         * lto-compress.h: New file.
2774         * lto-opts.c: New file.
2775         * lto-section-in.c: New file.
2776         * lto-section-out.c: New file.
2777         * lto-streamer-in.c: New file.
2778         * lto-streamer-out.c: New file.
2779         * lto-streamer.c: New file.
2780         * lto-streamer.h: New file.
2781         * lto-symtab.c: New file.
2782         * lto-wpa-fixup.c: New file.
2783         * lto-wrapper.c: New file.
2784
2785 2009-10-03  Simon Baldwin  <baldwin@google.com>
2786             Ben Elliston  <bje@au.ibm.com>
2787             Rafael Espindola  <espindola@google.com>
2788             Nathan Froyd  <froydnj@codesourcery.com>
2789             Jan Hubicka  <jh@suse.cz>
2790             Doug Kwan  <dougkwan@google.com>
2791             Diego Novillo  <dnovillo@google.com>
2792             Kenneth Zadeck  <zadeck@naturalbridge.com>
2793
2794         * Makefile.in (enable_lto): New.
2795         (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO.
2796         (LINKER_PLUGIN_API_H): Define.
2797         (LTO_SYMTAB_H): Define.
2798         (LTO_STREAMER_H): Define.
2799         (TREE_VECTORIZER_H): Define.
2800         (INCLUDES): Add LIBELFINC.
2801         (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o,
2802         lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o,
2803         lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o.
2804         (MOSTLYCLEANFILES): Add lto-wrapper$(exeext)
2805         (native): Add lto-wrapper$(exeext)
2806         (lto-compress.o, lto-cgraph.o, lto-streamer-in.o,
2807         lto-streamer-out.o, lto-section-in.o, lto-section-out.o,
2808         lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules.
2809         (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H.
2810         (varasm.o): Add dependency on tree-iterator.h.
2811         (cgraph.o): Add dependency on cif-code.def.
2812         (ipa-reference.o): Add dependency on LTO_STREAMER_H.
2813         (ipa-pure-const.o): Likewise.
2814         (GTFILES): Add lto-symtab.c.
2815         (install-lto-wrapper): New.
2816         * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO
2817         and enable_lto.  If LIBELFLIBS is set, define HAVE_libelf.
2818         * config.in: Regenerate.
2819
2820 2009-10-03  Rafael Espindola  <espindola@google.com>
2821             Diego Novillo  <dnovillo@google.com>
2822
2823         * cgraphunit.c (ipa_passes): Prevent lto1 from calling
2824         ipa_write_summaries.
2825         Call execute_ipa_summary_passes for all_regular_ipa_passes and
2826         all_lto_gen_passes.
2827         (cgraph_optimize): Make extern.
2828
2829 2009-10-03  Nathan Froyd  <froydnj@codesourcery.com>
2830             Kenneth Zadeck <zadeck@naturalbridge.com>
2831
2832         * toplev.c (in_lto_p): Declare.
2833         * collect2.c (scan_prog_file): Read all the output when reading
2834         information for LTO.
2835         (enum lto_mode_d): Declare.
2836
2837 2009-10-03  Richard Guenther  <rguenther@suse.de>
2838             Diego Novillo  <dnovillo@google.com>
2839
2840         * gimple.c: Include target.h and alias.h.
2841         (gimple_types): Declare.
2842         (type_hash_cache): Declare.
2843         (gimple_alloc_stat): Make extern.
2844         (gimple_build_eh_must_not_throw): Call
2845         gimple_eh_must_not_throw_set_fndecl.
2846         (struct type_pair_d): Declare.
2847         (type_pair_t): Declare.
2848         (type_pair_hash): New.
2849         (type_pair_eq): New.
2850         (lookup_type_pair): New.
2851         (gimple_force_type_merge): New.
2852         (compare_type_names_p): New.
2853         (compare_field_offset): New.
2854         (gimple_types_compatible_p): New.
2855         (struct sccs): Declare.
2856         (next_dfs_num): Declare.
2857         (iterative_hash_gimple_type): New.
2858         (visit): New.
2859         (iterative_hash_type_name): New.
2860         (iterative_hash_gimple_type): New.
2861         (gimple_type_hash): New.
2862         (gimple_type_eq): New.
2863         (gimple_register_type): New.
2864         (print_gimple_types_stats): New.
2865         (gimple_signed_or_unsigned_type): New.
2866         (gimple_unsigned_type): New.
2867         (gimple_signed_type): New.
2868         (gimple_get_alias_set): New.
2869         (gimple_decl_printable_name): Do not use DMGL_TYPES.
2870         * gimple.h (gimple_alloc, gimple_alloc_stat): Declare.
2871         (gimple_force_type_merge): Declare.
2872         (gimple_types_compatible_p): Declare.
2873         (gimple_register_type): Declare.
2874         (print_gimple_types_stats): Declare.
2875         (gimple_unsigned_type): Declare.
2876         (gimple_signed_type): Declare.
2877         (gimple_get_alias_set): Declare.
2878         (gimple_eh_must_not_throw_set_fndecl): New.
2879
2880 2009-10-03  Jan Hubicka  <jh@suse.cz>
2881             Kenneth Zadeck <zadeck@naturalbridge.com>
2882
2883         * ipa-pure-const.c: Include lto-streamer.h.
2884         (register_hooks): Factor out of ...
2885         (generate_summary): ... here.
2886         (pure_const_write_summary): New.
2887         (pure_const_read_summary): New.
2888         (pass_ipa_pure_const): Add pure_const_write_summary and
2889         pure_const_read_summary.
2890         * ipa-reference.c: Include lto-streamer.h.
2891         (add_new_function): New.
2892         (remove_node_data): New.
2893         (duplicate_node_data): New.
2894         (ipa_init): Guard against multiple calls.
2895         Move hook setup from analyze_function.
2896         (write_node_summary_p): New.
2897         (ipa_reference_write_summary): New.
2898         (ipa_reference_read_summary): New.
2899         (pass_ipa_reference): Add ipa_reference_write_summary and
2900         ipa_reference_read_summary.
2901         * cgraph.h (cgraph_local_info): Add field lto_file_data.
2902         (struct cgraph_edge): Add fields lto_stmt_uid and
2903         call_stmt_cannot_inline_p.
2904         (cgraph_optimize): Declare.
2905         (cgraph_decide_is_function_needed): Declare.
2906         (reset_inline_failed): Declare.
2907         (enum LTO_cgraph_tags): Declare.
2908         (LTO_cgraph_tag_names): Declare.
2909         (LCC_NOT_FOUND): Define.
2910
2911 2009-10-03  Doug Kwan  <dougkwan@google.com>
2912             Rafael Espindola  <espindola@google.com>
2913             Jan Hubicka  <jh@suse.cz>
2914             Diego Novillo  <dnovillo@google.com>
2915             Kenneth Zadeck  <zadeck@naturalbridge.com>
2916
2917         * passes.c (all_regular_ipa_passes): New.
2918         (all_ipa_passes): Rename to all_small_ipa_passes.
2919         (init_optimization_passes): Init all_regular_ipa_passes.
2920         * tree-pass.h (all_regular_ipa_passes): New.
2921         (all_ipa_passes): Rename to all_small_ipa_passes.
2922         * passes.c (all_lto_gen_passes): New.
2923         (init_optimization_passes): Initialize all_lto_gen_passes.
2924         (execute_ipa_summary_passes): Make non-static.
2925         (ipa_write_summaries_1): New.
2926         (ipa_write_summaries_2): New.
2927         (ipa_write_summaries): New.
2928         (ipa_write_summaries_of_cgraph_node_set): New.
2929         (ipa_read_summaries_1): New.
2930         (ipa_read_summaries): New.
2931         (execute_ipa_pass_list): Call cgraph_process_new_functions.
2932         (execute_regular_ipa_pass_list): Remove.
2933         (init_optimization_passes): Schedule
2934         pass_rebuild_cgraph_edges and pass_early_inline outside
2935         of pass_all_early_optimizations.  Document reason.
2936         (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup,
2937         pass_ipa_lto_finish_out): New pass.
2938         (pass_ipa_summary_passes): Start and stop timers if the pass has them.
2939         (execute_all_ipa_transforms): New.
2940         (execute_one_pass): Don't call execute_one_ipa_transform_pass.
2941         (dump_properties, debug_properties): New.
2942         * tree-optimize.c (gate_all_early_local_passes): Return
2943         false if we are in lto1.
2944         (tree_rest_of_compilation): Call execute_all_ipa_transforms.
2945         * tree-pass.h (execute_all_ipa_transforms): Declare.
2946         (pass_ipa_function_and_variable_visibility): Declare.
2947         (pass_ipa_early_inline): Declare.
2948         (pass_ipa_lto_gimple_out): Declare.
2949         (pass_ipa_lto_wpa_fixup): Declare.
2950         (pass_ipa_lto_finish_out): Declare.
2951         (all_small_ipa_passes, all_regular_ipa_passes,
2952         all_lto_gen_passes): Declare.
2953         (execute_ipa_summary_passes): Declare.
2954         (execute_all_ipa_transforms): Declare.
2955         (ipa_write_summaries): Declare
2956         (ipa_write_summaries_of_cgraph_node_set): Declare.
2957         (ipa_read_summaries): Declare.
2958
2959 2009-10-03  Doug Kwan  <dougkwan@google.com>
2960             Ollie Wild  <aaw@google.com>
2961
2962         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA.
2963
2964         * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums.
2965         (lto_mode): New variable.
2966         (maybe_run_lto_and_relink): Handle the -fwpa option.
2967         (main): Handle the -fwpa option.
2968         (maybe_unlink_list): New function.
2969         * gcc.c (link_lto_options): Replace -flto with -fwpa.
2970         * common.opt (flto): New flag.
2971         * toplev.c (flag_generate_lto): Declare.
2972
2973 2009-10-03  Simon Baldwin  <simonb@google.com>
2974
2975         * common.opt (flto-compression-level): New flag.
2976
2977         * opts.c: Include lto-opts.h.
2978         (handle_option): Call lto_register_user_option for each
2979         valid option handled.
2980         (decode_options): Clear registered options before the options
2981         handling loop.
2982
2983 2009-10-03  Cary Coutant  <ccoutant@google.com>
2984
2985         * collect2.c (is_elf): New function.
2986         (scan_prog_file): Require LTO object to be in ELF format.
2987
2988 2009-10-03  Rafael Espindola  <espindola@google.com>
2989
2990         * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass
2991         libgcc to the linker.
2992
2993         * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running.
2994
2995         * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper.
2996         (collect_execute): Add flags argument. Pass flags to pex_run. Update
2997         all callers.
2998         * collect2.h (collect_execute): Add flags argument.
2999         * tlink.c (tlink_execute): Update call to collect_execute.
3000         * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable.
3001         (use_linker_plugin): New.
3002         (use_linker_plugin_spec_function): New.
3003         (LINK_COMMAND_SPEC): Pass plugin options to the linker.
3004         (linker_plugin_file_spec): New.
3005         (lto_wrapper_spec): New.
3006         (lto_gcc_spec): New.
3007         (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc.
3008         (static_spec_functions): Add use-linker-plugin.
3009         (process_command): Handle -use-linker-plugin.
3010         (main): Use lto_wrapper_spec instead of lto_wrapper. Set
3011         linker_plugin_file_spec and lto_gcc_spec.
3012         (use_linker_plugin_spec_function): New.
3013
3014 2009-10-03  Richard Guenther  <rguenther@suse.de>
3015
3016         PR lto/41547
3017         PR lto/41548
3018         * tree.h (is_lang_specific): Include LANG_TYPE.
3019         * tree.c (find_decls_types_r): Manually add interesting parts
3020         of TYPE_FIELDS.  Walk BINFO_VIRTUALS.  Do not walk TYPE_METHODS.
3021
3022         * gimple.c (type_pair_hash): Make symmetric.
3023         (type_pair_eq): Likewise.
3024         (lookup_type_pair): Increase initial hashtable size.
3025         (gimple_force_type_merge): Rely on type-pair symmetry.
3026         (visit): Remove excessive checking code.
3027         (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions.
3028         (gimple_register_type): Remove getenv calls, shrink initial
3029         hashtable size.
3030
3031         PR middle-end/41502
3032         * cgraphunit.c (ipa_passes): Do not remove bodies of extern
3033         inline functions if not generating lto output.
3034
3035         PR lto/41379
3036         * toplev.c (finalize): In WPA mode remove the asm file.
3037
3038 2009-10-03  Doug Kwan  <dougkwan@google.com>
3039
3040         * ipa-inline.c (cgraph_mark_inline): Check
3041         edge->call_stmt_cannot_inline_p instead of calling
3042         gimple_call_cannot_inline_p.
3043         (cgraph_decide_inlining): Do nothing in WPA and LTRANS.
3044         (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set.
3045         (inline_generate_summary): Do nothing in LTRANS.
3046         * cgraph.c (initialize_inline_failed): Make sure e->call_stmt
3047         exists before calling gimple_call_cannot_inline_p.
3048         (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p.
3049         (cgraph_clone_edge): Add argument STMT_UID.  Modify all callers.
3050         Update new_edge->lto_stmt_uid.
3051         * cgraphbuild.c (reset_inline_failed): New.
3052
3053         * common.opt (fwpa): New flag.
3054         (fltrans): New option.
3055         * gcc.c (gcc_lto_option_t): New type.
3056         (current_lto_option): New variable.
3057         (lto_single_spec_function): Remove and is replaced by ..
3058         (lto_option_spec_function): New function.
3059         (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just
3060         passing the -flto flag.
3061         (cc1_options): Separate non-LTO related parts into ..
3062         (cc1_non_lto_options): Non-LTO related options shared by all FEs.
3063         (lto1_options): New spec for lto FE.
3064         (link_lto_options): New spec for handling LTO flags in linker.
3065         (invoke_lto_single): Re-format to fit in 80 column.  Replace
3066         lto-single with lto-option.
3067         (static_specs): Add cc1_non_lto_options, lto1_options and
3068         link_lto_options.
3069         (static_spec_function): Replace lto-single with lto-option.
3070         (process_command): Handle -flto, -fwpa and -fltran by setting
3071         current_lto_option and not passing it to subprocess unconditionally.
3072
3073 2009-10-03  Bill Maddox  <maddox@google.com>
3074
3075         Add `gcc' driver support for link-time code generation (LTO).
3076
3077         * collect2.c (enum pass): Add new literal PASS_LTOINFO.
3078         (lto_flag, lto_objects, lto_o_file): New variables.
3079         (struct lto_object, struct lto_object_list): New structures.
3080         (collect_exit, handler): Remove LTO temporary output file on exit.
3081         (add_lto_object): New function.
3082         (maybe_run_lto_and_relink): New function. Perform link time code
3083         generation and relinking for object files containing LTO information.
3084         (main): Invoke maybe_run_lto_and_relink().
3085         (dump_argv): New function.  For debugging, currently disabled.
3086         (scan_prog_file): Add LTO information pass.
3087         * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e.,
3088         collect2.
3089         * toplev.c (compile_file): Emit assembler directive to create
3090         the `gnu_lto_v1' marker symbol when compiling with `-flto'.
3091
3092 2009-10-03  Diego Novillo  <dnovillo@google.com>
3093
3094         * c.opt: Add LTO to warn_abi and warn_psabi.
3095
3096         * tree.c (fld_worklist_push): Rename from PUSH.  Convert to static
3097         inline function.  Ignore language-specific nodes.  Update all users.
3098         (find_decls_types_r): Do not traverse the subtrees of
3099         language-specific nodes.  Do not traverse DECL_INITIAL for TYPE_DECLs.
3100         * tree.h (is_lang_specific): New.
3101         * langhooks.h (struct lang_hooks_for_decls): Remove
3102         may_need_assembler_name_p.  Update all users.
3103
3104         * c-common.c (set_builtin_user_assembler_name): Move ...
3105         * builtins.c (set_builtin_user_assembler_name): ... here.
3106         (is_builtin_name): Add comment
3107         (is_builtin_fn): New.
3108         * except.c (output_ttype): Only call
3109         lookup_type_for_runtime if TYPE is not a runtime type.
3110
3111         * passes.c (register_pass): Call position_pass on
3112         all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes.
3113         * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define.
3114         (TV_IPA_LTO_DECL_IO): Define.
3115         (TV_IPA_LTO_CGRAPH_IO): Define.
3116         (TV_LTO): Define.
3117         (TV_WHOPR_WPA): Define.
3118         (TV_WHOPR_WPA_IO): Define.
3119         (TV_WHOPR_LTRANS): Define.
3120         (TV_WHOPR_WPA_FIXUP): Define.
3121         (TV_WHOPR_WPA_LTRANS_EXEC): Define.
3122         * tree-cfg.c (tree_node_can_be_shared): Make extern.
3123         * tree-flow.h (tree_node_can_be_shared): Declare.
3124         * tree-inline.c (tree_can_inline_p): Check that E has a
3125         statement associated with it.
3126         * tree.c (free_lang_data_in_binf): Factor out of ...
3127         (free_lang_data_in_type): ... here.
3128         Call RECORD_OR_UNION_TYPE_P.
3129         (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC
3130         set.  Call lang_hooks.decls.may_need_assembler_name_p if set.
3131         (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs.
3132         (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE.  Set
3133         write_symbols to NO_DEBUG.  Set debug_hooks to do_nothing_debug_hooks.
3134         (gate_free_lang_data): Return true if flag_generate_lto is set.
3135         (walk_tree_1): Call RECORD_OR_UNION_TYPE_P.
3136         * c-common.h (set_builtin_user_assembler_name): Move ...
3137         * tree.h (set_builtin_user_assembler_name): ... here.
3138
3139         * common.opt (flto-report): New flag.
3140         * opts.c (complain_wrong_lang): Do not complain if running lto1.
3141         * collect2.c (scan_prog_file): Send the error output of
3142         'nm' to HOST_BIT_BUCKET.
3143
3144 2009-10-03  Ollie Wild  <aaw@google.com>
3145
3146         * langhooks-def.h (lhd_begin_section): New function declaration.
3147         (lhd_write_section): New function declaration.
3148         (lhd_end_section): New function declaration.
3149         (LANG_HOOKS_BEGIN_SECTION): New macro.
3150         (LANG_HOOKS_WRITE_SECTION_DATA): New macro.
3151         (LANG_HOOKS_END_SECTION): New macro.
3152         (LANG_HOOKS_LTO): New macro.
3153         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO.
3154         * langhooks.c (output.h): Add include.
3155         (saved_section): New static variable.
3156         (lhd_begin_section): New function.
3157         (lhd_write_section_data): New function.
3158         (lhd_end_section): New function.
3159         * langhooks.h (struct lang_hooks_for_lto): New structure.
3160         (struct lang_hooks): Add member lto.
3161         * Makefile.in (langhooks.o): Add dependency on output.h.
3162
3163         * c-opts.c (c_common_post_options): Handle -flto and -fwhopr.
3164
3165 2009-10-03  Richard Guenther  <rguenther@suse.de>
3166
3167         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
3168         Handle LTO.
3169
3170 2009-10-03  Simon Baldwin  <simonb@google.com>
3171             Richard Guenther  <rguenther@suse.de>
3172             Janis Johnson  <janis187@us.ibm.com>
3173             Doug Kwan  <dougkwan@google.com>
3174             Diego Novillo  <dnovillo@google.com>
3175             Ramana Radhakrishnan  <ramana.r@gmail.com>
3176             Ollie Wild  <aaw@google.com>
3177
3178         * doc/install.texi: Add documentation for libelf and --enable-lto.
3179         * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans,
3180         -flto-report, -flto-compression-level and -use-linker-plugin.
3181         * doc/sourcebuild.texi: Document use of zlib.  Document lto-plugin.
3182         Add section for LTO Testing.
3183
3184 2009-10-02  Cary Coutant  <ccoutant@google.com>
3185
3186         Add support for comdat type sections for DWARF v4.
3187         Merge from dwarf4 branch.
3188
3189         * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant.
3190         (dw_die_ref): Define vector type.
3191         (enum dw_val_class): Add dw_val_class_data8.
3192         (struct dw_val_struct): Add v.val_data8.
3193         (comdat_type_node_ref): New type.
3194         (struct die_struct): Move die_symbol into a union; add new field
3195         die_type_node.  Change all uses.
3196         (comdat_type_node): New type.
3197         (skeleton_chain_node): New type.
3198         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant.
3199         (comdat_type_list): New variable.
3200         (dwarf_tag_name): Add DW_TAG_type_unit.
3201         (dwarf_attr_name): Add DW_AT_signature.
3202         (add_AT_data8): New function.
3203         (replace_child): New function.
3204         (move_all_children): New function.
3205         (print_signature): New function.
3206         (print_die): Print signature information; add dw_val_class_data8.
3207         (attr_checksum): Support dw_val_class_data8.
3208         (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte.
3209         (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros.
3210         (checksum_sleb128, checksum_uleb128): New functions.
3211         (checksum_die_context): New function.
3212         (loc_checksum_ordered): New function.
3213         (attr_checksum_ordered): New function.
3214         (struct checksum_attributes): New structure.
3215         (collect_checksum_attributes): New function.
3216         (die_checksum_ordered): New function.
3217         (generate_type_signature): New function.
3218         (same_dw_val_p): Add dw_val_class_data8.
3219         (is_symbol_die): Use new is_declaration_die function.
3220         (is_declaration_die): New function.
3221         (should_move_die_to_comdat): New function.
3222         (clone_die): New function.
3223         (clone_tree): New function.
3224         (clone_as_declaration): New function.
3225         (copy_declaration_context): New function.
3226         (generate_skeleton_ancestor_tree): New function.
3227         (generate_skeleton_bottom_up): New function.
3228         (generate_skeleton): New function.
3229         (remove_child_or_replace_with_skeleton): New function.
3230         (break_out_comdat_types): New function.
3231         (struct decl_table_entry): New type.
3232         (htab_decl_hash): New function.
3233         (htab_decl_eq): New function.
3234         (htab_decl_del): New function.
3235         (copy_ancestor_tree): New function.
3236         (copy_decls_walk): New function.
3237         (copy_decls_for_unworthy_types): New function.
3238         (build_abbrev_table): Don't assert on missing die_symbol when doing
3239         comdat type sections.
3240         (size_of_die): Use DW_FORM_sig8 for external references.  Add
3241         dw_val_class_data8.
3242         (unmark_dies): Don't assert for unmarked dies when doing comdat
3243         type sections.
3244         (value_format): Support DW_FORM_sig8 and dw_val_class_data8.
3245         (output_signature): New function.
3246         (output_die): Likewise.
3247         (output_compilation_unit_header): Mark output as DWARF version 3
3248         even if generating DWARF 4.
3249         (output_comdat_type_unit): New function.
3250         (output_line_info): Mark output as DWARF version 3 even if generating
3251         DWARF 4.
3252         (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with
3253         DWARF-4.
3254         (dwarf2out_end_source_file): Likewise.
3255         (prune_unused_types_walk_attribs): Don't follow references into
3256         comdat type sections.
3257         (prune_unused_types_mark): When generating type units, do not mark
3258         children of non-defining declarations of types; do mark children of
3259         type entries.
3260         (prune_unused_types): Process comdat type sections.
3261         (htab_ct_hash): New function.
3262         (htab_ct_eq): New function.
3263         (dwarf2out_finish): Move types to comdat sections when using DWARF-4.
3264         Add a pointer to the line table from type unit entries so
3265         DW_AT_decl_file has meaning.
3266         * varasm.c (default_elf_asm_named_section): Use identifier name as
3267         comdat key instead of lang hook.
3268
3269 2009-10-02  Neil Vachharajani  <nvachhar@google.com>
3270
3271         * gcov-io.c (gcov_open): Open files read-only when MODE < 0.
3272
3273 2009-10-02  Uros Bizjak  <ubizjak@gmail.com>
3274
3275         * config/i386/i386.md (SWIM248): New mode iterator.
3276         (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
3277         divmodhi4 patterns using SWIM248 macro.
3278         (*divmod<mode>4): Macroize insn_and_split pattern from
3279         *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
3280         and their corresponding splitters usign SWIM248 macro.  Split SImode
3281         insn to generate cltd and DImode insn to generate cqto instead of
3282         move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
3283         (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
3284         (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
3285         *divmodsi_noext patterns using SWIM248 macro.
3286         (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
3287         udivmodhi4 patterns using SWIM248 macro.
3288         (*udivmod<mode>4): Macroize insn_and_split pattern from
3289         *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
3290         corresponding splitters using SWIM248 macro.
3291         (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
3292         *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.
3293
3294 2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>
3295
3296         * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array
3297         of zero-sized element is zero-sized regardless of its extent.
3298
3299 2009-10-02  Jakub Jelinek  <jakub@redhat.com>
3300
3301         PR debug/40521
3302         * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
3303         * configure: Regenerated.
3304         * config.in: Regenerated.
3305         * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
3306         !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
3307         (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
3308         not emitting .eh_frame, emit .cfi_sections .debug_frame
3309         directive.
3310
3311         PR debug/41404
3312         PR debug/41353
3313         * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create
3314         CONST_STRING if STRING_CST contains embedded '\0's or doesn't end
3315         with '\0'.
3316         (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL
3317         vars use DECL_RTL with resetting it back to NULL afterwards.
3318         * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with
3319         rtx_equal_p instead of asserting it is a SYMBOL_REF.
3320         (value_format): For dw_val_class_addr only use DW_FORM_addr if
3321         the attribute type allows it, otherwise use DW_FORM_dataN.
3322         (mem_loc_descriptor): Handle CONST_STRING.
3323         (add_const_value_attribute): Handle CONST_STRING using add_AT_addr.
3324         Handle MEM with CONST_STRING address using add_AT_string.
3325         (rtl_for_decl_init): Return MEM with CONST_STRING address instead of
3326         CONST_STRING for const arrays initialized with a string literal.
3327         (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions.
3328         (dwarf2out_finish): Call resolve_addr.
3329
3330 2009-10-02  Andreas Schwab  <schwab@linux-m68k.org>
3331             Maxim Kuvyrkov  <maxim@codesourcery.com>
3332
3333         * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch.
3334
3335 2009-10-02  Nick Clifton  <nickc@redhat.com>
3336
3337         * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define.
3338         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
3339
3340 2009-10-01  Jan Hubicka  <jh@suse.cz>
3341
3342         * cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
3343         (cgraph_create_virtual_clone): Just pass redirect_callers
3344         around.
3345         * cgraph.h (cgraph_clone_node): Update prototype.
3346         * ipa-pure-const.c (self_recursive_p): New function.
3347         (propagate): Use it.
3348         * ipa-inline.c (cgraph_clone_inlined_nodes,
3349         cgraph_decide_recursive_inlining): Update.
3350
3351 2009-10-01  David Daney  <ddaney@caviumnetworks.com>
3352
3353         * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw
3354         instructions for TARGET_OCTEON.
3355
3356 2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3357
3358         * config/arm/arm.c (arm_override_options): Turn off
3359         flag_dwarf2_cfi_asm for AAPCS variants.
3360
3361 2009-10-01  Martin Jambor  <mjambor@suse.cz>
3362
3363         PR middle-end/12392
3364         * tree-sra.c (convert_callers): Do not call
3365         compute_inline_parameters on one caller more than once.
3366
3367 2009-10-01  Nick Clifton  <nickc@redhat.com>
3368
3369         * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as
3370         an empty string if not already defined.
3371
3372 2009-10-01  Martin Jambor  <mjambor@suse.cz>
3373
3374         PR bootstrap/41395
3375         * tree-sra.c (is_va_list_type): New function.
3376         (find_var_candidates): Call is_va_list_type.
3377         (find_param_candidates): Check that the type or the type pointed
3378         to are not va_list types.
3379
3380 2009-10-01  Martin Jambor  <mjambor@suse.cz>
3381
3382         PR c++/41503
3383         * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
3384         DECL_ARTIFICIAL (param_decl) is true.
3385
3386 2009-09-30  Gabriel Dos Reis  <gdr@cs.tamu.edu>
3387
3388         * tree.h (tree_decl_common::lang_flag_8): New.
3389         * c-common.c (c_common_reswords): Include "constexpr" as C++0x
3390         keyword.
3391         * c-common.h (RID_CONSTEXPR): New.
3392
3393 2009-09-30  Uros Bizjak  <ubizjak@gmail.com>
3394
3395         * config/alpha/alpha.c (alpha_gimplify_va_arg_1):
3396         Use ref-all pointers.
3397         (alpha_gimplify_va_arg): Ditto.
3398
3399 2009-09-30  Jakub Jelinek  <jakub@redhat.com>
3400
3401         PR target/41279
3402         * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
3403         before insn counting loop now that BB_END (bb) is counted.  Ensure
3404         the return value isn't zero.
3405
3406 2009-09-30  Nick Clifton  <nickc@redhat.com>
3407
3408         * config.gcc (sh-symbianelf): Replace definition of extra_objs
3409         with separate definitions of c_target_objs and cxx_target_objs.
3410         * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
3411         and symbian-base.o.
3412         * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use